:root{--bg:#f6f6f4;--surface:#fff;--text:#1d1d1b;--muted:#6b6b66;--line:#e2e2dd;--accent:#2f5d8a;--warn-bg:#fff4e0;--warn-text:#8a5a00;--bad-bg:#fdeceb;--bad-text:#9b2c22;--radius:6px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--today:#0b57d0;--now:#d93025;--grid-line:#e3e3e3;--hour:48px;--time-col:40px;--tc0-bg:#d3e3fd;--tc0-fg:#041e49;--tc1-bg:#c4ede0;--tc1-fg:#06352b;--tc2-bg:#fde4bf;--tc2-fg:#3d2400;--tc3-bg:#e6dcf8;--tc3-fg:#241650;--tc4-bg:#f8dbe2;--tc4-fg:#47101f;--tc5-bg:#dfe3e8;--tc5-fg:#1f2a37;--tc6-bg:#c9eef4;--tc6-fg:#00363d;--tc7-bg:#f3ecb8;--tc7-fg:#3b3000;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#171716;--surface:#222220;--text:#ecece8;--muted:#9c9c95;--line:#34342f;--accent:#8fb6dd;--warn-bg:#3a2e14;--warn-text:#f0c66e;--bad-bg:#3d1f1c;--bad-text:#f2a39a;--today:#a8c7fa;--now:#f28b82;--grid-line:#34342f;--tc0-bg:#284a7e;--tc0-fg:#e3ecfd;--tc1-bg:#1f5244;--tc1-fg:#dcf5ec;--tc2-bg:#634318;--tc2-fg:#fdebd2;--tc3-bg:#463670;--tc3-fg:#eee6fb;--tc4-bg:#6a2d3d;--tc4-fg:#fbe5ea;--tc5-bg:#3c4550;--tc5-fg:#e6e9ee;--tc6-bg:#1d5560;--tc6-fg:#d9f4f8;--tc7-bg:#5a5214;--tc7-fg:#f7f0c6}}@media (width>=900px){:root{--hour:56px;--time-col:52px}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--font);margin:0}.page{width:100%;max-width:1280px;margin:0 auto;padding:16px}.page-head{align-items:flex-start;gap:8px;display:flex}.page-head-text{flex-grow:1}h1{margin:0 0 4px;font-size:20px}h2{margin:0;font-size:15px}h3{color:var(--muted);margin:16px 0 6px;font-size:13px;font-weight:600}.muted{color:var(--muted)}.small{font-size:12px}.howto{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:12px 0 16px;padding:10px 14px}.howto summary{cursor:pointer;font-weight:600}.howto li{margin:6px 0}.grid{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=900px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:14px}.card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.summary{margin:8px 0}.attention{color:var(--bad-text);font-weight:600}.badge{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px}.badge-warn{background:var(--warn-bg);color:var(--warn-text);border-color:#0000}.controls{flex-wrap:wrap;gap:6px 16px;margin:8px 0;display:flex}.switch{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.actions{flex-wrap:wrap;gap:8px;margin:10px 0 12px;display:flex}button{font:inherit;border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:var(--surface);cursor:pointer;padding:7px 12px}button.secondary{color:var(--accent);background:0 0}button.link{color:var(--accent);text-align:left;background:0 0;border:0;padding:0}.sheet-facts a{color:var(--accent);text-decoration:none}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:6px 4px}.table thead th{color:var(--muted);font-size:12px;font-weight:600}.kv th{font-weight:400}.num{text-align:right;font-variant-numeric:tabular-nums}.status-pending{color:var(--warn-text)}.row-attention td{background:var(--bad-bg)}.reason{color:var(--bad-text);margin-top:2px;font-size:12px}.narrow{max-width:400px}.form,.choose{flex-direction:column;gap:12px;margin-top:12px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.form input,.form select{font:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:10px 12px;font-size:16px}.form button,.wide{min-height:44px}.note{background:var(--warn-bg);color:var(--warn-text);border-radius:var(--radius);padding:8px 12px}.head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.app{height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.app-screen{background:var(--bg);flex-direction:column;flex-grow:1;min-height:0;display:flex;overflow-y:auto}.app-note{margin:8px 12px 0}.icon-btn{width:44px;height:44px;color:var(--muted);background:0 0;border:0;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.icon-btn:hover{background:color-mix(in srgb, var(--text) 8%, transparent)}.drawer-backdrop,.sheet-backdrop{z-index:20;background:#00000052;position:fixed;inset:0}.drawer{width:min(300px,85vw);padding:calc(16px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));background:var(--surface);flex-direction:column;gap:4px;display:flex;position:absolute;inset:0 auto 0 0;box-shadow:2px 0 10px #00000026}.drawer-who{border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:8px;padding:4px 12px 16px;display:flex}.drawer-item{min-height:48px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:24px;padding:0 16px}.drawer-item:hover{background:color-mix(in srgb, var(--text) 6%, transparent)}.drawer-on{background:color-mix(in srgb, var(--today) 18%, transparent);font-weight:600}.drawer-spacer{flex-grow:1}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.cal{background:var(--surface);flex-direction:column;flex-grow:1;min-height:0;display:flex}.cal-bar{align-items:center;gap:0;padding:6px 4px 0;display:flex}.cal-title{white-space:nowrap;text-overflow:ellipsis;flex-grow:1;min-width:0;margin:0 4px;font-size:20px;font-weight:400;overflow:hidden}.today-icon{border:2px solid;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.seg{border:1px solid var(--line);border-radius:18px;flex-shrink:0;display:inline-flex;overflow:hidden}.seg button{height:34px;color:var(--text);background:0 0;border:0;border-radius:0;padding:0 12px}.seg button+button{border-left:1px solid var(--line)}.seg .seg-on{background:color-mix(in srgb, var(--today) 18%, transparent);font-weight:600}.cal-filters{align-items:center;gap:6px;padding:2px 8px 6px;display:flex}.cal-filters label,.student-picker,.student-picked{flex:1 1 0;min-width:0;max-width:220px}.student-picker{position:relative}.student-picker input{font:inherit;border:1px solid var(--line);background:var(--surface);width:100%;height:36px;color:var(--text);border-radius:8px;padding:0 8px}.student-suggest{z-index:15;background:var(--surface);border:1px solid var(--line);border-radius:8px;width:max(100%,220px);max-width:calc(100vw - 16px);max-height:50dvh;margin:0;padding:4px 0;list-style:none;position:absolute;top:40px;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.student-suggest button{width:100%;min-height:40px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:0;padding:0 12px}.student-suggest button:hover{background:color-mix(in srgb, var(--text) 6%, transparent)}.student-none{color:var(--muted);padding:8px 12px}.student-picked{background:color-mix(in srgb, var(--today) 14%, transparent);border-radius:8px;align-items:center;height:36px;padding:0 0 0 10px;display:flex}.student-picked-name{white-space:nowrap;text-overflow:ellipsis;flex-grow:1;min-width:0;font-weight:600;overflow:hidden}.student-clear{width:36px;height:36px;color:var(--text);background:0 0;border:0;padding:0;font-size:20px}.search-backdrop{z-index:20;background:var(--surface);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed;inset:0}.search{flex-direction:column;max-width:720px;height:100%;margin:0 auto;display:flex}.search-head{border-bottom:1px solid var(--grid-line);align-items:center;gap:4px;padding:6px 8px;display:flex}.search-input{border:1px solid var(--line);background:var(--bg);min-width:0;height:40px;color:var(--text);font:inherit;border-radius:20px;flex-grow:1;padding:0 12px;font-size:16px}.search-list{flex-grow:1;min-height:0;padding:0 8px 16px;overflow-y:auto}.search-hint,.search-count{color:var(--muted);margin:12px 8px}.search-day{color:var(--muted);margin:14px 8px 4px;font-size:13px;font-weight:600}.search-today{color:var(--today)}.search-row{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;align-items:flex-start;gap:10px;padding:8px;display:flex}.search-row:hover{background:color-mix(in srgb, var(--text) 5%, transparent)}.search-dot{border-radius:3px;flex-shrink:0;width:10px;height:10px;margin-top:4px}.search-time{white-space:nowrap;font-variant-numeric:tabular-nums;width:92px;color:var(--muted);flex-shrink:0}.search-main{flex-direction:column;min-width:0;display:flex}.search-main .flag{margin-right:2px}.cal-filters select{font:inherit;border:1px solid var(--line);background:var(--surface);width:100%;height:36px;color:var(--text);text-overflow:ellipsis;border-radius:8px;padding:0 4px 0 8px}.cal-note{margin:4px 12px 6px}.cal-head{grid-template-columns:var(--time-col) repeat(7, 1fr);border-bottom:1px solid var(--grid-line);padding-bottom:4px;display:grid}.cal-head-day{grid-template-columns:repeat(7,1fr)}.cal-head-day>:first-child{display:none}.cal-day{min-width:0;color:var(--muted);background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:2px 0;display:flex}.cal-dow{font-size:11px}.cal-num{width:30px;height:30px;color:var(--text);border-radius:15px;justify-content:center;align-items:center;font-size:15px;display:flex}.cal-picked .cal-num{outline:2px solid var(--today);outline-offset:-2px}.cal>:not(.cal-body){flex-shrink:0}.room-chips{border-bottom:1px solid var(--grid-line);scrollbar-width:none;gap:6px;padding:6px 8px;display:flex;overflow:auto hidden}.chip-check{border:1px solid var(--line);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex-shrink:0;align-items:center;gap:4px;min-height:32px;padding:0 10px 0 6px;font-size:13px;display:inline-flex}.chip-check input{width:16px;height:16px;accent-color:var(--today);margin:0}.chip-on{background:color-mix(in srgb, var(--today) 14%, transparent);border-color:#0000}.cal-today .cal-dow{color:var(--today);font-weight:600}.cal-today .cal-num{background:var(--today);color:var(--surface)}.cal-body{touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;flex-grow:1;min-height:0;overflow:hidden auto}.cal-grid{background:repeating-linear-gradient(to bottom, var(--grid-line) 0, var(--grid-line) 1px, transparent 1px, transparent var(--hour));display:grid}.cal-times{z-index:2;color:var(--muted);background:var(--surface);font-size:10px;position:relative}.cal-times span{position:absolute;right:6px;transform:translateY(-50%)}.cal-col{border-left:1px solid var(--grid-line);min-width:0;position:relative}.cal-pages{min-width:0;transform:translateX(var(--swipe-x,0px));position:relative}.cal-swipe-anim .cal-pages{transition:transform .2s ease-out}.cal-page{width:100%;display:grid;position:absolute;top:0;bottom:0;left:0}.cal-page-prev{left:-100%}.cal-page-next{left:100%}.cal-ev{box-sizing:border-box;border:1px solid var(--surface);text-align:left;cursor:pointer;border-radius:6px;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:2px 3px;font-size:10px;line-height:1.2;display:flex;position:absolute;overflow:hidden;container-type:inline-size}.cal-ev-text{overflow-wrap:anywhere;flex-direction:column;align-items:flex-start;display:flex}.cal-ev-name{font-weight:600}.cal-flags{vertical-align:1px;align-items:center;gap:2px;margin-right:3px;display:inline-flex}.flag{text-align:center;color:#fff;border:1px solid #0000;border-radius:2px;min-width:1.15em;padding:0 2px;font-size:.8em;font-weight:700;line-height:1.25;display:inline-block}.flag-trial{color:#1f1f1f;background:#fbbc04;border-color:#e09c00}.flag-free{background:#5f6368;border-color:#3c4043}.flag-confirmed{background:#188038;border-color:#137333}.flag-settle{background:#d93025;border-color:#b3261e}.flag-contract,.flag-act{background:#1a73e8;border-color:#1967d2}.cal-ev-room{opacity:.85}@container (width<=20px){.cal-ev-text{display:none}}.cal-ev-past:after{content:"";background:var(--surface);opacity:.4;pointer-events:none;position:absolute;inset:0}.cal-now{background:var(--now);pointer-events:none;height:2px;position:absolute;left:-5px;right:0}.cal-now:before{content:"";background:var(--now);border-radius:5px;width:10px;height:10px;position:absolute;top:-4px;left:0}.cal-empty{text-align:center;margin:8px}@media (width>=900px){.cal-ev{font-size:12px}.cal-ev-name{font-weight:500}}.tc0{background:var(--tc0-bg);color:var(--tc0-fg)}.tc1{background:var(--tc1-bg);color:var(--tc1-fg)}.tc2{background:var(--tc2-bg);color:var(--tc2-fg)}.tc3{background:var(--tc3-bg);color:var(--tc3-fg)}.tc4{background:var(--tc4-bg);color:var(--tc4-fg)}.tc5{background:var(--tc5-bg);color:var(--tc5-fg)}.tc6{background:var(--tc6-bg);color:var(--tc6-fg)}.tc7{background:var(--tc7-bg);color:var(--tc7-fg)}.sheet{max-height:85dvh;padding:8px 20px calc(24px + env(safe-area-inset-bottom));background:var(--surface);border-radius:20px 20px 0 0;flex-direction:column;gap:14px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -2px 10px #0000001f}@media (width>=700px){.sheet{border-radius:16px;width:440px;inset:15% auto auto 50%;transform:translate(-50%)}.sheet-grip{display:none}}.sheet-grip{background:var(--line);border-radius:2px;align-self:center;width:36px;height:4px}.sheet-head{align-items:flex-start;gap:12px;display:flex}.sheet-dot{border-radius:4px;flex-shrink:0;width:14px;height:14px;margin-top:7px}.sheet-title{flex-grow:1;min-width:0}.sheet-title h2{margin:0 0 2px;font-size:22px;font-weight:400}.sheet-head .icon-btn{margin:-8px -12px 0 0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:color-mix(in srgb, var(--text) 7%, transparent);border-radius:8px;padding:4px 10px;font-size:12px}.sheet-facts{grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;margin:0;display:grid}.sheet-facts dt{color:var(--muted)}.sheet-facts dd{margin:0}@supports (-webkit-touch-callout:none){.cal-filters select,.student-picker input{font-size:16px}.app{padding-top:max(calc(env(safe-area-inset-top) - 22px), 22px)}.drawer{padding-top:max(calc(env(safe-area-inset-top) + 0px), 44px)}}.page>.card{margin-top:12px}.sheet-file{flex-direction:column;gap:6px;display:flex}.sheet-counts{grid-template-columns:max-content max-content;gap:4px 16px;margin:10px 0 0;display:grid}.sheet-counts dt{color:var(--muted)}.sheet-counts dd{font-variant-numeric:tabular-nums;margin:0}.sheet-check{white-space:nowrap}.sheet-apply{padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:var(--bg);align-items:center;gap:12px;margin-top:12px;display:flex;position:sticky;bottom:0}.table-scroll{overflow-x:auto}.row-on td{background:var(--bg)}.access-link{overflow-wrap:anywhere;font-family:ui-monospace,Menlo,monospace;font-size:13px}.review-summary{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex}.review-list{margin:8px 0 0;padding:0;list-style:none}.review-item{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);gap:10px;padding:10px 0;display:grid}.review-item input{width:20px;height:20px;margin-top:2px}.review-title{font-weight:600}.review-done{opacity:.55}@media print{.drawer-backdrop,.icon-btn,.review-summary label{display:none}}.money h3{margin-top:4px}.money-charges{margin:0;padding-left:18px}.review-fix{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.review-fix select{max-width:100%}
