:root{--bg: #fafaf7;--fg: #1a1a1a;--muted: #6b6b6b;--line: #e3e1d8;--card: #ffffff;--hover: #f1efe8;--accent: #2b59c3;--urgent: #c4302b;--warn: #d97706;--good: #16a34a;--reading: #2563eb;--la: #7c3aed;--ss: #ea580c;--math: #059669;--science: #0891b2}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-size:16px;line-height:1.45}.wrap{max-width:1280px;margin:0 auto;padding:16px 20px 64px}.hidden{display:none!important}footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}@media print{@page{margin:.5in}body{background:#fff!important;font-size:11pt}.no-print,header,.pageswitch,.banner,#work-toolbar,#tabs,footer{display:none!important}.wrap{max-width:100%!important;padding:0!important}.form-section{border:1px solid #000!important;box-shadow:none!important;page-break-inside:avoid}.form-header{border:2px solid #000!important}.form-write .line{min-width:280px}.form-checkbox{border-color:#000!important}.book-line{background:#f5f5f5!important;border:1px solid #888!important}.qr-section{border:1px dashed #000!important}}@media (max-width: 600px){h1{font-size:22px}.wrap{padding:12px 14px 40px}.grid{grid-template-columns:1fr}table{font-size:13px}th,td{padding:8px 10px}.meta{font-size:12px}}.pageswitch{display:flex;gap:4px;margin:14px 0 0;border-bottom:1px solid var(--line)}.pswitch{background:none;border:none;padding:10px 18px;cursor:pointer;font-size:15px;font-weight:500;color:var(--muted);font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-1px}.pswitch:hover{color:var(--fg)}.pswitch.active{color:var(--fg);border-bottom-color:var(--fg);font-weight:600}header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--line)}h1{font-size:28px;font-weight:700;margin:0;letter-spacing:-.01em}.count{font-size:14px;color:var(--muted)}.count strong{color:var(--fg);font-weight:600}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:8px 0 14px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:10px}.controls{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 8px}.tab{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:8px 14px;cursor:pointer;font-size:14px;font-weight:500;color:var(--fg);display:inline-flex;gap:8px;align-items:center;-webkit-user-select:none;user-select:none}.tab:hover{background:var(--hover)}.tab.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}.tab.danger.active{background:var(--urgent);border-color:var(--urgent)}.tab .pill{background:var(--line);color:var(--muted);border-radius:10px;padding:1px 7px;font-size:12px;font-weight:600}.tab.active .pill{background:#fff3;color:var(--bg)}.sortbar{display:flex;gap:12px;align-items:center;padding:8px 0;font-size:13px;color:var(--muted);flex-wrap:wrap}.sortbar button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:4px 8px;border-radius:4px;font-family:inherit}.sortbar button:hover{background:var(--hover);color:var(--fg)}.sortbar button.active{color:var(--fg);font-weight:600}.sortbar .sep{color:var(--line)}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;position:relative}.card.done{opacity:.5}.card.done .name{text-decoration:line-through}.card.due-today{border-color:var(--urgent);border-width:2px;background:linear-gradient(0deg,#fff5f5,#fff 60%)}.card.due-today:before{content:"DUE TODAY";position:absolute;top:8px;right:12px;background:var(--urgent);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;letter-spacing:.04em}.row1{display:flex;align-items:flex-start;gap:10px}.checkbox{width:22px;height:22px;border:2px solid var(--line);border-radius:5px;flex-shrink:0;cursor:pointer;background:#fff;display:inline-flex;align-items:center;justify-content:center;transition:all .15s;color:#fff;font-weight:700;font-size:14px}.checkbox:hover{border-color:var(--muted)}.card.done .checkbox{background:var(--good);border-color:var(--good)}.name{font-size:16px;font-weight:600;flex:1;line-height:1.3}.meta{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--muted);padding-left:32px}.meta .tag{display:inline-flex;align-items:center;gap:4px}.classtag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#fff}.classtag.Reading{background:var(--reading)}.classtag.LA{background:var(--la)}.classtag.SS{background:var(--ss)}.classtag.Math{background:var(--math)}.classtag.Science{background:var(--science)}.points{font-variant-numeric:tabular-nums;font-weight:500}.status-missing{color:var(--urgent);font-weight:500}.status-partial{color:var(--warn);font-weight:500}.note{font-size:13px;color:var(--muted);padding-left:32px;font-style:italic}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:14px}th{background:var(--hover);padding:10px 12px;text-align:left;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--line);white-space:nowrap}th:hover{background:var(--line)}td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:none}tr.done td{opacity:.45}tr.done .name{text-decoration:line-through}tr.due-today td{background:#fff5f5}.checkbox{width:18px;height:18px;border:2px solid var(--line);border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#fff}tr.done .checkbox{background:var(--good);border-color:var(--good)}.name{font-weight:600}.points{font-variant-numeric:tabular-nums}.banner{background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;padding:10px 14px;border-radius:6px;margin:14px 0;font-size:14px}.form-header{padding:12px 16px;background:var(--card);border:1px solid var(--line);border-radius:8px;margin-bottom:14px}.form-header h2{margin:0 0 4px;font-size:22px}.form-header .sub{color:var(--muted);font-size:14px}.form-section{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px 18px;margin-bottom:12px;break-inside:avoid}.form-section h3{margin:0 0 4px;font-size:17px;font-weight:700;border-bottom:2px solid var(--fg);padding-bottom:6px}.book-line{font-size:13px;padding:6px 10px;background:#f3f0e8;border-radius:4px;margin-bottom:12px}.book-line strong{color:var(--fg)}.book-confirmed{color:var(--muted);font-size:12px;font-style:italic;display:block;margin-top:2px}.form-item{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px dotted var(--line)}.form-item:last-child{border-bottom:none}.form-checkbox{width:18px;height:18px;border:2px solid var(--fg);border-radius:3px;flex-shrink:0;margin-top:2px;background:#fff}.form-body{flex:1}.form-q{font-size:14px;line-height:1.4;font-weight:500}.form-q .ref{color:var(--muted);font-weight:400;font-size:13px}.form-write{display:block;margin-top:6px;font-size:13px;color:var(--muted)}.form-write .line{display:inline-block;min-width:240px;border-bottom:1px solid var(--fg);margin-left:6px;height:18px;vertical-align:middle}.qr-section{margin-top:18px;padding:12px 14px;background:var(--card);border:1px dashed var(--line);border-radius:8px;display:flex;align-items:center;gap:14px;break-inside:avoid}.qr-label{font-size:13px;color:var(--muted);flex:1;font-style:italic}#qr-target{width:110px;height:110px;flex-shrink:0}#qr-target img,#qr-target canvas{display:block}.qr-fallback{font-size:11px;color:var(--muted)}.ctrl{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:6px 12px;font-size:13px;color:var(--muted);cursor:pointer;font-family:inherit}.ctrl:hover{background:var(--hover);color:var(--fg)}.cap-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:8px 0 14px}.email-card{background:var(--card);border:1px solid var(--line);border-radius:8px;margin-bottom:16px;overflow:hidden}.email-head{background:var(--hover);padding:10px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;flex-wrap:wrap}.email-head h3{margin:0;font-size:16px;flex:1}.email-fields{padding:12px 16px;border-bottom:1px solid var(--line)}.email-row{display:flex;gap:10px;align-items:flex-start;padding:4px 0;font-size:14px}.email-row label{min-width:70px;color:var(--muted);font-weight:500;flex-shrink:0;padding-top:6px}.email-row input,.email-row textarea{flex:1;font:inherit;font-size:14px;border:1px solid var(--line);border-radius:4px;padding:6px 8px;background:#fff;color:var(--fg);font-family:-apple-system,system-ui,sans-serif}.email-row textarea{min-height:360px;resize:vertical;line-height:1.55;font-family:-apple-system,system-ui,sans-serif}.email-actions{padding:10px 16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--bg)}.email-actions button{background:var(--fg);color:var(--bg);border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;font-family:inherit}.email-actions button:hover{opacity:.85}.email-actions button.secondary{background:var(--card);color:var(--fg);border:1px solid var(--line)}.email-actions .status{color:var(--good);font-size:13px;font-weight:500}
