:root{--bg: #0e1116;--panel: #151a22;--panel-2: #1b2230;--line: #232b38;--text: #e6edf3;--muted: #8b97a7;--accent: #7fd4ff;--accent-dim: rgba(127, 212, 255, .14);--radius: 12px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em;background:var(--panel-2);padding:1px 6px;border-radius:6px;color:var(--accent)}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.app-shell.collapsed{grid-template-columns:64px 1fr}.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.sidebar.collapsed{padding:18px 8px;align-items:center}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar.collapsed .sidebar-top{flex-direction:column;gap:12px}.sidebar-toggle{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:8px;width:28px;height:28px;flex:none;cursor:pointer;font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;transition:color .2s ease,border-color .2s ease}.sidebar-toggle:hover{color:var(--accent);border-color:var(--accent)}.sidebar.collapsed .nav{width:100%;margin-top:8px}.sidebar.collapsed .nav-item{justify-content:center;padding:10px 0;gap:0}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700}.stencil{color:var(--accent);flex:none;display:block}.brand-mark{height:42px;width:auto;display:block}.brand-lockup{display:inline-flex;align-items:center;gap:7px}.brand-wordmark{height:48px;width:auto;display:block}.brand-fms{font-size:32px;font-weight:800;color:#fff;letter-spacing:.01em;line-height:1}.brand-sub{margin:2px 0 18px 2px;color:var(--muted);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:var(--muted);transition:background .24s ease,color .24s ease}.nav-item:hover{background:var(--panel-2);color:var(--text)}.nav-item.active{background:var(--accent-dim);color:var(--text)}.nav-label{font-size:14px}.nav-item.scaffold{opacity:.45}.nav-item.scaffold:hover{opacity:.7}.sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.content{padding:40px 48px;max-width:1100px}.page-head{margin-bottom:28px}.page-title{display:flex;align-items:center;gap:12px}h1{margin:0;font-size:28px}h2{font-size:16px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:28px 0 12px}.lede{color:var(--muted);font-size:15px;max-width:60ch;margin:8px 0 0}.badge{display:inline-block;margin-top:14px;font-size:12px;color:var(--accent);background:var(--accent-dim);padding:4px 10px;border-radius:999px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;transition:border-color .24s ease,transform .24s ease}.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card-icon{margin-bottom:8px}.card.scaffold{opacity:.5}.card.scaffold:hover{opacity:.8}.card.scaffold h3,.scaffold-title{color:var(--muted)}@supports (-webkit-text-stroke: 1px black){.card.scaffold h3,.scaffold-title{color:transparent;-webkit-text-stroke:.6px var(--muted)}}.card h3{margin:0 0 6px;font-size:16px}.card p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.card-count{display:inline-block;margin-top:12px;font-size:12px;color:var(--accent)}.feature-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.feature{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.feature-check{color:var(--muted);font-size:18px;line-height:1.2}.feature strong{display:block;font-size:14px}.feature-note{display:block;color:var(--muted);font-size:13px;margin-top:3px}.build-here{margin-top:28px;color:var(--muted);font-size:13px}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:32px;width:100%;max-width:360px;text-align:center}.auth-brand{display:flex;align-items:center;justify-content:center;gap:8px;font-size:20px;font-weight:700}.auth-title{font-size:22px;margin:18px 0 4px}.auth-sub{color:var(--muted);font-size:14px;margin:0 0 18px}.auth-error{color:#ffb4b4;background:#ff78781f;border:1px solid rgba(255,120,120,.25);border-radius:9px;padding:10px 12px;font-size:13px;margin:0 0 14px;text-align:left}.auth-form{display:flex;flex-direction:column;gap:10px;text-align:left}.auth-label{font-size:13px;color:var(--muted)}.auth-input{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:9px;padding:11px 12px;font-size:14px;width:100%}.auth-input:focus{outline:none;border-color:var(--accent)}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin:16px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:11px 16px;border-radius:9px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;transition:border-color .24s ease,background .24s ease}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent-dim);border-color:#7fd4ff66}.facility-switcher{display:flex;flex-direction:column;gap:4px;margin:4px 0 14px}.facility-switcher-label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.facility-switcher select{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-size:13px;width:100%}.facility-single{margin:4px 0 14px}.facility-single .facility-name{display:block;font-size:14px;font-weight:600}.facility-single .facility-role{font-size:12px;color:var(--muted);text-transform:capitalize}.sidebar-foot .who{display:block;margin-bottom:8px;word-break:break-all}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:0;text-align:left}.link-btn:hover{text-decoration:underline}.seg{display:inline-flex;margin-top:14px;border:1px solid var(--line);border-radius:9px;overflow:hidden}.seg button{background:var(--panel);color:var(--muted);border:none;padding:7px 16px;min-height:36px;cursor:pointer;font-size:13px}.seg button.active{background:var(--accent-dim);color:var(--text)}.sched{margin-top:8px}.sched-notice{color:var(--accent);background:var(--accent-dim);border-radius:9px;padding:8px 12px;font-size:13px;margin:0 0 14px}.sched-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.panel h2{margin-top:0}.mini-list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:6px}.mini-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;padding:7px 10px;background:var(--panel-2);border-radius:8px}.tag{font-size:11px;color:var(--accent);background:var(--accent-dim);padding:2px 8px;border-radius:999px;text-transform:capitalize;white-space:nowrap}.tag.ok{color:#9be9b4;background:#78ffa01f}.tag.warn{color:#ffd79b;background:#ffc87824}.row-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row-form.col{flex-direction:column;align-items:stretch}.row-form select,.row-form input[type=text],.row-form input,.row-form button{min-height:40px}.row-form select,.row-form input{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;flex:1 1 auto;min-width:0}.check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.check input{flex:none}.field{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;min-width:0}.field>span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.field select,.field input{width:100%}.field textarea.cal-notes{width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;resize:vertical}.field textarea.cal-notes:focus{outline:none;border-color:var(--accent)}.day-chips{display:flex;gap:6px;flex-wrap:wrap}.day-chip{background:var(--bg);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:7px 12px;min-height:38px;font-size:13px;cursor:pointer}.day-chip:hover{border-color:var(--accent)}.day-chip.on{background:var(--accent-dim);border-color:#7fd4ff66;color:var(--text)}.slot-block{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px}.person-open{background:none;border:none;text-align:left;cursor:pointer;padding:0;min-width:0;color:var(--text)}.person-open strong{display:block;font-size:14px}.person-open:hover strong{color:var(--accent)}input[type=time]::-webkit-calendar-picker-indicator,input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;filter:brightness(0) saturate(100%) invert(80%) sepia(40%) saturate(2000%) hue-rotate(160deg) brightness(105%)}.cal{-webkit-user-select:none;user-select:none}.cal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.cal-nav{display:flex;align-items:center;gap:8px}.cal-nav .btn{padding:6px 12px;min-width:0}.cal-range{font-size:15px;margin-left:6px;white-space:nowrap}.cal-tools{display:flex;align-items:center;gap:10px}.cal-tools .seg{margin-top:0}.cal-nav .btn,.cal-tools select,.cal-tools .seg button{height:38px;box-sizing:border-box}.cal-tools select{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:7px 10px;font-size:13px}.cal-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 12px;font-size:12px}.cal-legend-item{text-transform:capitalize;padding-left:16px;position:relative;color:var(--muted)}.cal-legend-item:before{content:"";position:absolute;left:0;top:2px;width:11px;height:11px;border-radius:3px;background:var(--cal-c);border-left:3px solid var(--cal-c)}.cal-legend-note{color:var(--muted);margin-left:auto}.type-league{--cal-c: #7fd4ff}.type-private{--cal-c: #9b8cff}.type-lesson{--cal-c: #5fe0b0}.type-maintenance{--cal-c: #ffb067}.type-public{--cal-c: #ff7fa8}.cal-timegrid{display:flex;gap:0;overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.cal-gutter{flex:none;width:56px;border-right:1px solid var(--line)}.cal-gutter-h{font-size:11px;color:var(--muted);text-align:right;padding:2px 6px 0 0;box-sizing:border-box;border-top:1px solid var(--line)}.cal-cols{display:flex;flex:1 1 auto;min-width:0}.cal-col-wrap{flex:1 1 0;min-width:90px;border-right:1px solid var(--line)}.cal-col-wrap:last-child{border-right:none}.cal-timegrid.day .cal-col-wrap{min-width:0}.cal-col-head{height:30px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}.cal-col-head.today{color:var(--accent);font-weight:600}.cal-daycol{position:relative}.cal-cell{border-top:1px solid var(--line);box-sizing:border-box;cursor:crosshair}.cal-cell:hover{background:#7fd4ff0d}.cal-window{position:absolute;left:2px;right:2px;border-radius:5px;pointer-events:none;overflow:hidden;background:color-mix(in srgb,var(--cal-c) 16%,transparent);border:1px solid color-mix(in srgb,var(--cal-c) 40%,transparent)}.cal-window.draft{opacity:.45;border-style:dashed}.cal-window-label{font-size:10px;color:var(--cal-c);padding:1px 4px;text-transform:capitalize;display:block}.cal-sel{position:absolute;left:2px;right:2px;background:#7fd4ff38;border:1px solid var(--accent);border-radius:5px;pointer-events:none}.cal-event{position:absolute;left:4px;right:4px;border-radius:6px;padding:3px 6px;overflow:hidden;box-sizing:border-box;cursor:pointer;background:color-mix(in srgb,var(--cal-c) 26%,var(--panel-2));border-left:3px solid var(--cal-c);font-size:11px}.cal-event:hover{background:color-mix(in srgb,var(--cal-c) 38%,var(--panel-2))}.cal-event.requested{opacity:.7;border-left-style:dashed}.cal-event.draft{opacity:.5;border-left-style:dashed}.cal-event-t{font-weight:600}.cal-event-m{color:var(--muted);line-height:1.3}.cal-event-x{position:absolute;top:2px;right:3px;background:none;border:none;color:var(--muted);cursor:pointer;font-size:11px;line-height:1;padding:1px}.cal-event-x:hover{color:#ffb4b4}.cal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}.cal-month-dow{font-size:11px;color:var(--muted);text-align:center;padding:6px 0;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em}.cal-month-cell{min-height:96px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px;cursor:pointer}.cal-month-cell.off{opacity:.4}.cal-month-cell.today .cal-month-num{background:var(--accent);color:#06121b}.cal-month-cell:hover{background:#7fd4ff0a}.cal-month-num{background:none;border:none;color:var(--text);font-size:12px;cursor:pointer;border-radius:50%;width:22px;height:22px;padding:0}.cal-month-num:hover{background:var(--accent-dim)}.cal-month-win{display:block;font-size:10px;color:var(--muted);margin:1px 0 2px}.cal-chip{font-size:10px;border-radius:4px;padding:1px 4px;margin-top:2px;background:color-mix(in srgb,var(--cal-c) 22%,var(--panel-2));border-left:2px solid var(--cal-c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-chip{cursor:pointer}.cal-chip.requested{opacity:.7}.cal-chip.draft{opacity:.5}.cal-more{font-size:10px;color:var(--muted);margin-top:2px}.cal-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#060a1099;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.cal-modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:12px}.cal-modal h3{margin:0}.cal-modal .btn{width:auto}.cal-modal .grow{flex:1 1 auto}.combo{position:relative;width:100%}.combo-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;min-height:40px;cursor:pointer;text-align:left}.combo-trigger:hover:not(:disabled){border-color:var(--accent)}.combo.disabled .combo-trigger{opacity:.55;cursor:default}.combo-caret{color:var(--muted);font-size:11px;flex:none}.combo-pop{position:absolute;z-index:60;top:calc(100% + 4px);left:0;right:0;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #00000073;padding:6px;max-height:260px;display:flex;flex-direction:column}.combo-input{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:7px 9px;font-size:13px;margin-bottom:6px;width:100%;box-sizing:border-box}.combo-input:focus{outline:none;border-color:var(--accent)}.combo-list{list-style:none;margin:0;padding:0;overflow-y:auto}.combo-opt{width:100%;text-align:left;background:none;border:none;color:var(--text);padding:7px 9px;border-radius:6px;font-size:13px;cursor:pointer}.combo-opt:hover{background:var(--accent-dim)}.combo-opt.sel{color:var(--accent)}.combo-empty{padding:7px 9px;font-size:13px}.book-list{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-direction:column;gap:8px}.book-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.book-row strong{display:block;font-size:14px}.book-when{display:block;color:var(--muted);font-size:13px;margin:2px 0}.book-row .btn{width:auto;flex:none;padding:8px 18px}.book-row .grow{flex:1 1 auto;min-width:0}.inline-edit{background:transparent;border:1px solid transparent;color:var(--text);font-size:14px;font-weight:600;border-radius:6px;padding:3px 6px;width:100%}.inline-edit:hover{border-color:var(--line)}.inline-edit:focus{outline:none;border-color:var(--accent);background:var(--bg)}.muted{color:var(--muted)}.small{font-size:12px}@media (max-width: 760px){.cal-head{align-items:stretch}.cal-month-cell{min-height:64px}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}.card:hover{transform:none}}@media (max-width: 760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:column}.nav{flex-direction:row;flex-wrap:wrap}.nav-label{display:none}.content{padding:24px 18px}}
