:root{--brand: #0a7d5a;--brand-press: #086a4d;--brand-soft: #e6f3ee;--brand-ink: #ffffff;--accent: #e8912a;--accent-soft: #fbeed8;--ok: #1d8a5b;--warn: #b9770a;--error: #c2410c;--info: #0d7490;--bg: #f7f5f1;--bg-tint: #efece6;--surface: #ffffff;--surface-2: #fbfaf7;--ink: #20312b;--ink-muted: #5f6f68;--line: #e7e2d8;--line-strong: #d8d2c5;--sans: "Inter", -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--maxw: 960px;--radius: 18px;--radius-sm: 11px;--radius-pill: 999px;--shadow: 0 1px 2px rgba(28, 40, 35, .05), 0 4px 16px rgba(28, 40, 35, .06);--shadow-pop: 0 8px 30px rgba(28, 40, 35, .16);--ease: cubic-bezier(.2, .8, .2, 1)}@media (prefers-color-scheme: dark){:root{--brand: #2bb487;--brand-press: #25a079;--brand-soft: #16302a;--brand-ink: #06120e;--accent: #f0a93f;--accent-soft: #3a2a13;--ok: #4ec08a;--warn: #e0a23a;--error: #f08a5a;--info: #4bbdd8;--bg: #0f1714;--bg-tint: #16201c;--surface: #16201c;--surface-2: #1b251f;--ink: #e8efea;--ink-muted: #9bafa6;--line: #28332e;--line-strong: #34423b;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-pop: 0 10px 34px rgba(0, 0, 0, .55)}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.55;font-size:16px;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--sans);color:var(--ink);line-height:1.18;letter-spacing:-.01em}h1{font-size:2rem;font-weight:800;margin:0 0 .5rem}h2{font-size:1.4rem;font-weight:700;margin:1.6rem 0 .5rem}h3{font-size:1.08rem;font-weight:700;margin:0 0 .4rem}a{color:var(--brand);text-decoration:none;font-weight:600}a:hover{text-decoration:underline}code{background:var(--bg-tint);padding:1px 6px;border-radius:5px;font-size:.86em;font-family:ui-monospace,SF Mono,Menlo,monospace}.demo-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-left:5px;vertical-align:middle}.topbar{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.topbar .wrap,main{max-width:var(--maxw);margin:0 auto}.topbar .wrap{padding:12px 22px;display:flex;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:800;font-size:1.18rem;letter-spacing:-.02em}.brand:hover{text-decoration:none}.brand .mark{width:30px;height:30px;border-radius:9px;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;font-size:.95rem;box-shadow:var(--shadow)}.brand .tag-mini{color:var(--ink-muted);font-weight:600;font-size:.72rem}.topbar nav{margin-left:auto;display:flex;align-items:center;gap:6px}.topbar nav a,.topbar nav .navlink{color:var(--ink-muted);font-size:.92rem;font-weight:600;padding:8px 12px;border-radius:var(--radius-pill);background:none;border:none;cursor:pointer;font-family:inherit;transition:background .15s var(--ease),color .15s var(--ease)}.topbar nav a:hover,.topbar nav .navlink:hover{text-decoration:none;background:var(--bg-tint);color:var(--ink)}.topbar nav a.active{color:var(--brand);background:var(--brand-soft)}main{padding:32px 22px 96px}.lede{color:var(--ink-muted);font-size:1.08rem;max-width:64ch;margin:0 0 22px}.muted{color:var(--ink-muted);font-size:.9rem}button,.btn{font:inherit;font-weight:700;cursor:pointer;font-family:inherit;background:var(--brand);color:var(--brand-ink);border:1px solid var(--brand);border-radius:var(--radius-pill);padding:11px 22px;transition:background .15s var(--ease),transform .06s var(--ease),box-shadow .15s var(--ease);box-shadow:var(--shadow)}button:hover{background:var(--brand-press);border-color:var(--brand-press)}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button:disabled{background:var(--bg-tint);color:var(--ink-muted);border-color:var(--line);cursor:not-allowed;transform:none;box-shadow:none}.btn-outline{background:transparent;color:var(--brand);border:1.5px solid var(--brand);box-shadow:none}.btn-outline:hover{background:var(--brand-soft);border-color:var(--brand)}.btn-ghost{background:transparent;color:var(--ink-muted);border:1px solid var(--line-strong);box-shadow:none}.btn-ghost:hover{background:var(--bg-tint);color:var(--ink);border-color:var(--line-strong)}.btn-sm{padding:6px 14px;font-size:.84rem}.btn-lg{padding:14px 30px;font-size:1.05rem}.btn-danger{background:transparent;color:var(--error);border:1.5px solid var(--error);box-shadow:none}.btn-danger:hover{background:color-mix(in srgb,var(--error) 10%,transparent)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:16px 0}.stat-tile{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;background:var(--surface)}.stat-tile .n{font-size:1.6rem;font-weight:800;display:block}.stat-tile .lbl{color:var(--ink-muted);font-size:.82rem}.card{position:relative;border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin:16px 0;background:var(--surface);box-shadow:var(--shadow)}.card.flush{margin:0}.card h3{margin:0 0 6px}.card-soft{background:var(--surface-2);box-shadow:none}.hero{background:linear-gradient(135deg,var(--brand-soft),var(--surface));border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);padding:40px 38px;margin:8px 0 24px}.hero h1{font-size:2.3rem;max-width:18ch}.hero p{color:var(--ink-muted);font-size:1.12rem;max-width:56ch;margin:0 0 22px}.hero .actions{display:flex;flex-wrap:wrap;gap:12px}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-pill);padding:3px 12px;font-size:.76rem;font-weight:700;letter-spacing:.01em;background:var(--bg-tint);color:var(--ink-muted);border:1px solid transparent}.chip.draft{background:var(--bg-tint);color:var(--ink-muted)}.chip.in_review{background:var(--accent-soft);color:var(--warn)}.chip.approved,.chip.brand{background:var(--brand-soft);color:var(--brand)}.chip.error,.chip.failed{background:color-mix(in srgb,var(--error) 12%,var(--surface));color:var(--error)}.tag{display:inline-block;background:var(--bg-tint);color:var(--ink-muted);border-radius:var(--radius-pill);padding:3px 11px;font-size:.74rem;font-weight:700}.steprail{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 20px}.step{display:flex;align-items:center;gap:9px;padding:9px 15px 9px 11px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line);font-size:.9rem;font-weight:600;color:var(--ink-muted)}.step .dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.74rem;font-weight:800;background:var(--bg-tint);color:var(--ink-muted);border:1px solid var(--line-strong)}.step.done{color:var(--ink);border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}.step.done .dot{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.step.current{color:var(--ink);background:var(--brand-soft);border-color:var(--brand);box-shadow:var(--shadow)}.step.current .dot{background:var(--accent);color:#fff;border-color:var(--accent)}.pmini{display:flex;gap:4px;margin:10px 0 2px}.pmini span{height:6px;flex:1;border-radius:4px;background:var(--bg-tint)}.pmini span.done{background:var(--brand)}.pmini span.current{background:var(--accent)}.proglist{display:grid;gap:14px}.progcard{display:block;padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:inherit;transition:box-shadow .15s var(--ease),transform .06s var(--ease),border-color .15s var(--ease)}.progcard:hover{text-decoration:none;box-shadow:var(--shadow-pop);border-color:var(--line-strong);transform:translateY(-1px)}.progcard .row{display:flex;align-items:center;gap:12px}.progcard h3{margin:0}.progcard .meta{color:var(--ink-muted);font-size:.9rem;margin:3px 0 0}.progcard .stagelabel{margin-left:auto;font-size:.84rem;font-weight:700;color:var(--brand);white-space:nowrap}.docrow{display:flex;align-items:center;gap:12px;padding:14px 4px;border-bottom:1px solid var(--line)}.docrow:last-child{border-bottom:none}.docrow .ktag{width:56px;flex:none;font-size:.7rem;font-weight:800;letter-spacing:.04em;color:var(--ink-muted);text-transform:uppercase}.docrow .title{font-weight:600;color:var(--ink)}.docrow .title:hover{color:var(--brand)}.docrow .right{margin-left:auto;display:flex;align-items:center;gap:10px}label{display:block;font-weight:700;margin:18px 0 6px;font-size:.92rem;color:var(--ink)}input,textarea,select{width:100%;font:inherit;padding:11px 14px;color:var(--ink);border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}input:hover,textarea:hover,select:hover{border-color:var(--ink-muted)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}textarea{min-height:120px;resize:vertical}.field-hint{color:var(--ink-muted);font-size:.84rem;margin:6px 0 0}.choice-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.choice{flex:1;min-width:220px;text-align:left;cursor:pointer;padding:16px 18px;border-radius:var(--radius-sm);border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink);font-weight:600;box-shadow:none}.choice:hover{border-color:var(--brand);background:var(--surface)}.choice.sel{border-color:var(--brand);background:var(--brand-soft);box-shadow:var(--shadow)}.choice .t{font-weight:700;display:block;margin-bottom:3px}.choice .d{font-weight:500;font-size:.88rem;color:var(--ink-muted)}.callout,.alert{padding:14px 16px;border-radius:var(--radius-sm);margin:16px 0;font-size:.95rem;border:1px solid var(--line);background:var(--surface-2)}.callout .ct,.alert .ct{font-weight:700}.callout.info,.alert-info{background:color-mix(in srgb,var(--info) 8%,var(--surface));border-color:color-mix(in srgb,var(--info) 26%,transparent)}.callout.ok{background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 30%,transparent)}.callout.warn{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 34%,transparent)}.callout.error,.alert-error{background:color-mix(in srgb,var(--error) 9%,var(--surface));border-color:color-mix(in srgb,var(--error) 30%,transparent)}.md{background:var(--surface);border:1px solid var(--line);padding:6px 24px 18px;border-radius:var(--radius);box-shadow:var(--shadow)}.md h1,.md h2,.md h3,.md h4{margin:18px 0 6px}.md h1{font-size:1.4rem}.md h2{font-size:1.22rem}.md h3{font-size:1.06rem}.md p{margin:9px 0}.md ul,.md ol{margin:9px 0;padding-left:22px}.md li{margin:3px 0}.md table{border-collapse:collapse;margin:12px 0}.md th,.md td{border:1px solid var(--line);padding:5px 9px}.md strong{color:var(--ink)}.sample-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.check{display:flex;align-items:center;gap:8px;font-weight:500;margin:12px 0 0}.check input{width:auto}.delete-btn{position:absolute;top:16px;right:16px;margin:0}.kpi-row{display:flex;gap:14px;flex-wrap:wrap}.kpi{flex:1;min-width:140px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px 18px;box-shadow:var(--shadow)}.kpi .num{font-size:1.9rem;font-weight:800;color:var(--ink);line-height:1.1}table.data{width:100%;border-collapse:collapse;margin-top:12px;font-size:.88rem}table.data th,table.data td{border:1px solid var(--line);padding:7px 11px;text-align:left}table.data th{background:var(--bg-tint)}.vrow{margin:4px 0;color:var(--ink-muted)}.vrow.ok strong{color:var(--ok)}.vrow.error strong{color:var(--error)}.vrow.warning strong{color:var(--warn)}.vsev{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--line);border-radius:5px;padding:1px 6px;margin-left:4px}.vsev.error{color:var(--error)}.vsev.warning{color:var(--warn)}.spinner{display:inline-block;width:.9em;height:.9em;vertical-align:-.1em;margin-right:7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-wrap{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:10px;z-index:100;max-width:360px}.toast{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:12px;padding:12px 15px;box-shadow:var(--shadow-pop);font-size:.92rem;display:flex;gap:8px;align-items:flex-start}.toast.success{border-left-color:var(--ok)}.toast.error{border-left-color:var(--error)}.toast.info{border-left-color:var(--info)}.toast .x{margin-left:auto;cursor:pointer;color:var(--ink-muted);background:none;border:none;padding:0;font-size:1rem;box-shadow:none}.fade-in{animation:fadeIn .22s var(--ease)}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.tour-launch{position:fixed;right:20px;bottom:20px;z-index:80;display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);border:1.5px solid var(--brand);box-shadow:var(--shadow-pop);font-weight:700;cursor:pointer}.tour-launch:hover{background:var(--brand-soft)}.tour-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f17145c;z-index:90;animation:fadeIn .2s var(--ease)}.tour-bar{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:95;width:min(560px,calc(100vw - 36px));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:18px 20px}.tour-bar .step-of{color:var(--brand);font-weight:800;font-size:.76rem;letter-spacing:.04em;text-transform:uppercase}.tour-bar h3{margin:4px 0 6px}.tour-bar p{margin:0 0 14px;color:var(--ink-muted);font-size:.95rem}.tour-bar .row{display:flex;align-items:center;gap:10px}.tour-bar .row .grow{margin-left:auto}.tour-highlight{position:relative;z-index:92;box-shadow:0 0 0 4px var(--accent),0 0 0 10px color-mix(in srgb,var(--accent) 30%,transparent);border-radius:14px;animation:pulse 1.6s var(--ease) infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 4px var(--accent),0 0 0 10px color-mix(in srgb,var(--accent) 26%,transparent)}50%{box-shadow:0 0 0 4px var(--accent),0 0 0 16px color-mix(in srgb,var(--accent) 10%,transparent)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media (max-width: 620px){.hero{padding:28px 22px}.hero h1{font-size:1.8rem}.topbar nav a,.topbar nav .navlink{padding:7px 9px;font-size:.86rem}}
