*{box-sizing:border-box}body{margin:0;color:#30382e;font-family:Arial,Helvetica,sans-serif;overflow:hidden;background:#d6d9cc}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:transparent;border-radius:8px;padding:9px 12px}button:hover{background:#34492b12}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #65814b;outline-offset:3px}.landscape{position:fixed;inset:-60px;background:radial-gradient(ellipse at 75% 88%,#455539 0,transparent 39%),radial-gradient(ellipse at 0% 86%,#76805d 0,transparent 35%),radial-gradient(ellipse at 51% 70%,#a5ab88 0,transparent 38%),linear-gradient(#e3e5de,#cdd4c2 48%,#889a73);filter:blur(35px);opacity:.65}.glass{background:#f7f8efb3;backdrop-filter:blur(24px);border:1px solid #ffffffba;box-shadow:0 8px 30px #2e3e3210,inset 0 1px #fff8;border-radius:14px}header{position:fixed;z-index:10;top:22px;left:26px;right:26px;height:72px;display:flex;align-items:center;padding:0 22px;gap:23px}.brand{font-size:30px;font-weight:600;letter-spacing:-2px;text-decoration:none;color:inherit}.brand span{font-size:26px;margin-left:7px}.divider{height:28px;width:1px;background:#adb5a7}#boardName{background:transparent;border:0;display:block;font-size:14px;width:220px;outline:none}small#saveStatus{font:8px monospace;letter-spacing:1.3px;display:block;margin-top:6px;color:#73806c}.header-actions{margin-left:auto;display:flex;gap:10px;font-size:12px}#export{background:#3d4c36;color:#f8f9ee;border-radius:7px}#canvas{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:default;background-image:radial-gradient(#62705e32 1px,transparent 1px);background-size:28px 28px}#world{position:absolute;transform-origin:0 0}#connections{position:absolute;left:0;top:0;width:5000px;height:5000px;overflow:visible;pointer-events:none}.node{position:absolute;width:250px;min-height:150px;padding:22px;border-radius:13px;background:#f6f6eee0;border:1px solid #fff;box-shadow:0 8px 24px #30402d0d;user-select:none;cursor:grab;backdrop-filter:blur(15px)}.node.selected{outline:1.5px solid #647957;outline-offset:5px}.node .label{font:9px monospace;letter-spacing:1.6px;color:#798171;margin-bottom:20px}.node h2{font-size:25px;font-weight:400;letter-spacing:-.8px;margin:0 0 13px;line-height:1.15}.node p{font-size:12px;line-height:1.7;margin:0;color:#68715f}.node [contenteditable=true]{cursor:text;user-select:text;outline:none}.node.frame{background:#f6f6ee22;border:1px dashed #6c7a6290;box-shadow:none;min-height:220px;z-index:-1}.node.spark{background:none;border:0;box-shadow:none;padding:0;min-height:0;width:90px;backdrop-filter:none;font-size:75px;color:#65734f;text-align:center}.node.image{padding:9px;background:#f5f6ed88}.node img{width:100%;display:block;pointer-events:none;border-radius:7px}.node.serif{font-family:Georgia,serif}.node.mono{font-family:monospace}.tools{position:fixed;z-index:10;left:26px;top:50%;transform:translateY(-40%);padding:8px;display:grid;gap:4px}.tools button{font-size:23px;width:45px;height:48px;padding:2px;position:relative}.tools small{font:7px monospace;display:block;color:#86907d}.tools button.active{background:#d9e2cf;color:#3c522e}.tools hr{border:0;border-top:1px solid #b9c2af77;width:30px;margin:5px auto}.focus{position:fixed;z-index:10;right:26px;top:116px;width:266px;padding:20px}.eyebrow{font:9px monospace;letter-spacing:1.4px;color:#7a846e}.eyebrow span{float:right}.timer-row{display:flex;align-items:center;gap:8px;margin-top:18px}#time{font-size:40px;font-weight:300;letter-spacing:-2px;margin-right:auto;font-variant-numeric:tabular-nums}#timer{background:#dbe3d0;border-radius:50%;width:36px;height:36px}.focus-bottom{border-top:1px solid #b9c2af66;display:flex;justify-content:space-between;margin-top:18px;padding-top:10px}.focus-bottom button{font-size:10px;padding:5px 0}.inspector{position:fixed;right:26px;top:318px;width:266px;padding:20px;z-index:10}.inspector label{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-top:20px}.inspector select{max-width:140px;border:1px solid #bac3b0;background:#fff6;padding:6px;border-radius:5px;font-size:11px}.inspector input{border:0;width:40px;height:26px;background:none}.inspector p{font-size:11px;color:#77836e;line-height:1.6}footer{position:fixed;bottom:22px;left:26px;right:26px;display:flex;justify-content:space-between;pointer-events:none;z-index:10}footer>div{pointer-events:auto}.board-info{padding:15px 18px;display:flex;align-items:center;gap:10px;font:9px monospace;letter-spacing:1px}.live-dot{width:5px;height:5px;background:#79915c;border-radius:50%}.zoom{display:flex;align-items:center;padding:4px;font-size:11px}.zoom button{font-size:16px}#fit{font-size:11px;border-left:1px solid #b9c2af66;border-radius:0}.zoom span{width:44px;text-align:center}#toast{position:fixed;bottom:85px;left:50%;transform:translateX(-50%);background:#35442e;color:white;border-radius:8px;font-size:12px;padding:12px 18px;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}dialog{border:1px solid white;border-radius:20px;background:#f2f4eaf5;color:#37432e;padding:40px;width:520px;max-width:90vw;box-shadow:0 20px 100px #19261044}dialog::backdrop{background:#36442e44;backdrop-filter:blur(8px)}dialog h1{font:42px Georgia;line-height:1.05;letter-spacing:-1px}dialog p{font-size:12px;line-height:1.7;color:#738069}dialog dl{display:grid;grid-template-columns:130px 1fr;gap:15px;font-size:11px;margin:25px 0}dialog dd{margin:0}dialog dt{font-family:monospace}dialog>.close:not(.primary){position:absolute;right:16px;top:12px;font-size:24px}.primary{background:#3d4c36;color:white;margin-top:20px}.coming{font:9px/1.7 monospace;border-top:1px solid #c7cebf;padding-top:15px;color:#738069}#rain{position:fixed;inset:0;pointer-events:none;overflow:hidden}#rain i{position:absolute;top:-60px;width:1px;height:55px;background:linear-gradient(transparent,#ffffff70);animation:fall linear infinite}@keyframes fall{to{transform:translate(-40px,110vh)}}@media(prefers-reduced-motion:reduce){#rain{display:none}}@media(max-width:800px){header{left:12px;right:12px;top:12px;padding:0 14px;gap:12px}.header-actions{gap:0}.header-actions button{font-size:10px;padding:8px}#boardName{width:130px}.brand{font-size:23px}.divider,#help span,#import{display:none}.focus{top:100px;right:12px;width:200px;padding:13px}.focus .eyebrow{font-size:7px}#time{font-size:30px}.tools{left:12px}.inspector{top:280px;right:12px;width:200px}.board-info{display:none}footer{justify-content:flex-end;right:12px}.node{backdrop-filter:none}}
.extras{position:fixed;left:110px;top:112px;z-index:11;padding:5px;font-size:11px}.extras button:disabled{opacity:.3;cursor:default}.resize-handle{display:none;position:absolute;bottom:-5px;right:-5px;width:12px;height:12px;padding:0;border:1px solid #647957;background:#f4f7ef;border-radius:3px;cursor:nwse-resize}.node.selected .resize-handle{display:block}.alignment{position:fixed;pointer-events:none;background:#aa7460;z-index:8}.alignment.vertical{width:1px;top:95px;bottom:60px}.alignment.horizontal{height:1px;left:100px;right:20px}.inspector{max-height:calc(100vh - 390px);overflow:auto}.inspector input[type=number]{width:65px;border:1px solid #b7c1ab;background:#fff8;border-radius:4px;padding:4px}.inspector small{display:block;font-size:10px;color:#718266}.inspector button{font-size:11px;padding:9px 0}#edgeControls{border-top:1px solid #b7c1ab;margin-top:10px}#settingsDialog{max-height:90vh;overflow:auto}#settingsDialog h2{font:28px Georgia}#settingsDialog h3{font-size:14px}#settingsDialog label{display:flex;justify-content:space-between;gap:10px;margin:18px 0;font-size:12px}#settingsDialog select{max-width:200px}#settingsDialog input[type=file]{width:210px;font-size:11px}.button-row{display:flex;gap:7px;flex-wrap:wrap}.button-row button{background:#dce5d2;font-size:11px}#assistantPanel{position:fixed;right:26px;top:116px;bottom:90px;width:340px;padding:22px;z-index:16;overflow:auto}#assistantPanel .eyebrow{display:flex;align-items:center;justify-content:space-between}#assistantPanel p,#assistantPanel label{font-size:12px;line-height:1.6}#assistantPanel textarea{width:100%;height:100px;padding:12px;background:#fff8;border:1px solid #b3c0a6;border-radius:8px;resize:vertical;margin:15px 0;font:13px/1.5 Arial}#aiAnswer{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;margin:18px 0}#dictationNote{font-size:10px!important;color:#748269}.node.frame{z-index:0}.node:not(.frame){z-index:1}#connections{z-index:2}#nodes{position:relative}#import{display:block}@media(max-width:800px){.extras{left:90px;top:95px;max-width:calc(100vw - 105px)}.extras button{font-size:9px;padding:6px}.focus{top:auto;bottom:80px;width:190px}.inspector{top:160px;max-height:40vh}.header-actions button{padding:4px}#help{display:none}#assistantPanel{left:90px;right:12px;width:auto;top:145px;bottom:80px}.tools{transform:translateY(-50%)}#boardName{width:100px}.brand{font-size:20px}}
[hidden]{display:none!important}
.node.frame.selected{z-index:3;background:#f6f6ee18}.node.frame .label{position:absolute;top:-20px;left:0;white-space:nowrap}.node.frame h2{font-size:14px!important;position:absolute;top:-42px;left:0;white-space:nowrap}.node.frame p{display:none}.inspector[data-edge="true"]>label,.inspector[data-edge="true"]>p{display:none}
.node.frame,.node.frame.selected{z-index:0!important;background:#f6f6ee18}.node:not(.frame){z-index:2}.frame-resize-overlay{position:absolute;width:13px;height:13px;background:#f5f8ef;border:1px solid #647957;border-radius:3px;padding:0;cursor:nwse-resize;z-index:8;pointer-events:auto}.node .label{cursor:text}.node.drawing{overflow:hidden}.node.frame.drawing{overflow:visible}.node.drawing::after{content:'Release to place';position:absolute;right:10px;bottom:8px;font:9px monospace;color:#647957}.inspector #eyebrowText{width:145px;background:#fff8;border:1px solid #b7c1ab;padding:6px;height:auto;border-radius:5px;font-size:11px}#routeStatus{position:fixed;bottom:82px;left:110px;padding:12px;font-size:11px;z-index:12;max-width:420px}
.node.frame .resize-handle{display:none!important}
#apiSetup input{width:220px;max-width:60%;background:#fff8;border:1px solid #bac3b0;border-radius:5px;padding:8px;font-size:12px}#saveApi{background:#dce5d2}#saveApi:disabled{opacity:.5}
/* v3 chrome: separate islands leave the center of the canvas open. */
header{height:auto;align-items:flex-start;padding:0;gap:16px;pointer-events:none;justify-content:space-between}
.brand-group{display:flex;align-items:center;gap:20px;padding:16px 22px;min-height:72px;pointer-events:auto;max-width:calc(100vw - 355px)}
.header-actions{pointer-events:auto;margin-left:auto;align-items:center;padding:15px 12px;min-height:72px;gap:8px}
.extras{left:26px;top:110px;display:flex;gap:4px;padding:6px}
.extras button{display:grid;place-items:center;width:38px;height:38px;padding:8px;border-radius:8px}
.extras button svg{display:block}.extras button:disabled{opacity:.3}.extras button:focus-visible{outline-offset:0}
.tools #delete{display:grid;place-items:center;font-size:inherit}.tools #delete svg{width:22px;height:22px}
.focus{top:auto;bottom:22px;right:26px;width:266px}
footer{justify-content:flex-start;right:auto;max-width:calc(100vw - 340px)}
.zoom{min-height:46px}.zoom button{min-width:38px;min-height:36px}
.inspector{top:178px;max-height:calc(100vh - 415px)}
#assistantPanel{top:112px;bottom:235px}
#routeStatus{left:26px;bottom:86px;max-width:calc(100vw - 345px)}
@media(max-width:800px){
 header{left:12px;right:12px;top:12px;gap:10px;padding:0}
 .brand-group{padding:13px 14px;gap:12px;min-height:62px;max-width:calc(100vw - 192px)}
 .header-actions{padding:12px 9px;min-height:62px;gap:4px}.header-actions button{font-size:10px;padding:7px 6px}
 .brand-group #boardName{width:125px}.brand-group .brand{font-size:23px}
 .extras{left:12px;top:86px;max-width:none}.extras button{width:34px;height:34px;padding:7px}
 .focus{right:12px;bottom:16px;width:200px}.focus .eyebrow{font-size:7px}
 footer{left:12px;bottom:16px;right:auto;max-width:calc(100vw - 230px);justify-content:flex-start}
 .zoom{padding:2px}.zoom button{min-width:29px;padding:5px}.zoom span{width:36px}
 .inspector{top:145px;right:12px;width:200px;max-height:calc(100vh - 350px)}
 #assistantPanel{top:145px;bottom:200px;right:12px;left:86px}
 #routeStatus{left:12px;bottom:185px;max-width:calc(100vw - 24px)}
}
@media(max-width:500px){
 .brand-group{max-width:calc(100vw - 153px);gap:8px;padding:11px 10px}.brand-group .brand{font-size:20px}
 .brand-group #boardName{width:90px;font-size:11px}.brand-group #saveStatus{font-size:6px;letter-spacing:.5px}.brand-group .brand span{font-size:18px;margin-left:3px}
 .header-actions{padding:12px 5px;gap:0}.header-actions button{font-size:9px;padding:7px 4px}
 .focus{width:180px;padding:12px}.focus .timer-row{margin-top:10px}.focus .focus-bottom{margin-top:10px}.focus #time{font-size:30px}
 footer{max-width:calc(100vw - 210px)}.zoom button{min-width:25px;padding:3px}.zoom span{width:32px;font-size:10px}#fit{padding:3px}
 .tools{padding:5px;top:48%}.tools button{height:38px;width:38px;font-size:21px}.tools hr{margin:2px auto}
}
.focus.compact-focus{width:auto;min-width:174px;padding:7px 10px;bottom:22px;right:26px;border-radius:14px}
.compact-focus .timer-row{margin:0;gap:8px}.compact-focus #time{font-size:24px;letter-spacing:-.8px;margin:0 8px 0 0;line-height:36px}
.compact-focus #timer{width:32px;height:32px;padding:6px;font-size:12px}.compact-focus #resetTimer{width:30px;height:32px;padding:5px;font-size:17px}
#settingsDialog .focus-bottom{border:0;margin:0 0 15px;padding:0;gap:12px;justify-content:flex-start}#settingsDialog .focus-bottom button{padding:9px 12px;background:#dce5d2;font-size:11px}
.inspector{max-height:calc(100vh - 270px)}#assistantPanel{bottom:100px}#routeStatus{max-width:calc(100vw - 245px)}
@media(max-width:800px){.focus.compact-focus{right:12px;bottom:16px;min-width:164px;padding:5px 8px}footer{max-width:calc(100vw - 200px)}.inspector{max-height:calc(100vh - 245px)}#assistantPanel{bottom:90px}}
@media(max-width:500px){.focus.compact-focus{min-width:145px;padding:5px 6px}.compact-focus .timer-row{gap:3px}.compact-focus #time{font-size:22px;margin-right:5px}.compact-focus #timer{width:29px;height:29px}.compact-focus #resetTimer{width:27px}footer{max-width:calc(100vw - 175px)}}
/* v4 refinements */
.brand-group{min-height:60px;padding:12px 18px}.brand-group #boardName{width:190px}
.tools button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:48px}.tools button svg{width:21px;height:21px}.tools small{font:9px/1 monospace;color:#5e6d54;letter-spacing:.2px}
.zoom{min-height:34px;padding:2px;border-radius:10px}.zoom button{min-width:28px;min-height:28px;padding:4px 6px;font-size:14px}.zoom span{width:35px;font-size:10px}#fit{font-size:10px}
.quick-sound{position:fixed;right:26px;top:108px;z-index:11;display:flex;padding:4px;gap:3px}.quick-sound button{display:grid;place-items:center;width:34px;height:34px;padding:6px}.quick-sound button[aria-pressed=true]{background:#d9e2cf}
.inspector{top:165px;max-height:calc(100vh - 260px)}#frameActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}#frameActions[hidden]{display:none}#frameActions button{padding:8px;background:#dce5d2;border-radius:6px}#groupStatus{flex-basis:100%;line-height:1.5}#autoTextColor{width:18px;height:18px}
@media(max-width:800px){.brand-group #boardName{width:125px}.quick-sound{right:12px;top:88px}.inspector{top:140px;max-height:calc(100vh - 230px)}}
/* v5: stable editing and softer containers */
.node.frame .label{display:none}.node.frame,.node.frame.selected{background:linear-gradient(135deg,#ffffff30,#ffffff0c);backdrop-filter:blur(20px) saturate(115%);border:1px solid #ffffff80;box-shadow:inset 0 1px 0 #ffffff70,0 8px 30px #26361e08}
.node.frame h2{font-family:inherit}.frame-resize-overlay{z-index:2000}
#noteEditor[hidden]{display:none}#noteEditor label{display:block;margin:12px 0}#noteEditor textarea{display:block;box-sizing:border-box;width:100%;margin-top:7px;padding:9px;border:1px solid #bac3b0;border-radius:6px;background:#ffffff70;color:#30382e;font:12px/1.5 Arial;resize:vertical}#noteEditor textarea:focus{outline:2px solid #65814b}
.node [contenteditable=true]{user-select:text;cursor:text;outline:1px dashed #8e9d7b;outline-offset:4px;min-height:1em}.node p{min-height:1em}
#boardName{font-weight:600!important;letter-spacing:.1px}.header-actions{padding:7px!important;min-height:44px!important;gap:3px!important}.header-actions button{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px!important;font-size:11px!important}.header-actions svg{width:16px;height:16px}.extras{display:flex}.quick-sound #assistantButton{width:34px}.timer-caption{font:9px/1.2 Arial;letter-spacing:.4px;color:#67745e;display:block;margin-bottom:3px}.compact-focus{padding:6px 9px;min-width:160px}.compact-focus #time{cursor:pointer;font-size:23px}.compact-focus .timer-row{gap:5px}#timerDialog input{width:75px;padding:8px;margin:12px}#timerDialog .button-row{margin-top:15px}
.inspector[data-edge="true"] #noteEditor{display:none}
/* Connections above every container (0–299) and below every card (1000+). */
#connections{z-index:500}#boardName{font-weight:400!important}
.header-actions{background:#f7f8ef70;backdrop-filter:blur(24px);border-radius:16px}.header-actions #import{display:flex!important;align-items:center;justify-content:center;gap:6px;line-height:1}.header-actions svg{flex-shrink:0;display:block}.header-actions span{line-height:1}
.inspector{scrollbar-width:thin;scrollbar-color:#8c9b7e66 transparent;scrollbar-gutter:stable;padding-top:32px;border-radius:18px;background:#f7f8efa3}.inspector::-webkit-scrollbar{width:6px}.inspector::-webkit-scrollbar-track{background:transparent;margin:16px 0}.inspector::-webkit-scrollbar-thumb{background:#8c9b7e66;border-radius:12px}.inspector::-webkit-scrollbar-button{display:none}
#closeInspector{position:absolute;right:10px;top:6px;width:28px;height:28px;padding:0;font:22px Arial;color:#65735c}.color-button{width:38px;height:26px;padding:0;border-radius:7px;border:1px solid #ffffffa0;background:var(--swatch);box-shadow:0 0 0 1px #74836755}.color-button:hover{background:var(--swatch);outline:2px solid #839771}
#colorDialog{width:340px;max-width:calc(100vw - 30px);padding:24px;border-radius:22px;background:#eef2e3ce;backdrop-filter:blur(26px);box-shadow:0 20px 80px #27392233,inset 0 1px #fff9}#colorDialog h2{font:20px Arial;margin:0 0 18px}#closeColor{position:absolute;right:12px;top:9px;font-size:25px;padding:4px 10px}#colorPreview{height:64px;border-radius:12px;border:1px solid #ffffffa0;margin-bottom:18px}#colorDialog label{font:12px Arial;display:flex;gap:10px;align-items:center;justify-content:space-between;margin:13px 0}#hexColor{width:110px;padding:8px;border-radius:8px;border:1px solid #b5c2aa;background:#ffffff70;font:12px monospace}#colorSliders input{width:170px;accent-color:#71875c}#colorSliders output{width:25px;text-align:right;font:11px monospace}#colorError{font-size:11px;margin:0;color:#8a4038}#colorSwatches{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}.color-preset{width:28px;height:28px;border-radius:50%;padding:0;border:1px solid #82917455}
/* Frosted glass: diffuse background with a soft, luminous surface. */
.glass{background-color:rgba(246,248,240,.48);background-image:linear-gradient(145deg,rgba(255,255,255,.27),rgba(255,255,255,.04));backdrop-filter:blur(30px) saturate(135%);-webkit-backdrop-filter:blur(30px) saturate(135%);border:1px solid rgba(255,255,255,.58);box-shadow:inset 0 1px 0 rgba(255,255,255,.65),inset 0 -1px 0 rgba(255,255,255,.14),0 8px 28px rgba(39,53,31,.10)}
.node.frame,.node.frame.selected{background-image:linear-gradient(145deg,rgba(255,255,255,.25),rgba(255,255,255,.035));background-color:rgba(245,248,239,.15);backdrop-filter:blur(25px) saturate(130%);-webkit-backdrop-filter:blur(25px) saturate(130%);border:1px solid rgba(255,255,255,.52);border-radius:18px;box-shadow:inset 0 1px 0 #ffffff85,inset 0 -1px 0 #ffffff20,0 8px 30px #27351f0d}
#colorDialog{background-color:rgba(241,246,232,.72);backdrop-filter:blur(32px) saturate(135%);-webkit-backdrop-filter:blur(32px) saturate(135%)}
@supports not (backdrop-filter:blur(1px)){.glass{background-color:rgba(242,246,234,.92)}.node.frame{background-color:rgba(237,242,226,.55)}}
/* Neutral frosted workspace, adjustable local appearance. */
:root{--workspace-tint:#c4c4c4;--tint-strength:0;--glass-opacity:.48}body{background:#d2d2d4;color:#303034}.landscape{background:radial-gradient(ellipse at 75% 88%,#89898e 0,transparent 40%),radial-gradient(ellipse at 0 80%,#b0b0b5 0,transparent 40%),linear-gradient(#ececee,#cfcfd3 60%,#b4b4ba);opacity:.8}.landscape:after{content:'';position:absolute;inset:0;background:var(--workspace-tint);opacity:var(--tint-strength)}
.glass{background-color:rgb(250 250 252 / var(--glass-opacity));color:#303034;background-image:linear-gradient(145deg,#ffffff40,#ffffff08);border-color:#ffffff90;box-shadow:inset 0 1px #ffffffb0,0 8px 28px #20202816}#canvas{background-image:radial-gradient(#62626e30 1px,transparent 1px)}.tools button.active,#timer{background:#ddddE5;color:#303034}.tools small,.timer-caption,small#saveStatus{color:#65656e}#export{background:#484851}button:hover{background-color:#45455014}button:focus-visible,input:focus-visible,select:focus-visible{outline-color:#777785}
body[data-tool=hand] #canvas,body[data-tool=hand] .node,body[data-tool=hand] .node *{cursor:grab!important}body.panning #canvas,body.panning .node,body.panning .node *{cursor:grabbing!important}
.floating-panel[open]{position:fixed;inset:auto;z-index:50;margin:0;max-height:calc(100vh - 16px);overflow:auto;border-radius:20px;backdrop-filter:blur(30px) saturate(115%);-webkit-backdrop-filter:blur(30px) saturate(115%)}#colorDialog{width:310px;background-color:rgb(250 250 252 / var(--glass-opacity));padding:20px}#colorHeading{padding-right:25px;cursor:move;user-select:none;font-size:16px;min-height:24px}#svPicker{position:relative;height:160px;border-radius:12px;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent);touch-action:none;cursor:crosshair;overflow:hidden}#svMarker{position:absolute;width:12px;height:12px;border:2px solid white;border-radius:50%;box-shadow:0 0 0 1px #0008;transform:translate(-50%,-50%);pointer-events:none}#huePicker{width:190px;height:12px;appearance:none;border-radius:8px;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}#huePicker::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border:2px solid white;border-radius:50%;background:transparent;box-shadow:0 0 2px #000}.hue-label{margin-top:18px!important}#settingsDialog{width:420px;padding:18px;color:#303034;background-color:rgb(250 250 252 / var(--glass-opacity))}.panel-heading{display:flex;align-items:center;justify-content:space-between;cursor:move;user-select:none}.panel-heading h2{font:18px Arial!important;margin:3px 0 16px}.panel-heading button{font-size:24px;padding:0 6px;margin-top:-10px}.settings-tabs{display:flex;gap:4px;border-bottom:1px solid #8883;padding-bottom:9px}.settings-tabs button{flex:1;font-size:11px;padding:8px 5px}.settings-tabs button[aria-selected=true]{background:#d6d6df;color:#292932}.settings-tabs+div{padding-top:8px}#settingsDialog section[hidden]{display:none}#settingsDialog label{align-items:center;gap:10px}#settingsDialog input[type=range]{width:145px;accent-color:#777785}#settingsDialog output{font:11px monospace;width:32px}#settingsDialog p{color:#5f5f6b;font-size:12px}#settingsDialog .tint-presets{display:flex;flex-wrap:wrap;gap:4px}#settingsDialog .tint-presets button,#resetAppearance{font-size:11px;background:#ffffff55}.floating-panel input,.floating-panel select{color:#303034}.floating-panel .button-row button{background:#dddde7}.floating-panel .focus-bottom{margin-top:0}.floating-panel .focus-bottom button{font-size:12px}.floating-panel #apiSetup input{max-width:210px}.floating-panel #musicFile{max-width:210px}
.glass{background-color:color-mix(in srgb,var(--workspace-tint) var(--tint-percent,0%),rgb(250 250 252 / var(--glass-opacity)))}
/* Keep panel text dark and readable even with saturated workspace tints. */
.glass,#settingsDialog,#colorDialog{background-color:color-mix(in srgb,var(--workspace-tint) calc(var(--tint-percent,0%) * .35),rgb(250 250 252 / var(--glass-opacity)))}
/* Clear glass rather than cloudy/icy surfaces. */
.glass,#settingsDialog,#colorDialog{backdrop-filter:blur(22px) saturate(110%);-webkit-backdrop-filter:blur(22px) saturate(110%);border-color:var(--glass-edge,#fafafa);background-image:linear-gradient(135deg,#ffffff24,#ffffff02);box-shadow:inset 0 1px 0 #ffffff65,0 8px 24px #2525300c}
.node.frame,.node.frame.selected{border-color:var(--glass-edge,#fafafa);background-image:linear-gradient(140deg,#ffffff16,#ffffff02);backdrop-filter:blur(16px) saturate(105%);-webkit-backdrop-filter:blur(16px) saturate(105%);box-shadow:inset 0 1px 0 #ffffff55,0 6px 22px #25253008}.node.selected{outline-color:var(--selection-edge,#aaaab4)}.frame-resize-overlay,.resize-handle{border-color:var(--selection-edge,#aaaab4);background:#f9f9fc}
#glassDepth{position:fixed;inset:-10%;pointer-events:none;overflow:hidden;opacity:var(--depth-intensity,.2);filter:blur(42px)}#glassDepth i{position:absolute;width:38vw;height:48vh;border-radius:45% 55% 65% 35%;background:linear-gradient(140deg,#ffffffbb,var(--depth-color,#c3c3ca));animation:glassDrift 38s ease-in-out infinite alternate}#glassDepth i:nth-child(1){left:8%;top:22%}#glassDepth i:nth-child(2){right:7%;top:8%;width:28vw;height:55vh;animation-duration:47s;animation-delay:-16s;opacity:.7}#glassDepth i:nth-child(3){left:38%;bottom:-12%;width:48vw;animation-duration:54s;animation-delay:-24s;opacity:.65}@keyframes glassDrift{from{transform:translate(-3vw,-2vh) rotate(-8deg)}to{transform:translate(4vw,4vh) rotate(10deg)}}body[data-depth-motion=false] #glassDepth i{animation:none}@media(prefers-reduced-motion:reduce){#glassDepth i{animation:none!important}}
/* Neutral/tint-linked interaction states throughout the workspace. */
.quick-sound button[aria-pressed=true],.tools button.active,#timer,#frameActions button,.button-row button,.settings-tabs button[aria-selected=true],#settingsDialog .tint-presets button,#resetAppearance{background:var(--active-fill,#dddde4)!important;color:#303034}.tools small,.inspector small,.inspector p,.eyebrow,.timer-caption,#saveStatus{color:#686873}.inspector select,.inspector input,.inspector textarea{border-color:#aaaab64d!important}input[type=range],input[type=checkbox]{accent-color:var(--selection-edge,#9393a1)}#settingsDialog input[type=range]{accent-color:var(--selection-edge,#9393a1)}#frameActions button:hover,.quick-sound button:hover{filter:brightness(.97)}.color-button:hover{outline-color:var(--selection-edge,#9393a1)}
/* Editorial controls; note typography stays independent. */
#inspector,#settingsDialog,#colorDialog,#timerDialog,#inspector input,#inspector textarea,#inspector select,#inspector button,#settingsDialog input,#settingsDialog select,#settingsDialog button,#settingsDialog label,#settingsDialog h2,#settingsDialog h3,#settingsDialog p,#colorDialog label,#colorDialog h2,#colorDialog input,#colorDialog button,#timerDialog input,#timerDialog button{font-family:Georgia,'Times New Roman',serif!important}#inspector label,#settingsDialog label,#colorDialog label{font-size:13px}#inspector textarea{font-size:14px}#inspector .eyebrow{letter-spacing:.8px}.wide-color-control{display:flex!important;flex-direction:column;align-items:stretch!important;gap:8px!important}.wide-color-control .color-button{width:100%;height:36px;min-height:36px;border-radius:9px;padding:7px 12px;text-align:right;font-size:12px;border:1px solid #ffffff88}.wide-color-control input[hidden]{display:none!important}#colorDialog{width:340px}#svPicker{width:100%;height:180px}#huePicker{flex:1;min-width:0}.hue-label{gap:14px!important}#page-appearance h3{font-size:15px;margin-top:20px}#page-appearance hr{border:0;border-top:1px solid #8883;margin-top:20px}
#arrowhead path{stroke:#696974}.node.frame.selected{outline-color:var(--selection-edge,#aaaab4)}#colorDialog input,#settingsDialog select{border:1px solid #b5b5c088;border-radius:7px;background:#ffffff55;padding:5px 7px}
/* Adaptive highlights and readable foregrounds on every UI surface. */
.glass,#settingsDialog,#colorDialog{background-color:rgb(var(--panel-rgb,250 250 252) / var(--glass-opacity));color:var(--ui-text);border-color:var(--panel-edge);background-image:linear-gradient(135deg,var(--panel-highlight),transparent);box-shadow:inset 0 1px 0 var(--panel-highlight),0 8px 24px #17172314}
#settingsDialog p,#settingsDialog small,#settingsDialog label,#settingsDialog output,#settingsDialog h2,#settingsDialog h3,#colorDialog label,#colorDialog h2,#inspector p,#inspector small,#inspector label,.eyebrow,.timer-caption,small#saveStatus,.tools small,#closeInspector{color:var(--ui-secondary)!important}
#settingsDialog input,#settingsDialog select,#settingsDialog button,#colorDialog input,#colorDialog button,#inspector input,#inspector textarea,#inspector select,#inspector button,#timerDialog input,#timerDialog button{color:var(--ui-text);border-color:var(--panel-edge)!important}#settingsDialog input:not([type=range]):not([type=checkbox]),#settingsDialog select,#colorDialog input:not([type=range]),#inspector input,#inspector textarea,#inspector select{background:var(--ui-control)}
.quick-sound button[aria-pressed=true],.tools button.active,#timer,#frameActions button,.button-row button,.settings-tabs button[aria-selected=true],#settingsDialog .tint-presets button,#resetAppearance{background:var(--ui-active)!important;color:var(--ui-text)!important}.settings-tabs{border-color:var(--panel-edge)}#quickSoundSettings svg circle{fill:none!important}
#inspector,#inspector input,#inspector textarea,#inspector select,#inspector button,#inspector label,#inspector .eyebrow{font-family:Arial,Helvetica,sans-serif!important}#inspector textarea{font-size:13px}#inspector label{font-size:12px}
body[data-dark-u-i=true] select option{background:#34343c;color:#f5f5f7}
/* Consistent Studio Sans controls; canvas content keeps its chosen typeface. */
#settingsDialog,#colorDialog,#timerDialog,#assistantPanel,#guide,#settingsDialog *,#colorDialog *,#timerDialog *,#assistantPanel *,#guide *{font-family:Arial,Helvetica,sans-serif!important}
/* v10: editorial interface labels, sans-serif user-entered text. */
#inspector,#inspector label,#inspector .eyebrow,#inspector p,#inspector small,#inspector button,#inspector select,
#settingsDialog,#settingsDialog *,#colorDialog,#colorDialog *,#timerDialog,#timerDialog *,#assistantPanel,#assistantPanel *,#guide,#guide *{
 font-family:Georgia,'Times New Roman',serif!important;
}
#inspector input,#inspector textarea,
#settingsDialog input,#settingsDialog textarea,
#colorDialog input,#colorDialog textarea,
#timerDialog input,#timerDialog textarea,
#assistantPanel input,#assistantPanel textarea,
#assistantPanel #aiAnswer{
 font-family:Arial,Helvetica,sans-serif!important;
}
#boardBuilder[hidden]{display:none}#boardBuilder{position:fixed;z-index:35;inset:80px 36px 35px;max-width:1240px;margin:auto;padding:26px;background-color:rgb(var(--panel-rgb,250 250 252) / .94);overflow:auto;color:var(--ui-text);border-radius:24px;box-shadow:0 24px 90px #18182726}#boardBuilder button,#boardBuilder input,#boardBuilder textarea,#boardBuilder select{font:13px Arial,Helvetica,sans-serif;color:inherit}.builder-head{display:flex;align-items:center;gap:18px;margin-bottom:22px}.builder-head>div{flex:1}.builder-head small{font:9px monospace;letter-spacing:1.7px;color:var(--ui-secondary)}.builder-head h2{font:29px Georgia;margin:8px 0 0}.builder-head #closeBuilder{order:2;font-size:26px;padding:4px 10px}.builder-head #openChat{border:1px solid var(--panel-edge);padding:8px 14px;border-radius:20px}.builder-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px}.builder-form{border-right:1px solid var(--panel-edge);padding-right:24px}.builder-form>label{display:block;font-size:12px;margin-bottom:14px}.builder-form select,.builder-form textarea{display:block;width:100%;border:1px solid var(--panel-edge);background:var(--ui-control);border-radius:10px;padding:11px;margin-top:8px}.builder-form textarea{min-height:110px;resize:vertical;line-height:1.6}.builder-form #actionHelp{font:12px/1.6 Arial;color:var(--ui-secondary);min-height:55px}.builder-small{font:11px/1.6 Arial!important;color:var(--ui-secondary)}.builder-form details{margin:16px 0;padding:10px;background:var(--ui-control);border-radius:10px}.builder-form summary{font-size:12px;cursor:pointer}.builder-form summary span{display:block;margin-top:4px;font-size:10px;color:var(--ui-secondary)}#boardSelection{max-height:150px;overflow:auto;margin-top:10px}#boardSelection label{display:flex;gap:8px;font:12px/1.5 Arial;margin:8px 0}#boardSelection input{flex:none}.context-choice{display:flex!important;gap:8px;align-items:flex-start}.builder-buttons{display:flex;flex-wrap:wrap;gap:8px}.builder-buttons .primary,.review-actions .primary{margin:0;background:#555463;color:#fff;border-radius:9px}.builder-buttons button:not(.primary),.review-actions button:not(.primary){border:1px solid var(--panel-edge)}#builderStatus{font:12px/1.6 Arial;min-height:45px}.safety-note{border-top:1px solid var(--panel-edge);padding-top:14px;font:12px/1.7 Georgia;color:var(--ui-secondary)}.review-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.review-heading strong{font:18px Georgia}#previewBadge{font:9px monospace;letter-spacing:.6px;padding:7px 9px;border-radius:20px;background:#b99a6122;color:var(--ui-secondary)}#proposalCanvas{min-height:335px;max-height:430px;overflow:auto;background:linear-gradient(145deg,#f3f3f6,#e7e7ec);border:1px solid var(--panel-edge);border-radius:16px;color:#44444f;padding:18px}.preview-empty{padding:58px 20px;text-align:center}.preview-empty>span{font-size:38px;color:#aaaab5}.preview-empty h3{font:24px Georgia}.preview-empty p{font:12px/1.7 Arial;color:#737380}.builder-review svg{display:block;max-height:420px}.builder-review svg text{font-family:Arial,Helvetica,sans-serif}#proposalSummary{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}#proposalSummary span{font:10px Arial;padding:7px 9px;border-radius:7px;background:var(--ui-control)}.review-actions{display:flex;gap:10px;flex-wrap:wrap}.review-actions button:disabled{opacity:.4;cursor:default}#rewriteDiff{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}#rewriteDiff[hidden]{display:none}#rewriteDiff section{padding:12px;border:1px solid var(--panel-edge);border-radius:10px}#rewriteDiff h4{font:10px monospace;margin:0 0 10px}#rewriteDiff strong{font:16px Georgia}#rewriteDiff p{font:12px/1.6 Arial;white-space:pre-wrap}.builder-launch{width:100%;margin:14px 0;background:var(--ui-active)}#aiProtectionControl input{width:18px;height:18px}#aiProtectionHint{line-height:1.6}#inspector[data-edge=true] #aiProtectionHint{display:none}
@media(max-width:850px){#boardBuilder{inset:12px;padding:18px}.builder-grid{grid-template-columns:1fr}.builder-form{border-right:0;border-bottom:1px solid var(--panel-edge);padding-right:0;padding-bottom:18px}.builder-head h2{font-size:23px}.builder-review svg{max-height:500px}}
.preview-zoom{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin:-4px 0 12px;font:10px Arial;color:var(--ui-secondary)}.preview-zoom input{width:100px;accent-color:#8e8169}.preview-zoom output{min-width:30px}.builder-form textarea::placeholder{color:var(--ui-secondary);opacity:.8}#proposalCanvas{scrollbar-width:thin;scrollbar-color:#b2b2bc transparent}.ai-protected-badge{position:absolute;right:9px;bottom:7px;font:8px Arial!important;letter-spacing:.4px;color:inherit;opacity:.75;background:#88888815;border-radius:8px;padding:4px 6px;pointer-events:none}.frame .ai-protected-badge{bottom:auto;top:8px}
.glass,.glass button,.glass input,.glass label,.glass p,.glass small{transition:color .12s linear,border-color .12s linear,background-color .12s linear}.node.note{overflow-wrap:anywhere}@media(prefers-reduced-motion:reduce){.glass,.glass *{transition:none!important}}
/* A quiet conversation beside the canvas replaces the large proposal window. */
#travelChat[hidden]{display:none}#travelChat{position:fixed;z-index:28;top:165px;right:22px;bottom:20px;width:350px;display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background-color:rgb(var(--panel-rgb,250 250 252) / .90);box-shadow:0 18px 60px #23233016;color:var(--ui-text)}.travel-chat-head{display:flex;align-items:center;justify-content:space-between;padding:19px 19px 15px;border-bottom:1px solid var(--panel-edge)}.travel-chat-head>div{position:relative;padding-left:27px}.chat-spark{position:absolute;left:0;top:0;font-size:23px}.travel-chat-head strong{font:19px Georgia}.travel-chat-head small{display:block;margin-top:7px;font:8px monospace;letter-spacing:1.4px;color:var(--ui-secondary)}#closeTravelChat{font:24px Arial;padding:0 5px}#travelMessages{flex:1;min-height:80px;overflow:auto;scrollbar-width:thin;scrollbar-color:#9995 transparent;padding:18px;display:flex;flex-direction:column;gap:15px}.travel-message{font:13px/1.65 Arial;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}.travel-message.user{background:var(--ui-active);border:1px solid var(--panel-edge);padding:11px 13px;border-radius:14px 14px 3px 14px;margin-left:22px}.try-japan,.chat-undo{font:12px Arial;text-align:left;border:1px solid var(--panel-edge);background:var(--ui-control);padding:12px;border-radius:12px}.chat-undo{align-self:flex-start;padding:8px 12px}#destinationChoice{padding:0 18px 15px}#destinationChoice[hidden]{display:none}#destinationChoice p{font:12px Arial;margin:8px 0 12px}#destinationChoice button{font:12px Arial;border:1px solid var(--panel-edge);border-radius:10px;padding:10px;margin:0 4px 4px 0}#addTravelHere{background:var(--ui-active)}.travel-compose{margin:0 13px 9px;padding:10px 12px;border:1px solid var(--panel-edge);background:var(--ui-control);border-radius:14px}.travel-compose textarea{display:block;width:100%;min-height:65px;max-height:150px;resize:vertical;background:transparent;border:0;outline:none;font:13px/1.5 Arial;color:var(--ui-text)}.travel-compose textarea::placeholder{color:var(--ui-secondary);opacity:.8}.travel-compose>div{display:flex;align-items:center;gap:8px}.travel-compose span{font:9px/1.4 Arial;color:var(--ui-secondary);flex:1}#sendTravel{font:22px Arial;background:#585862;color:white;border-radius:50%;width:32px;height:32px;padding:0}#stopTravel{font:11px Arial;padding:5px}.travel-footnote{font:9px/1.5 Arial;color:var(--ui-secondary);margin:0 18px 13px}#noteScope{margin:12px 13px 0;padding:8px 10px;background:var(--ui-active);border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}#noteScope[hidden]{display:none}#noteScopeName{font:11px Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#noteScope button{font-size:18px;padding:0 4px}#useLiveTravel{font:10px Arial;color:var(--ui-secondary);margin:0 13px 8px;padding:6px;align-self:flex-start;text-decoration:underline}#useLiveTravel[hidden]{display:none}
.research-note{overflow:auto;scrollbar-width:thin;scrollbar-color:#8885 transparent}.research-note figure{margin:-8px -8px 16px}.research-note figure img{width:100%;height:150px;object-fit:cover;border-radius:10px}.research-note figcaption{font:8px/1.4 Arial;margin-top:5px;opacity:.72}.research-meta{margin-top:15px;border-top:1px solid #8883;padding-top:12px;color:inherit}.research-price strong{display:block;font:19px Georgia;margin-bottom:5px}.research-price small{font:10px/1.5 Arial;display:block;color:inherit;opacity:.8}.research-status{display:block;font:8px/1.4 monospace;letter-spacing:.3px;margin:12px 0;color:inherit;opacity:.75}.research-meta details{font:10px/1.5 Arial}.research-meta summary{cursor:pointer}.research-meta a{display:block;font:10px/1.5 Arial;color:inherit;margin-top:6px;overflow-wrap:anywhere}.photo-credit{font-size:8px!important;opacity:.7}.ask-note-ai{display:none;position:absolute;right:8px;top:8px;padding:6px 9px;font:10px Arial;background:#f8f8f2eb;color:#383842;border:1px solid #aaa8;border-radius:14px;z-index:2;box-shadow:0 3px 8px #0001}.node.selected .ask-note-ai,.node:hover .ask-note-ai{display:block}.node.travel-root{border-color:#aaa}#savedBoardChoice{display:block;width:100%;font:11px Arial;max-width:100%!important}body.chat-open .compact-focus{right:390px}.chat-open #assistantPanel{display:none!important}
@media(max-width:800px){#travelChat{top:140px;right:10px;width:min(340px,calc(100vw - 25px));bottom:10px}body.chat-open .compact-focus{display:none}}

#selectionMarquee{position:fixed;pointer-events:none;z-index:9999;border:1px solid #668bc4;background:rgba(100,150,220,.15);border-radius:3px}#selectionMarquee[hidden]{display:none}.node.multi-selected{outline:2px solid #668bc4!important;outline-offset:4px}.node.research-note{padding-bottom:24px}.node.research-note .research-meta{margin-top:16px}

.workflow-caption{position:absolute;left:0;bottom:calc(100% + 18px);max-width:100%;font:12px/1.5 Georgia,serif;letter-spacing:.04em;color:inherit;opacity:.8;pointer-events:none}.node.research-note:has(.workflow-caption){overflow:visible}.workflow-stale{font:12px/1.5 Arial,sans-serif;margin-top:16px;padding:10px;border:1px solid currentColor;border-radius:10px;display:grid;gap:6px}.workflow-stale button{font:inherit;text-align:left;text-decoration:underline;background:transparent;border:0;padding:0;color:inherit;cursor:pointer}

.research-image-missing{padding:20px 12px;border:1px dashed currentColor;border-radius:12px;opacity:.6;font:12px/1.5 Arial,sans-serif;margin-bottom:16px}.research-location,.research-details{font:13px/1.5 Arial,sans-serif}.research-details{padding-left:18px}.research-details li{margin-bottom:6px}

/* v18: canvas notes never create an internal scroll area. */
.node.note,.node.research-note{overflow:visible!important;height:auto!important;max-height:none!important}
.node.note p,.node.note h2,.node.note .research-meta{overflow:visible!important;max-height:none!important;overflow-wrap:anywhere}
.resize-handle{z-index:20!important;pointer-events:auto!important}
.node.image .image-attribution{font:10px/1.5 Arial;color:inherit;display:block;padding:8px;overflow-wrap:anywhere}

/* v21: viewport-sized corner handles and live connector affordances. */
.node.note>.resize-handle,.node.frame>.resize-handle,#frameResizeOverlay{display:none!important}
#cornerControls{position:absolute;inset:0;pointer-events:none;z-index:10000}#cornerControls[hidden]{display:none}
.corner-handle{position:absolute;width:14px;height:14px;padding:0;border:1.5px solid var(--ui-text,#555);background:var(--ui-control,#f7f7f7);border-radius:4px;pointer-events:auto;transform:translate(-50%,-50%) scale(var(--handle-scale,1));transform-origin:center;touch-action:none}
.corner-handle.nw,.corner-handle.se{cursor:nwse-resize}.corner-handle.ne,.corner-handle.sw{cursor:nesw-resize}
#connectCursor{position:fixed;z-index:10001;pointer-events:none;border-radius:6px;background:var(--ui-text,#444);color:var(--ui-control,#fff);font:16px Arial;padding:3px 6px}#connectCursor[hidden]{display:none}
.node.connect-hover{outline:2px solid var(--ui-text,#555)!important;outline-offset:5px}.node.connect-source{outline:2px dashed var(--ui-text,#555)!important;outline-offset:5px}
#connectorPreview{stroke:var(--ui-text,#62626c);stroke-width:1.7;stroke-dasharray:6 5;pointer-events:none}#connectorPreview.snapped{stroke-dasharray:none;stroke-width:2.3}
body[data-tool="arrow"] .node,body[data-tool="arrow"] .node *{cursor:default!important}

/* v22: invisible border hit areas; direction is indicated by cursor only. */
.corner-handle,.corner-handle:hover,.corner-handle:active{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;transform:none!important;outline:none!important}
.corner-handle.n,.corner-handle.s{cursor:ns-resize}.corner-handle.e,.corner-handle.w{cursor:ew-resize}

/* v23: arrows track the canvas tint, with a stronger selected state. */
#paths path:not([stroke="transparent"]){transition:stroke .2s ease}
#paths circle{transition:fill .2s ease}
#arrowhead path{stroke:var(--connection-color,#62626c);transition:stroke .2s ease}
#connectorPreview{stroke:var(--connection-color,#62626c);transition:stroke .2s ease}
#connectorPreview.snapped{stroke:var(--connection-selected,#474653)}

.alt-resize-target,.alt-resize-target *{cursor:var(--alt-resize-cursor)!important}
body.resizing-box,body.resizing-box *{cursor:var(--active-resize-cursor)!important;user-select:none!important}

/* v25: consistent controls and full image bounds */
#inspector #eyebrowControl{display:flex;flex-direction:column;align-items:stretch;gap:8px}
#inspector #eyebrowControl[hidden]{display:none}
#inspector #eyebrowText{width:100%;min-width:0;padding:11px;height:auto;font:14px Arial,sans-serif;background:var(--ui-control);color:var(--ui-text);border:1px solid var(--panel-edge);border-radius:9px}
#page-sound .focus-bottom{gap:10px;justify-content:flex-start;flex-wrap:wrap}
#page-sound .focus-bottom button{padding:10px 14px;background:var(--ui-control)!important;color:var(--ui-text)!important;border:1px solid var(--panel-edge)}
#page-sound .focus-bottom button[aria-pressed=true]{background:var(--ui-active)!important}
#musicFile{max-width:100%;font:12px Arial;color:var(--ui-secondary);background:transparent}
#musicFile::file-selector-button{font:12px Arial;color:var(--ui-text);background:var(--ui-control);border:1px solid var(--panel-edge);border-radius:8px;padding:9px 12px;margin-right:9px;cursor:pointer}
#page-sound .file-label{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.node.image{min-height:0;padding:8px;display:flex;flex-direction:column}
.node.image img{min-height:0;flex:1;object-fit:contain;width:100%;height:100%;border-radius:6px}
.node.image .resize-handle{display:none!important}
.quick-sound{display:grid;grid-template-columns:34px 34px}
#musicToggle{grid-column:1}
#musicPanel{position:fixed;z-index:35;width:300px;max-width:calc(100vw - 24px);padding:18px;color:var(--ui-text);background:rgb(var(--panel-rgb)/.94);border:1px solid var(--panel-edge);border-radius:16px;backdrop-filter:blur(24px);box-shadow:0 16px 45px #0002}
#musicPanel[hidden]{display:none}
.music-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font:19px Georgia}
.music-heading button{font:22px Arial;padding:0 4px}
.music-now{display:flex;align-items:center;gap:12px}
#musicCover{width:74px;height:74px;border-radius:10px;object-fit:cover;background:var(--ui-active)}
.music-meta{min-width:0;flex:1;font:14px Arial}
#musicArtist{display:block;color:var(--ui-secondary);font-size:12px;margin-top:5px}
.music-controls{display:flex;gap:8px;margin-top:14px}
.music-controls button{background:var(--ui-control);color:var(--ui-text);border:1px solid var(--panel-edge);font:13px Arial}
#musicPlay{flex:1}
#musicMessage,#musicCredit{font:11px/1.5 Arial;color:var(--ui-secondary)}
#musicCredit{display:block;margin-top:12px}
#musicVolume{width:100%}
#musicPanel{display:flex;flex-direction:column;overflow:hidden}
.music-volume{font:11px Arial;color:var(--ui-secondary);display:flex;align-items:center;gap:12px;margin-top:14px}
#musicList{overflow-y:auto;min-height:80px;max-height:270px;scrollbar-width:thin;scrollbar-color:var(--ui-secondary) transparent;border-top:1px solid var(--panel-edge);padding-top:8px}
.music-track{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px;color:var(--ui-text);flex-shrink:0}
.music-track:hover,.music-track[aria-pressed=true]{background:var(--ui-active)}
.music-track img{width:42px;height:42px;object-fit:cover;border-radius:6px}
.music-track span{min-width:0}.music-track strong,.music-track small{display:block;font:12px/1.5 Arial;overflow-wrap:anywhere}
.music-track small{font-size:10px;color:var(--ui-secondary)}

/* Independent buttons: no shared outer box or unused grid cell. */
.quick-sound.glass{background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;gap:9px;padding:0}
.quick-sound>button{background:rgb(var(--panel-rgb)/.55);border:1px solid var(--panel-edge);box-shadow:inset 0 1px var(--panel-highlight);backdrop-filter:blur(20px);border-radius:10px}
.music-progress{margin-top:14px;flex-shrink:0}
#musicSeek{display:block;width:100%;margin:0;cursor:pointer}
#musicSeek:disabled{cursor:default;opacity:.4}
.music-progress>div{display:flex;justify-content:space-between;margin-top:5px;font:10px Arial;color:var(--ui-secondary);font-variant-numeric:tabular-nums}

/* v27: one right-aligned vertical glass toolbar. */
.quick-sound.glass{grid-template-columns:34px;gap:3px;padding:4px!important;background:rgb(var(--panel-rgb)/.55)!important;border:1px solid var(--panel-edge)!important;box-shadow:inset 0 1px var(--panel-highlight)!important;backdrop-filter:blur(24px)!important}
.quick-sound>button{background:transparent;border:0;box-shadow:none;backdrop-filter:none}
#musicToggle{grid-column:1}

/* Keep card controls clear of the right toolbar. */
#inspector{right:88px!important;max-width:calc(100vw - 110px)}
#arrowhead path{fill:var(--connection-color)!important;stroke:none!important}
#connectorPopup{position:fixed;z-index:50;padding:8px;display:flex;gap:6px;color:var(--ui-text);background:rgb(var(--panel-rgb)/.94);border:1px solid var(--panel-edge);border-radius:12px;backdrop-filter:blur(24px)}
#connectorPopup[hidden]{display:none}
#connectorPopup button{font:12px Arial;color:var(--ui-text)}
#connectorPopup button[aria-pressed=true]{background:var(--ui-active)}
/* Shared panel anchor, independent of panel content or height. */
#settingsDialog,#inspector,#musicPanel{left:auto!important;right:var(--panel-anchor-right,88px)!important;top:var(--panel-anchor-top,113px)!important;margin:0!important;max-height:var(--panel-anchor-height,calc(100vh - 135px))!important;max-width:calc(100vw - 100px)}
#settingsDialog .panel-heading{cursor:default}

/* Container title sits inside its top edge instead of floating above it. */
.node.frame h2{top:0;left:0;right:0;margin:0;padding:8px 12px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.3}

/* Title outside, closely anchored above the container's top edge. */
.node.frame h2{top:auto;bottom:calc(100% + 4px);left:0;right:0;padding:0;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.3}

/* Compact page controls beside the workspace title. */
.planner-pages{display:flex;align-items:center;gap:5px;margin-left:12px;min-width:0}
.planner-pages select{width:136px;max-width:20vw;padding:7px 10px;border:1px solid var(--glass-border,rgba(128,128,128,.25));border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:12px;text-overflow:ellipsis}
.planner-pages button{width:30px;height:30px;padding:0;font-size:21px;border-radius:9px;color:inherit;background:transparent}
.planner-pages select:focus-visible,.planner-pages button:focus-visible{outline:2px solid currentColor;outline-offset:2px}
@media(max-width:700px){.planner-pages{margin-left:4px}.planner-pages select{width:88px}}
