:root{color:#eef4fc;font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--muted:#8799b5;--line:#253650;--blue:#4bc9ee;background:#081225;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;border:0}input,select,textarea{border:1px solid var(--line);width:100%;min-height:48px;color:inherit;background:#0b192e;border-radius:12px;padding:12px;font-size:16px}button{min-height:44px}button:disabled{opacity:.45;cursor:default}button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.mobile{background:radial-gradient(at 100% 0,#14325288,#0000 55%);max-width:560px;min-height:100dvh;margin:auto}header{padding:calc(18px + env(safe-area-inset-top)) 22px 17px;border-bottom:1px solid #1a2c42;align-items:center;gap:10px;display:flex}header img{border-radius:9px;width:38px;height:38px}header b{font-size:18px}header span{color:var(--blue);font-size:12px;font-weight:400}header small{color:var(--muted);letter-spacing:.12em;margin-top:4px;font-size:10px;display:block}.icon{background:#12263b;border-radius:50%;width:44px;margin-left:auto;font-size:24px}main{padding:18px 22px calc(110px + env(safe-area-inset-bottom))}h1{letter-spacing:-.04em;margin:4px 0 22px;font-size:29px}h2{font-size:23px}h3{font-size:16px}.eyebrow{color:#829bb9;letter-spacing:.16em;margin-top:12px;font-size:10px}.muted,small{color:var(--muted);line-height:1.6}.connection{color:#92b8d5;background:#10203477;padding:12px 22px;font-size:11px}.connection small{float:right;font-size:10px}.connection.offline{color:#e5bf76}.section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.primary,.secondary,.danger{background:var(--blue);color:#062035;border-radius:12px;width:100%;margin:7px 0;padding:13px 16px;font-weight:600}.secondary{color:#a4c6e4;background:#142940;border:1px solid #2a4560}.danger{color:#ff9aab;background:#351c2c}.compact{white-space:nowrap;width:auto;padding:10px 12px;font-size:12px}.link{color:var(--blue);background:0 0;padding:10px 0;font-size:13px}.datebar{align-items:center;gap:8px;display:flex}.datebar button{background:#11243a;border-radius:10px;min-width:44px;font-size:24px}.datebar input{text-align:center;background:#11243a;border:0;flex:1;min-width:0}.segmented{background:#0b182b;border:1px solid #21334c;border-radius:11px;margin-top:16px;padding:4px;display:flex}.segmented button{color:#829bb7;background:0 0;border-radius:8px;flex:1;min-height:36px;font-size:13px}.segmented .selected{color:#e9f7ff;background:#22425e}.legend{color:var(--muted);align-items:center;gap:6px;margin:18px 0;font-size:10px;display:flex}.legend i{background:#4bc9ee;border-radius:50%;width:5px;height:5px}.legend i:nth-of-type(2){background:#54d5ab;margin-left:14px}.legend i:nth-of-type(3){background:#7b8495;margin-left:14px}.session{text-align:left;background:#10283f;border:1px solid #2b526d;border-left:3px solid #4bc9ee;border-radius:13px;align-items:center;gap:13px;width:100%;margin:10px 0;padding:18px 13px;display:flex}.hour{letter-spacing:-.02em;min-width:49px;font-size:16px;font-weight:600}.hour small{font-size:10px;font-weight:400;display:block}.session-name{flex:1;min-width:0}.session-name b{font-size:16px}.session-name small{margin-top:5px;font-size:10px;display:block}.badge{color:#7fdbf6;white-space:nowrap;font-size:10px}.session.attended{background:#0f292c;border-color:#244e47 #244e47 #244e47 #54d5ab}.attended .badge{color:#6cd9b4}.session.missed{color:#99a6b8;background:#141e30;border-color:#2b3547 #2b3547 #2b3547 #758399}.missed .badge{color:#96a3b6}.empty{text-align:center;color:#879bb5;border:1px dashed var(--line);border-radius:15px;margin:20px 0;padding:50px 10px;font-size:14px}.empty small{font-size:11px}.panel{background:#0d1c30;border:1px solid #25384f;border-radius:14px;margin:12px 0;padding:18px}.search{margin-bottom:14px}.student-row{text-align:left;background:0 0;border-bottom:1px solid #1c2e46;align-items:center;gap:12px;width:100%;padding:16px 0;display:flex}.student-row small{margin-left:auto;font-size:11px}.avatar{color:#69d7f4;background:#143c53;border-radius:50%;padding:11px;font-weight:600}.balance{color:var(--blue);font-size:36px;font-weight:700}.balance small{margin-left:10px;font-size:12px;font-weight:400}.record{text-align:left;width:100%;color:inherit;border-bottom:1px solid var(--line);background:0 0;padding:15px 0;display:block}.record.panel{background:#0d1c30;padding:18px}.record p{color:#b5c4d8;white-space:pre-wrap;margin-bottom:0;font-size:13px;line-height:1.6}.record h3{margin:6px 0}.record small{font-size:11px}summary{cursor:pointer;min-height:36px;font-size:14px}summary small{float:right}.bottom{width:min(560px,100%);padding:8px 18px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:10;background:#0b192bed;border-top:1px solid #22364d;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom button{color:#8193ad;background:0 0;flex:1;min-height:50px;font-size:11px}.bottom button span{margin-bottom:4px;font-size:23px;display:block}.bottom .active{color:var(--blue)}.install{color:#667d99;margin-top:30px;font-size:10px;line-height:1.7}.overlay{z-index:30;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#030a16bb;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:min(560px,100%);max-height:92dvh;padding:22px 24px calc(24px + env(safe-area-inset-bottom));background:#0e1f34;border:1px solid #2b405a;border-radius:23px 23px 0 0;position:relative;overflow:auto}.close{color:#8ca1bb;background:0 0;width:44px;font-size:26px;position:absolute;top:12px;right:16px}label{color:#a9bdd5;margin:16px 0;font-size:12px;display:block}label input,label select,label textarea{margin-top:8px}textarea{resize:vertical;min-height:140px}.sheet p{font-size:13px;line-height:1.7}.confirm{z-index:40}.message{top:calc(7px + env(safe-area-inset-top));color:#d8f2fd;z-index:60;background:#15384a;border:1px solid #35738b;border-radius:12px;width:500px;max-width:calc(100% - 24px);padding:12px 40px 12px 14px;font-size:12px;line-height:1.5;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 25px #0008}.message button{color:inherit;background:0 0;font-size:22px;position:absolute;top:0;right:5px}.message.error{top:calc(65px + env(safe-area-inset-top));background:#382333;border-color:#7d3e55}.login h1{margin:24px 0;font-size:45px;line-height:1.15}.login{padding-top:30px}.login>.muted{font-size:13px}.drafts>p{color:#b5a886;font-size:11px}.status.attended{color:#54d5ab}.status.pending{color:#4bc9ee}.status.missed{color:#9ba7b9}@media (prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}}.overlay{bottom:var(--keyboard-inset,0px)}.sheet{max-height:calc(92dvh - var(--keyboard-inset,0px));scroll-padding-bottom:80px}textarea,input{scroll-margin-block:80px}.sheet form>.primary{z-index:1;position:sticky;bottom:0}.sheet textarea{min-height:180px}.sheet pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#081225;border-radius:8px;padding:12px;font-size:12px}.week-range{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.week-tools{color:var(--muted);justify-content:space-between;align-items:center;gap:4px;margin:0 0 10px;font-size:10px;display:flex}.week-tools>div{gap:4px;display:flex}.week-tools button{background:#11243a;border:1px solid #253650;border-radius:8px;min-width:36px;min-height:44px;padding:0 8px;font-size:11px}.week-tools button:first-child,.week-tools button:last-child{font-size:17px}.week-viewport{touch-action:pan-y;isolation:isolate;border:1px solid #2a4057;border-radius:10px;width:100%;position:relative;overflow:hidden}.week-canvas{transform-origin:0 0;-webkit-user-select:none;user-select:none;will-change:transform;font-family:inherit;position:absolute;top:0;left:0}.week-block{cursor:pointer;outline:none}.week-block rect{fill:#143c57;stroke:#2c9ac6;stroke-width:1.5px}.week-block text{fill:#b9e6fa;pointer-events:none}.week-block.attended rect{fill:#103c32;stroke:#2eb88d}.week-block.attended text{fill:#c2efdf}.week-block.missed rect{fill:#2a3440;stroke:#687786}.week-block.missed text{fill:#c1cbd5}.week-block:focus-visible>rect{stroke:#fff;stroke-width:3px}.week-block:active>rect{stroke:#fff}.week-empty{color:var(--muted);font-size:12px;line-height:1.6}.week-accessible{color:var(--muted);margin-top:14px;font-size:12px}.week-accessible .record{min-height:44px;font-size:13px}.week-accessible summary{min-height:44px;padding-top:12px}.week-canvas{-webkit-touch-callout:none}.week-block.drag-source{opacity:.4}.week-drop-target{fill:#4bc9ee33;stroke:#4bc9ee;stroke-width:3px;stroke-dasharray:7 4;pointer-events:none}.week-drag-hint{color:var(--blue);font-size:12px;line-height:1.6}.dragging-session .week-block{pointer-events:none}
