*{box-sizing:border-box}
:root{--bg:#101225;--sidebar:#14162e;--panel:#1c203d;--panel-raised:#252a4b;--text:#f0f1ff;--muted:#a5adcc;--accent:#a79bff;--coral:#ff9aab;--mint:#85ddc4;--border:#ffffff12;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--text);background:var(--bg);font-size:17px;line-height:1.6;color-scheme:dark}
body{margin:0;background:radial-gradient(ellipse at 90% 0,#45437540,transparent 50%),var(--bg)}button,input,textarea,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;border:0;color:inherit;background:none}button,a{touch-action:manipulation}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:#c0b8ff;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}h1{font-size:2.5rem;font-weight:650;letter-spacing:-.045em;line-height:1.25}h2{font-size:1.1rem;font-weight:600}h3{font-size:.95rem;font-weight:550}small,.hint{font-size:.8rem}[hidden]{display:none!important}.muted,.hint{color:var(--muted)}.hint{margin-top:10px}.eyebrow{color:var(--muted);font-size:.66rem;letter-spacing:.18em;font-weight:600}.error{color:var(--coral);font-size:.85rem;margin-top:12px}.error:empty{display:none}
.workspace{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}.sidebar{background:linear-gradient(170deg,#20234170,transparent 70%),var(--sidebar);border-right:1px solid var(--border);padding:36px 18px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;z-index:2}.brand{display:flex;gap:12px;align-items:center;color:var(--text);font-size:1rem;font-weight:600;padding:0 10px}.brand:hover{text-decoration:none}.brand small{display:block;font-size:.56rem;letter-spacing:.21em;color:var(--muted);font-weight:400;margin-top:2px}.brand-icon{width:38px;height:38px;border:1px solid #b6aaff4d;border-radius:12px;display:grid;place-items:center;background:linear-gradient(140deg,#b2a3ff30,#7062d410);color:#c3b8ff;box-shadow:0 0 28px #8e7aff15;font-size:24px;flex:none}.nav-heading{padding:48px 16px 12px;font-size:.73rem;color:#7f89ae}.nav-button{width:100%;display:flex;align-items:center;gap:13px;padding:12px 16px;text-align:left;color:var(--muted);border-radius:10px;margin-bottom:6px;font-size:.9rem;transition:background .18s,color .18s}.nav-button:hover{background:#ffffff05;color:var(--text)}.nav-button.active{background:linear-gradient(90deg,#9f8cff22,#9f8cff0a);color:#d7cfff;box-shadow:inset 2px 0 var(--accent)}.count{margin-left:auto;font-size:.76rem;color:var(--muted);font-variant-numeric:tabular-nums}.category-mark{width:8px;height:8px;border-radius:3px;background:currentColor;transform:rotate(-8deg);opacity:.85}.cat--1{color:#b8bfff}.cat-0{color:#b6a3ff}.cat-1{color:#91baff}.cat-2{color:#f3c98a}.cat-3{color:#88daca}.cat-4{color:#efaccb}.sidebar-bottom{margin-top:auto;padding-top:36px}.sidebar-bottom .nav-button{font-size:.8rem}.focus-note{position:relative;overflow:hidden;border:1px solid #b1a1ff19;border-radius:14px;padding:19px 17px;margin:0 5px 22px;background:radial-gradient(circle at 100% 100%,#a692ff25,transparent 75%)}.focus-note .eyebrow{font-size:.5rem;color:#a49acc}.focus-note p{font-size:.93rem;line-height:1.9;margin-top:10px}.orbit{position:absolute;right:16px;bottom:17px;color:var(--accent);font-size:32px;transform:rotate(18deg)}
main{min-width:0;max-width:1800px;width:100%;margin:0 auto;padding:30px clamp(24px,3.2vw,56px) 64px;align-self:start}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:28px;border-bottom:1px solid var(--border)}#today{color:var(--muted);font-size:.8rem;margin-top:6px}.sync-state{font-size:.75rem;color:var(--mint);border:1px solid #85ddc421;border-radius:30px;padding:0 14px;min-height:36px;background:#85ddc406}.sync-state.failed{color:var(--coral);border-color:#ff9aab40}.heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:32px 0 28px}.section-kicker{font-size:.6rem;color:#938aad;margin-bottom:9px}.heading .muted{margin-top:12px;font-size:.86rem}.primary,.secondary,.danger{border-radius:10px;padding:11px 20px;white-space:nowrap;font-weight:550;font-size:.88rem}.primary{background:linear-gradient(120deg,#a696fa,#8171e0);color:#121429;box-shadow:0 5px 24px #8270ea24}.primary:hover{filter:brightness(1.09)}.secondary{background:#a79bff12;border:1px solid #a79bff30;color:#cbc4ff}.danger{background:#ff9aab18;border:1px solid #ff9aab50;color:var(--coral)}.add-control{position:relative;flex:none}.add-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:175px;padding:8px;border-radius:14px;border:1px solid #a79bff38;background:var(--panel-raised);box-shadow:0 15px 35px #0007;z-index:5}.add-menu button{display:block;width:100%;text-align:left;padding:8px 14px;border-radius:8px}.add-menu button:hover{background:#a79bff20}
.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:34px}.summary>div{position:relative;overflow:hidden;min-height:147px;padding:20px 22px;border-radius:15px;border:1px solid var(--border);background:linear-gradient(135deg,#2e325669,#20244066);box-shadow:0 8px 22px #00000008}.summary>div:first-child{background:linear-gradient(125deg,#4841749c,#302c5357);border-color:#a99afe29}.summary>div>span:first-child{display:block;font-size:.77rem;color:#c4c8df}.summary strong{display:block;font-size:2.45rem;font-weight:500;line-height:1.3;margin:10px 0 4px;font-variant-numeric:tabular-nums;letter-spacing:-.05em}.summary small{color:#9aa3c4;font-size:.65rem}.summary>div:nth-child(3) strong{color:var(--coral)}.summary>div:nth-child(4) strong{color:var(--mint)}.stat-art{position:absolute;right:18px;bottom:19px;font-size:46px;line-height:1;color:#a89afa50;font-weight:200}.summary>div:nth-child(3) .stat-art{color:#ff9aab50}.summary>div:nth-child(4) .stat-art{color:#85ddc435}.board-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.caption-en{font-size:.6rem;color:#7b83a5;letter-spacing:.15em;font-weight:400;margin-left:10px}.board-caption>span{color:#8892b3;font-size:.72rem}.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start;background-image:linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px);background-size:28px 28px}.column{min-width:0;background:#14182b70;border:1px solid #ffffff07;border-radius:17px;padding:13px 12px;min-height:340px}.column-heading{display:flex;align-items:center;gap:10px;padding:3px 5px 17px;color:#cdd1e7}.line{width:7px;height:7px;border-radius:50%;background:#7c86ac;box-shadow:0 0 0 4px #7c86ac12}.doing .line{background:var(--accent);box-shadow:0 0 0 4px #a79bff15}.done .line{background:var(--mint);box-shadow:0 0 0 4px #85ddc410}.column-heading .count{border:1px solid var(--border);padding:1px 8px;border-radius:6px}.task{position:relative;border:1px solid #ffffff0d;border-radius:13px;background:linear-gradient(145deg,#252a4933,transparent),var(--panel);padding:17px 16px;margin-bottom:12px;box-shadow:0 6px 20px #00000010;}.task:last-child{margin-bottom:0}.task-meta{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:.67rem;margin-bottom:10px}.badge{border:1px solid currentColor;border-radius:5px;padding:0 7px;background:#a79bff08}.source-label{color:#8791b2;font-size:.65rem}.task-title{display:block;max-width:100%;padding:0;text-align:left;font-size:1.09rem;font-weight:600;line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap;min-height:32px}.course,.task-location{font-size:.75rem;color:var(--muted);overflow-wrap:anywhere;margin-top:6px}.task-location{color:#b5b0d8}.task-time{font-size:.78rem;color:#d2d5e9;margin:17px 0;line-height:1.75;font-variant-numeric:tabular-nums}.time-label{font-size:.65rem;color:#929cbd;margin-bottom:3px}.overdue,.overdue .time-label{color:var(--coral)}.task-footer{display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-top:1px solid var(--border);margin-top:12px;padding-top:10px;font-size:.67rem}.task-footer select{width:auto;max-width:100%;min-height:36px;padding:5px 26px 5px 9px;font-size:.7rem;background:#10142844;border-color:#ffffff10;border-radius:7px;margin:0}.task-footer a{font-size:.65rem;margin-left:auto}.delete-task{color:#959cbc;font-size:.65rem;min-height:36px;padding:5px 2px 5px 8px;margin-left:auto}.delete-task:hover{color:var(--coral)}.empty{padding:56px 8px 42px;text-align:center;color:#7f89aa;font-size:.73rem;border:1px dashed #ffffff08;border-radius:12px;min-height:251px}.empty b{display:block;font-size:.88rem;font-weight:400;color:#adb4d1;margin-bottom:7px}.empty button{color:#b6a8f8;font-size:.77rem;margin-top:18px}
.checklist{margin-top:12px}.checklist-count{display:block;color:#9a9fc0;font-size:.7rem;margin-bottom:7px}.todo-list{display:grid;gap:2px;position:relative;isolation:isolate}.todo-row{display:flex;align-items:center;gap:3px;border-radius:7px;position:relative;min-width:0}.todo-row:hover{background:#a79bff08}.todo-row.dragging{position:absolute;top:0;left:0;width:100%;background:#303657;outline:1px solid #b8aaff99;z-index:2;box-shadow:0 14px 30px #06091980,0 3px 10px #a79bff24;will-change:transform;cursor:grabbing}.todo-placeholder{border:1px dashed #a79bff45;border-radius:7px;background:#a79bff09;pointer-events:none}.drag-handle{width:24px;min-width:24px;min-height:44px;font-size:15px;color:#8790b6;padding:0;cursor:grab;touch-action:none;user-select:none;letter-spacing:-3px}.drag-handle:active{cursor:grabbing}.todo-row input[type=checkbox]{flex:none;width:16px;height:16px;margin:0 5px 0 0;accent-color:var(--accent);cursor:pointer;min-height:0}.todo-text{font-size:.82rem;line-height:1.55;flex:1;min-width:0;text-align:left;padding:7px 2px;overflow-wrap:anywhere;color:#d8dbef}.checked .todo-text{text-decoration:line-through;color:#808baa}.todo-action{flex:none;width:28px;min-height:44px;padding:0;color:#8994b7;font-size:17px}.todo-action:hover{color:#d2caff}.todo-edit{flex:1;min-width:0;width:0!important;font-size:.82rem!important;padding:5px 6px!important;min-height:36px!important}.todo-add{display:flex;align-items:center;gap:4px;margin-top:6px}.todo-add input{flex:1;min-width:0;background:transparent;border:1px solid transparent;font-size:.76rem;padding:8px 7px;min-height:40px}.todo-add input:focus{background:#12152b60;border-color:#a79bff50}.todo-add input::placeholder{color:#8992b3}.todo-add-button{width:36px;min-height:44px;color:#bfb2ff;border-radius:8px;font-size:20px}.todo-add-button:hover{background:#a79bff16}.checklist-error{font-size:.72rem}.checklist-recovery{display:flex;gap:8px;flex-wrap:wrap}.text-button{font-size:.72rem;color:#c3b8ff;padding:5px}.field-heading{display:flex;justify-content:space-between;gap:12px;font-size:.86rem;margin-top:20px}.field-heading .hint{margin:0}.optional{font-size:.68rem;font-weight:400;color:#939bbc;margin-left:5px}.required{color:var(--accent)}
label{display:block;margin:20px 0 8px;font-size:.84rem;font-weight:500;color:#d6daf0}input,textarea,select{width:100%;max-width:100%;border:1px solid #ffffff19;border-radius:10px;background:#12152b80;color:var(--text);padding:11px 12px;min-height:44px;outline:none;transition:border-color .18s}input:focus,textarea:focus,select:focus{border-color:#a79bff90;box-shadow:0 0 0 3px #a79bff12}input::placeholder,textarea::placeholder{color:#828caf}input[type=datetime-local]{min-width:0;font-size:.86rem}select option{background:var(--panel)}dialog{color:var(--text);background:linear-gradient(150deg,#272b4e,var(--panel) 60%);border:1px solid #a79bff30;border-radius:22px;width:570px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);padding:28px;box-shadow:0 35px 100px #0007;overflow-y:auto}dialog::backdrop{background:#080a19b8;backdrop-filter:blur(6px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.dialog-heading h2{font-size:1.4rem;margin-top:4px}.icon-button{font-size:25px;color:#a5adcc;width:44px;border-radius:10px}.icon-button:hover{background:#ffffff07}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px;padding-top:20px;border-top:1px solid var(--border)}.date-range{display:grid;grid-template-columns:1fr 1fr;gap:12px}#task-todos{padding:6px 12px 10px;margin-top:10px;background:#10132950;border:1px solid var(--border);border-radius:12px}#task-todos .checklist{margin:0}#task-todos .checklist-count{display:none}.source-row{padding:20px 0;border-bottom:1px solid var(--border)}.source-row>div{display:flex;justify-content:space-between;gap:14px}.source-row p{font-size:.8rem;color:var(--muted);margin-top:8px}.state{font-size:.7rem;color:var(--coral)}.state.connected{color:var(--mint)}.connection-note{padding:18px;border-radius:12px;background:#a79bff0c;margin:22px 0;border:1px solid #a79bff17;font-size:.85rem}.connection-note p{color:var(--muted);font-size:.8rem;margin-top:8px}.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);padding:12px 20px;border:1px solid #b6aaff45;border-radius:12px;background:#2b2d4a;color:var(--text);box-shadow:0 12px 30px #0005;z-index:20;font-size:.85rem}.login{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 25% 20%,#7670b029,transparent 60%),linear-gradient(#ffffff02 1px,transparent 1px),linear-gradient(90deg,#ffffff02 1px,transparent 1px);background-size:auto,42px 42px,42px 42px}.login-card{width:430px;max-width:100%;padding:40px;border:1px solid #b6aaff25;border-radius:24px;background:linear-gradient(150deg,#292d4daa,#191d359e);box-shadow:0 24px 80px #0003}.login-card .brand-icon{width:50px;height:50px;font-size:30px;margin-bottom:25px}.login-card .eyebrow{color:var(--accent);margin-bottom:12px}.login-card h1{font-size:1.95rem;line-height:1.55}.login-card .muted{margin-top:12px;font-size:.85rem}.login-card label{margin-top:28px}.login-card .primary{width:100%;margin-top:24px}.login-card .hint{text-align:center;margin-top:24px;font-size:.72rem}
@media(min-width:1500px){.task{padding:20px}.board{gap:24px}.column{padding:16px}.summary>div{min-height:159px}.task-title{font-size:1.15rem}}
@media(max-width:1150px){.workspace{grid-template-columns:220px minmax(0,1fr)}.sidebar{padding:28px 12px 16px}.brand{padding:0 6px;font-size:.85rem;gap:8px}main{padding:24px}.summary{gap:10px}.summary>div{padding:16px}.summary small{font-size:.6rem}.stat-art{font-size:34px;right:12px;bottom:22px}.board{gap:10px}.column{padding:10px 8px}.task{padding:14px 12px}.caption-en{display:none}}
@media(max-width:960px){.board{grid-template-columns:1fr}.column{min-height:0;padding:14px}.empty{padding:30px;min-height:150px}.task-footer select{min-height:44px}.task-footer{font-size:.8rem}.todo-text{font-size:.9rem}.todo-action,.drag-handle{width:36px;min-width:36px}.task-title{font-size:1.15rem}.todo-add input{font-size:.86rem}.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.summary>div{min-height:135px}.summary small{font-size:.7rem}.stat-art{font-size:44px}.task-meta{font-size:.78rem}.source-label{font-size:.7rem}.task-time{font-size:.88rem}}
@media(max-width:680px){.workspace{display:block}.sidebar{position:relative;height:auto;padding:20px 18px 0;border-right:0;border-bottom:1px solid var(--border)}.brand{font-size:1rem;padding:0}.brand-icon{width:34px;height:34px}.brand small{font-size:.5rem}.nav-heading,.focus-note{display:none}#categories{display:flex;overflow-x:auto;gap:4px;padding:18px 0 13px;margin:0 -3px;scrollbar-width:none}#categories .nav-button{width:auto;flex:none;min-height:44px;padding:9px 12px;margin:0;gap:7px;font-size:.8rem}.category-mark{width:6px;height:6px}.nav-button.active{box-shadow:inset 0 -2px var(--accent)}#categories .count{font-size:.65rem}.sidebar-bottom{position:absolute;top:21px;right:18px;display:flex;padding:0;gap:5px}.sidebar-bottom .nav-button{width:auto;font-size:18px;margin:0;padding:4px 10px;min-height:36px}.sidebar-bottom .nav-button span{display:none}main{padding:21px 18px 42px}.topbar{padding-bottom:20px}.topbar .eyebrow{font-size:.55rem}#today{font-size:.72rem}.sync-state{font-size:.65rem;padding:0 10px}.heading{margin:26px 0 24px;gap:10px}.section-kicker{font-size:.45rem;letter-spacing:.12em}h1{font-size:2rem}.heading .muted{font-size:.77rem;margin-top:9px}.primary{padding:10px 14px;font-size:.8rem}.summary{gap:10px;margin-bottom:28px}.summary>div{padding:16px 14px;min-height:130px}.summary>div>span:first-child{font-size:.7rem}.summary strong{font-size:2rem;margin-top:12px}.summary small{font-size:.6rem}.stat-art{font-size:36px;right:12px}.board-caption{align-items:flex-start;flex-direction:column;gap:4px}.board-caption h2{font-size:1rem}.board-caption>span{font-size:.65rem}.board{gap:16px}.column{padding:12px}.task{padding:16px}.task-footer a,.delete-task{font-size:.72rem}.task-location,.course{font-size:.8rem}.task-time{font-size:.84rem}.todo-row{gap:4px}.todo-action{width:32px;min-width:32px}.drag-handle{width:28px;min-width:28px}.todo-row input[type=checkbox]{width:18px;height:18px;margin-right:6px}.todo-edit,.todo-add input,dialog input,dialog select{font-size:16px!important}dialog{padding:22px 18px;max-width:calc(100vw - 20px);max-height:calc(100dvh - 24px);border-radius:18px}.date-range{grid-template-columns:1fr;gap:0}.dialog-heading h2{font-size:1.25rem}.login-card{padding:30px 24px}.login-card h1{font-size:1.75rem}.login-card input{font-size:16px}.field-heading{font-size:.82rem}.field-heading .hint{font-size:.7rem}.summary .stat-art{opacity:.7}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Readability and mobile alignment */
.brand-icon{line-height:1;padding:0}.brand-icon svg{display:block;width:25px;height:25px;fill:currentColor;flex:none}.login-card .brand-icon svg{width:32px;height:32px}.nav-heading,.sidebar-bottom .nav-button,.count{font-size:.82rem}.eyebrow{font-size:.7rem}.brand small{font-size:.6rem}.section-kicker{font-size:.65rem}.heading .muted,.task-time,.course,.task-location{font-size:.9rem}.summary>div>span:first-child{font-size:.9rem}.summary small{font-size:.76rem;display:block;max-width:80%}.source-label,.task-meta,.badge,.time-label,.board-caption>span,.task-footer a,.delete-task,.task-footer select,.checklist-count,.todo-add input,.checklist-error,.text-button,.optional{font-size:.82rem}.todo-text{font-size:.94rem}.empty{font-size:.88rem}.empty b{font-size:1rem}.empty button{font-size:.92rem}.summary>div{min-height:164px}.board-caption{align-items:baseline}.drag-handle,.todo-action,.todo-add-button{min-width:36px;min-height:44px}.task-title{font-size:1.12rem}.task-footer{gap:8px}.task-footer a{overflow-wrap:anywhere}.nav-button{font-size:.97rem}.resources{display:grid;gap:8px;margin:16px 0}.resource-row{display:flex;align-items:center;gap:8px;min-width:0;border:1px solid var(--border);border-radius:9px;padding:9px 10px;background:#10132935}.resource-row a{flex:1;min-width:0;overflow-wrap:anywhere;font-size:.88rem}.resource-kind{font-size:.68rem;letter-spacing:.02em;border:1px solid #a79bff30;border-radius:5px;padding:2px 5px;color:var(--muted);flex:none}.resource-row small{display:block;color:var(--muted);font-size:.72rem}.resource-row .file-download{flex:none;font-size:.8rem}.resource-row button{flex:none;min-width:40px;color:var(--muted)}.resource-editor{border:1px solid var(--border);background:#10132935;border-radius:12px;padding:12px;margin-top:10px}.link-edit-row{display:grid;grid-template-columns:1fr 44px;gap:6px;margin-bottom:12px}.link-edit-row input{grid-column:1;margin:0;min-width:0}.link-edit-row button{grid-column:2;grid-row:1 / 3;font-size:24px;color:var(--muted)}.upload-control{margin:10px 0 0;font-size:.9rem}.upload-control input{margin-top:8px;padding:8px;font-size:.85rem}input[type=file]::file-selector-button{font:inherit;color:var(--text);background:var(--panel-raised);border:1px solid #a79bff40;border-radius:7px;padding:8px;margin-right:10px}.upload-state{font-size:.82rem;color:var(--accent);margin-top:10px}.source-original{font-size:.88rem;margin-top:15px}.source-original a{overflow-wrap:anywhere}.resource-heading{display:flex;justify-content:space-between;align-items:center;margin-top:22px;font-size:.94rem}.resource-heading .hint{margin:0}.resource-empty{color:var(--muted);font-size:.82rem}.resource-editor .resources{margin:0}
@media(max-width:1150px){.summary>div{padding:18px}.summary small{font-size:.74rem}.task-footer{flex-wrap:wrap}.task-footer a{margin-left:0}.stat-art{font-size:36px}}
@media(max-width:680px){:root{font-size:16px}.sidebar{padding-top:20px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.brand{font-size:1.05rem;max-width:calc(100% - 86px)}.brand-icon{width:38px;height:38px;align-self:center}.brand-icon svg{width:24px;height:24px}.brand small{font-size:.58rem}.sidebar-bottom{top:19px;right:12px;gap:0}.sidebar-bottom .nav-button{width:42px;height:42px;padding:0;justify-content:center;font-size:23px}#categories .nav-button{font-size:.93rem;padding:10px 12px}#categories .count{font-size:.8rem}.topbar .eyebrow,#today,.sync-state{font-size:.8rem}.topbar{gap:8px}.sync-state{min-height:40px;flex:none}.section-kicker{font-size:.62rem}.heading .muted{font-size:.9rem}.primary{font-size:.94rem;padding:11px 13px}.summary>div{padding:17px 14px;min-height:148px}.summary>div>span:first-child{font-size:.89rem}.summary small{font-size:.75rem;max-width:90%;line-height:1.7}.summary strong{font-size:2.25rem}.summary .stat-art{bottom:43px;font-size:29px}.board-caption>span{font-size:.8rem}.board-caption h2{font-size:1.15rem}.task{padding:16px 12px}.task-footer a,.delete-task,.task-footer select{font-size:.84rem}.task-time,.course,.task-location{font-size:.9rem}.todo-text{font-size:1rem}.todo-action,.drag-handle{min-width:32px;width:32px}.resource-row{flex-wrap:wrap}.resource-row a{font-size:.94rem}.resource-row .file-download{font-size:.82rem}.field-heading{font-size:.94rem}.field-heading .hint{font-size:.8rem}.optional,.hint{font-size:.82rem}.login-card .hint{font-size:.8rem}.resource-editor{padding:10px}.heading{align-items:center}.heading>div:first-child{min-width:0}.section-kicker{max-width:180px}.caption-en{display:none}main{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}}
@media(max-width:360px){.brand{font-size:.92rem;gap:8px}.brand small{font-size:.51rem}.brand-icon{width:34px;height:34px}.heading{align-items:flex-start;flex-direction:column}.add-control{align-self:flex-end}.summary>div>span:first-child{font-size:.8rem}.summary small{font-size:.72rem}.topbar .eyebrow,#today{font-size:.72rem}.sync-state{font-size:.73rem}.summary .stat-art{display:none}}

.task-status{color:var(--muted);font-size:.82rem}.task-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.task-actions button{margin:0;padding:6px 8px;min-height:44px;font-size:.82rem}.edit-task{color:#c3b8ff}.edit-task:hover{background:#a79bff12;border-radius:7px}

.archive-categories{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0}.archive-tab{padding:8px 12px;border-radius:8px;color:var(--muted)}.archive-tab.active{color:#d7cfff;background:#a79bff22}.archive-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--border)}.archive-info{flex:1;min-width:0}.archive-info h3,.archive-title{overflow-wrap:anywhere;white-space:pre-wrap}.archive-info p{font-size:.82rem;margin-top:6px}.archive-row .task-actions{flex:none}.archive-empty{padding:28px 0;color:var(--muted)}.archive-title{font-size:1.25rem;margin:14px 0}.archive-todos{padding-left:20px;line-height:1.9;overflow-wrap:anywhere}#archive-more{margin-top:20px}@media(max-width:680px){.brand{max-width:calc(100% - 140px)}.brand small{letter-spacing:.12em}.sidebar-bottom{gap:0}.sidebar-bottom .nav-button{padding:4px 8px}.archive-row{flex-wrap:wrap}.archive-row .task-actions{margin-left:auto}.archive-info{flex-basis:100%}}

.collector-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.collector-toggle{display:flex;align-items:center;gap:10px;font-size:.88rem}.collector-toggle input{width:18px;min-height:18px;accent-color:var(--accent)}#manual-pair{margin-top:20px}#manual-pair summary{cursor:pointer;color:var(--muted);padding:12px 0}.source-diagnostic{font-size:.78rem!important;color:#b6aed9!important}

/* Keep board rules inside the four summary cards. */
.summary small{max-width:100%;line-height:1.7;position:relative}.summary .stat-art{top:52px;bottom:auto}

/* RUChecklist calendar and compact source controls. */
.heading{margin-top:8px}.task-footer select{min-height:44px;color:var(--text);cursor:pointer}
.calendar-board{display:block;background:none}.calendar{border:1px solid var(--border);border-radius:18px;background:#1c203d80;overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px}.calendar-toolbar h2{font-size:1.2rem}.calendar-controls{display:flex;gap:6px}.calendar-controls button{padding:5px 14px;min-width:44px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekday{padding:10px 0;text-align:center;font-size:.85rem;color:var(--muted);border-top:1px solid var(--border)}.calendar-day{min-width:0;min-height:120px;display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:10px 8px;text-align:left;border-top:1px solid var(--border);border-right:1px solid var(--border);position:relative;transition:background .18s,box-shadow .18s}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover{background:#a79bff0c}.calendar-day.outside{background:#10122540;color:#7b84a5}.calendar-day.selected{background:#a79bff1f;box-shadow:inset 0 0 0 2px var(--accent)}.calendar-day:focus-visible{outline-offset:-4px}.day-number{display:grid;place-items:center;align-self:flex-start;width:29px;height:29px;font-size:.9rem;line-height:1}.calendar-day[aria-current=date] .day-number{border-radius:50%;background:var(--accent);color:var(--bg);font-weight:650}.day-task{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;line-height:1.65;border-radius:4px;padding:1px 5px;background:#a79bff0d;border-left:2px solid currentColor}.day-task.is-done{color:var(--mint)}.day-more{font-size:.72rem;color:var(--muted);padding-left:5px}.undated-button{margin:16px}.undated-button[aria-pressed=true]{border-color:var(--accent);background:#a79bff20}.day-agenda{margin-top:26px;animation:agenda-in .18s ease-out}.day-agenda>h2{margin-bottom:16px}.day-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.day-list .task{margin:0}.day-empty{grid-column:1/-1;border:1px dashed var(--border);border-radius:14px;padding:30px;text-align:center;color:var(--muted)}
.source-connection{padding:16px;border:1px solid var(--border);border-radius:12px;background:#10122540}.source-connection>p{font-size:.9rem}.extension-download{display:inline-flex;align-items:center;margin-top:14px;min-height:44px}.source-connection #collector-controls{margin-top:12px}.sync-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:24px}.sync-toolbar p{font-size:.85rem}.source-row>div{align-items:center}.source-row .state{flex:none}#sources-dialog{width:620px}
@keyframes agenda-in{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:960px){.calendar-toolbar{padding:14px}.calendar-day{min-height:108px;padding:8px 4px}.day-list{grid-template-columns:1fr}.day-task{font-size:.75rem}}
@media(max-width:680px){.brand{max-width:none;font-size:1.06rem}.brand small{font-size:.58rem;letter-spacing:.08em}.sidebar-bottom{position:static;margin:12px 0 0;padding:0;justify-content:flex-end}.sidebar-bottom .nav-button{width:auto;padding:0 10px;font-size:20px}.sidebar-bottom .nav-button span{display:inline;font-size:.78rem}.nav-heading{display:none}#categories{padding-top:12px;padding-bottom:8px}.heading{margin:6px 0 24px}.calendar-toolbar{padding:12px 10px}.calendar-toolbar h2{font-size:1.05rem}.calendar-controls{gap:4px}.calendar-controls button{padding:5px 9px;font-size:.85rem}.calendar-day{min-height:104px;padding:6px 3px;gap:4px}.day-number{font-size:.82rem;width:26px;height:26px}.day-task{font-size:.73rem;padding:1px 2px;border-left-width:1px}.day-more{font-size:.7rem;padding-left:2px}.calendar-weekday{font-size:.8rem}.calendar{border-radius:12px}.day-agenda{margin-top:22px}.sync-toolbar{align-items:flex-start}.sync-toolbar .primary{padding:10px 12px}.source-row .state{font-size:.75rem}}

/* RUChecklist identity and purpose-built schedule views. */
.workspace{grid-template-columns:276px minmax(0,1fr)}
.brand{gap:11px;padding:0 6px}.brand-icon,.login-card .brand-icon{width:52px;height:52px;border:0;background:none;box-shadow:0 6px 24px #9180ff24;border-radius:16px}.brand-icon img{display:block;width:100%;height:100%;object-fit:contain}.wordmark{font-family:Inter,"Segoe UI",sans-serif;font-size:22px;letter-spacing:-1px;font-weight:550;line-height:1.25;white-space:nowrap}.wordmark b{color:#b6a9ff;font-weight:850;margin-right:1px}.brand .wordmark small{font-size:8px;letter-spacing:1.25px;margin-top:6px;font-weight:500;color:#afb7d5}.login-card .eyebrow{font-size:1.3rem;letter-spacing:-.035em;font-weight:650}.nav-icon{width:21px;height:21px;flex:none;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.nav-heading{padding-top:40px}.heading h1{letter-spacing:-.035em;font-weight:680}.event-detail{font-size:.82rem;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.schedule-board{display:block;background:none}.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.event-grid .task{margin-bottom:0}.class-session{min-width:0}.session-clock{font-size:.93rem;font-weight:550;font-variant-numeric:tabular-nums;color:#b6ccff;padding:0 0 10px 12px;border-left:2px solid #91baff}.class-session .task{border-top:2px solid #91baff80}.event-group{margin-bottom:28px}.event-heading{display:flex;align-items:center;gap:12px;padding:0 0 14px}.date-pill{font-size:.75rem;border:1px solid #ffffff20;border-radius:20px;color:var(--muted);padding:3px 10px}.exam-group .date-pill{color:#f3c98a;background:#f3c98a0b;border-color:#f3c98a30}.exam-group .task{border-top:2px solid #f3c98a70}.meeting-group{border-left:2px solid #efaccb45;padding-left:20px}.meeting-group .event-heading{position:relative}.meeting-group .event-heading::before{content:"";width:8px;height:8px;border-radius:50%;background:#efaccb;position:absolute;left:-25px;top:10px}.activity-group .task{border-top:2px solid #88daca60}.past-events{margin-top:26px;border-top:1px solid var(--border)}.past-events>summary{padding:18px 0;min-height:44px;color:var(--muted);cursor:pointer}.past-events .date-pill{color:var(--muted)}.academic-sync{padding-top:20px}.academic-sync .hint{font-size:.8rem}#schedule-fields{display:grid;grid-template-columns:1fr;gap:0}
@media(max-width:1250px){.workspace{grid-template-columns:248px minmax(0,1fr)}.wordmark{font-size:21px}.brand-icon{width:46px;height:46px}.brand{gap:9px}.brand .wordmark small{font-size:7px;letter-spacing:1.15px}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:960px){.event-grid{grid-template-columns:1fr}.week-days{gap:3px;padding:6px 8px 12px}.week-day{padding:10px 2px}.week-day strong{font-size:1.35rem}.week-day span,.week-day small{font-size:.74rem}}
@media(max-width:680px){.workspace{display:block}.brand-icon{width:50px;height:50px}.wordmark{font-size:26px;letter-spacing:-1.15px}.brand{gap:12px}.brand .wordmark small{font-size:8px;letter-spacing:1.6px}.nav-icon{width:19px;height:19px}#categories .nav-button{gap:8px}.week-panel{border-radius:13px}.week-panel .calendar-toolbar{flex-wrap:wrap}.week-panel .calendar-toolbar h2{font-size:1rem}.week-days{gap:2px;padding:4px 5px 10px}.week-day{border-radius:9px}.week-day strong{font-size:1.2rem}.week-day span,.week-day small{font-size:.7rem}.meeting-group{padding-left:14px}.meeting-group .event-heading::before{left:-19px}.session-clock{font-size:.92rem}.schedule-agenda{margin-top:22px}}
.summary[data-schedule] > div:nth-child(3) strong{color:var(--text)}.summary[data-schedule="课程"] > div:first-child strong{color:#91baff}

/* Semester / teaching-week timetable. The table scrolls within its panel on phones. */
.timetable-panel{border:1px solid var(--border);border-radius:17px;background:#171b32;overflow:hidden}.timetable-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--border)}.timetable-toolbar h2{flex:none;font-size:1.12rem}.timetable-controls{display:flex;align-items:center;gap:10px}.timetable-controls select{width:auto;max-width:280px;min-width:135px;border-radius:24px;padding:8px 32px 8px 16px;background:#a79bff12;border-color:#a79bff35;color:#d9d1ff;font-size:.88rem}.timetable-scroll{max-width:100%;overflow:auto;outline-offset:-3px}.timetable{border-collapse:separate;border-spacing:0;width:100%;min-width:960px;table-layout:fixed}.timetable th,.timetable td{border-right:1px solid #ffffff0e;border-bottom:1px solid #ffffff0e}.timetable tr>*:last-child{border-right:0}.timetable tbody tr:last-child>*{border-bottom:0}.timetable thead th{height:54px;text-align:center;font-size:.86rem;font-weight:500;background:#1d213d;color:#c0c6e1;position:sticky;top:0;z-index:1}.timetable th:first-child{width:104px;position:sticky;left:0;background:#1b2039;z-index:2}.timetable thead th:first-child{z-index:3}.timetable tbody th{font-weight:500;color:#c5cbe5;padding:18px 8px;font-size:.88rem;vertical-align:middle}.timetable th small{display:block;font-weight:400;font-size:.72rem;margin-top:5px;color:#98a3c5;font-variant-numeric:tabular-nums}.timetable td{vertical-align:top;height:142px;padding:5px;background:#13182c50}.timetable tbody tr:nth-child(even) td{background:#20263e40}.course-block{position:relative;min-height:137px;padding:10px 10px 42px;border-radius:9px;border:1px solid #b4c6ff26;box-shadow:0 4px 14px #0000000b;margin-bottom:5px}.course-block:last-child{margin-bottom:0}.course-block h3{font-size:.89rem;line-height:1.6;font-weight:650;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#f4f6ff;margin-bottom:5px}.course-block p{font-size:.75rem;line-height:1.65;color:#dae2f1;overflow-wrap:anywhere}.course-block .course-weeks{color:#e2defc;margin-top:3px}.course-view{position:absolute;bottom:0;right:4px;min-height:40px;min-width:48px;font-size:.73rem;color:#fff;padding:7px 8px;border-radius:7px}.course-view:hover{background:#ffffff14}.course-color-0{background:#35476d}.course-color-1{background:#425c54}.course-color-2{background:#63515f}.course-color-3{background:#53517c}.course-color-4{background:#626044}.course-color-5{background:#345864}.timetable-hint{padding:12px 18px;color:var(--muted);font-size:.75rem;border-top:1px solid var(--border)}#course-detail{margin-top:18px}#course-dialog .task{margin:0}#course-dialog .task-footer{gap:10px}
@media(max-width:960px){.timetable-toolbar{align-items:flex-start;flex-wrap:wrap}.timetable-controls{margin-left:auto}.timetable{min-width:900px}}
@media(max-width:680px){.timetable-toolbar{padding:14px 12px;gap:12px}.timetable-toolbar h2{font-size:1rem}.timetable-controls{width:100%;margin:0;gap:8px}.timetable-controls select{min-width:0;max-width:none;width:50%;font-size:16px}.timetable{min-width:885px}.timetable th:first-child{width:90px}.timetable td{padding:4px}.timetable tbody th{font-size:.82rem}.timetable-hint{padding:10px 12px}.timetable-panel{border-radius:12px}.course-block h3{font-size:15px}.course-block p{font-size:13px}.course-view{min-height:44px;font-size:13px}.course-block{padding-bottom:44px}}
/* Guided setup: one task per step, with installation details collapsible after detection. */
#sources-dialog{width:700px}.guide-intro{margin-bottom:22px;font-size:.9rem}.guide-step{border:1px solid var(--border);border-radius:14px;background:#171b322f;margin-top:14px;overflow:hidden}.guide-step>summary,.guide-step>h3{display:flex;align-items:center;gap:12px;padding:17px 18px;font-size:1rem;font-weight:600}.guide-step>summary{cursor:pointer;list-style:none}.guide-step>summary::-webkit-details-marker{display:none}.guide-step>summary small{display:block;color:var(--muted);font-size:.76rem;font-weight:400;margin-top:3px}.step-number{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:10px;background:#a79bff21;color:#c7bbff;font-size:.9rem}.step-body{padding:0 18px 18px}.step-body ol{margin:0;padding-left:22px;color:var(--muted);font-size:.85rem;line-height:1.8}.step-body li{margin-bottom:13px}.step-body .extension-download{margin:0 5px 0 0}.step-body .hint{margin:9px 0}.step-body .sync-toolbar{margin-top:14px}.step-body label{margin-top:12px}.step-body textarea{resize:vertical;min-height:100px;overflow-wrap:anywhere}.step-body .source-row:last-child{border-bottom:0}.supported-sites summary{color:var(--muted);cursor:pointer;padding-top:14px;font-size:.8rem}.step-body code{color:#d5caff;font-size:.87rem}#save-source-links{margin-top:12px}#collector-state{font-size:.9rem}#collector-controls{margin-top:12px}.guide-step .source-row p{font-size:.8rem}@media(max-width:680px){.guide-step>summary,.guide-step>h3{padding:15px 12px}.step-body{padding:0 12px 15px}.guide-step{border-radius:12px}.step-body textarea{font-size:16px}}
.auth-tabs{display:flex;gap:10px;margin:18px 0}.login-card #auth-recover{margin-top:14px;font-size:.85rem}.login-card #trial-privacy{font-size:.76rem;line-height:1.7}#recovery-value{white-space:pre-wrap;overflow-wrap:anywhere;padding:18px;margin:20px 0;background:#10122590;border:1px solid var(--border);border-radius:12px;color:#cfc4ff;font-size:1rem}#recovery-form button{margin-top:16px}

/* Compact website entries and accessible guided demonstration. */
.workspace{grid-template-columns:292px minmax(0,1fr)}.wordmark{font-size:27px}.sidebar-bottom{gap:3px}.sidebar-bottom .nav-button{font-size:.85rem}.login-card .login-brand{font-size:2rem;letter-spacing:-.045em;line-height:1.2;margin-bottom:25px}.login-card .brand-icon{margin-bottom:20px}
.website-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}.website-row>div{flex:1;min-width:0}.website-row strong{display:block;font-size:.9rem}.website-row a{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;color:var(--muted)}.website-row button{flex:none}.website-input{display:flex;gap:8px;align-items:center}.website-input input{min-width:0;flex:1}.website-input button{flex:none}#add-source-link{margin-top:12px;font-size:.9rem}#source-links-result:empty{display:none}
#demo-dialog{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}#demo-dialog::backdrop{background:transparent;backdrop-filter:none}#demo-highlight{position:fixed;border:2px solid var(--accent);border-radius:14px;box-shadow:0 0 0 150vmax #080a19d9,0 0 28px #a79bff50;pointer-events:none;transition:top .24s,left .24s,width .24s,height .24s}#demo-card{position:fixed;max-width:calc(100vw - 32px);padding:22px;border:1px solid #a79bff66;border-radius:18px;background:var(--panel-raised);box-shadow:0 14px 70px #0008;animation:agenda-in .2s ease-out}.demo-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:.82rem}#demo-title{font-size:1.25rem;margin:6px 0 12px}#demo-description{font-size:.92rem;color:#ced2ea;line-height:1.8}.demo-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}
@media(max-width:1250px){.workspace{grid-template-columns:260px minmax(0,1fr)}.wordmark{font-size:24px}}
@media(max-width:680px){.workspace{display:block}.wordmark{font-size:29px}.sidebar-bottom{flex-wrap:wrap;justify-content:flex-start}.sidebar-bottom .nav-button{font-size:18px}.website-input{flex-wrap:wrap}.website-input input{flex-basis:100%;font-size:16px}.website-row{gap:6px}#demo-card{padding:18px}#demo-description{font-size:.87rem}}
@media(prefers-reduced-motion:reduce){#demo-highlight{transition:none}#demo-card{animation:none}}

/* Task fields follow the editor; only explicit controls are interactive. */
.task-content{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.9rem;line-height:1.7;color:var(--muted);margin:12px 0}.task-time .time-range{white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:.9rem}.completion-control{display:flex;align-items:center;gap:9px;margin:0;cursor:pointer;min-height:44px;font-size:.9rem}.completion-control input[type=checkbox]{width:20px;height:20px;min-height:20px;flex:none;margin:0;accent-color:var(--accent)}#done-field{margin-top:20px}.schedule-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.schedule-columns .column{min-width:0}.schedule-columns h2{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;font-size:1.1rem}.schedule-list .task{margin-bottom:16px}.schedule-list .task:last-child{margin-bottom:0}.source-row>div{flex-wrap:wrap;gap:12px}.source-row .state{margin-left:auto}.source-sync{padding:7px 16px;min-height:40px}.step-body h4{margin:22px 0 10px}.step-body li{margin:10px 0}#task-content{resize:vertical;min-height:110px}.course-view.muted{font-size:.67rem;opacity:.8}.required{font-size:.85em;font-weight:400;margin-left:5px}
@media(max-width:680px){.schedule-columns{grid-template-columns:1fr}.task-time .time-range{font-size:.85rem}.source-row .state{font-size:.75rem}}

.schedule-list.exam-group{border-left:2px solid #f3c98a45;padding-left:20px}.schedule-list.activity-group{border-left:2px solid #88daca45;padding-left:20px}.cloud-grant-state{color:var(--mint);font-size:.9rem}#cloud-settings .collector-actions{margin:12px 0 0}#browser-settings .collector-toggle{font-size:.85rem}#collector-install>button{margin-top:12px;margin-right:8px}
.source-login{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:7px 12px;white-space:nowrap}.source-actions{display:flex;gap:10px;margin-left:auto}.source-row strong{font-weight:500}.expired-site{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--border)}#expired-sites{margin:12px 0 20px}.expired-site strong{min-width:0;overflow-wrap:anywhere}
@media(max-width:680px){.schedule-list.exam-group,.schedule-list.activity-group{padding-left:14px}}

@media(max-width:680px){.website-row.generic{flex-wrap:wrap}.website-row.generic>div{flex-basis:100%}}

/* Messages and feedback share the board palette; narrow screens use one chat pane. */
.task-actions{flex-wrap:wrap;gap:8px}.archive-task{color:var(--muted);min-height:44px}.task-footer{flex-wrap:wrap}.sidebar{overflow-y:auto}.sidebar-bottom{margin-top:auto}
#messages-dialog{width:700px}.message-section{padding:20px 0;border-bottom:1px solid var(--border)}.message-section:last-child{border:0}.message-section h3{font-size:1.05rem;margin-bottom:12px}.message-section p,.message-section li{font-size:.94rem;line-height:1.8}.message-section ul{padding-left:24px}.message-task{display:flex;justify-content:space-between;gap:20px;padding:9px 0}.message-task strong{font-weight:500;overflow-wrap:anywhere;min-width:0}.message-task time{color:var(--muted);font-size:.85rem;flex:none}.announcement{border-radius:12px;background:#a79bff0c;border:1px solid var(--border);padding:16px;margin:12px 0}.announcement small{color:var(--muted)}.announcement p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px}#feedback-unread{margin-left:auto;background:#c04e78;color:white;border-radius:16px;padding:0 7px;font-size:.75rem}
#feedback-dialog{width:980px;height:min(780px,90dvh);padding:0;overflow:hidden}#feedback-dialog>.dialog-heading{height:68px;padding:15px 22px;border-bottom:1px solid var(--border);margin:0}.chat-layout{display:grid;grid-template-columns:230px minmax(0,1fr);height:calc(100% - 68px);min-height:0}#chat-threads{overflow-y:auto;border-right:1px solid var(--border);padding:10px;background:#11142950}.chat-thread{display:block;width:100%;padding:16px 12px;min-height:78px;text-align:left;border-radius:10px;border:1px solid transparent}.chat-thread strong{display:block;font-size:.94rem;overflow-wrap:anywhere}.chat-thread small{display:block;font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-top:6px}.chat-thread[aria-pressed=true]{background:#a79bff18;border-color:#a79bff42}.chat-thread.pinned{border-bottom:1px solid var(--border);margin-bottom:8px}.chat-main{display:flex;flex-direction:column;min-width:0;min-height:0;background:#10122570}.chat-header{height:58px;display:flex;align-items:center;gap:14px;padding:8px 20px;border-bottom:1px solid var(--border);flex:none}.chat-header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-header span{font-size:.78rem;color:var(--muted)}#chat-back{display:none}.chat-history{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 20px}.chat-message{display:flex;flex-direction:column;align-items:flex-start;margin:0 0 18px}.chat-bubble{padding:11px 15px;border-radius:4px 15px 15px 15px;background:#2c3254;max-width:86%;white-space:pre-wrap;overflow-wrap:anywhere;font-size:1rem;line-height:1.65;text-align:left}.chat-message.mine{align-items:flex-end}.chat-message.mine .chat-bubble{background:#ab9bf2;color:#15152c;border-radius:15px 4px 15px 15px}.chat-message time{font-size:.72rem;color:var(--muted);margin-top:5px}.chat-empty{color:var(--muted);font-size:.92rem;text-align:center;padding:40px 12px;line-height:1.9}#chat-form{display:flex;gap:12px;align-items:flex-end;padding:14px 18px;border-top:1px solid var(--border);flex:none;margin:0;background:#202540}#chat-input{flex:1;min-width:0;margin:0;resize:none;font-size:16px;min-height:55px;max-height:160px;border-radius:12px}#chat-form button{flex:none;min-height:46px}#chat-error{padding:0 18px;margin:0;font-size:.85rem;flex:none}#chat-error:empty{display:none}#feedback-dialog:not(.admin-chat) .chat-layout{grid-template-columns:minmax(0,1fr)}#feedback-dialog:not(.admin-chat) #chat-threads{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:680px){
  .sidebar{overflow:visible}.sidebar-bottom{margin-top:12px}.task-actions{gap:6px}.task-actions button{min-width:44px;padding:6px 8px}.message-task{display:block;padding:10px 0}.message-task time{display:block;margin-top:3px}.message-section{padding:16px 0}
  #feedback-dialog{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0}#feedback-dialog>.dialog-heading{height:60px;padding:10px 16px}.chat-layout{height:calc(100% - 60px);display:flex}.chat-main,#chat-threads{width:100%;flex:1}.admin-chat[data-active=false] .chat-main{display:none}.admin-chat[data-active=true] #chat-threads{display:none}.admin-chat #chat-back{display:block}.chat-header{height:52px;padding:6px 14px}.chat-history{padding:15px 12px}.chat-bubble{max-width:88%}#chat-form{padding:10px 12px max(10px,env(safe-area-inset-bottom));gap:8px}#chat-form button{padding:10px 13px;font-size:.95rem}#chat-input{min-height:48px}.chat-thread{min-height:80px;padding:16px}
}
/* Account dock and restrained light / motion system. */
.sidebar{padding-top:27px;background:radial-gradient(ellipse at 0 0,#7774c51c,transparent 48%),linear-gradient(175deg,#181c36,#11152a)}
.brand-copy{display:flex;flex-direction:column;min-width:0;transform:translateY(-2px)}.brand-copy .wordmark{display:block}.brand .brand-copy #app-version{display:block;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.4;letter-spacing:.07em;margin:5px 0 0;color:#969fc4;font-weight:450}
.sidebar-bottom{display:flex;flex-direction:column;gap:4px;padding-top:26px}.sidebar-bottom>.nav-button{margin:0;min-height:44px}.sidebar-bottom .nav-icon{width:20px;height:20px;color:#a9b1d5}.sidebar-bottom .nav-button:hover .nav-icon{color:#cbbfff}
.user-card{position:relative;width:100%;display:flex;align-items:center;gap:11px;text-align:left;border:1px solid #a8a4e024;border-radius:15px;padding:12px;margin-top:12px;background:linear-gradient(130deg,#aaa0ff13,#758cb40a);transition:background .18s,border-color .18s,box-shadow .18s}.user-card:hover,.user-card[aria-expanded=true]{background:#a79bff1d;border-color:#aaa0ff55;box-shadow:0 4px 24px #0002}.user-avatar{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:13px;background:linear-gradient(135deg,#b4a1ff,#7c80bf);color:#151b36;font-size:14px;font-weight:750;letter-spacing:.02em;border:1px solid #e2d6ff50;box-shadow:inset 0 1px 0 #ffffff40}.user-identity{flex:1;min-width:0}.user-identity strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.93rem;font-weight:600;color:#edf0ff}.user-identity small{display:block;font-size:.7rem;color:#9ea8c9;margin-top:2px}.user-chevron{font-size:20px;color:#a8afd0;transition:transform .2s}.user-card[aria-expanded=true] .user-chevron{transform:rotate(180deg)}.user-unread{width:7px;height:7px;border-radius:50%;background:var(--coral);box-shadow:0 0 10px #ff9aab66;flex:none}
.user-menu{position:fixed;inset:auto;margin:0;width:278px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;color:var(--text);padding:8px;border:1px solid #b5b0ff35;border-radius:17px;background:linear-gradient(145deg,#2c3155f5,#1a1e37fa);box-shadow:0 18px 65px #05071599,0 1px 0 #ffffff0c inset;backdrop-filter:blur(24px)}.user-menu:popover-open{animation:menu-arrive .18s ease-out}.user-menu-heading{padding:10px 12px 15px;margin-bottom:5px;border-bottom:1px solid #ffffff0c}.user-menu-heading strong{display:block;font-size:1rem;overflow-wrap:anywhere}.user-menu-heading small{font-size:.73rem;color:var(--muted)}.user-menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:10px 12px;border-radius:10px;color:#d6dcf2;text-align:left;font-size:.9rem;transition:background .16s,color .16s}.user-menu-item:hover{background:#a79bff19;color:#fff}.user-menu-item .nav-icon{width:19px;height:19px;color:#aeb5d7}.user-menu-divider{height:1px;margin:7px 10px;background:#ffffff10}.logout-item:hover{background:#ff9aab0d;color:#ffb6c3}
main{position:relative}.heading h1{position:relative;background:linear-gradient(110deg,#f6f5ff 20%,#d0c4ff 80%);background-clip:text;-webkit-background-clip:text;color:transparent}.heading h1::after{content:"";position:absolute;bottom:-10px;left:0;width:46px;height:2px;border-radius:2px;background:linear-gradient(90deg,#aa9cff,transparent);pointer-events:none}.summary>div::before{content:"";position:absolute;inset:0 20px auto;height:1px;background:linear-gradient(90deg,transparent,#c6baff55,transparent);pointer-events:none}.summary>div{box-shadow:0 8px 28px #0508171a,inset 0 1px 0 #ffffff03}.nav-button.active{background:linear-gradient(100deg,#a79bff27,#a79bff08);box-shadow:inset 2px 0 #bcb0ff,0 4px 18px #0509191c}.nav-button,.primary,.secondary{transition:background .18s,box-shadow .18s,border-color .18s,transform .15s}.primary:hover{box-shadow:0 5px 26px #aa91ff45}.primary:active,.secondary:active{transform:scale(.975)}.calendar-day[aria-pressed=true]{box-shadow:inset 0 0 0 1px #bbaaff66,0 0 18px #a79bff13}.calendar-day{transition:background .16s,box-shadow .16s}
dialog[open]:not(#demo-dialog){animation:surface-arrive .2s cubic-bezier(.2,.7,.25,1)}
@keyframes surface-arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes menu-arrive{from{opacity:0;transform:translateY(5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:680px){.sidebar{padding-top:15px}.sidebar-bottom{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px;padding:0;position:static}.sidebar-bottom>.nav-button{width:100%;height:auto;justify-content:center;padding:7px 9px;border:1px solid #ffffff0c;background:#a79bff08;border-radius:11px;font-size:.83rem;gap:8px}.sidebar-bottom .nav-button span{font-size:.83rem}.user-card{grid-column:1 / -1;margin:0;padding:9px 12px;min-height:62px}.user-avatar{width:36px;height:36px;border-radius:11px}.user-identity small{font-size:.72rem}.user-chevron{margin-left:auto}.brand .brand-copy #app-version{font-size:11px}.heading h1::after{width:32px}.user-menu-item{min-height:48px;font-size:16px}.user-menu-heading strong{font-size:16px}.user-menu{width:300px}}
@media(prefers-reduced-motion:reduce){dialog[open]:not(#demo-dialog),.user-menu:popover-open{animation:none}.nav-button,.primary,.secondary,.user-card,.user-chevron,.calendar-day{transition:none}.primary:active,.secondary:active{transform:none}}

/* RUCapture: compact navigation and a canvas for timelines. */
.workspace{grid-template-columns:268px minmax(0,1fr);transition:grid-template-columns .28s cubic-bezier(.2,.7,.25,1)}.sidebar{padding:26px 12px 18px;overflow:visible}.brand-row{display:flex;align-items:center;gap:7px;min-height:54px}.sidebar-toggle{display:grid;place-items:center;flex:none;width:28px;min-height:36px;padding:4px;border-radius:8px;color:#a6b0d2}.sidebar-toggle:hover{background:#a79bff18;color:var(--text)}.sidebar-toggle svg{width:21px;fill:none;stroke:currentColor;stroke-width:1.6}.brand{padding:0;gap:8px;min-width:0;max-width:none}.brand-icon{width:35px;height:35px;border-radius:11px;flex:none}.brand-copy{max-width:155px;overflow:hidden;transition:max-width .26s,opacity .18s;transform:translateY(-2px)}.wordmark{font-size:23px;letter-spacing:-1px}.brand .brand-copy #app-version{margin-top:3px;font-size:10px}#categories{margin-top:32px}.nav-button span{white-space:nowrap;overflow:hidden;transition:opacity .15s,max-width .26s;max-width:180px}.nav-button{min-height:46px}.nav-button .count{max-width:40px}.user-card{min-height:48px;padding:8px 11px;border-radius:10px;border:0;background:#ffffff03;box-shadow:none;margin-top:6px;gap:10px}.user-avatar{width:29px;height:29px;border-radius:9px;font-size:11px}.user-identity strong{font-size:.85rem}.user-identity small{font-size:.65rem;margin-top:0}.user-identity{max-width:160px;transition:max-width .25s,opacity .18s}.user-chevron{font-size:16px}.user-card:hover{box-shadow:none}.user-card[aria-expanded=true]{box-shadow:inset 0 0 0 1px #a79bff32}
.workspace.sidebar-collapsed{grid-template-columns:92px minmax(0,1fr)}.sidebar-collapsed .brand-copy{max-width:0;opacity:0}.sidebar-collapsed .brand{gap:0}.sidebar-collapsed .nav-button{gap:0;justify-content:center;padding:10px}.sidebar-collapsed .nav-button span{max-width:0;opacity:0;margin:0}.sidebar-collapsed .nav-icon{width:23px;height:23px}.sidebar-collapsed .user-card{justify-content:center;gap:0;padding:9px}.sidebar-collapsed .user-identity,.sidebar-collapsed .user-chevron{max-width:0;overflow:hidden;opacity:0;margin:0}.sidebar-collapsed .user-unread{position:absolute;right:7px;top:5px}.sidebar-collapsed .brand-icon{width:32px;height:32px}.sidebar-collapsed .brand-row{gap:4px}
.overview-views{display:flex;align-items:center;gap:7px;margin:-8px 0 20px;border-bottom:1px solid var(--border);padding-bottom:10px}.overview-views button{padding:8px 18px;border-radius:10px;color:var(--muted);font-size:.92rem;transition:background .18s,color .18s}.overview-views button[aria-pressed=true]{background:#a79bff1c;color:#dbd4ff;box-shadow:inset 0 -2px #b5a5ff}.task-footer{display:flex;flex-direction:column;align-items:stretch;gap:8px}.task-footer-main{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.task-footer-main:empty{display:none}.task-footer-main>a{margin-left:auto;font-size:.82rem;white-space:normal;text-align:right}.task-actions{display:flex;justify-content:flex-end;width:100%;margin:0}.task-footer-main .custom-select{max-width:160px}.task-footer-main .select-trigger{font-size:.85rem;min-height:38px}
.custom-select{position:relative;min-width:0}.custom-select-native{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;pointer-events:none}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;width:100%;padding:9px 13px;border:1px solid #b0a5fa35;border-radius:10px;background:linear-gradient(120deg,#292d4b,#1c2039);color:#dcd8f5;text-align:left;font-size:.92rem}.select-trigger:hover,.select-trigger[aria-expanded=true]{border-color:#baa9ff80;background:#303453}.select-menu{position:absolute;z-index:15;top:calc(100% + 6px);left:0;min-width:100%;max-width:min(320px,80vw);max-height:260px;overflow:auto;padding:5px;border:1px solid #b1a2ff40;border-radius:12px;background:#232740;box-shadow:0 12px 36px #07091699}.select-option{display:block;width:100%;text-align:left;padding:9px 12px;border-radius:7px;font-size:.9rem;min-height:40px;white-space:normal}.select-option:hover,.select-option:focus-visible{background:#a79bff22;outline:none}.select-option[aria-selected=true]{background:#a79bff18;color:#d1c5ff}.custom-select+label{margin-top:20px}
.cat-5{color:#b9b0ee}.record-board{display:flex;flex-direction:column;gap:28px}.record-day>h2{font-size:.92rem;color:#a7a0ca;font-weight:450;margin:0 0 14px;padding-left:13px;border-left:2px solid #a89bd56b}.record-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.record-cards .task{background:linear-gradient(155deg,#2d2d4f,#191f37);border-color:#ae9ee51f}.record-cards .task-content{font-size:1rem;line-height:1.9}.record-cards .task-meta .badge{color:#c3b2ff}
.axes-board{display:block}.axes-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.axes-toolbar .hint{margin:0}.axes-canvas{position:relative;height:clamp(500px,67vh,850px);min-width:0;overflow:hidden;border:1px solid #8a86bd35;border-radius:20px;background-color:#171c31;background-image:radial-gradient(#aaa8db35 1px,transparent 1px);background-size:28px 28px;box-shadow:inset 0 0 100px #0b102533}.axes-canvas>svg{display:block;width:100%;height:100%;touch-action:none;cursor:grab;user-select:none}.axes-canvas.grabbing>svg{cursor:grabbing}.canvas-controls{position:absolute;right:16px;bottom:16px;display:flex;border:1px solid #a79bff35;border-radius:11px;background:#262c45e6;box-shadow:0 6px 25px #070b1d55}.canvas-controls button{min-width:42px;padding:5px 10px;font-size:.85rem}.canvas-controls button:hover{background:#a79bff22}.canvas-hint{position:absolute;left:17px;bottom:23px;font-size:.72rem;color:#959cbb;pointer-events:none}.canvas-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px dashed #aea4eb66;border-radius:16px;padding:20px;color:#cbc0f5;font-size:1rem;background:#242b4666;white-space:nowrap}.axis-line{--axis-color:#b5a5ff}.axis-color-1{--axis-color:#84bdcf}.axis-color-2{--axis-color:#d5a8c7}.axis-color-3{--axis-color:#b7bc8e}.axis-color-4{--axis-color:#92a4e3}.axis-path{fill:none;stroke:var(--axis-color);stroke-opacity:.47;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.axis-node{cursor:pointer;outline:none}.axis-card{cursor:grab}.axis-node text{font-size:13px;fill:#dce1f8;pointer-events:none}.axis-head rect{fill:#30334f;stroke:var(--axis-color);stroke-opacity:.85;stroke-width:1.3}.axis-head text{font-weight:550;fill:#eee8ff}.axis-node circle{fill:#171c31;stroke:var(--axis-color);stroke-width:2}.axis-card circle{fill:var(--axis-color);stroke:#e4ddff66}.axis-card .record-dot{fill:#181d34;stroke-width:3}.axis-tail circle{fill:#30334f}.axis-tail text{font-size:20px}.axis-node:hover circle,.axis-node:focus-visible circle,.axis-node:hover rect,.axis-node:focus-visible rect{filter:drop-shadow(0 0 8px var(--axis-color));stroke:#f5f0ff}.axis-members{margin-top:24px}.axis-members h3{margin-bottom:10px}.axis-member{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--border);padding:14px 0}.axis-member>div{flex:1;min-width:0}.axis-member strong{display:block;font-size:.93rem;overflow-wrap:anywhere}.axis-member small{display:block;color:var(--muted);font-size:.74rem;margin-top:3px}.axis-member button{flex:none}#axis-delete{margin-right:auto;color:var(--coral)}.axis-add-dialog{width:340px}.axis-add-type{display:flex;gap:16px;align-items:center;width:100%;padding:12px 18px;border-radius:10px;text-align:left}.axis-add-type:hover{background:#a79bff18}
@media(max-width:1100px){.record-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.workspace,.workspace.sidebar-collapsed{display:block}.sidebar{padding:14px 16px 12px}.brand-row{gap:10px}.brand-copy{max-width:200px}.brand-icon{width:38px;height:38px}.wordmark{font-size:26px}#categories{margin-top:8px;padding:10px 0}.sidebar-bottom{margin-top:5px}.sidebar-bottom>.nav-button{min-height:42px}.user-card{min-height:45px;padding:7px 12px}.user-avatar{width:27px;height:27px}.sidebar-collapsed .sidebar-bottom{grid-template-columns:1fr 1fr 1fr}.sidebar-collapsed .user-card{grid-column:auto}.sidebar-collapsed #categories .nav-button{min-width:44px}.record-cards{grid-template-columns:1fr}.overview-views{margin-top:-4px}.axes-canvas{height:62dvh;min-height:400px;border-radius:14px}.axes-toolbar .secondary{font-size:.85rem;padding:8px 13px}.canvas-hint{bottom:70px;font-size:11px}.canvas-controls{bottom:14px;right:14px}.task-footer-main .select-trigger{font-size:16px}.select-trigger{font-size:16px}.select-option{font-size:16px;min-height:44px}.axis-member{gap:5px}.axis-member button{padding:7px;font-size:.82rem}}
@media(prefers-reduced-motion:reduce){.workspace,.brand-copy,.user-identity,.nav-button span{transition:none}}

/* Stable navigation geometry and compact controls. */
.brand-row{height:54px;min-height:54px;flex:none;gap:8px}.brand-row .brand{height:54px;flex:1;overflow:hidden}.brand-row .brand-icon,.sidebar-collapsed .brand-icon{width:32px;height:32px}.sidebar-toggle{margin-left:auto;height:36px;width:28px;flex:none}.sidebar-collapsed .brand-row{gap:8px}.sidebar-collapsed .brand-copy{display:block;white-space:nowrap}.sidebar-collapsed .brand{flex:1}.nav-button,.sidebar-collapsed .nav-button{height:48px;min-height:48px;padding:10px 14px;flex-wrap:nowrap}.nav-icon,.sidebar-collapsed .nav-icon{width:22px;height:22px;flex:none}.user-card,.sidebar-collapsed .user-card{height:48px;min-height:48px}.brand-icon img{width:100%;height:100%}.brand-copy{white-space:nowrap}.select-trigger{justify-content:flex-start;gap:10px;padding:10px 13px;background:#222640;box-shadow:inset 0 1px 0 #ffffff04}.select-trigger .select-arrow{display:block;flex:none;width:8px;height:8px;margin:0 3px 0 auto;border-top:1.6px solid currentColor;border-right:1.6px solid currentColor;color:#aaa5c9;transform:rotate(45deg);transition:transform .18s,color .18s}.select-trigger[aria-expanded=true] .select-arrow{transform:rotate(135deg);color:var(--accent)}.select-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary small:empty{display:none}
.record-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.record-column{min-width:0}.record-column h2{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;font-size:1.1rem}.record-group{border-left:2px solid #b3a0e975;padding-left:20px}.axes-toolbar-actions{display:flex;gap:9px}.axes-toolbar .hint{font-size:.8rem}.axis-head text{font-size:11px}.axis-tail text{font-size:15px}.axis-card circle.open-dot{fill:#171c31;stroke:var(--axis-color)}.axis-card circle.done-dot,.axis-card circle.record-dot{fill:var(--axis-color);stroke:var(--axis-color);stroke-width:2}.axis-node .node-check{fill:none;stroke:#17182d;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.axis-node circle.node-hit{fill:transparent;stroke:none;filter:none}.axis-node{cursor:grab}.axes-canvas.grabbing .axis-node{cursor:grabbing}
/* Public entry: all counts come from the account service. */
.login{display:block;padding:24px clamp(22px,5vw,90px) 32px;position:relative;isolation:isolate;background:radial-gradient(ellipse at 5% 10%,#7e62dc26,transparent 53%),radial-gradient(ellipse at 100% 70%,#39a6b510,transparent 50%),#101326}.landing-header,.landing-grid,.landing-features{width:100%;max-width:1240px;margin-left:auto;margin-right:auto}.landing-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:25px;border-bottom:1px solid #bcb0ff17}.landing-brand{display:flex;align-items:center;gap:12px;color:#f0edff;font-size:22px;letter-spacing:-.7px}.landing-brand:hover{text-decoration:none}.landing-edition{font-size:12px;color:#a4a3c1;letter-spacing:1px}.landing-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(24px,5vw,85px);align-items:center;padding:42px 0 36px}.landing-kicker{display:flex;gap:10px;align-items:center;font-size:13px;color:#b7accf;margin-bottom:18px}.landing-kicker>span{width:6px;height:6px;border-radius:50%;background:#85ddc4;box-shadow:0 0 12px #85ddc499}.landing-story h1{font-size:clamp(35px,4vw,57px);line-height:1.28;letter-spacing:-1.5px;font-weight:600}.landing-story h1 em{font-style:normal;background:linear-gradient(90deg,#bca4ff,#8ec7de);background-clip:text;-webkit-background-clip:text;color:transparent}.landing-intro{color:#a8aecb;margin-top:18px;font-size:14px;max-width:430px;line-height:1.9}.landing-art{height:265px;position:relative;margin:8px 0;pointer-events:none}.landing-art>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.landing-art .art-path{stroke:url(#landing-line);stroke-width:2;fill:none;stroke-dasharray:700;animation:trace-line 2s ease-out both}.landing-art .second{opacity:.3;animation-delay:.2s}.landing-art circle{fill:#b2a2f1;stroke:#e1d7ff66;stroke-width:4}.art-glow{position:absolute;inset:40px 30px;background:radial-gradient(ellipse,#a19aff22,transparent 70%);filter:blur(18px)}.art-card{position:absolute;border:1px solid #b0a0f342;border-radius:14px;padding:16px 18px;background:linear-gradient(135deg,#343251df,#23273ced);box-shadow:0 18px 40px #0003;animation:card-hover 7s ease-in-out infinite}.art-card>span{font-size:11px;letter-spacing:2px;color:#b7abe2}.art-card strong{display:block;font-size:13px;font-weight:500;margin-top:7px;color:#ece7ff}.art-plan{top:30px;left:4%;width:245px;transform:rotate(-3deg)}.art-note{right:2%;top:110px;width:205px;animation-delay:-3s}.art-week{display:flex;justify-content:space-between;margin-top:13px;gap:7px}.art-week i{font-size:10px;font-style:normal;padding:3px;color:#8d94b2}.art-week .selected{border-radius:5px;background:#b5a4f9;color:#1c1e31;padding:3px 7px}.art-note-lines{margin-top:13px}.art-note-lines i{display:block;height:3px;background:#b6b2da28;border-radius:3px;margin-top:7px}.art-note-lines i:last-child{width:60%}.art-chip{position:absolute;bottom:17px;left:23%;font-size:11px;color:#9fafc8;padding:7px 12px;border:1px solid #8a9abd25;border-radius:20px;background:#171e32}.landing-stats{display:flex;gap:40px;border-top:1px solid #a79bff18;padding-top:17px;width:max-content;max-width:100%}.landing-stats>div{display:flex;flex-direction:column}.landing-stats strong{font-size:25px;font-weight:550;line-height:1.3;color:#dedaf9;font-variant-numeric:tabular-nums}.landing-stats span{font-size:11px;margin-top:5px;color:#8f99b6}.login-card{width:100%;padding:30px;border-radius:23px;border-color:#bdadff30;background:linear-gradient(145deg,#2a2c4be6,#1a1f36e6);box-shadow:0 24px 80px #05081450,inset 0 1px 0 #ffffff0d}.login-card-heading h2{font-size:24px;font-weight:550}.login-card-heading p{font-size:12px;color:#959bb9;margin-top:6px}.login-card .auth-tabs{margin-top:25px}.login-card label{font-size:13px;margin-top:19px}.login-card input{font-size:14px;min-height:45px}.login-card .primary{margin-top:20px;min-height:46px}.login-card .remember-control{display:flex;gap:8px;align-items:center;font-size:12px;color:#c1bed5;margin-top:19px}.remember-control input{width:16px;height:16px;min-height:16px;margin:0;accent-color:#b9a5ff}.remember-control small{font-size:10px;color:#848da9;margin-left:auto}.login-card #auth-recover{display:block;margin:10px auto -8px;font-size:11px;color:#a9a7be}.landing-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #a79bff1b;padding-top:24px;gap:20px}.landing-features>div{display:grid;grid-template-columns:28px 1fr;column-gap:10px}.landing-features b{grid-row:span 2;font-size:22px;font-weight:400;color:#ad9ce6}.landing-features strong{font-size:13px;font-weight:500;color:#d8d3f0}.landing-features span{font-size:11px;color:#8590af;margin-top:4px}
@keyframes trace-line{from{stroke-dashoffset:700}to{stroke-dashoffset:0}}@keyframes card-hover{0%,100%{translate:0 0}50%{translate:0 -7px}}
@media(max-width:960px){.landing-grid{grid-template-columns:minmax(0,1fr) 330px;gap:25px}.landing-art{height:240px}.art-plan{width:200px;left:0}.art-note{width:175px;right:0}.landing-story h1{font-size:36px}.landing-stats{gap:28px}.login-card{padding:25px}.record-board{grid-template-columns:1fr}}
@media(max-width:680px){.brand-row,.sidebar-collapsed .brand-row{gap:8px}.brand-row .brand-icon,.sidebar-collapsed .brand-icon{width:32px;height:32px}.brand-row .brand{flex:none}.sidebar-toggle{margin-left:auto}.nav-button,.sidebar-collapsed .nav-button{height:46px;min-height:46px}.sidebar-bottom>.nav-button{height:44px;min-height:44px}.axes-toolbar-actions{gap:6px}.axes-toolbar-actions .secondary{font-size:12px;padding:8px 10px}.axes-toolbar>.hint{font-size:11px}.login{padding:18px 20px 30px}.landing-header{padding-bottom:18px}.landing-brand{font-size:20px}.landing-edition{font-size:10px;letter-spacing:0}.landing-grid{display:flex;flex-direction:column;gap:26px;padding:28px 0}.landing-story{width:100%}.landing-story h1{font-size:36px}.landing-kicker{font-size:11px;margin-bottom:13px}.landing-intro{font-size:12px;margin-top:12px;max-width:340px}.landing-art{display:none}.landing-stats{margin-top:22px;gap:38px;border-top:0;padding-top:0}.landing-stats strong{font-size:22px}.landing-stats span{font-size:10px}.login-card{max-width:430px;padding:25px}.login-card input{font-size:16px}.login-card .remember-control{font-size:13px}.remember-control small{font-size:11px}.landing-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.landing-features>div{column-gap:4px}.landing-features span{font-size:10px}.landing-features strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.art-card,.landing-art .art-path{animation:none}.select-arrow{transition:none}}

@media(min-width:681px){
  .nav-button,.sidebar-collapsed .nav-button{justify-content:flex-start;transition:padding .28s cubic-bezier(.2,.7,.25,1),background .18s,color .18s,box-shadow .18s}
  .sidebar-collapsed .nav-button{padding-left:23px;padding-right:23px}
  .user-card,.sidebar-collapsed .user-card{justify-content:flex-start;transition:padding .28s cubic-bezier(.2,.7,.25,1),background .18s}
  .sidebar-collapsed .user-card{padding-left:19.5px;padding-right:19.5px}
}
@media(prefers-reduced-motion:reduce){.nav-button,.sidebar-collapsed .nav-button,.user-card,.sidebar-collapsed .user-card{transition:none}}

/* Five concise steps, with status retained while users revisit earlier steps. */
.sidebar-divider{transition:transform .28s cubic-bezier(.2,.7,.25,1)}.sidebar-collapsed .sidebar-divider{transform:translateX(-5px)}
.sync-progress{display:flex;position:relative;isolation:isolate;margin:22px 0 24px;gap:0}.sync-progress::before{content:"";position:absolute;left:10%;right:10%;top:17px;height:1px;background:#b0a3ec40;z-index:-1}.sync-progress button{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;padding:0;background:none;border:0;color:var(--muted);font-size:12px;min-width:0}.sync-dot{display:grid;place-items:center;width:34px;height:34px;border:1px solid #77718f;border-radius:50%;background:#20243f;color:#aaa7bd;font-size:13px;transition:background .2s,box-shadow .2s,border-color .2s}.sync-progress .complete .sync-dot{background:#a99aeb;color:#17182c;border-color:#bcb0ff}.sync-progress [aria-selected=true]{color:var(--text)}.sync-progress [aria-selected=true] .sync-dot{border-color:#d3c6ff;box-shadow:0 0 0 4px #ac99ff25,0 0 20px #aa95ff22}.sync-progress button:focus-visible{outline:0}.sync-progress button:focus-visible .sync-dot{outline:2px solid var(--mint);outline-offset:5px}.sync-step-actions{display:flex;justify-content:space-between;gap:12px;margin-top:18px}.sync-step-actions button{min-width:86px}.guide-step{margin-top:0;animation:sync-step-in .18s ease-out}.extension-update{margin:18px 0}.extension-update summary{cursor:pointer;color:var(--muted);font-size:.85rem}.extension-update ol{margin-top:10px}#collector-recheck{margin-top:12px}#cloud-panel iframe{display:block;width:100%;height:188px;border:0;background:transparent;color-scheme:dark}#cloud-revoke{margin-top:8px}.summary small{line-height:1.5}.select-value{min-width:0}.select-trigger{width:100%;text-align:left}.record-column>.count{border:0}
@keyframes sync-step-in{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:680px){.sync-progress{margin:18px 0}.sync-progress button{font-size:11px}.sync-step-actions .primary{font-size:13px}#cloud-panel iframe{height:224px}.record-board{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.sidebar-divider,.sync-dot{transition:none}.guide-step{animation:none}}
