:root{color-scheme:dark;--bg:#101619;--panel:#192226;--line:#334147;--ink:#eee9de;--muted:#a2b0b3;--gold:#e2b974;--blue:#7ec2d5;--red:#e5a08b}*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,sans-serif;background:var(--bg);color:var(--ink)}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button{background:#253238;color:var(--ink);border:1px solid var(--line);padding:7px 12px;border-radius:6px;cursor:pointer}button:hover,button.active{border-color:var(--gold);color:var(--gold)}button.primary{background:var(--gold);color:#161c1e}button:disabled{opacity:.45;cursor:default}input,select,textarea{width:100%;background:#10191d;color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:8px}textarea{min-height:100px;resize:vertical}label{display:block;color:var(--muted);font-size:13px;margin:10px 0}label input,label select,label textarea{display:block;margin-top:5px;color:var(--ink)}h1,h2,h3,p{margin:0 0 12px}h2{font-size:17px}h3{font-size:15px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--gold);display:block}header{height:76px;display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid var(--line)}header>div{margin-right:auto}#saveState{font-size:12px;color:var(--muted)}main{display:grid;grid-template-columns:240px minmax(400px,1fr) 320px;height:calc(100vh - 76px)}aside{padding:18px;overflow:auto;background:var(--panel)}#library{border-right:1px solid var(--line)}#details{border-left:1px solid var(--line)}#library>button{width:100%;margin-top:10px}#stories{margin:20px -6px}#stories button{display:block;width:100%;text-align:left;margin:6px 0;overflow-wrap:anywhere}#catalogInfo{font-size:12px;color:var(--muted);margin-top:15px}#workspace{min-width:0;display:flex;flex-direction:column;overflow:hidden}#metadata{display:flex;gap:12px;padding:0 18px;border-bottom:1px solid var(--line)}#metadata label:first-child{flex:2}#metadata label{flex:1}.bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px}.tabs{display:flex;gap:4px}#palette{display:flex;flex-wrap:wrap;gap:5px;padding:0 12px 12px}#palette button{font-size:13px}#writer{overflow:auto;padding:20px max(20px,8%);flex:1}.card{border:1px solid var(--line);border-left:4px solid var(--red);border-radius:8px;background:var(--panel);padding:16px;margin-bottom:16px}.card.player{border-left-color:var(--blue)}.card.technical{border-left-color:var(--gold)}.card.selected{outline:1px solid var(--gold)}.card .bar{padding:0}.card textarea{background:transparent;border-color:transparent;font-size:17px;line-height:1.65}.card textarea:focus{border-color:var(--line)}.branch{display:block;width:100%;text-align:left;margin:6px 0}.muted{color:var(--muted);font-size:13px}.danger{color:#ffad98}.issue{display:block;text-align:left;width:100%;font-size:13px;margin-bottom:8px;border-color:#814e42}.issue.warning{border-color:#837041}#graph{position:relative;flex:1;overflow:hidden;min-height:400px;background-image:radial-gradient(#344047 1px,transparent 1px);background-size:24px 24px;touch-action:none}#world{position:absolute;transform-origin:0 0}#edges{position:absolute;left:-10000px;top:-10000px;width:20000px;height:20000px;overflow:visible;pointer-events:none}#edges path{fill:none;stroke:var(--gold);stroke-width:2.5;pointer-events:stroke;cursor:pointer}#edges path:hover{stroke:white;stroke-width:5}.node{position:absolute;width:290px;background:var(--panel);border:1px solid #59656a;border-radius:9px;box-shadow:0 10px 30px #0006}.node.selected{border-color:var(--gold)}.node-head{padding:10px 14px;background:#253238;cursor:grab;border-radius:9px 9px 0 0;user-select:none}.node-body{padding:12px;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:110px;overflow:hidden}.inlet{position:absolute;left:-10px;top:15px;width:20px;height:20px;border-radius:50%;border:2px solid var(--blue);background:var(--bg);padding:0}.outlet{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:0;border-top:1px solid var(--line);border-radius:0;text-align:left;font-size:12px;background:transparent}.outlet span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.socket{min-width:12px;height:12px;border-radius:50%;background:var(--gold)}.outlet.empty .socket{background:#e98570}#graphHint{position:absolute;bottom:12px;left:12px;font-size:12px;background:#101619df;padding:7px;pointer-events:none}#inspector{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}#inspector .row{display:flex;gap:7px}.portrait{width:38px;height:38px;object-fit:cover;border-radius:50%;float:left;margin-right:10px}#login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at top,#304147,transparent 70%)}#login form{width:min(430px,90vw);padding:36px;background:var(--panel);border:1px solid var(--line);border-radius:12px}#login button{width:100%;margin:10px 0}#loginError{color:#ffad98}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#34454b;max-width:80vw;padding:12px 20px;border:1px solid var(--gold);border-radius:7px;display:none;z-index:10}@media(max-width:1000px){main{grid-template-columns:190px minmax(300px,1fr)}#details{position:fixed;right:0;top:76px;bottom:0;width:290px;display:none}body.inspect #details{display:block;z-index:4}header{height:auto;flex-wrap:wrap}#metadata{flex-wrap:wrap}#metadata label{min-width:100px}#palette button{padding:5px}}
.story-group{margin:7px 0}.story-group>summary{padding:6px 4px;cursor:pointer;color:var(--gold);overflow-wrap:anywhere}.story-group-children{margin-left:9px;padding-left:9px;border-left:1px solid var(--line)}#stories .story-group button{padding:6px 8px;font-size:13px}
.node-player{--node-accent:#79c5ff;--node-heading:#203f59;--node-surface:#172a39}
.node-npc{--node-accent:#f1a28d;--node-heading:#50332f;--node-surface:#302422}
.node-condition{--node-accent:#c6a0ff;--node-heading:#403055;--node-surface:#282232}
.node-check{--node-accent:#72dbb7;--node-heading:#21483e;--node-surface:#192e29}
.node-action{--node-accent:#f3d06f;--node-heading:#504322;--node-surface:#302b1c}
.node-jump{--node-accent:#8cdde4;--node-heading:#29464a;--node-surface:#1d2e31}
.node-end{--node-accent:#b7c1ca;--node-heading:#374049;--node-surface:#252b31}
.node{background:var(--node-surface);border-color:var(--node-accent);border-top-width:4px}
.node .node-head{display:flex;align-items:center;gap:10px;padding:10px 15px;background:var(--node-heading);color:var(--node-accent);font-weight:650;border-radius:5px 5px 0 0}
.node-head>span{min-width:0;overflow-wrap:anywhere}.node-icon{width:23px;height:23px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.node.selected{border-color:var(--node-accent);outline:2px solid white;outline-offset:4px}
.node .inlet{border-color:var(--node-accent)}.node .socket{background:var(--node-accent)}.node .outlet.empty .socket{background:transparent;border:2px solid var(--node-accent)}
.node .outlet:hover{background:var(--node-heading);color:var(--node-accent)}
#graphLegend{display:flex;flex-wrap:wrap;gap:8px 16px;padding:0 16px 12px;font-size:12px;color:var(--muted)}#graphLegend span{display:inline-flex;align-items:center;gap:6px}#graphLegend span:before{content:'';width:9px;height:9px;border-radius:2px;background:var(--node-accent)}
#palette button{display:inline-flex;align-items:center;gap:7px;background:var(--node-surface);color:var(--node-accent);border-color:var(--node-accent)}
#palette button:hover{background:var(--node-heading);color:var(--node-accent);border-color:var(--node-accent)}
#palette button:focus-visible{outline:2px solid white;outline-offset:3px;background:var(--node-heading)}
#palette .node-icon{width:18px;height:18px}
#writer{padding:16px 20px}
#writer .writer-card{display:grid;grid-template-columns:116px minmax(0,1fr);gap:0;margin:0 0 10px;padding:0;border:1px solid var(--line);border-left:0;background:transparent;overflow:hidden;cursor:text}
#writer .writer-card.selected{outline:1px solid var(--node-accent);background:var(--panel)}
.writer-heading{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px;padding:10px 12px;background:var(--node-heading);color:var(--node-accent);cursor:pointer}
.writer-heading h3{font-size:13px;line-height:1.3;margin:0;overflow-wrap:anywhere;max-width:100%}.writer-heading small{font-size:10px;letter-spacing:.06em;text-transform:uppercase}.writer-heading .portrait{float:none;width:30px;height:30px;margin:0 0 2px}.writer-heading .node-icon{width:19px;height:19px;margin-bottom:2px}
.writer-content{min-width:0;padding:10px 16px;align-self:center}.writer-prose{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:17px;line-height:1.65}.writer-logic{margin:0;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}
#writer .writer-card textarea{display:block;min-height:0;width:100%;padding:0;border:0;border-radius:0;resize:none;overflow:hidden;font-size:17px;line-height:1.65;background:transparent;color:var(--ink)}
#writer .writer-card textarea:focus{outline:none}
#writer .writer-card:focus-visible{outline:2px solid var(--node-accent);outline-offset:2px}
#writer .branch{margin:2px 0;padding:4px 8px;background:transparent;border-color:transparent;font-size:15px;white-space:normal;overflow-wrap:anywhere}#writer .branch.active{color:var(--node-accent);border-left-color:var(--node-accent)}#writer .branch:hover{background:var(--node-heading);color:var(--node-accent)}
.writer-controls{margin-top:10px}.writer-controls button{font-size:12px;padding:4px 9px;color:var(--node-accent);background:var(--node-surface);border-color:var(--node-accent)}
@media(max-width:1000px){#writer{padding:12px}#writer .writer-card{grid-template-columns:88px minmax(0,1fr)}.writer-heading{padding:8px}.writer-content{padding:8px 12px}}
#planningDialog{width:min(1050px,94vw);max-height:90vh;background:var(--panel);color:var(--ink);border:1px solid var(--gold);border-radius:10px;padding:20px;overflow:auto}#planningDialog::backdrop{background:#000a}.planning-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:24px}.planning-entry{padding:14px;margin:10px 0;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:6px}.planning-entry.linked{border-left-color:#72dbb7}.planning-entry.mismatch{border-left-color:#e98570}.planning-entry p{margin:6px 0}.planning-entry small{display:block;color:var(--muted);overflow-wrap:anywhere}.planning-entry .row{margin-top:10px;display:flex;gap:8px}.planning-notes{white-space:pre-wrap;overflow-wrap:anywhere}.planning-status{font-size:12px;color:var(--gold)}.planning-entry.linked .planning-status{color:#72dbb7}#planningError{color:#ffad98}.planning-entry code{overflow-wrap:anywhere}@media(max-width:800px){.planning-layout{grid-template-columns:1fr}}
.pending-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:26px;height:26px;border-radius:50%;background:#d92338;color:white;border:2px solid #ffb8be;font-size:21px;font-weight:900;line-height:1}
.node-head .pending-badge{margin-left:auto}
.pending-editor{margin:-5px 0 14px}
.pending-editor [data-pending-form]{margin-top:8px;padding:10px;border:1px solid #d92338;border-radius:6px}
#planningList li{padding:12px 6px;border-bottom:1px solid #48515b}
#planningList small{display:block;margin-top:5px;color:#b7c1ca}
