:root{--navy:#1B3A5C;--gold:#C9A84C;--steel:#4A6FA5;--green:#2E6B47;--ink:#26323d;--muted:#5a6b7b;--paper:#f7f8fa;--line:#e2e7ee}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);line-height:1.5}a{color:var(--steel)}.container{max-width:760px;margin:0 auto;padding:1.5rem}.topbar{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid var(--gold);background:var(--navy);color:#fff;padding:.85rem 1.25rem}.topbar .brand{font-weight:700;letter-spacing:.02em}.topbar .who{font-size:.85rem;color:#cdd8e6}.topbar form{display:inline}.btn,button{font:inherit;cursor:pointer;border:none;border-radius:6px;background:var(--gold);color:var(--navy);font-weight:700;padding:.6rem 1.1rem}.btn.secondary,button.secondary{background:transparent;color:#cdd8e6;text-decoration:underline;padding:.3rem 0}button:disabled{opacity:.6;cursor:default}label{display:block;font-size:.82rem;color:var(--muted);margin:.75rem 0 .25rem}input,select{font:inherit;width:100%;padding:.55rem .65rem;border:1px solid var(--line);border-radius:6px;background:#fff}.row{display:flex;gap:.75rem}.row>div{flex:1 1}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1.5rem;margin:1.25rem 0}.card h2{color:var(--navy);margin:0 0 .25rem}.eyebrow{color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.dm{font-size:1.9rem;color:var(--navy);margin:.25rem 0}.pillars{display:flex;gap:.5rem;flex-wrap:wrap;margin:.75rem 0}.pillar{border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;min-width:96px}.pillar .k{font-size:.7rem;color:var(--muted);text-transform:uppercase}.pillar .v{font-weight:700;color:var(--navy)}.pillar.day{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.elem{display:grid;grid-template-columns:64px 1fr 44px;align-items:center;grid-gap:.5rem;gap:.5rem;margin:.28rem 0}.elem .bar{background:var(--line);border-radius:4px;height:12px;overflow:hidden}.elem .fill{height:100%;background:var(--steel)}.elem .fill.zero{background:transparent}.gold-callout{background:#faf5e6;border-left:4px solid var(--gold);border-radius:6px;padding:.9rem 1.1rem;margin:1rem 0}.gold-callout .eyebrow{color:#a6842e}.note{color:var(--muted)}.flag,.note{font-size:.85rem}.flag{background:#eef3fb;border-left:4px solid var(--steel);border-radius:6px;padding:.6rem .9rem;margin:.75rem 0}.error{color:#9b2c2c;font-size:.88rem}.prose{white-space:pre-wrap}.tiers{font-size:.78rem;color:var(--muted);margin-top:.5rem}.roles span{display:inline-block;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:.15rem .6rem;margin:.15rem .2rem 0 0;font-size:.8rem}.modcard{transition:box-shadow .15s}.modcard:hover{box-shadow:0 2px 10px rgba(27,58,92,.12)}.modcard.locked{opacity:.65}.modcard.locked:hover{box-shadow:none}.progressbar{background:var(--line);border-radius:6px;height:10px;overflow:hidden;margin:.6rem 0}.progressbar span{display:block;height:100%;background:var(--gold)}h1{font-size:1.6rem}.card.finale{border:2px solid var(--gold);background:linear-gradient(180deg,#fffdf6,#fff 30%)}.checklist{list-style:none;padding:0;margin:.75rem 0 0}.checklist li{padding:.3rem 0;color:var(--muted);font-size:.92rem}.checklist li.done{color:var(--green)}.btn.quiet,button.quiet{background:transparent;color:var(--muted);border:1px solid var(--line);font-weight:400}.checkin-cat{border:1px solid var(--line);border-radius:8px;margin:.4rem 0;padding:.4rem .7rem}.checkin-cat summary{cursor:pointer;padding:.2rem 0}.checkin-list{list-style:none;margin:.3rem 0 .2rem;padding:0}.checkin-list li label{display:flex;align-items:baseline;gap:.5rem;font-size:.9rem;color:var(--ink);margin:0;padding:.24rem 0;border-top:1px solid var(--paper);cursor:pointer}.checkin-list input[type=checkbox]{width:auto;accent-color:var(--gold)}.checkin-list .pts{margin-left:auto;color:var(--gold);font-weight:700;font-size:.8rem}.graph-frame{border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:.75rem 0;background:#fff}.graph-frame svg{display:block;width:100%;height:auto}.caret{color:var(--gold);font-weight:700;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}