:root{--bg: #f4efe3;--bg-2: #ebe3d0;--card: #fffdf7;--border: #e0d6bf;--text: #2f2a1f;--muted: #7a705d;--green: #4f8a3b;--green-soft: #e3efd9;--gold: #c98a1b;--gold-soft: #f8ead0;--sky: #3a7fb5;--sky-soft: #dcebf6;--red: #b5483a;--red-soft: #f6dfda;--track: #e9e1cd;--shadow: 0 1px 2px rgb(60 45 20 / .06), 0 4px 14px rgb(60 45 20 / .06);--radius: 14px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #171a14;--bg-2: #1e2219;--card: #23281e;--border: #343b2c;--text: #ebe6d6;--muted: #a39c88;--green: #7cbf5e;--green-soft: #2b3a22;--gold: #e0a93e;--gold-soft: #3d311b;--sky: #6aaee0;--sky-soft: #1d3040;--red: #e07a6b;--red-soft: #3e2420;--track: #33392b;--shadow: 0 1px 2px rgb(0 0 0 / .3), 0 4px 14px rgb(0 0 0 / .25);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{margin:0 0 .6rem;line-height:1.25}h2{font-size:1.1rem}h3{font-size:1rem}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid transparent;background:var(--green);color:#fff;border-radius:9px;padding:.45rem .9rem;font-weight:600;transition:filter .15s,transform .05s}button:hover{filter:brightness(1.08)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{background:transparent;border-color:currentColor;color:inherit}input,select{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:.45rem .7rem;min-width:0}input:focus,select:focus{outline:2px solid var(--green);outline-offset:1px}.center-msg{display:grid;place-items:center;min-height:100vh;font-size:1.2rem;color:var(--muted)}.app{max-width:1180px;margin:0 auto;padding:0 16px 32px}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:18px 0 14px}.brand{display:flex;align-items:center;gap:12px;flex:1}.top-actions{display:flex;align-items:center;gap:8px}.small-btn{padding:.35rem .75rem;font-size:.85rem}.top-actions .ghost{color:var(--green)}.save-chip{font-size:.8rem;font-weight:700;padding:3px 10px;border-radius:99px;background:var(--green-soft);color:var(--green);white-space:nowrap}.save-chip.saving{background:var(--bg-2);color:var(--muted)}.save-chip.error,.save-chip.conflict{background:var(--gold-soft);color:var(--gold)}.unlock{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.unlock label{font-weight:700}.unlock input{flex:0 1 260px}fieldset.plain{border:0;margin:0;padding:0;min-width:0}fieldset.plain:disabled .stepper,fieldset.plain:disabled .target,fieldset.plain:disabled .add-row,fieldset.plain:disabled .icon-btn,fieldset.plain:disabled .status-btn{display:none}fieldset.plain:disabled .checks label{cursor:default}.brand-icon{font-size:1.8rem;width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--green-soft)}.brand-title{font-size:1.35rem;font-weight:800}.brand-sub{color:var(--muted);font-size:.85rem}.tabs{display:flex;gap:4px;padding:4px;background:var(--bg-2);border-radius:12px;overflow-x:auto;max-width:100%}.tab{white-space:nowrap;padding:.45rem .85rem;border-radius:9px;text-decoration:none;color:var(--muted);font-weight:600}.tab:hover{color:var(--text)}.tab.active{background:var(--card);color:var(--text);box-shadow:var(--shadow)}.banner{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:10px 14px;margin-bottom:16px;border-radius:12px;background:var(--sky-soft);color:var(--sky);font-weight:600}.banner.warn{background:var(--gold-soft);color:var(--gold)}.banner button:not(.ghost){background:var(--sky)}.banner.warn button:not(.ghost){background:var(--gold)}.banner-actions{display:flex;gap:8px;flex-wrap:wrap}.footer{margin-top:28px;text-align:center;color:var(--muted);font-size:.8rem}.stack{display:grid;gap:16px}.grid-2{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.muted{color:var(--muted)}.small{font-size:.85rem}.grow{flex:1;min-width:0}.bar{height:8px;background:var(--track);border-radius:99px;overflow:hidden}.bar-fill{height:100%;border-radius:inherit;transition:width .4s ease}.bar-fill.green{background:var(--green)}.bar-fill.gold{background:var(--gold)}.bar-fill.sky{background:var(--sky)}.pill{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:99px;white-space:nowrap}.pill.high{background:var(--red-soft);color:var(--red)}.pill.medium{background:var(--gold-soft);color:var(--gold)}.pill.low{background:var(--sky-soft);color:var(--sky)}.pill.doing{background:var(--green-soft);color:var(--green)}.count{font-size:.8rem;font-weight:700;color:var(--muted);background:var(--bg-2);padding:1px 8px;border-radius:99px}.stats{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat{display:grid;gap:6px}.stat-label{color:var(--muted);font-size:.85rem;font-weight:600}.stat-value{font-size:1.8rem;font-weight:800}.next-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.next-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--bg)}.mini-skills{display:grid;gap:10px}.mini-skill{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center}.mini-skill .bar{grid-column:1 / -1}.tip{margin:14px 0 0;padding:10px 12px;border-radius:10px;background:var(--gold-soft);font-size:.9rem}.skill-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.skill-card{display:grid;justify-items:center;gap:8px;text-align:center}.skill-card h3{margin:4px 0 0}.ring{--p: 0;width:112px;height:112px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--p) * 1%),var(--track) 0);display:grid;place-items:center;transition:background .4s}.ring-inner{width:88px;height:88px;border-radius:50%;background:var(--card);display:grid;place-items:center;align-content:center}.ring-icon{font-size:1.3rem}.ring-level{font-size:1.5rem;font-weight:800;line-height:1}.stepper{display:flex;gap:6px;align-items:center}.stepper button{width:34px;padding:.35rem 0}.stepper input{width:64px;text-align:center}.target{display:flex;gap:6px;align-items:center;font-size:.85rem;color:var(--muted)}.target input{width:64px;text-align:center;padding:.25rem}.add-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.add-row .grow{flex:1 1 200px}.add-row .narrow{flex:0 1 140px}.add-row.compact{margin-top:12px;flex-wrap:nowrap}.add-row.compact button{padding:.45rem .8rem}.board{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start}.column{background:var(--bg-2);border-radius:var(--radius);padding:12px;display:grid;gap:10px}.column h2{display:flex;align-items:center;gap:8px;margin:2px 4px}.empty{margin:4px}.goal{padding:14px;display:grid;gap:6px}.goal h3,.goal p{margin:0}.goal.locked{opacity:.65}.goal-head{display:flex;align-items:center;gap:8px}.needs{color:var(--gold)}.status-btn{justify-self:start;margin-top:4px;padding:.3rem .75rem;font-size:.85rem}.icon-btn{background:transparent;color:var(--muted);padding:0 4px;font-size:.85rem}.icon-btn:hover{color:var(--red)}.check-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start}.check-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.check-head h2{margin:0;flex:1}.check-grid .card>p{margin:10px 0 0}.checks{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:2px}.checks label{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;cursor:pointer}.checks label:hover{background:var(--bg)}.checks label.done span{color:var(--muted);text-decoration:line-through}.checks input{width:18px;height:18px;accent-color:var(--green);margin:0}.guides{display:grid;gap:16px;grid-template-columns:220px 1fr;align-items:start}.guide-nav{display:grid;gap:4px;padding:10px}.guide-nav button{background:transparent;color:var(--muted);text-align:left;font-weight:600}.guide-nav button.active{background:var(--green-soft);color:var(--green)}.prose{line-height:1.7;overflow-wrap:anywhere}.prose h1{font-size:1.6rem}.prose h2{margin-top:1.4rem;font-size:1.2rem}.prose a{color:var(--green)}.prose code{background:var(--bg-2);padding:1px 5px;border-radius:5px}.prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);padding:6px 10px;text-align:left}.prose blockquote{margin:1rem 0;padding:8px 14px;border-left:4px solid var(--gold);background:var(--gold-soft);border-radius:0 8px 8px 0}@media(max-width:700px){.guides{grid-template-columns:1fr}.guide-nav{grid-auto-flow:column;overflow-x:auto}.brand-title{font-size:1.15rem}}.name-btn{background:transparent;color:var(--text);padding:0;border:0;text-align:left}.name-btn .pencil{font-size:.9rem;color:var(--muted);opacity:0;transition:opacity .15s}.name-btn:hover .pencil,.name-btn:focus-visible .pencil{opacity:1}.name-input{padding:0 6px;width:14ch}.wn-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.wn-item{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;background:var(--bg);color:inherit;text-decoration:none;border:1px solid transparent}.wn-item:hover{border-color:var(--border)}.wn-item>span:last-child{display:grid}.wn-icon{font-size:1.3rem;width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--gold-soft)}.tower-hero{display:flex;gap:20px;align-items:stretch}.tower-visual{position:relative;width:56px;min-height:190px;flex:none;border-radius:28px 28px 8px 8px;background:var(--track);overflow:hidden}.tower-fill{position:absolute;inset:auto 0 0;background:repeating-linear-gradient(0deg,var(--gold) 0 10px,color-mix(in srgb,var(--gold) 80%,#000) 10px 12px);transition:height .4s ease}.tower-cap{position:absolute;left:0;right:0;border-top:2px dashed var(--green)}.tower-info{display:grid;gap:8px;align-content:center;flex:1;min-width:0}.tower-floor{font-size:2.6rem;font-weight:800;line-height:1}.tower-floor .muted{font-size:1.2rem;font-weight:600}.tower-info .stepper,.tower-info .target{justify-content:flex-start}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 12px}.facts dt{color:var(--muted);font-size:.9rem}.facts dd{margin:0;font-weight:700}.facts dd.ok{color:var(--green)}.facts dd.short{color:var(--red)}.rewards{list-style:none;margin:0;padding:0;display:grid;gap:6px}.rewards li{padding:8px 10px;border-radius:8px;background:var(--gold-soft)}.toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);cursor:pointer}.toggle input{accent-color:var(--green)}.floor-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.floor-list li{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;font-size:.9rem}.floor-list li:nth-child(odd){background:var(--bg)}.floor-list li.notable{box-shadow:inset 3px 0 0 var(--gold);font-weight:600}.floor-list li.gated{opacity:.6}.floor-num{flex:none;min-width:44px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums;color:var(--gold)}.show-more{margin-top:10px;color:var(--green)}.stat-input{font-size:1.6rem;font-weight:800;width:100%;padding:2px 8px}.total-green{box-shadow:inset 0 3px 0 var(--green),var(--shadow)}.total-sky{box-shadow:inset 0 3px 0 var(--sky),var(--shadow)}.total-gold{box-shadow:inset 0 3px 0 var(--gold),var(--shadow)}.gate{margin:0 0 12px;padding:10px 12px;border-radius:10px;font-weight:600}.gate.ok{background:var(--green-soft);color:var(--green)}.gate.short{background:var(--red-soft);color:var(--red)}.gate-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}.mastery-next{list-style:none;margin:0;padding:0;display:grid;gap:12px}.pill.tier-M{background:var(--green-soft);color:var(--green)}.pill.tier-GM{background:var(--sky-soft);color:var(--sky)}.pill.tier-MM{background:var(--gold-soft);color:var(--gold)}.mastery-table{display:grid;gap:4px;margin-top:12px}.mastery-row{display:grid;grid-template-columns:minmax(120px,1.2fr) auto 120px minmax(140px,2fr) auto;gap:12px;align-items:center;padding:8px 10px;border-radius:8px}.mastery-row:nth-child(odd){background:var(--bg)}.m-name{font-weight:600;overflow-wrap:anywhere}.m-count{width:100%;text-align:right;font-variant-numeric:tabular-nums}.m-bar{display:grid;gap:2px}@media(max-width:700px){.mastery-row{grid-template-columns:1fr auto auto}.m-bar{grid-column:1 / -1}.m-count{width:100px}.tower-floor{font-size:2rem}}
