:root{--bg:#0a0f1d;--sidebar:#0e1424;--surface:#131b2d;--surface2:#192238;--line:#27314a;--muted:#8e9ab5;--muted2:#66738f;--text:#f5f7ff;--title:#fff;--primary:#7377ff;--primary-soft:rgba(115,119,255,.13);--teal:#2edac1;--green:#49d5a4;--amber:#ffbf75;--rose:#ff778a;--shadow:0 15px 45px rgba(0,0,0,.13);--ring:#303a56;--hover:#1b2540;--input:#10182a}
body.light{--bg:#f5f7fd;--sidebar:#ffffff;--surface:#fff;--surface2:#f6f8fe;--line:#e5eaf4;--muted:#75819c;--muted2:#8a95ab;--text:#23304d;--title:#15213b;--primary:#6366ed;--primary-soft:#f0f0ff;--teal:#079f9b;--green:#099c75;--amber:#c48732;--rose:#df4c67;--shadow:0 14px 36px rgba(48,59,100,.06);--ring:#e1e5f0;--hover:#f3f5fd;--input:#fbfcff}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:'DM Sans',system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4,.brand-title,.stat-number{font-family:'Plus Jakarta Sans','DM Sans',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{text-decoration:none;color:inherit}svg{vertical-align:middle;flex-shrink:0}::selection{background:rgba(115,119,255,.35)}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-thumb{background:#44506b88;border-radius:30px}::-webkit-scrollbar-track{background:transparent}
.loading-screen{height:100vh;display:flex;flex-direction:column;gap:15px;align-items:center;justify-content:center;color:var(--muted);font-weight:700}.loader-logo,.brand-mark{display:grid;place-items:center;color:white;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;background:linear-gradient(135deg,#9496ff,#6257e7);box-shadow:0 9px 22px rgba(100,98,255,.22)}.loader-logo{width:60px;height:60px;border-radius:18px;font-size:31px;animation:pulse 1.9s infinite}.brand-mark{width:40px;height:40px;border-radius:12px;font-size:23px}
.app-layout{display:flex;min-height:100vh}.sidebar{width:252px;position:fixed;left:0;top:0;bottom:0;background:var(--sidebar);border-right:1px solid var(--line);z-index:30;display:flex;flex-direction:column;padding:25px 13px 16px;transition:transform .25s ease,width .25s ease}.brand{display:flex;align-items:center;gap:11px;padding:0 14px 29px}.brand-title{font-size:20px;font-weight:800;letter-spacing:-.7px;color:var(--title);line-height:1.15}.brand-kicker{font-size:10px;font-weight:700;letter-spacing:2.3px;color:var(--muted2);margin-top:5px}.side-nav{overflow:auto;flex:1;padding:0 2px}.nav-group{font-size:10px;font-weight:800;color:var(--muted2);letter-spacing:1.7px;text-transform:uppercase;margin:19px 13px 9px}.nav-item{width:100%;display:flex;align-items:center;gap:13px;color:var(--muted);padding:11px 13px;border:1px solid transparent;border-radius:11px;background:transparent;text-align:left;font-size:13px;font-weight:600;transition:all .18s;margin-bottom:3px}.nav-item:hover{background:var(--hover);color:var(--title)}.nav-item.active{background:var(--primary-soft);color:#a3a5ff;border-color:rgba(115,119,255,.12)}body.light .nav-item.active{color:var(--primary)}.nav-item svg{width:18px;height:18px;stroke-width:1.9}.nav-item span{flex:1}.nav-badge{border-radius:30px;font-size:10px;padding:1px 7px;background:var(--surface2);color:var(--muted)}.sidebar-bottom{border-top:1px solid var(--line);padding:16px 4px 1px}.side-tip{border:1px solid #625ded4d;border-radius:15px;padding:15px;background:linear-gradient(125deg,#37376a77,#131a3277);margin-bottom:15px}.side-tip .tiny-orb{color:#d1cfff;margin-bottom:10px}.side-tip b{display:block;font-size:12px}.side-tip p{color:var(--muted);font-size:11px;line-height:1.5;margin:6px 0 0}.side-user{display:flex;align-items:center;gap:10px;padding:11px 9px;border-radius:12px;cursor:pointer}.side-user:hover{background:var(--hover)}.avatar{display:grid;place-items:center;border-radius:12px;width:37px;height:37px;background:linear-gradient(135deg,#79c0f6,#7770ef);color:white;font-weight:800;font-size:15px}.side-user strong{display:block;font-size:12px;color:var(--title)}.side-user small{color:var(--muted);font-size:10px}.side-user .user-info{flex:1;min-width:0}.side-user strong,.side-user small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.main-shell{margin-left:252px;width:calc(100% - 252px);min-width:0}.topbar{height:79px;display:flex;align-items:center;gap:14px;padding:0 36px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:20}.topbar-left{min-width:0;flex:1}.breadcrumb{font-size:11px;color:var(--muted2);font-weight:700;margin:0 0 2px;letter-spacing:.7px}.top-title{font-size:17px;font-weight:800;color:var(--title);letter-spacing:-.5px;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.top-actions{display:flex;align-items:center;gap:10px}.search-trigger{display:flex;align-items:center;gap:9px;color:var(--muted);background:var(--surface);border:1px solid var(--line);padding:10px 13px;border-radius:11px;font-size:12px;width:205px;text-align:left}.search-trigger kbd{margin-left:auto;font-size:10px;border:1px solid var(--line);padding:1px 5px;border-radius:5px}.icon-btn{width:39px;height:39px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--muted);position:relative}.icon-btn:hover{color:var(--title);border-color:var(--primary)}.icon-btn svg{height:18px;width:18px}.notif-dot{position:absolute;right:9px;top:8px;background:var(--rose);height:6px;width:6px;border-radius:50%;outline:2px solid var(--surface)}.main-content{max-width:1580px;margin:auto;padding:30px 35px 70px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:11px;padding:10px 15px;min-height:40px;border:1px solid var(--line);background:var(--surface2);color:var(--text);font-weight:700;font-size:12px;white-space:nowrap;transition:transform .15s,border-color .15s,background .15s}.btn:hover{transform:translateY(-1px);border-color:var(--primary)}.btn svg{height:17px;width:17px}.btn-primary{background:var(--primary);color:#fff;border-color:transparent;box-shadow:0 7px 18px rgba(108,105,246,.15)}.btn-primary:hover{background:#6265ee;border-color:transparent}.btn-ghost{background:transparent}.btn-danger{background:rgba(255,119,138,.1);color:var(--rose);border-color:rgba(255,119,138,.17)}.btn-sm{min-height:32px;padding:6px 10px;font-size:11px;border-radius:8px}.mobile-menu,.mobile-nav,.sidebar-backdrop{display:none}
.page-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}.page-intro h1{font-size:24px;margin:0 0 6px;letter-spacing:-.85px;color:var(--title)}.page-intro p{font-size:13px;color:var(--muted);margin:0}.page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.eyebrow{color:var(--primary);font-size:10px;letter-spacing:1.6px;text-transform:uppercase;font-weight:800;margin-bottom:8px}.hero{border-radius:22px;position:relative;overflow:hidden;background:radial-gradient(circle at 70% 20%,rgba(127,103,255,.25),transparent 40%),linear-gradient(108deg,#29276f,#202e62 65%,#22265a);border:1px solid #6966b444;min-height:221px;display:flex;align-items:center;padding:28px 34px;justify-content:space-between;gap:20px;margin-bottom:22px;color:#fff}.hero::before{content:'';position:absolute;width:240px;height:240px;border:1px solid #ffffff13;border-radius:50%;right:11%;top:-135px;box-shadow:0 0 0 40px #ffffff06,0 0 0 90px #ffffff04}.hero-inner{position:relative;z-index:1}.hero .eyebrow{color:#c6c3ff;font-size:11px}.hero h1{font-size:clamp(24px,2.4vw,34px);margin:4px 0 8px;letter-spacing:-1.3px;line-height:1.27}.hero p{color:#c5c9ee;font-size:12px;max-width:430px;margin:0 0 20px}.hero button{background:#fff;color:#403d9e;border:0;box-shadow:none}.hero-right{position:relative;z-index:1;min-width:164px;text-align:center}.progress-orbit{width:143px;height:143px;border-radius:50%;margin:auto;display:grid;place-items:center;background:conic-gradient(var(--teal) 0%,#ffffff2a 0);box-shadow:0 3px 40px #0a0a3f3d}.progress-orbit::before{content:'';grid-area:1/1;width:121px;height:121px;background:#252763;border-radius:50%}.progress-orbit strong{grid-area:1/1;position:relative;font-size:29px;letter-spacing:-1px}.progress-orbit strong small{font-size:16px}.hero-right>span{display:block;margin-top:9px;color:#d2d1f9;font-size:11px;font-weight:700}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:17px;min-width:0}.stat{padding:19px 20px;position:relative;min-height:133px;overflow:hidden}.stat-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.stat-label{color:var(--muted);font-size:12px;font-weight:600}.stat-number{font-weight:800;color:var(--title);letter-spacing:-1.4px;font-size:27px;line-height:1}.stat-foot{font-size:11px;color:var(--muted);margin-top:10px}.stat-ico{width:36px;height:36px;border-radius:11px;display:grid;place-items:center}.stat-ico svg{width:19px;height:19px}.stat-ico.purple{color:#a8a8ff;background:#7778ff24}.stat-ico.green{color:var(--green);background:#49d5a41b}.stat-ico.amber{color:var(--amber);background:#ffbf751c}.stat-ico.teal{color:var(--teal);background:#2edac11c}.stat .stat-foot b{color:var(--green)}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,1fr);gap:18px}.stack{display:flex;flex-direction:column;gap:18px;min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 20px 0}.card-head h3{font-size:14px;letter-spacing:-.2px;margin:0;color:var(--title)}.card-head p{color:var(--muted);font-size:11px;margin:4px 0 0}.card-body{padding:17px 20px 20px}.inline-link{font-size:11px;font-weight:700;color:#9d9bff;background:transparent;border:0}.inline-link:hover{text-decoration:underline}.list-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.task-check{appearance:none;flex-shrink:0;width:19px;height:19px;border:1.5px solid #6d7792;border-radius:6px;background:transparent;cursor:pointer;position:relative;margin:0}.task-check:checked{background:var(--primary);border-color:var(--primary)}.task-check:checked::after{content:'✓';font-size:13px;font-weight:800;color:#fff;position:absolute;top:-2px;left:3px}.row-main{min-width:0;flex:1}.row-title{font-size:12px;font-weight:700;color:var(--text);line-height:1.4;overflow-wrap:anywhere}.row-title.done{text-decoration:line-through;color:var(--muted)}.row-sub{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:10px;margin-top:4px;flex-wrap:wrap}.row-sub svg{width:12px;height:12px}.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:7px;background:var(--surface2);color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}.tag.urgent,.tag.high{color:var(--rose);background:#ff778a1a}.tag.medium{color:var(--amber);background:#ffbf751a}.tag.low{color:var(--green);background:#49d5a41b}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--primary)}.row-actions{display:flex;align-items:center;gap:4px}.icon-mini{width:27px;height:27px;display:inline-grid;place-items:center;background:transparent;color:var(--muted2);border:0;border-radius:7px}.icon-mini:hover{background:var(--hover);color:var(--title)}.icon-mini svg{width:15px;height:15px}
.empty{border:1px dashed var(--line);border-radius:13px;padding:31px 15px;text-align:center;color:var(--muted)}.empty .empty-icon{width:50px;height:50px;border-radius:15px;background:var(--primary-soft);color:#999bff;display:grid;place-items:center;margin:0 auto 13px}.empty h4{color:var(--title);font-size:13px;margin:0 0 6px}.empty p{font-size:11px;max-width:260px;margin:0 auto 14px;line-height:1.7}.empty .btn{margin:auto}.mini-timeline{display:flex;flex-direction:column;gap:0}.timeline-row{display:flex;gap:15px;min-height:66px}.timeline-time{color:var(--muted);font-size:11px;font-weight:700;min-width:62px;padding-top:2px;text-align:right}.timeline-rail{position:relative;width:10px;display:flex;justify-content:center}.timeline-rail::before{content:'';height:100%;width:1px;background:var(--line);position:absolute;top:8px}.timeline-row:last-child .timeline-rail::before{display:none}.timeline-rail::after{content:'';height:10px;width:10px;border-radius:50%;background:var(--surface2);border:2px solid #7884a4;position:absolute;top:3px}.timeline-row.current .timeline-rail::after{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 5px var(--primary-soft)}.timeline-row.finished .timeline-rail::after{background:var(--green);border-color:var(--green)}.timeline-info{flex:1;padding:0 0 18px;min-width:0}.timeline-info h4{font-size:12px;margin:0 0 3px;color:var(--title)}.timeline-info p{font-size:10px;color:var(--muted);margin:0}.timeline-badge{font-size:10px;color:var(--primary);font-weight:800}.chart-bars{height:150px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:15px;padding-top:20px}.chart-item{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:9px}.chart-bar{background:linear-gradient(180deg,#8d8bff,#6264e6);border-radius:7px 7px 3px 3px;width:100%;max-width:35px;min-height:4px;position:relative;transition:height .3s}.chart-bar:hover{filter:brightness(1.18)}.chart-label{color:var(--muted);font-size:10px;font-weight:700}.legend{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.legend .dot{background:#7377ff}.section-gap{margin-top:22px}
.content-card{padding:22px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.tabs{display:flex;align-items:center;gap:4px;padding:4px;background:var(--surface2);border:1px solid var(--line);border-radius:11px;max-width:100%;overflow:auto}.tab{border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:700;font-size:12px;padding:8px 13px;white-space:nowrap}.tab.active{background:var(--surface);color:var(--title);box-shadow:var(--shadow)}.filter-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.field,.select,.textarea{width:100%;background:var(--input);border:1px solid var(--line);border-radius:10px;padding:11px 12px;color:var(--text);outline:none;font-size:12px;transition:border-color .15s,box-shadow .15s}.field::placeholder,.textarea::placeholder{color:var(--muted2)}.field:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.select{appearance:none;padding-right:25px;cursor:pointer}.select option{background:var(--surface)}.textarea{resize:vertical;min-height:108px}.tiny-select{width:auto;min-width:125px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted2);font-weight:800;border-bottom:1px solid var(--line);padding:12px}tbody td{padding:13px 12px;border-bottom:1px solid var(--line);font-size:12px;color:var(--text)}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--hover)}.table-title{font-weight:700}.task-grid{display:grid;grid-template-columns:1fr;gap:10px}.task-entry{border:1px solid var(--line);background:var(--surface);padding:16px;border-radius:13px;display:flex;gap:14px;align-items:center}.task-entry .row-main{flex:1}.task-entry .row-title{font-size:13px}.task-entry:hover{border-color:#6063a455}.big-progress{width:100%;height:7px;border-radius:20px;background:var(--ring);overflow:hidden}.big-progress span{height:100%;border-radius:20px;display:block;background:linear-gradient(90deg,#7475ff,#41dac3)}.cols-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cols-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.mini-card{border:1px solid var(--line);padding:20px;border-radius:15px;background:var(--surface)}.mini-card h3{font-size:14px;margin:0 0 8px;color:var(--title)}.mini-card p{font-size:11px;color:var(--muted);line-height:1.6}.meta-line{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:11px;flex-wrap:wrap}.title-row{display:flex;align-items:center;gap:12px;justify-content:space-between}.color-dot{height:11px;width:11px;border-radius:4px;display:inline-block;flex-shrink:0}.pill{display:inline-flex;gap:5px;align-items:center;border-radius:999px;padding:6px 10px;background:var(--surface2);color:var(--muted);font-size:10px;font-weight:700}.routine-activity{border-left:3px solid var(--primary);padding:10px 13px;display:flex;align-items:center;gap:12px;background:var(--surface2);border-radius:0 10px 10px 0;margin-top:8px}.routine-activity .time{color:var(--muted);font-size:10px;white-space:nowrap;width:78px}.routine-activity b{font-size:12px;flex:1}.school-summary{display:flex;align-items:center;gap:14px;padding:23px;border:1px solid var(--line);background:var(--surface);border-radius:17px;margin-bottom:17px}.school-summary h2{font-size:18px;margin:0 0 4px;color:var(--title)}.school-summary p{margin:0;color:var(--muted);font-size:12px}.school-symbol{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--primary-soft);color:#a7a7ff}.school-symbol svg{width:26px;height:26px}.school-tabs{display:flex;gap:7px;overflow:auto;margin:0 0 17px;padding:3px 0}.subject-chip{display:inline-flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 14px;margin-right:8px;margin-bottom:8px;font-weight:700;font-size:12px}.subject-chip .icon-mini{margin-left:7px}.day-selector{display:flex;gap:7px;overflow-x:auto;margin-bottom:18px}.day-button{flex:1;min-width:65px;border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--surface);color:var(--muted);font-weight:700;font-size:12px}.day-button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.timetable-pill{font-size:11px;font-weight:700;display:inline-flex;gap:5px;align-items:center;border-radius:7px;padding:7px 10px;background:var(--primary-soft)}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekday{text-align:center;font-size:11px;font-weight:800;color:var(--muted);padding:10px 0}.calendar-day{border-radius:12px;border:1px solid var(--line);background:var(--surface);min-height:103px;padding:10px;cursor:pointer;transition:background .15s;overflow:hidden}.calendar-day:hover{background:var(--hover);border-color:var(--primary)}.calendar-day.outside{opacity:.35}.calendar-day.selected{border-color:var(--primary);background:var(--primary-soft)}.calendar-day.today .calendar-num{background:var(--primary);color:white}.calendar-num{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;color:var(--text);font-size:11px;font-weight:800;margin-bottom:7px}.cal-event{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:9px;font-weight:700;padding:3px 5px;border-radius:4px;color:#abaaff;background:#7377ff22;margin-bottom:3px}.cal-event.school{color:var(--amber);background:#ffbf751a}.cal-event.task{color:var(--green);background:#49d5a41b}.cal-event.more{color:var(--muted);background:transparent}.cal-details{margin-top:17px}.cal-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.cal-item:last-child{border-bottom:0}
.habit-check{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);background:var(--surface2)}.habit-check.checked{background:#49d5a422;color:var(--green);border-color:#49d5a466}.habit-check svg{height:18px;width:18px}.habit-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:15px}.habit-date{height:31px;border-radius:8px;display:grid;place-items:center;background:var(--surface2);font-size:9px;font-weight:700;color:var(--muted)}.habit-date.done{background:#49d5a433;color:var(--green)}.focus-wrap{max-width:660px;margin:12px auto 30px;text-align:center}.focus-clock{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(60px,10vw,108px);letter-spacing:-7px;line-height:1.15;font-weight:800;color:var(--title);margin:35px 0 12px;font-variant-numeric:tabular-nums}.focus-ring{width:min(290px,70vw);height:min(290px,70vw);border-radius:50%;border:8px solid var(--ring);display:grid;place-items:center;margin:29px auto;background:radial-gradient(circle,var(--surface),transparent);box-shadow:0 0 0 14px var(--primary-soft)}.focus-ring .focus-clock{font-size:64px;letter-spacing:-4px;margin:0}.focus-ring span{display:block;font-size:11px;color:var(--muted)}.focus-label{font-size:12px;color:var(--muted)}.focus-actions{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:23px}.focus-actions .btn{min-width:105px}.note-card{min-height:175px;display:flex;flex-direction:column}.note-preview{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.8;color:var(--muted);flex:1}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:17px;padding:18px 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border-bottom:none}.setting-row h4{font-size:12px;margin:0 0 3px;color:var(--title)}.setting-row p{font-size:11px;color:var(--muted);margin:0}.switch{display:inline-flex;align-items:center;position:relative;flex-shrink:0;cursor:pointer}.switch input{position:absolute;opacity:0}.switch-track{height:24px;width:43px;border-radius:30px;background:var(--ring);transition:.2s;position:relative}.switch-track::after{content:'';position:absolute;width:17px;height:17px;background:#fff;border-radius:50%;top:3.5px;left:3.5px;transition:.2s}.switch input:checked+.switch-track{background:var(--primary)}.switch input:checked+.switch-track::after{transform:translateX(19px)}
.modal-backdrop{position:fixed;inset:0;z-index:90;background:#040817b8;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .16s ease}.modal{width:min(100%,560px);max-height:min(92vh,850px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 35px 90px #0009;animation:popIn .18s ease}.modal-head{padding:22px 24px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:18px;letter-spacing:-.6px;margin:0;color:var(--title)}.modal-body{padding:22px 24px 25px}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:24px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-group{min-width:0}.form-group.full{grid-column:1/-1}.form-group label{display:block;font-weight:700;font-size:11px;color:var(--muted);margin-bottom:7px}.form-group small{font-size:10px;color:var(--muted2)}.days-pick{display:flex;gap:7px;flex-wrap:wrap}.day-chip{position:relative;cursor:pointer}.day-chip input{position:absolute;opacity:0}.day-chip span{display:grid;place-items:center;height:35px;min-width:37px;padding:0 9px;border:1px solid var(--line);background:var(--surface2);border-radius:9px;font-size:11px;font-weight:800;color:var(--muted)}.day-chip input:checked+span{background:var(--primary);border-color:var(--primary);color:#fff}.toast-area{position:fixed;right:22px;bottom:22px;z-index:120;display:flex;flex-direction:column;gap:8px}.toast{background:#1c2740;color:white;border:1px solid #364361;border-left:3px solid #49d5a4;border-radius:11px;padding:12px 17px;box-shadow:0 20px 40px #0005;font-size:12px;font-weight:700;max-width:350px;animation:popIn .2s}.toast.error{border-left-color:#ff778a}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.06fr 1fr;background:var(--bg)}.auth-showcase{background:radial-gradient(ellipse at 70% 25%,#625cc255,transparent 50%),linear-gradient(150deg,#141a37,#282661);padding:clamp(30px,5vw,80px);display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;overflow:hidden;position:relative}.auth-showcase::after{content:'';position:absolute;width:600px;height:600px;border:1px solid #ffffff16;right:-250px;bottom:-240px;border-radius:50%;box-shadow:0 0 0 70px #ffffff05,0 0 0 170px #ffffff05}.auth-brand{display:flex;align-items:center;gap:12px;font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;font-weight:800;letter-spacing:-1px;color:#fff;z-index:1}.auth-content{position:relative;z-index:1}.auth-kicker{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:#bfc1ff;font-weight:800}.auth-showcase h1{font-size:clamp(36px,4.5vw,64px);line-height:1.13;letter-spacing:-2.8px;max-width:540px;margin:17px 0}.auth-showcase h1 span{color:#9d9cff}.auth-showcase p{color:#bec5e6;max-width:440px;line-height:1.9;font-size:14px}.auth-features{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.auth-features span{padding:11px 14px;border:1px solid #ffffff30;background:#ffffff0d;border-radius:12px;color:#e7e9ff;font-size:12px;font-weight:700}.auth-bottom{color:#a8aed6;z-index:1;font-size:12px}.auth-form-side{display:flex;align-items:center;justify-content:center;padding:30px 20px}.auth-box{width:min(100%,420px)}.auth-box h2{font-size:30px;letter-spacing:-1.2px;margin:0 0 8px;color:var(--title)}.auth-box>p{color:var(--muted);font-size:13px;margin-bottom:30px}.auth-box .form-group{margin-bottom:17px}.auth-box .field{padding:14px;font-size:13px}.auth-box .btn{width:100%;min-height:47px;font-size:13px;margin-top:8px}.auth-switch{text-align:center;font-size:12px;color:var(--muted);margin-top:25px}.auth-switch button{color:#a7a7ff;font-weight:800;background:transparent;border:0}.auth-school{padding:13px;border:1px solid var(--line);border-radius:11px;display:flex;align-items:center;gap:11px;margin-top:8px;color:var(--muted);font-size:12px}.auth-school input{accent-color:var(--primary);height:17px;width:17px}
.command-overlay{position:fixed;inset:0;background:#020511b7;z-index:100;backdrop-filter:blur(5px);padding:90px 16px}.command-box{max-width:550px;margin:auto;background:var(--surface);border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 22px 60px #0008}.command-input{width:100%;border:0;border-bottom:1px solid var(--line);padding:18px;background:transparent;color:var(--text);outline:0;font-size:16px}.command-results{max-height:340px;overflow:auto;padding:10px}.command-result{width:100%;display:flex;align-items:center;gap:11px;border:0;background:transparent;color:var(--text);padding:12px;border-radius:8px;text-align:left}.command-result:hover{background:var(--hover)}.command-result small{color:var(--muted);margin-left:auto}.command-hint{font-size:10px;color:var(--muted);padding:9px 15px;border-top:1px solid var(--line)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes popIn{from{transform:translateY(10px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes pulse{50%{opacity:.5;transform:scale(.96)}}
@media(max-width:1250px){.main-content{padding:25px 24px 60px}.topbar{padding:0 24px}.dashboard-grid{grid-template-columns:1.15fr 1fr}.stat{padding:17px}.sidebar{width:225px}.main-shell{margin-left:225px;width:calc(100% - 225px)}}
@media(max-width:1080px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.search-trigger{width:auto}.search-trigger span,.search-trigger kbd{display:none}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);width:250px}.sidebar.open{transform:translateX(0)}.sidebar-backdrop.show{display:block;position:fixed;inset:0;background:#020511aa;z-index:25}.main-shell{margin:0;width:100%}.topbar{height:67px;padding:0 18px}.topbar-left{flex:1}.top-title{font-size:15px}.mobile-menu{display:grid}.top-actions .search-trigger{display:none}.top-actions>.btn-primary{display:none}.main-content{padding:22px 16px 95px}.hero{padding:23px;min-height:185px}.hero h1{font-size:25px}.hero-right{min-width:112px}.progress-orbit{width:105px;height:105px}.progress-orbit::before{width:87px;height:87px}.progress-orbit strong{font-size:21px}.hero-right>span{font-size:9px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;z-index:22;background:var(--sidebar);border-top:1px solid var(--line);padding:8px 5px max(8px,env(safe-area-inset-bottom));box-shadow:0 -5px 25px #0002}.mobile-nav button{background:transparent;border:0;color:var(--muted);display:grid;place-items:center;gap:3px;font-size:9px;font-weight:700;min-width:52px;padding:4px 5px}.mobile-nav button.active{color:#999bff}.mobile-nav button svg{width:20px;height:20px}.toast-area{bottom:82px;right:12px;left:12px}.toast{max-width:none}.auth-layout{grid-template-columns:1fr}.auth-showcase{min-height:220px;padding:28px}.auth-showcase .auth-content h1{font-size:28px;max-width:420px;letter-spacing:-1.1px}.auth-showcase .auth-content p,.auth-features,.auth-bottom{display:none}.auth-form-side{padding:40px 23px}.auth-box{max-width:440px}.calendar-day{padding:5px;min-height:75px}.calendar-num{width:22px;height:22px;margin-bottom:5px}.cal-event{font-size:8px}}
@media(max-width:530px){.stat-grid{gap:10px}.stat{padding:14px;min-height:114px}.stat-label{font-size:10px}.stat-top{margin-bottom:10px}.stat-number{font-size:24px}.stat-ico{width:31px;height:31px}.stat-foot{font-size:9px}.hero{align-items:flex-start}.hero h1{font-size:22px}.hero-right{min-width:86px;padding-top:18px}.progress-orbit{width:83px;height:83px}.progress-orbit::before{width:69px;height:69px}.progress-orbit strong{font-size:18px}.hero-right>span{display:none}.hero p{font-size:11px}.cols-2,.cols-3{grid-template-columns:1fr}.page-intro{flex-wrap:wrap;gap:12px}.page-intro h1{font-size:22px}.content-card{padding:15px}.form-grid{grid-template-columns:1fr}.form-group.full{grid-column:auto}.modal-body{padding:17px}.modal-head{padding:17px}.calendar-grid{gap:3px}.calendar-day{min-height:65px;border-radius:7px;padding:4px}.weekday{font-size:9px}.cal-event{padding:2px;font-size:7px}.top-actions{gap:6px}.focus-ring .focus-clock{font-size:50px}}

/* v1.1 — allow readable flexible/partial time labels in routine cards and the admin link. */
.routine-activity .time{width:auto;min-width:82px;max-width:136px;white-space:normal;line-height:1.4;flex-shrink:0}
.sidebar a.nav-item{text-decoration:none}
