@import "https://fonts.googleapis.com/css2?family=Hanken+Grotesk:ital,wght@0,300..800;1,300..800&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg:#fbf9f8;--surface:#fff;--panel:#f5f3f3;--panel-high:#e9e8e7;--ink:#1b1c1c;--ink-soft:#444748;--muted:#747878;--line:#dcd9d5;--line-strong:#c4c7c7;--charcoal:#1b1c1c;--charcoal-hover:#303031;--gold:#775a19;--gold-hover:#5d4201;--gold-soft:#fed488;--gold-tint:#775a191a;--accent:#775a19;--accent-hover:#5d4201;--ok:#1a6b3f;--ok-soft:#e7f2ec;--danger:#ba1a1a;--danger-soft:#ffdad6;--trial:#445c7a;--trial-soft:#e8edf4;--shadow:0 4px 20px #0000000a;--shadow-lg:0 12px 40px #00000014;--radius-sm:2px;--radius:4px;--radius-lg:8px;--sidebar-width:280px;--font-sans:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;font-family:var(--font-sans);color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.6}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}h1,h2,h3{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--ink);margin:0;font-weight:600}h1{letter-spacing:-.025em;font-weight:700}.label-caps{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;font-weight:500;line-height:1}.shell{grid-template-columns:var(--sidebar-width) 1fr;height:100vh;display:grid;overflow:hidden}.sidebar{color:#e4e2e2;background:linear-gradient(#1b1c1c 0%,#101112 100%);flex-direction:column;gap:2rem;height:100vh;padding:1.75rem 1.25rem;display:flex;overflow-y:auto}.brand{flex-direction:column;gap:.35rem;padding:0 .5rem;display:flex}.brand-mark{font-family:var(--font-sans);letter-spacing:-.02em;font-size:1.5rem;font-weight:700;line-height:1.1}.brand-sub{font-family:var(--font-mono);color:var(--gold-soft);letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;font-weight:500}.nav{flex-direction:column;gap:1.25rem;display:flex}.nav-group{flex-direction:column;gap:.35rem;display:flex}.nav-group-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:#8f8d8b;margin-bottom:.15rem;padding:0 .85rem;font-size:.68rem;font-weight:500}.nav a{border-radius:var(--radius);color:#c4c2c1;border-left:3px solid #0000;align-items:center;gap:.65rem;padding:.7rem .85rem;transition:background .15s,color .15s,border-color .15s;display:flex}.nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:1.15rem;height:1.15rem;display:inline-flex}.nav a:hover{color:#fff;background:#ffffff0f}.nav a.active{border-left-color:var(--gold-soft);color:var(--gold-soft);background:#fed48824}.sidebar-filter{flex-direction:column;gap:.45rem;margin-top:auto;padding:0 .5rem .25rem;display:flex}.sidebar-filter label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:#8f8d8b;font-size:.68rem;font-weight:500}.sidebar-filter-select{border-radius:var(--radius);color:#e4e2e2;width:100%;font:inherit;background:#ffffff0f;border:1px solid #ffffff1f;padding:.55rem .65rem}.sidebar-filter-select:focus{outline-offset:1px;outline:2px solid #fed48859}.main{min-width:0;height:100vh;padding:2rem 2.25rem 3rem;overflow-y:auto}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.page-header p{color:var(--muted);max-width:40rem;margin:.35rem 0 0}.page-header-actions{flex-wrap:wrap;flex-shrink:0;gap:.6rem;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.panel+.panel{margin-top:1.25rem}.panel-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.panel-body{padding:1.25rem;overflow-x:auto}.table-date-group td{background:var(--surface-raised,#f6f5f3);border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink-soft);padding:.55rem 1rem;font-size:.85rem;font-weight:700}.pagination{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.25rem;display:flex}.pagination-meta{color:var(--muted);font-size:.85rem}.pagination-controls{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.pagination-ellipsis{color:var(--muted);-webkit-user-select:none;user-select:none;padding:0 .25rem}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;padding-bottom:0;display:flex}.tab{appearance:none;color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.45rem;margin-bottom:-1px;padding:.7rem 1rem;font-weight:600;display:inline-flex}.tab:hover{color:var(--ink)}.tab.active{border-bottom-color:var(--accent,#0f766e);color:var(--ink)}.tab-count{color:var(--muted);font-family:var(--font-mono);text-align:center;background:#0000000f;border-radius:999px;min-width:1.4rem;padding:.1rem .4rem;font-size:.72rem;font-weight:600}.tab.active .tab-count{color:var(--accent,#0f766e);background:#0f766e1f}.grid-2{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:1.25rem;display:grid}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;gap:.35rem;padding:1.1rem 1.25rem;transition:box-shadow .15s,border-color .15s,transform .15s;display:flex}.stat-card:hover{border-color:var(--gold);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.stat-card-todo{background:var(--panel);box-shadow:none;border-style:dashed}.stat-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.72rem;font-weight:500}.stat-value{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700;line-height:1.1}.stat-card-todo .stat-value{color:var(--muted)}.stat-note{color:var(--muted);font-size:.85rem}.stat-todo{color:var(--gold);font-weight:600}.topbar,.sidebar-scrim{display:none}.sidebar-user{color:#c4c2c1;font-size:.9rem}@media (width<=960px){.shell{grid-template-columns:minmax(0,1fr);height:auto;overflow:visible}.topbar{z-index:30;background:var(--charcoal);color:#fff;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex;position:sticky;top:0}.topbar .brand-mark{font-size:1.15rem}.topbar-menu{appearance:none;border-radius:var(--radius);color:#fff;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.sidebar{z-index:40;width:min(85vw, var(--sidebar-width));visibility:hidden;height:auto;transition:transform .2s;position:fixed;top:60px;bottom:0;left:0;transform:translate(-100%)}.menu-open .sidebar{visibility:visible;transform:none}.sidebar .brand{display:none}.sidebar-scrim{z-index:35;background:#0006;border:0;display:block;position:fixed;inset:60px 0 0}.main{height:auto;padding:1.25rem 1rem 2.5rem;overflow-y:visible}.grid-2{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}.form{gap:.9rem;display:grid}.form-row{gap:.35rem;display:grid}.form-row label{color:var(--ink-soft);font-size:.875rem;font-weight:600}.form-row input,.form-row select{border:none;border-bottom:2px solid var(--line-strong);width:100%;color:var(--ink);background:0 0;border-radius:0;padding:.5rem .15rem;transition:border-color .15s}.form-row input:focus,.form-row select:focus{border-bottom-color:var(--gold);outline:none}.form-actions{z-index:5;background:var(--surface);border-top:1px solid var(--line);flex-wrap:wrap;gap:.6rem;margin-top:.25rem;padding:.75rem 0;display:flex;position:sticky;bottom:0}.btn{appearance:none;border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:.6rem 1rem;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform .1s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}.btn-primary:hover:not(:disabled){background:var(--charcoal-hover);border-color:var(--charcoal-hover)}.btn-secondary{color:var(--gold);border-color:var(--gold);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--gold-tint)}.btn-ghost{color:var(--ink-soft);border:1px solid var(--line-strong);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.btn-danger:hover:not(:disabled){background:#ffcac4}.btn-sm{padding:.35rem .65rem;font-size:.85rem}.table-wrap{position:relative;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.85rem 1rem}th{color:var(--ink-soft);background:var(--panel);font-size:.8rem;font-weight:600}tbody tr{transition:background .12s}tbody tr:hover td{background:var(--gold-tint)}tr:last-child td{border-bottom:none}.row-actions{flex-wrap:wrap;gap:.4rem;display:flex}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.78rem;font-weight:600;line-height:1.3;display:inline-flex}.badge-danger{background:var(--danger-soft);color:#93000a}.badge-warn{color:#6b4500;background:#fdecc8}.badge-on{background:var(--ok-soft);color:var(--ok)}.badge-off,.badge-neutral{background:var(--panel-high);color:var(--ink-soft)}.cell-user{align-items:center;gap:.75rem;display:flex}.cell-user-main{flex-direction:column;gap:.1rem;display:flex}.cell-user-sub{color:var(--muted);font-size:.8rem}.avatar{background:var(--panel);border:1px solid var(--line);width:2rem;height:2rem;color:var(--ink-soft);letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.cell-stack{flex-direction:column;align-items:flex-start;gap:.3rem;display:flex}.table-search{border:none;border-bottom:2px solid var(--line-strong);color:var(--ink);background:0 0;border-radius:0;min-width:14rem;padding:.45rem .15rem;transition:border-color .15s}.table-search:focus{border-bottom-color:var(--gold);outline:none}.load-cell{align-items:center;gap:.6rem;display:flex}.load-bar{background:#eceff0;border-radius:999px;flex-shrink:0;width:5.5rem;height:.4rem;overflow:hidden}.load-bar-fill{background:var(--accent);border-radius:999px;height:100%}.load-count{color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem}.status{border-radius:8px;margin:0 0 1rem;padding:.75rem 1rem;font-size:.92rem}.status-error{background:var(--danger-soft);color:var(--danger);border:1px solid #fecdca}.status-info{background:var(--gold-tint);color:var(--gold-hover);border:1px solid var(--gold-soft)}.empty{text-align:center;color:var(--muted);padding:2rem 1rem}.checkbox-row{align-items:center;gap:.5rem;display:flex}.checkbox-row input{width:auto}.checkbox-list{flex-direction:column;gap:.4rem;max-height:12rem;padding:.25rem 0;display:flex;overflow-y:auto}.checkbox-list .checkbox-row{cursor:pointer}.contacts-section{border-top:1px solid var(--line);gap:.75rem;padding-top:.35rem;display:grid}.contacts-section-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.contacts-section-header h3{margin:0;font-size:1.15rem}.contact-card{border:1px solid var(--line);background:#f8faf9;border-radius:8px;gap:.75rem;padding:.85rem;display:grid}.contact-card-header{color:var(--muted);justify-content:space-between;align-items:center;font-size:.85rem;font-weight:600;display:flex}.contacts-cell{max-width:22rem;color:var(--ink-soft);font-size:.9rem}.day-chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{appearance:none;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:var(--radius);cursor:pointer;padding:.4rem .75rem;font-size:.85rem;font-weight:600;transition:background .12s,border-color .12s,color .12s}.chip:hover{border-color:var(--gold)}.chip-on{background:var(--gold);border-color:var(--gold);color:#fff}.field-hint{color:var(--muted);margin:.25rem 0 0;font-size:.8rem}.muted-inline{color:var(--muted);margin-top:.15rem;font-size:.8rem}.schedule-preview{border:1px solid var(--line);border-radius:8px;padding:.85rem 1rem}.schedule-preview p{margin:.25rem 0;font-size:.9rem}.schedule-preview-ok{color:var(--ok);background:#ecfdf5;border-color:#a7f3d0}.schedule-preview-warn{color:#92400e;background:#fffbeb;border-color:#fcd34d}.schedule-preview-bad{background:var(--danger-soft);color:var(--danger);border-color:#fecdca}.calendar-toolbar{align-items:center}.calendar-state-label{color:var(--ink-soft);font-size:.85rem;font-weight:600}.calendar-layout{grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:start;gap:1.25rem;display:grid}@media (width<=1100px){.calendar-layout{grid-template-columns:1fr}}.year-calendar{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:1rem;display:grid}.year-calendar .cal-month,.year-calendar .cal-grid{overflow:visible}.year-calendar .panel+.panel,.cal-week-grid .panel+.panel{margin-top:0}.cal-month .panel-header h2{font-size:1.2rem}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px 0;padding:.5rem .4rem .55rem;display:grid}.cal-weekday{text-align:center;color:var(--muted);min-width:0;padding:.15rem 0;font-size:.65rem;font-weight:600}.cal-day{appearance:none;cursor:pointer;width:100%;min-width:0;min-height:1.75rem;color:var(--ink-soft);box-sizing:border-box;background:0 0;border:none;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:0;margin:0;padding:.05rem 0;font-size:.78rem;display:flex;position:relative}.cal-day-empty{min-width:0;min-height:1.75rem;margin:0}.cal-day-num{box-sizing:border-box;justify-content:center;align-items:center;width:1.2rem;height:1.2rem;line-height:1;display:inline-flex}.cal-day-num-public{color:#b91c1c;border:1.5px solid #dc2626;border-radius:999px;font-weight:700}.cal-day-center{background:#fef3c7}.cal-day-school-range{z-index:1;border-radius:0;box-shadow:inset 0 1.5px #111,inset 0 -1.5px #111}.cal-day-school-single{border-radius:6px;box-shadow:inset 0 0 0 1.5px #111}.cal-day-school-start{border-radius:6px 0 0 6px;box-shadow:inset 1.5px 0 #111,inset 0 1.5px #111,inset 0 -1.5px #111}.cal-day-school-middle{border-radius:0;box-shadow:inset 0 1.5px #111,inset 0 -1.5px #111}.cal-day-school-end{border-radius:0 6px 6px 0;box-shadow:inset -1.5px 0 #111,inset 0 1.5px #111,inset 0 -1.5px #111}.cal-day:hover{background:var(--gold-tint);z-index:5}.cal-day-center:hover{background:#fde68a}.cal-day-dots{pointer-events:none;justify-content:center;align-items:center;gap:2px;height:3px;display:flex;position:absolute;bottom:1px;left:0;right:0}.cal-day-tip{z-index:30;border:1px solid var(--line);background:var(--surface);text-align:left;pointer-events:none;white-space:normal;border-radius:8px;min-width:10rem;max-width:14rem;padding:.45rem .55rem;display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #14100824}.cal-day:hover .cal-day-tip,.cal-day:focus-visible .cal-day-tip{gap:.2rem;display:grid}.cal-day-tip-above{top:auto;bottom:calc(100% + 6px)}.cal-day-tip-start{left:0;transform:none}.cal-day-tip-end{left:auto;right:0;transform:none}.cal-day-tip-date{color:var(--ink);margin-bottom:.1rem;font-size:.72rem;font-weight:700;display:block}.cal-day-tip-line{color:var(--ink-soft);font-size:.7rem;font-weight:500;line-height:1.3;display:block}.cal-day-tip-lessons{color:var(--muted);margin-top:.1rem}.cal-day-holiday{font-weight:700}.cal-day-selected{outline:2px solid var(--accent);outline-offset:0}.cal-day-dot{background:var(--accent);border-radius:50%;width:3px;height:3px}.cal-day-dot-lesson{background:var(--ok)}.calendar-sidebar{position:sticky;top:1rem}.holiday-list{gap:.75rem;max-height:28rem;display:grid;overflow:auto}.holiday-list-item{border-bottom:1px solid var(--line);grid-template-columns:5.5rem 1fr auto;align-items:start;gap:.65rem;padding-bottom:.65rem;display:grid}.holiday-list-date{font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem}.holiday-list-main{gap:.15rem;display:grid}.holiday-list-ms{color:var(--muted);font-size:.8rem}.holiday-legend{border-top:1px solid var(--line);flex-wrap:wrap;gap:.4rem;display:flex}.holiday-type{text-transform:lowercase;border-radius:999px;align-items:center;padding:.15rem .55rem;font-size:.7rem;font-weight:700;display:inline-flex}.holiday-type-federal{color:#067647;background:#ecfdf5}.holiday-type-state{color:#1d4ed8;background:#eff6ff}.holiday-type-islamic{color:#6d28d9;background:#f5f3ff}.holiday-type-adhoc{color:#c2410c;background:#fff7ed}.holiday-type-center{color:#92400e;background:#fef3c7}.holiday-type-other{color:#4b5563;background:#f3f4f6}.cal-legend{color:var(--muted);flex-wrap:wrap;gap:1rem;margin:-.5rem 0 1rem;font-size:.8rem;display:flex}.cal-legend-swatch{vertical-align:middle;box-sizing:border-box;border-radius:999px;width:.7rem;height:.7rem;margin-right:.35rem;display:inline-block}.cal-legend-public{background:0 0;border:2px solid #dc2626}.cal-legend-school{background:0 0;border:2px solid #111;border-radius:3px}.cal-legend-center{background:#fef3c7;border:1px solid #f59e0b;border-radius:3px}.cal-legend-lesson{background:var(--ok)}.cal-day-dot-center{background:#d97706!important}.cal-day-dot-school{background:#2563eb!important}.cal-week-holiday-center{color:#92400e;background:#fef3c7}.cal-week-holiday-school,.holiday-type-school{color:#1e40af;background:#dbeafe}.holiday-list-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:.75rem 0 .35rem;font-size:.75rem}.holiday-list-heading:first-child{margin-top:0}.holiday-list-row{text-align:left;cursor:pointer;border:0;border-bottom:1px solid var(--line);background:0 0;align-items:flex-start;gap:.5rem;width:100%;padding:.4rem 0;display:flex}.holiday-list-row-static{cursor:default}.holiday-list-main{flex-direction:column;gap:.1rem;min-width:0;display:flex}.holiday-year-list{max-height:min(70vh,640px);overflow:auto}.cal-week-actions{gap:.25rem;display:flex}.cal-agenda-holiday-btn{text-align:left;cursor:pointer;border:1px solid var(--line);background:#fffbeb;width:100%}.studio-holiday-sheet .form-actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.studio-holiday-sheet .form-actions-right{gap:.5rem;display:flex}.calendar-main{min-width:0}.cal-view-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.cal-nav{align-items:center;gap:.4rem;display:flex}.cal-title{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--ink);margin-left:.5rem;font-size:1.35rem;font-weight:600}.view-toggle{border:1px solid var(--line);background:var(--surface);border-radius:8px;display:inline-flex;overflow:hidden}.view-toggle button{appearance:none;cursor:pointer;color:var(--ink-soft);border:none;border-left:1px solid var(--line);background:0 0;padding:.45rem .85rem;font-size:.85rem;font-weight:600}.view-toggle button:first-child{border-left:none}.view-toggle button.active{background:var(--accent);color:#fff}.cal-holiday-controls{align-items:center;gap:.5rem;display:flex}.cal-holiday-controls select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:.4rem .6rem}.cal-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem 0;padding:.75rem;display:grid}.cal-cell{border:1px solid var(--line);background:var(--surface);box-sizing:border-box;border-radius:8px;flex-direction:column;gap:.25rem;min-height:7rem;margin:0 .2rem;padding:.4rem;display:flex;overflow:hidden}.cal-cell-empty{background:var(--panel);border-style:dashed}.cal-cell-today{outline:2px solid var(--accent);outline-offset:-1px}.cal-cell-center{background:#fef3c7}.cal-cell-school-range{z-index:1;border-width:2px 0;border-color:#111;border-radius:0}.cal-cell-school-single{border-width:2px;border-radius:8px}.cal-cell-school-start{border-left-width:2px;border-radius:8px 0 0 8px;margin-right:0}.cal-cell-school-middle{margin-left:0;margin-right:0}.cal-cell-school-end{border-right-width:2px;border-radius:0 8px 8px 0;margin-left:0}.cal-cell-head{justify-content:space-between;align-items:center;display:flex}.cal-cell-num{min-width:1.5rem;height:1.5rem;color:var(--ink-soft);box-sizing:border-box;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:inline-flex}.cal-cell-num-public{color:#b91c1c;border:2px solid #dc2626;border-radius:999px}.cal-cell-holiday{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-weight:600;overflow:hidden}.cal-event{appearance:none;border:none;border-left:3px solid var(--ok);text-align:left;background:var(--ok-soft);width:100%;color:var(--ink);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;padding:.2rem .4rem;font-size:.75rem;overflow:hidden}.cal-event:hover{background:#d8eadf}.cal-event-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}.cal-event-more{appearance:none;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:none;padding:.1rem .4rem;font-size:.72rem;font-weight:600}.cal-event-more:hover{color:var(--accent)}.cal-week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;display:grid}.cal-week-col{flex-direction:column;padding:0;display:flex;overflow:hidden}.cal-week-col-today{outline:2px solid var(--accent);outline-offset:-1px}.cal-week-col-head{border-bottom:1px solid var(--line);background:var(--panel);flex-direction:column;align-items:center;gap:.1rem;padding:.5rem;display:flex}.cal-week-dow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.68rem;font-weight:500}.cal-week-date{color:var(--ink);font-size:1.1rem;font-weight:600}.cal-week-col-body{flex-direction:column;gap:.3rem;min-height:8rem;padding:.5rem;display:flex}.cal-week-holiday{color:var(--gold);background:var(--gold-tint);border-radius:var(--radius-sm);padding:.2rem .4rem;font-size:.72rem;font-weight:600}.cal-week-add{appearance:none;border:1px dashed var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:.25rem;font-weight:700}.cal-week-add:hover{border-color:var(--accent);color:var(--accent)}.cal-agenda-holiday{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.cal-agenda-row{appearance:none;border:none;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:1rem;width:100%;padding:.75rem .25rem;display:flex}.cal-agenda-row:hover{background:var(--gold-tint)}.cal-agenda-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;width:3.5rem;color:var(--ink);font-weight:600}.cal-agenda-main{flex-direction:column;flex:1;gap:.1rem;display:flex}.cal-agenda-dur{color:var(--muted);white-space:nowrap;font-size:.8rem}@media (width<=960px){.cal-month-grid,.cal-week-grid{grid-template-columns:repeat(7,minmax(5.5rem,1fr));overflow-x:auto}}.level-list{gap:.55rem;display:grid}.level-row{grid-template-columns:2rem minmax(0,1fr) auto auto;align-items:center;gap:.5rem;display:grid}.level-order{color:var(--muted);text-align:center;font-size:.8rem;font-weight:700}.level-name-input{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:.45rem .6rem}.level-add-row{gap:.5rem;margin-top:.75rem;display:flex}.level-add-row input{border:1px solid var(--line);border-radius:8px;flex:1;padding:.5rem .65rem}.level-price-list{gap:.45rem;margin-top:.5rem;display:grid}.level-price-row{grid-template-columns:minmax(0,1fr) 8rem;align-items:center;gap:.5rem;display:grid}.level-price-row-wide{grid-template-columns:minmax(0,1fr) 7rem 5.5rem}.level-price-row input{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:.45rem .6rem}.fulfill-inline{gap:.4rem;min-width:9rem;display:grid}.fulfill-inline .level-name-input{max-width:8rem}.stat-note-accent{color:var(--gold);font-weight:600}.day-sched-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.day-sched-item{background:var(--ok-soft);border-left:3px solid var(--ok);border-radius:var(--radius-sm);align-items:center;gap:.85rem;padding:.6rem .75rem;display:flex}.day-sched-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink);flex-shrink:0;width:3.2rem;font-weight:600}.day-sched-main{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.day-sched-title{color:var(--ink);font-weight:600}.day-sched-sub{color:var(--ink-soft);font-size:.8rem}.day-sched-dur{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:.75rem}.panel-dark{color:#e4e2e2;background:linear-gradient(#1b1c1c 0%,#101112 100%);border-color:#2a2b2b}.panel-dark .panel-header{border-bottom-color:#ffffff14}.panel-dark h2{color:#fff}.panel-dark .muted-inline,.panel-dark .empty{color:#9a9895}.reg-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.reg-row{border-bottom:1px solid #ffffff12;align-items:center;gap:.75rem;padding:.7rem 0;display:flex}.reg-row:last-child{border-bottom:none}.reg-avatar{width:2.1rem;height:2.1rem;color:var(--gold-soft);letter-spacing:.02em;background:#fed48824;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.reg-main{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.reg-name{color:#fff;font-weight:600}.reg-course{color:#9a9895;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.reg-time{font-family:var(--font-mono);color:#8f8d8b;white-space:nowrap;flex-shrink:0;font-size:.72rem}.reg-view-all{text-align:center;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft);border-top:1px solid #ffffff14;margin-top:.85rem;padding-top:.85rem;font-size:.72rem;font-weight:500;display:block}.reg-view-all:hover{color:#fff}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem;display:grid}.form-grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:.9rem 1rem;display:grid}.form-section-title{border-top:1px solid var(--line);margin:.5rem 0 0;padding-top:1rem;font-size:1.05rem;font-weight:600}@media (width<=560px){.form-grid-2{grid-template-columns:minmax(0,1fr)}}.rules-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:1rem;display:grid}.holiday-columns{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1.5rem;display:grid}.holiday-columns h3{margin:0 0 .5rem;font-size:.95rem}.holiday-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.holiday-date{min-width:6.5rem;font-weight:600;display:inline-block}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.month-label{text-align:center;align-self:center;min-width:7rem;font-weight:600}.course-list{gap:1rem;display:grid}.course-meta{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1rem;display:grid}.chip-list{flex-wrap:wrap;gap:.4rem;margin-top:.35rem;display:flex}.chip-static{cursor:default}.chip-muted{opacity:.6}.status-inline-warn{color:var(--danger);font-size:.85rem}.attention-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.attention-list a{border:1px solid var(--line);border-radius:var(--radius-lg);min-height:44px;color:inherit;align-items:center;gap:.75rem;padding:.6rem .85rem;text-decoration:none;display:flex}.attention-list a:hover{border-color:var(--accent)}.attention-count{min-width:1.75rem;font-size:1.25rem;font-weight:700}.attention-go{opacity:.5;margin-left:auto}.segmented{border:1px solid var(--line-strong);border-radius:var(--radius-lg);display:inline-flex;overflow:hidden}.segmented button{background:var(--surface);min-height:36px;color:var(--ink-soft);font:inherit;cursor:pointer;border:0;padding:0 .85rem;font-size:.85rem;font-weight:600}.segmented button+button{border-left:1px solid var(--line-strong)}.segmented button.active{background:var(--charcoal);color:#fff}.weekday-picker{border:0;margin:0;padding:0}.weekday-picker legend{color:var(--ink-soft);margin-bottom:.25rem;font-size:.875rem;font-weight:600}.attention-panel{margin-bottom:1.25rem}.row-menu{display:inline-flex;position:relative}.row-menu-trigger{min-width:2.5rem;min-height:2.25rem;font-size:1.1rem;line-height:1}.row-menu-list{z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);min-width:9rem;box-shadow:var(--shadow-lg);padding:.3rem;display:grid;position:absolute;top:calc(100% + 4px);right:0}.row-menu-item{appearance:none;text-align:left;font:inherit;border-radius:var(--radius);min-height:2.5rem;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:.55rem .75rem;font-size:.9rem}.row-menu-item:hover,.row-menu-item:focus-visible{background:var(--panel)}.row-menu-danger{color:var(--danger)}.row-actions-end{flex-wrap:nowrap;justify-content:flex-end;align-items:center}.cell-time{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.cell-notes{max-width:18rem;color:var(--ink-soft);font-size:.9rem}.fulfil-row td{background:var(--panel)}.fulfil-panel{flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;display:flex}.fulfil-group{border:0;gap:.4rem;margin:0;padding:0;display:grid}.fulfil-group legend{color:var(--ink-soft);margin-bottom:.4rem;font-size:.875rem;font-weight:600}.fulfil-minutes{width:5.5rem}.fulfil-actions,.form-actions-delete{margin-left:auto}.money-line{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);min-height:44px;color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.35rem .6rem;margin:0 0 1.25rem;padding:.85rem 1.1rem;text-decoration:none;display:flex}.money-line strong{color:var(--ink)}.money-line:hover{border-color:var(--accent)}.money-line-go{opacity:.5;margin-left:auto}.today-layout{flex-wrap:wrap;align-items:flex-start;gap:1.25rem;display:flex}.today-lessons{flex:3 520px;min-width:0}.today-side{flex:260px;min-width:0}.lesson-list{margin:0;padding:0;list-style:none}.lesson-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.8rem 1.25rem;display:flex}.lesson-row:last-child{border-bottom:0}.lesson-time{font-variant-numeric:tabular-nums;min-width:3.25rem;font-weight:700}.lesson-main{flex-direction:column;flex:200px;gap:.1rem;min-width:0;display:flex}.lesson-name{font-weight:600}.lesson-sub{color:var(--muted);font-size:.875rem}.reg-list-light{padding:.25rem 1.25rem .75rem}.reg-list-light .reg-row{border-bottom-color:var(--line)}.reg-list-light .reg-avatar{background:var(--gold-tint);color:var(--gold)}.reg-list-light .reg-name{color:var(--ink)}.reg-list-light .reg-course,.reg-list-light .reg-time{color:var(--muted);font-family:var(--font-sans);font-size:.85rem}.muted-link{font-size:.9rem;font-weight:600}.form-span-all{grid-column:1/-1}@media (width<=600px){.money-line>span[aria-hidden=true]:not(.money-line-go){display:none}.money-line>span:not(.money-line-go){flex-basis:100%}}.cal-event-off{opacity:.6;background:var(--panel-high);border-left-color:var(--line-strong);text-decoration:line-through}.cal-event-makeup{background:var(--gold-tint);border-left-color:var(--gold)}
