:root{--bg: #0c0d11;--bg-2: #12141a;--surface: #1b1e27;--surface-2: #15181f;--line: rgba(232, 184, 109, .32);--gold: #e8b86d;--gold-deep: #c9924a;--ink: #f4f0e6;--muted: #9c9689;--quiet: #6f6a60;--teal: #2ec4b6;--danger: #d46a6a;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--font: "SF Pro Text", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,textarea,select{font-family:inherit;font-size:14px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app{height:100%;display:grid;grid-template-rows:64px 1fr;grid-template-columns:1fr}.topbar{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 20px;border-bottom:1px solid rgba(244,240,230,.08);background:#0e1015}.brand{display:flex;align-items:baseline;gap:12px;min-width:0}.brand b{font-size:16px;font-weight:600;letter-spacing:.04em}.brand span{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.btn{height:36px;padding:0 14px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ink)}.btn-primary{background:var(--gold);color:#1b1408;font-weight:600}.btn-primary:hover{background:#f0c782}.btn-secondary{border-color:#f4f0e629;background:transparent;color:var(--ink)}.btn-secondary:hover{border-color:var(--gold);color:var(--gold)}.btn-ghost{color:var(--muted)}.btn-ghost:hover{color:var(--ink)}.btn-danger{color:var(--danger);border-color:#d46a6a59}.btn-danger:hover{background:#d46a6a1f}.btn-sm{height:32px;padding:0 10px;font-size:13px}.stage{overflow:auto;position:relative;cursor:grab;background:radial-gradient(900px 420px at 8% 0%,rgba(232,184,109,.08),transparent 55%),radial-gradient(800px 400px at 92% 100%,rgba(46,196,182,.07),transparent 50%),var(--bg)}.stage.panning{cursor:grabbing}.board{position:relative;min-width:1560px;min-height:860px;padding:28px 40px 32px}.hero{max-width:920px}.hero-btn{display:block;width:100%;text-align:left;background:none;border:none;color:inherit;padding:0;cursor:pointer}.hero-btn:hover h1{color:var(--gold)}.kicker{color:var(--gold);letter-spacing:.28em;font-size:12px;font-weight:500}.hero h1{margin:8px 0 0;font-size:32px;line-height:1.2;font-weight:600;letter-spacing:.02em}.hero p{margin:10px 0 0;color:var(--muted);font-size:15px;line-height:1.55;max-width:820px}.canvas{position:relative;margin-top:20px;height:500px}.spine-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.card{position:absolute;width:248px;min-height:128px;padding:16px 18px 14px;background:linear-gradient(180deg,#1d212b,#15181f);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 36px #00000061;text-align:left;color:inherit}.card:hover{border-color:#e8b86d8c}.card.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),0 16px 36px #00000061}.card.io{width:188px;background:#161920;border-color:#f4f0e629}.card.out{width:188px;background:linear-gradient(180deg,#efc37a,#d19a48);border:none;color:#1b1408}.card .tag{font-size:12px;letter-spacing:.16em;color:var(--gold);margin-bottom:8px}.card.out .tag{color:#5c3e14}.card.io .tag{color:#a8a296}.card .name{font-size:22px;font-weight:600;line-height:1.25}.card .hint{margin-top:8px;font-size:13px;color:var(--muted)}.card.out .name,.card.out .hint{color:#1b1408}.card .metric{margin-top:14px;font-size:13px;color:var(--teal)}.chip{position:absolute;z-index:2;min-width:44px;height:32px;padding:0 10px;border-radius:16px;background:var(--bg);border:1.5px solid var(--gold);color:var(--gold);font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center}.add-on-spine{position:absolute;z-index:3;width:28px;height:28px;border-radius:50%;border:1px solid var(--gold);background:var(--bg);color:var(--gold);font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}.add-on-spine:hover{background:var(--gold);color:#1b1408}.fb{margin-top:8px;border:1px solid rgba(46,196,182,.3);border-radius:20px;background:#2ec4b60f;padding:22px 24px 18px}.fb-head{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.fb h2{margin:0;font-size:18px;font-weight:600;color:var(--teal);letter-spacing:.04em}.fb .note{color:#8fbbb4;font-size:13px}.extras{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:10px}.extra{border:1.5px dashed rgba(232,184,109,.45);border-radius:12px;padding:12px;background:#0c0d1173;text-align:left;color:inherit;min-height:112px}.extra.selected{border-color:var(--gold);background:#e8b86d14}.extra b{display:block;font-size:14px;margin-bottom:6px}.extra span{color:var(--muted);font-size:13px;line-height:1.4}.rule{margin-top:14px;color:var(--muted);font-size:14px}.fb-actions{margin-top:12px}.inspector{position:fixed;top:64px;right:0;bottom:0;width:min(360px,100%);z-index:8;border-left:1px solid rgba(244,240,230,.08);background:#101218f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:auto;padding:20px 20px 32px;box-shadow:-16px 0 40px #00000047}.inspector-head,.inspector>h2{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 4px}.inspector h2{margin:0;font-size:18px;font-weight:600}.inspector .lead{color:var(--muted);margin:0 0 20px;font-size:13px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field span{font-size:12px;color:var(--muted)}.field em{color:var(--danger);font-style:normal}.field input,.field textarea,.field select{width:100%;border:1px solid rgba(244,240,230,.12);background:#171a22;color:var(--ink);border-radius:8px;padding:10px 12px;outline:none}.field textarea{min-height:84px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold)}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.inspector-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.save-hint{margin-top:24px;color:var(--quiet);font-size:12px;line-height:1.5}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:#1d212b;border:1px solid var(--line);color:var(--ink);padding:10px 16px;border-radius:999px;z-index:20}.confirm{position:fixed;top:0;right:0;bottom:0;left:0;background:#08090ca3;display:grid;place-items:center;z-index:30}.confirm-box{width:min(420px,calc(100% - 32px));background:#161920;border:1px solid rgba(244,240,230,.12);border-radius:16px;padding:22px}.confirm-box h3{margin:0 0 8px;font-size:18px}.confirm-box p{margin:0 0 18px;color:var(--muted)}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}@media (max-width: 980px){.app{grid-template-rows:56px 1fr}.topbar{padding:0 12px}.brand span{display:none}.inspector{top:auto;left:0;width:100%;height:46vh;border-left:none;border-top:1px solid rgba(244,240,230,.08)}.extras{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1{font-size:24px}.board{padding:24px 20px 28px}.actions .btn-secondary:nth-of-type(1){display:none}}:root{--bg:#f4f4f0;--surface:#fff;--surface-2:#f8f8f5;--line:#d3d9d0;--gold:#27715a;--gold-deep:#19513e;--ink:#25352d;--muted:#637168;--quiet:#6d7970;--teal:#417260;--danger:#b64b46}.app{grid-template-rows:72px 62px minmax(0,1fr)}.topbar{background:#fff;border-color:#dfe3dc;padding:0 32px}.brand{gap:22px}.brand b{display:flex;align-items:center;gap:12px;letter-spacing:0;font-size:17px}.brand-mark{display:grid;place-items:center;width:32px;height:32px;background:#224e3e;color:#fff;border-radius:8px;font-family:Georgia,serif;font-size:23px;font-style:normal}.brand span{border-left:1px solid #dce2d9;padding-left:22px}.btn-primary{background:#275f49;color:#fff}.btn-primary:hover{background:#17452f}.btn-secondary{border-color:#d5dbd2}.btn-secondary:hover{border-color:#27715a}.viewbar{display:flex;align-items:center;gap:24px;padding:0 32px;background:#fff;border-bottom:1px solid #dfe3dc;min-width:0}.tabs{display:flex;align-self:stretch;gap:24px;flex-shrink:0}.tabs button{border:0;background:none;color:#718078;border-bottom:2px solid transparent;padding:0 2px}.tabs .active{border-color:#27715a;color:#24543f;font-weight:600}.viewbar input{border:1px solid #dce1d8;background:#f6f7f3;border-radius:7px;padding:9px 12px;width:280px;color:var(--ink)}.baseline{margin-left:auto;color:#708076;font-size:12px;white-space:nowrap}.zoom{margin-left:auto;display:flex;gap:15px;align-items:center}.zoom button{border:1px solid #dce1d8;background:#fff;color:var(--ink);border-radius:5px;width:30px;height:30px}.stage{background:radial-gradient(#cfd8cd .7px,transparent .7px),#f4f4f0;background-size:18px 18px}.overview{max-width:1550px;margin:auto;padding:42px 40px 24px;cursor:auto}.overview-hero{display:flex;gap:40px;justify-content:space-between}.overview-hero>div:first-child{max-width:830px}.kicker{letter-spacing:.14em;color:#64766a;font-size:11px;font-weight:600}.overview h1{font-size:34px;line-height:1.3;letter-spacing:-.02em;margin:12px 0 14px;font-weight:600}.overview-hero p{font-size:14px;line-height:1.8;color:var(--muted);margin:0}.overview-stamp{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;min-width:170px;border-left:1px solid #d2d9cf;padding-left:36px}.overview-stamp b{font-size:44px;line-height:1.1;font-weight:400;font-family:Georgia,serif}.overview-stamp span{font-size:13px;margin-top:8px}.overview-stamp small{color:#6f7b71;font-size:11px;margin-top:8px}.legend{display:flex;gap:28px;border-top:1px solid #d4dcd1;border-bottom:1px solid #d4dcd1;padding:14px 0;margin:28px 0 26px;color:#66756a;font-size:12px;flex-wrap:wrap}.legend i{display:inline-block;width:6px;height:6px;background:#47785f;border-radius:50%;margin-right:8px}.flow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}.phase{border:1px solid #d5ddd1;background:#fcfcfa;border-radius:10px;position:relative;overflow:hidden}.phase-head{display:flex;width:100%;align-items:center;gap:12px;border:0;background:#edf1e9;color:var(--ink);text-align:left;padding:15px 18px;border-bottom:1px solid #dce2d7}.phase-head>span{font-family:Georgia,serif;font-size:22px;color:#647b64}.phase-head h2{font-size:15px;margin:0;font-weight:600}.phase-head small{margin-left:auto;font-size:11px;color:#5e7767}.phase-body{padding:6px 18px}.process-node{width:100%;display:block;text-align:left;background:transparent;border:0;color:var(--ink);padding:17px 0;position:relative}.process-node+.process-node{border-top:1px dashed #d7dfd1}.node-tag{font-size:11px;color:#74836f}.process-node h3{font-size:16px;margin:7px 0 8px;font-weight:600}.process-node p{color:#627065;font-size:13px;line-height:1.75;margin:0}.node-delivery{font-size:11px;color:#42694e;margin-top:12px}.process-node:hover h3,.process-node.selected h3{color:#23865c}.process-node.selected{background:#edf4e9}.overview-notes{margin-top:34px;border-top:1px solid #cbd6c5;padding-top:24px}.overview-notes h2{font-size:18px;font-weight:600;margin:0}.overview-notes>p{font-size:12px;color:var(--muted)}.overview-notes>div{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:22px}.overview-notes button{background:none;border:0;border-left:2px solid #c4d2bd;color:var(--ink);padding:0 0 0 14px;text-align:left}.overview-notes b{display:block;font-size:13px;margin-bottom:8px}.overview-notes span{font-size:12px;line-height:1.8;color:var(--muted)}.overview-notes .rule{margin-top:24px;padding:14px 18px;background:#e9eee5;border-radius:6px;line-height:1.8}.overview footer{margin-top:26px;color:#7b877a;font-size:11px;padding-top:18px;border-top:1px solid #d8dfd3}.empty{padding:48px;text-align:center}.card{background:#fff;box-shadow:0 4px 14px #263e2210;border-color:#c4d1bd;border-radius:10px;min-height:210px}.card .name{font-size:19px}.card .tag{font-size:11px;letter-spacing:0}.card .hint{line-height:1.7}.card .metric{font-size:11px}.card.io{background:#edf1e9;min-height:140px}.card.out{background:#285b43;color:#fff;min-height:140px}.card.out .tag,.card.out .name,.card.out .hint{color:#fff}.spine-svg path{stroke:#78936b}.spine-svg text{fill:#45613c}.fb{background:#eef3e9;border-color:#cedcc6}.extra{background:#fff;border-color:#c2d2b8}.inspector{top:134px;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;border-color:#d3decf;box-shadow:-12px 0 35px #293c2020}.field input,.field textarea,.field select{background:#f8faf5;border-color:#d3decc;color:var(--ink)}.confirm-box{background:#fff;border-color:#d3decc}.toast{background:#fff}.hero h1{letter-spacing:0}.board{padding:32px 40px}.fb{max-width:1300px}.fb .note{color:#637565}.brand b{white-space:nowrap}button:focus-visible,input:focus-visible{outline:2px solid #26714e;outline-offset:3px}@media (min-width:1600px){.flow-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:1100px){.flow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand span{display:none}.overview-notes>div{grid-template-columns:repeat(2,1fr)}.baseline{display:none}.overview{padding:28px 24px}.topbar,.viewbar{padding-left:20px;padding-right:20px}.inspector{top:134px;height:auto;left:auto;width:360px;border-top:0}.actions .btn-secondary:nth-of-type(1){display:block}}@media (max-width:640px){.app{grid-template-rows:110px 96px minmax(0,1fr)}.topbar{flex-wrap:wrap;align-content:center;gap:12px;padding:12px 16px}.brand b{font-size:15px}.brand-mark{width:26px;height:26px}.actions{width:100%;gap:6px}.actions .btn{font-size:12px;padding:0 10px;height:30px}.viewbar{padding:10px 16px;gap:8px;flex-wrap:wrap}.tabs{height:32px;align-self:auto}.viewbar input{width:100%;order:2;padding:7px 10px;font-size:12px}.zoom{font-size:11px}.overview{padding:26px 16px}.overview h1{font-size:25px}.overview-stamp{display:none}.legend{gap:10px 16px;line-height:1.7;margin:20px 0}.flow-grid{grid-template-columns:1fr;gap:18px}.overview-notes>div{grid-template-columns:1fr;gap:22px}.inspector{top:auto;bottom:0;left:0;width:100%;height:60vh;border-top:1px solid #cbd6c5}.overview-hero p{font-size:13px}}
