:root{--ink:#17324d;--muted:#647487;--paper:#f5f7f8;--card:#fff;--line:#d8e0e6;--blue:#2979a8;--blue-soft:#e8f3f8;--amber:#a45f16;--amber-soft:#fff2dc;--green:#2d7259;--shadow:0 2px 10px rgba(25,52,77,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Helvetica Neue",sans-serif;font-size:18px;line-height:1.45}button,input{font:inherit}button{color:inherit}header{display:flex;align-items:center;justify-content:space-between;padding:22px max(22px,calc((100vw - 820px)/2));background:var(--ink);color:#fff}h1{font-size:1.65rem;line-height:1.1;margin:2px 0}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.13em;margin:0;color:#b9d8e7}.eyebrow.blue{color:var(--blue)}.eyebrow.amber{color:var(--amber)}.iconBtn{border:1px solid #ffffff55;background:#ffffff12;color:#fff;border-radius:12px;min-width:48px;min-height:48px}.studentTabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px max(14px,calc((100vw - 820px)/2));background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:4}.studentTabs button{border:0;background:transparent;border-radius:10px;padding:12px 6px;font-weight:750}.studentTabs button.active{background:var(--ink);color:#fff}main{max-width:820px;margin:auto;padding:18px 18px 110px}.dateBar{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;gap:10px}.dateBar>button{border:1px solid var(--line);background:#fff;border-radius:12px;min-height:52px;box-shadow:var(--shadow)}.dateTitle{display:flex;flex-direction:column;align-items:center;justify-content:center}.dateTitle span{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.dateTitle strong{font-size:1.12rem}.progressCard{background:var(--ink);color:#fff;border-radius:16px;padding:18px;margin:18px 0;box-shadow:var(--shadow)}.progressCopy{display:flex;justify-content:space-between;gap:12px}.progressCopy span{color:#c5d8e5;font-size:.85rem}.progressTrack{height:9px;background:#ffffff24;border-radius:9px;margin-top:12px;overflow:hidden}.progressTrack div{height:100%;width:0;background:#7dc9ad;transition:width .25s}.taskSection{margin-top:26px}.sectionHeading{display:flex;justify-content:space-between;align-items:end;margin-bottom:10px}.sectionHeading h2{margin:2px 0 0;font-size:1.3rem}.count{font-size:.8rem;color:var(--muted)}.taskList{display:grid;gap:10px}.task{display:grid;grid-template-columns:50px 1fr;gap:12px;background:var(--card);border:1px solid var(--line);border-left:6px solid var(--subject,#6b8498);border-radius:14px;padding:14px 16px 14px 10px;box-shadow:var(--shadow);transition:opacity .2s}.task.fixed{background:#f0f5f7}.task.complete{opacity:.48}.task.complete .taskTitle,.task.complete .taskDetail{text-decoration:line-through}.check{appearance:none;width:34px;height:34px;border:3px solid var(--subject,#6b8498);border-radius:9px;margin:3px auto 0;display:grid;place-content:center;background:#fff}.check:checked{background:var(--subject,#2d7259)}.check:checked:after{content:"✓";color:#fff;font-size:24px;font-weight:bold;line-height:1}.taskMeta{font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--subject,#607589)}.taskTitle{font-weight:800;font-size:1.02rem;margin-top:2px}.taskDetail{font-size:.9rem;color:#445668;margin-top:3px}.carried{font-size:.76rem;color:var(--amber);font-weight:700;margin-top:7px}.breakNotice{background:var(--blue-soft);border:1px solid #b8d9e8;border-radius:14px;padding:18px;margin-top:18px}.breakNotice strong{display:block;font-size:1.1rem}.empty{text-align:center;background:#fff;border:1px dashed #b8c5ce;border-radius:16px;padding:30px 20px}.emptyMark{width:54px;height:54px;margin:auto;border-radius:50%;background:#e4f3ed;color:var(--green);display:grid;place-items:center;font-size:1.7rem;font-weight:bold}.empty h2{margin:10px 0 3px}.empty p{margin:0;color:var(--muted)}.hidden{display:none!important}footer{position:fixed;bottom:0;left:0;right:0;background:#ffffffed;backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:12px max(18px,calc((100vw - 820px)/2));display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.76rem;color:var(--muted);z-index:5}.primary{border:0;border-radius:10px;background:var(--ink);color:#fff;padding:12px 18px;font-weight:750}dialog{width:min(92vw,560px);border:0;border-radius:18px;padding:0;box-shadow:0 18px 70px #10253855;color:var(--ink)}dialog::backdrop{background:#11283b99}.dialogHead{display:flex;justify-content:space-between;align-items:start;padding:22px;border-bottom:1px solid var(--line)}.dialogHead h2{margin:2px 0}.close{border:0;background:#edf2f5;border-radius:50%;width:42px;height:42px;font-size:1.5rem}.settingRow{display:flex;justify-content:space-between;gap:15px;padding:22px;border-bottom:1px solid var(--line)}.settingRow small{display:block;color:var(--muted);margin-top:3px}.settingRow input{width:26px;height:26px}.toolButtons{display:grid;gap:10px;padding:22px}.toolButtons button,.fileButton{border:1px solid var(--line);background:#fff;border-radius:10px;padding:13px;text-align:center;font-weight:700}.fileButton input{display:none}.toolButtons .danger{color:#9b3434}.privacyNote{margin:0;padding:0 22px 22px;color:var(--muted);font-size:.8rem}@media(max-width:520px){body{font-size:17px}header{padding:18px}.studentTabs{padding:8px}.studentTabs button{font-size:.88rem}.progressCopy{display:block}.progressCopy span{display:block;margin-top:3px}.task{grid-template-columns:44px 1fr;padding-right:12px}footer span{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
