*{margin:0;padding:0;box-sizing:border-box}:root{--accent: #0a84ff;--accent-deep: #0060df;--aqua: #38bdf8;--ink: #0b2540;--ink-soft: #3d5a7a;--ink-faint: #7b93ab;--glass: rgba(255, 255, 255, .55);--glass-strong: rgba(255, 255, 255, .78);--glass-border: rgba(255, 255, 255, .65);--shadow: 0 8px 32px rgba(31, 87, 148, .14);--shadow-soft: 0 4px 16px rgba(31, 87, 148, .1);--radius: 22px;--radius-sm: 14px;--ease-book: cubic-bezier(.35, .12, .16, 1);--ok: #0a84ff;--soon: #b58a00;--warn: #e8630a;--urgent: #e0284f;--late: #b91c1c;--done: #16a34a}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Inter,Roboto,sans-serif;color:var(--ink);background:#cfeaff;overflow:hidden;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit;font-size:14px;color:var(--ink)}.bg-aero{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none;background:radial-gradient(1200px 800px at 85% -10%,#e8fbf0 0%,transparent 55%),radial-gradient(1000px 700px at -10% 100%,#b3f0e0 0%,transparent 50%),linear-gradient(160deg,#8fd4ff,#c2e9ff 35%,#d9f6ff 60%,#a8e6ff)}.orb{position:absolute;border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.95) 0%,rgba(255,255,255,.35) 28%,rgba(160,220,255,.12) 60%,transparent 75%);border:1px solid rgba(255,255,255,.35);animation:float 16s ease-in-out infinite}.orb-1{width:260px;height:260px;top:8%;left:12%;animation-delay:0s}.orb-2{width:140px;height:140px;top:55%;left:5%;animation-delay:-4s}.orb-3{width:200px;height:200px;top:18%;right:8%;animation-delay:-8s}.orb-4{width:90px;height:90px;bottom:12%;right:22%;animation-delay:-6s}.orb-5{width:320px;height:320px;bottom:-8%;right:-4%;animation-delay:-11s;opacity:.7}@keyframes float{0%,to{transform:translateY(0) translate(0) scale(1)}33%{transform:translateY(-24px) translate(14px) scale(1.03)}66%{transform:translateY(10px) translate(-10px) scale(.98)}}.app{position:relative;z-index:1;display:flex;height:100vh;padding:14px;gap:14px}.sidebar{position:relative;width:250px;flex-shrink:0;display:flex;flex-direction:column;background:var(--glass);backdrop-filter:blur(28px) saturate(1.6);-webkit-backdrop-filter:blur(28px) saturate(1.6);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 12px;overflow:hidden}.sidebar:before{content:"";position:absolute;inset:0 0 auto 0;height:90px;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.55),transparent);border-radius:var(--radius) var(--radius) 0 0}.side-logo{display:flex;align-items:center;gap:10px;padding:4px 8px 16px;cursor:pointer;position:relative}.logo-badge{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:#fff;background:linear-gradient(180deg,#56c8ff 0%,var(--accent) 55%,var(--accent-deep) 100%);box-shadow:inset 0 1px 1px #ffffffb3,0 4px 12px #0a84ff66}.side-logo-text{font-size:18px;font-weight:800;letter-spacing:-.3px}.side-logo-text span{color:var(--accent)}.side-nav{display:flex;flex-direction:column;gap:4px;flex:1;position:relative}.nav-item{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:var(--radius-sm);font-size:14.5px;font-weight:600;color:var(--ink-soft);transition:all .18s ease}.nav-item:hover{background:#ffffff8c;color:var(--ink)}.nav-item.active{color:#fff;background:linear-gradient(180deg,#56c8ff 0%,var(--accent) 60%,var(--accent-deep) 100%);box-shadow:inset 0 1px 1px #fff9,0 4px 14px #0a84ff6b}.side-user{display:flex;align-items:center;gap:6px;padding-top:12px;position:relative;border-top:1px solid rgba(255,255,255,.6)}.user-chip{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:6px 8px;border-radius:var(--radius-sm);transition:background .15s;text-align:left}.user-chip:hover{background:#ffffff80}.user-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 6px #1f579440}.user-avatar-fallback{display:grid;place-items:center;background:linear-gradient(180deg,#56c8ff,var(--accent));color:#fff;font-weight:700}.user-chip-text{min-width:0;display:flex;flex-direction:column}.user-chip-text strong{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip-text small{font-size:11px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{flex:1;overflow-y:auto;overflow-x:hidden;border-radius:var(--radius);scroll-behavior:smooth}@media(min-width:901px){.app.sidebar-peek .sidebar{display:none}}.view{max-width:1060px;margin:0 auto;padding:12px 6px 40px}.view-wide{max-width:1500px}.view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.view-head h1{font-size:27px;font-weight:800;letter-spacing:-.5px;text-shadow:0 1px 0 rgba(255,255,255,.6);display:flex;align-items:center;gap:10px}.view-sub{color:var(--ink-soft);font-size:14px;margin-top:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn-back{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--accent-deep);padding:4px 0;margin-bottom:6px}.btn-back:hover{text-decoration:underline}.panel{position:relative;background:var(--glass);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:18px 20px}.panel:before{content:"";position:absolute;inset:0 0 auto 0;height:46px;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent);border-radius:var(--radius) var(--radius) 0 0}.panel-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;position:relative}.panel-head h2{font-size:16.5px;font-weight:700;display:flex;align-items:center;gap:7px;flex:1}.panel-sub{color:var(--ink-faint);font-size:12px}.panel-empty{color:var(--ink-faint);font-size:13.5px;padding:10px 0;position:relative}.btn-primary{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:999px;color:#fff;font-size:14px;font-weight:700;background:linear-gradient(180deg,#56c8ff 0%,var(--accent) 55%,var(--accent-deep) 100%);box-shadow:inset 0 1px 1px #ffffffa6,0 5px 16px #0a84ff66;transition:transform .14s ease,box-shadow .14s ease}.btn-primary:hover{transform:translateY(-1px);box-shadow:inset 0 1px 1px #ffffffa6,0 8px 22px #0a84ff80}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:default;transform:none}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--ink-soft);background:#ffffff8c;border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow-soft);transition:all .15s ease}.btn-ghost:hover{background:#fffc;color:var(--ink)}.btn-ghost.star-on{color:#b58a00;background:#ffd60a40;border-color:#ffd60a80}.btn-sm{padding:6px 12px;font-size:12.5px}.btn-block{width:100%;justify-content:center}.btn-icon-only{gap:0;padding-left:28px;padding-right:28px;position:relative}.btn-icon-only:before{content:"​"}.btn-icon-only svg{flex-shrink:0}.btn-icon-only.has-alert:after{content:"";position:absolute;top:7px;right:9px;width:9px;height:9px;border-radius:50%;background:var(--late);box-shadow:0 0 0 2px #fff,0 0 8px #b91c1c99}.btn-danger{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:999px;font-size:13.5px;font-weight:700;color:#fff;background:linear-gradient(180deg,#ff6b81,#e0284f);box-shadow:inset 0 1px 1px #ffffff80,0 4px 14px #e0284f66}.btn-danger:hover{filter:brightness(1.05)}.icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:10px;color:var(--ink-soft);transition:all .14s ease;flex-shrink:0}.icon-btn:hover{background:#ffffffa6;color:var(--ink)}.icon-btn.danger:hover{background:#e0284f24;color:var(--urgent)}.icon-btn.star.on{color:#e0a800}.icon-btn:disabled{opacity:.4;cursor:default}.row-actions{display:flex;align-items:center;gap:2px}.field{display:flex;flex-direction:column;gap:5px}.field-label{font-size:12.5px;font-weight:700;color:var(--ink-soft)}.field-hint{font-size:11.5px;color:var(--ink-faint)}.field input,.field select,.field textarea,.filter-bar select{padding:10px 13px;border-radius:var(--radius-sm);border:1px solid rgba(160,200,235,.7);background:#ffffffbf;box-shadow:inset 0 1px 3px #1f579412;outline:none;transition:border .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0a84ff2e,inset 0 1px 3px #1f57940d}.field textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-form{display:flex;flex-direction:column;gap:14px}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:4px}.radio-row{display:flex;gap:8px;flex-wrap:wrap}.radio-pill{display:inline-flex;align-items:center;gap:6px;padding:9px 15px;border-radius:999px;background:#fff9;border:1px solid rgba(160,200,235,.7);font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all .15s}.radio-pill input{display:none}.radio-pill.on{color:#fff;border-color:transparent;background:linear-gradient(180deg,#56c8ff,var(--accent));box-shadow:0 3px 10px #0a84ff59}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:#143c6440;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fadeIn .18s ease}.modal{background:var(--glass-strong);backdrop-filter:blur(32px) saturate(1.6);-webkit-backdrop-filter:blur(32px) saturate(1.6);border:1px solid rgba(255,255,255,.8);border-radius:24px;box-shadow:0 24px 64px #0a325a59;padding:20px 22px;max-height:90vh;overflow-y:auto;animation:popIn .22s cubic-bezier(.34,1.4,.64,1)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-head h3{font-size:18px;font-weight:800;letter-spacing:-.3px}@keyframes fadeIn{0%{opacity:0}}@keyframes popIn{0%{opacity:0;transform:scale(.94) translateY(8px)}}.due-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:800;letter-spacing:.2px;white-space:nowrap;border:1px solid transparent}.due-ok{background:#0a84ff21;color:var(--ok);border-color:#0a84ff40}.due-soon{background:#ffd60a38;color:var(--soon);border-color:#d2aa004d}.due-warn{background:#ff9f0a33;color:var(--warn);border-color:#e8630a52}.due-urgent{background:#e0284f29;color:var(--urgent);border-color:#e0284f59}.due-today{background:linear-gradient(180deg,#ff5d7d,#e0284f);color:#fff;box-shadow:0 3px 12px #e0284f80;animation:pulse 1.1s ease-in-out infinite}.due-late{background:#b91c1c;color:#fff;box-shadow:0 3px 12px #b91c1c73;animation:pulse 1.6s ease-in-out infinite}.due-done{background:#16a34a26;color:var(--done);border-color:#16a34a4d}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}.alert-banner{display:flex;align-items:center;gap:12px;padding:14px 18px;margin-bottom:18px;border-radius:var(--radius);color:#7f1d1d;font-size:14px;background:linear-gradient(180deg,#ffebeee6,#ffd6dcd9);border:1px solid rgba(224,40,79,.4);box-shadow:0 6px 20px #e0284f40;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:bannerGlow 2s ease-in-out infinite}.alert-banner svg{color:var(--urgent);flex-shrink:0}@keyframes bannerGlow{0%,to{box-shadow:0 6px 20px #e0284f38}50%{box-shadow:0 6px 30px #e0284f73}}.big-numbers{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px;margin-bottom:18px}.big-card{position:relative;padding:18px;border-radius:var(--radius);background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);box-shadow:var(--shadow-soft);transition:transform .16s ease,box-shadow .16s ease;overflow:hidden}.big-card:before{content:"";position:absolute;inset:0 0 auto 0;height:42px;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent)}.big-card[role=button]{cursor:pointer}.big-card[role=button]:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.big-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#fff;background:linear-gradient(180deg,#56c8ff,var(--accent));margin-bottom:10px;box-shadow:inset 0 1px 1px #fff9,0 3px 10px #0a84ff59}.big-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:var(--ink-faint)}.big-value{font-size:34px;font-weight:800;letter-spacing:-1px;line-height:1.15;margin-top:2px}.big-value-calm{font-size:22px;color:var(--done)}.big-detail{font-size:12.5px;color:var(--ink-soft);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.big-detail-date{font-size:12px;color:var(--ink-faint)}.highlight-card.glow-today,.highlight-card.glow-urgent,.highlight-card.glow-late{border-color:#e0284f80;animation:bannerGlow 1.6s ease-in-out infinite}.highlight-card.glow-today .big-value,.highlight-card.glow-urgent .big-value,.highlight-card.glow-late .big-value{color:var(--urgent)}.highlight-card.glow-warn{border-color:#e8630a73}.highlight-card.glow-warn .big-value{color:var(--warn)}.highlight-card.glow-soon .big-value{color:var(--soon)}.dash-columns{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;align-items:start}@media(max-width:900px){.dash-columns{grid-template-columns:1fr}}.date-list,.today-list{list-style:none;position:relative}.date-list li,.today-list li{display:flex;align-items:center;gap:11px;padding:11px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .14s ease}.date-list li:hover,.today-list li:hover{background:#ffffff8c}.date-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px #ffffff80}.date-kind{color:var(--ink-faint);display:grid;place-items:center}.date-text{flex:1;min-width:0;display:flex;flex-direction:column}.date-text strong{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-text small{font-size:11.5px;color:var(--ink-faint);display:flex;align-items:center;gap:4px}.date-arrow{color:var(--ink-faint);flex-shrink:0}.date-item.du-today,.date-item.du-urgent,.date-item.du-late{background:#e0284f12}.date-item.du-warn{background:#ff9f0a14}.empty-state{text-align:center;padding:60px 24px;border-radius:var(--radius);background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);box-shadow:var(--shadow-soft)}.empty-icon{width:72px;height:72px;margin:0 auto 16px;border-radius:24px;display:grid;place-items:center;color:#fff;background:linear-gradient(180deg,#56c8ff,var(--accent),var(--accent-deep));box-shadow:inset 0 1px 2px #fff9,0 8px 24px #0a84ff66}.empty-state h3{font-size:19px;font-weight:800;letter-spacing:-.3px}.empty-state p{color:var(--ink-soft);font-size:14px;max-width:460px;margin:8px auto 0}.empty-actions{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}.years-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.year-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;position:relative}.year-title{display:flex;align-items:center;gap:10px}.year-title h2{font-size:20px;font-weight:800;letter-spacing:-.4px}.year-badge{padding:3px 11px;border-radius:999px;font-size:12px;font-weight:800;color:var(--accent-deep);background:#0a84ff21;border:1px solid rgba(10,132,255,.25)}.sem-list{display:flex;flex-direction:column;gap:6px;position:relative}.sem-row{display:flex;align-items:center;gap:6px;padding:11px 13px;border-radius:var(--radius-sm);background:#ffffff80;border:1px solid rgba(255,255,255,.65);cursor:pointer;transition:all .15s ease}.sem-row:hover{background:#ffffffc7;transform:translate(2px)}.sem-row.current{border-color:#ffc1078c;background:#fff0be73}.sem-row-text{flex:1;display:flex;flex-direction:column}.sem-row-text strong{font-size:14px}.sem-row-text small{font-size:11.5px;color:var(--ink-faint)}.sem-add-row{display:flex;gap:8px;margin-top:4px}.week-grid{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;align-items:flex-start}.day-col{min-width:225px;flex:1;border-radius:var(--radius);background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);box-shadow:var(--shadow-soft);overflow:hidden}.day-col-head{display:flex;align-items:baseline;gap:8px;padding:12px 14px;background:linear-gradient(180deg,#ffffffa6,#ffffff40);border-bottom:1px solid rgba(255,255,255,.55)}.day-col-head strong{font-size:15px;font-weight:800}.day-col-head span{font-size:11px;color:var(--ink-faint);flex:1}.day-col-body{padding:10px;display:flex;flex-direction:column;gap:8px;min-height:80px}.day-empty{color:var(--ink-faint);font-size:12px;text-align:center;padding:18px 0}.class-card{position:relative;padding:12px 12px 12px 16px;border-radius:var(--radius-sm);background:#ffffffb8;border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow-soft);cursor:pointer;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.class-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,var(--cls-color),color-mix(in srgb,var(--cls-color) 70%,#000 12%))}.class-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.class-card-name{font-size:13.5px;font-weight:700;line-height:1.3;margin-bottom:6px}.class-card-meta{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--ink-soft)}.class-card-meta span{display:flex;align-items:center;gap:5px}.class-card-actions{position:absolute;top:6px;right:6px;display:flex;gap:2px;opacity:0;transition:opacity .15s}.class-card:hover .class-card-actions{opacity:1}.class-dot{display:inline-block;width:14px;height:14px;border-radius:50%;box-shadow:0 0 0 3px #fff9}.slots-editor{display:flex;flex-direction:column;gap:8px}.slot-row{display:flex;align-items:center;gap:8px}.slot-row select,.slot-row input{padding:8px 10px;border-radius:12px;border:1px solid rgba(160,200,235,.7);background:#ffffffbf;outline:none}.slot-row select{flex:1}.slot-sep{font-size:12px;color:var(--ink-faint)}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-dot{width:30px;height:30px;border-radius:50%;border:3px solid rgba(255,255,255,.85);box-shadow:0 2px 6px #1f579440;transition:transform .13s ease}.color-dot:hover{transform:scale(1.12)}.color-dot.selected{outline:3px solid var(--accent);outline-offset:2px;transform:scale(1.08)}.class-topbar{display:grid;grid-template-columns:250px 1fr auto;gap:14px;align-items:center;margin-bottom:12px}.class-topbar .btn-back{margin-bottom:0;justify-self:start}.class-note-title{min-width:0;width:100%;font-size:24px;font-weight:800;letter-spacing:-.5px;text-shadow:0 1px 0 rgba(255,255,255,.6);border:1px solid transparent;border-radius:12px;padding:6px 10px;background:transparent;outline:none;transition:all .15s}.class-note-title:hover{background:#ffffff73}.class-note-title:focus{background:#fffc;border-color:#0a84ff66}.class-note-title.as-heading{cursor:default}.class-note-title.as-heading:hover{background:transparent}.class-topbar-actions{display:flex;gap:8px;align-items:center}.menu-wrap{position:relative}.dots-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:#fff;background:#0b2540c7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.25);box-shadow:var(--shadow-soft),inset 0 1px #fff3;transition:all .15s ease}.dots-btn:hover{background:#0b2540eb;transform:translateY(-1px)}.class-menu{min-width:200px;display:flex;flex-direction:column;gap:2px}@media(min-width:901px){.popover.class-menu{left:auto;right:0;top:44px;transform-origin:top right}.popover{animation:pop-menu .16s cubic-bezier(.22,1,.36,1);transform-origin:top left}.class-note-title.as-heading{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.class-side{display:flex;flex-direction:column;gap:10px;min-width:0}.class-side-panel{display:flex;flex-direction:column;gap:10px;padding:16px 12px 12px}.class-accent-bar{display:block;width:46px;height:6px;border-radius:999px;margin:0 4px;flex-shrink:0;position:relative;box-shadow:inset 0 1px 1px #ffffff80,0 1px 4px #1f579440}.class-side-name{font-size:16.5px;font-weight:800;letter-spacing:-.3px;line-height:1.25;padding:0 4px;position:relative}.class-side-meta{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--ink-faint);padding:0 4px 4px;position:relative}.note-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 10px;position:relative;border:1.5px dashed rgba(10,132,255,.45);border-radius:var(--radius-sm);color:var(--accent-deep);font-size:13px;font-weight:700;background:#0a84ff0d;transition:all .15s ease}.note-add-btn:hover{background:#0a84ff1f;border-color:#0a84ffa6}.class-quicknav{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.quicknav-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quicknav-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:700;color:var(--accent-deep);background:#0a84ff24;border:1px solid rgba(10,132,255,.3);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow-soft),inset 0 1px #ffffff73;transition:all .15s ease}.quicknav-btn:hover{background:#0a84ff3d;transform:translateY(-1px)}.work-view .quicknav-btn{padding-left:6px;padding-right:6px;white-space:nowrap}.work-side-panel{gap:12px;padding:16px 14px 14px}.work-side-anchor{position:relative;display:flex;flex-direction:column;min-width:0}.work-side-top{position:relative;display:flex;flex-direction:column;gap:7px;flex-shrink:0}.work-side-chiprow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 8px;padding:0 2px}.work-side-chiprow .class-chip{display:inline-block;min-width:0;max-width:100%;font-size:11.5px;padding:3px 11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.work-side-term{margin-left:auto;font-size:11px;font-weight:600;color:var(--ink-faint);white-space:nowrap}.work-side-title{display:block;width:calc(100% + 8px);margin:0 -4px;resize:none;overflow:hidden;font-size:21px;font-weight:800;line-height:1.2;letter-spacing:-.4px;color:var(--ink);text-shadow:0 1px 0 rgba(255,255,255,.6);background:transparent;border:1px solid transparent;border-radius:10px;padding:3px 6px;outline:none;transition:background .15s ease,border-color .15s ease}.work-side-title:hover{background:#ffffff73}.work-side-title:focus{background:#fffc;border-color:#0a84ff66;text-shadow:none}.work-side-sub{padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10.5px;font-weight:600;letter-spacing:-.1px;color:var(--ink-faint)}.work-side-sub-sep{opacity:.6;margin:0 4px}.work-side-body{position:relative;display:flex;flex-direction:column;gap:18px}.work-side-section{display:flex;flex-direction:column;gap:9px}.work-side-foot{position:relative;flex-shrink:0}.work-side-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 2px;font-size:16px;font-weight:800;letter-spacing:-.2px;color:var(--ink-soft)}.work-side-head span{font-size:15px;font-weight:800}.work-side-fields{display:flex;flex-direction:column;gap:9px}.work-side-fields .field{gap:3px;min-width:0}.work-side-fields .field-label{font-size:11px;font-weight:700;color:var(--ink-faint);padding-left:8px}.work-side-fields .field input,.work-side-fields .field select{width:100%;min-width:0;border-radius:999px;padding:7px 13px;font-size:13px;font-weight:600;background:#ffffffe0;border-color:#fffffff2;box-shadow:0 1px 3px #1f57941a,inset 0 1px #ffffffe6;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.work-side-fields .field input:hover,.work-side-fields .field select:hover{background:#fff}.work-side-fields .field input:focus,.work-side-fields .field select:focus{background:#fff;border-color:var(--accent);box-shadow:0 0 0 3px #0a84ff2e}.work-side-members{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.work-side-members .member-chip{padding:5px 6px 5px 12px;font-size:12.5px;animation:chip-in .18s cubic-bezier(.22,1,.36,1) backwards}.member-add-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;border-radius:999px;border:1.5px dashed rgba(123,147,171,.55);color:var(--ink-soft);background:#ffffff59;font-size:12.5px;font-weight:700;transition:all .15s ease}.member-add-chip:hover{border-color:#0a84ff99;color:var(--accent-deep);background:#0a84ff14}.member-add-inline{display:inline-flex}.member-add-inline input{width:160px;padding:5px 12px;border-radius:999px;font-size:13px;font-weight:600;outline:none;border:1px solid rgba(10,132,255,.45);background:#ffffffeb;box-shadow:0 0 0 3px #0a84ff24;animation:chip-in .18s cubic-bezier(.22,1,.36,1) backwards}.work-side-progress{display:flex;align-items:center;gap:14px;padding:2px 2px 0}.work-side-progress .due-chip{font-size:12.5px;padding:6px 14px}.due-nodate{background:#ffffff8c;color:var(--ink-faint);border-color:#a0c8eb99}.work-pie{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-left:auto;margin-right:16px}.work-pie-label{font-size:12.5px;font-weight:800;color:var(--ink-soft);margin-right:-6px}.work-pie-btn{display:block;width:56px;height:56px;padding:0;border-radius:50%;transition:transform .15s ease,filter .15s ease}.work-pie-btn:hover{transform:scale(1.05);filter:brightness(1.03)}.work-pie-btn:active{transform:scale(.98)}.work-pie-btn:focus-visible{outline:3px solid rgba(10,132,255,.35);outline-offset:3px}.work-pie-btn svg{display:block;width:100%;height:100%;filter:drop-shadow(0 3px 6px rgba(31,87,148,.22))}.work-pie-track{fill:#78a0c838;stroke:#ffffffd9;stroke-width:1}.work-pie-sector{transition:stroke-dashoffset .5s var(--ease-book)}.work-pie-gloss{fill:#ffffff59;pointer-events:none}.progress-pop{min-width:220px;display:flex;flex-direction:column;gap:8px;padding:12px 14px}.progress-pop-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:700;color:var(--ink-soft)}.progress-pop-head strong{font-size:15px;font-weight:800;color:var(--accent-deep)}.progress-pop input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}@media(min-width:901px){.popover.progress-pop{top:auto;bottom:14px;left:12px;right:12px;transform-origin:bottom center}}.work-tabs-bar{display:flex;align-items:center;position:relative;flex-shrink:0}.work-tabs-bar .work-tabs{flex:1;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:-8px -12px -14px -10px;padding:8px 12px 14px 10px}.work-tabs-bar .work-tabs::-webkit-scrollbar{display:none}.work-tabs-bar .work-tab{flex-shrink:0}.work-tabs-status{flex-shrink:0;min-width:56px;padding-left:12px;text-align:right}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}}@keyframes chip-in{0%{opacity:0;transform:scale(.9)}}@keyframes pop-menu{0%{opacity:0;transform:scale(.96) translateY(-4px)}}.work-view .work-side-anchor{animation:rise-in .35s cubic-bezier(.22,1,.36,1) backwards}.work-view .note-editor-panel{animation:rise-in .35s cubic-bezier(.22,1,.36,1) 60ms backwards}.work-view .class-quicknav{animation:rise-in .35s cubic-bezier(.22,1,.36,1) .12s backwards}.class-layout{display:grid;grid-template-columns:250px 1fr;gap:14px;align-items:start}@media(max-width:900px){.class-layout{grid-template-columns:1fr}}.notes-list-head{position:relative;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--ink-faint);padding:6px 8px 0}.notes-list{list-style:none;display:flex;flex-direction:column;gap:5px;max-height:62vh;overflow-y:auto;position:relative}.note-item{padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:all .14s ease;border:1px solid transparent}.note-item:hover{background:#ffffff8c}.note-item.selected{background:#0a84ff21;border-color:#0a84ff4d}.note-item strong{font-size:13px}.note-item small{font-size:11.5px;color:var(--ink-faint);display:flex;align-items:center;gap:4px}.note-editor-panel{padding:14px 16px}.note-editor-pane{display:flex;flex-direction:column;gap:10px;position:relative}.note-save-float{position:absolute;top:0;right:4px;z-index:5;pointer-events:none}.save-status{font-size:12px;font-weight:700;white-space:nowrap}.save-status.saving{color:var(--ink-faint)}.save-status.saved{color:var(--done)}.save-status.error{color:var(--urgent)}.editor-loading{padding:40px;text-align:center;color:var(--ink-faint);font-size:13.5px;min-height:320px;display:grid;place-items:center}.files-area{display:flex;flex-direction:column;gap:12px}.files-area-bar{display:flex;align-items:center;gap:10px}.files-area-hint{flex:1;min-width:0;font-size:12.5px;color:var(--ink-faint)}.empty-state.in-panel{background:none;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;position:relative;padding:48px 20px}.note-clip{display:inline-flex;align-items:center;gap:3px;margin-left:8px}@media(min-width:901px){.content.content-fill{display:flex;flex-direction:column;overflow:visible}.content.content-fill .class-view{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;padding:10px 6px 12px}.content.content-fill .class-layout{flex:1;min-height:0;align-items:stretch;grid-template-rows:minmax(0,1fr)}.content.content-fill .class-topbar{flex-shrink:0}.content.content-fill .class-side{display:flex;flex-direction:column;min-height:0}.content.content-fill .class-side-panel{flex:1;min-height:0;display:flex;flex-direction:column}.content.content-fill .class-quicknav{flex-shrink:0}.content.content-fill .notes-list{flex:1;min-height:0;max-height:none;overflow-y:auto}.content.content-fill .note-editor-panel{display:flex;flex-direction:column;min-height:0;padding:12px 10px}.content.content-fill .note-editor-pane{flex:1;min-height:0}.content.content-fill .empty-state.in-panel{margin:auto 0}.content.content-fill .rich-editor{flex:1;min-height:0}.content.content-fill .editor-scroll{flex:1;min-height:0;max-height:none;padding:6px 5px 96px}.content.content-fill .editor-loading{flex:1;min-height:0}.content.content-fill .work-side-anchor{flex:1;min-height:0;display:flex;flex-direction:column}.content.content-fill .work-side-body{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;justify-content:space-between;margin:0 -4px;padding:2px 4px 0}.content.content-fill .work-side-body:after{content:"";flex-shrink:0;height:0}}@media(min-width:901px)and (max-height:900px){.work-side-panel{gap:9px;padding:13px 12px 12px}.work-side-title{font-size:20px}.work-side-body{gap:12px}.work-side-section{gap:6px}.work-side-head{font-size:15px}.work-side-fields{gap:6px}.work-side-fields .field{gap:2px}.work-side-fields .field input,.work-side-fields .field select{padding:5px 12px;font-size:12.5px}.work-side-members .member-chip{padding:4px 5px 4px 11px;font-size:12px}.member-add-chip{padding:4px 10px;font-size:12px}.work-side-progress .due-chip{font-size:12px;padding:5px 12px}.work-pie-btn{width:50px;height:50px}}.rich-editor{display:flex;flex-direction:column;border-radius:var(--radius-sm);overflow:visible}.tb-btn{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;color:var(--ink-soft);transition:all .12s ease}.tb-btn:hover{background:#0a84ff1a;color:var(--ink)}.tb-btn.active{background:linear-gradient(180deg,#56c8ff,var(--accent));color:#fff;box-shadow:0 2px 6px #0a84ff59}.tb-btn:disabled{opacity:.35;cursor:default}.tb-sep{width:1px;height:16px;background:#78a0c859;margin:0 4px;flex-shrink:0}.tb-menu{display:flex;flex-direction:column;gap:2px;min-width:190px}.tb-menu-item{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;font-size:13px;font-weight:600;color:var(--ink-soft);text-align:left;transition:all .12s ease;width:100%}.tb-menu-item:hover{background:#0a84ff1a;color:var(--ink)}.tb-menu-item.active{background:#0a84ff21;color:var(--accent-deep)}.tb-menu-label{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-faint);padding:2px 10px}.tb-menu-row{display:flex;gap:2px;padding:0 6px 4px}.tb-menu-sep{height:1px;background:#78a0c84d;margin:4px 6px}.tb-menu-item.selected{background:#0a84ff1a;color:var(--ink)}.pop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.popover{position:absolute;top:34px;left:0;z-index:21;padding:9px;background:#fffffff0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.9);border-radius:14px;box-shadow:0 12px 32px #0a325a40}.swatch-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.swatch{width:30px;height:30px;border-radius:9px;font-weight:800;font-size:14px;border:1px solid rgba(160,200,235,.5);background:#ffffffb3;display:grid;place-items:center;transition:transform .12s}.swatch:hover{transform:scale(1.1)}.slash-root{z-index:30}.slash-menu{min-width:240px;max-height:320px;overflow-y:auto;padding:8px;background:#fffffff0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.9);border-radius:14px;box-shadow:0 12px 32px #0a325a40}.slash-search{display:flex;align-items:center;gap:7px;padding:7px 10px;margin-bottom:6px;border:1px solid rgba(160,200,235,.6);border-radius:10px;background:#ffffffb3;font-size:12.5px;color:var(--ink-faint)}.slash-search .query{color:var(--ink);font-weight:600}.slash-empty{padding:8px 10px;font-size:13px;color:var(--ink-faint)}.bubble-menu{display:flex;flex-direction:column;gap:2px;z-index:30;padding:4px 6px;background:#fffffff0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.9);border-radius:12px;box-shadow:0 12px 32px #0a325a40}.bubble-row{display:flex;align-items:center;gap:2px}.bubble-row-table{border-top:1px solid rgba(120,160,200,.3);margin-top:3px;padding-top:3px}.bubble-panel{display:flex;align-items:center;gap:6px;padding:4px}.bubble-link input{width:210px;padding:6px 10px;border-radius:9px;border:1px solid rgba(160,200,235,.7);background:#ffffffd9;font-size:13px;outline:none}.bubble-link input:focus{border-color:#0a84ff80}.floating-plus{z-index:29}.floating-plus-btn{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#ffffffb3;border:1px solid rgba(160,200,235,.6);color:var(--ink-faint);transition:all .15s ease}.floating-plus-btn:hover{color:var(--accent-deep);background:#fff;transform:scale(1.08)}.editor-scroll{min-height:320px;max-height:60vh;overflow-y:auto;cursor:text;padding:2px 4px}.ProseMirror{outline:none;font-size:14.5px;line-height:1.65;color:var(--ink);min-height:300px}.ProseMirror>*+*{margin-top:.55em}.ProseMirror h1{font-size:25px;letter-spacing:-.5px;margin-top:.9em}.ProseMirror h2{font-size:20px;letter-spacing:-.3px;margin-top:.8em}.ProseMirror h3{font-size:16.5px;margin-top:.7em}.ProseMirror ul,.ProseMirror ol{padding-left:1.4em}.ProseMirror blockquote{border-left:3px solid var(--accent);padding:4px 14px;color:var(--ink-soft);background:#0a84ff0f;border-radius:0 10px 10px 0}.ProseMirror code{background:#0d3c6e17;border-radius:5px;padding:2px 5px;font-family:Cascadia Code,SF Mono,Consolas,monospace;font-size:.9em;color:#b3376b}.ProseMirror pre{background:#10243a;color:#d6e9ff;border-radius:12px;padding:13px 16px;overflow-x:auto;-moz-tab-size:4;tab-size:4}.ProseMirror pre code{background:none;color:inherit;padding:0}.ProseMirror [data-indent="1"]{padding-left:24px}.ProseMirror [data-indent="2"]{padding-left:48px}.ProseMirror [data-indent="3"]{padding-left:72px}.ProseMirror [data-indent="4"]{padding-left:96px}.ProseMirror [data-indent="5"]{padding-left:120px}.ProseMirror [data-indent="6"]{padding-left:144px}.ProseMirror [data-indent="7"]{padding-left:168px}.ProseMirror [data-indent="8"]{padding-left:192px}.ProseMirror hr{border:none;border-top:2px solid rgba(120,160,200,.4);margin:1.1em 0;border-radius:2px}.ProseMirror img{max-width:100%;border-radius:12px;box-shadow:var(--shadow-soft)}.ProseMirror img.ProseMirror-selectednode{outline:3px solid var(--accent)}.ProseMirror a{color:var(--accent-deep)}.ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--ink-faint);float:left;height:0;pointer-events:none}.ProseMirror ul[data-type=taskList]{list-style:none;padding-left:.2em}.ProseMirror ul[data-type=taskList] li{display:flex;gap:8px;align-items:flex-start}.ProseMirror ul[data-type=taskList] li>label{margin-top:3px}.ProseMirror ul[data-type=taskList] input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.ProseMirror ul[data-type=taskList] li[data-checked=true]>div{text-decoration:line-through;color:var(--ink-faint)}.ProseMirror table{border-collapse:collapse;width:100%;table-layout:fixed;overflow:hidden;border-radius:10px}.ProseMirror th,.ProseMirror td{border:1px solid rgba(120,160,200,.45);padding:7px 10px;vertical-align:top;min-width:60px;position:relative}.ProseMirror th{background:#0a84ff1a;font-weight:700;text-align:left}.ProseMirror .selectedCell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0a84ff1f;pointer-events:none}.ProseMirror .column-resize-handle{position:absolute;right:-2px;top:0;bottom:-2px;width:4px;background:var(--accent);pointer-events:none}.filter-bar{display:flex;gap:9px;margin-bottom:16px;flex-wrap:wrap}.filter-bar select{min-width:150px}.shelf{display:grid;grid-template-columns:repeat(4,1fr);column-gap:36px;row-gap:84px;margin-top:34px;padding-bottom:26px;--book-open: 1s;--book-intent: .08s}@media(max-width:1330px){.shelf{grid-template-columns:repeat(3,1fr)}}@media(min-width:901px)and (max-width:1040px){.shelf{grid-template-columns:repeat(2,1fr)}}.shelf-item{display:flex;flex-direction:column;align-items:center;position:relative;min-width:0;z-index:1;transition:z-index 0s linear var(--book-open);animation:shelf-in .9s cubic-bezier(.22,1,.36,1) backwards;animation-delay:calc(var(--i, 0) * 70ms)}@keyframes shelf-in{0%{opacity:0;transform:translateY(30px)}}.shelf-item:hover,.shelf-item:focus-within{z-index:10;transition-delay:0s}.shelf-item .scene{position:relative;transition:transform var(--book-open) var(--ease-book);will-change:transform}.shelf-item .scene:focus-within{transform:translateY(-6px)}.shelf-item .scene:after{content:"";position:absolute;left:22%;bottom:-22px;width:175%;height:20px;background:radial-gradient(ellipse at center,rgba(31,87,148,.26),transparent 68%);transform:translate(-38.57%) scaleX(.6);transition:transform var(--book-open) var(--ease-book);pointer-events:none}.shelf-item .scene:focus-within:after{transform:translate(-50%) scaleX(1)}@media(hover:hover){.shelf-item:hover .scene,.shelf-item .scene:focus-within{transform:translateY(-6px) translate(14px)}.shelf-item:hover .scene:after{transform:translate(-50%) scaleX(1)}.shelf-item:hover .caption{transform:translateY(4px)}.shelf-item:hover .scene,.shelf-item:hover .scene:after,.shelf-item:hover .caption,.shelf-item:has(+.shelf-item .book:hover) :is(.scene,.caption){transition-delay:var(--book-intent)}}.book{position:relative;width:160px;height:220px;perspective:1000px;transform-style:preserve-3d;cursor:pointer;outline:none}.book:focus-visible{outline:2px solid var(--accent);outline-offset:22px;border-radius:4px}.book ul{list-style:none}.book:before{content:"";position:absolute;top:-8px;right:0;bottom:0;left:-16px}.hardcover_front li:first-child{background-color:var(--cover);backface-visibility:hidden}.hardcover_front li:last-child{background:#f6fcff}.hardcover_back li:first-child{background:#f6fcff}.hardcover_back li:last-child{background:var(--cover)}.book_spine li:first-child{background:color-mix(in srgb,var(--cover),black 14%)}.book_spine li:last-child{background:color-mix(in srgb,var(--cover),black 40%)}.hardcover_front li:first-child:after,.hardcover_front li:first-child:before,.hardcover_front li:last-child:after,.hardcover_front li:last-child:before,.hardcover_back li:first-child:after,.hardcover_back li:first-child:before,.hardcover_back li:last-child:after,.hardcover_back li:last-child:before,.book_spine li:first-child:after,.book_spine li:first-child:before,.book_spine li:last-child:after,.book_spine li:last-child:before{content:"";background:color-mix(in srgb,var(--cover),black 32%)}.book .page>li{background:linear-gradient(to right,#dcebf5,#fff);box-shadow:inset 0 -1px 2px #3c648c1f,inset -1px 0 1px #78a0be33;border-radius:0 5px 5px 0}.hardcover_front{transform:rotateY(-34deg) translateZ(8px);z-index:100}.hardcover_back{transform:rotateY(-15deg) translateZ(-8px)}.book .page li:nth-child(1){transform:rotateY(-28deg)}.book .page li:nth-child(2){transform:rotateY(-30deg)}.book .page li:nth-child(3){transform:rotateY(-32deg)}.book .page li:nth-child(4){transform:rotateY(-34deg)}.book .page li:nth-child(5){transform:rotateY(-36deg)}.hardcover_front,.hardcover_back,.book_spine,.hardcover_front li,.hardcover_back li,.book_spine li{position:absolute;top:0;left:0;width:100%;height:100%;transform-style:preserve-3d}.hardcover_front,.hardcover_back{transform-origin:0% 100%}.hardcover_front{transition:transform var(--book-open) var(--ease-book),z-index 0s linear calc(var(--book-open) * .31)}.hardcover_front li:first-child{-webkit-user-select:none;user-select:none;transform:translateZ(2px)}.hardcover_front li:last-child{transform:rotateY(180deg) translateZ(2px)}.hardcover_back li:first-child{transform:translateZ(2px)}.hardcover_back li:last-child{transform:translateZ(-2px)}.hardcover_front li:first-child:after,.hardcover_front li:first-child:before,.hardcover_front li:last-child:after,.hardcover_front li:last-child:before,.hardcover_back li:first-child:after,.hardcover_back li:first-child:before,.hardcover_back li:last-child:after,.hardcover_back li:last-child:before,.book_spine li:first-child:after,.book_spine li:first-child:before,.book_spine li:last-child:after,.book_spine li:last-child:before{position:absolute;top:0;left:0}.hardcover_front li:first-child:after,.hardcover_front li:first-child:before{width:4px;height:100%}.hardcover_front li:first-child:after{transform:rotateY(90deg) translateZ(-2px) translate(2px)}.hardcover_front li:first-child:before{transform:rotateY(90deg) translateZ(158px) translate(2px)}.hardcover_front li:last-child:after,.hardcover_front li:last-child:before{width:4px;height:160px}.hardcover_front li:last-child:after{transform:rotateX(90deg) rotate(90deg) translateZ(80px) translate(-2px) translateY(-78px)}.hardcover_front li:last-child:before{box-shadow:0 0 30px 5px #1e5a8c73;transform:rotateX(90deg) rotate(90deg) translateZ(-140px) translate(-2px) translateY(-78px)}.hardcover_back li:first-child:after,.hardcover_back li:first-child:before{width:4px;height:100%}.hardcover_back li:first-child:after{transform:rotateY(90deg) translateZ(-2px) translate(2px)}.hardcover_back li:first-child:before{transform:rotateY(90deg) translateZ(158px) translate(2px)}.hardcover_back li:last-child:after,.hardcover_back li:last-child:before{width:4px;height:160px}.hardcover_back li:last-child:after{transform:rotateX(90deg) rotate(90deg) translateZ(80px) translate(2px) translateY(-78px)}.hardcover_back li:last-child:before{box-shadow:10px -1px 80px 20px #14467847;transform:rotateX(90deg) rotate(90deg) translateZ(-140px) translate(2px) translateY(-78px)}.book_spine{transform:rotateY(60deg) translate(-5px) translateZ(-12px);width:16px;z-index:0}.book_spine li:first-child{transform:translateZ(2px)}.book_spine li:last-child{transform:translateZ(-2px)}.book_spine li:first-child:after,.book_spine li:first-child:before{width:4px;height:100%}.book_spine li:first-child:after{transform:rotateY(90deg) translateZ(-2px) translate(2px)}.book_spine li:first-child:before{transform:rotateY(-90deg) translateZ(-12px)}.book_spine li:last-child:after,.book_spine li:last-child:before{width:4px;height:16px}.book_spine li:last-child:after{transform:rotateX(90deg) rotate(90deg) translateZ(8px) translate(2px) translateY(-6px)}.book_spine li:last-child:before{box-shadow:5px -1px 100px 40px #1446782e;transform:rotateX(90deg) rotate(90deg) translateZ(-210px) translate(2px) translateY(-6px)}.book .page,.book .page>li{position:absolute;top:0;left:0;transform-style:preserve-3d}.book .page{width:100%;height:98%;top:1%;left:3%;z-index:10}.book .page>li{width:100%;height:100%;transform-origin:left center;transition-property:transform;transition-timing-function:ease}.book .page>li:nth-child(1){transition-duration:.6s}.book .page>li:nth-child(2){transition-duration:.6s}.book .page>li:nth-child(3){transition-duration:.4s}.book .page>li:nth-child(4){transition-duration:.5s}.book .page>li:nth-child(5){transition-duration:.6s}@media(hover:hover){.book:is(:hover,:focus-visible)>.hardcover_front{transform:rotateY(-145deg) translateZ(0);z-index:0;transition-delay:var(--book-intent),calc(var(--book-open) * .31 + var(--book-intent))}.book:is(:hover,:focus-visible)>.page li{transition-delay:var(--book-intent)}.book:is(:hover,:focus-visible)>.page li:nth-child(1){transform:rotateY(-30deg);transition-duration:1.5s}.book:is(:hover,:focus-visible)>.page li:nth-child(2){transform:rotateY(-35deg);transition-duration:1.8s}.book:is(:hover,:focus-visible)>.page li:nth-child(3){transform:rotateY(-118deg);transition-duration:1.6s}.book:is(:hover,:focus-visible)>.page li:nth-child(4){transform:rotateY(-130deg);transition-duration:1.4s}.book:is(:hover,:focus-visible)>.page li:nth-child(5){transform:rotateY(-140deg);transition-duration:1.2s}.book:is(:hover,:focus-visible) .hint{opacity:1;transform:translateY(0);filter:blur(0);transition-delay:.5s}.book:is(:hover,:focus-visible) .hint:after{transform:scaleX(1);transition-delay:1s}}.coverDesign{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:1;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:22px 14px;text-align:center}.coverDesign:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(-135deg,rgba(255,255,255,.3) 0%,transparent 55%),linear-gradient(180deg,#ffffff6b,#ffffff1f 46%,#fff0 52%,#ffffff1a)}.coverDesign:before{content:"";position:absolute;top:11px;right:11px;bottom:11px;left:11px;border:1px solid rgba(255,255,255,.6);border-top-color:#ffffffe6;border-radius:10px}.coverDesign span{font-size:.56rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#ffffffd9}.coverDesign h3{font-weight:700;line-height:1.25;letter-spacing:-.01em;color:#fff;max-width:100%;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 3px rgba(10,50,90,.35)}.book .hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:18px;backface-visibility:hidden;opacity:0;transform:translateY(10px);filter:blur(7px);transition:opacity .55s ease,transform .55s var(--ease-book),filter .55s ease}.book .hint p{font-weight:600;font-size:.8rem;letter-spacing:.01em;color:var(--ink);text-align:center;line-height:1.35}.book .hint:after{content:"";width:26px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--aqua));transform:scaleX(0);transition:transform .5s var(--ease-book) 0s}.shelf-item .caption{margin-top:40px;max-width:100%;text-align:center;padding:9px 22px 11px;background:var(--glass);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border:1px solid var(--glass-border);border-top-color:#fff;border-radius:999px;box-shadow:inset 0 1px 1px #ffffffe6,0 10px 24px #1f579424;transition:transform .6s var(--ease-book)}.shelf-item .caption h2{font-size:14px;font-weight:700;letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shelf-item .caption p{margin-top:2px;font-size:11.5px;color:var(--ink-soft)}@media(hover:hover)and (min-width:1331px){.shelf-item:has(+.shelf-item .book:is(:hover,:focus-visible)) :is(.scene,.caption){transform:translate(-56px)}.shelf-item:nth-child(4n):has(+.shelf-item .book:is(:hover,:focus-visible)) :is(.scene,.caption){transform:none}}@media(hover:hover)and (min-width:1041px)and (max-width:1330px){.shelf-item:has(+.shelf-item .book:is(:hover,:focus-visible)) :is(.scene,.caption){transform:translate(-56px)}.shelf-item:nth-child(3n):has(+.shelf-item .book:is(:hover,:focus-visible)) :is(.scene,.caption){transform:none}}@media(hover:hover)and (min-width:901px)and (max-width:1040px){.shelf-item:has(+.shelf-item .book:is(:hover,:focus-visible)) :is(.scene,.caption){transform:translate(-56px)}.shelf-item:nth-child(2n):has(+.shelf-item .book:is(:hover,:focus-visible)) :is(.scene,.caption){transform:none}}body:has(.paper-modal[open]) .content{overflow:hidden}.paper-modal{--rule: 32px;--margin-x: 64px;position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;width:min(540px,calc(100vw - 40px));max-height:min(660px,85dvh);padding:0;color:var(--ink);border:1px solid var(--glass-border);border-top-color:#fff;border-radius:24px;overflow:hidden;background:#ffffffe0;backdrop-filter:blur(20px) saturate(1.25);-webkit-backdrop-filter:blur(20px) saturate(1.25);box-shadow:inset 0 1px 1px #fffffff2,0 40px 90px #14467859,0 4px 14px #14467829;opacity:0;transform:translateY(26px) scale(.97);transition:opacity .35s ease,transform .45s var(--ease-book),display .45s allow-discrete,overlay .45s allow-discrete}.paper-modal[open]{display:flex;flex-direction:column;opacity:1;transform:none}@starting-style{.paper-modal[open]{opacity:0;transform:translateY(26px) scale(.97)}}.paper-modal[open].is-closing{opacity:0;transform:none}.paper-modal::backdrop{background:#82b4dc52;backdrop-filter:blur(8px) saturate(1.2);-webkit-backdrop-filter:blur(8px) saturate(1.2);opacity:0;transition:opacity .35s ease}.paper-modal[open]::backdrop{opacity:1}.paper-modal[open].is-closing::backdrop{opacity:0}@starting-style{.paper-modal[open]::backdrop{opacity:0}}.paper-body{flex:1;min-height:0;overflow-y:auto;padding:calc(var(--rule) * 2) 40px calc(var(--rule) * 1.5) calc(var(--margin-x) + 24px);background:linear-gradient(90deg,transparent calc(var(--margin-x) - 1px),rgba(10,132,255,.45) 0,rgba(10,132,255,.45) var(--margin-x),transparent 0),repeating-linear-gradient(to bottom,transparent 0 calc(var(--rule) - 1px),rgba(80,150,210,.3) 0 var(--rule)),linear-gradient(180deg,#fffefa,#fcfaf3);background-attachment:local,local,scroll;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink-soft),transparent 45%) transparent}.paper-vol{display:block;font-size:.6rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;line-height:var(--rule);color:color-mix(in srgb,var(--cover, var(--accent)),var(--ink) 30%)}.paper-title{font-weight:800;font-size:clamp(1.3rem,4.6vw,1.55rem);letter-spacing:-.02em;line-height:var(--rule);overflow-wrap:break-word;padding-right:30px}.paper-sub{font-size:.74rem;letter-spacing:.04em;color:var(--ink-soft);line-height:var(--rule)}.paper-sec{margin-top:var(--rule)}.paper-sec-label{font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;line-height:var(--rule);color:color-mix(in srgb,var(--cover, var(--accent)),var(--ink) 30%)}.paper-sec-done .paper-sec-label{color:var(--done)}.paper-list{list-style:none;counter-reset:entregas}.paper-list li{position:relative;line-height:var(--rule);counter-increment:entregas}.paper-list li:before{content:counter(entregas,decimal-leading-zero);position:absolute;top:0;right:calc(100% + 34px);font-size:.62rem;font-weight:600;letter-spacing:.08em;line-height:var(--rule);color:#0a84ff99}.paper-list-done li:before{content:"✓";font-size:.78rem;letter-spacing:0;color:var(--done)}.paper-list button{display:block;width:100%;padding:0;text-align:left;font-size:inherit;line-height:inherit;color:inherit;border-radius:4px}.paper-list em{display:block;font-style:normal;font-weight:600;font-size:.9rem;letter-spacing:-.005em;line-height:var(--rule);overflow-wrap:break-word}.paper-meta{display:block;font-size:.7rem;letter-spacing:.02em;color:var(--ink-soft);line-height:var(--rule)}.paper-list em:after{content:"↗";display:inline-block;margin-left:7px;font-size:.68rem;color:var(--accent);opacity:0;transform:translateY(3px);transition:opacity .25s ease,transform .3s var(--ease-book)}.paper-list button:is(:hover,:focus-visible) em{color:var(--accent-deep)}.paper-list button:hover em{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#0a84ff73}.paper-list button:is(:hover,:focus-visible) em:after{opacity:1;transform:none}.paper-list button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.paper-item.is-done em{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:#3d5a7a8c;text-decoration-thickness:1px}.paper-item.is-done button:is(:hover,:focus-visible) em{color:var(--ink);text-decoration-line:underline line-through}.paper-due,.paper-done{font-style:normal}.paper-due.du-soon{color:var(--soon)}.paper-due.du-warn{color:var(--warn)}.paper-due.du-urgent,.paper-due.du-today{color:var(--urgent);font-weight:700}.paper-due.du-late{color:var(--late);font-weight:700}.paper-done{color:var(--done)}.paper-item.is-new button{animation:paper-new 2.2s ease .35s backwards}@keyframes paper-new{0%{background:#0a84ff29;box-shadow:0 0 0 6px #0a84ff29}60%{background:#0a84ff29;box-shadow:0 0 0 6px #0a84ff29}to{background:transparent;box-shadow:none}}.paper-foot{margin-top:var(--rule);font-style:italic;font-size:.76rem;color:var(--ink-soft);line-height:var(--rule)}.paper-close{position:absolute;top:12px;right:12px;z-index:2;width:34px;height:34px;padding:0;display:grid;place-items:center;border:1px solid var(--glass-border);border-top-color:#fff;border-radius:50%;background:var(--glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 1px 1px #ffffffe6,0 4px 10px #1f579424;color:var(--ink-soft);transition:background .28s ease,color .28s ease,box-shadow .28s ease,transform .32s var(--ease-book)}.paper-close svg{display:block}.paper-close:hover{background:#ffffffeb;color:var(--ink);transform:scale(1.08);box-shadow:inset 0 1px 1px #fffffff2,0 6px 16px #1f57942e,0 0 0 4px #0a84ff1f}.paper-close:active{transform:scale(.94);transition-duration:.1s}.paper-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){.shelf-item{animation:none}.shelf-item .scene,.shelf-item .caption,.hardcover_front,.book .page>li,.book .hint,.paper-modal,.paper-modal::backdrop,.paper-close{transition-duration:.01ms}.paper-item.is-new button,.fb-pop{animation:none}.fb-switch-track,.fb-switch-track:after{transition:none}.work-side-anchor,.note-editor-panel,.class-quicknav,.popover,.work-side-members .member-chip,.member-add-inline input{animation:none}.work-pie-sector,.work-pie-btn,.quicknav-btn,.work-side-title{transition:none}.exam-subject{animation:none;transition:none}.exam-subject:after{transition:none}}.fb-modal{--rule: 28px;--margin-x: 34px;width:min(980px,calc(100vw - 40px));height:min(820px,90dvh);max-height:90dvh;background:#ffffff8c;backdrop-filter:blur(28px) saturate(1.5);-webkit-backdrop-filter:blur(28px) saturate(1.5)}.fb-head{display:flex;align-items:center;gap:12px;flex-shrink:0;padding:18px 60px 12px 22px}.fb-head-icon{width:38px;height:38px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;color:#fff;background:linear-gradient(180deg,#56c8ff,var(--accent));box-shadow:inset 0 1px 1px #fff9,0 3px 10px #0a84ff59}.fb-head-text{flex:1;min-width:0}.fb-title{font-size:20px;font-weight:800;letter-spacing:-.4px;line-height:1.15}.fb-sub-title{font-size:12.5px;color:var(--ink-soft);margin-top:2px}.fb-switch{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.fb-switch input{position:absolute;opacity:0;width:0;height:0}.fb-switch-track{position:relative;width:36px;height:21px;border-radius:999px;background:#78a0c859;box-shadow:inset 0 1px 3px #1f579440;transition:background .2s ease}.fb-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #1f579459;transition:transform .22s cubic-bezier(.34,1.4,.64,1)}.fb-switch input:checked+.fb-switch-track{background:linear-gradient(180deg,#56c8ff,var(--accent))}.fb-switch input:checked+.fb-switch-track:after{transform:translate(15px)}.fb-switch input:focus-visible+.fb-switch-track{outline:2px solid var(--accent);outline-offset:2px}.fb-switch-label{font-size:12.5px;font-weight:700;color:var(--ink-soft);white-space:nowrap}.fb-brief{flex-shrink:0;margin:0 22px 12px;padding:10px 14px 10px 16px;border-left:3px solid var(--accent);border-radius:6px 14px 14px 6px;background:#ffffff80;box-shadow:inset 0 1px 1px #ffffffe6;display:flex;flex-direction:column;gap:4px}.fb-brief-line{display:flex;gap:8px;font-size:13.5px;line-height:1.45;color:var(--ink)}.fb-brief-icon{flex-shrink:0;width:20px;text-align:center}.fb-brief-text{min-width:0}.fb-brief-line.is-alert{color:var(--late);font-weight:600}.fb-brief-line.is-muted{color:var(--ink-soft)}.fb-work-link{display:inline;padding:0 2px;border-radius:3px;text-align:left;font:inherit;font-weight:800;color:color-mix(in srgb,var(--cls-color, var(--accent)) 70%,var(--ink) 30%);border-bottom:2px solid color-mix(in srgb,var(--cls-color, var(--accent)) 45%,transparent);transition:background .15s ease}.fb-work-link:hover{background:color-mix(in srgb,var(--cls-color, var(--accent)) 14%,transparent)}.fb-work-link:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.fb-tabs{display:none}.fb-body{flex:1;min-height:0;outline:none;display:grid;grid-template-columns:1.05fr 1fr;grid-template-rows:minmax(0,1fr);gap:16px;padding:0 22px 20px}.fb-pane{display:flex;flex-direction:column;min-height:0;min-width:0}.fb-pane-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-shrink:0}.fb-pane-title{font-size:11.5px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--ink-faint)}.fb-draft{flex:1;min-height:0;width:100%;resize:none;outline:none;padding:var(--rule) 16px var(--rule) calc(var(--margin-x) + 12px);border:1px solid rgba(255,255,255,.9);border-radius:16px;font-size:14.5px;line-height:var(--rule);color:var(--ink);-moz-tab-size:4;tab-size:4;background:linear-gradient(90deg,transparent calc(var(--margin-x) - 1px),rgba(10,132,255,.45) 0,rgba(10,132,255,.45) var(--margin-x),transparent 0),repeating-linear-gradient(to bottom,transparent 0 calc(var(--rule) - 1px),rgba(80,150,210,.28) 0 var(--rule)),#ffffff9e;background-attachment:local,local,scroll;box-shadow:inset 0 1px 1px #fffffff2,inset 0 0 0 1px #a0c8eb40;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink-soft),transparent 45%) transparent;transition:border-color .15s ease,box-shadow .15s ease}.fb-draft::placeholder{color:var(--ink-faint);font-style:italic}.fb-draft:focus{border-color:#0a84ff80;box-shadow:inset 0 1px 1px #fffffff2,0 0 0 3px #0a84ff29}.fb-draft-foot{margin-top:6px;font-size:11.5px;color:var(--ink-faint);font-style:italic;flex-shrink:0}.fb-panorama{overflow-y:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink-soft),transparent 45%) transparent}.fb-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex-shrink:0}.fb-stat{padding:10px 12px;border-radius:14px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:2px;background:#ffffff8c;border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1px 1px #ffffffe6,0 2px 8px #1f579414}.fb-stat-label{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap}.fb-stat-value{font-size:24px;font-weight:800;letter-spacing:-.8px;line-height:1.1}.fb-stat.is-warn .fb-stat-value{color:var(--warn)}.fb-stat.is-late{border-color:#b91c1c59;background:#e0284f12}.fb-stat.is-late .fb-stat-value{color:var(--late)}.fb-stat.is-ok .fb-stat-value{color:var(--done);font-size:20px}.fb-sub{margin:14px 0 6px;flex-shrink:0;font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-faint)}.fb-strip{list-style:none;display:grid;grid-template-columns:repeat(14,1fr);gap:3px;flex-shrink:0}.fb-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 0 4px;min-height:52px;border-radius:9px;background:#fff6;border:1px solid rgba(255,255,255,.7);color:var(--ink-soft)}.fb-day.is-weekend{background:#78a0c81f}.fb-day.has-due{background:#ffffffbf}.fb-day.is-today{border-color:var(--accent);background:#0a84ff1a;box-shadow:0 0 0 2px #0a84ff40}.fb-day.is-today .fb-day-num{color:var(--accent-deep)}.fb-day-dow{font-size:9.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-faint)}.fb-day-num{font-size:12.5px;font-weight:800;line-height:1;color:var(--ink)}.fb-day-dots{display:flex;align-items:center;gap:2px;height:10px}.fb-day-dots i{width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 1.5px #ffffffd9}.fb-day-dots small{font-size:9px;font-weight:800;color:var(--ink-soft)}.fb-lanes{display:flex;flex-direction:column;gap:12px;margin-top:14px}.fb-lane-head{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:4px;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-soft)}.fb-lane-emoji{font-size:13px}.fb-lane-count{color:var(--ink-faint);font-weight:700}.fb-lane-hint{font-size:11.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink-faint)}.fb-lane-empty{font-size:12.5px;font-style:italic;color:var(--ink-faint);padding:2px 0 2px 10px}.lane-none .fb-lane-head{color:var(--ink-faint)}.fb-rows{list-style:none;display:flex;flex-direction:column;gap:4px}.fb-row{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;border-radius:12px;background:#ffffff80;border:1px solid rgba(255,255,255,.8);border-left:3px solid var(--cls-color, var(--accent));transition:background .15s ease}.fb-row:hover{background:#ffffffc7}.fb-row-main{flex:1;min-width:0}.fb-row-title{display:block;width:100%;padding:0;text-align:left;font-size:13.5px;font-weight:700;line-height:1.3;color:var(--ink);overflow-wrap:anywhere;border-radius:4px}.fb-row-title:hover{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#0a84ff73}.fb-row-title:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.fb-row-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 9px;margin-top:3px;font-size:11.5px;color:var(--ink-soft)}.fb-row-class{font-weight:700;color:color-mix(in srgb,var(--cls-color, var(--accent)) 70%,var(--ink) 30%)}.fb-row-due.du-soon{color:var(--soon)}.fb-row-due.du-warn{color:var(--warn);font-weight:700}.fb-row-due.du-urgent,.fb-row-due.du-today{color:var(--urgent);font-weight:700}.fb-row-due.du-late{color:var(--late);font-weight:800}.fb-row-bar{display:inline-flex;align-items:center;gap:5px}.fb-row-bar .progress-track{display:inline-block;width:54px;height:6px}.fb-row-bar .progress-fill{display:block}.fb-row-note{color:var(--ink-faint)}.fb-row-rhythm{font-style:italic;color:var(--accent-deep)}.fb-row-pick{flex-shrink:0;position:relative}.fb-lane-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 9px;border-radius:999px;white-space:nowrap;font-size:11.5px;font-weight:700;color:var(--ink-soft);background:#ffffffb3;border:1px solid rgba(160,200,235,.6);box-shadow:var(--shadow-soft);transition:all .15s ease}.fb-lane-pill:hover{background:#fff;color:var(--ink)}.fb-lane-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fb-lane-pill.lane-now{color:var(--accent-deep);background:#0a84ff21;border-color:#0a84ff59}.fb-lane-pill.lane-steady{color:#6b3fb5;background:#bf5af21f;border-color:#bf5af259}.fb-lane-pill.lane-hold{color:var(--ink-faint)}.fb-pop{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:21;width:min(300px,calc(100% - 32px));padding:9px;display:flex;flex-direction:column;gap:2px;background:#fffffff2;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.9);border-radius:16px;box-shadow:0 20px 50px #0a325a4d;animation:popIn .18s cubic-bezier(.34,1.4,.64,1)}.fb-pop .tb-menu-item{align-items:flex-start}.fb-pop .tb-menu-item.active:after{content:"✓";margin-left:auto;color:var(--accent-deep)}.fb-pop-emoji{font-size:15px;line-height:1.2}.fb-pop-lane{display:flex;flex-direction:column;gap:1px}.fb-pop-lane b{font-weight:700}.fb-pop-lane small{font-size:11px;font-weight:500;color:var(--ink-faint)}.fb-pop-note{display:flex;flex-direction:column;gap:4px;padding:2px 4px 4px}.fb-pop-note input{width:100%;padding:7px 10px;font-size:13px}.fb-pop-clear{color:var(--ink-faint)}.term-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;color:var(--ink-soft);white-space:nowrap;background:#ffffff8c;border:1px solid rgba(160,200,235,.6)}.class-chip{display:inline-flex;align-items:center;padding:3px 11px;border-radius:999px;font-size:11.5px;font-weight:700;background:color-mix(in srgb,var(--cls-color) 16%,#fff 30%);color:color-mix(in srgb,var(--cls-color) 75%,#000 25%);border:1px solid color-mix(in srgb,var(--cls-color) 40%,transparent)}.progress-track{height:8px;border-radius:999px;background:#78a0c840;overflow:hidden;box-shadow:inset 0 1px 2px #1f579426}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#56c8ff,var(--accent));box-shadow:0 0 8px #0a84ff80;transition:width .25s ease}.member-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 8px 6px 13px;border-radius:999px;background:#ffffffb3;border:1px solid rgba(160,200,235,.7);font-size:12.5px;font-weight:600}.chip-x{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#78a0c840;color:var(--ink-soft);cursor:pointer;transition:all .13s}.chip-x:hover{background:#e0284f33;color:var(--urgent)}.work-tabs{display:flex;gap:6px;position:relative}.work-tab{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:999px;font-size:13px;font-weight:700;color:var(--ink-soft);background:#ffffff80;border:1px solid rgba(255,255,255,.7);transition:all .15s}.work-tab:hover{background:#fffc}.work-tab.active{color:#fff;background:linear-gradient(180deg,#56c8ff,var(--accent));box-shadow:inset 0 1px 1px #ffffff80,0 3px 10px #0a84ff66}.work-tab.active .chip-x{background:#ffffff4d;color:#fff}.work-tab.add{padding:8px 11px}.file-list{list-style:none;display:flex;flex-direction:column;gap:6px;position:relative}.file-list li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);background:#ffffff8c;border:1px solid rgba(255,255,255,.7)}.file-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--accent-deep);background:#0a84ff1f;flex-shrink:0}.file-text{flex:1;min-width:0;display:flex;flex-direction:column}.file-text strong{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-text small{font-size:11.5px;color:var(--ink-faint)}.exam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:16px}.exam-subject{--cls-color: #94a3b8;position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;gap:12px;padding:16px 16px 14px;border-radius:var(--radius);background:linear-gradient(135deg,color-mix(in srgb,var(--cls-color) 18%,rgba(255,255,255,.62)),#ffffff85 55%,color-mix(in srgb,var(--cls-color) 9%,rgba(255,255,255,.58)));backdrop-filter:blur(26px) saturate(1.6);-webkit-backdrop-filter:blur(26px) saturate(1.6);border:1px solid rgba(255,255,255,.8);box-shadow:0 10px 30px color-mix(in srgb,var(--cls-color) 20%,rgba(31,87,148,.12)),inset 0 1px #ffffffe6,inset 0 -1px #ffffff59;transition:transform .22s var(--ease-book),box-shadow .22s ease;animation:rise-in .4s cubic-bezier(.22,1,.36,1) calc(var(--i, 0) * 60ms) backwards}.exam-subject:hover{transform:translateY(-3px);box-shadow:0 16px 40px color-mix(in srgb,var(--cls-color) 28%,rgba(31,87,148,.16)),inset 0 1px #ffffffe6,inset 0 -1px #ffffff59}.exam-subject:before{content:"";position:absolute;inset:0 0 auto 0;height:56%;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.1) 65%,transparent)}.exam-subject:after{content:"";position:absolute;z-index:-1;pointer-events:none;width:200px;height:200px;top:-80px;right:-70px;border-radius:50%;background:radial-gradient(circle at 40% 40%,color-mix(in srgb,var(--cls-color) 60%,#fff 10%) 0%,color-mix(in srgb,var(--cls-color) 32%,transparent) 42%,transparent 70%);filter:blur(14px);opacity:.9;transition:transform .7s var(--ease-book)}.exam-subject:hover:after{transform:translate(-12px,12px) scale(1.12)}.exam-subject-head{display:flex;align-items:flex-start;gap:10px}.exam-subject-title{flex:1;min-width:0}.exam-subject-title h3{font-size:16.5px;font-weight:800;letter-spacing:-.3px;line-height:1.25}.exam-subject-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:5px;font-size:12px;font-weight:600;color:var(--ink-faint)}.exam-subject-side{display:flex;align-items:center;gap:4px;flex-shrink:0}.exam-subject-none{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:700;color:var(--done);white-space:nowrap;background:#16a34a1f;border:1px solid rgba(22,163,74,.28)}.exam-subject-unmarked{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:700;color:var(--warn);white-space:nowrap;background:#ff9f0a24;border:1px solid rgba(232,99,10,.3)}.exam-subject-add{width:28px;height:28px;border-radius:9px;color:var(--accent-deep)}.exam-subject-add:hover{background:#0a84ff24;color:var(--accent-deep)}.exam-rows{list-style:none;display:flex;flex-direction:column;gap:6px}.exam-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:8px 6px 8px 8px;border-radius:var(--radius-sm);background:#ffffff80;border:1px solid rgba(255,255,255,.72);transition:background .15s ease,border-color .15s ease}.exam-row:hover{background:#ffffffbd}.exam-row.next{background:#ffffffb8;border-color:color-mix(in srgb,var(--cls-color) 45%,#fff);box-shadow:0 4px 14px color-mix(in srgb,var(--cls-color) 22%,transparent)}.exam-row.past{opacity:.62}.exam-row.past:hover{opacity:.95}.exam-row-label{display:grid;place-items:center;min-width:42px;padding:6px 8px;border-radius:10px;font-size:12px;font-weight:800;letter-spacing:.2px;color:#fff;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.18);background:linear-gradient(180deg,color-mix(in srgb,var(--cls-color) 80%,#fff 20%),var(--cls-color));box-shadow:inset 0 1px 1px #ffffff8c,0 3px 8px color-mix(in srgb,var(--cls-color) 40%,transparent)}.exam-row-main{min-width:0;display:flex;flex-direction:column;gap:2px}.exam-row-when{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft)}.exam-row-when strong{color:var(--ink);font-weight:700;white-space:nowrap}.exam-row-when strong small{font-size:11.5px;font-weight:700;color:var(--ink-faint);margin-right:1px}.exam-row-when span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.exam-row-topics{font-size:12px;color:var(--ink-soft);cursor:pointer;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;transition:color .15s ease}.exam-row-topics:hover{color:var(--ink)}.exam-row-topics.open{display:block}.exam-row-done{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;color:var(--done);white-space:nowrap}.exam-row-unmarked{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;color:var(--warn);white-space:nowrap}.exam-row-actions{display:flex;gap:0;opacity:0;transition:opacity .15s ease}.exam-row:hover .exam-row-actions,.exam-row:focus-within .exam-row-actions{opacity:1}.exam-row-actions .icon-btn{width:26px;height:26px;border-radius:8px}.past-toggle{margin-left:auto}.past-toggle.on{color:var(--accent-deep);background:#0a84ff24;border-color:#0a84ff4d}.auth-wrap{position:relative;height:100vh;height:100dvh;display:grid;place-items:stretch;padding:24px;overflow-y:auto;scrollbar-gutter:stable both-edges}.auth-card{position:relative;z-index:1;width:520px;max-width:94vw;margin:auto;background:var(--glass-strong);backdrop-filter:blur(32px) saturate(1.6);-webkit-backdrop-filter:blur(32px) saturate(1.6);border:1px solid rgba(255,255,255,.85);border-radius:28px;box-shadow:0 24px 70px #0a325a4d;padding:30px 32px;animation:popIn .3s cubic-bezier(.34,1.4,.64,1)}.auth-logo{text-align:center;margin-bottom:20px}.auth-logo .logo-badge{margin:0 auto 12px;width:60px;height:60px;border-radius:19px}.auth-logo h1{font-size:27px;font-weight:800;letter-spacing:-.6px}.auth-logo h1 span{color:var(--accent)}.auth-logo p{color:var(--ink-soft);font-size:13.5px;margin-top:4px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:18px;background:#78a0c829;border-radius:999px}.auth-tabs button{padding:9px;border-radius:999px;font-size:14px;font-weight:700;color:var(--ink-soft);transition:all .18s}.auth-tabs button.active{background:#fff;color:var(--ink);box-shadow:0 3px 10px #1f57942e}.auth-form{display:flex;flex-direction:column;gap:13px}.auth-error{padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:12px;background:#e0284f1f;border:1px solid rgba(224,40,79,.35);color:#9f1239;font-size:13px;font-weight:600}.auth-hint{text-align:center;font-size:12.5px;color:var(--ink-faint)}.avatar-row{display:flex;gap:16px;align-items:flex-start}.avatar-uploader{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;cursor:pointer;flex-shrink:0;background:#ffffffa6;border:2px dashed rgba(120,160,200,.6);color:var(--ink-faint);overflow:hidden;transition:all .15s}.avatar-uploader:hover{border-color:var(--accent);color:var(--accent)}.avatar-uploader img{width:100%;height:100%;object-fit:cover}.avatar-uploader.big{width:92px;height:92px}.avatar-fields{flex:1;display:flex;flex-direction:column;gap:10px}@media(min-width:901px)and (max-height:790px){.auth-wrap{padding:12px 24px}.auth-card{padding:20px 28px;border-radius:24px}.auth-logo{margin-bottom:12px}.auth-logo .logo-badge{width:48px;height:48px;border-radius:15px;margin-bottom:8px}.auth-logo h1{font-size:23px}.auth-logo p{font-size:13px;margin-top:2px}.auth-tabs{margin-bottom:12px}.auth-tabs button{padding:7px}.auth-error{padding:8px 12px;margin-bottom:10px}.auth-form{gap:10px}.auth-form .form-grid{row-gap:8px}.auth-form .avatar-fields{gap:8px}.auth-form .field{gap:4px}.auth-form .field input{padding:8px 13px}}.profile-layout{display:grid;grid-template-columns:3fr 2fr;gap:14px;align-items:start}@media(max-width:900px){.profile-layout{grid-template-columns:1fr}}.profile-form{display:flex;flex-direction:column;gap:16px}.profile-side{display:flex;flex-direction:column;gap:14px}.storage-text{font-size:13px;color:var(--ink-soft);line-height:1.55;margin-bottom:12px;position:relative}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#5082b459;border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#5082b48c;border:2px solid transparent;background-clip:content-box}.splash{--splash-ink: #0e3a5c;--splash-coffee: rgba(74, 47, 27, .92);--splash-coffee-light: rgba(122, 78, 44, .88);--splash-crema: #d9ac74;--splash-edge: rgba(255, 255, 255, .75);position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:grid;place-items:center;color:var(--splash-ink);overflow:hidden;background:radial-gradient(ellipse 60% 45% at 22% 18%,rgba(255,255,255,.55),transparent 70%),radial-gradient(ellipse 50% 40% at 80% 85%,rgba(120,220,190,.28),transparent 70%),linear-gradient(to bottom,#d6f1ff,#9fdcff 48%,#5fb8ee);transition:opacity .65s ease}.splash.leaving{opacity:0;pointer-events:none}.splash-bubbles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.splash-bubbles i{position:absolute;bottom:-60px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#ffffffe6,#ffffff26 42%,#ffffff08 70%);box-shadow:inset 0 0 6px #ffffff80;animation:splash-float linear infinite;will-change:transform}.splash-bubbles i:nth-child(1){left:8%;width:26px;height:26px;animation-duration:14s}.splash-bubbles i:nth-child(2){left:22%;width:12px;height:12px;animation-duration:10s;animation-delay:-4s}.splash-bubbles i:nth-child(3){left:45%;width:18px;height:18px;animation-duration:16s;animation-delay:-9s}.splash-bubbles i:nth-child(4){left:68%;width:30px;height:30px;animation-duration:12s;animation-delay:-2s}.splash-bubbles i:nth-child(5){left:82%;width:14px;height:14px;animation-duration:9s;animation-delay:-6s}.splash-bubbles i:nth-child(6){left:92%;width:20px;height:20px;animation-duration:15s;animation-delay:-11s}@keyframes splash-float{0%{transform:translateY(0);opacity:0}8%{opacity:.85}92%{opacity:.85}to{transform:translateY(-110vh);opacity:0}}.splash-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.8rem;padding:3rem 3.5rem 2.6rem;border-radius:34px;background:linear-gradient(160deg,#ffffff57,#ffffff1a);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);border:1px solid var(--splash-edge);box-shadow:inset 0 1px #ffffffd9,inset 0 -1px #ffffff40,0 24px 48px -20px #0e3a5c59;-webkit-user-select:none;user-select:none;transition:opacity .55s ease,transform .55s ease}.splash.leaving .splash-card{opacity:0;transform:translateY(-16px) scale(1.02)}.splash-card:before{content:"";position:absolute;top:5px;left:14px;right:14px;height:42%;border-radius:28px 28px 60% 60%;background:linear-gradient(to bottom,#ffffff6b,#fff0);pointer-events:none}.splash-scene{position:relative;width:220px;height:236px}.splash-cup{position:absolute;bottom:24px;left:50%;transform:translate(-50%);width:150px;height:118px;border-radius:12px 12px 70px 70px;background:linear-gradient(160deg,#ffffff4d,#ffffff14 55%,#ffffff2e);border:1.5px solid var(--splash-edge);box-shadow:inset 0 2px 3px #ffffffb3,inset 0 -10px 16px -10px #0e3a5c40,0 16px 26px -14px #0e3a5c73;overflow:hidden}.splash-cup:after{content:"";position:absolute;top:8px;left:12px;width:16px;height:74%;border-radius:12px;background:linear-gradient(to bottom,#ffffffd9,#ffffff0d);transform:rotate(3deg);pointer-events:none;z-index:3}.splash-handle{position:absolute;bottom:76px;left:calc(50% + 68px);width:44px;height:52px;border:10px solid rgba(255,255,255,.45);border-left:none;border-radius:0 26px 26px 0;box-shadow:inset -2px 0 2px #fffc,2px 2px 6px -2px #0e3a5c4d}.splash-saucer{position:absolute;bottom:6px;left:50%;transform:translate(-50%);width:198px;height:16px;border-radius:50%;background:linear-gradient(to bottom,#ffffff8c,#ffffff26);border:1px solid var(--splash-edge);box-shadow:0 10px 16px -8px #0e3a5c66}.splash-coffee{position:absolute;left:0;bottom:0;width:100%;background:linear-gradient(to bottom,var(--splash-coffee-light),var(--splash-coffee) 55%);transition:height .35s cubic-bezier(.33,1,.68,1)}.splash-surface{position:absolute;top:-10px;left:0;width:100%;height:14px;overflow:hidden;opacity:0;transition:opacity .3s ease}.splash-coffee.visible .splash-surface{opacity:1}.splash-surface svg{position:absolute;top:0;left:0;width:300px;height:14px;display:block;animation:splash-drift 3s linear infinite;will-change:transform}.splash-surface svg.back{animation-duration:4.4s;animation-direction:reverse;opacity:.7}@keyframes splash-drift{0%{transform:translate(0)}to{transform:translate(-150px)}}.splash.done .splash-surface svg{animation-duration:7s}.splash.done .splash-surface svg.back{animation-duration:10s}.splash-steam{position:absolute;top:26px;left:50%;transform:translate(-50%);display:flex;gap:16px;opacity:0;transition:opacity .8s ease}.splash.done .splash-steam{opacity:1}.splash-steam span{display:block;width:3px;height:42px;border-radius:3px;background:linear-gradient(to top,transparent,rgba(255,255,255,.9),transparent);animation:splash-rise 2.4s ease-in-out infinite}.splash-steam span:nth-child(2){animation-delay:.5s;height:52px}.splash-steam span:nth-child(3){animation-delay:1s}@keyframes splash-rise{0%{transform:translateY(6px) scaleY(.85);opacity:0}35%{opacity:1}to{transform:translateY(-14px) scaleY(1.1);opacity:0}}.splash-status-block{position:relative;z-index:1;display:flex;flex-direction:column;gap:.55rem;text-align:center}.splash-brand{font-size:1.85rem;font-weight:700;letter-spacing:.1em;white-space:nowrap;color:#fff;text-shadow:0 1px 0 rgba(255,255,255,.6),0 2px 10px rgba(14,58,92,.45);transition:letter-spacing 1.4s cubic-bezier(.22,1,.36,1)}.splash.done .splash-brand{letter-spacing:.16em}.splash-brand span{display:inline-block;opacity:0;filter:blur(5px);transform:translateY(8px);transition:opacity .7s ease,filter .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}.splash-brand span.lit{opacity:1;filter:blur(0);transform:translateY(0)}.splash-brand span.dot{color:var(--splash-crema)}.splash-percent{font-size:.9rem;font-variant-numeric:tabular-nums;letter-spacing:.06em;opacity:.75}.splash-label{font-size:.9rem;font-style:italic;opacity:.65;min-height:1.4em}@media(max-width:420px){.splash-card{padding:2.2rem 1.6rem 2rem;border-radius:26px}.splash-brand{font-size:1.45rem}}@media(max-width:900px){.splash-card{backdrop-filter:blur(12px) saturate(1.35);-webkit-backdrop-filter:blur(12px) saturate(1.35)}}@media(prefers-reduced-motion:reduce){.splash-surface svg,.splash-steam span,.splash-bubbles i{animation:none}.splash-coffee{transition:none}.splash,.splash.leaving .splash-card{transition:opacity .25s ease}.splash-brand,.splash-brand span{transition:opacity .3s ease;filter:none;transform:none}}.mobile-topbar,.drawer-backdrop,.drawer-close{display:none}@media(hover:none){.class-card-actions,.exam-row-actions{opacity:1}.icon-btn{width:40px;height:40px;border-radius:12px}.chip-x{width:26px;height:26px}.color-dot{width:38px;height:38px}.member-chip{padding:5px 6px 5px 13px}.sem-row:hover,.class-card:hover,.exam-subject:hover,.big-card[role=button]:hover{transform:none}a,button,.nav-item,.book,.class-card,.sem-row,.big-card,.note-item,.date-list li,.today-list li,.work-tab,.radio-pill{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.class-card:active,.sem-row:active,.note-item:active,.date-list li:active,.today-list li:active,.big-card[role=button]:active{transform:scale(.985);filter:brightness(.97)}.shelf-item:active .scene{transform:scale(.96);transition-duration:.25s}.btn-primary:active,.btn-ghost:active,.btn-danger:active,.work-tab:active,.radio-pill:active{transform:scale(.97)}.nav-item:active{background:#ffffffb3}.icon-btn:active{background:#fffc}}@media(max-width:900px){html{-webkit-text-size-adjust:100%;text-size-adjust:100%}.app{flex-direction:column;height:100dvh;padding:0;gap:0}.mobile-topbar{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:calc(env(safe-area-inset-top,0px) + 9px) 12px 9px;padding-left:calc(env(safe-area-inset-left,0px) + 12px);padding-right:calc(env(safe-area-inset-right,0px) + 12px);background:var(--glass-strong);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 14px #1f57941f;z-index:30}.mobile-menu-btn{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border-radius:13px;color:#fff;background:linear-gradient(180deg,#56c8ff 0%,var(--accent) 55%,var(--accent-deep) 100%);box-shadow:inset 0 1px 1px #fff9,0 3px 10px #0a84ff59}.mobile-menu-btn:active{transform:scale(.94)}.mobile-topbar-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.mobile-topbar-app{font-size:11px;font-weight:800;letter-spacing:.3px;color:var(--ink-faint);text-transform:uppercase}.mobile-topbar-app span{color:var(--accent)}.mobile-topbar-view{font-size:16px;font-weight:800;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-user-btn{width:40px;height:40px;flex-shrink:0;border-radius:50%;padding:0;overflow:hidden;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 8px #1f579447}.mobile-user-btn img{width:100%;height:100%;object-fit:cover;display:block}.mobile-user-btn .user-avatar-fallback{width:100%;height:100%;border-radius:50%;font-size:15px}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:60;width:min(84vw,310px);border-radius:0 var(--radius) var(--radius) 0;border-left:none;padding:calc(env(safe-area-inset-top,0px) + 16px) 12px calc(env(safe-area-inset-bottom,0px) + 16px);background:var(--glass-strong);transform:translate(-102%);transition:transform .28s cubic-bezier(.4,0,.2,1);overscroll-behavior:contain}.sidebar.open{transform:none;box-shadow:0 0 70px #0a325a66}.side-logo{padding:4px 8px 18px}.side-logo-text{display:block}.nav-item{padding:13px 14px;font-size:15px}.nav-item span{display:inline}.side-nav{flex-direction:column;gap:5px}.side-user{display:flex}.drawer-close{display:grid;place-items:center;width:36px;height:36px;margin-left:auto;border-radius:12px;color:var(--ink-soft);background:#fff9}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0a2d5061;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:fadeIn .2s ease}.content{border-radius:0;padding:0 12px;padding-left:calc(env(safe-area-inset-left,0px) + 12px);padding-right:calc(env(safe-area-inset-right,0px) + 12px);-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.view{padding:14px 0 calc(env(safe-area-inset-bottom,0px) + 36px)}.view-head{gap:10px;margin-bottom:16px}.view-head h1{font-size:22px}.view-sub{font-size:13px}input,select,textarea,.field input,.field select,.field textarea,.filter-bar select,.slot-row select,.slot-row input,.member-add-inline input{font-size:16px}.btn-primary,.btn-ghost,.btn-danger{min-height:42px}.btn-sm{min-height:38px;padding:8px 14px}.btn-back{min-height:40px;padding:9px 2px;margin-bottom:0}.nav-item{min-height:46px}.auth-tabs button{min-height:42px}.work-tab{min-height:38px}.radio-pill{min-height:42px}.note-item{min-height:46px;justify-content:center}.sem-row{min-height:52px}.tb-menu-item{min-height:44px;font-size:15px}.dots-btn{width:44px;height:44px}.note-add-btn,.quicknav-btn,.field input,.field select,.filter-bar select,.slot-row select,.slot-row input{min-height:44px}.class-layout>*,.dash-columns>*,.profile-layout>*,.form-grid>*,.modal-form>*,.big-numbers>*,.shelf>*,.years-grid>*,.view-head>*,.field,.class-side,.work-side-anchor,.class-side-panel,.note-editor-panel,.note-editor-pane,.rich-editor{min-width:0}.field select,.field input,.field textarea{width:100%;max-width:100%}.filter-bar select{width:auto}input[type=date],input[type=time],input[type=datetime-local]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;box-sizing:border-box}input[type=date],input[type=time],input[type=datetime-local],input[type=number]{width:100%;max-width:100%;min-width:0}input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value{width:100%;min-width:0;margin:0;text-align:left}input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{opacity:1;flex-shrink:0;margin-left:auto}.slot-row input[type=time]{flex:1 1 0;min-width:0}.panel{padding:15px 14px;border-radius:18px}.empty-state{padding:40px 18px;border-radius:18px}.empty-state p{font-size:13.5px}.empty-icon{width:62px;height:62px;border-radius:20px}}@media(max-width:900px){.big-numbers{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.highlight-card,.big-numbers>.big-card:last-child{grid-column:1 / -1}.big-card{padding:14px;border-radius:18px}.big-icon{width:32px;height:32px;border-radius:10px;margin-bottom:8px}.big-value{font-size:27px}.highlight-card .big-value{font-size:31px}.big-label{font-size:10.5px;letter-spacing:.5px}.big-detail{font-size:12px;white-space:normal}.highlight-card .big-detail{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.alert-banner{padding:12px 14px;font-size:13px;border-radius:16px;gap:10px}.date-list li,.today-list li{padding:11px 8px;gap:9px}.date-text strong{white-space:normal;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.date-text small{line-height:1.35}.date-arrow{display:none}.years-grid{grid-template-columns:1fr}.year-title h2{font-size:18px}.sem-add-row{flex-wrap:wrap}.week-grid{flex-direction:column;gap:10px;overflow-x:visible;padding-bottom:0}.day-col{min-width:0;width:100%;border-radius:16px}.day-col-head{padding:10px 13px}.day-col-body{min-height:0;padding:9px}.day-empty{padding:10px 0}.class-card-actions{opacity:1;gap:0}.class-card-actions .icon-btn{width:34px;height:34px}.class-card-name{padding-right:72px;min-height:30px}.class-topbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.class-topbar .btn-back{margin-right:auto}.class-note-title{flex:1 1 100%;order:3;font-size:19px;padding:6px 8px}.class-topbar-actions{display:flex;gap:8px}.class-side{gap:8px}.class-side-panel{padding:12px}.notes-list{max-height:30dvh}.quicknav-row{grid-template-columns:1fr 1fr}.note-editor-panel{padding:12px}.work-side-title{font-size:19px}.work-side-fields .field input,.work-side-fields .field select{min-height:44px;font-size:16px}.member-add-chip{min-height:36px;padding:6px 13px}.member-add-inline input{min-height:36px;width:170px}.work-pie{margin-right:12px}.progress-pop{width:min(300px,calc(100vw - 32px))}.progress-pop input[type=range]{min-height:32px}.shelf{grid-template-columns:repeat(3,1fr);column-gap:18px;row-gap:60px;margin-top:20px}.shelf-item .caption{margin-top:28px;padding:7px 16px 9px}.shelf-item .caption h2{font-size:13px}.shelf-item .caption p{font-size:11px}.filter-bar{gap:8px}.filter-bar select{min-width:0;flex:1 1 calc(50% - 4px)}.work-tab.active{box-shadow:0 3px 9px #0a84ff52}.file-list li{gap:10px;padding:9px 10px}.file-icon{width:34px;height:34px}.exam-grid{grid-template-columns:1fr;gap:12px}.exam-subject{padding:14px 12px 12px}.exam-subject-title h3{font-size:15px}.exam-row{gap:8px;padding:8px}.exam-row-actions .icon-btn{width:34px;height:34px}.past-toggle{margin-left:0;flex:1 1 100%;justify-content:center}}@media(max-width:900px){.tb-btn{width:34px;height:34px;flex-shrink:0}.tb-sep{flex-shrink:0;margin:0 3px}.slash-root{position:fixed!important;transform:none!important;left:12px!important;right:12px!important;top:auto!important;bottom:calc(env(safe-area-inset-bottom,0px) + 12px)!important;width:auto!important;max-width:none!important}.slash-menu{width:100%;min-width:0;max-height:38dvh}.bubble-menu{max-width:calc(100vw - 24px)}.bubble-row{flex-wrap:wrap}.bubble-link input{font-size:16px}.floating-plus-btn{width:38px;height:38px}.popover{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);max-width:calc(100vw - 32px);padding:12px;border-radius:18px;box-shadow:0 20px 50px #0a325a59;animation:fadeIn .16s ease}.swatch-grid{gap:8px}.swatch{width:40px;height:40px;border-radius:12px;font-size:16px}.editor-scroll{min-height:44dvh;max-height:none}.ProseMirror{font-size:16px;min-height:40dvh}.editor-loading{min-height:40dvh;padding:24px}.ProseMirror h1{font-size:22px}.ProseMirror h2{font-size:18.5px}.ProseMirror h3{font-size:16px}.ProseMirror table{display:block;overflow-x:auto;white-space:nowrap}}@media(max-width:900px){.modal-overlay{place-items:center;padding:18px 14px}.modal{width:100%!important;max-width:100%!important;display:flex;flex-direction:column;max-height:68vh;max-height:calc(100svh - 164px - env(safe-area-inset-top,0px));border-radius:22px;padding:16px 16px 18px;overflow:hidden}.modal-head{flex-shrink:0;margin-bottom:12px}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;margin:0 -16px;padding:0 16px;scrollbar-width:none}.modal-body::-webkit-scrollbar{display:none}.modal-head h3{font-size:17px}.form-grid{grid-template-columns:1fr}.modal-actions{gap:8px;margin-top:14px}.modal-actions button{flex:1;justify-content:center}.slot-row{flex-wrap:wrap;gap:7px}.slot-row select{flex:1 1 100%}.slot-row input{flex:1}.fb-modal{height:90dvh}.fb-head{flex-wrap:wrap;padding:16px 56px 10px 16px;gap:10px 12px}.fb-switch{order:3;flex-basis:100%}.fb-brief{margin:0 16px 10px;padding:9px 12px 9px 13px}.fb-brief-line{font-size:13px}.fb-tabs{display:flex;flex-shrink:0;margin:0 16px 10px;padding:3px;border-radius:999px;background:#78a0c82e}.fb-tabs button{flex:1;padding:7px;border-radius:999px;font-size:13px;font-weight:700;color:var(--ink-soft);transition:background .15s ease,color .15s ease}.fb-tabs button[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 2px 8px #1f579426}.fb-body{grid-template-columns:1fr;padding:0 16px 16px}.fb-body.show-panorama .fb-draft-pane,.fb-body.show-rascunho .fb-panorama{display:none}.fb-draft{font-size:16px}}@media(max-width:900px){.auth-wrap{-webkit-overflow-scrolling:touch;padding:calc(env(safe-area-inset-top,0px) + 16px) 14px calc(env(safe-area-inset-bottom,0px) + 16px);scrollbar-gutter:auto}.auth-card{width:100%;max-width:100%;padding:24px 18px;border-radius:24px}.auth-logo h1{font-size:24px}.auth-logo .logo-badge{width:52px;height:52px;border-radius:17px}.auth-tabs button{padding:11px}.profile-form{gap:14px}.avatar-uploader.big{width:78px;height:78px}}@media(max-width:560px){.view-head{flex-direction:column;align-items:stretch}.view-head>.btn-primary,.view-head>.btn-ghost{width:100%;justify-content:center}.head-actions{width:100%}.head-actions>button{flex:1;justify-content:center}.head-actions>.btn-icon-only{flex:0 0 auto}.filter-bar select{flex:1 1 calc(50% - 4px);min-width:0}.empty-actions{flex-direction:column}.empty-actions>button{width:100%;justify-content:center}.exam-row{grid-template-columns:auto 1fr auto}.exam-row-actions{grid-column:2 / -1;justify-self:end;margin-top:-2px}.shelf{grid-template-columns:repeat(2,1fr);column-gap:14px;row-gap:52px}.paper-modal{--margin-x: 44px;width:calc(100vw - 24px);max-height:88dvh}.paper-body{padding-right:22px;padding-left:calc(var(--margin-x) + 18px)}.paper-list li:before{right:calc(100% + 26px)}.fb-modal{--margin-x: 28px;height:88dvh}.fb-strip{grid-template-columns:repeat(7,1fr);gap:4px}.fb-stat{padding:8px 10px}.fb-stat-value{font-size:20px}.fb-stat.is-ok .fb-stat-value{font-size:17px}.fb-row{flex-wrap:wrap}.fb-row-pick{flex-basis:100%;display:flex;justify-content:flex-end}}@media(max-width:354px){.shelf{grid-template-columns:1fr;row-gap:46px}}@media(max-width:380px){.big-numbers{grid-template-columns:1fr}.view-head h1{font-size:20px}.big-value{font-size:26px}.content{padding:0 10px}.panel{padding:13px 12px}.avatar-row{flex-direction:column;align-items:center;text-align:center}.avatar-fields{width:100%;text-align:left}}@media(max-width:900px)and (orientation:landscape)and (max-height:520px){.notes-list{max-height:40vh}.editor-scroll{min-height:38vh}.modal{max-height:calc(100svh - 96px)}.empty-state{padding:24px 18px}}@media(max-width:900px){.orb{animation:none}.orb-1,.orb-4{display:none}.panel,.big-card,.day-col,.sidebar,.paper-modal,.exam-subject{backdrop-filter:blur(14px) saturate(1.35);-webkit-backdrop-filter:blur(14px) saturate(1.35)}.shelf-item .caption{backdrop-filter:blur(10px) saturate(1.3);-webkit-backdrop-filter:blur(10px) saturate(1.3)}}@media(prefers-reduced-motion:reduce){.orb,.due-today,.due-late,.alert-banner,.highlight-card{animation:none}.sidebar{transition:none}.modal,.auth-card,.modal-overlay,.drawer-backdrop,.popover{animation:none}}.print-head{display:none}@media print{.bg-aero,.sidebar,.mobile-topbar,.drawer-backdrop,.class-topbar,.class-side,.note-save-float,.save-status,.slash-root,.bubble-menu,.floating-plus,.pop-backdrop,.popover,.modal-overlay,.floating-plus-btn,.work-tabs-bar{display:none!important}html,body{height:auto;overflow:visible;background:#fff}.app{display:block;height:auto;padding:0}.content,.content.content-fill,.class-view,.class-layout,.note-editor-panel,.note-editor-pane,.rich-editor,.editor-scroll{display:block!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;flex:none!important}.class-layout{grid-template-columns:1fr!important}.note-editor-panel{background:#fff;border:none;box-shadow:none;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none}.note-editor-panel:before{display:none}.print-head{display:block!important;margin-bottom:14pt;padding-bottom:8pt;border-bottom:2pt solid #000}.print-head h1{font-size:20pt;margin:0;letter-spacing:-.5px}.print-head p{font-size:10pt;color:#444;margin:2pt 0 0}.ProseMirror,.class-view .ProseMirror{max-width:none;color:#000;font-size:12pt;min-height:0}.ProseMirror pre{white-space:pre-wrap;background:#f3f4f6;color:#111}.ProseMirror img{box-shadow:none}.ProseMirror blockquote{background:#f3f6fa}}
