@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Segoe UI,Yu Gothic UI,Hiragino Kaku Gothic ProN,sans-serif;color:#edf0eb;background:#141719;font-synthesis:none;-webkit-font-smoothing:antialiased;--canvas:#141719;--panel:#191c1f;--raised:#22262a;--hover:#2b3034;--line:rgba(224,234,224,.085);--line-strong:rgba(224,234,224,.18);--text:#edf0eb;--secondary:#b3b9b7;--muted:#838d8a;--faint:#626c69;--lime:#dcf57b;--lime-dim:rgba(220,245,123,.09);--attack:#dcf57b;--defense:#64c8f0;--danger:#ff9476;--input:#131719;--radius:6px;font-size:13px;font-weight:400;font-variant-numeric:tabular-nums}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:none;border:0}button{transition:background-color .15s,color .15s,border-color .15s}button:hover{color:var(--text)}button:disabled{opacity:.35;cursor:not-allowed}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit;text-decoration:none}input,textarea{color:var(--text);background:var(--input);border:1px solid var(--line);outline:none;border-radius:var(--radius)}input::placeholder,textarea::placeholder{color:var(--faint)}input:focus,textarea:focus{border-color:var(--lime)}button:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:3px}button:disabled:hover{background:transparent}svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#3c4443;border-radius:5px}::-webkit-scrollbar-track{background:transparent}.app-shell{height:100dvh;min-height:580px;display:flex;flex-direction:column;overflow:hidden}.app-header{height:72px;min-height:72px;padding:0 28px;display:flex;align-items:center;gap:64px;background:var(--canvas);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;width:215px}.brand-symbol{width:32px;height:36px;display:grid;place-items:center;color:var(--lime);background:var(--lime-dim);border:1px solid rgba(220,245,123,.2);transform:skew(-7deg)}.brand>:last-child{font:700 28px/.9 Barlow Condensed,sans-serif;letter-spacing:2px}.brand small{font-family:Segoe UI,sans-serif;font-size:7px;letter-spacing:2px;display:block;color:var(--muted);margin-top:8px;font-weight:600}.main-nav{align-self:stretch;display:flex;gap:28px}.main-nav button{position:relative;display:flex;align-items:center;gap:9px;color:var(--muted);font-weight:600;white-space:nowrap;font-size:12px}.main-nav button.active{color:var(--lime)}.main-nav button.active:after{content:"";position:absolute;bottom:0;height:2px;background:var(--lime);left:0;right:0}.main-nav button:hover{color:var(--text)}.counter{font:11px Segoe UI,sans-serif;background:var(--raised);padding:2px 5px;border-radius:4px;color:var(--secondary)}.header-end{margin-left:auto;display:flex;align-items:center;gap:20px}.local-badge{font-size:9px;letter-spacing:1.4px;color:var(--muted);display:flex;align-items:center;gap:7px}.local-badge>span{width:5px;height:5px;background:var(--lime);border-radius:50%}.version-tag{font:600 10px Segoe UI,sans-serif;letter-spacing:.8px;border:1px solid var(--line-strong);border-radius:4px;padding:5px 7px;color:var(--muted)}.icon-button{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--radius);color:var(--secondary)}.icon-button:hover{background:var(--hover)}.button{height:36px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:1px solid var(--line-strong);background:var(--raised);border-radius:var(--radius);font-weight:600;font-size:12px;white-space:nowrap}.button:hover{background:var(--hover);border-color:#4d5652}.button.primary{background:var(--lime);border-color:var(--lime);color:#222b15}.button.primary:hover{background:#e8ff9e;border-color:#e8ff9e}.button.subtle{border-color:transparent;background:none;color:var(--secondary)}.button.subtle:hover{background:var(--raised)}.button.destructive{background:#4e3029;border-color:#845043;color:#ffd0bf}.text-button{padding:8px 0;color:var(--secondary);font-size:12px;display:inline-flex;align-items:center;gap:8px}.text-button:hover{color:var(--lime)}.danger{color:var(--danger)!important}.workspace-bar{height:80px;min-height:80px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px;background:var(--panel)}.workspace-title{display:flex;align-items:center;gap:12px;min-width:0}.board-icon{width:40px;height:40px;border:1px solid var(--line-strong);border-radius:var(--radius);display:grid;place-items:center;color:var(--secondary)}.workspace-title>div{min-width:0}.workspace-title input{font-size:18px;letter-spacing:-.5px;font-weight:600;max-width:430px;width:clamp(200px,28vw,430px);padding:2px 4px;background:transparent;border-color:transparent;margin-left:-4px;display:block;text-overflow:ellipsis}.workspace-title input:hover{border-color:var(--line)}.workspace-title input:focus{border-color:var(--lime)}.save-status{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px;margin-top:4px}.save-status svg{color:#8c9f75}.save-status.error{color:var(--danger)}.save-dot{width:5px;height:5px;background:var(--muted);border-radius:50%}.workspace-actions{display:flex;align-items:center;gap:10px}.workbench{min-height:0;flex:1;display:grid;grid-template-columns:248px minmax(0,1fr) 272px}.left-panel,.right-panel{min-height:0;background:var(--panel);padding:20px;display:flex;flex-direction:column}.left-panel{border-right:1px solid var(--line)}.section-label{font:600 10px Segoe UI,sans-serif;letter-spacing:2px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-label>span{font:600 11px Barlow Condensed,sans-serif;color:var(--faint)}.map-card{height:132px;min-height:132px;position:relative;border-radius:var(--radius);overflow:hidden;text-align:left;padding:16px;border:1px solid var(--line-strong)}.map-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.65);transition:transform .3s}.map-card:hover img{transform:scale(1.06)}.map-card-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0a0e10f0,#0a0e1014 85%)}.map-card-tag{position:absolute;top:12px;left:12px;font-size:8px;letter-spacing:1.5px;color:#f3f4ee;background:#10141699;border:1px solid rgba(255,255,255,.13);border-radius:3px;padding:4px 6px}.map-card-title{position:absolute;left:14px;bottom:14px;display:flex;flex-direction:column;gap:4px}.map-card-title strong{font-size:17px;font-weight:600}.map-card-title small{font:500 10px Segoe UI,sans-serif;letter-spacing:1.3px;color:#c2c9c1}.map-card-change{position:absolute;right:12px;bottom:17px;border-radius:4px;background:#ffffff12;width:25px;height:25px;display:grid;place-items:center}.floor-heading{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;margin:20px 0 9px}.floor-tabs{display:flex;gap:5px}.floor-tabs button{height:33px;flex:1;padding:0 3px;background:#202427;border:1px solid var(--line);border-radius:4px;font:600 13px Barlow Condensed,sans-serif;color:var(--muted)}.floor-tabs button.active{background:var(--lime-dim);border-color:#dcf57b55;color:var(--lime)}.floor-tabs button:hover{background:var(--hover)}.side-switch{display:flex;gap:3px;padding:4px;background:var(--input);border:1px solid var(--line);border-radius:var(--radius);margin:20px 0}.side-switch button{display:flex;gap:6px;align-items:center;justify-content:center;flex:1;height:33px;border-radius:3px;color:var(--muted);font-size:11px;font-weight:600}.side-switch button span{font-size:9px;opacity:.5;margin-left:2px}.side-switch button.active{background:var(--raised);color:var(--attack)}.side-switch button.active.defense{color:var(--defense)}.palette-tabs{display:flex;gap:18px;min-height:34px;margin-bottom:14px;border-bottom:1px solid var(--line)}.palette-tabs button{padding:0 0 12px;color:var(--muted);font-size:12px;position:relative;font-weight:600}.palette-tabs button.active{color:var(--text)}.palette-tabs button.active:after{position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--lime);content:""}.search{display:flex;gap:8px;align-items:center;background:var(--input);border:1px solid var(--line);border-radius:var(--radius);padding:0 10px;min-height:36px;color:var(--muted)}.search:focus-within{border-color:var(--lime)}.search input{width:100%;min-width:0;border:0;background:none;padding:8px 0;font-size:11px}.search button{padding:2px;display:grid;place-items:center}.palette-hint{font-size:10px;color:var(--faint);margin:12px 0}.operator-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;overflow-y:auto;min-height:92px;padding:1px 5px 4px 1px;align-content:start;flex:1}.operator-card{display:flex;flex-direction:column;align-items:center;gap:7px;border-radius:5px;background:#202427;border:1px solid var(--line);padding:10px 2px 8px;min-height:76px}.operator-card:hover{background:var(--hover);border-color:var(--line-strong)}.operator-card.active{background:var(--lime-dim);border-color:var(--lime);color:var(--lime)}.operator-card>span:last-child{font:600 10px Barlow Condensed,sans-serif;letter-spacing:.6px}.operator-emblem{height:32px;width:34px;position:relative;display:grid;place-items:center;color:#d3d4c2}.operator-emblem.defense{color:#b6c9d3}.operator-emblem b{position:absolute;top:10px;font:700 10px Barlow Condensed,sans-serif}.operator-emblem svg{width:34px;height:34px}.empty-search{grid-column:1/-1;font-size:11px;color:var(--muted);padding:15px 0}.custom-op{display:flex;margin-top:12px;background:var(--input);border:1px solid var(--line);border-radius:4px;min-height:33px}.custom-op input{width:100%;min-width:0;background:none;border:0;padding:7px;font-size:10px}.custom-op button{width:32px;display:grid;place-items:center;color:var(--muted)}.gadget-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;overflow:auto;align-content:start;flex:1}.gadget-grid button{display:flex;flex-direction:column;gap:8px;align-items:center;padding:14px 3px;background:var(--raised);border:1px solid var(--line);border-radius:5px;font-size:10px;color:var(--secondary)}.gadget-grid button>span{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--muted);border-radius:4px;font-weight:700;font-size:12px}.gadget-grid button.active{border-color:var(--lime);color:var(--lime);background:var(--lime-dim)}.sidebar-footer{display:flex;align-items:center;gap:6px;margin:18px -2px 0;color:var(--faint);font-size:9px;white-space:nowrap}.board-workspace{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--canvas)}.drawing-toolbar{height:60px;min-height:60px;display:flex;align-items:center;padding:0 16px;gap:16px;border-bottom:1px solid var(--line);background:var(--panel)}.drawing-tools,.color-tools,.history-tools{display:flex;align-items:center;gap:4px}.tool-button{height:34px;width:34px;min-width:34px;border-radius:5px;display:grid;place-items:center;color:var(--muted)}.tool-button:hover{background:var(--hover);color:var(--text)}.tool-button.active{color:var(--lime);background:var(--lime-dim);box-shadow:inset 0 0 0 1px #dcf57b33}.toolbar-divider{height:23px;width:1px;min-width:1px;background:var(--line-strong)}.color-tools{gap:8px}.color-swatch{width:16px;height:16px;min-width:16px;background:var(--swatch);border-radius:50%;position:relative}.color-swatch.active:after{content:"";position:absolute;inset:-4px;border:1px solid var(--swatch);border-radius:50%}.color-swatch:hover{transform:scale(1.12)}.history-tools{margin-left:auto;padding-left:8px}.canvas-host{position:relative;flex:1;min-height:0;overflow:hidden;background-color:#121618;background-image:radial-gradient(#444e483d .8px,transparent .8px);background-size:20px 20px}.board-svg{position:absolute;inset:0;display:block;touch-action:none;user-select:none}.tool-select .board-svg{cursor:default}.tool-pan .board-svg{cursor:grab}.tool-pan .board-svg:active{cursor:grabbing}.tool-arrow .board-svg,.tool-pen .board-svg,.tool-rect .board-svg,.tool-circle .board-svg,.tool-operator .board-svg,.tool-gadget .board-svg{cursor:crosshair}.tool-text .board-svg{cursor:text}.tool-eraser .board-svg{cursor:crosshair}.canvas-coordinate{position:absolute;z-index:1;pointer-events:none;font:500 9px Segoe UI,sans-serif;letter-spacing:1.8px;color:var(--faint);display:flex;align-items:center;gap:8px}.top-left{top:24px;left:24px}.canvas-coordinate span{color:#939f97}.compass{position:absolute;top:20px;right:22px;color:#728078;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}.compass span{font:600 10px Barlow Condensed,sans-serif}.canvas-hint{position:absolute;bottom:22px;left:24px;display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--line);border-radius:5px;background:#191d20e8;color:var(--muted);font-size:10px;pointer-events:none;max-width:calc(100% - 206px)}.hint-dot{height:5px;width:5px;border-radius:50%;background:var(--lime)}.zoom-controls{position:absolute;bottom:22px;right:22px;display:flex;align-items:center;background:#1c2124;border:1px solid var(--line-strong);border-radius:5px;height:34px;color:var(--secondary)}.zoom-controls button{height:32px;width:30px;display:grid;place-items:center}.zoom-controls button:hover{background:var(--hover)}.zoom-controls span{font-size:10px;width:40px;text-align:center}.zoom-controls i{height:15px;width:1px;background:var(--line-strong)}.map-message{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);padding:16px 24px;background:var(--panel);border:1px solid var(--line-strong);border-radius:6px;white-space:nowrap;color:var(--secondary)}.map-message.error{color:var(--danger)}.board-statusbar{height:34px;min-height:34px;display:flex;align-items:center;padding:0 18px;gap:16px;border-top:1px solid var(--line);background:var(--panel);color:var(--muted);font:600 9px Segoe UI,sans-serif;letter-spacing:1px}.board-statusbar>span:first-child{display:flex;gap:10px;align-items:center}.board-statusbar i{height:9px;width:1px;background:var(--line-strong)}.team-dot{height:5px;width:5px;border-radius:50%;background:var(--attack)}.team-dot.defense{background:var(--defense)}.board-statusbar>button{margin-left:auto;display:flex;align-items:center;gap:6px;color:var(--faint);font-size:9px;letter-spacing:0}.element-count{font-size:8px}.right-panel{border-left:1px solid var(--line);overflow-y:auto}.strategy-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px;gap:8px}.strategy-heading h2{font-size:16px;font-weight:600;letter-spacing:-.5px;margin-bottom:7px}.strategy-heading p{font-size:10px;line-height:1.6;color:var(--muted)}.strategy-heading>svg{color:var(--faint);margin-top:2px}.detail-section{margin-bottom:24px}.detail-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px;min-height:20px}.detail-heading h3{font-size:11px;display:flex;gap:8px;align-items:center;font-weight:500;color:var(--secondary)}.detail-heading h3 svg{color:var(--muted)}.detail-heading>span{font-size:10px;color:var(--muted)}.squad-empty{padding:14px 0;text-align:center;border:1px dashed var(--line-strong);border-radius:5px}.empty-squad-icons{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 0 13px}.empty-squad-icons>span{width:26px;height:30px;border:1px solid var(--line-strong);display:grid;place-items:center;border-radius:4px;color:var(--faint)}.squad-empty p{font-size:10px;color:var(--muted);margin-bottom:5px}.squad-empty small{font-size:9px;color:var(--faint)}.squad-list{display:flex;flex-direction:column;max-height:215px;overflow:auto;gap:5px}.squad-list>button{display:flex;align-items:center;gap:9px;padding:7px 9px;background:var(--raised);border:1px solid transparent;border-radius:4px;text-align:left;min-height:38px}.squad-list>button.active{border-color:var(--lime)}.squad-number{font:600 10px Barlow Condensed,sans-serif;color:var(--faint)}.squad-avatar{font:700 12px Barlow Condensed,sans-serif;width:23px;height:23px;display:grid;place-items:center;border:1px solid currentColor;border-radius:4px}.squad-list strong{font:600 12px Barlow Condensed,sans-serif;letter-spacing:.6px}.squad-list small{margin-left:auto;font-size:9px;color:var(--muted)}.mini-button{display:grid;place-items:center;color:var(--muted);width:25px;height:25px;border:1px solid var(--line);border-radius:4px}.mini-button.active{color:var(--lime);border-color:#dcf57b55}.layer-list{display:flex;flex-direction:column;gap:4px}.layer-list>button{display:flex;align-items:center;gap:9px;padding:8px 0;color:var(--muted);font-size:11px;min-height:32px}.layer-list>button>span{color:var(--secondary)}.layer-list>button>svg:last-child{margin-left:auto;color:#a3b293}.layer-list>button.hidden-layer{opacity:.45}.notes-section{margin-bottom:16px;flex:1;min-height:132px;display:flex;flex-direction:column}.notes-section textarea{padding:12px;font-size:11px;line-height:1.9;width:100%;resize:vertical;min-height:112px;max-height:260px;flex:1;border-color:var(--line);color:var(--secondary)}.selection-details{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line-strong);border-radius:5px;padding-left:10px;margin-bottom:12px;gap:8px}.selection-details>span{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.right-bottom{margin-top:auto}.clear-button{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;padding:8px 0}.clear-button:hover{color:var(--danger)}.source-note{border-top:1px solid var(--line);padding-top:14px;margin-top:12px;color:var(--faint)}.source-note a{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:10px}.source-note a:hover{color:var(--lime)}.source-note p{font-size:9px;line-height:1.7;margin:6px 0}.source-note small{font-size:8px}.modal{color:var(--text);width:min(520px,calc(100vw - 32px));max-height:88dvh;border:1px solid var(--line-strong);border-radius:12px;background:#1c2023;padding:28px;overflow:auto;box-shadow:0 20px 100px #0008}.modal.wide{width:min(860px,calc(100vw - 40px))}.modal::backdrop{background:#070b0dde;backdrop-filter:blur(5px)}.modal[open]{animation:modal-enter .18s ease-out}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.modal-heading h2{font-size:22px;font-weight:600;letter-spacing:-.5px;line-height:1.4}.modal-heading p{font-size:12px;line-height:1.8;color:var(--muted);margin-top:9px}.modal-heading .icon-button{margin:-6px -8px 0 0;flex-shrink:0}.modal .search{margin-bottom:20px}.modal .search input{font-size:13px;padding:11px 0}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-height:56dvh;overflow-y:auto;padding:2px 6px 4px 2px}.map-option{padding:0;overflow:hidden;text-align:left;position:relative;background:var(--raised);border:1px solid var(--line);border-radius:7px}.map-option.current{border-color:var(--lime)}.map-option:hover{border-color:var(--muted);background:var(--hover)}.map-option>img{width:100%;height:112px;object-fit:cover;filter:saturate(.75);display:block}.map-option>div{display:flex;flex-direction:column;gap:6px;padding:12px}.map-option strong{font-size:13px}.map-option small{font:600 10px Barlow Condensed,sans-serif;letter-spacing:.8px;color:var(--muted)}.map-option>div>span{font-size:8px;letter-spacing:1px;color:var(--faint)}.map-option svg{position:absolute;right:12px;bottom:13px;color:var(--lime)}.modal-empty{padding:40px;text-align:center;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.text-input{width:100%;padding:12px}.library-actions{display:flex;align-items:center;gap:10px;margin-bottom:20px}.library-list{display:flex;flex-direction:column;gap:8px;max-height:50dvh;overflow:auto}.library-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding-right:12px;border-radius:6px;background:var(--raised)}.library-open{display:flex;align-items:center;gap:16px;flex:1;min-width:0;padding:10px;text-align:left}.library-open img{width:86px;height:52px;object-fit:cover;border-radius:3px}.library-open>div{display:flex;flex-direction:column;gap:7px;flex:1;min-width:0}.library-open strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-open>div>span{font-size:10px;color:var(--muted)}.current-pill{font-size:9px;color:var(--lime);background:var(--lime-dim);padding:5px 8px;border-radius:4px;white-space:nowrap}.library-open>svg{color:var(--muted)}.library-footer{display:flex;justify-content:space-between;align-items:center;margin-top:18px;font-size:11px;color:var(--muted)}.export-option{display:flex;align-items:center;gap:16px;width:100%;padding:20px 12px;border:1px solid var(--line-strong);border-radius:7px;text-align:left;background:var(--raised);margin-bottom:12px}.export-option:hover{border-color:var(--lime);background:#272d28}.export-icon{display:grid;place-items:center;min-width:42px;height:46px;color:var(--lime);background:var(--lime-dim);border-radius:5px}.export-option>div{flex:1}.export-option strong{font-size:14px}.export-option p{font-size:11px;color:var(--muted);line-height:1.7;margin:7px 0}.export-option small{font-size:9px;letter-spacing:1.2px;color:var(--secondary)}.export-option>svg{color:var(--muted)}.modal-footnote{font-size:11px;line-height:1.9;color:var(--muted);margin-top:20px}.share-preview{display:flex;gap:16px;padding:12px;border:1px solid var(--line);background:var(--raised);border-radius:6px;margin-bottom:24px}.share-preview img{width:85px;height:55px;object-fit:cover;border-radius:4px}.share-preview>div{display:flex;flex-direction:column;justify-content:center;gap:8px;min-width:0}.share-preview strong{font-size:13px}.share-preview span{font-size:11px;color:var(--muted)}.field-label{display:block;font-size:11px;color:var(--secondary);margin-bottom:10px}.share-input{display:flex;gap:8px}.share-input input{min-width:0;flex:1;padding:8px 10px;font-size:11px}.notice{display:flex;gap:10px;background:var(--lime-dim);padding:14px;border:1px solid #dcf57b22;border-radius:6px;margin:20px 0 12px;color:var(--secondary)}.notice svg{color:var(--lime);margin-top:2px}.notice p{font-size:11px;line-height:1.9}.help-steps{display:flex;flex-direction:column;gap:18px}.help-steps>div{display:flex;gap:18px;align-items:flex-start}.help-steps b{font:600 24px/1 Barlow Condensed,sans-serif;color:var(--lime);padding-top:4px}.help-steps strong{display:block;font-size:13px;color:var(--text);margin-bottom:5px}.help-steps p{font-size:11px;line-height:1.9;color:var(--muted)}.help-heading{font-size:12px;font-weight:600;margin:26px 0 16px}.shortcut-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}.shortcut-grid>div{display:flex;align-items:center;justify-content:space-between;color:var(--secondary);font-size:11px}kbd{background:var(--input);border:1px solid var(--line-strong);border-radius:3px;padding:3px 6px;color:var(--muted);font:9px Segoe UI,sans-serif}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;background:#2b3329;border:1px solid #dcf57b44;box-shadow:0 8px 36px #0006;display:flex;align-items:center;gap:10px;border-radius:7px;padding:14px 16px;font-size:12px;max-width:calc(100vw - 32px);line-height:1.6}.toast>svg{color:var(--lime)}.toast>button{display:grid;place-items:center;margin-left:16px;color:var(--muted)}.boot-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;text-align:center}.boot-screen .brand{width:auto;color:var(--lime)}.boot-screen p{color:var(--muted);font-size:13px;line-height:1.8}.boot-screen h1{font-size:24px}.loading-line{width:180px;height:2px;background:var(--raised);position:relative;overflow:hidden}.loading-line:after{content:"";position:absolute;inset:0;background:var(--lime);animation:loading 1.4s ease-in-out infinite}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-toggle,.panel-scrim{display:none}@keyframes modal-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes loading{0%{transform:translate(-100%)}50%{transform:translate(0)}to{transform:translate(100%)}}@media(min-width:1700px){.workbench{grid-template-columns:264px minmax(0,1fr) 292px}.left-panel,.right-panel{padding:24px}.operator-card{min-height:84px}.map-card{height:148px;min-height:148px}.drawing-toolbar{gap:24px}.tool-button{width:38px;height:38px}.color-tools{gap:12px}.strategy-heading h2{font-size:18px}}@media(max-width:1350px){.workbench{grid-template-columns:220px minmax(0,1fr) 236px}.left-panel,.right-panel{padding:16px}.drawing-toolbar{gap:10px;padding:0 12px}.tool-button{width:30px;min-width:30px;height:32px}.drawing-tools{gap:1px}.color-tools{gap:7px}.color-swatch{width:13px;min-width:13px;height:13px}.history-tools{gap:0;padding-left:0}.app-header{gap:36px}.brand{width:180px}.strategy-heading p{font-size:9px}.sidebar-footer{font-size:8px}.canvas-hint{font-size:9px;left:16px;bottom:16px;padding:8px}.zoom-controls{bottom:16px;right:16px}.element-count{display:none}}@media(max-width:1120px){.workbench{grid-template-columns:216px minmax(0,1fr)}.right-panel{display:none;position:fixed;right:0;top:152px;bottom:0;width:280px;z-index:21}.right-panel.mobile-open{display:flex}.workspace-actions>.mobile-toggle{display:grid}.panel-scrim{display:block;position:fixed;inset:152px 0 0;background:#0008;z-index:20}.local-badge{display:none}.app-header,.main-nav{gap:24px}.drawing-toolbar{gap:16px}.tool-button{width:34px;min-width:34px}.color-tools{gap:9px}.source-note p{font-size:10px}}@media(max-width:760px){.app-header{height:60px;min-height:60px;padding:0 16px;gap:20px}.brand{width:auto;gap:8px}.brand>:last-child{font-size:24px}.brand small{font-size:6px;letter-spacing:1px;margin-top:6px}.brand-symbol{width:27px;height:32px}.main-nav{gap:16px;margin-left:auto}.main-nav button{font-size:11px;gap:6px}.main-nav button>svg{display:none}.main-nav .counter{display:none}.header-end{gap:0;margin-left:0}.header-end .version-tag{display:none}.workspace-bar{height:76px;min-height:76px;padding:0 12px;gap:8px}.workspace-title{gap:0;flex:1}.board-icon{display:none}.workspace-title input{font-size:14px;min-width:0;width:100%;max-width:none}.workspace-title>div{width:100%}.save-status{font-size:8px;gap:4px;white-space:nowrap}.workspace-actions{gap:6px}.workspace-actions .button{width:34px;padding:0;height:34px}.workspace-actions .button>span{display:none}.workspace-actions .import-button{display:none}.workspace-actions .mobile-toggle{width:28px}.mobile-toggle{display:grid}.workbench{display:flex;position:relative}.board-workspace{flex:1}.left-panel{display:none;position:fixed;left:0;top:136px;bottom:0;width:252px;z-index:21;padding:20px}.left-panel.mobile-open{display:flex}.right-panel{top:136px}.panel-scrim{inset:136px 0 0}.drawing-toolbar{min-height:88px;height:88px;flex-wrap:wrap;padding:8px 12px;gap:8px 16px;align-content:center}.drawing-tools{flex:1;gap:3px}.tool-button{width:32px;min-width:32px;height:32px}.toolbar-divider{display:none}.color-tools{order:2;gap:15px;margin:1px 5px 5px}.color-swatch{width:14px;min-width:14px;height:14px}.history-tools{order:3;margin-left:auto;height:24px}.history-tools .tool-button{height:26px}.canvas-coordinate{font-size:8px;letter-spacing:1px}.top-left{left:16px;top:20px}.compass{right:16px;top:16px}.compass svg{width:26px;height:26px}.canvas-hint{max-width:calc(100% - 32px);bottom:62px;font-size:9px;left:16px}.zoom-controls{bottom:16px;right:16px}.board-statusbar{font-size:8px;padding:0 12px;gap:8px;letter-spacing:.8px}.board-statusbar>span:first-child{gap:7px}.board-statusbar>button>span{display:none}.modal{padding:22px}.modal.wide{width:calc(100vw - 24px);padding:20px}.modal-heading h2{font-size:20px}.map-grid{grid-template-columns:repeat(2,1fr);gap:10px}.map-option>img{height:95px}.map-option strong{font-size:12px}.map-option>div{padding:10px}.library-open{gap:10px}.library-open img{width:50px;height:44px}.library-open strong{font-size:12px}.library-open>div>span{font-size:9px}.library-row{gap:0;padding-right:7px}.library-open>.current-pill{display:none}.library-open>svg{display:none}.shortcut-grid{gap:10px 16px}.toast{font-size:11px;bottom:42px;padding:10px 12px;width:max-content}.export-option{padding:16px 10px;gap:12px}.export-option p{font-size:10px}.share-input .button{padding:0 10px}.share-preview strong{font-size:12px}.map-message{font-size:11px;max-width:90%;white-space:normal;line-height:1.8}.app-shell{min-height:520px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.brand h1{margin:0;font-weight:inherit}.site-links{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:10px;line-height:1.7}.site-links a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}.site-links a:hover{color:var(--lime)}.language-switch{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line-strong);border-radius:5px;flex-shrink:0}.language-switch button{min-width:29px;min-height:28px;padding:4px 6px;font:600 10px Segoe UI,sans-serif;border-radius:3px;color:var(--muted)}.language-switch button:hover{background:var(--hover);color:var(--text)}.language-switch button[aria-pressed=true]{background:var(--lime-dim);color:var(--lime)}@media(max-width:760px){.app-header{gap:12px;padding:0 12px}.main-nav{gap:0}.main-nav>button:first-child{display:none}.header-end{gap:5px}.language-switch{padding:2px}.language-switch button{min-width:27px;padding:4px}.header-end>.icon-button{width:28px;min-width:28px}.brand>small{letter-spacing:1px}}@media(max-width:380px){.brand{gap:6px}.brand>:last-child{font-size:22px}.brand-symbol{width:24px}.main-nav button{font-size:10px}.app-header{gap:8px}.header-end{gap:2px}}.board-svg:focus-visible{outline:2px solid var(--lime);outline-offset:-3px}.canvas-actions-button{position:absolute;z-index:2;left:24px;top:48px;display:flex;align-items:center;gap:6px;min-height:32px;padding:0 9px;background:#191d20eb;border:1px solid var(--line-strong);border-radius:5px;color:var(--secondary);font-size:10px}.canvas-actions-button:hover,.canvas-actions-button[aria-expanded=true]{background:var(--raised);color:var(--lime);border-color:#dcf57b55}.board-menu{z-index:100;width:230px;max-width:calc(100vw - 24px);max-height:var(--radix-context-menu-content-available-height, calc(100dvh - 24px) );overflow-y:auto;overscroll-behavior:contain;padding:4px;border:1px solid var(--line-strong);border-radius:7px;background:var(--raised);box-shadow:0 8px 24px #0005;color:var(--text);outline:none;user-select:none}.board-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:264px;min-height:36px;padding:8px;color:var(--secondary);font-size:10px;line-height:1.4}.board-menu-heading>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-menu-heading>small{flex-shrink:0;color:var(--faint);font:600 10px Barlow Condensed,sans-serif}.board-menu-item{position:relative;display:flex;align-items:center;gap:8px;min-height:36px;padding:7px 8px;border-radius:4px;outline:none;cursor:default;font-size:11px;line-height:1.4;white-space:nowrap}.board-menu-item>svg{color:var(--muted)}.board-menu-item[data-highlighted]{background:var(--lime-dim);color:var(--lime)}.board-menu-item[data-highlighted]>svg{color:var(--lime)}.board-menu-item[data-disabled]{color:var(--faint);opacity:.55;pointer-events:none}.board-menu-item.destructive,.board-menu-item.destructive>svg{color:var(--danger)}.board-menu-item.destructive[data-highlighted]{background:#ff947614}.board-menu-shortcut{margin-left:auto;padding-left:16px;color:var(--muted);font-size:9px}.board-menu-arrow{margin-left:auto;display:flex;align-items:center;color:var(--lime)}.board-menu-separator{height:1px;margin:4px;background:var(--line-strong)}.board-menu-colors{width:160px}.board-menu-swatch{width:12px;height:12px;border-radius:50%;margin:2px;box-shadow:inset 0 0 0 1px #ffffff20;flex-shrink:0}@media(pointer:coarse){.board-menu-item{min-height:40px}.canvas-actions-button{min-height:40px;padding:0 12px}}@media(max-width:760px){.canvas-actions-button{left:16px;top:44px}.canvas-hint{line-height:1.6}.board-menu-heading{max-width:230px}}@media(pointer:fine){.tool-select .board-svg,.tool-operator .board-svg,.tool-gadget .board-svg,.tool-eraser .board-svg{cursor:url(/cursors/sledge-hammer.svg) 6 6,default}.tool-select .board-svg:active,.tool-operator .board-svg:active,.tool-gadget .board-svg:active,.tool-eraser .board-svg:active{cursor:url(/cursors/sledge-hammer-active.svg) 6 6,default}}
