:root{--bg:#f5f3ec;--surface:#fbfaf5;--surface2:#efede5;--ink:#171816;--muted:#77786f;--line:#dcd9cf;--lime:#a9d73f;--lime2:#dff5a7;--danger:#b7473d;--shadow:0 18px 60px rgba(20,20,15,.08);--radius:24px}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button,a{color:inherit}a{text-decoration:none}button{border:0;background:none;cursor:pointer}.app{min-height:100vh;display:grid;grid-template-columns:252px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:252px;padding:26px 18px 18px;border-right:1px solid var(--line);background:rgba(245,243,236,.88);backdrop-filter:blur(20px);z-index:80;display:flex;flex-direction:column;transition:width .35s cubic-bezier(.2,.8,.2,1),padding .35s}.brand{display:flex;align-items:center;gap:11px;font-size:25px;font-weight:850;letter-spacing:-1.7px;width:max-content}.mark{display:flex;gap:4px;align-items:center}.mark i{width:9px;height:9px;border-radius:50%;display:block;background:#181a17}.mark i+ i{background:var(--lime)}.side-nav{margin-top:42px;display:flex;flex-direction:column;gap:5px;overflow:auto}.side-label{font-size:9px;text-transform:uppercase;letter-spacing:2.2px;color:#a1a096;margin:12px 12px 8px}.nav-item{height:44px;padding:0 12px;border-radius:13px;display:flex;align-items:center;gap:12px;color:#67685f;font-weight:650;transition:.22s}.nav-item:hover{background:var(--surface2);color:var(--ink);transform:translateX(2px)}.nav-item.active{background:#e6e3d9;color:var(--ink)}.nav-icon{width:18px;height:18px;display:grid;place-items:center;flex:0 0 18px}.nav-icon svg,.top-btn svg,.theme-toggle svg,.sidebar-collapse svg,.mobile-fab svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nav-item.active .nav-icon{color:var(--lime)}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;display:flex;align-items:center;gap:8px}.profile-link{flex:1;display:flex;align-items:center;gap:10px;text-align:left;padding:7px;border-radius:13px}.profile-link:hover{background:var(--surface2)}.avatar{width:40px;height:40px;background:var(--ink);color:white;border-radius:12px;display:grid;place-items:center;font-weight:800}.profile-copy{min-width:0;display:flex;flex-direction:column}.profile-copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-copy small{color:#92928a;font-size:10px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-toggle{height:40px;width:40px;border:1px solid var(--line);border-radius:12px;display:grid;place-items:center;background:var(--surface);position:relative}.theme-label{display:none}.sidebar-collapse{position:absolute;right:-12px;top:84px;width:25px;height:25px;border:1px solid var(--line);background:var(--surface);border-radius:50%;display:grid;place-items:center;box-shadow:0 4px 16px rgba(0,0,0,.08);color:var(--muted)}.sidebar-collapse svg{width:12px;height:12px}.main{grid-column:2;min-width:0}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;position:sticky;top:0;background:rgba(245,243,236,.84);backdrop-filter:blur(20px);z-index:60}.crumb{display:flex;gap:8px;color:#a0a096}.crumb strong{color:var(--ink)}.slash{color:#c0beb5}.top-actions{display:flex;gap:10px}.top-btn,.btn{min-height:40px;border:1px solid var(--line);background:var(--surface);border-radius:13px;padding:0 15px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .2s,background .2s,border-color .2s}.top-btn:hover,.btn:hover{transform:translateY(-1px);border-color:#bdb9ae}.btn.dark,.top-btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.danger{color:var(--danger);border-color:#e3c1bd}.btn.wide{width:100%}.top-btn kbd{font-size:10px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;color:#898980}.page{max-width:1260px;margin:0 auto;padding:56px 42px 0}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:42px}.page-head h1{font-size:76px;line-height:.9;letter-spacing:-5px;margin:10px 0 13px}.page-head p{margin:0;color:var(--muted);font-size:16px;max-width:700px;line-height:1.5}.actions{display:flex;gap:9px;flex-wrap:wrap}.eyebrow{font-size:9px;letter-spacing:2.4px;text-transform:uppercase;color:#9c9d94;font-weight:800}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 38px rgba(30,30,22,.035);padding:26px}.panel h3{margin:7px 0 0;font-size:23px;letter-spacing:-1.1px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.command-intro{display:grid;grid-template-columns:1fr 170px;gap:30px;align-items:stretch;background:var(--ink);color:white;border-radius:30px;padding:36px;margin-bottom:18px;overflow:hidden;position:relative}.command-intro:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-130px;top:-160px;box-shadow:0 0 0 55px rgba(167,214,61,.025),0 0 0 110px rgba(167,214,61,.018)}.command-intro h2{font-size:46px;letter-spacing:-2.7px;line-height:.98;max-width:680px;margin:12px 0}.command-intro p{color:#a9aaa2;max-width:680px;line-height:1.55}.command-date{border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:20px;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1}.command-date span,.command-date small{color:#a9aaa2;text-transform:uppercase;letter-spacing:2px;font-size:9px}.command-date strong{font-size:76px;letter-spacing:-6px;line-height:1}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.metric{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}.metric span,.metric small{display:block;color:#96978f;font-size:10px;text-transform:uppercase;letter-spacing:1.7px}.metric strong{display:block;font-size:42px;letter-spacing:-2.5px;margin:13px 0 7px}.metric small{text-transform:none;letter-spacing:0;font-size:11px}.two-col,.task-board,.calendar-layout,.focus-layout,.vault-layout,.insights-grid{display:grid;grid-template-columns:1.45fr .85fr;gap:18px;margin-bottom:18px}.agenda-panel{margin-bottom:18px}.task-row,.signal-row,.agenda-row,.file-row,.concept-row{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding:16px 0;width:100%;text-align:left}.task-row:first-of-type,.signal-row:first-of-type,.agenda-row:first-of-type{border-top:0}.task-row:hover .grow strong,.signal-row:hover strong,.agenda-row:hover strong{color:#87ad25}.grow{flex:1;min-width:0}.grow strong,.signal-row strong,.agenda-row strong,.file-row strong{display:block;font-size:14px}.grow small,.signal-row small,.agenda-row small,.file-row small{display:block;color:#989991;margin-top:4px;font-size:11px}.check{width:22px;height:22px;border:1.5px solid #aaa99f;border-radius:7px;background:transparent;flex:0 0 auto;display:grid;place-items:center;font-size:12px;font-weight:900}.check.done{background:var(--ink);color:#fff;border-color:var(--ink)}.priority{font-size:9px;text-transform:uppercase;letter-spacing:1.2px}.priority.high{color:#b04c44}.priority.medium{color:#9a882d}.priority.low{color:#71855d}.signal-row{cursor:pointer}.signal-row b{background:var(--lime2);padding:7px 10px;border-radius:999px;font-size:11px}.empty-state{min-height:150px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:var(--muted);padding:25px}.empty-state strong{color:var(--ink);font-size:16px}.empty-state p{max-width:420px;line-height:1.5;margin:7px 0 15px}.academic-overview{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.academic-overview>div{background:var(--ink);color:white;border-radius:24px;padding:30px}.academic-overview strong{display:block;font-size:64px;letter-spacing:-4px;margin:12px 0 5px}.academic-overview p{color:#a5a69e}.concept-list{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:8px 24px}.concept-row{cursor:pointer}.concept-row>span{width:180px;font-weight:750}.bar,.progress{height:5px;background:#e5e2d9;border-radius:99px;overflow:hidden;flex:1}.bar i,.progress i{display:block;height:100%;background:var(--ink);border-radius:inherit}.concept-row b{width:45px;text-align:right}.graph-wrap{background:var(--surface);border:1px solid var(--line);border-radius:28px;overflow:hidden}.graph-head{height:92px;padding:26px 30px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.hint{font-size:9px;text-transform:uppercase;letter-spacing:1.8px;color:#98a74e;background:var(--lime2);padding:7px 10px;border-radius:999px}.graph-canvas{height:620px;position:relative;background-image:linear-gradient(rgba(110,110,100,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(110,110,100,.08) 1px,transparent 1px);background-size:32px 32px;overflow:hidden}.graph-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.graph-lines line{stroke:#bbb9b0;stroke-width:.18}.graph-node{position:absolute;transform:translate(-50%,-50%);min-width:120px;padding:13px 15px;background:var(--surface);border:1px solid #cfcac0;border-radius:15px;box-shadow:0 10px 28px rgba(20,20,15,.08);text-align:left;z-index:2}.graph-node:hover{border-color:var(--lime);transform:translate(-50%,-50%) scale(1.03)}.graph-node.weak{box-shadow:0 0 0 3px rgba(170,215,63,.2),0 10px 28px rgba(20,20,15,.08)}.graph-node strong,.graph-node small{display:block}.graph-node small{color:#999a91;margin-top:4px;font-size:10px}.graph-legend{display:flex;gap:8px;flex-wrap:wrap;padding:15px 20px;border-top:1px solid var(--line)}.graph-legend span{border:1px solid var(--line);padding:7px 9px;border-radius:999px;color:#77786f;font-size:10px}.planner-top{display:flex;justify-content:space-between;align-items:center;background:var(--surface2);border-radius:24px;padding:25px 28px;margin-bottom:18px}.planner-top strong{font-size:50px;letter-spacing:-3px;display:block}.task-row.large{padding:19px 0}.task-row.completed{opacity:.65}.calendar-toolbar{display:flex;gap:9px;align-items:center;margin-bottom:15px}.calendar-toolbar strong{font-size:21px;letter-spacing:-.8px;margin:0 7px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;background:var(--surface);padding:10px;border:1px solid var(--line);border-radius:24px}.cal-weekday{padding:9px;color:#999a92;font-size:9px;text-transform:uppercase;letter-spacing:1.5px}.cal-cell{min-height:118px;border:1px solid transparent;border-radius:15px;background:var(--surface2);padding:9px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:5px;transition:.2s}.cal-cell:hover{border-color:#c3c0b6;transform:translateY(-1px)}.cal-cell.selected{border-color:var(--lime);box-shadow:inset 0 0 0 1px var(--lime)}.cal-cell.today>span{background:var(--ink);color:#fff}.cal-cell>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800}.cal-cell i{font-style:normal;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;padding:4px 5px;background:var(--lime2);border-radius:6px}.cal-cell small{color:#77786f}.empty-day{opacity:.35}.agenda .agenda-row{cursor:pointer}.agenda-row b{font-size:20px;color:#a3a39b}.focus-layout{grid-template-columns:1.35fr .65fr}.focus-core{background:var(--ink);color:#fff;border-radius:30px;min-height:610px;padding:35px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.focus-core:before{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.07);border-radius:50%;box-shadow:0 0 0 70px rgba(169,215,63,.025),0 0 0 140px rgba(169,215,63,.015)}.focus-time{font-size:125px;letter-spacing:-10px;line-height:1;margin:45px 0;position:relative}.focus-controls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;position:relative}.focus-preset{height:42px;padding:0 14px;border:1px solid rgba(255,255,255,.18);border-radius:12px;color:#bbbcb5}.focus-preset.active{background:var(--lime);color:var(--ink);border-color:var(--lime)}#customMinutes{width:95px;height:42px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:12px;color:white;padding:0 10px}.focus-settings select,.form input,.form textarea,.form select,.search-input{width:100%;border:1px solid var(--line);background:var(--surface2);color:var(--ink);border-radius:12px;padding:12px 13px;outline:none}.focus-settings p{color:var(--muted);line-height:1.6}.session-history{margin-top:25px}.session-history h4{margin-bottom:10px}.session-history div{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line);font-size:12px}.session-history small{color:var(--muted)}.mini-focus{position:fixed;z-index:120;right:22px;bottom:22px;min-width:210px;padding:9px 10px;background:rgba(23,24,22,.96);color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:17px;display:flex;align-items:center;gap:9px;box-shadow:0 18px 55px rgba(0,0,0,.25);backdrop-filter:blur(16px);user-select:none}.mini-drag{width:30px;height:30px;border-radius:10px;background:var(--lime);color:var(--ink);display:grid;place-items:center;cursor:grab}.mini-drag svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}.mini-copy{min-width:70px}.mini-copy span{display:block;font-size:8px;letter-spacing:1.8px;color:#9c9d94}.mini-copy strong{display:block;font-size:19px;letter-spacing:-1px}.mini-action{width:28px;height:28px;border-radius:9px;color:#aaa;background:rgba(255,255,255,.07)}.focus-overlay{position:fixed;inset:0;background:rgba(8,9,8,.96);z-index:200;color:white;display:grid;place-items:center;padding:30px}.focus-overlay-inner{text-align:center;width:min(850px,100%)}.focus-overlay-top{display:flex;justify-content:flex-end;gap:8px}.focus-overlay-top>span{margin-right:auto;color:#989a91;letter-spacing:2px;font-size:9px;align-self:center}.overlay-timer{font-size:180px;letter-spacing:-14px;line-height:.9;margin:100px 0 40px}.focus-overlay p{color:#aaa;max-width:600px;margin:0 auto 25px}.focus-overlay-actions{display:flex;justify-content:center;gap:10px}.file-row{padding:13px 0}.file-type{width:44px;height:44px;border:1px solid var(--line);border-radius:11px;display:grid;place-items:center;font-size:8px;font-weight:850}.note-card{border-top:1px solid var(--line);padding:18px 0}.note-card>div{display:flex;justify-content:space-between;gap:12px}.note-card small{color:var(--muted)}.note-card p{line-height:1.65;color:#686961;white-space:pre-wrap}.text-button{font-weight:750;font-size:12px}.source-note{padding:18px 20px;border:1px dashed #bfcf82;background:var(--lime2);border-radius:18px;display:flex;gap:15px;margin-bottom:18px}.source-note span{color:#697053}.opportunity{display:flex;justify-content:space-between;gap:20px;padding:24px 0;border-top:1px solid var(--line)}.opportunity:first-child{border-top:0}.opportunity h3{font-size:23px;margin:8px 0}.opportunity p{color:var(--muted)}.opp-actions{display:flex;align-items:center;gap:8px}.project{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:24px;min-height:230px}.project h3{font-size:28px;letter-spacing:-1.4px}.project p{color:var(--muted);line-height:1.5;min-height:50px}.project strong{display:block;margin-top:10px;font-size:11px}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.bar-chart{height:290px;display:flex;align-items:flex-end;gap:14px;padding:25px 5px 5px}.bar-chart>div{height:100%;flex:1;display:flex;align-items:flex-end;justify-content:center;position:relative}.bar-chart span{width:70%;min-height:2px;background:var(--ink);border-radius:8px 8px 2px 2px}.bar-chart small{position:absolute;bottom:-2px;transform:translateY(20px);color:#999a91}.signal-stack>div{padding:18px 0;border-top:1px solid var(--line)}.signal-stack strong{font-size:24px;display:block}.signal-stack span{font-size:11px;color:var(--muted)}.math-note p{color:var(--muted);line-height:1.7}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 0;border-top:1px solid var(--line)}.setting-row strong,.setting-row small{display:block}.setting-row small{color:var(--muted);margin-top:4px}.switch{width:48px;height:28px;border-radius:99px;background:#d4d1c8;padding:3px}.switch i{display:block;width:22px;height:22px;border-radius:50%;background:white;transition:.2s}.switch.on{background:var(--lime)}.switch.on i{transform:translateX(20px)}.data-actions{display:flex;flex-wrap:wrap;gap:8px}.form{display:flex;flex-direction:column;gap:15px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:10px;text-transform:uppercase;letter-spacing:1.4px;font-weight:800;color:#8b8c84}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form input:focus,.form textarea:focus,.form select:focus,.search-input:focus{border-color:#9dbf4c;box-shadow:0 0 0 3px rgba(169,215,63,.14)}.form textarea{resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.modal-backdrop{position:fixed;inset:0;background:rgba(20,20,16,.42);backdrop-filter:blur(10px);z-index:180;display:grid;place-items:center;padding:20px}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:25px;box-shadow:0 30px 100px rgba(0,0,0,.2);animation:modalIn .25s ease}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal h3{font-size:25px;letter-spacing:-1.2px;margin:0}.icon-btn{width:36px;height:36px;border:1px solid var(--line);border-radius:11px;background:var(--surface);display:grid;place-items:center;font-size:18px}.search-results{margin-top:12px}.search-result{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.search-result strong,.search-result small{display:block}.search-result small{color:var(--muted);margin-top:3px}.search-result>span{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#888}.shortcut-list>div{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0}.shortcut-list kbd{border:1px solid var(--line);padding:5px 8px;border-radius:7px;background:var(--surface2);font-size:10px}.modal-note,.local-note{font-size:11px;color:var(--muted);line-height:1.6}.local-note{padding:12px 13px;background:var(--surface2);border-radius:12px}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);opacity:0;background:var(--ink);color:white;padding:11px 15px;border-radius:12px;z-index:300;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.file-modal .modal{width:min(900px,100%)}.file-frame{width:100%;height:65vh;border:0;border-radius:12px;background:white}.file-image{display:block;max-width:100%;max-height:65vh;margin:auto;border-radius:12px}.file-media{width:100%;max-height:65vh}.app-footer{max-width:1260px;margin:80px auto 0;padding:22px 42px 28px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;color:#8b8c83;font-size:10px}.app-footer>div{display:flex;align-items:center;gap:12px}.app-footer strong{font-size:15px;color:var(--ink);letter-spacing:-.8px}.app-footer a:hover{color:var(--ink)}.auth-body{min-height:100vh;display:grid;place-items:center;padding:25px}.auth-shell{width:min(500px,100%)}.auth-brand{margin:0 auto 30px}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:30px;padding:35px;box-shadow:var(--shadow)}.auth-card h1{font-size:48px;letter-spacing:-3px;margin:12px 0}.auth-card>p{color:var(--muted);line-height:1.5}.auth-tabs{display:flex;gap:4px;background:var(--surface2);border-radius:12px;padding:4px;margin:25px 0}.auth-tab{flex:1;padding:10px;border-radius:9px;font-weight:750;color:var(--muted)}.auth-tab.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.06)}.auth-foot{text-align:center;color:var(--muted);font-size:11px}.auth-foot a{color:var(--ink);font-weight:800}
[data-theme=dark]{--bg:#10110f;--surface:#171815;--surface2:#20211d;--ink:#f2f2ed;--muted:#a3a49b;--line:#33352e;--lime:#b7df52;--lime2:#27351b;--danger:#e37d72;--shadow:0 18px 60px rgba(0,0,0,.35)}[data-theme=dark] .sidebar,[data-theme=dark] .topbar{background:rgba(16,17,15,.88)}[data-theme=dark] .mark i+ i{background:#d9ff68}[data-theme=dark] .attendance-hero-main{background:#0a0c0a;color:#f4f5ef}[data-theme=dark] .attendance-hero-ring i{background:#0a0c0a}[data-theme=dark] .attendance-hero-main .btn.dark{background:#f0f1ea;color:#10110f;border-color:#f0f1ea}[data-theme=dark] .nav-item.active{background:#292a25}[data-theme=dark] .nav-item:hover{background:#24251f}[data-theme=dark] .btn,[data-theme=dark] .top-btn,[data-theme=dark] .icon-btn,[data-theme=dark] .theme-toggle{background:#1b1c19;border-color:#3a3b34}[data-theme=dark] .command-intro,[data-theme=dark] .focus-core{background:#090a09}[data-theme=dark] .metric,[data-theme=dark] .panel,[data-theme=dark] .graph-node,[data-theme=dark] .auth-card{background:#171815}[data-theme=dark] .academic-overview>div{background:#090a09}[data-theme=dark] .bar,[data-theme=dark] .progress{background:#34352f}[data-theme=dark] .bar-chart span{background:#f2f2ed}[data-theme=dark] .cal-cell{background:#20211d}[data-theme=dark] .calendar-grid{background:#171815}[data-theme=dark] .cal-cell i{background:#30401f;color:#d8ed9b}[data-theme=dark] .form input,[data-theme=dark] .form textarea,[data-theme=dark] .form select,[data-theme=dark] .focus-settings select,[data-theme=dark] .search-input{background:#20211d;color:var(--ink);border-color:#3a3b34}[data-theme=dark] .form input::placeholder,[data-theme=dark] .form textarea::placeholder,[data-theme=dark] .search-input::placeholder{color:#85887f;opacity:1}[data-theme=dark] .profile-avatar,[data-theme=dark] .avatar{background:#f2f2ed;color:#10110f}[data-theme=dark] .sidebar-collapse{background:#171815}[data-theme=dark] .app-footer strong{color:var(--ink)}
body.sidebar-collapsed .app{grid-template-columns:78px 1fr}body.sidebar-collapsed .sidebar{width:78px;padding-left:10px;padding-right:10px}body.sidebar-collapsed .brand>span:last-child,body.sidebar-collapsed .side-label,body.sidebar-collapsed .nav-item .label,body.sidebar-collapsed .profile-copy,body.sidebar-collapsed .theme-label{display:none}body.sidebar-collapsed .nav-item{justify-content:center;padding:0}body.sidebar-collapsed .profile-link{justify-content:center}.sidebar-collapsed .sidebar-collapse{transform:rotate(180deg)}
@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.mobile-only-bar,.mobile-fab{display:none}
@media(max-width:1100px){.app{grid-template-columns:78px 1fr}.sidebar{width:78px;padding:25px 10px}.brand>span:last-child,.side-label,.nav-item .label,.profile-copy{display:none}.nav-item{justify-content:center}.profile-link{justify-content:center}.sidebar-bottom{gap:5px}.metric-grid{grid-template-columns:repeat(2,1fr)}.portfolio-grid{grid-template-columns:1fr 1fr}.page{padding-left:30px;padding-right:30px}.app-footer{padding-left:30px;padding-right:30px}}
@media(max-width:720px){.app{display:block}.sidebar{display:none}.main{width:100%}.topbar{height:66px;padding:0 16px}.top-actions .top-btn:first-child{display:none}.page{padding:34px 16px 100px}.page-head{display:block;margin-bottom:30px}.page-head h1{font-size:55px;letter-spacing:-4px}.page-head .actions{margin-top:18px}.command-intro{grid-template-columns:1fr;padding:27px;min-height:390px}.command-intro h2{font-size:38px}.command-date{width:130px;height:130px}.command-date strong{font-size:56px}.metric-grid,.academic-overview,.two-col,.task-board,.calendar-layout,.focus-layout,.vault-layout,.insights-grid,.settings-grid,.portfolio-grid{grid-template-columns:1fr}.metric strong{font-size:37px}.panel{padding:20px;border-radius:20px}.graph-canvas{height:540px}.graph-node{min-width:100px;padding:10px}.calendar-grid{gap:3px;padding:5px}.cal-weekday{font-size:7px;padding:7px 3px}.cal-cell{min-height:78px;padding:6px}.cal-cell i{font-size:7px}.focus-core{min-height:570px;padding:25px}.focus-time{font-size:76px;letter-spacing:-6px}.overlay-timer{font-size:82px;letter-spacing:-7px;margin:80px 0 35px}.mini-focus{right:12px;bottom:80px}.app-footer{margin:30px 16px 90px;padding:20px 0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.field-row{grid-template-columns:1fr}.opportunity{display:block}.opp-actions{margin-top:15px}.mobile-only-bar{display:flex;position:fixed;left:0;right:0;bottom:0;height:66px;background:rgba(245,243,236,.92);backdrop-filter:blur(20px);border-top:1px solid var(--line);z-index:100;justify-content:space-around;align-items:center}.mobile-only-bar a{font-size:8px;color:#8d8e85;text-align:center}.mobile-only-bar a.active{color:var(--ink);font-weight:800}.mobile-only-bar svg{display:block;width:18px;height:18px;margin:0 auto 4px}.mobile-fab{display:grid;position:fixed;right:18px;bottom:82px;width:54px;height:54px;border-radius:50%;background:var(--ink);color:#fff;place-items:center;z-index:110;box-shadow:0 12px 35px rgba(0,0,0,.25)}.mobile-fab.open{transform:rotate(45deg)}.mobile-menu{position:fixed;right:18px;bottom:145px;display:flex;flex-direction:column;gap:8px;z-index:109;opacity:0;pointer-events:none;transform:translateY(10px);transition:.25s}.mobile-menu.open{opacity:1;pointer-events:auto;transform:none}.mobile-menu a{background:var(--surface);border:1px solid var(--line);padding:11px 14px;border-radius:13px;box-shadow:var(--shadow);font-size:11px;font-weight:800;display:flex;align-items:center;gap:9px;min-width:150px}.mobile-menu a svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.auth-card{padding:25px;border-radius:24px}.auth-card h1{font-size:40px}.file-frame{height:60vh}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* v4 product refinements */
.sidebar-bottom{align-items:stretch}.sidebar-bottom .profile-link{min-width:0}.sidebar-bottom .theme-toggle{flex:0 0 40px}.sidebar-collapsed .theme-toggle{display:none!important}
.app-footer span a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.app-footer span a:hover{color:var(--ink);text-decoration-color:var(--lime)}
.command-health{position:relative;z-index:2;width:180px;min-height:180px;border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:22px;display:flex;flex-direction:column;justify-content:center;background:rgba(255,255,255,.025)}.command-health span{font-size:9px;letter-spacing:2px;color:#a5a69e}.command-health strong{font-size:76px;letter-spacing:-6px;line-height:.95;margin:8px 0}.command-health small{font-size:10px;line-height:1.4;color:#9b9c94}.signal-row{border:0;background:transparent}.signal-row:hover{background:var(--surface2);border-radius:12px;padding-left:10px;padding-right:10px}.cal-cell{vertical-align:top;display:flex!important;flex-direction:column;align-items:flex-start;gap:7px}.cal-day-number{font-weight:800}.cal-events{width:100%;display:flex;flex-direction:column;gap:4px}.cal-event{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;padding:4px 6px;border-radius:7px;background:var(--surface2);font-size:9px!important;color:var(--ink)!important;cursor:pointer}.cal-event b{font-weight:800}.cal-event:hover{background:var(--lime2)}.cal-cell.selected{outline:2px solid var(--ink);outline-offset:-2px}.calendar-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.calendar-toolbar strong{min-width:180px;text-align:center;font-size:16px}.focus-core{position:relative;overflow:hidden;min-height:650px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,var(--ink),#23251f);color:#fff!important}.focus-core:before{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-170px;top:-150px;box-shadow:0 0 0 48px rgba(169,215,63,.035),0 0 0 96px rgba(169,215,63,.025)}.focus-core-top{position:relative;z-index:2;display:flex;justify-content:space-between;gap:15px}.focus-status{font-size:11px;color:#b2b3ac;max-width:300px;text-align:right}.focus-dial{position:relative;z-index:2;width:min(390px,80vw);aspect-ratio:1;border:1px solid rgba(255,255,255,.12);border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;align-self:center;box-shadow:0 0 0 22px rgba(169,215,63,.035),inset 0 0 60px rgba(0,0,0,.18)}.focus-dial:after{content:"";position:absolute;inset:26px;border:1px dashed rgba(169,215,63,.28);border-radius:50%;animation:spin 22s linear infinite}.focus-time{font-variant-numeric:tabular-nums;font-size:92px;letter-spacing:-7px;line-height:.9}.focus-dial small{margin-top:12px;letter-spacing:2.5px;color:#a7a8a1;font-size:9px}.focus-controls{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.focus-presets{display:flex;gap:7px}.focus-preset{height:40px;padding:0 13px;border-radius:11px;border:1px solid rgba(255,255,255,.14);color:#b8b9b1}.focus-preset.active,.focus-preset:hover{background:var(--lime);border-color:var(--lime);color:#171816}.custom-time{height:40px;display:flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.14);border-radius:11px;padding:0 11px}.custom-time input{width:90px;background:transparent;border:0;outline:0;color:#fff}.custom-time span{font-size:9px;color:#9fa099}.focus-settings{min-height:650px}.focus-settings select{width:100%;margin:12px 0 15px}.focus-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);font-weight:800}.focus-rule{padding:15px;background:var(--surface2);border-radius:14px;margin:10px 0 22px}.focus-rule strong,.focus-rule span{display:block}.focus-rule strong{font-size:13px}.focus-rule span{font-size:11px;line-height:1.55;color:var(--muted);margin-top:5px}.session-history .panel-head{margin-bottom:8px}.session-history .panel-head h4{margin:0}.session-history .panel-head span{font-size:10px;color:var(--muted)}.session-history>div:not(.panel-head){display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:11px 0;font-size:11px}.session-history small{color:var(--muted)}.mini-focus{position:fixed;z-index:250;right:22px;bottom:22px;display:flex;align-items:center;gap:8px;background:#11130f;color:#fff;border:1px solid #34372e;border-radius:18px;padding:7px 8px 7px 7px;box-shadow:0 18px 50px rgba(0,0,0,.28);user-select:none}.mini-drag{width:34px;height:34px;border-radius:11px;background:var(--lime);color:#171816;display:grid;place-items:center;cursor:grab}.mini-drag:active{cursor:grabbing}.mini-copy{min-width:76px;display:flex;flex-direction:column}.mini-copy span{font-size:8px;letter-spacing:1.8px;color:#92948a}.mini-copy strong{font-size:17px;font-variant-numeric:tabular-nums}.mini-action{width:32px;height:32px;border-radius:10px;background:#23251f;color:#fff}.mini-action:hover{background:#30332b}.focus-overlay{position:fixed;inset:0;z-index:260;background:rgba(8,9,8,.96);color:#fff;display:grid;place-items:center;padding:30px}.focus-overlay-inner{width:min(980px,100%);text-align:center}.focus-overlay-top{display:flex;align-items:center;justify-content:flex-end;gap:8px}.focus-overlay-top>span{margin-right:auto;font-size:10px;letter-spacing:2px;color:#9da097}.overlay-timer{font-size:clamp(82px,16vw,190px);font-variant-numeric:tabular-nums;letter-spacing:-10px;margin:100px 0 40px}.focus-overlay-inner>p{font-size:18px;color:#aaa}.focus-overlay-actions{display:flex;justify-content:center;gap:10px;margin-top:30px}.vault-drop{border:1px dashed var(--line);border-radius:18px;padding:25px;text-align:center;margin:0 0 18px;background:var(--surface2);cursor:pointer;transition:.2s}.vault-drop:hover{border-color:var(--lime);transform:translateY(-1px)}.vault-drop strong,.vault-drop span{display:block}.vault-drop span{font-size:11px;color:var(--muted);margin-top:5px}.note-card{transition:.2s}.note-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.note-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.note-footer span{font-size:10px;color:var(--muted)}.setup-shell{width:min(820px,100%)}.setup-card{padding:38px}.setup-intro{margin-bottom:30px}.setup-intro h1{font-size:54px;letter-spacing:-3px;line-height:.95;margin:12px 0}.setup-intro p{color:var(--muted);max-width:650px}.setup-section{border-top:1px solid var(--line);padding:24px 0}.setup-section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.setup-section-head h3{margin:5px 0 0;font-size:22px}.setup-row{display:grid;grid-template-columns:1fr 150px 40px;gap:8px;margin-bottom:8px}.task-setup-row{grid-template-columns:1fr 130px 150px 40px}.setup-row input,.setup-row select{min-width:0}.setup-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:10px}.setup-section .modal-note{margin-top:10px}.signal-method{display:block!important;margin-top:4px;color:var(--muted);font-size:9px!important}.bar-chart{align-items:flex-end}.bar-chart>div{min-height:100%}.bar-chart span{transition:height .5s cubic-bezier(.2,.8,.2,1)}
[data-theme=dark]{--bg:#0c0d0b;--surface:#151714;--surface2:#1d201b;--ink:#f3f4ee;--muted:#a7aaa0;--line:#32362d;--lime:#b9e34f;--lime2:#2c3c1b;--danger:#f07c72;--shadow:0 20px 70px rgba(0,0,0,.38)}[data-theme=dark] body{background:var(--bg)}[data-theme=dark] .sidebar,[data-theme=dark] .topbar{background:rgba(12,13,11,.9);border-color:var(--line)}[data-theme=dark] .nav-item{color:#aeb0a7}[data-theme=dark] .nav-item.active{background:#252821;color:var(--ink)}[data-theme=dark] .nav-item:hover{background:#20231c;color:var(--ink)}[data-theme=dark] .profile-link:hover{background:#20231c}[data-theme=dark] .metric,[data-theme=dark] .panel,[data-theme=dark] .graph-wrap,[data-theme=dark] .concept-list,[data-theme=dark] .project,[data-theme=dark] .graph-node,[data-theme=dark] .auth-card{background:var(--surface);border-color:var(--line)}[data-theme=dark] .calendar-grid{background:var(--surface);border-color:var(--line)}[data-theme=dark] .cal-cell{background:#1b1e19;border-color:#2f332a}[data-theme=dark] .cal-event{background:#252921;color:var(--ink)!important}[data-theme=dark] .bar,[data-theme=dark] .progress{background:#30342b}[data-theme=dark] .bar i,[data-theme=dark] .progress i{background:#e9eadf}[data-theme=dark] .top-btn,[data-theme=dark] .btn,[data-theme=dark] .icon-btn,[data-theme=dark] .theme-toggle,[data-theme=dark] .switch{background:#191b17;border-color:#373a31;color:var(--ink)}[data-theme=dark] .btn.dark,[data-theme=dark] .top-btn.dark{background:#f0f1ea;color:#11130f;border-color:#f0f1ea}[data-theme=dark] .btn.danger{color:#ff8c81;border-color:#66332f}[data-theme=dark] .form input,[data-theme=dark] .form textarea,[data-theme=dark] .form select,[data-theme=dark] .search-input{background:#1b1e19;border-color:#383b33;color:var(--ink)}[data-theme=dark] .local-note,[data-theme=dark] .focus-rule,[data-theme=dark] .vault-drop{background:#1b1e19}[data-theme=dark] .app-footer{color:#8e9188}[data-theme=dark] .app-footer strong{color:var(--ink)}[data-theme=dark] .app-footer a{color:var(--muted)}[data-theme=dark] .modal-backdrop{background:rgba(0,0,0,.65)}[data-theme=dark] .modal{background:#151714;border-color:#34372e}[data-theme=dark] .search-result:hover{background:#1d201b}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:720px){.command-health{width:145px;min-height:145px}.command-health strong{font-size:60px}.focus-core{min-height:590px}.focus-dial{width:min(300px,82vw)}.focus-time{font-size:70px}.focus-controls{justify-content:center}.focus-presets{width:100%;justify-content:center}.custom-time{flex:1}.custom-time input{width:100%}.setup-card{padding:24px}.setup-intro h1{font-size:42px}.setup-row,.task-setup-row{grid-template-columns:1fr 1fr}.setup-row .icon-btn{grid-column:2;justify-self:end}.calendar-toolbar strong{min-width:0;flex:1}.cal-event{font-size:8px!important;padding:3px 4px}.mini-focus{right:12px;bottom:78px}.mini-copy{min-width:65px}.focus-overlay{padding:18px}.overlay-timer{margin:80px 0 30px;letter-spacing:-6px}.app-footer{align-items:flex-start!important}.app-footer>div{flex-wrap:wrap}.page-head h1{font-size:58px}}
/* v5 polish: preserve the existing product system while tightening footer alignment. */
.app-footer{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:24px;margin-top:42px;padding:24px 0 30px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}
.app-footer>div{display:flex;align-items:center;gap:14px;min-width:0}
.app-footer>div span{white-space:nowrap}
.app-footer>div>strong{font-size:17px;letter-spacing:-1px;color:var(--ink)}
.app-footer>a{white-space:nowrap}
body.sidebar-collapsed .theme-toggle{display:none!important}
@media(max-width:720px){.app-footer{grid-template-columns:1fr;gap:10px}.app-footer>div{align-items:flex-start}.app-footer>div span{white-space:normal}.app-footer>a{justify-self:start}}

/* v6 stability + polish */
html,body{min-height:100%;overflow-x:hidden}
.sidebar .brand{transition:all .28s cubic-bezier(.2,.8,.2,1)}
body.sidebar-collapsed .sidebar .brand{font-size:16px;letter-spacing:-1px;gap:6px;margin-left:4px}
body.sidebar-collapsed .sidebar .brand .mark i{width:6px;height:6px}
body.sidebar-collapsed .sidebar{width:82px;padding-left:10px;padding-right:10px}
body.sidebar-collapsed .app{grid-template-columns:82px 1fr}
body.sidebar-collapsed .sidebar .brand>span:last-child{display:inline!important}
body.sidebar-collapsed .sidebar .side-nav{margin-top:32px}
body.sidebar-collapsed .sidebar .side-label,body.sidebar-collapsed .sidebar .nav-item .label,body.sidebar-collapsed .sidebar .profile-copy{display:none}
body.sidebar-collapsed .sidebar .nav-item{justify-content:center;padding:0}
body.sidebar-collapsed .sidebar .profile-link{justify-content:center}
body.sidebar-collapsed .theme-toggle{display:none!important}

/* A quieter, more useful theme control in the full sidebar. */
.theme-toggle{width:auto;min-width:42px;padding:0 11px;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:12px;transition:background .22s,border-color .22s,transform .22s}
.theme-toggle:hover{transform:translateY(-1px);border-color:#bbb8ae}
.theme-toggle .theme-label{display:inline;font-size:10px;font-weight:800;letter-spacing:.2px}

/* Keep accidental focus surfaces from ever leaking onto unrelated pages. */
body[data-page]:not([data-page="focus"]) .focus-overlay{display:none!important}
body[data-page]:not([data-page="focus"]) .focus-core{display:none!important}
body[data-page]:not([data-page="focus"]) .focus-dial{display:none!important}
body[data-page]:not([data-page="focus"]) .focus-time{display:none!important}

/* Setup is a product onboarding surface, not a plain form. */
.setup-body{background:radial-gradient(circle at 80% 15%,rgba(169,215,63,.13),transparent 30%),var(--bg)}
.setup-body .auth-shell{width:min(940px,100%)}
.setup-body .auth-brand{margin-left:6px;margin-right:0;margin-bottom:22px}
.setup-card{position:relative;overflow:hidden;box-shadow:0 30px 100px rgba(30,30,22,.09)}
.setup-card:before{content:"";position:absolute;right:-180px;top:-180px;width:420px;height:420px;border-radius:50%;border:1px solid rgba(169,215,63,.18);box-shadow:0 0 0 55px rgba(169,215,63,.035),0 0 0 110px rgba(169,215,63,.02);pointer-events:none}
.setup-intro{position:relative;z-index:1;padding-right:120px}
.setup-intro h1{max-width:720px}
.setup-section{position:relative;z-index:1}
.setup-section-head h3{letter-spacing:-1px}
.setup-row input,.setup-row select,.setup-body .field input,.setup-body .field textarea{background:rgba(255,255,255,.55)}
.setup-row input:focus,.setup-row select:focus,.setup-body .field input:focus,.setup-body .field textarea:focus{background:var(--surface)}
.setup-progress{display:flex;align-items:center;gap:7px;margin-bottom:24px}
.setup-progress i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.setup-progress i.active{background:var(--lime);box-shadow:0 0 0 4px rgba(169,215,63,.13)}
.setup-progress span{font-size:9px;text-transform:uppercase;letter-spacing:1.8px;color:var(--muted);margin-left:5px}

/* More resilient auth layout and initial state. */
.auth-forgot{align-self:flex-start;padding:4px 0;color:var(--muted)}
.auth-forgot:hover{color:var(--ink)}
.auth-card .local-note strong{color:var(--ink)}
[data-theme=dark] .auth-body{background:radial-gradient(circle at 80% 15%,rgba(185,227,79,.08),transparent 30%),var(--bg)}
[data-theme=dark] .setup-card:before{border-color:rgba(185,227,79,.13)}
[data-theme=dark] .setup-row input,[data-theme=dark] .setup-row select,[data-theme=dark] .setup-body .field input,[data-theme=dark] .setup-body .field textarea{background:#1b1d19}
[data-theme=dark] .theme-toggle:hover{background:#23251f}

/* Avoid blank-looking trailing space when a page has little content. */
.page:after{content:"";display:block;clear:both}
.app-footer{position:relative;z-index:2}

@media(max-width:900px) and (min-width:721px){body.sidebar-collapsed .sidebar .brand{font-size:15px}.page{padding-left:28px;padding-right:28px}.topbar{padding-left:28px;padding-right:28px}}
@media(max-width:720px){
  .setup-intro{padding-right:0}
  .setup-card:before{right:-220px;top:-220px}
  .setup-body .auth-brand{margin-left:0}
  .theme-toggle .theme-label{display:none}
}

.direction-panel{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;margin-bottom:18px;background:linear-gradient(135deg,var(--surface),var(--surface2))}
.direction-main h3{font-size:30px;letter-spacing:-1.5px;margin:8px 0}
.direction-main p{color:var(--muted);margin:0;line-height:1.5}
.direction-meta{min-width:150px;padding-left:25px;border-left:1px solid var(--line)}
.direction-meta strong,.direction-meta span{display:block}.direction-meta strong{font-size:30px;letter-spacing:-1.5px}.direction-meta span{font-size:10px;color:var(--muted);margin-top:4px}
[data-theme=dark] .direction-panel{background:linear-gradient(135deg,var(--surface),var(--surface2))}
@media(max-width:720px){.direction-panel{grid-template-columns:1fr;gap:18px}.direction-meta{border-left:0;border-top:1px solid var(--line);padding:16px 0 0}}

/* Final theme toggle: a real, compact switch. */
.theme-toggle{
  width:auto!important;min-width:106px!important;height:40px!important;padding:5px 6px 5px 10px!important;
  border:1px solid var(--line);border-radius:999px!important;background:var(--surface)!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;
  color:var(--muted);transition:background .25s,border-color .25s,box-shadow .25s,transform .2s!important;
}
.theme-toggle:hover{transform:translateY(-1px)!important;box-shadow:0 8px 24px rgba(20,20,15,.08)!important}
.theme-toggle .theme-label{display:block!important;font-size:10px!important;font-weight:800!important;letter-spacing:.1px!important;white-space:nowrap}
.theme-switch{position:relative;width:38px;height:22px;flex:0 0 38px;border-radius:999px;background:#d7d4cb;border:1px solid rgba(20,20,15,.08);padding:2px;transition:background .25s,border-color .25s}
.theme-switch i{display:block;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.18);transform:translateX(0);transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s}
.theme-switch.on{background:var(--lime);border-color:var(--lime)}
.theme-switch.on i{transform:translateX(14px);background:#171816}
[data-theme=dark] .theme-toggle{background:#181a16!important;border-color:#34372f!important;color:#d7d9d0!important}
[data-theme=dark] .theme-switch{background:#34382f;border-color:#454a3e}
[data-theme=dark] .theme-switch.on{background:var(--lime);border-color:var(--lime)}
[data-theme=dark] .theme-switch.on i{background:#11130f}
body.sidebar-collapsed .theme-toggle{display:none!important}
@media(max-width:720px){.theme-toggle{min-width:40px!important;width:40px!important;padding:4px!important;justify-content:center!important}.theme-toggle .theme-label{display:none!important}}

/* Final theme toggle: a compact, proper switch. */
.theme-toggle{width:auto!important;min-width:106px!important;height:40px!important;padding:5px 6px 5px 10px!important;border:1px solid var(--line);border-radius:999px!important;background:var(--surface)!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;color:var(--muted);transition:background .25s,border-color .25s,box-shadow .25s,transform .2s!important}
.theme-toggle:hover{transform:translateY(-1px)!important;box-shadow:0 8px 24px rgba(20,20,15,.08)!important}
.theme-toggle .theme-label{display:block!important;font-size:10px!important;font-weight:800!important;letter-spacing:.1px!important;white-space:nowrap}
.theme-switch{position:relative;width:38px;height:22px;flex:0 0 38px;border-radius:999px;background:#d7d4cb;border:1px solid rgba(20,20,15,.08);padding:2px;transition:background .25s,border-color .25s}
.theme-switch i{display:block;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.18);transform:translateX(0);transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s}
.theme-switch.on{background:var(--lime);border-color:var(--lime)}
.theme-switch.on i{transform:translateX(14px);background:#171816}
[data-theme=dark] .theme-toggle{background:#181a16!important;border-color:#34372f!important;color:#d7d9d0!important}
[data-theme=dark] .theme-switch{background:#34382f;border-color:#454a3e}
[data-theme=dark] .theme-switch.on{background:var(--lime);border-color:var(--lime)}
[data-theme=dark] .theme-switch.on i{background:#11130f}
body.sidebar-collapsed .theme-toggle{display:none!important}
@media(max-width:720px){.theme-toggle{min-width:40px!important;width:40px!important;padding:4px!important;justify-content:center!important}.theme-toggle .theme-label{display:none!important}}

/* v13 interaction cleanup */
.theme-toggle{width:78px!important;min-width:78px!important;height:34px!important;padding:3px!important;border-radius:999px!important;display:grid!important;grid-template-columns:22px 38px 22px!important;align-items:center!important;justify-content:center!important;gap:0!important;background:var(--surface)!important;overflow:hidden}
.theme-toggle .theme-icon{width:22px;height:22px;display:grid;place-items:center;color:var(--muted);transition:color .28s,transform .28s,opacity .28s}
.theme-toggle .theme-icon svg{width:13px;height:13px}
.theme-toggle .theme-icon.sun{color:var(--ink)}
.theme-toggle .theme-icon.moon{opacity:.48}
.theme-toggle .theme-switch{width:38px;height:22px;margin:0;border-radius:999px;background:var(--surface2);border:1px solid var(--line);padding:2px;position:relative;transition:background .3s,border-color .3s,box-shadow .3s}
.theme-toggle .theme-switch i{width:16px;height:16px;display:block;border-radius:50%;background:var(--ink);box-shadow:0 2px 7px rgba(0,0,0,.18);transform:translateX(0);transition:transform .32s cubic-bezier(.2,.8,.2,1),background .3s,box-shadow .3s}
.theme-toggle:active .theme-switch i{transform:scale(.9)}
.theme-toggle .theme-switch.on{background:var(--lime);border-color:var(--lime);box-shadow:inset 0 0 0 1px rgba(23,24,22,.04)}
.theme-toggle .theme-switch.on i{transform:translateX(14px);background:#171816}
.theme-toggle:has(.theme-switch.on) .sun{opacity:.48;transform:rotate(-18deg) scale(.92)}
.theme-toggle:has(.theme-switch.on) .moon{opacity:1;color:var(--ink);transform:rotate(0) scale(1.05)}
[data-theme=dark] .theme-toggle{background:#151714!important;border-color:#34372f!important}
[data-theme=dark] .theme-toggle .theme-icon{color:#a7aaa0}
[data-theme=dark] .theme-toggle .theme-icon.moon{color:#f3f4ee;opacity:1}
[data-theme=dark] .theme-toggle .theme-switch{background:#242820;border-color:#3c4135}
[data-theme=dark] .theme-toggle .theme-switch.on{background:var(--lime);border-color:var(--lime)}

/* Buttons inside the dark focus surface must remain readable. */
.focus-core .btn:not(.dark){color:#171816;background:#fbfaf5;border-color:#dcd9cf}
.focus-core .btn:not(.dark):hover{background:#fff}
.focus-overlay .btn:not(.dark){color:#171816;background:#fbfaf5;border-color:#dcd9cf}
.focus-overlay .icon-btn{color:#171816;background:#fbfaf5;border-color:#dcd9cf}

/* True full-screen Focus mode: no ghosting from the page behind it. */
.focus-overlay{background:#0b0d0a!important;padding:28px!important;place-items:stretch!important}
.focus-overlay-inner{width:100%!important;height:100%!important;max-width:none!important;display:flex!important;flex-direction:column!important}
.focus-overlay-top{flex:0 0 auto!important;width:100%!important}
.focus-overlay-top-actions{display:flex;gap:8px;align-items:center}
.overlay-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:0}
.overlay-center .eyebrow{color:#a7aaa0}
.overlay-timer{font-size:clamp(92px,17vw,220px)!important;line-height:.82!important;margin:34px 0 24px!important;letter-spacing:-11px!important}
.focus-overlay-inner>p{margin:0;color:#a7aaa0}
.focus-overlay-actions{margin-top:28px!important}

/* Keep the mini focus surface above every app page and make it feel native. */
.mini-focus{z-index:1000!important}

/* Only the floating mobile menu exists on phones. */
@media(max-width:720px){
  .mobile-only-bar{display:none!important}
  .sidebar-collapse{display:none!important}
  .mobile-fab{width:56px!important;height:56px!important;border-radius:50%!important;bottom:22px!important;right:18px!important;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s!important}
  .mobile-fab svg{width:20px!important;height:20px!important}
  .mobile-fab.open{transform:rotate(90deg)!important}
  .mobile-menu{right:18px!important;bottom:88px!important;gap:7px!important;max-height:calc(100vh - 150px)!important;overflow:auto!important;padding:5px!important}
  .mobile-menu a{min-width:172px!important;padding:12px 14px!important;border-radius:14px!important}
  .app-footer{margin-bottom:30px!important;padding-bottom:24px!important}
  .focus-overlay{padding:18px!important}
  .overlay-timer{font-size:clamp(64px,18vw,110px)!important;letter-spacing:-6px!important}
}

/* Never allow Focus internals to create trailing blocks on non-Focus routes. */
body[data-page]:not([data-page="focus"]) .focus-core,
body[data-page]:not([data-page="focus"]) .focus-dial,
body[data-page]:not([data-page="focus"]) .focus-time,
body[data-page]:not([data-page="focus"]) .focus-overlay{display:none!important}

/* Settings additions */
.connections-panel{grid-column:1/-1}
.connection-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding:15px 0}
.connection-row>div{min-width:0;display:flex;flex-direction:column;gap:4px}
.connection-row strong{font-size:13px}
.connection-row small{color:var(--muted)}
.connection-row a{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.connection-row a:hover{color:var(--ink)}
.empty-state.compact{min-height:90px;padding:18px 0}
.docs{display:grid;gap:0}
.docs section{border-top:1px solid var(--line);padding:15px 0}
.docs section:first-child{border-top:0}
.docs h4{margin:5px 0;font-size:17px;letter-spacing:-.5px}
.docs p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}
.docs kbd{display:inline-block;padding:2px 6px;border:1px solid var(--line);border-radius:5px;background:var(--surface2);font-size:10px}
.docs-modal .modal{max-height:86vh}

/* Dark theme covers the newly added settings surfaces too. */
[data-theme=dark] .connection-row{border-color:var(--line)}
[data-theme=dark] .connection-row a{color:#a7aaa0}

/* Settings theme control: animated icon switch, no text required. */
#settingsTheme.switch{position:relative;width:76px;height:34px;padding:3px;border-radius:999px;background:var(--surface2);border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:0;transition:background .3s,border-color .3s,box-shadow .3s}
#settingsTheme.switch i{position:absolute;left:3px;top:3px;width:26px;height:26px;border-radius:50%;background:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.16);transition:transform .32s cubic-bezier(.2,.8,.2,1),background .3s}
#settingsTheme.switch.on{background:var(--lime);border-color:var(--lime)}
#settingsTheme.switch.on i{transform:translateX(42px);background:#171816}
#settingsTheme .switch-icon{position:relative;z-index:1;width:26px;height:26px;display:grid;place-items:center;color:var(--muted);pointer-events:none;transition:color .25s,opacity .25s,transform .25s}
#settingsTheme .switch-icon svg{width:13px;height:13px}
#settingsTheme .switch-icon.sun{color:var(--ink)}
#settingsTheme .switch-icon.moon{opacity:.5}
#settingsTheme.switch.on .switch-icon.sun{opacity:.5;transform:rotate(-15deg)}
#settingsTheme.switch.on .switch-icon.moon{opacity:1;color:var(--ink);transform:scale(1.05)}
[data-theme=dark] #settingsTheme.switch{background:#22251e;border-color:#3b4034}
[data-theme=dark] #settingsTheme.switch.on{background:var(--lime);border-color:var(--lime)}
@keyframes themeBump{0%{transform:scale(1)}45%{transform:scale(1.06)}100%{transform:scale(1)}}
.theme-toggle.theme-bump{animation:themeBump .36s ease}

/* Zevuna v14 — final interaction cleanup */
.mobile-menu{display:none!important}
.mobile-fab{display:none!important}
.mobile-only-bar{display:none!important}
.sidebar-collapse{width:30px!important;height:30px!important;right:-15px!important;top:82px!important;border-radius:50%!important;transition:transform .28s cubic-bezier(.2,.8,.2,1),background .25s,border-color .25s,box-shadow .25s!important}
.sidebar-collapse:hover{transform:scale(1.06);box-shadow:0 7px 22px rgba(20,20,15,.12)}
.sidebar-collapse svg{width:15px!important;height:15px!important}
body.sidebar-collapsed .sidebar-collapse{transform:rotate(0deg)!important}
body.sidebar-collapsed .sidebar-collapse:hover{transform:scale(1.06)!important}
body.sidebar-collapsed .theme-toggle{display:grid!important;width:64px!important;min-width:64px!important;height:34px!important;grid-template-columns:18px 26px 18px!important;margin:0 auto!important}
body.sidebar-collapsed .theme-toggle .theme-switch{width:26px!important;height:18px!important}
body.sidebar-collapsed .theme-toggle .theme-switch i{width:12px!important;height:12px!important}
body.sidebar-collapsed .theme-toggle .theme-switch.on i{transform:translateX(8px)!important}
body.sidebar-collapsed .theme-toggle .theme-icon{width:18px!important;height:18px!important}

.theme-toggle{width:82px!important;min-width:82px!important;height:36px!important;padding:3px!important;grid-template-columns:22px 38px 22px!important;box-shadow:0 4px 18px rgba(20,20,15,.05)!important}
.theme-toggle .theme-switch{width:38px!important;height:22px!important}
.theme-toggle .theme-icon{width:22px!important;height:22px!important}
.theme-toggle.theme-bump{animation:themeBump .38s cubic-bezier(.2,.8,.2,1)}
@keyframes themeBump{0%{transform:scale(1)}35%{transform:scale(1.07)}70%{transform:scale(.98)}100%{transform:scale(1)}}

.mini-focus{right:24px!important;bottom:24px!important;min-width:0!important;padding:6px!important;gap:8px!important;border-radius:20px!important;background:rgba(17,19,15,.94)!important;backdrop-filter:blur(18px)!important;box-shadow:0 20px 55px rgba(0,0,0,.26)!important;border:1px solid rgba(255,255,255,.13)!important;animation:miniIn .38s cubic-bezier(.2,.8,.2,1)!important}
.mini-ring{--progress:1;position:relative;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--lime) calc(var(--progress) * 1turn),#35382f 0)!important;flex:0 0 38px;box-shadow:0 0 0 1px rgba(255,255,255,.04)}
.mini-ring:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#171914}
.mini-ring-icon{position:relative;z-index:1;display:grid;place-items:center;color:var(--lime)}
.mini-ring-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mini-copy{min-width:78px!important;gap:1px}
.mini-copy span{font-size:7px!important;letter-spacing:2px!important;color:#8f9387!important}
.mini-copy strong{font-size:16px!important;line-height:1!important;letter-spacing:-.4px}
.mini-action{width:34px!important;height:34px!important;border-radius:11px!important;background:#252820!important;color:#f3f4ee!important;border:1px solid rgba(255,255,255,.05)!important;transition:transform .2s,background .2s!important}
.mini-action:hover{background:#30342a!important;transform:translateY(-1px)}
@keyframes miniIn{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}

.focus-overlay{position:fixed!important;inset:0!important;z-index:9999!important;background:#090b08!important;padding:32px!important;display:flex!important;align-items:stretch!important;justify-content:stretch!important;color:#fff!important}
.focus-overlay-inner{width:100%!important;height:100%!important;max-width:none!important;display:flex!important;flex-direction:column!important;text-align:center!important}
.focus-overlay-top{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;flex:0 0 auto!important}
.focus-overlay-top>span{margin-right:auto!important;color:#a6aa9f!important}
.focus-overlay-top-actions{display:flex!important;gap:8px!important}
.focus-overlay .btn,.focus-overlay .icon-btn{position:relative;z-index:2!important;min-height:42px!important}
.overlay-center{flex:1!important;min-height:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important}
.overlay-timer{font-size:clamp(100px,18vw,250px)!important;line-height:.82!important;letter-spacing:-12px!important;margin:28px 0 26px!important;font-variant-numeric:tabular-nums!important}
.focus-overlay p{color:#a8aba2!important;font-size:17px!important;margin:0!important}
.focus-overlay-actions{display:flex!important;justify-content:center!important;gap:10px!important;margin-top:30px!important}
.focus-overlay-actions .btn{min-width:110px!important}

.settings-grid .help-panel,.settings-grid .share-panel{display:flex;flex-direction:column;justify-content:space-between;gap:24px}
.panel-actions{display:flex;gap:8px;flex-wrap:wrap}
.app-footer-links{display:flex;align-items:center;gap:18px}
.app-footer-links a{white-space:nowrap}

@media(max-width:1050px){
  .sidebar-collapse{top:82px!important}
}
@media(max-width:720px){
  .mobile-menu{display:flex!important;position:fixed!important;right:18px!important;bottom:88px!important;flex-direction:column!important;gap:7px!important;z-index:10001!important;opacity:0;pointer-events:none;transform:translateY(10px) scale(.98);transition:opacity .24s ease,transform .24s cubic-bezier(.2,.8,.2,1)!important;background:transparent!important}
  .mobile-menu.open{opacity:1!important;pointer-events:auto!important;transform:none!important}
  .mobile-menu a{display:flex!important;align-items:center!important;gap:10px!important;min-width:174px!important;padding:12px 14px!important;border-radius:15px!important;background:var(--surface)!important;border:1px solid var(--line)!important;box-shadow:0 14px 38px rgba(20,20,15,.12)!important;font-size:11px!important;font-weight:800!important}
  .mobile-menu a svg{width:17px!important;height:17px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.7!important;stroke-linecap:round!important;stroke-linejoin:round!important}
  .mobile-fab{display:grid!important;position:fixed!important;right:18px!important;bottom:22px!important;width:56px!important;height:56px!important;border-radius:50%!important;background:var(--ink)!important;color:#fff!important;place-items:center!important;z-index:10002!important;box-shadow:0 14px 38px rgba(0,0,0,.24)!important;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .25s!important}
  .mobile-fab.open{transform:rotate(90deg)!important}
  .mobile-fab svg{width:20px!important;height:20px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
  .app-footer{margin-bottom:28px!important}
  .app-footer-links{align-items:flex-start;flex-wrap:wrap;gap:10px 18px}
  .focus-overlay{padding:18px!important}
  .overlay-timer{font-size:clamp(62px,18vw,110px)!important;letter-spacing:-6px!important;margin:55px 0 26px!important}
  .focus-overlay-top-actions .btn{min-height:38px!important}
  .focus-overlay-actions{flex-wrap:wrap}
  .settings-grid .help-panel,.settings-grid .share-panel{display:block}
  .settings-grid .help-panel .panel-actions{margin-top:18px}
  .settings-grid .share-panel>button{margin-top:18px}
  .mini-focus{right:12px!important;bottom:88px!important;max-width:calc(100vw - 24px)!important}
  .mini-copy{min-width:66px!important}
  .mini-action{width:32px!important;height:32px!important}
}

/* v15 interaction + layout polish */
.main{min-height:100vh;display:flex;flex-direction:column}
.main>.page{width:100%}
.main>.app-footer{margin-top:auto}
.sidebar-collapse{z-index:3}
.sidebar-collapsed .sidebar-collapse{transform:none!important}
.sidebar-collapsed .sidebar-collapse svg{transform:rotate(180deg)}
.sidebar-collapsed .theme-toggle{display:grid!important}
.share-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.share-option{min-height:72px;border:1px solid var(--line);background:var(--surface);border-radius:15px;padding:12px;display:flex;align-items:center;gap:12px;text-align:left;transition:transform .2s,border-color .2s,background .2s}
.share-option:hover{transform:translateY(-1px);border-color:var(--lime);background:var(--surface2)}
.share-option-icon{width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:var(--surface2);display:grid;place-items:center;font-weight:850}
.share-option span:last-child{min-width:0;display:flex;flex-direction:column;gap:3px}
.share-option strong{font-size:12px}.share-option small{font-size:10px;color:var(--muted);line-height:1.35}
.share-modal-note{margin:16px 2px 0;color:var(--muted);font-size:11px;line-height:1.55}
.connection-picker{border:1px solid var(--line);border-radius:15px;overflow:hidden;background:var(--surface2)}
.connection-choice{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:9px;padding:11px 12px;border-top:1px solid var(--line);cursor:pointer}
.connection-choice:first-child{border-top:0}.connection-choice:hover{background:var(--surface)}
.connection-choice input{accent-color:var(--lime);width:16px;height:16px}.connection-choice span{font-size:12px;font-weight:700}.connection-choice small{font-size:9px;color:var(--muted)}
.field-help{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:7px}
[data-theme=dark] .share-option{background:var(--surface)}
[data-theme=dark] .share-option:hover{background:var(--surface2)}
[data-theme=dark] .share-option-icon{background:var(--surface2)}

@media(max-width:720px){
  .share-options{grid-template-columns:1fr}
  .main>.app-footer{margin-top:auto}
}

.main>.app-footer{width:min(1260px,calc(100% - 84px));margin-left:auto;margin-right:auto}
@media(max-width:720px){.main>.app-footer{width:calc(100% - 32px);margin-left:auto;margin-right:auto}}

/* v16 — sidebar + footer corrections */
body.sidebar-collapsed .sidebar{overflow:visible}
body.sidebar-collapsed .sidebar .brand{width:100%;max-width:100%;justify-content:center;margin:0;padding:0;font-size:16px;letter-spacing:-1px;gap:6px;white-space:nowrap;overflow:visible}
body.sidebar-collapsed .sidebar .brand>span:last-child{display:inline!important;overflow:visible;max-width:none}
body.sidebar-collapsed .sidebar .brand .mark{flex:0 0 auto}
body.sidebar-collapsed .sidebar .side-nav{margin-top:32px}
body.sidebar-collapsed .theme-toggle{display:none!important}
body.sidebar-collapsed .sidebar-bottom{justify-content:center}
body.sidebar-collapsed .profile-link{flex:0 0 auto;width:44px;padding:2px;justify-content:center}
body.sidebar-collapsed .sidebar-collapse{transform:none!important}
body.sidebar-collapsed .sidebar-collapse:hover{transform:scale(1.06)!important}
body.sidebar-collapsed .sidebar-collapse svg{transform:none!important}
.sidebar-collapse{overflow:hidden}

.app-footer{width:min(1260px,calc(100% - 84px));margin-left:auto;margin-right:auto;margin-top:auto;padding:28px 0 32px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(250px,.9fr) minmax(420px,1.5fr);gap:70px;color:var(--muted)}
.app-footer-brand{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:9px!important;min-width:0}
.app-footer-brand>strong{font-size:22px;letter-spacing:-1.4px;color:var(--ink)}
.app-footer-brand p{max-width:340px;margin:0!important;font-size:11px;line-height:1.65;color:var(--muted)}
.app-footer-brand>span{font-size:10px;color:var(--muted);white-space:nowrap}
.app-footer-links{display:grid!important;grid-template-columns:repeat(3,1fr);gap:35px!important;align-items:start!important}
.app-footer-links>div{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.app-footer-links small{font-size:8px;letter-spacing:1.8px;text-transform:uppercase;color:#9a9b92;font-weight:800;margin-bottom:3px}
.app-footer-links a{font-size:10px;white-space:normal;color:var(--muted);transition:color .2s,transform .2s}
.app-footer-links a:hover{color:var(--ink);transform:translateX(2px)}
.app-footer-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;gap:20px;font:400 9px ui-monospace,SFMono-Regular,Menlo,monospace;color:#9a9b92}
[data-theme=dark] .app-footer-links small{color:#73766d}
[data-theme=dark] .app-footer-bottom{color:#70736a}
@media(max-width:900px) and (min-width:721px){.app-footer{width:calc(100% - 56px);grid-template-columns:1fr;gap:28px}.app-footer-links{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.app-footer{width:calc(100% - 32px);grid-template-columns:1fr;gap:28px;padding-bottom:36px}.app-footer-links{grid-template-columns:1fr 1fr!important;gap:24px!important}.app-footer-bottom{grid-column:auto;flex-direction:column;gap:7px}.app-footer-brand>span{white-space:normal}}

/* v4 — anonymous users must never see a protected workspace page */
html.zevuna-auth-pending body > .app{visibility:hidden!important;pointer-events:none!important}
html.zevuna-auth-pending{background:var(--bg)}


/* v5 — fail-closed account authentication gate */
html.zevuna-auth-pending body > .app {
  visibility: hidden !important;
  pointer-events: none !important;
}
html.zevuna-auth-pending {
  background: var(--bg);
}


/* v17 — connected workspace polish */
.main>.page{padding-bottom:84px}
@media(max-width:720px){.main>.page{padding-bottom:72px}}
.toast{background:var(--ink);color:var(--bg);border:1px solid var(--line);box-shadow:0 16px 40px rgba(0,0,0,.16)}
[data-theme=dark] .toast{background:#1b1e19;color:#f3f4ee;border-color:#3a3e34;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1.5px}
.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--line);flex:1}
.google-auth{width:100%;min-height:46px;border:1px solid var(--line);border-radius:13px;background:var(--surface);display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;transition:transform .2s,border-color .2s,background .2s}
.google-auth:hover{transform:translateY(-1px);border-color:#aaa79e;background:var(--surface2)}
.google-auth:disabled{opacity:.65;cursor:wait;transform:none}
.google-mark{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:#fff;color:#4285f4;font-size:14px;font-weight:900;border:1px solid #ddd}
[data-theme=dark] .google-auth{background:#191c18;border-color:#373b32}
[data-theme=dark] .google-mark{background:#fff;color:#4285f4}
.upload-progress-list{display:flex;flex-direction:column;gap:10px;max-height:55vh;overflow:auto;padding:4px 0}
.upload-item{border:1px solid var(--line);background:var(--surface2);border-radius:14px;padding:12px}
.upload-item-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.upload-item-head strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-percent{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.upload-track{height:5px;background:var(--line);border-radius:99px;overflow:hidden;margin:9px 0 6px}.upload-track i{display:block;height:100%;background:var(--lime);border-radius:inherit;transition:width .18s ease}
.upload-state{font-size:10px;color:var(--muted)}
[data-theme=dark] .upload-item{background:#1b1e19}.upload-modal{width:min(600px,calc(100vw - 30px))}

.vault-drop-locked{cursor:pointer}.vault-drop-locked:hover{border-color:var(--ink)}.vault-drop-locked strong:before{content:"✦ ";color:var(--lime)}

/* v12 interaction polish */
.modal-backdrop{background:rgba(15,16,13,.46);backdrop-filter:blur(14px);padding:20px;animation:modalFade .18s ease both}.modal{position:relative;overflow:hidden;border-radius:20px;padding:22px;border:1px solid var(--line);box-shadow:0 28px 90px rgba(20,20,15,.18);animation:modalIn .22s cubic-bezier(.2,.8,.2,1) both}.modal:before{content:"";display:block;width:42px;height:3px;background:var(--ink);border-radius:99px;margin-bottom:18px}.modal-topline{display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:var(--muted);font-weight:850;margin-bottom:10px}.modal-head{align-items:flex-start}.modal-kicker{display:block;font-size:8px;letter-spacing:2px;color:var(--muted);font-weight:850;margin-bottom:4px}.modal-head h3{font-size:27px;letter-spacing:-1.5px;margin:0}.modal-close{flex:0 0 auto}.modal .form{gap:13px}.modal .field input,.modal .field textarea,.modal .field select{border-radius:11px}.modal .form-actions{display:flex;gap:8px;margin-top:4px}.modal .form-actions .btn{flex:1}@keyframes modalFade{from{opacity:0}to{opacity:1}}@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
.mobile-fab{transition:transform .28s cubic-bezier(.2,.8,.2,1),border-radius .28s,box-shadow .28s!important}.mobile-fab.open{transform:rotate(45deg)!important;border-radius:17px!important}.mobile-fab.open svg{transform:rotate(-45deg)}
.attendance-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.attendance-calculator{margin-bottom:18px}.attendance-calc-grid{display:grid;grid-template-columns:1fr 220px;gap:12px}.attendance-result{margin-top:14px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface2)}.attendance-result strong{display:block;font-size:22px;letter-spacing:-.8px}.attendance-result span{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:4px}.attendance-row{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding:15px 0}.attendance-row:first-of-type{border-top:0}.attendance-rate{width:150px}.attendance-rate b{display:block;font-size:14px;margin-bottom:6px}.attendance-rate .bar{height:5px}.attendance-rate .bar i{display:block;height:100%;background:var(--lime);border-radius:99px}.attendance-row .icon-btn{flex:0 0 auto}@media(max-width:720px){.attendance-overview{grid-template-columns:1fr}.attendance-calc-grid{grid-template-columns:1fr}.attendance-row{align-items:flex-start;flex-wrap:wrap}.attendance-rate{width:100%;order:3}.attendance-row .icon-btn{margin-left:0}.modal{width:min(560px,calc(100vw - 24px));padding:18px}.modal-head h3{font-size:24px}}
[data-theme=dark] .verify-success{background:#253019;border-color:#405126;color:#d9edaa}

/* v13 — mobile menu open state */
@media(max-width:720px){
  .page-head .actions{gap:12px!important;display:flex!important;flex-wrap:wrap!important;align-items:center!important}
  .mobile-fab.open{transform:rotate(45deg)!important;border-radius:17px!important;box-shadow:0 16px 42px rgba(0,0,0,.3)!important}
  .mobile-fab.open svg{transform:rotate(-45deg)!important}
  .attendance-overview-rich{grid-template-columns:1.25fr 1fr 1fr!important}
  .attendance-hero-metric{position:relative;min-height:150px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--surface2);overflow:hidden}
  .attendance-hero-metric strong{display:block;font-size:42px;letter-spacing:-2.5px;margin:5px 0 4px}
  .attendance-hero-metric small{display:block;color:var(--muted);font-size:10px}
  .attendance-ring{position:absolute;right:18px;top:20px;width:74px;height:74px;border-radius:50%;background:conic-gradient(var(--lime) var(--p),var(--line) 0);display:grid;place-items:center}
  .attendance-ring i{width:54px;height:54px;border-radius:50%;background:var(--surface2);display:block}
  .attendance-live-note{font-size:10px;color:var(--muted)}
  .attendance-result-rich{display:grid;grid-template-columns:1fr;gap:3px;min-height:112px}
  .attendance-projection{display:grid;grid-template-columns:auto auto 1fr;gap:10px;align-items:center;margin-top:13px;padding-top:12px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
  .attendance-projection b{font-size:18px;color:var(--ink)}
  .attendance-projection small{text-align:right}
  .attendance-quick-actions{display:flex;align-items:center;gap:8px;margin-top:12px;min-height:38px}
  .attendance-quick-actions>span{margin-right:auto;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-weight:800}
  .attendance-row-rich{display:grid;grid-template-columns:minmax(170px,1fr) 82px auto auto auto;gap:12px;align-items:center;padding:17px 0}
  .attendance-subject strong,.attendance-subject small{display:block}.attendance-subject small{color:var(--muted);font-size:10px;margin-top:3px}.attendance-bar{height:5px!important;margin-top:9px}.attendance-bar i{display:block;height:100%;background:var(--lime);border-radius:99px}.attendance-rate b{display:block;font-size:16px}.attendance-rate span{display:block;font-size:9px;color:var(--muted);margin-top:3px}.attendance-row-rich.at-risk .attendance-rate b{color:var(--danger)}
  .attendance-quick{display:flex;gap:6px}.attendance-mark{padding:8px 9px!important;font-size:9px!important;white-space:nowrap}
  .attendance-insights-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.attendance-guide-list{display:grid;gap:12px;margin-top:18px}.attendance-guide-list div{display:grid;gap:3px;padding-top:11px;border-top:1px solid var(--line)}.attendance-guide-list b{font-size:11px}.attendance-guide-list span{font-size:10px;color:var(--muted);line-height:1.45}
}
@media(max-width:900px){.attendance-overview-rich{grid-template-columns:1fr 1fr!important}.attendance-row-rich{grid-template-columns:minmax(150px,1fr) 72px auto auto auto}.attendance-quick{display:none}}
@media(max-width:720px){.attendance-overview-rich{grid-template-columns:1fr!important}.attendance-row-rich{grid-template-columns:1fr auto auto;gap:9px}.attendance-rate{grid-column:2;grid-row:1}.attendance-quick{display:flex;grid-column:1/-1;grid-row:2}.attendance-row-rich .icon-btn{grid-row:1}.attendance-insights-grid{grid-template-columns:1fr}.attendance-calc-grid-rich{grid-template-columns:1fr!important}.attendance-projection{grid-template-columns:auto auto;}.attendance-projection small{grid-column:1/-1;text-align:left}}

/* Attendance — editorial dashboard polish */
.attendance-command-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px;margin-bottom:18px}
.attendance-command-card{min-height:230px;border-radius:26px;background:var(--ink);color:#fff;padding:30px;display:flex;justify-content:space-between;align-items:center;gap:22px;overflow:hidden;position:relative}
.attendance-command-card:after{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-95px;top:-70px;box-shadow:0 0 0 38px rgba(169,215,63,.025),0 0 0 76px rgba(169,215,63,.018);pointer-events:none}
.attendance-command-card h2{font-size:58px;line-height:.94;letter-spacing:-4px;margin:13px 0 8px;max-width:460px;position:relative;z-index:1}
.attendance-command-card p{color:#a9aaa2;line-height:1.5;max-width:470px;margin:0;position:relative;z-index:1}
.attendance-command-ring{width:112px;height:112px;flex:0 0 112px;border-radius:50%;background:conic-gradient(var(--lime) var(--p),rgba(255,255,255,.12) 0);display:grid;place-items:center;position:relative;z-index:1}
.attendance-command-ring i{width:84px;height:84px;border-radius:50%;background:var(--ink);display:block;grid-area:1/1}
.attendance-command-ring strong{grid-area:1/1;z-index:2;font-size:22px;letter-spacing:-1px}
.attendance-stat-strip{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:26px;overflow:hidden}
.attendance-stat-strip>div{background:var(--surface);padding:24px;min-height:114px;display:flex;flex-direction:column;justify-content:center}
.attendance-stat-strip span{font-size:9px;text-transform:uppercase;letter-spacing:1.8px;color:#999a92;font-weight:800}
.attendance-stat-strip strong{font-size:34px;letter-spacing:-2px;margin:7px 0 3px}
.attendance-stat-strip small{color:var(--muted);font-size:10px}
.attendance-stat-strip .attention strong{color:var(--danger)}
.attendance-panel-copy{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.5}
.attendance-planner-new{padding:28px;margin-bottom:18px}
.attendance-planner-new .panel-head{margin-bottom:20px}
.attendance-calc-grid-rich{grid-template-columns:minmax(0,1.35fr) minmax(150px,.55fr) minmax(170px,.7fr)}
.attendance-result-rich{background:linear-gradient(135deg,var(--surface2),var(--surface));border-radius:20px;padding:20px;min-height:118px}
.attendance-result-rich>div:first-child strong{font-size:24px;letter-spacing:-1px}
.attendance-projection-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.attendance-projection-grid>div{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.35)}
.attendance-projection-grid span{margin:0;font-size:10px!important;color:var(--muted)}
.attendance-projection-grid b{display:block;font-size:20px;letter-spacing:-1px;margin-top:4px}
.attendance-subject-panel{padding-bottom:10px}
.attendance-subject-list{display:grid}
.attendance-row-rich{grid-template-columns:minmax(220px,1fr) 100px auto auto auto;gap:16px;padding:19px 0}
.attendance-subject-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.attendance-status{font-size:8px;text-transform:uppercase;letter-spacing:1.2px;font-weight:850;padding:5px 7px;border-radius:999px;border:1px solid var(--line)}
.attendance-status.good{background:var(--lime2);border-color:#cde69a;color:#536d1f}
.attendance-status.risk{background:#f8e8e5;border-color:#e7c6c1;color:var(--danger)}
.attendance-status.neutral{color:var(--muted)}
.attendance-history{display:flex;gap:4px;margin-top:9px}
.attendance-history i{width:8px;height:8px;border-radius:2px;display:block;background:#d7d5cc}
.attendance-history i.present{background:var(--lime)}
.attendance-history i.missed{background:#c9877f}
.attendance-rate{text-align:right}
.attendance-rate b{font-size:20px;letter-spacing:-1px}
.attendance-rate span{font-size:9px;line-height:1.35}
.attendance-insights-new{margin-top:14px}
.attendance-guide h3,.math-note h3{margin-bottom:5px}
@media(max-width:1000px){.attendance-command-grid{grid-template-columns:1fr}.attendance-row-rich{grid-template-columns:minmax(180px,1fr) 82px auto auto auto}}
@media(max-width:720px){.attendance-command-card{min-height:190px;padding:22px}.attendance-command-card h2{font-size:43px;letter-spacing:-3px}.attendance-command-ring{width:82px;height:82px;flex-basis:82px}.attendance-command-ring i{width:62px;height:62px}.attendance-command-ring strong{font-size:17px}.attendance-stat-strip{grid-template-columns:1fr 1fr}.attendance-stat-strip>div{min-height:100px;padding:18px}.attendance-stat-strip strong{font-size:27px}.attendance-row-rich{grid-template-columns:1fr auto auto;gap:10px}.attendance-subject{grid-column:1/-1}.attendance-rate{grid-column:2;grid-row:1;text-align:right}.attendance-quick{grid-column:1/-1;grid-row:2;display:flex}.attendance-row-rich .icon-btn{grid-row:1}.attendance-calc-grid-rich{grid-template-columns:1fr!important}.attendance-projection-grid{grid-template-columns:1fr 1fr}.attendance-command-card p{font-size:11px}.attendance-planner-new{padding:20px}}
@media(max-width:430px){.attendance-command-card{align-items:flex-start}.attendance-command-ring{display:none}.attendance-stat-strip>div{min-height:92px}.attendance-stat-strip strong{font-size:24px}.attendance-projection-grid{grid-template-columns:1fr}.attendance-mark{flex:1}.attendance-rate span{font-size:8px}}

/* v15 — attendance dashboard redesign */
.attendance-hero-v2{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:14px;margin-bottom:14px}
.attendance-hero-main{min-height:310px;border-radius:28px;background:var(--ink);color:#fff;padding:32px;display:flex;justify-content:space-between;align-items:center;gap:28px;position:relative;overflow:hidden}
.attendance-hero-main:before,.attendance-hero-main:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%;pointer-events:none}.attendance-hero-main:before{width:360px;height:360px;right:-140px;top:-120px}.attendance-hero-main:after{width:520px;height:520px;right:-220px;top:-200px}
.attendance-hero-copy{position:relative;z-index:1;max-width:620px}.attendance-hero-copy h2{font-size:70px;line-height:.9;letter-spacing:-5px;margin:15px 0 12px}.attendance-hero-copy p{color:#a9aaa2;max-width:520px;line-height:1.55;margin:0}.attendance-hero-actions{display:flex;gap:9px;margin-top:25px;flex-wrap:wrap}.attendance-scroll-btn{background:rgba(255,255,255,.08)!important;color:#fff!important;border-color:rgba(255,255,255,.14)!important}
.attendance-hero-ring{width:138px;height:138px;flex:0 0 138px;border-radius:50%;background:conic-gradient(var(--lime) var(--p),rgba(255,255,255,.11) 0);display:grid;place-items:center;position:relative;z-index:1}.attendance-hero-ring i{width:104px;height:104px;border-radius:50%;background:var(--ink);grid-area:1/1}.attendance-hero-ring strong{grid-area:1/1;z-index:2;font-size:26px;letter-spacing:-1px}.attendance-hero-ring small{grid-area:1/1;z-index:2;align-self:end;margin-bottom:25px;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;color:#a9aaa2}
.attendance-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:28px;overflow:hidden}.attendance-kpi-grid>div{background:var(--surface);padding:23px;min-height:154px;display:flex;flex-direction:column;justify-content:center}.attendance-kpi-grid span{font-size:9px;text-transform:uppercase;letter-spacing:1.8px;color:#999a92;font-weight:800}.attendance-kpi-grid strong{font-size:36px;letter-spacing:-2px;margin:8px 0 4px}.attendance-kpi-grid small{font-size:10px;color:var(--muted)}.attendance-kpi-grid .attention strong{color:var(--danger)}
.attendance-command-v2{border:1px solid var(--line);background:var(--surface);border-radius:26px;padding:25px 28px;margin-bottom:14px}.attendance-command-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.attendance-command-head h3{margin:5px 0 4px}.attendance-command-head p{font-size:11px;color:var(--muted);margin:0;line-height:1.5}.attendance-streak{min-width:90px;text-align:right}.attendance-streak strong{display:block;font-size:32px;letter-spacing:-2px}.attendance-streak span{font-size:8px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted)}
.attendance-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:22px}.attendance-day{min-width:0;border:1px solid var(--line);border-radius:16px;padding:11px;background:var(--surface2)}.attendance-day-top{display:flex;justify-content:space-between;align-items:center}.attendance-day-top span{font-size:9px;font-weight:800}.attendance-day-top small{font-size:8px;color:var(--muted)}.attendance-day-dots{min-height:28px;display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:8px 0}.attendance-day-dots i{width:8px;height:8px;border-radius:50%;background:#d9d7ce}.attendance-day-dots i.present{background:var(--lime)}.attendance-day-dots i.missed{background:#c8877f}.attendance-day-dots i.empty{opacity:.35}.attendance-day>small{font-size:8px;color:var(--muted)}
.attendance-planner-v2{padding:28px;margin-bottom:14px}.attendance-live-pill{border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);white-space:nowrap}.attendance-calc-v2{display:grid;grid-template-columns:minmax(0,1.25fr) .5fr .65fr;gap:10px;margin-top:22px}.attendance-result-v2{margin-top:14px;padding:20px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,var(--surface2),var(--surface));min-height:155px}.attendance-result-empty{display:flex;min-height:112px;justify-content:center;align-items:flex-start;flex-direction:column}.attendance-result-empty strong{font-size:23px;letter-spacing:-1px}.attendance-result-empty span{font-size:11px;color:var(--muted);line-height:1.5;margin-top:5px}.attendance-result-top{display:flex;justify-content:space-between;gap:20px}.attendance-result-top strong{display:block;font-size:25px;letter-spacing:-1px;margin-top:5px}.attendance-result-top p{font-size:11px;color:var(--muted);margin:6px 0 0;line-height:1.5}.attendance-current-rate{text-align:right}.attendance-current-rate span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:1.2px}.attendance-current-rate b{display:block;font-size:28px;letter-spacing:-1.5px;margin-top:4px}.attendance-projection-grid-v2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.attendance-projection-grid-v2>div{border:1px solid var(--line);border-radius:14px;padding:12px 14px}.attendance-projection-grid-v2 span{display:block;font-size:9px;color:var(--muted)}.attendance-projection-grid-v2 b{display:block;font-size:21px;letter-spacing:-1px;margin-top:3px}.attendance-projection-grid-v2 small{font-size:8px;color:var(--muted)}.attendance-quick-v2{display:flex;align-items:center;gap:7px;margin-top:12px}.attendance-quick-v2>span{font-size:8px;letter-spacing:1.4px;font-weight:800;color:var(--muted);margin-right:auto}.attendance-undo{margin-left:3px}
.attendance-subject-panel-v2{padding:28px;margin-bottom:14px}.attendance-subject-list-v2{display:grid}.attendance-card-v2{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:20px;align-items:center;border-top:1px solid var(--line);padding:21px 0}.attendance-card-main{min-width:0}.attendance-card-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.attendance-card-title strong{font-size:15px}.attendance-subject-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#c7c5bc}.attendance-subject-dot.good{background:var(--lime)}.attendance-subject-dot.watch{background:#d5ae59}.attendance-subject-dot.risk{background:var(--danger)}.attendance-card-meta{display:flex;gap:10px;flex-wrap:wrap;margin:7px 0 10px}.attendance-card-meta span{font-size:9px;color:var(--muted)}.attendance-card-meta span+span{border-left:1px solid var(--line);padding-left:10px}.attendance-track{height:7px;background:var(--line);border-radius:999px;position:relative;overflow:visible}.attendance-track i{display:block;height:100%;background:var(--lime);border-radius:999px;max-width:100%}.attendance-card-v2.at-risk .attendance-track i{background:var(--danger)}.attendance-track b{position:absolute;top:-2px;width:3px;height:11px;background:var(--ink);border-radius:2px;transform:translateX(-1px)}.attendance-history-v2{display:flex;gap:4px;margin-top:10px;align-items:center;min-height:8px}.attendance-history-v2 i{width:7px;height:7px;border-radius:2px;background:#d6d4cb}.attendance-history-v2 i.present{background:var(--lime)}.attendance-history-v2 i.missed{background:#c8877f}.attendance-history-v2 span{font-size:8px;color:var(--muted)}.attendance-card-rate{text-align:right}.attendance-card-rate strong{display:block;font-size:25px;letter-spacing:-1.3px}.attendance-card-rate small{display:block;font-size:8px;color:var(--muted);line-height:1.4;margin-top:3px}.attendance-card-v2.at-risk .attendance-card-rate strong{color:var(--danger)}.attendance-card-actions{display:flex;gap:6px;align-items:center}.attendance-card-actions .attendance-mark{padding:9px 11px!important;font-size:9px!important;white-space:nowrap}
.attendance-add-area[hidden]{display:none}.attendance-add-card,.attendance-inline-edit{border:1px solid var(--line);border-radius:20px;background:var(--surface2);padding:20px;margin:0 0 18px}.attendance-add-card>div:first-child h3,.attendance-inline-edit h3{margin:5px 0 4px}.attendance-add-card>div:first-child p{font-size:10px;color:var(--muted);margin:0 0 18px}.attendance-add-form{margin-top:12px}.attendance-add-fields{display:grid;grid-template-columns:1.4fr .7fr .7fr;gap:10px}.attendance-add-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.attendance-inline-edit .attendance-edit-form{margin-top:18px}
.attendance-bottom-grid-v2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}.attendance-decision-card,.attendance-method-card{padding:25px}.attendance-decision-card h3,.attendance-method-card h3{margin:5px 0}.attendance-focus-list{display:grid;gap:0;margin-top:17px}.attendance-focus-list>div{padding:12px 0;border-top:1px solid var(--line);display:grid;gap:3px}.attendance-focus-list b{font-size:11px}.attendance-focus-list span{font-size:9px;color:var(--muted);line-height:1.5}.attendance-formula{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:13px 0}.attendance-formula span{font-size:9px;color:var(--muted)}.attendance-formula strong{text-align:right;font-size:10px;max-width:250px}
@media(max-width:1000px){.attendance-hero-v2{grid-template-columns:1fr}.attendance-kpi-grid{grid-template-columns:repeat(4,1fr)}.attendance-card-v2{grid-template-columns:minmax(0,1fr) 82px}.attendance-card-actions{grid-column:1/-1}.attendance-bottom-grid-v2{grid-template-columns:1fr}.attendance-calc-v2{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:720px){.attendance-hero-main{min-height:270px;padding:24px;border-radius:23px}.attendance-hero-copy h2{font-size:51px;letter-spacing:-3.5px}.attendance-hero-ring{width:92px;height:92px;flex-basis:92px}.attendance-hero-ring i{width:68px;height:68px}.attendance-hero-ring strong{font-size:18px}.attendance-hero-ring small{margin-bottom:17px;font-size:6px}.attendance-kpi-grid{grid-template-columns:1fr 1fr;border-radius:23px}.attendance-kpi-grid>div{min-height:105px;padding:17px}.attendance-kpi-grid strong{font-size:27px}.attendance-command-v2,.attendance-planner-v2,.attendance-subject-panel-v2{padding:20px;border-radius:21px}.attendance-week-grid{grid-template-columns:repeat(7,minmax(42px,1fr));overflow-x:auto;padding-bottom:3px}.attendance-day{padding:9px}.attendance-calc-v2{grid-template-columns:1fr}.attendance-result-top{flex-direction:column}.attendance-current-rate{text-align:left}.attendance-projection-grid-v2{grid-template-columns:1fr}.attendance-quick-v2{flex-wrap:wrap}.attendance-quick-v2>span{width:100%;margin-bottom:2px}.attendance-card-v2{grid-template-columns:1fr;gap:11px}.attendance-card-rate{text-align:left}.attendance-card-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr auto auto}.attendance-card-actions .attendance-mark{width:100%}.attendance-add-fields{grid-template-columns:1fr}.attendance-add-actions{justify-content:stretch}.attendance-add-actions .btn{flex:1}.attendance-hero-actions .btn{flex:1}.attendance-bottom-grid-v2{gap:10px}}
@media(max-width:430px){.attendance-hero-main{align-items:flex-start}.attendance-hero-ring{display:none}.attendance-hero-copy h2{font-size:46px}.attendance-week-grid{grid-template-columns:repeat(7,72px)}.attendance-card-actions{grid-template-columns:1fr 1fr 42px 42px}}

/* Phase 4 connected academic layer */
.academic-cockpit{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;border:1px solid var(--line);background:var(--surface);border-radius:28px;padding:28px;margin-bottom:14px}.academic-cockpit h2{margin:5px 0 4px;font-size:30px;letter-spacing:-1.6px}.academic-cockpit p{margin:0;color:var(--muted);font-size:11px}.academic-cockpit-metrics{display:grid;grid-template-columns:repeat(3,110px);gap:1px;border:1px solid var(--line);background:var(--line);border-radius:16px;overflow:hidden}.academic-cockpit-metrics div{background:var(--surface2);padding:14px}.academic-cockpit-metrics strong{display:block;font-size:24px;letter-spacing:-1px}.academic-cockpit-metrics span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.subject-card{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:22px;padding:21px;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.subject-card:hover{transform:translateY(-2px);border-color:var(--ink)}.subject-card-top{display:flex;justify-content:space-between;align-items:center}.subject-card-top b{font-size:9px;padding:5px 7px;border:1px solid var(--line);border-radius:999px}.subject-card h3{margin:12px 0 14px;font-size:17px;letter-spacing:-.6px}.subject-card-stats{display:flex;gap:12px;margin-bottom:10px}.subject-card-stats span{font-size:9px;color:var(--muted)}.subject-card .bar{height:6px;background:var(--line);border-radius:99px;overflow:hidden}.subject-card .bar i{display:block;height:100%;background:var(--lime);border-radius:99px}.subject-card small{display:block;color:var(--muted);font-size:8px;margin-top:10px}.subject-detail{padding:28px}.subject-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden;margin:18px 0}.subject-detail-grid>div{background:var(--surface2);padding:17px}.subject-detail-grid span,.subject-detail-grid small{display:block;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.subject-detail-grid strong{display:block;font-size:25px;letter-spacing:-1px;margin:5px 0}.subject-detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.subject-detail-columns>section{border:1px solid var(--line);border-radius:18px;padding:18px;background:var(--surface)}.subject-detail-columns h4{margin:4px 0}.syllabus-list,.journal-list{margin-top:12px}.syllabus-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:10px}.syllabus-row.done span{text-decoration:line-through;color:var(--muted)}.journal-row{border-top:1px solid var(--line);padding:11px 0}.journal-row strong{font-size:10px}.journal-row small{display:block;color:var(--muted);font-size:8px;margin-top:3px}.journal-row p{font-size:9px;line-height:1.5;margin:7px 0 0;color:var(--muted)}.subject-detail-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.planner-smart{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;padding:24px;margin-bottom:14px}.planner-smart h3{margin:5px 0}.planner-smart p{font-size:10px;color:var(--muted);line-height:1.5}.planner-smart-list{border-left:1px solid var(--line);padding-left:20px}.planner-smart-list .signal-row{border-top:0}.empty-state.compact{padding:18px}.empty-state.compact strong{font-size:12px}.empty-state.compact p{font-size:9px}
@media(max-width:1000px){.subject-grid{grid-template-columns:repeat(2,1fr)}.academic-cockpit{grid-template-columns:1fr}.planner-smart{grid-template-columns:1fr}.planner-smart-list{border-left:0;border-top:1px solid var(--line);padding:12px 0 0}.subject-detail-columns{grid-template-columns:1fr}}
@media(max-width:720px){.academic-cockpit{padding:20px;border-radius:21px}.academic-cockpit-metrics{grid-template-columns:repeat(3,1fr);width:100%}.academic-cockpit-metrics div{padding:11px}.academic-cockpit-metrics strong{font-size:19px}.subject-grid{grid-template-columns:1fr}.subject-card{border-radius:19px;padding:18px}.subject-detail{padding:20px}.subject-detail-grid{grid-template-columns:1fr}.subject-detail-actions{justify-content:stretch}.subject-detail-actions .btn{flex:1}}


/* v18.1 — interaction polish and note cards */
.modal-backdrop{opacity:1;transition:opacity .16s ease}.modal-backdrop.closing{opacity:0}.modal{transition:transform .16s ease,opacity .16s ease}.modal-backdrop.closing .modal{opacity:0;transform:translateY(6px) scale(.99)}
.modal-close:hover,.icon-btn:hover{transform:translateY(-1px) scale(1.02);border-color:var(--lime);background:var(--surface2)}
.form-actions .btn{transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}.form-actions .btn:hover{box-shadow:0 8px 22px rgba(20,20,15,.08)}
.note-card{position:relative;border:1px solid transparent;border-top:1px solid var(--line);padding:19px 14px 17px;margin:0 -14px;border-radius:16px;cursor:pointer;transition:transform .22s cubic-bezier(.2,.8,.2,1),background .22s ease,border-color .22s ease,box-shadow .22s ease}.note-card:hover,.note-card:focus-visible{transform:translateY(-2px);background:var(--surface2);border-color:var(--line);box-shadow:0 12px 34px rgba(20,20,15,.07);outline:none}.note-card:focus-visible{box-shadow:0 0 0 3px rgba(169,215,63,.18),0 12px 34px rgba(20,20,15,.07)}.note-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.note-title-wrap{display:flex;align-items:center;gap:9px;min-width:0}.note-title-wrap strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-accent{width:5px;height:24px;border-radius:999px;background:var(--lime);flex:0 0 auto;opacity:.8}.note-card p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:11px 0 0}.note-card .text-button{padding:7px 9px;border-radius:9px;transition:background .18s ease,color .18s ease,transform .18s ease}.note-card .text-button:hover{background:var(--lime2);color:var(--ink);transform:translateX(1px)}.note-footer{gap:12px}.note-footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme=dark] .note-card:hover,[data-theme=dark] .note-card:focus-visible{background:#1d201b;box-shadow:0 16px 42px rgba(0,0,0,.28)}[data-theme=dark] .note-card .text-button:hover{background:#2c3c1b;color:var(--ink)}
@media(max-width:720px){.note-card{margin:0 -8px;padding:17px 10px}.note-card p{-webkit-line-clamp:4}}

/* AI workspace surface */
.ai-panel{margin-top:18px}
.ai-panel .panel-head p{max-width:680px}
.ai-thread{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow:auto;padding:4px 2px 12px}
.ai-message{max-width:min(820px,92%);padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2,#f7f5ef)}
.ai-message-user{align-self:flex-end;background:var(--ink);color:var(--paper,#fff)}
.ai-message-assistant{align-self:flex-start}
.ai-message-error{align-self:flex-start;border-color:#d6a6a6;background:#fff6f6}
.ai-message strong{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}
.ai-message p{margin:0;line-height:1.6;white-space:normal}
.ai-form{display:flex;gap:10px;align-items:flex-end;border-top:1px solid var(--line);padding-top:14px}
.ai-form textarea{flex:1;min-height:62px;resize:vertical;border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff);color:inherit;padding:12px 14px;font:inherit;outline:none}
.ai-form textarea:focus{border-color:currentColor;box-shadow:0 0 0 3px rgba(0,0,0,.05)}
.ai-form button{white-space:nowrap}
.ai-status{min-height:18px;margin-top:8px;font-size:11px;color:var(--muted,#777)}
@media(max-width:700px){.ai-form{flex-direction:column;align-items:stretch}.ai-form button{width:100%}.ai-message{max-width:96%}}


/* Zevuna AI — dedicated, polished surface */
.brand-full{display:inline}.brand-collapsed{display:none!important}
body.sidebar-collapsed .sidebar .brand-full{display:none!important}
body.sidebar-collapsed .sidebar .brand-collapsed{display:inline!important}
.ai-panel{overflow:hidden;background:var(--surface);border-color:var(--line);box-shadow:0 18px 60px rgba(20,20,15,.055)}
.ai-panel-head{align-items:flex-start;margin-bottom:12px}.ai-panel-head h3{font-size:30px}.ai-panel-head p{color:var(--muted);margin:7px 0 0;line-height:1.55}
.ai-note{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--surface2);color:var(--muted);border-radius:12px;padding:10px 12px;font-size:10px;line-height:1.45;margin-bottom:14px}.ai-note-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px color-mix(in srgb,var(--lime) 15%,transparent)}
.ai-thread{display:flex;flex-direction:column;gap:14px;max-height:540px;overflow:auto;padding:4px 2px 16px;scroll-behavior:smooth}
.ai-message{display:flex;gap:10px;align-items:flex-start;max-width:min(900px,92%);padding:0;border:0;background:transparent!important;color:var(--ink)}
.ai-message-user{align-self:flex-end;flex-direction:row-reverse}
.ai-avatar{width:30px;height:30px;flex:0 0 30px;border-radius:10px;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:9px;font-weight:850;letter-spacing:.3px;margin-top:2px}.ai-message-user .ai-avatar{background:var(--lime);color:#171816}
.ai-message-body{min-width:0;border:1px solid var(--line);background:var(--surface2);border-radius:18px;padding:13px 15px;box-shadow:0 7px 24px rgba(20,20,15,.035)}
.ai-message-user .ai-message-body{background:var(--ink);color:#fff;border-color:var(--ink);border-bottom-right-radius:6px}.ai-message-assistant .ai-message-body{border-bottom-left-radius:6px}
.ai-role{display:block;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted);margin-bottom:7px}.ai-message-user .ai-role{color:#bfc2b8}.ai-copy{font-size:13px;line-height:1.7}.ai-copy p{margin:0 0 10px}.ai-copy p:last-child{margin-bottom:0}.ai-copy h4{margin:0 0 9px;font-size:15px;letter-spacing:-.3px}.ai-copy ul,.ai-copy ol{margin:7px 0 10px;padding-left:20px}.ai-copy li{margin:5px 0}.ai-copy code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:rgba(120,120,110,.12);border:1px solid rgba(120,120,110,.12);border-radius:6px;padding:2px 5px}.ai-message-user .ai-copy code{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.1)}.ai-math{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:2px 6px}
.ai-form{display:flex;gap:10px;align-items:flex-end;border-top:1px solid var(--line);padding-top:15px}.ai-form textarea{flex:1;min-height:64px;resize:vertical;border:1px solid var(--line);border-radius:16px;background:var(--surface2);color:var(--ink);padding:13px 15px;font:inherit;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}.ai-form textarea::placeholder{color:#9a9b93}.ai-form textarea:focus{border-color:var(--lime);box-shadow:0 0 0 3px rgba(169,215,63,.14);background:var(--surface)}.ai-form button{white-space:nowrap;height:46px}.ai-status{min-height:18px;margin-top:8px;font-size:10px;color:var(--muted)}
.ai-hero{display:grid;grid-template-columns:1fr 310px;gap:28px;align-items:center;padding:34px 36px;margin-bottom:18px;border:1px solid var(--line);border-radius:30px;background:linear-gradient(135deg,var(--surface),var(--surface2));overflow:hidden;position:relative}.ai-hero:after{content:'';position:absolute;width:360px;height:360px;border:1px solid color-mix(in srgb,var(--lime) 24%,transparent);border-radius:50%;right:-150px;top:-160px;box-shadow:0 0 0 45px color-mix(in srgb,var(--lime) 6%,transparent),0 0 0 90px color-mix(in srgb,var(--lime) 3%,transparent)}.ai-hero h2{font-size:58px;line-height:.94;letter-spacing:-3.7px;margin:12px 0}.ai-hero h2 em{font-family:Georgia,serif;font-weight:400;color:#87ad22}.ai-hero p{max-width:680px;color:var(--muted);line-height:1.65;margin:0}.ai-hero-orbit{height:250px;position:relative;display:grid;place-items:center;z-index:1}.ai-hero-orbit:before,.ai-hero-orbit:after{content:'';position:absolute;border:1px solid var(--line);border-radius:50%;width:170px;height:170px}.ai-hero-orbit:after{width:230px;height:230px;border-style:dashed}.ai-hero-orbit b{width:72px;height:72px;border-radius:22px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:22px;letter-spacing:-1px;box-shadow:0 18px 40px rgba(20,20,15,.12);z-index:2}.ai-hero-orbit span{position:absolute;font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);background:var(--surface);border:1px solid var(--line);padding:7px 9px;border-radius:999px}.ai-hero-orbit span:nth-child(1){transform:translateY(-112px)}.ai-hero-orbit span:nth-child(2){transform:translateX(112px)}.ai-hero-orbit span:nth-child(3){transform:translateY(112px)}.ai-hero-orbit span:nth-child(4){transform:translateX(-112px)}
.ai-message-error .ai-message-body{border-color:#d6a6a6;background:#fff6f6!important}.ai-message-error .ai-role{color:#a94d45}
[data-theme=dark] .ai-panel{background:#151714;border-color:#32362d;box-shadow:0 22px 70px rgba(0,0,0,.25)}
[data-theme=dark] .ai-note{background:#1d201b;border-color:#32362d;color:#a7aaa0}
[data-theme=dark] .ai-message{color:#f3f4ee}
[data-theme=dark] .ai-message-body{background:#1d201b;border-color:#34382f;box-shadow:0 10px 30px rgba(0,0,0,.18)}
[data-theme=dark] .ai-message-user .ai-message-body{background:#f0f1ea;color:#11130f;border-color:#f0f1ea}
[data-theme=dark] .ai-message-user .ai-role{color:#696b64}
[data-theme=dark] .ai-message-user .ai-avatar{background:var(--lime);color:#11130f}
[data-theme=dark] .ai-form textarea{background:#1b1e19;border-color:#383b33;color:#f3f4ee}
[data-theme=dark] .ai-form textarea:focus{background:#20231d}
[data-theme=dark] .ai-hero{background:linear-gradient(135deg,#151714,#1d201b);border-color:#32362d}
[data-theme=dark] .ai-hero-orbit span{background:#151714;border-color:#34382f}
[data-theme=dark] .ai-message-error .ai-message-body{background:#2a1c1a!important;border-color:#66332f}
.footer-credits{display:flex;flex-direction:column;gap:6px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.footer-credits a{font-weight:750;color:var(--ink);text-decoration:underline;text-underline-offset:3px}.coffee-icon{font-size:11px}.app-footer-brand>strong{letter-spacing:-1.2px}
[data-theme=dark] .footer-credits{border-color:var(--line)}[data-theme=dark] .footer-credits a{color:var(--ink)}
@media(max-width:900px){.ai-hero{grid-template-columns:1fr}.ai-hero-orbit{height:220px}.ai-hero h2{font-size:48px}}
@media(max-width:720px){.ai-panel-head{align-items:flex-start}.ai-panel-head h3{font-size:24px}.ai-message{max-width:97%}.ai-form{flex-direction:column;align-items:stretch}.ai-form button{width:100%}.ai-hero{padding:24px 20px;border-radius:22px}.ai-hero h2{font-size:42px;letter-spacing:-2.5px}.ai-hero-orbit{height:200px}.footer-credits{font-size:9px}}

/* Final Zevuna AI polish */
.brand-ai .brand-ai-suffix{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:950;letter-spacing:-1.4px;margin-left:2px;position:relative}
.brand-ai .brand-ai-suffix::after{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--lime);margin-left:4px;vertical-align:middle;box-shadow:0 0 0 3px color-mix(in srgb,var(--lime) 14%,transparent)}
.ai-note{order:3;justify-content:center;border:0!important;background:transparent!important;padding:2px 0 0!important;margin:7px auto 0!important;font-size:9px!important;line-height:1.4!important;max-width:100%;text-align:center;box-shadow:none!important}
.ai-note-dot{width:5px;height:5px;flex:0 0 5px;box-shadow:none!important}
.ai-form{order:2}
.ai-thread{order:1}
.ai-status{order:4;text-align:center;margin-top:5px}
.ai-panel{display:flex;flex-direction:column}
.ai-avatar-ai{background:transparent!important;border:0!important;color:var(--ink)!important}
.ai-avatar-mark{display:flex;align-items:center;gap:3px}
.ai-avatar-mark i{width:7px;height:7px;border-radius:50%;display:block;background:#171816}
.ai-avatar-mark i+ i{background:var(--lime)}
.ai-message-assistant .ai-avatar{box-shadow:none}
.ai-copy h4{margin:2px 0 9px;font-size:16px;line-height:1.25}
.ai-copy p{line-height:1.7}
.ai-copy ul,.ai-copy ol{line-height:1.65}
.ai-copy li+li{margin-top:7px}
.ai-copy pre{margin:10px 0;padding:12px 14px;overflow:auto;border-radius:12px;background:#11120f;color:#f2f2ed;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}
.ai-copy pre code{background:none;border:0;padding:0;color:inherit}
.app-footer-bottom{display:grid!important;grid-template-columns:1fr auto 1fr;align-items:center}
.app-footer-bottom>span:nth-child(2){text-align:center}
.app-footer-bottom>span:last-child{text-align:right}
.app-footer-bottom a{font-weight:750;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
[data-theme=dark] .app-footer-bottom a{color:var(--ink)}
[data-theme=dark] .ai-avatar-mark i:first-child{background:#f2f2ed}
[data-theme=dark] .ai-avatar-mark i+ i{background:var(--lime)}
@media(max-width:720px){.app-footer-bottom{grid-template-columns:1fr!important;gap:8px;text-align:center}.app-footer-bottom>span,.app-footer-bottom>span:last-child,.app-footer-bottom>span:nth-child(2){text-align:center}.ai-note{font-size:8.5px!important}}

/* AI quota + polished chat */
.ai-quota{display:flex;align-items:center;justify-content:center;gap:8px;margin:4px 0 8px;text-align:center;color:var(--muted);font-size:10px;line-height:1.45;min-height:20px}
.ai-quota-dot{width:6px;height:6px;border-radius:50%;background:var(--lime);flex:0 0 6px;box-shadow:0 0 0 4px color-mix(in srgb,var(--lime) 12%,transparent)}
.ai-quota[hidden]{display:none}
.ai-avatar-ai{background:transparent!important;border:0!important;color:var(--ink)!important}
.ai-avatar-mark{display:flex;align-items:center;gap:3px}
.ai-avatar-mark i{width:7px;height:7px;border-radius:50%;display:block;background:#171816}
.ai-avatar-mark i+i{background:var(--lime)}
.ai-user-dot{font-size:8px;font-weight:850;letter-spacing:.2px}
.ai-core-mark{display:inline-flex;gap:3px;align-items:center;margin-right:5px}
.ai-core-mark i{display:block;width:6px;height:6px;border-radius:50%;background:#fff}.ai-core-mark i+i{background:var(--lime)}
.ai-hero-orbit b em{font-style:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:18px;letter-spacing:-1px}
.ai-table-wrap{overflow:auto;margin:10px 0;border:1px solid var(--line);border-radius:12px}.ai-copy table{border-collapse:collapse;width:100%;font-size:12px}.ai-copy th,.ai-copy td{padding:9px 11px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.ai-copy th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--surface)}.ai-copy tr:last-child td{border-bottom:0}
.ai-message-error .ai-error-avatar{background:var(--surface2);color:var(--ink);border:1px solid var(--line)}
[data-theme=dark] .ai-avatar-mark i:first-child{background:#f2f2ed}.ai-note{order:3!important}.ai-form{order:2!important}.ai-thread{order:1!important}.ai-quota{order:2}.ai-form{order:3!important}.ai-note{order:4!important}.ai-status{order:5!important}
[data-theme=dark] .ai-quota{color:#9fa39a}
@media(max-width:720px){.ai-quota{font-size:9px}.ai-copy th,.ai-copy td{padding:8px}}
/* v14 — scroll-safe keyboard shortcuts modal */
.shortcuts-modal{width:min(660px,calc(100vw - 24px));max-height:min(760px,calc(100vh - 24px));display:flex;flex-direction:column;min-height:0}
.shortcuts-modal .shortcut-scroll{min-height:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-right:5px;margin-right:-3px;scrollbar-width:thin}
.shortcuts-modal .shortcut-list{display:grid;gap:0}
.shortcuts-modal .shortcut-scroll::-webkit-scrollbar{width:8px}
.shortcuts-modal .shortcut-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.shortcuts-modal .modal-note{flex:0 0 auto}
@media(max-width:720px){.shortcuts-modal{max-height:calc(100vh - 16px);width:calc(100vw - 16px)}.shortcuts-modal .shortcut-scroll{padding-right:3px}}

.shortcuts-modal .modal-topline,.shortcuts-modal .modal-head{flex:0 0 auto}.shortcuts-modal .modal-head{display:flex;justify-content:space-between}.shortcuts-modal .shortcut-scroll{margin-top:8px}

/* v7 onboarding — guided first-run workspace */
.onboarding{position:relative;z-index:1}
.onboard-top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}
.onboard-top .setup-progress{margin:0}
.onboard-skip{border:0;background:transparent;color:var(--muted);font-size:10px;font-weight:800;padding:7px 0;cursor:pointer}
.onboard-skip:hover{color:var(--ink)}
.onboard-hero{max-width:760px;margin-bottom:32px}
.onboard-hero h1{font-size:56px;line-height:.96;letter-spacing:-3px;margin:12px 0 12px}
.onboard-hero p{color:var(--muted);font-size:14px;line-height:1.6;max-width:690px}
.onboard-content{min-height:300px;border-top:1px solid var(--line);padding-top:26px}
.onboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.onboard-grid .field:first-child{grid-column:1/-1}
.onboard-block{border:1px solid var(--line);border-radius:18px;padding:18px;background:var(--surface2);margin-bottom:14px}
.onboard-block-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}
.onboard-block-head h3{font-size:18px;letter-spacing:-.7px;margin:5px 0 0}
.onboard-row{display:grid;grid-template-columns:1fr 150px 40px;gap:8px;margin-bottom:8px}
.task-onboard-row{grid-template-columns:1fr 130px 150px 40px}
.onboard-row input,.onboard-row select{min-width:0}
.onboard-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:20px;margin-top:26px}
.onboard-actions>div{display:flex;align-items:center;gap:15px}
.onboard-hint{font-size:10px;color:var(--muted)}
.onboard-summary{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface2)}
.onboard-summary>div{padding:16px 18px;border-bottom:1px solid var(--line)}
.onboard-summary>div:nth-child(odd){border-right:1px solid var(--line)}
.onboard-summary>div:nth-last-child(-n+2){border-bottom:0}
.onboard-summary span,.onboard-summary strong{display:block}
.onboard-summary span{font-size:9px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);font-weight:800;margin-bottom:6px}
.onboard-summary strong{font-size:13px;line-height:1.45;word-break:break-word}
.onboard-trust{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:16px 18px;border-radius:16px;background:rgba(169,215,63,.08);border:1px solid rgba(169,215,63,.18)}
.onboard-trust strong{font-size:12px}
.onboard-trust p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.5}
.onboard-dot{width:8px;height:8px;flex:0 0 8px;margin-top:4px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(169,215,63,.12)}
.setup-progress i.done{background:var(--lime);opacity:.55}
[data-theme=dark] .onboard-block{background:#191b17}
[data-theme=dark] .onboard-trust{background:rgba(185,227,79,.06);border-color:rgba(185,227,79,.15)}
@media(max-width:720px){
  .onboard-hero h1{font-size:42px;letter-spacing:-2px}
  .onboard-grid{grid-template-columns:1fr}
  .onboard-grid .field:first-child{grid-column:auto}
  .onboard-content{min-height:0}
  .onboard-row,.task-onboard-row{grid-template-columns:1fr 1fr}
  .onboard-row .icon-btn{grid-column:2;justify-self:end}
  .onboard-actions{align-items:flex-start;flex-direction:column}
  .onboard-actions>div{width:100%;justify-content:space-between}
  .onboard-summary{grid-template-columns:1fr}
  .onboard-summary>div,.onboard-summary>div:nth-child(odd),.onboard-summary>div:nth-last-child(-n+2){border-right:0;border-bottom:1px solid var(--line)}
  .onboard-summary>div:last-child{border-bottom:0}
}

/* v2.2 final stability pass */
.modal.docs-modal,.modal.shortcuts-modal{width:min(660px,calc(100vw - 24px));max-height:min(760px,calc(100vh - 24px));min-height:0;overflow:hidden;display:flex;flex-direction:column}
.modal.docs-modal .docs,.modal.shortcuts-modal .shortcut-scroll{min-height:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-right:6px;scrollbar-width:thin}
.modal.docs-modal .docs::-webkit-scrollbar,.modal.shortcuts-modal .shortcut-scroll::-webkit-scrollbar{width:8px}.modal.docs-modal .docs::-webkit-scrollbar-thumb,.modal.shortcuts-modal .shortcut-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.modal.docs-modal .modal-head,.modal.shortcuts-modal .modal-head,.modal.docs-modal .modal-topline,.modal.shortcuts-modal .modal-topline{flex:0 0 auto}
.modal.docs-modal .modal-note,.modal.shortcuts-modal .modal-note{flex:0 0 auto}
.confirm-modal .confirm-copy p{margin:0;color:var(--muted);line-height:1.65}.confirm-actions{justify-content:flex-end}.confirm-actions .btn{min-width:120px}
.cal-cell,.cal-day-number{color:var(--ink)!important}.cal-cell>span{color:var(--ink)!important}.cal-cell.today>span{background:var(--ink)!important;color:var(--bg)!important}.cal-cell small{color:var(--muted)!important}
.check.done{background:var(--ink)!important;color:var(--bg)!important;border-color:var(--ink)!important}.check.done::first-letter{color:var(--bg)}
[data-theme=dark] .ai-message-assistant .ai-message-body,[data-theme=dark] .ai-message-assistant .ai-copy,[data-theme=dark] .ai-message-assistant .ai-copy p,[data-theme=dark] .ai-message-assistant .ai-copy h4,[data-theme=dark] .ai-message-assistant .ai-copy li{color:#f3f4ee}.ai-copy{color:inherit}.ai-copy strong,.ai-copy em{color:inherit}
[data-theme=dark] .ai-message-assistant .ai-role{color:#a7aaa0}.ai-message-assistant .ai-copy a{color:inherit;text-decoration:underline}
.focus-overlay:fullscreen{background:#090b08!important;width:100vw!important;height:100vh!important}.focus-overlay:-webkit-full-screen{background:#090b08!important;width:100vw!important;height:100vh!important}
.app-footer{grid-template-columns:minmax(220px,1fr) auto!important;gap:28px!important;padding:22px 0 26px!important;margin-top:42px!important}.app-footer-brand{gap:6px!important}.app-footer-brand>strong{font-size:18px!important}.app-footer-brand p{max-width:330px!important;font-size:10px!important}.app-footer-brand>span{font-size:9px!important}.app-footer-links{display:flex!important;flex-wrap:wrap!important;justify-content:flex-end!important;align-items:center!important;gap:8px 16px!important}.app-footer-links a{font-size:10px!important;white-space:nowrap!important}.app-footer-bottom{grid-column:1/-1!important;padding-top:12px!important;display:flex!important;justify-content:space-between!important;gap:15px!important}.app-footer-bottom>span{font-size:9px!important}
@media(max-width:900px) and (min-width:721px){.app-footer{grid-template-columns:1fr!important}.app-footer-links{justify-content:flex-start!important}.app-footer-bottom{grid-column:1!important}}
@media(max-width:720px){.modal.docs-modal,.modal.shortcuts-modal{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.app-footer{grid-template-columns:1fr!important;gap:18px!important}.app-footer-links{justify-content:flex-start!important}.app-footer-bottom{grid-column:1!important;flex-direction:column!important;align-items:flex-start!important}.confirm-actions{flex-direction:column-reverse}.confirm-actions .btn{width:100%}}
.app-footer .app-version{display:inline-flex!important;border:1px solid var(--line);border-radius:999px;padding:4px 7px;color:var(--muted);font:700 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace}


/* v2.3 — stability, synchronization and accessibility pass */
:root{color-scheme:light}
[data-theme=dark]{color-scheme:dark}
[data-theme=dark] .mobile-fab{background:#171a16!important;color:#f3f4ee!important;border-color:#3a3e34!important}
[data-theme=dark] .mobile-fab svg{color:#f3f4ee!important;stroke:#f3f4ee!important}
[data-theme=dark] .mobile-menu a{background:#171815!important;color:#f3f4ee!important;border-color:#34382f!important}
[data-theme=dark] .mobile-menu a svg{color:#b9e34f!important;stroke:#b9e34f!important}
[data-theme=dark] .mobile-only-bar{background:rgba(12,13,11,.94)!important;color:var(--ink)!important}
[data-theme=dark] .mobile-only-bar a{color:#9fa39a!important}
[data-theme=dark] .mobile-only-bar a.active{color:#f3f4ee!important}
[data-theme=dark] .cal-cell,.cal-cell .cal-day-number,.cal-cell>span{color:#f3f4ee!important}
[data-theme=dark] .cal-cell small,.cal-weekday{color:#9fa39a!important}
[data-theme=dark] .cal-cell.today>span{background:#f3f4ee!important;color:#10110f!important}
[data-theme=dark] .check.done{background:#f0f1ea!important;color:#10110f!important;border-color:#f0f1ea!important}
[data-theme=dark] .check{border-color:#777b71!important;color:#f3f4ee!important}
[data-theme=dark] .ai-message-assistant .ai-copy,[data-theme=dark] .ai-message-assistant .ai-copy p,[data-theme=dark] .ai-message-assistant .ai-copy li,[data-theme=dark] .ai-message-assistant .ai-copy h4,[data-theme=dark] .ai-message-assistant .ai-copy code{color:#f3f4ee!important}
[data-theme=dark] .ai-message-assistant .ai-copy code{background:#262a22!important}
[data-theme=dark] .focus-overlay{background:#080a08!important;color:#f3f4ee!important}
[data-theme=dark] .focus-overlay-inner{background:#0d100d!important;color:#f3f4ee!important;border-color:#30352d!important}
.modal.docs-modal,.modal.shortcuts-modal{max-height:min(820px,calc(100dvh - 24px));height:min(820px,calc(100dvh - 24px))}
.modal.docs-modal .docs,.modal.shortcuts-modal .shortcut-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.modal.docs-modal .modal-head,.modal.shortcuts-modal .modal-head{position:relative;z-index:2;background:inherit}
.app-footer{max-width:1260px;margin-left:auto!important;margin-right:auto!important}
.app-footer-bottom{justify-content:flex-start!important}
@media(max-width:720px){.modal.docs-modal,.modal.shortcuts-modal{height:min(760px,calc(100dvh - 16px));max-height:calc(100dvh - 16px)}.mobile-fab{background:var(--ink);color:#fff}.mobile-fab.open{background:var(--ink);color:#fff}.focus-overlay{padding:14px!important}.focus-overlay-inner{width:min(1180px,100%);height:100%;min-height:calc(100dvh - 28px);overflow:auto}.overlay-timer{font-size:clamp(64px,18vw,150px)!important;letter-spacing:-.08em!important}}


/* v2.3.1 — adaptive workspace architecture + resilient surfaces */
.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.role-card{padding:22px;text-align:left;border:1px solid var(--line);border-radius:20px;background:var(--surface);display:flex;flex-direction:column;gap:8px;transition:.22s ease}.role-card:hover{transform:translateY(-2px);border-color:var(--lime)}.role-card.selected{border-color:var(--lime);box-shadow:0 0 0 2px color-mix(in srgb,var(--lime) 18%,transparent);background:var(--surface2)}.role-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--surface2);color:var(--lime)}.role-mark svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7}.role-card strong{font-size:17px}.role-card small{color:var(--muted);line-height:1.45}.ai-copy{overflow-wrap:anywhere;word-break:normal}.ai-message-body{min-width:0}.ai-message-assistant .ai-copy{max-width:none}.ai-copy p,.ai-copy li{overflow-wrap:anywhere}.ai-copy pre{max-width:100%;white-space:pre-wrap}.ai-view-plans{cursor:pointer}.mobile-fab{background:var(--ink)!important;color:#fff!important;border:1px solid var(--line)!important}.mobile-fab svg{stroke:currentColor!important}.mobile-menu{max-height:min(70dvh,620px);overflow:auto;-webkit-overflow-scrolling:touch}.modal-backdrop{overscroll-behavior:contain}.modal{min-height:0}.modal.docs-modal,.modal.shortcuts-modal{height:min(820px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);overflow:hidden}.modal.docs-modal .docs,.modal.shortcuts-modal .shortcut-scroll{flex:1 1 auto;min-height:0;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.docs{padding-right:8px}.docs section+section{margin-top:25px}.focus-overlay{overflow:hidden}.focus-overlay-inner{max-height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.overlay-timer{font-variant-numeric:tabular-nums}.app-footer{min-width:0}.app-footer-links{min-width:0}.app-footer-links a{overflow-wrap:anywhere}.page{min-width:0}.page-head{min-width:0}.page-head .actions{flex:0 0 auto}.calendar-grid .cal-cell,.calendar-grid .cal-cell *{color:var(--ink)}
[data-theme=dark] .role-card{background:#151714;border-color:#34382f}.role-card.selected{background:#1d211a}.role-card.selected .role-mark{background:#29301f}.role-card small{color:var(--muted)}[data-theme=dark] .calendar-grid .cal-cell,[data-theme=dark] .calendar-grid .cal-cell *{color:#f3f4ee!important}[data-theme=dark] .calendar-grid .cal-cell.muted,[data-theme=dark] .calendar-grid .cal-cell.muted *{color:#777b72!important}[data-theme=dark] .check.done{background:var(--lime);color:#11130f;border-color:var(--lime)}[data-theme=dark] .mobile-fab,[data-theme=dark] .mobile-fab.open{background:#151714!important;color:#f3f4ee!important;border-color:#3a3e35!important}[data-theme=dark] .btn,[data-theme=dark] .top-btn,[data-theme=dark] .icon-btn{color:var(--ink)}[data-theme=dark] .ai-message-assistant .ai-copy,[data-theme=dark] .ai-message-assistant .ai-copy p,[data-theme=dark] .ai-message-assistant .ai-copy li,[data-theme=dark] .ai-message-assistant .ai-copy h4{color:#f3f4ee!important}
@media(max-width:720px){.role-grid{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:28px}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.topbar{height:64px;padding:0 16px}.top-actions{display:none}.crumb{font-size:12px}.app-footer{padding-bottom:90px}.app-footer-links{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%;gap:9px 16px!important}.app-footer-links a{white-space:normal!important}.focus-overlay-inner{height:100%}.modal.docs-modal,.modal.shortcuts-modal{width:calc(100vw - 14px);height:min(760px,calc(100dvh - 14px));max-height:calc(100dvh - 14px)}}
@media(min-width:721px){body[data-role="professional"] .side-label:first-of-type{} }
