:root{--bg: #efe6d6;--bg-2: #e7dcc8;--ink: #1c1915;--ink-soft: #5e564c;--paper: #fbf7f0;--line: #e0d5c4;--green: #1c6b4a;--green-2: #e7f3ec;--navy: #24344d;--brass: #8d5c16;--brass-2: #f8ecd9;--red: #8d3140;--red-2: #f8e8ea;--shadow: 0 16px 40px rgba(70, 48, 16, .08);--serif: "Newsreader", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Tamil", "Noto Serif Bengali", "Noto Serif Telugu", "Noto Serif Kannada", "Noto Serif Malayalam", "Noto Serif Gujarati", "Noto Serif Gurmukhi", "Iowan Old Style", Palatino, serif;--sans: "Figtree", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Tamil", "Noto Sans Bengali", "Noto Sans Telugu", "Noto Sans Kannada", "Noto Sans Malayalam", "Noto Sans Gujarati", "Noto Sans Gurmukhi", "Noto Sans Oriya", "Noto Sans Ol Chiki", "Noto Sans Meetei Mayek", "Noto Nastaliq Urdu", "Noto Sans Arabic", "Noto Naskh Arabic", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(1200px 500px at 10% -10%,#f6efe2 0%,transparent 50%),var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{font-family:var(--serif);font-weight:560;letter-spacing:-.02em;margin:0 0 .4rem}h1{font-size:2.15rem;line-height:1.05}h2{font-size:1.45rem}h3{font-size:1.15rem}p{margin:0 0 .75rem}.frame{min-height:100vh}.harness{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 20px;background:var(--navy);color:#f4efe6}.harness-note{flex:1 0 100%;margin:0;color:#c9d4e4;font-size:.82rem}.harness-brand{display:flex;gap:12px;align-items:center}.harness-brand strong{display:block;font-size:.95rem}.harness-brand span{display:block;color:#c9d4e4;font-size:.82rem}.mark{width:32px;height:32px;color:#e7c27a}.actor-label{display:flex;flex-direction:column;gap:4px;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:#c9d4e4}.actor-label select,.card select,.split select,label input,label textarea,label select{background:#fffdf8;border:1px solid #cabb9f;border-radius:10px;padding:8px 10px;min-width:0}.actor-label select{color:var(--ink);text-transform:none;letter-spacing:0;font-size:.95rem;min-width:280px}.toast{margin:12px 20px 0;background:var(--red-2);color:var(--red);border-radius:12px;padding:12px 14px}.shell{display:grid;grid-template-columns:220px 1fr;gap:8px;padding:16px}.side{padding:8px 8px 24px}.product-name{font-family:var(--serif);font-size:1.7rem;line-height:1}.kicker{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--brass);margin:0 0 6px}.kicker.light{color:var(--brass)}.nav{display:flex;flex-direction:column;gap:6px;margin-top:22px}.nav button,.btn{border:1px solid transparent;border-radius:999px;padding:12px 16px;min-height:48px;background:transparent;text-align:left}.btn.primary{font-weight:600}.nav button.on{background:var(--ink);color:#fbf7f0}.side-note{color:var(--ink-soft);font-size:.92rem;margin-top:28px}.main{min-width:0}.page{background:#fbf7f0b8;border:1px solid rgba(255,255,255,.7);border-radius:22px;padding:28px;box-shadow:var(--shadow)}.lead{max-width:68ch;color:var(--ink-soft);font-size:1.05rem}.title-row{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.muted{color:var(--ink-soft);font-size:.92rem}.btn.primary{background:var(--green);color:#fff}.btn.ghost{background:transparent;border-color:#cabb9f}.btn.danger{background:var(--red);color:#fff}.btn.light{color:#f4efe6;border-color:#405572}.btn:disabled{opacity:.5;cursor:not-allowed}.link{background:none;border:0;padding:0;color:var(--navy);text-decoration:underline;text-underline-offset:3px;text-align:left}.stats,.lenses,.book,.roster,.kanban,.split{display:grid;gap:12px}.stats{grid-template-columns:repeat(4,1fr);margin:18px 0}.stat,.card,.smb-card,.lens,.report{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px 16px}.stat-value{font-family:var(--serif);font-size:1.8rem}.split{grid-template-columns:1fr 1fr}.split.top{align-items:start;margin:8px 0 18px}.card.accent{background:var(--brass-2)}.card.lock{background:#f3efe6}.banner{background:var(--green-2);border-radius:12px;padding:10px 12px}.banner.warn{background:var(--brass-2)}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.78rem;letter-spacing:.02em;background:#eee6d8}.pill.green{background:var(--green-2);color:var(--green)}.pill.navy{background:#e7eef6;color:var(--navy)}.pill.brass{background:var(--brass-2);color:var(--brass)}.pill.red{background:var(--red-2);color:var(--red)}.pill.ink{background:#eee6d8}.bar{height:8px;background:#efe6d6;border-radius:99px;overflow:hidden;margin:8px 0}.bar>span{display:block;height:100%;background:var(--green)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.rules,.plain{margin:0;padding-left:18px}.plain{list-style:none;padding:0}.plain li,.timeline li{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px solid var(--line)}.timeline{list-style:none;padding:0;margin:0}.timeline span{color:var(--ink-soft);font-size:.8rem}.timeline em{font-style:normal;color:var(--ink-soft)}.kanban{grid-template-columns:repeat(4,1fr);align-items:start}.kanban section{background:#fffdf873;border-radius:16px;padding:10px}.smb-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;text-align:left;margin-bottom:8px;min-height:72px}.smb-card.is-next{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.smb-card.wide{min-height:140px}.book,.roster{grid-template-columns:repeat(2,1fr)}.lenses{grid-template-columns:repeat(3,1fr)}.lens{display:flex;flex-direction:column;gap:6px}.lens.tone-ok{box-shadow:inset 3px 0 0 var(--green)}.lens.tone-watch{box-shadow:inset 3px 0 0 var(--brass)}.lens.tone-gap{box-shadow:inset 3px 0 0 var(--red)}.stack{display:flex;flex-direction:column;gap:12px}.stack.tight{margin-top:8px}label{display:flex;flex-direction:column;gap:6px;font-size:.92rem}.check{flex-direction:row;align-items:flex-start;gap:8px;margin:8px 0}.checks{display:flex;flex-direction:column;gap:8px;margin:10px 0}.row-actions{display:flex;gap:8px;flex-wrap:wrap}blockquote,.report{margin:8px 0;padding:12px 14px;background:#f6f1e6;border-radius:12px}.notice-sample{background:#fff;border-left:3px solid var(--green);padding:10px 12px}.notice-sample span{display:block;color:var(--ink-soft);font-size:.8rem;margin-bottom:4px}.evidence{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.evidence p{margin:0;color:var(--ink-soft)}.graph-layout{display:grid;grid-template-columns:1fr 280px;gap:12px;align-items:start}.graph-scroll{overflow:auto;background:#f7f1e6;border-radius:18px;border:1px solid var(--line)}.graph-scroll svg{width:100%;height:auto;display:block}.graph-side{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px}.edge-list{list-style:none;padding:0}.edge-list li{margin:6px 0}.legend{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.legend-btn{border-radius:999px;border:1px solid var(--line);background:#fff;padding:10px 14px;min-height:44px}.legend-btn.off{opacity:.35}.legend-btn.edge-serves,.legend-btn.edge-backup{box-shadow:inset 0 -2px 0 var(--green)}.legend-btn.edge-introduced{box-shadow:inset 0 -2px 0 var(--brass)}.legend-btn.edge-governs,.legend-btn.edge-certifies{box-shadow:inset 0 -2px 0 var(--navy)}.legend-btn.edge-roster{box-shadow:inset 0 -2px #6ea88a}.edge{fill:none}.edge-serves{stroke:var(--green);stroke-width:2.2}.edge-backup{stroke:var(--green);stroke-width:1.6;stroke-dasharray:5 4}.edge-introduced{stroke:var(--brass);stroke-width:1.6}.edge-governs{stroke:var(--navy);stroke-width:1.3}.edge-certifies{stroke:#8aa0b8;stroke-width:1.1}.edge-roster{stroke:#3e8f68;stroke-width:1.4}.edge.dim{opacity:.12}.gnode{cursor:pointer}.gnode rect{fill:#fffdf8;stroke:#d9d0c2;stroke-width:1.4}.gnode text{font-family:var(--sans);font-size:13px;fill:var(--ink)}.gnode text.sub{font-size:11px;fill:var(--ink-soft)}.gnode.is-platform rect{fill:var(--navy);stroke:var(--navy)}.gnode.is-platform text,.gnode.is-platform text.sub{fill:#f6f1e8}.gnode.is-officer rect{fill:var(--green);stroke:var(--green)}.gnode.is-officer text,.gnode.is-officer text.sub{fill:#f3faf6}.gnode.is-partner rect{fill:var(--brass-2);stroke:var(--brass)}.gnode.is-msp rect{fill:#f3f7f4;stroke:var(--green)}.gnode.is-served rect{stroke:var(--green);stroke-width:2}.gnode.is-assessed rect{stroke:var(--brass);stroke-width:2}.gnode.is-invited rect{stroke-dasharray:4 3}.gnode.on rect{stroke:#e2b15a;stroke-width:3}.gnode.dim{opacity:.28}.ok-line{color:var(--green)}.bad-line{color:var(--red)}section{margin:18px 0}.setting{display:flex;flex-direction:column;gap:4px;min-width:11rem}.setting-name{display:flex;align-items:center;gap:6px;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:#c9d4e4}.lang-mark{width:16px;height:16px}.setting select{font-size:1.08rem;min-height:48px;min-width:11rem}.next-step{background:var(--paper);border:2px solid var(--green);border-radius:20px;padding:18px 18px 16px;margin:8px 0 18px}.next-step .btn.primary{min-height:52px}.facts{list-style:none;padding:0;margin:0 0 8px}.facts li{margin:0 0 4px;color:var(--ink-soft)}.glance{margin:2px 0 8px}.evidence-code{display:block;margin-top:2px;font-size:.78rem;letter-spacing:.04em;color:var(--ink-soft);font-weight:650}details.how summary{font-family:var(--serif);font-size:1.35rem;cursor:pointer;margin-bottom:8px}details.how{margin:18px 0}@media(max-width:980px){.shell{grid-template-columns:1fr}.nav{flex-direction:row}.stats,.split,.kanban,.book,.lenses,.graph-layout,.roster{grid-template-columns:1fr}.harness{flex-wrap:wrap}.actor-label select,.setting select{min-width:0;width:100%}.setting,.actor-label{flex:1 1 100%}.harness{align-items:stretch}h1{font-size:1.7rem}.page{padding:16px}.btn.primary,.btn.danger{width:100%;text-align:center}.row-actions{flex-direction:column}.row-actions .btn{width:100%;text-align:center}}
