:root{--ink:#1b2a22;--ink-soft:#5b6b62;--green:#1f6b43;--green-deep:#14492f;--gold:#c89b3c;--cream:#f6f1e4;--paper:#fffdf8;--line:#e6ddc8;--mint:#eef7ef;--mint-line:#cfe6d4;--amber:#fdf3dc;--amber-line:#ecd29a;--amber-ink:#7a5410;--red:#fdecea;--red-line:#f0b8b0;--red-ink:#8a1f14;--shadow:0 18px 50px -22px #14492f8c}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--ink);background:radial-gradient(120% 60% at 50% -10%, #1f6b4329, transparent 60%), radial-gradient(90% 50% at 100% 110%, #c89b3c1f, transparent 55%), var(--cream);min-height:100vh;margin:0;font-family:Outfit,-apple-system,system-ui,sans-serif}.wrap{max-width:920px;margin:0 auto;padding:24px 16px 56px}.head{color:#fff;background:linear-gradient(160deg, var(--green) 0%, var(--green-deep) 100%);border-radius:20px 20px 0 0;padding:26px 24px 24px;position:relative}.head:after{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);opacity:.8;height:4px;position:absolute;bottom:0;left:0;right:0}.kicker{letter-spacing:.22em;text-transform:uppercase;color:#bfe6c9;margin:0 0 6px;font-size:11px;font-weight:700}.head h1{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-family:Fraunces,serif;font-size:30px;font-weight:600;line-height:1.1}.head .sub{color:#d7ecdb;margin:8px 0 0;font-size:14px}.sheet{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-top:0;border-radius:0 0 20px 20px;padding:6px 22px 26px}.who{border-bottom:1px solid var(--line);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 0;font-size:13.5px;display:flex}.who a{color:var(--green);align-items:center;min-height:40px;font-weight:600;display:inline-flex}.courses{flex-wrap:wrap;gap:8px;padding:14px 0 0;display:flex}.courses a{color:var(--green-deep);border:1px solid var(--mint-line);background:var(--card-bg-raised,#fff);border-radius:999px;align-items:center;min-height:40px;padding:9px 14px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex}.courses a[aria-current=page]{background:var(--green-deep);border-color:var(--green-deep);color:#fff}h2{overflow-wrap:anywhere;margin:30px 0 2px;font-family:Fraunces,serif;font-size:23px;font-weight:600}h3{margin:22px 0 4px;font-family:Fraunces,serif;font-size:18px;font-weight:600}h4{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:16px 0 6px;font-size:13px;font-weight:700}.hint{color:var(--ink-soft);margin:0 0 12px;font-size:14px;line-height:1.55}.count{color:var(--ink-soft);margin:0 0 6px;font-size:14px}.notice{border-radius:14px;margin:18px 0 0;padding:14px 16px;font-size:14.5px;line-height:1.55}.notice strong{margin-bottom:3px;font-size:15.5px;display:block}.notice.todo{background:var(--amber);border:1px solid var(--amber-line);color:var(--amber-ink)}.notice.plain{background:var(--mint);border:1px solid var(--mint-line);color:var(--green-deep)}.callout{background:var(--mint);border:1px solid var(--mint-line);color:var(--green-deep);border-radius:12px;margin:0 0 12px;padding:12px 14px;font-size:14.5px;line-height:1.55}.callout ul{margin:4px 0 0;padding-left:20px}.empty{border:1px dashed var(--line);color:var(--ink-soft);background:var(--card-bg-raised,#fff);border-radius:14px;padding:16px 18px;font-size:14.5px;line-height:1.55}.scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:8px 8px 8px 0;font-size:11px;font-weight:700}td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 8px 10px 0}td.num,th.num{text-align:right;white-space:nowrap}td.muted{color:var(--ink-soft)}.tag{white-space:nowrap;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:11.5px;font-weight:700;display:inline-block}.tag.harder{background:var(--red);color:var(--red-ink);border:1px solid var(--red-line)}.tag.easier{background:var(--amber);color:var(--amber-ink);border:1px solid var(--amber-line)}.records{flex-wrap:wrap;gap:12px;margin:0 0 10px;display:flex}.records>div{border:1px solid var(--mint-line);background:var(--mint);border-radius:14px;flex:200px;padding:14px 16px}.records .n{color:var(--green-deep);font-family:Fraunces,serif;font-size:30px;font-weight:700;line-height:1}.records .l{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px;font-size:12px;font-weight:700}.records .y{color:var(--ink-soft);margin-top:3px;font-size:13.5px}.course{border-top:2px solid var(--line);margin-top:26px}.course:first-of-type{border-top:0;margin-top:0}.pace{border:1px solid var(--mint-line);background:var(--mint);border-radius:14px;margin:6px 0 4px;padding:16px 18px}.pace h2{margin:0 0 4px;font-size:21px}.pace .row{flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 2px;font-size:15px;display:flex}.pace .row .what{flex:220px;font-weight:600}.pace input{font:inherit;border:1px solid var(--line);background:var(--card-bg-raised,#fff);width:64px;color:var(--ink);text-align:right;border-radius:10px;padding:9px 8px;font-size:16px}.pace .now{color:var(--ink-soft);margin:2px 0 0;font-size:13.5px}.pace button{font:inherit;border:1px solid var(--green);background:var(--green);color:#fff;cursor:pointer;border-radius:12px;min-height:46px;margin-top:16px;padding:12px 18px;font-size:14.5px;font-weight:600}.pace button[disabled]{opacity:.6;cursor:default}.pace .status{min-height:20px;margin:10px 0 0;font-size:14px}.pace .status.bad{color:var(--red-ink);font-weight:600}.pace .status.good{color:var(--green-deep);font-weight:600}.own{border:1px solid var(--line);background:var(--card-bg-raised,#fff);border-radius:14px;margin:14px 0 4px;padding:16px 18px}.own h2{margin:0 0 4px;font-size:21px}.own h3{margin:18px 0 6px}.own ul{margin:0 0 8px;padding:0;list-style:none}.own li{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:10px 0;font-size:15px;display:flex}.own li .score{color:var(--green-deep);min-width:44px;font-family:Fraunces,serif;font-size:22px;font-weight:700}.own li .what{overflow-wrap:anywhere;flex:200px}.own li .what small{color:var(--ink-soft);font-size:13.5px;display:block}.own .fields{flex-wrap:wrap;gap:10px;margin:8px 0 0;display:flex}.own .fields label{color:var(--ink-soft);flex-direction:column;flex:150px;gap:4px;font-size:12.5px;font-weight:600;display:flex}.own .fields label.narrow{flex:0 96px}.own input{font:inherit;border:1px solid var(--line);background:var(--card-bg-raised,#fff);color:var(--ink);border-radius:10px;width:100%;padding:9px 10px;font-size:16px}.own button{font:inherit;cursor:pointer;border-radius:12px;min-height:44px;padding:10px 16px;font-size:14px;font-weight:600}.own button.add{border:1px solid var(--green);background:var(--green);color:#fff;margin-top:12px}.own button.remove{border:1px solid var(--line);color:var(--ink-soft);background:0 0}.own button[disabled]{opacity:.6;cursor:default}.own .status{min-height:20px;margin:8px 0 0;font-size:14px}.own .status.bad{color:var(--red-ink);font-weight:600}.ownlist{margin:10px 0 0;font-size:14.5px;line-height:1.55}.foot{text-align:center;color:var(--ink-soft);margin:22px 0 0;font-size:12.5px;line-height:1.6}.foot a{color:var(--green)}@media (width<=520px){.head h1{font-size:25px}.sheet{padding:4px 14px 22px}.hide-narrow{display:none}}
