:root{--bg:#f5f5f8;--surface:#fff;--surface-2:#f9f9fb;--text:#17171b;--muted:#74747f;--border:#e7e7ec;--primary:#635bff;--primary-soft:#eeecff;--shadow:0 1px 2px rgba(21,21,31,.04),0 10px 30px rgba(35,31,72,.04);--sidebar:232px;--radius:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:"DM Sans",system-ui,sans-serif;font-size:14px}button,input{font:inherit}button{color:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);padding:22px 14px 16px;background:#fbfbfc;border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:20}.brand{height:42px;padding:0 8px;display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--text);font:800 17px Manrope}.brand-mark{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;color:#fff;background:var(--primary);box-shadow:0 6px 14px rgba(99,91,255,.25)}.brand-mark svg{width:17px}.side-nav{margin-top:26px}.nav-label{margin:0 10px 8px;color:#a1a1aa;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.section-gap{margin-top:25px}.nav-item{position:relative;width:100%;height:40px;border:0;background:transparent;border-radius:9px;padding:0 10px;display:flex;align-items:center;gap:11px;color:#65656f;cursor:pointer;text-align:left;font-weight:500}.nav-item svg{width:18px;height:18px;stroke-width:1.8}.nav-item:hover{background:#f1f1f5;color:var(--text)}.nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.nav-item.active:before{content:"";position:absolute;left:-14px;width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--primary)}.nav-count{margin-left:auto;padding:2px 7px;border-radius:10px;background:#eeeef2;font-size:11px;color:#777782}.semester-card{margin:auto 4px 16px;padding:14px;background:#f1f0ff;border:1px solid #e4e1ff;border-radius:12px}.semester-top,.mini-progress{display:flex;justify-content:space-between;align-items:center;font-size:12px}.semester-top strong{color:var(--primary)}.progress-track{height:5px;border-radius:9px;background:#dedbe9;margin:10px 0 8px;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.semester-card small{color:var(--muted)}.profile-row{display:flex;align-items:center;gap:10px;padding:8px}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#17171b;color:#fff;font-size:11px;font-weight:700}.profile-copy{display:flex;flex-direction:column;min-width:0}.profile-copy strong{font-size:13px}.profile-copy small{font-size:11px;color:var(--muted)}.profile-row .icon-button{margin-left:auto}.main{margin-left:var(--sidebar);min-height:100vh}.topbar{height:72px;padding:0 34px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.84);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.search-trigger{width:min(370px,42vw);height:38px;border:1px solid var(--border);background:#f8f8fa;border-radius:10px;color:var(--muted);display:flex;align-items:center;gap:9px;padding:0 11px;cursor:pointer;text-align:left}.search-trigger svg{width:17px}.search-trigger kbd{margin-left:auto}.search-trigger:hover{border-color:#d4d1ff;background:#fff}.top-actions{display:flex;gap:8px;align-items:center}.primary-button,.secondary-button{border:0;border-radius:9px;height:38px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:600;white-space:nowrap}.primary-button{color:#fff;background:var(--primary);box-shadow:0 5px 12px rgba(99,91,255,.18)}.primary-button:hover{background:#554df2}.secondary-button{background:var(--surface);border:1px solid var(--border);color:#4b4b55}.secondary-button:hover{border-color:#cbc8ff;color:var(--primary)}.compact{height:34px;padding:0 12px;font-size:12px}.primary-button svg,.secondary-button svg{width:16px}.icon-button{width:36px;height:36px;border:0;border-radius:9px;background:transparent;display:inline-grid;place-items:center;cursor:pointer;color:#73737e}.icon-button:hover,.icon-button.active{background:#f0efff;color:var(--primary)}.icon-button svg{width:18px}.notification{position:relative}.notification span{position:absolute;right:8px;top:7px;width:6px;height:6px;border-radius:50%;background:#ef4444;border:1px solid #fff}.page{display:none;padding:38px 34px 48px;max-width:1460px;margin:0 auto}.page.active{display:block;animation:pageIn .3s ease}@keyframes pageIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.page-heading h1{font:800 clamp(26px,3vw,34px) Manrope;margin:3px 0 6px;letter-spacing:-.04em}.page-heading p{margin:0;color:var(--muted)}.eyebrow{color:var(--primary)!important;font-weight:700;font-size:10px;letter-spacing:.12em}.hero-heading h1{font-size:31px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card{min-height:128px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:19px;display:flex;align-items:flex-start;gap:14px;box-shadow:var(--shadow);position:relative}.stat-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center}.stat-icon svg{width:19px}.stat-card.purple .stat-icon{background:#edebff;color:#635bff}.stat-card.amber .stat-icon{background:#fff4d9;color:#d58b00}.stat-card.blue .stat-icon{background:#e4f1ff;color:#3b82f6}.stat-card.green .stat-icon{background:#def8eb;color:#12a164}.stat-card small{color:var(--muted)}.stat-card strong{display:block;font:700 25px Manrope;margin:4px 0}.stat-card p{font-size:11px;color:var(--muted);margin:0}.trend{position:absolute;right:16px;top:18px;font-size:11px}.positive{color:#0c9d60!important}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.8fr);gap:14px;margin-top:14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.panel-header h2{font:700 16px Manrope;margin:0 0 3px}.panel-header p{font-size:11px;color:var(--muted);margin:0}.text-button{border:0;background:none;color:var(--primary);font-size:11px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px}.text-button svg{width:13px}.task-list{display:flex;flex-direction:column}.task-row{min-height:58px;display:flex;align-items:center;gap:12px;border-top:1px solid var(--border);cursor:pointer}.task-row:first-child{border-top:0}.task-row input{display:none}.check-ui{width:18px;height:18px;border:1.5px solid #c9c9d2;border-radius:6px;display:grid;place-items:center;flex:0 0 auto}.task-row input:checked+.check-ui{background:var(--primary);border-color:var(--primary)}.task-row input:checked+.check-ui:after{content:"";width:7px;height:4px;border:solid #fff;border-width:0 0 1.5px 1.5px;transform:rotate(-45deg) translateY(-1px)}.task-main{display:flex;flex-direction:column;gap:5px;flex:1}.task-main strong{font-size:13px;font-weight:600}.task-main small{font-size:10px;color:var(--muted)}.task-row.completed .task-main strong{text-decoration:line-through;color:#9999a3}.task-row>svg{width:17px;color:#aaa}.tag{padding:2px 6px;border-radius:5px;margin-right:5px;font-size:9px;font-weight:600}.purple-tag{background:#eeecff;color:#635bff}.red-tag{background:#ffe8e8;color:#d84b4b}.blue-tag{background:#e7f1ff;color:#347dd5}.green-tag{background:#e0f8ec;color:#118b57}.timeline{padding-top:3px}.timeline-item{display:grid;grid-template-columns:42px 14px 1fr;gap:9px;min-height:66px;position:relative}.timeline-item:not(:last-child):after{content:"";position:absolute;left:48px;top:25px;bottom:0;width:1px;background:var(--border)}.timeline-item time{font-size:11px;color:var(--muted);padding-top:2px}.line-dot{width:9px;height:9px;border-radius:50%;margin-top:4px;z-index:1;box-shadow:0 0 0 4px #fff}.purple-dot{background:#756dff}.blue-dot{background:#4295e9}.green-dot{background:#25b578}.timeline-item div{display:flex;flex-direction:column;gap:4px}.timeline-item strong{font-size:12px}.timeline-item small{font-size:10px;color:var(--muted)}.projects-panel{grid-column:1/-1}.project-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.project-mini{border:1px solid var(--border);border-radius:13px;padding:16px}.project-top{display:flex;justify-content:space-between}.project-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px}.project-icon svg{width:17px}.violet{background:#eceaff;color:#665df5}.cyan{background:#ddf7fa;color:#168da1}.amber{background:#fff0d2;color:#ca7f00}.project-mini h3{margin:13px 0 4px;font:700 14px Manrope}.project-mini p{margin:0 0 18px;color:var(--muted);font-size:11px}.mini-progress{font-size:10px;color:var(--muted)}.mini-progress strong{font-size:11px;color:var(--text)}.cyan-progress span{background:#22a7b8}.amber-progress span{background:#e9a11d}.recent-notes{display:flex;flex-direction:column}.recent-notes button{border:0;border-top:1px solid var(--border);background:transparent;min-height:64px;padding:0;display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer}.recent-notes button:first-child{border-top:0}.file-icon{width:33px;height:38px;border:1px solid var(--border);border-radius:8px;display:grid;place-items:center;color:var(--primary)}.file-icon svg{width:16px}.recent-notes button>span:nth-child(2){display:flex;flex:1;flex-direction:column;gap:4px}.recent-notes strong{font-size:12px}.recent-notes small{font-size:10px;color:var(--muted)}.recent-notes button>svg{width:15px;color:#aaa}.view-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.filter-tabs{display:inline-flex;padding:3px;background:#ececf1;border-radius:9px}.filter-tabs button{height:29px;border:0;background:transparent;padding:0 12px;border-radius:7px;color:var(--muted);font-size:11px;cursor:pointer}.filter-tabs button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.note-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px;min-height:178px;display:flex;flex-direction:column;cursor:pointer;transition:.2s}.note-card:hover{transform:translateY(-2px);border-color:#ccc9ff;box-shadow:var(--shadow)}.note-card .note-icon{width:33px;height:33px;border-radius:9px;background:var(--primary-soft);display:grid;place-items:center;color:var(--primary)}.note-card .note-icon svg{width:17px}.note-card h3{font:700 14px Manrope;margin:15px 0 6px}.note-card p{font-size:11px;color:var(--muted);line-height:1.6;margin:0}.note-meta{margin-top:auto;padding-top:17px;display:flex;justify-content:space-between;color:#9999a3;font-size:10px}.academic-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.academic-summary article{padding:19px;background:var(--surface);border:1px solid var(--border);border-radius:14px}.academic-summary span,.academic-summary small{display:block;color:var(--muted);font-size:11px}.academic-summary strong{display:block;font:700 24px Manrope;margin:8px 0}.course-list article{display:grid;grid-template-columns:60px 1fr 100px 100px 45px 20px;align-items:center;gap:14px;padding:15px 0;border-top:1px solid var(--border)}.course-list article:first-child{border-top:0}.course-code{width:56px;height:42px;display:grid;place-items:center;border-radius:9px;font-size:9px;font-weight:700}.course-list h3{font-size:13px;margin:0 0 4px}.course-list p{font-size:10px;color:var(--muted);margin:0}.course-stat span{display:block;font-size:9px;color:var(--muted)}.course-stat strong{font-size:12px}.grade{font-weight:700;color:var(--primary)}.course-list article>svg{width:16px;color:#aaa}.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start}.kanban-column{background:#efeff3;border-radius:14px;padding:12px}.kanban-title{display:flex;justify-content:space-between;align-items:center;padding:3px 3px 12px}.kanban-title h3{font-size:12px;margin:0}.kanban-title span{font-size:10px;color:var(--muted)}.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:14px;margin-top:9px}.kanban-card h4{font-size:12px;margin:0 0 7px}.kanban-card p{font-size:10px;color:var(--muted);line-height:1.5;margin:0 0 14px}.card-footer{display:flex;justify-content:space-between;align-items:center}.card-footer span{font-size:9px;color:var(--muted)}.calendar-shell{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.calendar-toolbar{height:66px;padding:0 18px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}.calendar-toolbar h2{font:700 15px Manrope;margin-right:auto}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-grid>*{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.cal-head{height:36px;display:grid;place-items:center;color:var(--muted);font-size:10px;background:var(--surface-2)}.cal-day{min-height:105px;padding:8px;font-size:10px}.cal-day.muted{color:#bbb}.cal-day.today>span{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:#fff}.cal-event{display:block;padding:4px 6px;margin-top:5px;border-radius:5px;background:#eeecff;color:#5a50df;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event.red{background:#ffe8e8;color:#c84343}.cal-event.blue{background:#e5f1ff;color:#337cc9}.file-folders{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.file-folders article{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px;display:flex;align-items:center;gap:13px}.file-folders article>span{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:var(--primary-soft);color:var(--primary)}.file-folders h3{font-size:13px;margin:0 0 4px}.file-folders p{font-size:10px;color:var(--muted);margin:0}.file-folders article>svg{width:17px;margin-left:auto;color:#aaa}.empty-state{min-height:420px;border:1px dashed #d6d4e8;border-radius:16px;background:rgba(255,255,255,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.empty-state>span{width:58px;height:58px;border-radius:17px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center}.empty-state h2{font:700 17px Manrope;margin:16px 0 7px}.empty-state p{max-width:380px;color:var(--muted);margin:0 0 18px;font-size:12px}dialog{width:min(620px,calc(100% - 28px));border:1px solid var(--border);border-radius:18px;background:var(--surface);color:var(--text);box-shadow:0 24px 80px rgba(24,20,55,.2);padding:22px}dialog::backdrop{background:rgba(17,17,25,.35);backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;align-items:start}.dialog-header h2{font:700 20px Manrope;margin:0 0 4px}.dialog-header p{margin:0;color:var(--muted);font-size:12px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.quick-grid button{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:14px;min-height:118px;text-align:left;cursor:pointer}.quick-grid button:hover{border-color:#cbc8ff;background:var(--primary-soft)}.quick-grid button span{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;background:#fff;color:var(--primary)}.quick-grid button svg{width:16px}.quick-grid button strong,.quick-grid button small{display:block}.quick-grid button strong{font-size:12px;margin:12px 0 4px}.quick-grid button small{font-size:9px;color:var(--muted)}.search-dialog{padding:0;top:-25vh}.command-input{height:58px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--border)}.command-input svg{width:19px;color:var(--muted)}.command-input input{border:0;outline:0;background:transparent;flex:1;color:var(--text)}kbd{font-size:9px;border:1px solid var(--border);background:#eeeef2;border-radius:5px;padding:3px 6px;color:#85858f}.search-results{padding:9px;max-height:320px;overflow:auto}.search-result{width:100%;border:0;background:transparent;border-radius:9px;padding:10px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}.search-result:hover{background:var(--primary-soft)}.search-result svg{width:17px;color:var(--primary)}.search-result span{display:flex;flex-direction:column}.search-result strong{font-size:12px}.search-result small{font-size:9px;color:var(--muted)}.toast{position:fixed;right:24px;bottom:24px;background:#18181c;color:#fff;border-radius:10px;padding:11px 16px;display:flex;align-items:center;gap:9px;transform:translateY(80px);opacity:0;transition:.3s;z-index:100}.toast.show{transform:none;opacity:1}.toast svg{width:17px;color:#57dd9f}.mobile-nav{display:none}body.dark{--bg:#101014;--surface:#19191f;--surface-2:#202027;--text:#f1f1f4;--muted:#9999a5;--border:#2b2b34;--shadow:none}.dark .sidebar{background:#15151a}.dark .topbar{background:rgba(20,20,25,.86)}.dark .nav-item:hover{background:#222229}.dark .semester-card{background:#222039;border-color:#302e4d}.dark .search-trigger,.dark .kanban-column{background:#202027}.dark .line-dot{box-shadow:0 0 0 4px var(--surface)}.dark .filter-tabs{background:#24242c}.dark .quick-grid button span{background:#292832}.dark kbd{background:#292930}.dark .empty-state{background:rgba(25,25,31,.5)}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.notes-grid{grid-template-columns:repeat(2,1fr)}.course-list article{grid-template-columns:60px 1fr 80px 45px 20px}.course-stat:nth-of-type(2){display:none}.academic-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){:root{--sidebar:0px}.sidebar{display:none}.main{margin-left:0;padding-bottom:70px}.topbar{height:62px;padding:0 18px}.search-trigger{width:42px}.search-trigger span,.search-trigger kbd{display:none}.top-actions .primary-button span{display:none}.top-actions .primary-button{width:38px;padding:0}.page{padding:25px 18px 34px}.page-heading{align-items:flex-start}.page-heading .secondary-button{display:none}.hero-heading h1{font-size:26px}.dashboard-grid{grid-template-columns:1fr}.projects-panel{grid-column:auto}.project-cards{grid-template-columns:1fr}.notes-grid,.file-folders{grid-template-columns:1fr 1fr}.kanban{display:flex;overflow-x:auto}.kanban-column{min-width:280px}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;height:64px;background:var(--surface);border-top:1px solid var(--border);z-index:30;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav button{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:9px}.mobile-nav button svg{width:19px}.mobile-nav button.active{color:var(--primary)}.calendar-grid{min-width:700px}.calendar-shell{overflow:auto}.quick-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.stats-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{min-height:118px;padding:14px;display:block}.stat-icon{width:31px;height:31px;margin-bottom:8px}.stat-card strong{font-size:20px}.stat-card p,.trend{display:none}.notes-grid,.file-folders,.academic-summary{grid-template-columns:1fr}.course-list article{grid-template-columns:52px 1fr 35px 16px}.course-stat{display:none}.page-heading{gap:12px}.page-heading>.primary-button{width:38px;padding:0;font-size:0}.quick-grid{grid-template-columns:1fr 1fr}.notes-panel{display:none}.topbar{padding:0 12px}}

/* Authentication and cloud-connected states */
body.booting .app-shell,body.booting .auth-screen{display:none}body.booting:after{content:"";position:fixed;inset:50% auto auto 50%;width:30px;height:30px;border:3px solid #ddd;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}body.signed-out .app-shell{display:none}body.signed-out .auth-screen{display:block}body.signed-in .auth-screen{display:none}@keyframes spin{to{transform:rotate(360deg)}}
.auth-screen{display:none;min-height:100vh;padding:28px clamp(24px,5vw,72px);background:radial-gradient(circle at 16% 20%,#e9e6ff 0,transparent 32%),radial-gradient(circle at 85% 80%,#dff3ff 0,transparent 30%),#f8f8fb}.auth-brand{display:flex;align-items:center;gap:11px;font:800 17px Manrope}.auth-layout{min-height:calc(100vh - 90px);display:grid;grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:8vw;max-width:1180px;margin:auto}.auth-intro h1{font:800 clamp(38px,5vw,65px)/1.08 Manrope;margin:14px 0 20px;letter-spacing:-.055em}.auth-intro>p:not(.eyebrow){max-width:570px;color:var(--muted);font-size:17px;line-height:1.7}.auth-product-summary{max-width:630px!important;margin:21px 0 0;font-size:12px!important;line-height:1.75!important;color:#74747f!important}.auth-features{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}.auth-features span{display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid rgba(99,91,255,.13);background:rgba(255,255,255,.64);border-radius:10px;font-size:12px;color:#575763}.auth-features svg{width:16px;color:var(--primary)}.auth-card{background:rgba(255,255,255,.92);border:1px solid #e9e8ef;box-shadow:0 30px 90px rgba(39,35,75,.12);border-radius:22px;padding:30px}.auth-card h2{font:800 24px Manrope;margin:4px 0 7px}.auth-card>div>p:last-child{margin:0 0 23px;color:var(--muted)}.auth-card label,.form-dialog label{display:flex;flex-direction:column;gap:7px;margin-top:15px;font-size:11px;font-weight:600;color:#52525c}.auth-card input,.form-dialog input,.form-dialog textarea{width:100%;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:9px;padding:10px 12px;outline:0;font-weight:400}.auth-card input{height:43px}.auth-card input:focus,.form-dialog input:focus,.form-dialog textarea:focus{border-color:#9c96ff;box-shadow:0 0 0 3px var(--primary-soft)}.google-button{height:43px;width:100%;border:1px solid var(--border);background:#fff;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;font-weight:600;color:#363640}.google-button:hover{border-color:#c8c5f9;background:#faf9ff}.google-mark{font:700 17px Arial;color:#4285f4}.auth-divider{height:44px;display:flex;align-items:center}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--border)}.auth-divider span{padding:0 10px;font-size:9px;color:#aaa}.auth-submit{width:100%;height:43px;margin-top:18px}.auth-switch{display:block;margin:14px auto 0;border:0;background:none;color:var(--primary);font-size:11px;cursor:pointer}.form-error{min-height:15px;margin:8px 0 -3px;color:#dc4545;font-size:10px}.sync-status{display:flex;align-items:center;gap:6px;margin-right:3px;color:var(--muted);font-size:10px}.sync-status svg{width:14px}.sync-status.online{color:#0c9d60}.sync-status.error{color:#dc4545}.data-loader{grid-column:1/-1;padding:24px;text-align:center;color:var(--muted);font-size:11px}.note-card{position:relative}.note-card-actions{position:absolute;right:12px;top:12px;display:flex;opacity:0;transition:.2s}.note-card:hover .note-card-actions{opacity:1}.note-card-actions button{width:29px;height:29px}.note-card-actions svg{width:14px}.empty-mini{grid-column:1/-1;min-height:230px;border:1px dashed var(--border);border-radius:14px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted);text-align:center}.empty-mini svg{width:26px;margin-bottom:10px;color:var(--primary)}.form-dialog{width:min(560px,calc(100% - 28px));padding:24px}.form-dialog form{display:block}.form-dialog .dialog-header h2{margin-top:3px}.form-dialog textarea{resize:vertical;line-height:1.6}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:22px}.danger-button{height:37px;border:0;background:#ffeaea;color:#cc4141;border-radius:9px;padding:0 12px;display:inline-flex;align-items:center;gap:7px;cursor:pointer}.danger-button svg{width:15px}.note-dialog{width:min(760px,calc(100% - 28px))}.note-title-input{font:700 23px Manrope!important;border:0!important;padding:10px 0!important;box-shadow:none!important}.note-content-input{min-height:310px;border:0!important;border-top:1px solid var(--border)!important;border-radius:0!important;padding:16px 0!important;box-shadow:none!important}.autosave-label{font-size:10px;color:var(--muted);margin-right:auto}.service-notice{display:flex;align-items:flex-start;gap:12px;padding:15px 17px;border:1px solid #eedba7;background:#fffaea;border-radius:12px;margin-bottom:14px;color:#8a6515}.service-notice>svg{width:18px;flex:0 0 auto}.service-notice strong{font-size:12px}.service-notice p{font-size:10px;margin:3px 0 0;color:#987a36}.file-list{padding:0 18px}.file-row,.share-row{min-height:64px;border-top:1px solid var(--border);display:grid;grid-template-columns:34px 1fr auto auto;gap:12px;align-items:center}.file-row:first-child,.share-row:first-child{border-top:0}.file-row>span:first-child,.share-row>span:first-child{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--primary-soft);color:var(--primary)}.file-row svg,.share-row svg{width:16px}.file-row h3,.share-row h3{font-size:12px;margin:0 0 4px}.file-row p,.share-row p{font-size:9px;color:var(--muted);margin:0}.share-list{padding:0 18px}.public-share-view{min-height:100vh;background:var(--bg);padding:28px}.public-share-view>.brand{width:max-content}.public-note{max-width:760px;margin:8vh auto;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:clamp(28px,5vw,60px);box-shadow:var(--shadow)}.public-note h1{font:800 clamp(30px,5vw,48px) Manrope;letter-spacing:-.045em;margin:12px 0}.public-meta{color:var(--muted);font-size:11px}.public-note #publicShareContent{margin-top:30px;white-space:pre-wrap;font-size:15px;line-height:1.85}.quick-progress{height:4px;background:var(--border);border-radius:4px;overflow:hidden;margin-top:8px}.quick-progress span{display:block;height:100%;background:var(--primary)}
@media(max-width:800px){.auth-layout{grid-template-columns:1fr;max-width:460px;padding:32px 0}.auth-intro{display:block}.auth-intro h1{font-size:32px;margin:10px 0 12px}.auth-intro>p:not(.auth-product-summary){display:none}.auth-intro .auth-features{display:none}.auth-product-summary{margin:0 0 22px!important}.auth-card{padding:24px}.sync-status span{display:none}.form-row{grid-template-columns:1fr}.note-card-actions{opacity:1}.public-share-view{padding:18px}.public-note{margin:5vh auto}.service-notice{margin-top:-8px}}

/* Complete workspace views */
[hidden]{display:none!important}
.side-nav{overflow-y:auto;scrollbar-width:none}.side-nav::-webkit-scrollbar{display:none}.heading-actions{display:flex;gap:9px}.toolbar-caption{font-size:11px;color:var(--muted)}
.task-check{display:grid;place-items:center;cursor:pointer}.task-row .icon-button{opacity:.35;flex:0 0 auto}.task-row:hover .icon-button{opacity:1}.task-manager{padding:2px 20px}.task-manager .task-row{min-height:68px}.task-manager .task-main strong{font-size:14px}.task-manager .task-main small{font-size:11px}.compact-mode .task-manager .task-row{min-height:52px}.compact-mode .course-row{padding:10px 0}
.notes-grid.list-view{grid-template-columns:1fr}.notes-grid.list-view .note-card{min-height:108px;padding-left:70px}.notes-grid.list-view .note-icon{position:absolute;left:18px;top:18px}.notes-grid.list-view .note-card h3{margin:0 0 6px}.notes-grid.list-view .note-meta{padding-top:10px}
.course-row{width:100%;display:grid;grid-template-columns:60px 1fr 100px 100px 45px 20px;align-items:center;gap:14px;padding:15px 0;border:0;border-top:1px solid var(--border);background:transparent;text-align:left;cursor:pointer}.course-row:first-child{border-top:0}.course-row:hover h3{color:var(--primary)}.course-row h3{font-size:13px;margin:0 0 4px}.course-row p{font-size:10px;color:var(--muted);margin:0}.course-row>svg{width:16px;color:#aaa}.academic-toolbar{justify-content:flex-start;overflow-x:auto}.academic-list .task-row,.academic-event{min-height:64px;border-top:1px solid var(--border)}.academic-list>*:first-child{border-top:0}.academic-event{display:grid;grid-template-columns:38px 1fr auto 36px;gap:12px;align-items:center}.academic-event h3{font-size:12px;margin:0 0 4px}.academic-event p{font-size:10px;color:var(--muted);margin:0}.metric-list{display:flex;flex-direction:column}.metric-list>button{min-height:62px;border:0;border-top:1px solid var(--border);background:transparent;display:flex;align-items:center;gap:18px;text-align:left;cursor:pointer}.metric-list>button:first-child{border-top:0}.metric-list>button>span:first-child{display:flex;flex:1;flex-direction:column;gap:4px}.metric-list strong{font-size:12px}.metric-list small{font-size:10px;color:var(--muted)}.grade-badge{min-width:50px;padding:6px 10px;border-radius:8px;background:var(--primary-soft);color:var(--primary);font-weight:700;text-align:center}.attendance-meter{width:min(260px,35%);height:6px;border-radius:8px;background:var(--border);overflow:hidden}.attendance-meter i{display:block;height:100%;border-radius:inherit;background:#20ad70}.metric-list b{font-size:12px;min-width:36px}
.card-heading{display:flex;align-items:start;justify-content:space-between}.card-heading h4{padding-top:7px}.card-heading .icon-button{width:29px;height:29px}.card-actions{display:flex}.list-view.kanban,.timeline-view.kanban{display:block}.project-table,.project-timeline{padding:4px 18px}.project-table article{display:grid;grid-template-columns:12px minmax(180px,1fr) 100px 75px 36px 36px;gap:12px;align-items:center;min-height:66px;border-top:1px solid var(--border)}.project-table article:first-child,.project-timeline article:first-child{border-top:0}.project-table h4,.project-timeline h4{font-size:12px;margin:0 0 4px}.project-table p,.project-timeline p{font-size:10px;color:var(--muted);margin:0}.project-table time{font-size:10px;color:var(--muted)}.status-dot{width:8px;height:8px;border-radius:50%;background:#9a95ff}.status-dot.done{background:#24b578}.status-dot.in-progress,.timeline-marker.in-progress{background:#f0a629}.project-timeline article{display:grid;grid-template-columns:72px 16px 1fr 36px;gap:12px;align-items:center;min-height:70px;border-top:1px solid var(--border)}.project-timeline time{font-size:10px;color:var(--muted)}.timeline-marker{width:10px;height:10px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}
.timeline-item{width:100%;border:0;background:transparent;text-align:left;color:inherit}.red-dot{background:#ef5b5b}.calendar-grid.week-calendar .cal-day{min-height:430px}.calendar-grid.agenda-calendar{display:block}.calendar-grid.agenda-calendar>*{border:0}.cal-date-button{border:0;background:transparent;color:inherit;padding:0;cursor:pointer}.cal-date-button small{display:block;color:var(--muted);font-size:8px}.cal-date-button span{display:grid;place-items:center}.cal-day.today .cal-date-button>span{width:23px;height:23px;border-radius:50%;background:var(--primary);color:#fff}.cal-day.today>span{background:transparent;color:inherit}.cal-event{width:100%;border:0;text-align:left;cursor:pointer}.cal-event.amber-event{background:#fff2d9;color:#a76a00}.more-events{display:block;margin-top:4px;color:var(--muted)}.agenda-list{padding:0 18px}.agenda-list article{display:grid;grid-template-columns:86px 12px 1fr 36px;align-items:center;gap:12px;min-height:75px;border-top:1px solid var(--border)}.agenda-list article:first-child{border-top:0}.agenda-list time{display:flex;flex-direction:column;gap:3px}.agenda-list time strong{font-size:11px}.agenda-list time small{font-size:9px;color:var(--muted)}.agenda-list h3{font-size:12px;margin:0 0 4px}.agenda-list p{font-size:10px;color:var(--muted);margin:0}.calendar-empty{margin:18px;min-height:310px}
.notification-list{padding:0 18px}.notification-row{width:100%;min-height:74px;border:0;border-top:1px solid var(--border);background:transparent;display:grid;grid-template-columns:40px 1fr 8px 20px;gap:12px;align-items:center;text-align:left;cursor:pointer}.notification-row:first-child{border-top:0}.notification-row:hover{background:var(--surface-2)}.notification-row>span:nth-child(2){display:flex;flex-direction:column;gap:5px}.notification-row strong{font-size:12px}.notification-row small{font-size:10px;color:var(--muted)}.notification-row>svg{width:16px;color:#aaa}.notification-row.unread strong{color:var(--primary)}.unread-dot{width:7px;height:7px;border-radius:50%;background:var(--primary)}.notification[aria-label="通知"] span[hidden]{display:none}
.settings-layout{display:grid;grid-template-columns:210px minmax(0,760px);gap:18px;align-items:start}.settings-nav{display:flex;flex-direction:column;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:14px;position:sticky;top:92px}.settings-nav button{height:42px;border:0;background:transparent;border-radius:9px;padding:0 11px;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;cursor:pointer}.settings-nav button svg{width:17px}.settings-nav button:hover,.settings-nav button.active{background:var(--primary-soft);color:var(--primary)}.settings-panel{display:none}.settings-panel.active{display:block}.settings-heading{display:flex;align-items:center;gap:13px;padding-bottom:17px;border-bottom:1px solid var(--border)}.settings-heading>span{width:38px;height:38px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center}.settings-heading svg{width:18px}.settings-heading h2{font:700 16px Manrope;margin:0 0 4px}.settings-heading p{font-size:10px;color:var(--muted);margin:0}.profile-editor{display:flex;align-items:center;gap:13px;margin:20px 0 4px}.avatar.large{width:48px;height:48px;border-radius:13px}.profile-editor div{display:flex;flex-direction:column;gap:4px}.profile-editor small{color:var(--muted);font-size:10px}.settings-panel label{display:flex;flex-direction:column;gap:7px;margin-top:15px;font-size:11px;font-weight:600;color:#52525c}.settings-panel input,.settings-panel select,.form-dialog select{width:100%;height:42px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:9px;padding:0 11px;outline:0}.settings-panel input:focus,.settings-panel select:focus,.form-dialog select:focus{border-color:#9c96ff;box-shadow:0 0 0 3px var(--primary-soft)}.toggle-row{height:64px!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;border-top:1px solid var(--border);margin-top:22px!important}.toggle-row>span:first-child{display:flex;flex-direction:column;gap:4px}.toggle-row small{color:var(--muted);font-weight:400}.toggle-row input{display:none}.toggle-ui{width:42px;height:24px;border-radius:20px;background:#d5d5dc;position:relative;cursor:pointer}.toggle-ui:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.2s}.toggle-row input:checked+.toggle-ui{background:var(--primary)}.toggle-row input:checked+.toggle-ui:after{transform:translateX(18px)}.status-list{display:flex;flex-direction:column}.status-list article{min-height:66px;border-top:1px solid var(--border);display:flex;align-items:center;gap:12px}.status-list article:first-child{border-top:0}.status-list article>div{display:flex;flex:1;flex-direction:column;gap:4px}.status-list strong{font-size:12px}.status-list small{font-size:10px;color:var(--muted)}.status-icon{width:36px;height:36px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;flex:0 0 auto}.status-icon svg{width:17px}.status-icon.success{background:#e3f8ed;color:#15935c}.status-icon.warning{background:#fff2d8;color:#b97708}.status-icon.danger{background:#ffe6e6;color:#d84c4c}.status-pill{padding:5px 8px;border-radius:7px;background:#eeeef2;color:var(--muted);font-size:9px;text-transform:capitalize}.status-pill.online{background:#e1f8ec;color:#138d59}.status-pill.waiting{background:#fff2d8;color:#9f6c16}.data-actions{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.data-actions p{font-size:10px;color:var(--muted);margin:9px 0 0}.security-card{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:11px}.security-card>div{display:flex;flex-direction:column;gap:4px}.security-card small{font-size:10px;color:var(--muted)}.security-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}
.info-hero{display:flex;align-items:center;gap:18px;margin-bottom:14px}.large-mark{width:54px;height:54px;border-radius:15px;flex:0 0 auto}.large-mark svg{width:25px}.info-hero h2{font:700 20px Manrope;margin:5px 0}.info-hero p:last-child{color:var(--muted);margin:0}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.info-grid article>span{width:38px;height:38px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center}.info-grid svg{width:18px}.info-grid h3{font:700 14px Manrope;margin:15px 0 7px}.info-grid p{font-size:11px;color:var(--muted);line-height:1.6;margin:0}.shortcuts-panel{max-width:800px}
.mobile-more-dialog{width:min(460px,calc(100% - 20px));margin:auto auto 76px;padding:18px}.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.more-grid button{min-height:70px;border:1px solid var(--border);background:var(--surface-2);border-radius:11px;padding:12px;display:flex;align-items:center;gap:11px;text-align:left;color:inherit;cursor:pointer}.more-grid button>svg{width:19px;color:var(--primary)}.more-grid button>span{display:flex;flex-direction:column;gap:3px}.more-grid strong{font-size:11px}.more-grid small{font-size:9px;color:var(--muted)}
.toast.error svg{color:#ff7d7d}

@media(max-width:1100px){.course-row{grid-template-columns:60px 1fr 80px 45px 20px}.course-row .course-stat:nth-of-type(2){display:none}.settings-layout{grid-template-columns:185px 1fr}}
@media(max-width:800px){.heading-actions .secondary-button{display:none}.toolbar-caption{display:none}.task-row .icon-button{opacity:1}.settings-layout{grid-template-columns:1fr}.settings-nav{position:static;display:grid;grid-template-columns:repeat(4,1fr);overflow-x:auto}.settings-nav button{justify-content:center;padding:0;font-size:0}.settings-nav button svg{width:19px}.info-grid{grid-template-columns:1fr}.calendar-grid.week-calendar{min-width:760px}.calendar-toolbar .filter-tabs{margin-left:auto}.academic-toolbar .filter-tabs{min-width:max-content}.project-table article{grid-template-columns:10px 1fr 70px 36px}.project-table article>.status-pill,.project-table article>time{display:none}.notification-row{grid-template-columns:38px 1fr 8px 18px}}
@media(max-width:520px){.course-row{grid-template-columns:52px 1fr 35px 16px}.course-row .course-stat{display:none}.settings-panel{padding:17px}.settings-panel .form-row{grid-template-columns:1fr}.security-actions{flex-direction:column}.security-actions>*{justify-content:center}.more-grid{grid-template-columns:1fr 1fr}.notification-list{padding:0 12px}.calendar-toolbar{padding:0 10px}.calendar-toolbar .filter-tabs button{padding:0 8px}.calendar-toolbar>div:nth-of-type(1){display:flex}.info-hero{align-items:flex-start}.page-heading .heading-actions .primary-button{width:38px;padding:0;font-size:0}}
.security-actions{justify-content:flex-start;flex-wrap:wrap}.security-actions .danger-button{margin-left:auto}@media(max-width:520px){.security-actions .danger-button{margin-left:0}}

/* Layout and dark-theme resilience */
.profile-row{min-width:0;overflow:hidden}
.profile-copy{flex:1 1 auto;min-width:0;overflow:hidden}
.profile-copy strong,
.profile-copy small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-row .icon-button{flex:0 0 36px;margin-left:0}

.settings-panels,
.settings-panel,
.settings-heading>div,
.profile-editor>div,
.security-card>div{min-width:0}
.profile-editor small,
.security-card strong{overflow-wrap:anywhere}
.security-card{gap:14px}
.security-card .status-pill{flex:0 0 auto}
.security-actions>*{max-width:100%}

.dark .secondary-button{background:#202027;border-color:#3a3a45;color:#e4e4ea}
.dark .secondary-button:hover{background:#292932;border-color:#7770ff;color:#a9a4ff}
.dark .secondary-button:focus-visible{outline:3px solid rgba(129,121,255,.3);outline-offset:2px}
.dark .danger-button{background:#3a2328;color:#ff9da7;border:1px solid #613039}
.dark .danger-button:hover{background:#47272e;border-color:#8b414c;color:#ffc0c6}
.dark .settings-panel label{color:#d4d4dc}
.dark .status-pill.waiting{background:#3a301d;color:#ffd487}
.dark .settings-nav button:hover,
.dark .settings-nav button.active,
.dark .nav-item.active{background:#292742;color:#aaa5ff}
.dark .settings-nav button.active,
.dark .nav-item.active{box-shadow:inset 0 0 0 1px #413d68}
.dark .settings-nav button:focus-visible,
.dark .nav-item:focus-visible{outline:3px solid rgba(139,132,255,.28);outline-offset:2px}

.settings-nav{gap:4px;padding:7px}
.settings-nav button{position:relative;height:40px;border-radius:8px;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease}
.settings-nav button:hover:not(.active){background:var(--surface-2);color:var(--text)}
.settings-nav button.active{background:var(--primary-soft);color:var(--primary);box-shadow:none}
.settings-nav button.active:before{content:"";position:absolute;left:0;width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--primary)}
.dark .settings-nav{background:#18181e;border-color:#303039}
.dark .settings-nav button{color:#92929f}
.dark .settings-nav button:hover:not(.active){background:#202027;color:#e4e4e9;box-shadow:none}
.dark .settings-nav button.active{background:#28263d;color:#b4afff;box-shadow:inset 0 0 0 1px #3b3857}

@media(max-width:800px){
  .settings-nav button.active:before{left:50%;top:0;width:18px;height:3px;transform:translateX(-50%);border-radius:0 0 3px 3px}
}

@media(max-width:700px){
  .security-card{align-items:flex-start;flex-direction:column}
  .security-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .security-actions .danger-button{grid-column:1/-1;margin-left:0;justify-content:center}
}

@media(max-width:520px){
  .security-actions{grid-template-columns:1fr}
  .security-actions .danger-button{grid-column:auto}
  .security-actions .secondary-button{height:auto;min-height:42px;padding:10px 12px;white-space:normal;text-align:center}
}

/* Workspace modes */
[hidden]{display:none!important}
.dashboard-title-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.dashboard-title-row h1{margin-right:auto}
.mode-switcher{display:inline-flex;align-items:center;padding:3px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2)}
.mode-switcher button{height:28px;padding:0 12px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:10px;font-weight:700;cursor:pointer}
.mode-switcher button:hover{color:var(--text)}
.mode-switcher button{min-width:48px;transition:color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease}
.mode-switcher button:active{transform:scale(.96)}
.mode-switcher button.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 4px rgba(20,20,35,.1)}
.mode-switcher.is-saving{opacity:.78}
.dark .mode-switcher{background:#17171d;border-color:#32323c}
.dark .mode-switcher button.active{background:#302d50;color:#b7b3ff;box-shadow:inset 0 0 0 1px #494474}

.workspace-progress-card{position:relative;height:112px;min-height:112px;margin:auto 8px 12px;padding:12px;overflow:hidden;border-radius:11px}
.workspace-progress-card .semester-top span{display:block;min-width:96px;white-space:nowrap}
.workspace-progress-card .semester-top strong{min-width:38px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.workspace-progress-body{position:relative;height:42px}
.progress-single,.progress-split{position:absolute;inset:0;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .2s ease,transform .24s cubic-bezier(.22,1,.36,1)}
.progress-single.active,.progress-split.active{opacity:1;transform:none;pointer-events:auto}
.progress-single .progress-track{margin:14px 0 0}
.progress-split{display:grid;gap:4px;padding-top:3px}
.split-progress-row>div:first-child{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:9px}
.split-progress-row strong{color:var(--text);font-size:9px;font-variant-numeric:tabular-nums}
.split-progress-row .progress-track{height:3px;margin:2px 0 0}
.workspace-progress-card>.semester-top,.workspace-progress-card>small{transition:opacity .18s ease}
.workspace-progress-card>small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:8.5px;line-height:13px}
.progress-track span{transition:width .38s cubic-bezier(.22,1,.36,1)}
.workspace-progress-card.is-loading .progress-track{opacity:.55}
.workspace-progress-card.is-loading>small{opacity:.7}
body.booting .progress-single,body.booting .progress-split,body.booting .progress-track span{transition:none!important}
.dark .workspace-progress-card{background:linear-gradient(145deg,#1e1d27,#1a1a21);border-color:#343240;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.dark .workspace-progress-card .progress-track{background:#353342}
.dark .workspace-progress-card .progress-track span{background:linear-gradient(90deg,#7068ff,#928cff)}
.dark .workspace-progress-card .semester-top strong{color:#918aff}

#dashboard.mode-transitioning .stats-grid,
#dashboard.mode-transitioning .dashboard-grid{animation:dashboardModeIn .24s cubic-bezier(.22,1,.36,1)}
@keyframes dashboardModeIn{from{opacity:.62;transform:translateY(4px)}to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
  .mode-switcher button,.progress-single,.progress-split,.progress-track span{transition:none}
  #dashboard.mode-transitioning .stats-grid,#dashboard.mode-transitioning .dashboard-grid{animation:none}
}

.context-pill{display:inline-flex;align-items:center;width:max-content;padding:2px 6px;border-radius:999px;font-size:8px;font-weight:700;letter-spacing:.03em}
.stat-card.amber{background:var(--surface);color:var(--text)}
.dark .stat-card.amber .stat-icon{background:#3b311e;color:#ffd06f}
.context-pill.study{background:#e9e7ff;color:#5e56df}
.context-pill.work{background:#e1efff;color:#2871bd}
.context-pill.personal{background:#ececf1;color:#686872}
.dark .context-pill.study{background:#302d50;color:#b7b3ff}
.dark .context-pill.work{background:#20354b;color:#8dc5ff}
.dark .context-pill.personal{background:#2a2a32;color:#b6b6c0}
.task-main small{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.project-mini .context-pill{margin-top:11px}

.workspace-mode-settings{border:0;padding:0;margin:20px 0 4px}
.workspace-mode-settings legend{padding:0;font-size:11px;font-weight:700;color:var(--text)}
.workspace-mode-settings>p{margin:5px 0 12px;color:var(--muted);font-size:10px}
.mode-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}
.mode-choice-grid label{margin:0!important;cursor:pointer}
.mode-choice-grid input{position:absolute;width:1px!important;height:1px!important;margin:0;opacity:0;pointer-events:none}
.mode-choice-grid label>span{position:relative;min-height:150px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);display:flex;flex-direction:column;align-items:flex-start;gap:7px;transition:.18s}
.mode-choice-grid label>span>svg{width:23px;height:23px;color:var(--primary);margin-bottom:8px}
.mode-choice-grid strong{font:700 13px Manrope}
.mode-choice-grid small{color:var(--muted);font-size:10px;line-height:1.55}
.mode-choice-grid b{position:absolute;right:10px;top:10px;padding:3px 7px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:8px}
.mode-choice-grid label:hover>span{border-color:#aaa5ff;transform:translateY(-1px)}
.mode-choice-grid input:checked+span{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px rgba(99,91,255,.1)}
.mode-choice-grid input:focus-visible+span{outline:3px solid rgba(99,91,255,.24);outline-offset:2px}
.compact-mode-grid{margin:0;gap:8px}
.compact-mode-grid label>span{min-height:112px;padding:14px}
.compact-mode-grid label>span>svg{width:19px;height:19px;margin-bottom:3px}
.dark .mode-choice-grid label>span{background:#1d1d24}
.dark .mode-choice-grid input:checked+span{background:#292742;border-color:#817aff;box-shadow:0 0 0 3px rgba(129,122,255,.13)}
.dark .mode-choice-grid b{background:#35315a;color:#c0bcff}

.workspace-mode-dialog{width:min(820px,calc(100% - 28px));padding:32px}
.workspace-mode-dialog form{text-align:center}
.workspace-mode-dialog h2{font:800 clamp(23px,4vw,34px) Manrope;letter-spacing:-.035em;margin:7px 0 10px}
.mode-dialog-copy{max-width:590px;margin:0 auto;color:var(--muted);font-size:12px;line-height:1.65}
.mode-dialog-mark{width:48px;height:48px;margin:0 auto 14px;display:grid;place-items:center;border-radius:14px;background:var(--primary-soft);color:var(--primary)}
.mode-dialog-mark svg{width:23px}
.workspace-mode-dialog .mode-choice-grid{text-align:left}
.mode-continue{height:44px;margin:0 auto;padding:0 20px}

@media(max-width:800px){
  .dashboard-title-row{align-items:flex-start;flex-direction:column;gap:7px}
  .mode-switcher{margin:2px 0 5px}
  .workspace-mode-dialog{padding:24px 18px}
  .mode-choice-grid{grid-template-columns:1fr;margin:18px 0}
  .mode-choice-grid label>span{min-height:94px;display:grid;grid-template-columns:32px 1fr;grid-template-rows:auto auto;column-gap:10px}
  .mode-choice-grid label>span>svg{grid-row:1/3;margin:2px 0 0}
  .mode-choice-grid small{grid-column:2}
  .compact-mode-grid{grid-template-columns:1fr 1fr 1fr}
  .compact-mode-grid label>span{display:flex;min-height:104px;padding:12px}
  .compact-mode-grid label>span>svg{margin:0}
}

@media(max-width:560px){
  .mode-switcher{width:100%}
  .mode-switcher button{flex:1;padding:0 8px}
  .compact-mode-grid{grid-template-columns:1fr}
  .compact-mode-grid label>span{min-height:78px;display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto}
  .compact-mode-grid label>span>svg{grid-row:1/3}
  .compact-mode-grid small{grid-column:2}
}

/* Contrast polish for badges, notifications and authentication */
.nav-count{
  min-width:25px;
  padding:2px 7px;
  border:1px solid #d7d2ff;
  background:#e9e7ff;
  color:#5048c8;
  font-weight:800;
  line-height:17px;
  text-align:center;
  box-shadow:0 1px 2px rgba(50,43,130,.08)
}
.nav-item.active .nav-count{
  border-color:#635bff;
  background:#635bff;
  color:#fff
}
.dark .nav-count{
  border-color:#48436f;
  background:#2b2942;
  color:#c7c3ff;
  box-shadow:none
}
.dark .nav-item.active .nav-count{
  border-color:#918aff;
  background:#817aff;
  color:#111117
}

.dark .notification-row.unread{
  background:linear-gradient(90deg,rgba(129,122,255,.13),rgba(129,122,255,.025) 68%,transparent);
  box-shadow:inset 3px 0 0 #817aff
}
.dark .notification-row.unread:hover{
  background:linear-gradient(90deg,rgba(129,122,255,.2),rgba(129,122,255,.06) 72%,transparent)
}
.dark .notification-row.unread strong{color:#c2beff}
.dark .notification-row small{color:#b2b2bf}
.dark .notification-row>svg{color:#777784}
.dark .unread-dot{background:#9d97ff;box-shadow:0 0 0 3px rgba(129,122,255,.13)}

.auth-brand,
.auth-intro h1,
.auth-card h2{color:#17171b}
.dark .auth-screen{
  background:
    radial-gradient(circle at 16% 18%,rgba(104,62,255,.25) 0,transparent 34%),
    radial-gradient(circle at 88% 84%,rgba(80,52,155,.18) 0,transparent 31%),
    #0d0d12;
  color:#f5f4ff
}
.dark .auth-brand,
.dark .auth-intro h1,
.dark .auth-card h2{color:#f7f6ff}
.dark .auth-intro>p:not(.eyebrow){color:#b2b0bf}
.dark .auth-product-summary{color:#8f8d9c!important}
.dark .auth-features span{
  border-color:rgba(139,132,255,.28);
  background:rgba(29,27,39,.72);
  color:#d1cfdd
}
.dark .auth-card{
  border-color:#34323f;
  background:rgba(24,24,31,.95);
  box-shadow:0 30px 90px rgba(0,0,0,.42),0 0 0 1px rgba(126,111,255,.05)
}
.dark .auth-card>div>p:last-child{color:#aaa8b7}
.dark .auth-card label{color:#dedde6}
.dark .auth-card input{
  border-color:#3b3947;
  background:#111116;
  color:#f5f4f8
}
.dark .auth-card input::placeholder{color:#777583}
.dark .google-button{
  border-color:#44414f;
  background:#222129;
  color:#f2f1f6
}
.dark .google-button:hover{border-color:#817aff;background:#2a2835}
.dark .auth-divider:before,
.dark .auth-divider:after{background:#3a3844}
.dark .auth-divider span{color:#9896a4}
.toast.notice svg{color:#a9a4ff}
.command-input .search-close{width:30px;height:30px;flex:0 0 auto;border-radius:8px;color:var(--muted)}
.command-input .search-close svg{width:17px;height:17px}
.command-input .search-close:hover{background:var(--primary-soft);color:var(--primary)}
.dark .command-input .search-close:hover{background:#292742;color:#b9b5ff}
@media(max-width:520px){.command-input kbd{display:none}}

/* RUYVORA Cloud Sync Center */
.sync-status{border:0;background:transparent;padding:0 7px;height:34px;border-radius:9px;cursor:pointer;transition:.18s}
.sync-status:hover{background:var(--primary-soft);color:var(--primary)}
.sync-status.syncing{color:#7a72e8}
.sync-status.offline{color:#8a8a96}
.sync-status.error{color:#dc4545}
.sync-status:focus-visible{outline:3px solid rgba(99,91,255,.2);outline-offset:1px}
.auth-trusted-row{margin-top:14px!important;display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:10px!important;cursor:pointer}
.auth-trusted-row input{width:17px!important;height:17px!important;margin:1px 0 0;accent-color:var(--primary);flex:0 0 auto}
.auth-trusted-row>span{display:flex;flex-direction:column;gap:3px}
.auth-trusted-row strong{font-size:11px;color:var(--text)}
.auth-trusted-row small{font-size:9px;line-height:1.45;color:var(--muted);font-weight:400}

.cloud-page-heading{align-items:flex-end}
.sync-hero{min-height:132px;display:flex;align-items:center;gap:18px;padding:24px;background:linear-gradient(125deg,var(--surface),#f4f2ff);border-color:#dedaff;overflow:hidden;position:relative}
.sync-hero:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-70px;top:-110px;background:radial-gradient(circle,rgba(99,91,255,.16),transparent 67%);pointer-events:none}
.sync-hero-icon{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;background:#dedaff;color:#5d54ef;box-shadow:0 10px 24px rgba(99,91,255,.16);flex:0 0 auto}
.sync-hero-icon svg{width:27px;height:27px}
.sync-hero>div{min-width:0;flex:1}
.sync-hero h2{font:800 21px Manrope;margin:5px 0 5px}
.sync-hero p:last-child{margin:0;color:var(--muted);font-size:11px}
.sync-hero>.status-pill{position:relative;z-index:1;flex:0 0 auto}
.sync-hero[data-state="online"] .sync-hero-icon{background:#ddf7ea;color:#109461}
.sync-hero[data-state="offline"] .sync-hero-icon{background:#e8e8ed;color:#777783;box-shadow:none}
.sync-hero[data-state="error"] .sync-hero-icon{background:#ffe4e6;color:#d84c59;box-shadow:none}
.sync-hero[data-state="syncing"] .sync-hero-icon svg{animation:syncPulse 1.6s ease-in-out infinite}
@keyframes syncPulse{50%{opacity:.48;transform:translateY(-1px)}}

.sync-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:14px 0}
.sync-metrics article{min-height:112px;display:flex;align-items:flex-start;gap:12px;padding:17px}
.sync-metrics article>span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);flex:0 0 auto}
.sync-metrics article>span svg{width:17px}
.sync-metrics article>div{min-width:0}
.sync-metrics small{display:block;color:var(--muted);font-size:9px}
.sync-metrics strong{display:block;margin:5px 0 4px;font:700 14px Manrope;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sync-metrics p{margin:0;color:var(--muted);font-size:9px;line-height:1.4}

.sync-content-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:14px;margin-bottom:14px;align-items:start}
.sync-data-panel,.sync-device-panel,.sync-activity-panel,.sync-actions-panel{min-height:100%}
.sync-collection-list{display:flex;flex-direction:column}
.sync-collection-list article{min-height:59px;display:flex;align-items:center;gap:11px;border-top:1px solid var(--border)}
.sync-collection-list article:first-child{border-top:0}
.sync-collection-list article>div{display:flex;flex:1;flex-direction:column;gap:3px}
.sync-collection-list strong{font-size:11px}
.sync-collection-list small{font-size:9px;color:var(--muted)}
.sync-collection-list .status-icon{width:32px;height:32px;border-radius:9px}
.sync-collection-list .status-icon svg{width:15px}
.status-pill.danger{background:#ffe6e8;color:#c94452}

.sync-device-panel .panel-header{align-items:flex-start}
.sync-device-copy{display:flex;flex-direction:column;gap:4px;padding:4px 0 16px}
.sync-device-copy strong{font-size:12px}
.sync-device-copy small{color:var(--muted);font-size:10px}
.sync-trusted-toggle{height:auto!important;min-height:70px!important;margin-top:0!important}
.privacy-note{display:flex;align-items:flex-start;gap:9px;margin-top:14px;padding:12px;border-radius:10px;background:var(--surface-2);color:var(--muted)}
.privacy-note svg{width:16px;color:var(--primary);flex:0 0 auto}
.privacy-note p{font-size:9px;line-height:1.55;margin:0}

.sync-lower-grid{grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr)}
.sync-activity-list article{min-height:54px;display:flex;align-items:center;gap:10px;border-top:1px solid var(--border)}
.sync-activity-list article:first-child{border-top:0}
.sync-activity-list article>span{width:30px;height:30px;border-radius:9px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center}
.sync-activity-list article>span svg{width:14px}
.sync-activity-list article>div{display:flex;flex-direction:column;gap:3px}
.sync-activity-list strong{font-size:10px}
.sync-activity-list small{font-size:9px;color:var(--muted)}
.sync-actions-panel>.secondary-button{width:100%}
.sync-storage-note{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.sync-storage-note>div{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.sync-storage-note strong{font-size:11px}
.sync-storage-note small{font-size:9px;color:var(--muted);line-height:1.4}
.cloud-settings-actions{display:flex;flex-wrap:wrap;gap:9px}
.cloud-settings-actions p{flex-basis:100%}

.dark .sync-status:hover{background:#292742;color:#b9b5ff}
.dark .sync-hero{background:linear-gradient(125deg,#1a1921,#211e38);border-color:#393455}
.dark .sync-hero:after{background:radial-gradient(circle,rgba(128,99,255,.2),transparent 67%)}
.dark .sync-hero-icon{background:#312c53;color:#b9b3ff;box-shadow:none}
.dark .sync-hero[data-state="online"] .sync-hero-icon{background:#193b30;color:#77e0b2}
.dark .sync-hero[data-state="offline"] .sync-hero-icon{background:#282830;color:#aaaab4}
.dark .sync-hero[data-state="error"] .sync-hero-icon{background:#46272e;color:#ff9da7}
.dark .status-pill.danger{background:#46272e;color:#ff9da7}
.dark .privacy-note{background:#202027}

@media(max-width:1100px){
  .sync-metrics{grid-template-columns:repeat(2,1fr)}
  .sync-content-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .sync-hero{align-items:flex-start;flex-wrap:wrap;padding:18px}
  .sync-hero-icon{width:46px;height:46px;border-radius:13px}
  .sync-hero-icon svg{width:22px}
  .sync-hero>div{flex-basis:calc(100% - 66px)}
  .sync-hero>.status-pill{margin-left:64px}
  .sync-metrics{grid-template-columns:1fr 1fr;gap:9px}
  .sync-metrics article{display:block;min-height:126px;padding:14px}
  .sync-metrics article>span{margin-bottom:10px}
  .cloud-page-heading{align-items:flex-start}
  .cloud-page-heading .primary-button{width:auto!important;font-size:11px!important;padding:0 12px!important}
}

/* Keep the dashboard mode control visually stable while its content changes. */
.hero-heading>div:first-child{width:100%;min-width:0}
.dashboard-title-row{width:100%}
.mode-switcher{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  flex:0 0 240px;
  width:240px;
  height:38px;
  overflow:hidden;
}
.mode-switcher button{
  width:100%;
  min-width:0;
  height:30px;
  padding:0;
  transform:none!important;
}
.mode-switcher button:focus:not(:focus-visible){outline:none}
.mode-switcher button:focus-visible{outline:2px solid rgba(99,91,255,.48);outline-offset:-2px}

.more-grid .settings-shortcut{
  background:var(--primary-soft);
  border-color:#cbc7ff;
  color:var(--primary);
}
.more-grid .settings-shortcut:hover{background:#e9e7ff;border-color:#aaa4ff}
.dark .more-grid .settings-shortcut{background:#302d50;border-color:#4e4879;color:#b9b5ff}
.dark .more-grid .settings-shortcut:hover{background:#39345d;border-color:#69619a}

@media(max-width:800px){
  .dashboard-title-row h1{min-height:38px;white-space:nowrap}
  .hero-heading #dashboardSubtitle{display:block;min-height:3.1em;line-height:1.55}
  .mode-switcher{
    flex-basis:auto;
    width:100%;
    max-width:none;
    height:42px;
    margin:2px 0 5px;
  }
  .mode-switcher button{height:34px}
}
