:root{--ui-bg: #15131c;--ui-fg: #f3f0f7;--accent: #e63946;--panel-bg: rgba(20, 18, 28, .92);--stage-bg: #0f0e14}*{box-sizing:border-box}html,body{margin:0;height:100%;width:100%;background:var(--stage-bg);color:var(--ui-fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}.stage{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem clamp(1rem,4vw,3rem);overflow:auto}.poster-wrap{max-width:min(900px,100%);width:100%;display:flex;justify-content:center}.poster{width:100%;filter:drop-shadow(0 18px 40px rgba(0,0,0,.45));border-radius:10px;overflow:hidden}.poster svg{display:block;width:100%;height:auto}.legend{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;justify-content:center;max-width:min(900px,100%);font-size:.82rem;opacity:.85}.legend .item{display:inline-flex;align-items:center;gap:.4rem}.legend .swatch{width:.85rem;height:.85rem;border-radius:3px;border:1px solid rgba(255,255,255,.18)}.panel{position:fixed;top:0;right:0;width:min(340px,90vw);height:100%;padding:1rem 1.1rem 1.4rem;background:var(--panel-bg);backdrop-filter:blur(12px);border-left:1px solid rgba(255,255,255,.08);overflow-y:auto;display:flex;flex-direction:column;gap:.7rem;transition:transform .25s ease;z-index:3}.panel.hidden{transform:translate(100%)}.panel-head{display:flex;align-items:center;justify-content:space-between}.panel-head h1{margin:0;font-size:1.25rem;color:var(--accent);letter-spacing:.01em}.lede{margin:0;font-size:.8rem;line-height:1.4;opacity:.7}.row{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;opacity:.95}.row span{display:flex;justify-content:space-between}.row output{opacity:.6;font-variant-numeric:tabular-nums}input[type=text],input[type=date],select{font-size:1rem;padding:.5rem .6rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--ui-fg);width:100%}input[type=range]{width:100%;accent-color:var(--accent)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:.2rem 0}.stats .stat{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:.55rem;padding:.55rem .4rem;text-align:center}.stats .num{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums}.stats .lbl{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;opacity:.6}.milestones{display:flex;flex-direction:column;gap:.5rem}.milestones-head{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:600}.milestone-list{display:flex;flex-direction:column;gap:.45rem}.milestone-item{display:grid;grid-template-columns:2rem 8.2rem 1fr 1.8rem;gap:.35rem;align-items:center}.milestone-item input[type=color]{width:2rem;height:2rem;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:.4rem;background:none;cursor:pointer}.milestone-item input[type=date],.milestone-item input[type=text]{font-size:.8rem;padding:.35rem .4rem}.empty-hint{font-size:.75rem;opacity:.5;font-style:italic}.buttons{display:flex;gap:.5rem}.buttons button{flex:1;min-height:2.6rem;border-radius:.55rem;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--ui-fg);font-size:.88rem;font-weight:600;cursor:pointer}.buttons button:active{transform:scale(.98)}.buttons .primary{background:var(--accent);color:#fff;border:none}.mini{border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:var(--ui-fg);border-radius:.45rem;padding:.25rem .6rem;font-size:.78rem;font-weight:600;cursor:pointer}.ghost{background:none;border:none;color:var(--ui-fg);font-size:1.3rem;line-height:1;cursor:pointer;opacity:.6}.m-remove{font-size:1.2rem;justify-self:center}.self-ref{margin-top:auto;padding-top:.8rem;font-size:.73rem;opacity:.6;line-height:1.7}.self-ref a{color:var(--ui-fg)}.privacy{opacity:.8}.show-panel{position:fixed;top:.8rem;right:.8rem;z-index:2;width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:var(--panel-bg);color:var(--ui-fg);font-size:1.2rem;cursor:pointer}.panel:not(.hidden)~.show-panel{display:none}.toast{position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%) translateY(2rem);background:#000000d9;color:#fff;padding:.6rem 1rem;border-radius:.6rem;font-size:.85rem;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;max-width:90vw;word-break:break-all;z-index:4}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media print{.panel,.show-panel,.toast{display:none!important}html,body,.stage{background:#fff;height:auto;overflow:visible;position:static}.stage{padding:0}.poster{filter:none;box-shadow:none}}
