:root{--bg:#f4f2ec;--card:#fff;--ink:#1a1a17;--muted:#6f6c63;--faint:#a5a199;--line:#e4e0d6;--accent:#b8862a;--accent-dark:#916619;--win:#2f7d4f;--radius:14px;--shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.05);--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}a{color:inherit}button,input,select,textarea{font-family:inherit;font-size:15px;color:var(--ink)}@media (max-width:640px){input,select,textarea{font-size:16px}}.wrap{max-width:1000px;margin:0 auto;padding:24px 20px 96px}.center{min-height:100dvh;display:grid;place-items:center;padding:24px}.topbar{align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.brand,.topbar{display:flex;flex-wrap:wrap}.brand{align-items:baseline;gap:10px}.brand h1{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:0}.brand .sub{color:var(--muted);font-size:13px}@media (max-width:640px){.brand h1{font-size:20px}.brand .sub{width:100%;font-size:12px}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.pad{padding:20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:10px 16px;font-weight:600;font-size:14px;cursor:pointer;transition:all .12s ease;text-decoration:none}.btn:hover{border-color:var(--ink)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-ghost:hover{color:var(--ink);border-color:var(--line)}.btn-sm{padding:6px 12px;font-size:13px;border-radius:8px}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:block;margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.input,.select,.textarea{width:100%;border:1px solid var(--line);background:#fbfaf7;border-radius:10px;padding:10px 12px;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);background:#fff}.textarea{resize:vertical;min-height:70px}.row{display:flex;gap:12px}.row>*{flex:1 1}.board{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;align-items:start}@media (max-width:780px){.board{grid-template-columns:1fr}}.col-head{justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.col-head,.col-head .who{display:flex;align-items:center}.col-head .who{gap:10px}.dot{width:12px;height:12px;border-radius:50%}.col-head .name{font-weight:800;font-size:17px}.score{text-align:right}.score .big{font-size:22px;font-weight:800;line-height:1}.score .lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.won-badge{display:inline-flex;align-items:center;gap:6px;background:var(--win);color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px}.goal{padding:14px 20px;border-bottom:1px solid var(--line)}.goal:last-child{border-bottom:none}.goal-top{display:flex;align-items:flex-start;gap:10px}.goal-check{flex:none;width:22px;height:22px;border-radius:6px;border:2px solid var(--line);display:grid;place-items:center;cursor:pointer;margin-top:1px;background:#fff}.goal-check.on{background:var(--win);border-color:var(--win);color:#fff}.goal-title{font-weight:600;flex:1 1}.goal-title.done{color:var(--faint);text-decoration:line-through}.goal-pct{font-size:13px;font-weight:700;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.goal-desc{color:var(--muted);font-size:13px;margin:4px 0 0 32px}.bar{height:6px;background:var(--line);overflow:hidden;margin:10px 0 0 32px}.bar,.bar>i{border-radius:999px}.bar>i{display:block;height:100%;background:var(--accent);transition:width .2s ease}.bar.full>i{background:var(--win)}.steps{margin:10px 0 0 32px;display:flex;flex-direction:column;gap:6px}.step{display:flex;align-items:center;gap:8px;font-size:13px}.step .box{width:16px;height:16px;border-radius:4px;border:2px solid var(--line);flex:none;cursor:pointer;display:grid;place-items:center}.step .box.on{background:var(--win);border-color:var(--win);color:#fff}.step.done span{color:var(--faint);text-decoration:line-through}.slider{width:100%;margin:10px 0 0;accent-color:var(--accent)}.goal-actions{margin:10px 0 0 32px;display:flex;gap:6px;flex-wrap:wrap}.prize{margin:14px 20px;padding:12px 14px;border:1px dashed var(--accent);border-radius:10px;background:#fbf6ea;font-size:13px}.prize .k{color:var(--accent-dark);font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.05em}.prize.locked{border-color:var(--line);background:#faf9f5}.prize.locked .k{color:var(--muted)}.report{padding:14px 0;border-bottom:1px solid var(--line)}.report:last-child{border-bottom:none}.report .meta{font-size:12px;color:var(--muted);margin-bottom:4px;display:flex;align-items:center;gap:8px}.report .body{white-space:pre-wrap}.section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 12px}.empty{color:var(--faint);font-size:14px;padding:20px;text-align:center}.pill-tabs{display:inline-flex;background:#ece9e1;border-radius:10px;padding:3px;gap:3px}.pill-tabs button{border:none;background:transparent;padding:7px 14px;border-radius:8px;font-weight:600;font-size:13px;cursor:pointer;color:var(--muted)}.pill-tabs button.active{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.06)}.modal-overlay{position:fixed;inset:0;background:rgba(20,18,14,.4);display:grid;place-items:center;padding:20px;z-index:50}.modal{background:var(--card);border-radius:var(--radius);width:100%;max-width:440px;box-shadow:var(--shadow)}.modal-head{padding:18px 20px;border-bottom:1px solid var(--line);font-weight:700}.modal-body{padding:20px;max-height:70vh;overflow:auto}.modal-foot{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}.muted{color:var(--muted)}.mt8{margin-top:8px}.mt16{margin-top:16px}.mt24{margin-top:24px}.error{color:#b3261e;font-size:13px;margin-top:8px}