:root{color-scheme:light;--bg:#f2f3ef;--paper:#fff;--ink:#233e37;--muted:#73827a;--line:#dce2d9;--green:#286653;--gold:#b48947;--red:#a44437;font:14px/1.55 "Microsoft YaHei","PingFang SC",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button{border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 13px;border-radius:7px;cursor:pointer;transition:background .15s}button:hover{background:#edf3ec;border-color:#a3b7a8}button:disabled{opacity:.45;cursor:default}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#1d5142}.workbench-header{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:#183d32;color:white}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font-size:21px;font-weight:700;letter-spacing:2px}.brand-mark{border:1px solid #aab8a3;border-radius:10px;display:grid;place-items:center;width:43px;height:43px;font:28px Georgia,serif}.brand small{display:block;font-size:10px;letter-spacing:2px;font-weight:400;opacity:.6}.workbench-header nav{display:flex;gap:8px}.workbench-header button{background:transparent;color:#e6eee6;border-color:#547062}.workbench-header .primary{background:#d7ba83;color:#21392e;border-color:#d7ba83}#status{min-height:35px;padding:7px 30px;font-size:12px;border-bottom:1px solid var(--line);background:#eaf0e7}#status.error{background:#f9e8df;color:#953e30}.workbench{display:grid;grid-template-columns:236px minmax(480px,1fr) 250px;min-height:calc(100vh - 115px);max-width:1920px;margin:auto}.library-panel,.blocks-panel{padding:22px 16px;background:#f8faf5;position:sticky;top:0;height:calc(100vh - 1px);overflow:auto}.library-panel{border-right:1px solid var(--line)}.blocks-panel{border-left:1px solid var(--line)}.section-label{font-size:12px;font-weight:700;letter-spacing:1.5px}.section-label span{color:var(--muted);font-size:11px;letter-spacing:0;margin-left:7px}input,select{width:100%;border:1px solid var(--line);background:white;color:var(--ink);border-radius:6px;padding:8px;min-width:0}input:focus,select:focus,button:focus-visible{outline:2px solid #9fbc90;outline-offset:2px}input[type=search]{margin:16px 0 10px}.filters{display:flex;gap:6px}.filters select{font-size:12px}.project-list{margin:14px -7px;display:grid;gap:3px;max-height:calc(100vh - 290px);overflow:auto}.project-item{text-align:left;background:transparent;border:1px solid transparent;padding:10px;border-radius:7px;display:grid;grid-template-columns:25px 1fr;gap:7px;align-items:center}.project-item.active{background:#e5eddf;border-color:#c9d8c0}.faction-dot{width:23px;height:23px;border-radius:5px;text-align:center;background:#e9e2d3;color:#766134;font-size:12px;line-height:23px}.project-item strong{font-weight:600}.project-item small{display:block;font-size:10px;color:var(--muted)}.library-foot{font-size:10px;color:var(--muted);padding-top:10px;border-top:1px solid var(--line)}.status-dot{display:inline-block;background:#82a47b;width:5px;height:5px;border-radius:50%}.design-panel{padding:26px 30px 50px;min-width:0}.project-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted)}h1{font-size:27px;font-weight:600;letter-spacing:1px;margin:2px 0}.history-controls{display:flex;gap:5px}.history-controls button{font-size:12px}.metadata{display:grid;grid-template-columns:1fr 1.4fr .55fr;gap:14px}label{font-size:11px;color:var(--muted);display:grid;gap:5px}.mode-row{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:16px 0 28px}.mode-row label{min-width:65%}.badge{border-radius:20px;background:#e8dfce;color:#896a36;font-size:11px;padding:4px 11px;white-space:nowrap}.badge.good{background:#daead9;color:#357043}.canvas-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.canvas-header button{font-size:12px}.program-canvas{background-image:radial-gradient(#d2dccc 1px,transparent 1px);background-size:18px 18px;border:1px solid var(--line);border-radius:12px;min-height:300px;padding:18px}.native-block{background:#faf8ee;border:1px solid #dbcca7;border-left:4px solid var(--gold);border-radius:8px;padding:15px 17px;margin-bottom:16px}.native-block h3{font-size:13px;margin:0 0 7px}.native-block p{font-size:12px;margin:5px 0;line-height:1.8}.native-tag{font-size:10px;color:#947338;float:right}.native-block .hint{font-size:10px;color:#9b8965}.skill-card{background:#fff;border:1px solid #b6cbb7;border-radius:10px;margin:0 0 18px;overflow:hidden}.skill-header{background:#e3eddf;padding:12px 14px;display:flex;align-items:center;gap:7px}.skill-header input{border:none;background:transparent;font-weight:700;font-size:14px;padding:2px}.skill-header button{font-size:11px;padding:2px 8px}.skill-options{padding:12px;display:grid;grid-template-columns:1.5fr 1fr 1fr 65px;gap:7px;border-bottom:1px solid #e8eee3}.skill-options select,.skill-options input{font-size:11px;padding:6px 3px}.drop-zone{min-height:56px;padding:9px 12px}.drop-zone.over{background:#e4efd9;outline:2px dashed #7fa46a;outline-offset:-4px}.drop-placeholder{margin:14px 4px;border:1px dashed #c6d5bb;border-radius:6px;text-align:center;padding:18px 7px;font-size:12px;color:#8c9b82}.effect-block{margin:7px 0;border:1px solid #b5ced0;border-left:4px solid #729b9d;border-radius:7px;background:#f4f9f8;padding:9px 10px;cursor:grab}.effect-block[data-category="体力"]{border-color:#d5b4a4;border-left-color:#bc8a72;background:#fcf6f2}.effect-block[data-category="战场"]{border-color:#b8c4a3;border-left-color:#8ca175;background:#f7f9f1}.effect-block[data-category="流程"]{border-color:#c1b5d2;border-left-color:#a18ab8;background:#f8f6fb}.effect-block[data-category="修正"]{border-color:#d0c294;border-left-color:#b5a575;background:#faf8f0}.effect-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px}.effect-title{font-weight:600;flex:1}.effect-line select{width:auto;max-width:170px;padding:3px 6px;font-size:11px}.effect-line input{width:54px;padding:3px 6px;font-size:12px}.block-controls{display:flex;gap:3px}.block-controls button{padding:0 5px;background:transparent;font-size:11px}.branch-label{font-size:10px;color:#897798;margin:9px 0 -3px}.effect-block .drop-zone{border-left:1px dashed #c7b7d3;padding:4px 7px;margin:5px 0 0 3px}.hint{font-size:11px;color:var(--muted);line-height:1.8}.palette-heading{color:#96a28e;font-size:10px;letter-spacing:2px;margin:20px 0 7px}.palette-block{width:100%;text-align:left;display:block;margin:7px 0;padding:9px 10px;border-radius:6px;background:#fff;font-size:12px;cursor:grab;border-left:3px solid #85a59d}.palette-block span{float:right;color:#a7b6a1}.scope-note{margin-top:24px;padding-top:15px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}summary{cursor:pointer}.text-preview{font-size:12px;margin:15px 0;color:var(--muted)}pre{white-space:pre-wrap;font:12px/1.9 inherit;color:var(--ink)}.release-panel{border-top:1px solid var(--line);padding-top:22px;margin-top:28px}.release-panel p{font-size:11px;color:var(--muted)}.release-panel>div:last-child{display:flex;gap:7px;flex-wrap:wrap}.release-panel button{font-size:12px}.test-report{margin:15px 0;background:white;border:1px solid var(--line);padding:16px;font-size:12px;border-radius:8px}.test-report details{margin:7px 0}.test-report .failed{color:var(--red)}.access-error{margin:80px auto;max-width:500px;padding:35px;background:#fff;border-radius:12px}.empty-state{text-align:center;padding:55px 20px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:14px;width:min(1120px,95vw);max-height:94vh;padding:24px;color:var(--ink);background:#f4f6ef}dialog::backdrop{background:#112d26b3}dialog header{display:flex;justify-content:space-between;align-items:center}h2{margin:2px 0;font-size:23px}.scenario-form{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:end;margin:16px 0}.opponent-field{grid-column:span 5}.scenario-form button{grid-column:span 2}#testStatus{font-size:12px;color:var(--green)}.test-board{display:grid;grid-template-columns:1fr 1fr;gap:14px}.player-board{padding:15px;border:1px solid var(--line);border-radius:9px;background:white}.player-board h3{margin:0 0 10px;font-size:14px}.player-board p{font-size:11px;color:var(--muted);margin:6px 0}.unit-chips{display:flex;gap:5px;flex-wrap:wrap}.unit-chip{padding:7px 9px;background:#e6ecdf;border:1px solid #bacbb1;border-radius:5px;font-size:11px}.unit-chip.tapped{background:#f3e9d5;border-color:#ceb88f;color:#967e52}.hand-chips{font-size:11px;line-height:1.9}.test-bottom{display:grid;grid-template-columns:1fr 1fr;gap:20px}.test-bottom h3{font-size:13px;margin:17px 0 10px}.test-actions,.test-logs{height:270px;overflow:auto;margin:0;background:white;border:1px solid var(--line);padding:12px;border-radius:8px}.test-actions button{display:block;width:100%;text-align:left;font-size:11px;margin-bottom:6px}.test-logs{padding-left:30px;font-size:11px;color:#69796b}.test-logs li{padding:3px 0;line-height:1.8}dialog footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:20px;font-size:11px;color:var(--muted)}[hidden]{display:none!important}@media(min-width:1600px){.workbench{grid-template-columns:270px minmax(560px,1fr) 290px}.design-panel{padding:32px 50px}}@media(max-width:1100px){.workbench{grid-template-columns:190px minmax(360px,1fr) 210px}.design-panel{padding:22px 18px}.skill-options{grid-template-columns:1fr 1fr}.workbench-header{padding:0 20px}}@media(max-width:800px){.workbench{display:flex;flex-wrap:wrap}.library-panel{width:100%;height:auto;position:static;border-right:0;padding:15px}.project-list{display:flex;max-height:160px;overflow:auto}.project-item{min-width:150px}.library-foot{display:none}.design-panel{width:100%;order:3;padding:20px 15px}.blocks-panel{position:static;width:100%;height:auto;border-left:0;border-bottom:1px solid var(--line);padding:15px}.blocks-panel .hint{margin:5px 0}.blocks-panel #blockLibrary{display:flex;overflow:auto;gap:7px}.palette-heading{display:none}.palette-block{min-width:160px;margin:0}.scope-note{margin-top:10px;padding-top:10px}.blocks-panel input{margin:8px 0}.workbench-header{height:auto;padding:15px;gap:12px;flex-wrap:wrap}.workbench-header nav{gap:5px;flex-wrap:wrap}.workbench-header button{font-size:12px;padding:6px 10px}.brand{font-size:18px}.metadata{gap:8px}.scenario-form{grid-template-columns:repeat(3,1fr)}.opponent-field{grid-column:span 2}.scenario-form button{grid-column:span 1}.test-board,.test-bottom{grid-template-columns:1fr}.test-actions,.test-logs{height:200px}dialog footer{align-items:stretch;flex-direction:column}.history-controls button{padding:7px}.project-heading{align-items:start}#status{padding:7px 15px}.mode-row label{min-width:0}.mode-row select{font-size:12px}.skill-options{grid-template-columns:1fr 1fr}}
/* Original-rule graph authoring */
.wire-panel{border:1px solid #9db9ab;background:#f1f8f3;border-radius:10px;padding:12px;margin:12px 0}.wire-edge{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:6px 0}.wire-edge button,.wire-edge select{font-size:11px;max-width:220px}.wire-edge span{color:#34785d}.wire-ports{margin:8px 0;border-top:1px solid #e6e9e2;padding-top:6px}.wire-ports summary{font-size:11px;color:#337458;cursor:pointer}.wire-port{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:11px;margin:7px 0}.wire-port select{min-width:120px;max-width:320px;font-size:11px;flex:1}.wire-port small{color:#8a8171}.wire-output{display:inline-block;background:#e7f1e7;color:#347354;border-radius:4px;margin:5px;padding:5px;font-size:11px}
.graph-summary,.graph-condition{background:#f8f4eb;border:1px solid #d8ccb5;border-radius:12px;padding:16px;margin-bottom:14px;min-width:0}
.graph-summary p{font-size:13px;line-height:1.7;color:#665d4e}.graph-summary select{display:block;width:100%;margin:8px 0}.graph-tools{display:flex;gap:12px;align-items:center;font-size:12px;color:#766d5d}.graph-tools button{white-space:nowrap}
.graph-condition code,.graph-source code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;color:#716856;margin:8px 0}
.graph-zone{min-height:44px;padding:8px;background:#eee9df80;border:1px dashed #d5c8ae;border-radius:8px}.graph-zone.over{border-color:#8e642d;background:#f8e4b9}
.graph-block{background:#fffdf8;border:1px solid #d7c6a8;border-left:4px solid #9e7d40;border-radius:8px;margin:7px 0;padding:10px;min-width:0}.graph-block .graph-zone{margin-left:8px}.graph-line{display:flex;gap:8px;justify-content:space-between;align-items:center}.graph-line strong{font-size:13px;overflow-wrap:anywhere}.graph-sockets{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.graph-socket{display:flex;align-items:center;gap:4px;font-size:11px;color:#766d5d}.graph-socket input,.graph-socket select{max-width:180px;min-width:60px;font-size:12px;padding:5px}.graph-socket input[type=number]{width:75px}.graph-source summary{font-size:11px;color:#8a8171;cursor:pointer}.graph-drop-hint{font-size:11px;color:#9c927e;padding:7px}.graph-readonly{opacity:.65}.graph-palette{text-align:left;gap:6px}.graph-palette small{display:block;font-size:10px;color:#8a8171;overflow-wrap:anywhere;font-weight:normal;margin-top:5px}
@media(max-width:700px){.graph-block{padding:7px}.graph-line{flex-wrap:wrap}.graph-tools{flex-wrap:wrap}.graph-block .graph-zone{margin-left:0}.graph-socket input,.graph-socket select{max-width:125px}}

.graph-palette{display:flex;align-items:flex-start;width:100%;min-width:0}.graph-palette span{float:none;min-width:0;overflow-wrap:anywhere}.graph-palette span:first-child{flex:1;color:var(--ink)}.wire-panel .graph-tools{flex-wrap:wrap}

.custom-card-panel{margin:16px 0;padding:16px;border:1px solid #c5d7c7;border-radius:10px;background:#f5faf3}.custom-card-panel textarea{display:block;width:100%;box-sizing:border-box;resize:vertical;border:1px solid var(--line);border-radius:6px;padding:9px;font:inherit;color:var(--ink);margin:6px 0 12px}.component-chip{display:inline-flex;align-items:center;gap:6px;background:#e7efdf;border:1px solid #bdcfb7;border-radius:6px;padding:6px;margin:4px;font-size:12px}.component-chip button{padding:2px 5px;font-size:11px}.component-library .graph-tools{flex-wrap:wrap}.component-library select{flex:1;min-width:140px}
.timing-explanation{padding:10px 12px;border-left:3px solid var(--green);background:#edf4eb;line-height:1.7}.graph-socket{flex-direction:column;align-items:flex-start;max-width:100%}.graph-socket>label{display:flex;align-items:center;gap:5px;max-width:100%}.socket-raw{max-width:220px;font-size:10px;overflow-wrap:anywhere}.socket-raw summary{color:var(--muted);cursor:pointer}.socket-raw input{margin-top:5px}.graph-summary>.graph-source{margin:8px 0}
@media(max-width:800px){.blocks-panel #blockLibrary:has(#graphPaletteScope){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:380px;align-content:start}.blocks-panel #blockLibrary>#graphPaletteScope,.blocks-panel #blockLibrary>.hint,.blocks-panel #blockLibrary>.graph-tools{grid-column:1/-1}.blocks-panel #blockLibrary>.graph-tools{flex-wrap:wrap}.blocks-panel #blockLibrary>.graph-palette{min-height:65px}}
.block-purpose{font-size:12px;line-height:1.75;color:#536b60;margin:8px 0;overflow-wrap:anywhere}.block-help{margin:8px 0;padding:8px 10px;background:#f0f5ed;border:1px solid #d8e3d2;border-radius:6px;font-size:12px;overflow-wrap:anywhere}.block-help>summary{color:#286653;font-weight:600}.block-help dl{margin:10px 0 3px}.block-help dt{font-weight:600;color:#335044;margin-top:10px}.block-help dd{margin:3px 0 8px;line-height:1.8;color:#526358;white-space:pre-wrap}.parameter-help{border-top:1px solid #d8e3d2;padding-top:8px}.graph-palette-item{min-width:0;margin:8px 0;border-bottom:1px solid var(--line);padding-bottom:7px}.graph-palette-item .block-purpose{font-size:11px;line-height:1.7}.graph-palette-item .block-help{padding:6px;font-size:11px}.graph-palette-item .graph-palette{margin:0}.graph-socket>label{flex-wrap:wrap}.composition-guide{padding:12px 16px;margin-bottom:14px;border:1px solid #b6cbb7;background:#f1f8f3;border-radius:9px;font-size:12px;line-height:1.9}.composition-guide ol{margin:8px 0;padding-left:22px}.composition-guide p{margin:5px 0}.wire-port select{max-width:100%}
@media(max-width:800px){.graph-palette-item{margin:0}.blocks-panel #blockLibrary:has(#graphPaletteScope):has(.block-help[open]){grid-template-columns:minmax(0,1fr)}.graph-palette-item .graph-palette{min-height:65px}.graph-socket{width:100%}}
.palette-block>.block-purpose{display:block;color:var(--muted);font-weight:normal;white-space:normal}
.skill-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.authored-skill .skill-header>span,.authored-skill .skill-header>button{flex-shrink:0;white-space:nowrap}
@media(max-width:800px){.skill-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
