:root{--rail-w: 15.5rem;--admin-pad: clamp(1.25rem, 3.5vw, 2.75rem)}.admin-body{min-height:100dvh;background:var(--bg);color:var(--text)}.admin-body.has-rail{display:grid;grid-template-columns:minmax(0,1fr)}@media(min-width:60rem){.admin-body.has-rail{grid-template-columns:var(--rail-w) minmax(0,1fr)}}.admin-main{min-width:0;padding:clamp(1.75rem,4vw,3rem) var(--admin-pad) 5rem}.admin-body:not(.has-rail) .admin-main{display:grid;place-items:start center;padding-top:clamp(2.5rem,9vh,6rem)}.rail{--rail-accent: var(--accent);--rail-text: var(--text);--rail-muted: var(--text-muted);--rail-border: var(--border);background:var(--surface);color:var(--rail-text);border-bottom:1px solid var(--rail-border);display:flex;flex-direction:column;gap:.4rem;min-width:0}@media(min-width:60rem){.rail{position:sticky;top:0;height:100dvh;border-bottom:0;border-right:1px solid var(--rail-border);padding:1.5rem 1rem 1.25rem}}.rail-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem}@media(min-width:60rem){.rail-top{flex-direction:column;align-items:stretch;gap:1.25rem;padding:.25rem .5rem 1.25rem;border-bottom:1px solid var(--rail-border)}}.brand{display:inline-flex;align-items:center;gap:.65rem;color:var(--rail-text)}.brand-logo{height:2.1rem;width:auto;flex:none}.brand-sub{font-family:var(--font-display);font-size:.62rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-text)}.rail-account{display:flex;align-items:center;gap:.6rem}.rail-nav{display:flex;gap:.2rem;overflow-x:auto;scrollbar-width:none;padding:0 .6rem .6rem}.rail-nav::-webkit-scrollbar{display:none}@media(min-width:60rem){.rail-nav{flex-direction:column;gap:.15rem;overflow:visible;flex:1;padding:1rem 0 0}}.nav-item{position:relative;display:inline-flex;align-items:center;gap:.6rem;flex:none;white-space:nowrap;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;font-size:.82rem;color:var(--rail-muted);padding:.6rem .8rem;border-radius:var(--radius-btn);transition:color .15s ease,background .15s ease}.nav-item .dot{width:.42rem;height:.42rem;border-radius:50%;background:currentColor;opacity:.5;flex:none;transition:opacity .15s ease,transform .15s ease}.nav-item:hover{color:var(--rail-text);background:color-mix(in srgb,var(--rail-text) 7%,transparent)}.nav-item[aria-current=page]{color:var(--rail-text);background:var(--surface-2)}.nav-item[aria-current=page] .dot{background:var(--rail-accent);opacity:1}.nav-item:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.rail-foot{display:none}@media(min-width:60rem){.rail-foot{display:block;border-top:1px solid var(--rail-border);padding:.9rem .8rem .2rem}.who-name{display:block;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;color:var(--rail-text)}.who-role{display:inline-block;margin-top:.35rem;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--on-accent);background:var(--rail-accent);padding:.1rem .45rem;border-radius:999px;font-weight:600}}.logout{font-family:var(--font-display);text-transform:uppercase;font-size:.7rem;letter-spacing:.06em;border:1px solid var(--rail-border);border-radius:var(--radius-btn);background:transparent;color:var(--rail-text);padding:.42rem .7rem;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.logout:hover{border-color:var(--rail-accent);color:var(--rail-accent)}.logout:focus-visible{outline:2px solid var(--rail-accent);outline-offset:2px}.rail-account button{color:var(--rail-text)}.masthead{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:1.25rem;flex-wrap:wrap;padding-bottom:1.1rem;border-bottom:1px solid var(--border)}.masthead:after{content:"";position:absolute;left:0;bottom:-1px;width:3.5rem;height:3px;background:var(--accent)}.eyebrow-rule{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:600;color:var(--accent-text)}.eyebrow-rule:before{content:"";width:1.6rem;height:2px;background:var(--accent)}.page-title{margin-top:.55rem;font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:clamp(2rem,4.5vw,3rem);line-height:.95;letter-spacing:-.01em}.page-lede{margin-top:.7rem;max-width:60ch;color:var(--text-muted);font-size:.96rem;line-height:1.5}.page-lede a{color:var(--accent-text);text-decoration:underline;text-underline-offset:3px}.masthead-aside{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.section-title{display:flex;align-items:center;gap:.6rem;margin-top:2.75rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;font-size:1.2rem}.section-title:before{content:"";width:.55rem;height:1.05rem;background:var(--accent);border-radius:1px}.section-note{margin-top:.5rem;color:var(--text-muted);font-size:.9rem;max-width:56ch}.panel{border:1px solid var(--border);border-radius:var(--radius-btn);background:var(--surface);padding:1.4rem 1.5rem}.panel--flush{padding:0;overflow:hidden}.pill{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;line-height:1;padding:.32rem .6rem;border-radius:999px;border:1px solid var(--border);color:var(--text-muted);white-space:nowrap}.pill--accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.pill--ok{color:var(--brand-green);border-color:color-mix(in srgb,var(--brand-green) 45%,var(--border))}.pill--danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.pill--warn{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.pill--ghost{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;border:1px solid transparent;border-radius:var(--radius-btn);padding:.7rem 1.3rem;cursor:pointer;transition:filter .15s ease,transform .15s ease,border-color .15s ease,color .15s ease,background .15s ease}.btn:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover{filter:brightness(.94);transform:translateY(-1px)}.btn--block{width:100%}.btn--ghost{background:var(--bg);border-color:var(--border);color:var(--text);font-size:.8rem;padding:.4rem .8rem;font-weight:600;white-space:nowrap}.btn--ghost:hover{border-color:var(--accent)}.btn--danger{background:var(--bg);border-color:var(--border);color:var(--text);font-size:.8rem;padding:.4rem .8rem;font-weight:600;white-space:nowrap}.btn--danger:hover{border-color:var(--danger);color:var(--danger)}.table-scroll{margin-top:1.5rem;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-btn)}.data-table{border-collapse:collapse;width:100%;font-size:.9rem;min-width:44rem}.data-table thead th{text-align:left;text-transform:uppercase;font-family:var(--font-display);font-size:.72rem;letter-spacing:.07em;color:var(--text-muted);padding:.85rem 1rem;background:var(--surface-2);border-bottom:2px solid color-mix(in srgb,var(--accent) 55%,var(--border));position:sticky;top:0}.data-table tbody td{padding:.7rem 1rem;border-bottom:1px solid var(--border)}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr{transition:background .12s ease}.data-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.data-table .num{font-variant-numeric:tabular-nums}.data-table .col-strong{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em}.matrix-scroll{margin-top:1.1rem;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-btn);max-height:70svh}.matrix{border-collapse:separate;border-spacing:0;font-size:.84rem}.matrix th,.matrix td{padding:.4rem;text-align:center;border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.matrix thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem;color:var(--text-muted);border-bottom:2px solid color-mix(in srgb,var(--accent) 55%,var(--border))}.matrix th[scope=row]{position:sticky;left:0;z-index:1;background:var(--surface);white-space:nowrap;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.matrix thead th:first-child{left:0;z-index:3}.matrix-cell{display:flex;align-items:center;gap:.35rem;justify-content:center}.matrix-cell input[type=checkbox]{accent-color:var(--accent);width:1rem;height:1rem}.matrix-cell input[type=number]{width:4.1rem;padding:.25rem .35rem;border:1px solid var(--border);border-radius:var(--radius-btn);background:var(--bg);color:var(--text);font:inherit;font-variant-numeric:tabular-nums}.matrix-cell:has(input[type=checkbox]:not(:checked)) input[type=number]{opacity:.4}.form-row{display:flex;flex-wrap:wrap;gap:.9rem;align-items:flex-end}.form-row .grow{flex:1;min-width:13rem}.field-label{display:block;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;color:var(--text-muted);margin-bottom:.35rem}.field{width:100%;min-height:2.7rem;padding:.55rem .85rem;border:1px solid var(--border);border-radius:var(--radius-btn);background:var(--bg);color:var(--text);font:inherit;line-height:1.4}.field:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.field::placeholder{color:color-mix(in srgb,var(--text-muted) 80%,transparent)}select.field{appearance:none;-webkit-appearance:none;padding-right:2.1rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%235b6470' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:.72rem}[data-theme=dark] select.field{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%239ba2ae' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.form-row .btn{min-height:2.7rem}.day-picker{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.day-chip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border);border-radius:var(--radius-btn);padding:.45rem .75rem;cursor:pointer;user-select:none;font-family:var(--font-display);text-transform:uppercase;font-size:.82rem;transition:border-color .12s ease,background .12s ease,color .12s ease}.day-chip:hover{border-color:var(--accent)}.day-chip:has(input:checked){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.day-chip:has(input:focus-visible){outline:2px solid var(--ring);outline-offset:2px}.day-chip input{position:absolute;opacity:0;width:0;height:0}.flash{margin-top:1.25rem;display:inline-flex;align-items:center;gap:.5rem;background:color-mix(in srgb,var(--brand-green) 14%,transparent);color:var(--brand-green);border:1px solid color-mix(in srgb,var(--brand-green) 40%,transparent);padding:.55rem .9rem;border-radius:var(--radius-btn);font-size:.88rem}.flash:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}.flash--err{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}.card-list{margin-top:1.25rem;display:grid;gap:.7rem;max-width:54rem}.card-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:1px solid var(--border);border-radius:var(--radius-btn);background:var(--surface);padding:.95rem 1.15rem}.empty{margin-top:1.5rem;border:1px dashed var(--border);border-radius:var(--radius-btn);padding:1.5rem;color:var(--text-muted);text-align:center;font-size:.95rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.btn--primary:hover{transform:none}}
