:root{--accent:#a4adff;--accent-ink:#111521;--bg:#0e1321;--paper:#181f31;--ink:#edf0fa;--muted:#a9b4c9;--line:#303a50;--green:var(--accent);--lime:var(--accent);--soft:#222c42;--field:#101827;--hero:#222e49}
:root[data-theme=paper]{--accent:#4869d8;--accent-ink:#fff;--bg:#f4f6fc;--paper:#fff;--ink:#18243a;--muted:#5d6c84;--line:#dbe2f1;--soft:#ecf0fa;--field:#fff;--hero:#e4eafa}
:root[data-theme=peach]{--accent:#b75031;--accent-ink:#fff;--bg:#fff5ee;--paper:#fffdf9;--ink:#422c25;--muted:#7b655c;--line:#eddcd0;--soft:#f9e8dc;--field:#fffaf5;--hero:#f6ded0}
:root[data-theme=custom]{--bg:#0e1321;--paper:#181f31;--ink:#edf0fa;--muted:#a9b4c9;--line:#303a50;--soft:#222c42;--field:#101827;--hero:#222e49}
body{background:var(--bg);background-image:radial-gradient(ellipse at 80% 0%,#6575c716,transparent 50%);color:var(--ink)}.shell{max-width:1180px;padding-bottom:120px}.topbar{height:100px;border-bottom:1px solid var(--line);margin-bottom:24px}.brand{font-size:18px;letter-spacing:-.6px;color:var(--ink)}.brandmark{background:var(--accent);color:var(--accent-ink);border-radius:14px;transform:rotate(-6deg);font-size:28px}.brand-sub{font-size:8px;letter-spacing:2px;color:var(--muted)}.brand-title{display:block}.avatar{background:var(--soft);color:var(--ink);border-color:var(--line)}h1{font-weight:650;letter-spacing:-1.6px;font-size:clamp(28px,4vw,42px)}.eyebrow{color:var(--accent);font-size:10px;letter-spacing:1.8px}.hero{background:var(--hero);border:1px solid var(--line);border-radius:28px;position:relative;color:var(--ink);padding:32px}.hero::after{content:'';position:absolute;pointer-events:none;right:-40px;top:-60px;width:290px;height:290px;border:1px solid #a4adff26;border-radius:50%;box-shadow:0 0 0 35px #a4adff08,0 0 0 70px #a4adff06}.hero>div{position:relative;z-index:1}.hero .eyebrow{color:var(--accent)}.hero .reference,.hero .muted,.hero-side p{color:var(--muted)}.hero h2{font-size:27px}.hero .hero-side{border-color:var(--line)}.progressring{background:conic-gradient(var(--accent) var(--progress),var(--line) 0)}.progressring:before{background:var(--hero)}.stat,.subject-card,.panel,.task-card,details,.empty{background:var(--paper);border-color:var(--line);color:var(--ink)}.stat,.subject-card,.task-card{box-shadow:0 4px 16px #00000009}.panel.soft,.explanation{background:var(--soft);color:var(--ink)}.subject-card .subject-icon,.class-symbol{background:var(--soft);color:var(--class-color,var(--accent));border:1px solid var(--class-color,var(--line))}.subject-card:hover{border-color:var(--accent)}.subject-card .arrow{color:var(--accent)}.bar{background:var(--line)}.bar i{background:var(--accent)}.btn,.btn.lime{background:var(--accent);color:var(--accent-ink);border-radius:12px;box-shadow:0 5px 20px #0001}.btn.secondary{background:var(--soft);color:var(--ink)}.btn.outline{border-color:var(--line);color:var(--ink)}.btn.danger{background:#9d432626;color:#efad93}.textbtn{color:var(--accent)}.icon-btn,.close{background:var(--soft);border-color:var(--line);color:var(--ink)}.bottomnav{background:var(--paper);border-color:var(--line);width:470px;grid-template-columns:repeat(5,1fr);box-shadow:0 8px 40px #0003}.bottomnav button{color:var(--muted)}.bottomnav button.active{background:var(--soft);color:var(--accent)}.chip{background:var(--paper);border-color:var(--line);color:var(--muted)}.chip.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.input,input:not([type=checkbox]),textarea,select{background:var(--field);border-color:var(--line);color:var(--ink);color-scheme:dark}.taskopen{color:var(--ink)}.tag,.tag.gray{background:var(--soft);color:var(--muted)}.tag.orange{background:#b17a3b25;color:#dfb77f}.tag.blue{background:#6699b925;color:#a0c5e0}.task-card .check{background:var(--field);border-color:var(--line);color:var(--accent)}.task-card .check.done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.next-reminder .circle{background:var(--paper);color:var(--accent)}.timerdisc{background:conic-gradient(var(--accent) var(--progress,0%),var(--line) 0)}.timerdisc:before{background:var(--paper)}dialog{background:var(--bg);color:var(--ink);border-color:var(--line)}dialog::backdrop{background:#080d18a6}.reminderrow,.backupbox,.sessionitem,details{border-color:var(--line)}.backupbox{background:var(--soft)}.daybuttons button{background:var(--field);color:var(--muted);border-color:var(--line)}.daybuttons button.active{background:var(--accent);color:var(--accent-ink)}.notice{background:#bd89401b;color:#e5bc84}.tiplabel{color:var(--accent)}#toast{background:var(--paper);color:var(--ink);border-color:var(--accent)}#toast.warning{background:var(--paper);border-color:#b38350;color:#e8b57a}.themechoices{display:grid;grid-template-columns:1fr 1fr;gap:9px}.themechoice{padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--field);color:var(--ink);text-align:left;display:grid;grid-template-columns:24px 1fr;column-gap:10px;align-items:center}.themechoice.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.themechoice strong{font-size:13px}.themechoice small{grid-column:2;font-size:10px;color:var(--muted);margin-top:4px}.theme-dot{width:22px;height:22px;border-radius:50%;grid-row:span 2;border:2px solid #ffffff45}.theme-dot.night{background:#a4adff}.theme-dot.paper{background:#4869d8}.theme-dot.peach{background:#b75031}.theme-dot.custom{background:var(--accent)}input[type=color]{padding:6px;height:46px}.class-list{display:grid;gap:8px}.class-row{display:flex;align-items:center;gap:12px;background:var(--field);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:13px;text-align:left}.class-symbol{height:37px;width:37px;display:grid;place-items:center;flex-shrink:0;border-radius:11px;font-size:15px;font-weight:700}.class-row strong{display:block;font-size:13px}.class-row small{display:block;font-size:10px;margin-top:4px;color:var(--muted)}.class-row .arrow{margin-left:auto;color:var(--accent)}.schedule-item{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:13px 0}.schedule-item strong{font-size:13px}.schedule-item p{margin:4px 0 0}.schedule-days{display:flex;flex-wrap:wrap;gap:10px;padding:10px 0}.schedule-days .togglelabel{padding:7px;border:1px solid var(--line);border-radius:8px}.scan-hero{padding:26px;background:var(--hero)}.scan-hero h2{font-size:25px;max-width:600px}.scan-hero p{max-width:700px}.scan-results{max-height:1000px;overflow:auto}.candidate{border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0;background:var(--field)}.candidate label{font-size:11px}.candidate .togglelabel strong{font-size:12px}.candidate details{background:var(--soft)}label.btn{margin:0;cursor:pointer;min-height:44px}input[type=checkbox]{accent-color:var(--accent)}[data-theme=paper] input,[data-theme=paper] textarea,[data-theme=paper] select,[data-theme=peach] input,[data-theme=peach] textarea,[data-theme=peach] select{color-scheme:light}[data-theme=paper] .notice,[data-theme=peach] .notice{color:#8b5523}[data-theme=paper] .tag.orange,[data-theme=peach] .tag.orange{color:#8b5523}[data-theme=paper] .tag.blue,[data-theme=peach] .tag.blue{color:#33627f}
[data-density=compact] .panel{padding:17px;margin-bottom:12px}[data-density=compact] .task-card{padding:11px}[data-density=compact] .subject-card{padding:14px;min-height:104px}[data-density=compact] .sectionhead{margin-top:16px}[data-text-size=large] p,[data-text-size=large] .explanation,[data-text-size=large] .steps{font-size:16px;line-height:1.65}[data-text-size=large] p.small,[data-text-size=large] .reference{font-size:14px}[data-text-size=large] input,[data-text-size=large] textarea,[data-text-size=large] select{font-size:16px}[data-text-size=small] p,[data-text-size=small] .explanation,[data-text-size=small] .steps{font-size:12px}[data-text-size=small] p.small{font-size:11px}
@media(max-width:650px){.topbar{height:78px;margin-bottom:17px}.brand{font-size:16px}.brand-sub{font-size:7px}.hero{padding:23px}.hero h2{font-size:22px}.hero::after{width:180px;height:180px;top:-50px;right:-65px}.hero .hero-side{border-top-color:var(--line)}.bottomnav{width:calc(100% - 24px);padding:6px}.bottomnav button{font-size:9px}.bottomnav button span{font-size:20px}.scan-hero{padding:20px}.scan-hero h2{font-size:22px}.class-row{padding:11px}.themechoice{padding:12px}.candidate{padding:13px}.scan-results{max-height:none}.brandmark{width:35px;height:35px}.avatar{width:33px;height:33px}.sectionhead .btn{padding:10px;font-size:11px}.pageintro .eyebrow{font-size:9px;letter-spacing:1.3px}.pageintro h1{font-size:30px}.pageintro p.muted{font-size:12px}.reminderfoot{flex-wrap:wrap}}
