:root{--bg: #eef2e6;--elev-1: #fbfcf7;--elev-2: #e2e9d5;--border: #d2dcbe;--border-subtle: #dee6cd;--ink-1: #1d241a;--ink-2: #55604b;--ink-3: #85917a;--accent: #475569;--accent-hover: #394554;--accent-soft: #e3e8ee;--accent-soft-ink: #25303f;--selection-bg: #dce3ec;--status-unbuilt: #9aa3af;--status-built: #7c8794;--status-primed: #8a7f9b;--status-wip: #c08a3e;--status-painted: #4f8a6d;--success: #2fa36b;--warning: #c08a3e;--rose: #c2554e;--shadow-1: 0 1px 2px rgba(28, 36, 48, .04), 0 1px 3px rgba(28, 36, 48, .05);--shadow-2: 0 1px 3px rgba(28, 36, 48, .05), 0 8px 24px rgba(28, 36, 48, .07);--radius-chip: 8px;--radius-button: 12px;--radius: 16px;--radius-dialog: 24px;--fs-xs: .75rem;--fs-sm: .875rem;--fs-lg: 1.0625rem;--fs-xl: 1.25rem;--fs-2xl: 1.625rem}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overflow-x:hidden;max-width:100%}body{background:var(--bg);color:var(--ink-1);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}::selection{background:var(--selection-bg)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;background:var(--elev-1);border:1px solid var(--border);border-radius:8px;color:var(--ink-1);padding:.55rem .7rem;font-size:var(--fs-sm);outline:none;width:100%;transition:border-color .18s cubic-bezier(.2,0,0,1),box-shadow .18s cubic-bezier(.2,0,0,1)}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #47556938}input::placeholder,textarea::placeholder{color:var(--ink-3)}select{-webkit-appearance:none;appearance:none}.serif{font-family:Fraunces,Georgia,Times New Roman,serif;letter-spacing:-.01em}.card{background:var(--elev-1);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:var(--shadow-1)}.btn{border:1px solid var(--border);background:var(--elev-1);color:var(--ink-1);border-radius:var(--radius-button);padding:.5rem .85rem;font-size:var(--fs-sm);transition:border-color .18s cubic-bezier(.2,0,0,1),background .12s cubic-bezier(.2,0,0,1),color .12s cubic-bezier(.2,0,0,1),transform .12s cubic-bezier(.2,0,0,1)}.btn:hover{border-color:#c8d0da;background:var(--elev-2)}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn:disabled{opacity:.45;cursor:default}.btn-ghost{border:1px solid transparent;background:none;color:var(--ink-2);border-radius:8px;padding:.45rem .7rem;font-size:var(--fs-sm);transition:background .12s cubic-bezier(.4,0,.2,1),color .12s cubic-bezier(.4,0,.2,1)}.btn-ghost:hover{background:var(--accent-soft);color:var(--accent)}.btn-ghost:disabled{opacity:.45;cursor:default}.muted{color:var(--ink-3)}.row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}a{color:var(--accent)}.tnum{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.tabs{display:flex;gap:.25rem;background:var(--elev-2);border:1px solid var(--border-subtle);border-radius:var(--radius-button);padding:.25rem}.tab{flex:1;border:none;background:none;color:var(--ink-2);border-radius:9px;padding:.5rem .6rem;font-size:var(--fs-sm);font-weight:600;transition:background .12s ease,color .12s ease;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}.tab.active{background:var(--elev-1);color:var(--accent);box-shadow:var(--shadow-1)}.status-pill{display:inline-flex;align-items:center;gap:.3rem;font-size:11px;font-weight:600;border-radius:999px;padding:.12rem .5rem;color:#fff;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.status-seg{display:flex;flex-wrap:wrap;gap:.35rem}.status-opt{border:1.5px solid var(--border);background:var(--elev-1);color:var(--ink-2);border-radius:var(--radius-button);padding:.4rem .7rem;font-size:var(--fs-xs);font-weight:600;display:inline-flex;align-items:center;gap:.35rem;transition:border-color .12s ease,background .12s ease,color .12s ease,transform .12s ease}.status-opt.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-soft-ink);transform:scale(1.04)}.chip{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--fs-xs);border-radius:var(--radius-chip);padding:.3rem .6rem;border:1px solid var(--border);background:var(--elev-2);color:var(--ink-2);transition:border-color .12s ease,background .12s ease,color .12s ease}.chip:hover{border-color:#c8d0da}.chip.selected{background:var(--selection-bg);border-color:var(--accent);color:var(--accent-soft-ink);font-weight:600}.progress-track{display:flex;height:14px;border-radius:999px;overflow:hidden;background:var(--elev-2)}.progress-seg{height:100%;transition:width .24s cubic-bezier(0,0,0,1)}.hero{background:var(--accent-soft);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:1.4rem 1.5rem;color:var(--accent-soft-ink)}.skeleton-line{height:11px;border-radius:6px;background:linear-gradient(90deg,var(--elev-2) 25%,var(--border-subtle) 37%,var(--elev-2) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion: reduce){.skeleton-line{animation:none}}.mst-launch{position:fixed;right:max(1rem,env(safe-area-inset-right));z-index:39;bottom:max(1rem,env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1rem;border-radius:999px;border:none;background:var(--accent);color:#fff;font-weight:600;font-size:var(--fs-sm);box-shadow:var(--shadow-2);cursor:pointer}.mst-launch:hover{background:var(--accent-hover)}.mst-sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;height:100dvh;background:var(--elev-1);border-top:1px solid var(--border-subtle);border-radius:var(--radius) var(--radius) 0 0;box-shadow:0 -16px 40px -12px #1c243040;transform:translateY(100%);transition:transform .24s ease;display:flex;flex-direction:column;padding:calc(14px + env(safe-area-inset-top)) 16px calc(14px + env(safe-area-inset-bottom))}.mst-sheet.open{transform:translateY(0)}.mst-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-weight:600;font-size:var(--fs-sm)}.mst-chat{display:flex;flex-direction:column;flex:1;max-width:720px;margin:0 auto;width:100%;min-height:0}.mst-scroll{flex:1;overflow:auto;padding-right:4px}.mst-msgrow{display:flex;margin:10px 0}.mst-msgrow.me{justify-content:flex-end}.mst-bubble{white-space:pre-wrap;max-width:85%;padding:11px 14px;border-radius:14px;font-size:14px;line-height:1.5}.mst-bubble.bot{border:1px solid var(--border-subtle);background:var(--accent-soft);color:var(--ink-1)}.mst-bubble.me{background:var(--accent);color:#fff}.mst-bubble.thinking{opacity:.55}.mst-rows{margin-top:8px;max-height:220px;overflow-y:auto}.mst-rowitem{display:flex;justify-content:space-between;gap:.6rem;font-size:var(--fs-xs);padding:.3rem 0;border-top:1px solid var(--border-subtle)}.mst-rowmain{min-width:0;overflow:hidden;text-overflow:ellipsis}.mst-composer{display:flex;gap:8px;padding-top:12px;align-items:flex-end}.mst-composer textarea{flex:1;resize:none}.mst-danger{background:var(--rose);color:#fff;border-color:var(--rose)}.mst-danger:hover:not(:disabled){filter:brightness(1.06)}:root{--radius: 10px;--radius-button: 9px;--radius-chip: 8px;--radius-dialog: 16px}.card{border-radius:10px;box-shadow:none;border-width:1px}.btn,.btn-primary,.btn-ghost{border-radius:9px}.btn-pill{border-radius:999px}.chip{border-radius:8px}input,select,textarea{border-radius:7px}.serif{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;font-weight:700;letter-spacing:-.01em;font-style:normal}@media (pointer: coarse){input,textarea,select{font-size:16px}}.thinking{opacity:1;animation:or-think-breathe 1.8s ease-in-out infinite}.thinking:after{content:"";display:inline-block;width:1.2em;text-align:left;animation:or-think-dots 1.5s steps(4,end) infinite}@keyframes or-think-breathe{0%,to{opacity:.5}50%{opacity:.95}}@keyframes or-think-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}@media (prefers-reduced-motion: reduce){.thinking{animation:or-think-breathe 3s ease-in-out infinite}.thinking:after{animation:none;content:"..."}}
