:root{--primary:#0052cc;--primary-hover:#0041a3;--text:#172b4d;--secondary:#42526e;--muted:#6b7f99;--border:#dfe1e6;--surface:#f4f5f7;--sidebar:320px;--nav:60px}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px;color:var(--secondary);background:var(--surface);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:#fff;border:1px solid var(--border);border-radius:3px;transition:background .15s,border-color .15s,color .15s}button:hover{background:#f4f5f7;border-color:#b9c2d0}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--primary);outline-offset:3px}input,select{min-width:0;color:var(--secondary);border:1px solid var(--border);border-radius:3px;background:#fff;padding:8px;outline:none}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 2px #0052cc18}input[type=range],input[type=color],input[type=checkbox]{box-shadow:none}svg{width:18px;height:18px;flex-shrink:0;vertical-align:middle}button[data-icon]{display:inline-flex;align-items:center;justify-content:center;gap:8px}[hidden]{display:none!important}h2,h3,p{margin:0}a{text-decoration:none;color:inherit}.app-nav{height:var(--nav);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#fff;border-bottom:1px solid var(--border);position:relative;z-index:40}.brand{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600;color:var(--text);white-space:nowrap}.brand-mark{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;width:27px;height:27px;padding:3px;transform:rotate(-8deg)}.brand-mark i{background:var(--primary);border-radius:2px}.brand-mark i:nth-child(2){background:#80b5ff}.brand-mark i:nth-child(3){background:#b3d4ff}.nav-links{display:flex;align-items:center;gap:28px}.nav-links>button:not(.toolbox){border:0;padding:5px 0;background:none;font-size:14px}.nav-links>button:hover{color:var(--primary)}.app-nav .toolbox{background:var(--primary);color:white;border:0;padding:7px 12px;font-weight:600}.app-nav .toolbox:hover{background:var(--primary-hover)}.local-badge{font-size:12px;color:#6b7f99;display:flex;align-items:center;gap:6px}.local-badge>span{height:6px;width:6px;border-radius:50%;background:#36b37e}.app-shell{height:calc(100dvh - var(--nav));display:flex;overflow:hidden;position:relative}.sidebar{width:var(--sidebar);flex-shrink:0;background:#fff;position:relative;transition:margin .25s;min-height:0}.left-sidebar{border-right:1px solid var(--border)}.right-sidebar{border-left:1px solid var(--border)}.sidebar-scroll{height:100%;overflow:auto;padding:24px;scrollbar-width:thin;scrollbar-color:#dfe1e6 transparent}.section-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:13px;border-bottom:1px solid var(--border);margin-bottom:16px}.section-heading h2{font-size:14px;letter-spacing:.7px;font-weight:600;color:var(--text)}.total-count{font-size:11px;color:var(--muted);padding:2px 6px;background:#f4f5f7;border-radius:3px}.template-search{display:flex;align-items:center;gap:7px;height:35px;padding:0 9px;border:1px solid var(--border);border-radius:4px;margin-bottom:14px}.template-search svg{width:15px;height:15px;color:#8998ac}.template-search input{width:100%;border:none;padding:0;font-size:12px;box-shadow:none}.template-search kbd{font-size:11px;border:1px solid var(--border);border-radius:3px;padding:0 4px;color:#97a0af}.category-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.category-tabs button{font-size:12px;border-color:transparent;background:#f4f5f7;padding:8px 2px;white-space:nowrap}.category-tabs button.active{background:#e9f2ff;color:var(--primary);font-weight:600;border-color:#b3d4ff}.count-filter{display:flex;gap:5px;padding:15px 0 4px;align-items:center}.count-filter button{width:26px;height:26px;font-size:11px;border-color:transparent;color:var(--muted);background:none;padding:0}.count-filter button:first-child{width:34px}.count-filter button.active{color:var(--primary);background:#e9f2ff}.layout-group-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 0 12px;font-size:13px;font-weight:600}.layout-group-heading span{font-size:10px;font-weight:400;color:#8998ac}.template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.template-card{position:relative;min-width:0}.template-button{display:block;width:100%;padding:4px;border:1px solid transparent;background:#fafbfc;border-radius:3px;aspect-ratio:1}.template-button:hover{border-color:#c1c7d0}.template-button.active{border-color:var(--primary);background:#f4f8ff}.thumbnail{width:100%;height:100%;position:relative}.thumbnail-cell{position:absolute;background:#b3d4ff;border-radius:1px}.active .thumbnail-cell{background:var(--primary)}.favorite-button{position:absolute;top:3px;right:3px;border:0;border-radius:3px;width:21px;height:21px;background:#fff;box-shadow:0 1px 4px #172b4d18;opacity:0;display:flex;align-items:center;justify-content:center;padding:3px;color:#8998ac}.favorite-button svg{width:13px;height:13px}.template-card:hover .favorite-button,.favorite-button:focus-visible,.favorite-button.is-favorite{opacity:1}.favorite-button.is-favorite{color:#ffab00}.favorite-button.is-favorite svg{fill:#ffcc56}.template-button:after{content:attr(data-name);position:absolute;left:50%;transform:translateX(-50%);bottom:7px;background:#172b4ddd;color:white;border-radius:3px;font-size:10px;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis;padding:3px 6px;opacity:0;pointer-events:none;z-index:3}.template-button:hover:after{opacity:1}.custom-template{margin-top:22px;padding:11px 6px;width:100%;border-style:dashed;color:var(--muted);font-size:12px}.sidebar-note{display:flex;justify-content:center;align-items:center;gap:6px;font-size:10px;color:#97a0af;margin:22px -10px 0}.sidebar-note svg{width:13px;height:13px}.template-empty{text-align:center;padding:35px 0;color:var(--muted);font-size:12px}.template-empty>span svg{width:28px;height:28px;margin-bottom:12px}.template-empty p{margin-bottom:10px}.text-button{border:none;color:var(--primary);background:none;font-size:12px}.workspace{min-width:0;flex:1;display:flex;flex-direction:column;align-items:center;padding:32px;position:relative;overflow:hidden}.canvas-toolbar{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:16px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:12px;padding:8px;box-shadow:0 2px 4px #0000000d;flex-shrink:0;max-width:100%;width:max-content}.toolbar-group{display:flex;align-items:center;gap:12px}.canvas-toolbar button{border-color:transparent;display:flex;align-items:center;gap:8px;padding:8px 14px;font-weight:500;font-size:14px;background:transparent;white-space:nowrap}.canvas-toolbar button:hover{background:#e9edf2}.canvas-toolbar .icon-only{padding:8px}.canvas-toolbar .secondary{border-color:var(--border);background:#fafbfc}.canvas-toolbar .danger{background:#fef2f2;color:#dc2626;border-color:#fecaca}.canvas-toolbar .danger:hover{background:#fee2e2}.canvas-viewport{flex:1;width:100%;min-height:0;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:2px 3px 10px;scrollbar-width:thin}.canvas-frame{position:relative;flex-shrink:0;background:#fff;border-radius:6px;box-shadow:0 4px 8px -2px #091e4240,0 0 1px #091e424f;overflow:hidden;align-self:flex-start;touch-action:none}.canvas-frame>canvas{display:block;width:100%;height:100%}.hit-layer{position:absolute;inset:0}.cell-hit{position:absolute;cursor:pointer;border:0;background:none!important;border-radius:var(--cell-radius,3px);padding:0;outline:none;touch-action:none}.cell-hit.selected{outline:2px solid #2684ff;outline-offset:-2px}.cell-hit.dragging{opacity:.5;background:#0052cc33!important}.cell-hit.drag-over{box-shadow:inset 0 0 0 3px #2684ff}.cell-hit.has-image{cursor:grab}.cell-actions{position:absolute;top:5px;right:5px;display:flex;gap:3px;opacity:0;z-index:5}.cell-hit:hover .cell-actions,.cell-hit.selected .cell-actions{opacity:1}.cell-actions button{display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:#0009;color:white;width:25px;height:25px;padding:5px}.cell-actions button svg{width:14px;height:14px}.cell-actions button:hover{background:var(--primary)}.cell-actions button:last-child:hover{background:#de350b}.annotation-hit{position:absolute;border:2px dashed transparent;cursor:move;touch-action:none;transform-origin:center}.annotation-hit:hover{border-color:#2684ff88}.annotation-hit.selected{border-color:#2684ff;z-index:10}.annotation-hit .resize-handle{display:none;position:absolute;right:-5px;bottom:-5px;width:10px;height:10px;border:2px solid #2684ff;background:#fff;border-radius:50%;cursor:nwse-resize}.annotation-hit.selected .resize-handle{display:block}.canvas-meta{display:flex;align-items:center;gap:8px;margin-top:14px;width:100%;font-size:11px;color:#8998ac;flex-shrink:0}.canvas-meta button{border:0;background:none;padding:3px;font-size:11px;color:#6b7f99;gap:3px}.canvas-meta button:hover{color:var(--primary)}.canvas-meta svg{width:13px;height:13px}.meta-divider{height:10px;width:1px;background:#c1c7d0}.meta-spacer{flex:1}.canvas-hint{font-size:11px;line-height:1.7;color:#97a0af;margin-top:20px;text-align:center;flex-shrink:0}.canvas-hint svg{height:13px;width:13px;margin-right:3px}.canvas-hint kbd{font:inherit;background:#e9edf2;border:1px solid #dfe1e6;border-radius:3px;padding:0 4px}.selection-bar{display:flex;align-items:center;justify-content:center;gap:7px;position:absolute;bottom:82px;left:50%;transform:translateX(-50%);z-index:15;border:1px solid var(--border);background:#fff;padding:8px 10px;border-radius:6px;box-shadow:0 4px 20px #172b4d20;max-width:calc(100% - 40px);flex-wrap:wrap}.selection-bar button{padding:5px 7px;display:flex;align-items:center;gap:4px;font-size:11px}.selection-bar input[type=color]{height:28px;width:30px;padding:2px}.selection-bar input[type=number]{width:52px;padding:5px;font-size:11px}.selection-bar svg{width:14px;height:14px}.selection-bar label{font-size:10px;color:var(--muted)}.collapse-btn{position:absolute;top:50%;transform:translateY(-50%);height:48px;width:24px;z-index:20;padding:0;color:var(--muted);background:#fff;border:1px solid var(--border)}.collapse-btn svg{height:20px;width:20px}.collapse-left{left:calc(var(--sidebar) - 2px);border-radius:0 6px 6px 0}.collapse-right{right:calc(var(--sidebar) - 2px);border-radius:6px 0 0 6px}.collapse-btn:hover{background:var(--primary);border-color:var(--primary);color:#fff}.left-collapsed .left-sidebar{margin-left:calc(-1 * var(--sidebar))}.right-collapsed .right-sidebar{margin-right:calc(-1 * var(--sidebar))}.left-collapsed .collapse-left{left:-2px}.right-collapsed .collapse-right{right:-2px}.left-collapsed .collapse-left svg,.right-collapsed .collapse-right svg{transform:rotate(180deg)}.right-sidebar .sidebar-scroll{position:relative}.reset-settings{position:absolute;right:12px;top:11px;border:0;background:none;padding:4px;color:#8998ac}.reset-settings svg{width:15px;height:15px}.settings-section{margin:0 0 25px}.settings-section summary{cursor:pointer;list-style:none;font-size:14px;font-weight:600;letter-spacing:.6px;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:13px;display:flex;align-items:center;gap:8px}.settings-section summary::-webkit-details-marker{display:none}.settings-section summary:before{content:"";width:0;height:0;border-left:5px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s}.settings-section[open] summary:before{transform:rotate(90deg)}.settings-body{padding-top:16px}.ratio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ratio-grid button{padding:8px 3px;font-size:13px;font-weight:500}.active{background:#e9f2ff;color:var(--primary);border-color:var(--primary);font-weight:600}.print-divider{display:flex;align-items:center;gap:8px;color:var(--secondary);font-size:10px;font-weight:600;margin:12px 0 8px}.print-divider:before,.print-divider:after{content:"";flex:1;border-top:1px dashed var(--border)}.print-grid button{display:flex;flex-direction:column;align-items:center;line-height:1.25;padding:5px 3px;font-size:12px}.print-grid small{font-size:9px;color:var(--muted);font-weight:400}.field-label{display:flex;justify-content:space-between;margin:18px 0 9px;font-size:13px;font-weight:500}.field-label:first-child{margin-top:0}.field-label>span{color:var(--muted);font-size:11px}.custom-ratio{display:flex;align-items:center;gap:8px}.custom-ratio input{width:100%;text-align:center;font-size:13px}.custom-ratio span{font-weight:600;color:var(--muted)}.custom-ratio button{height:34px;min-width:34px;background:#fafbfc}.border-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.border-grid input{width:100%;text-align:center;font-size:12px;padding:8px 2px}.range-label{display:flex;justify-content:space-between;margin:22px 0 12px;font-size:13px}.range-label span{color:var(--muted);font-size:12px}input[type=range]{appearance:none;width:100%;height:4px;padding:0;border:0;background:#dfe1e6;border-radius:2px;display:block;cursor:pointer;margin:0 0 5px}input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border:2px solid white;border-radius:50%;background:var(--primary);box-shadow:0 1px 2px #091e4226}input[type=range]::-moz-range-thumb{width:12px;height:12px;border:2px solid white;border-radius:50%;background:var(--primary)}.color-field{height:36px;border:1px solid var(--border);border-radius:3px;display:flex;align-items:center;padding:4px;gap:10px}.color-field input{appearance:none;height:26px;width:45px;padding:0;border:0;cursor:pointer}.color-field span{font-size:12px;color:var(--muted)}.swatches{display:flex;gap:7px;margin-top:9px}.swatches button{width:21px;height:21px;border:1px solid #dfe1e6;border-radius:50%;padding:0}.two-buttons,.three-buttons{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}.three-buttons{grid-template-columns:repeat(3,1fr)}.two-buttons button,.three-buttons button{font-size:12px;padding:8px 2px;white-space:nowrap}.two-buttons svg{width:13px;height:13px}.secondary{background:#fafbfc}.switch-row{display:flex;align-items:center;justify-content:space-between;font-size:13px}.switch-row input{appearance:none;width:32px;height:18px;border:0;background:#c1c7d0;border-radius:20px;position:relative;cursor:pointer;padding:0}.switch-row input:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;left:2px;top:2px;background:#fff;transition:left .15s}.switch-row input:checked{background:var(--primary)}.switch-row input:checked:after{left:16px}.full-input{width:100%;font-size:12px}.quality-buttons button{font-size:11px;padding:9px 0}#export-size{width:100%;font-size:12px;padding:8px}.export-dimensions{font-size:11px;color:#8998ac;margin:8px 0 17px;text-align:right}.copy-button,.download-button{width:100%;padding:10px;margin-bottom:12px;font-size:13px}.download-button{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.download-button:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.privacy-note{border-top:1px solid var(--border);padding-top:18px;display:flex;align-items:flex-start;gap:8px;color:#97a0af}.privacy-note svg{width:16px;height:16px;margin-top:1px}.privacy-note p{font-size:11px;font-weight:500}.privacy-note span{font-size:10px;display:block;line-height:1.8;margin-top:5px;font-weight:400}.mobile-btn{display:none;border:0;padding:5px;background:transparent}.toast{position:fixed;z-index:100;bottom:24px;left:50%;transform:translate(-50%,15px);background:#172b4df2;color:white;font-size:13px;padding:11px 18px;border-radius:6px;box-shadow:0 4px 16px #172b4d30;opacity:0;pointer-events:none;transition:.2s;max-width:90vw;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid var(--border);border-radius:10px;padding:25px;max-width:calc(100vw - 32px);width:480px;color:var(--secondary);box-shadow:0 20px 70px #172b4d30}dialog::backdrop{background:#091e4270;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:20px}.dialog-heading h2{font-size:17px;color:var(--text)}.dialog-heading button{border:none;padding:4px;background:transparent}#dialog-body{font-size:13px;line-height:1.9}#dialog-body p{margin-bottom:12px}#dialog-body ul{padding-left:20px}#dialog-body kbd{border:1px solid var(--border);border-radius:3px;padding:2px 5px;font-size:11px;background:#f4f5f7}.dialog-form{display:flex;gap:10px;align-items:center}.dialog-form input{width:100%}.dialog-primary{padding:10px 18px;color:#fff;background:var(--primary);border-color:var(--primary);margin-top:20px;width:100%;font-weight:500}.dialog-primary:hover{background:var(--primary-hover)}.dialog-textarea{width:100%;height:100px;border:1px solid var(--border);border-radius:4px;padding:10px;font:inherit;color:inherit;resize:vertical}.drop-overlay{position:fixed;inset:0;z-index:80;background:#fffffff0;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:var(--primary);pointer-events:none}.drop-overlay svg{width:70px;height:70px;stroke-width:1.2}.drop-overlay h2{font-size:23px}.drop-overlay p{font-size:13px;color:var(--muted)}
.app-nav .mobile-btn{display:none}
.cell-hit.is-panning{cursor:grabbing}.cell-actions [data-cell-action="swap"]{cursor:grab;touch-action:none}.selection-bar .photo-zoom-slider{width:85px;flex-shrink:0;margin:0 2px}.selection-bar #photo-zoom-value{font-size:11px;min-width:34px;text-align:center}.cell-hit.dragging{outline:2px dashed #2684ff;outline-offset:-2px}.cell-hit .cell-actions{touch-action:none}
.annotation-hit .resize-handle{right:-12px;bottom:-12px;width:24px;height:24px;background:transparent;border:0;z-index:12;touch-action:none}.annotation-hit .resize-handle:after{content:"";position:absolute;left:7px;top:7px;width:10px;height:10px;background:#fff;border:2px solid #2684ff;border-radius:50%}.annotation-hit .resize-handle:hover:after,.annotation-hit.is-resizing .resize-handle:after{background:#2684ff;box-shadow:0 0 0 3px #2684ff25}.annotation-hit.is-resizing{z-index:20}.border-label{align-items:center;gap:5px;white-space:nowrap;font-size:12px}.border-label button{padding:0;border:0;background:transparent;color:var(--primary);font-size:10px}.border-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:9px}.border-presets button{font-size:11px;padding:6px 0;background:#fafbfc}.border-presets button.active{background:#e9f2ff;border-color:var(--primary);color:var(--primary)}.border-default-hint{font-size:10px;color:#8998ac;margin-top:7px}
.workspace-modes{position:sticky;top:-24px;z-index:10;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:3px 0 16px;margin:-3px 0 18px;background:#fff;border-bottom:1px solid #edf0f4}
.workspace-mode{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;padding:10px 5px;border-color:transparent;background:#f4f5f7;color:var(--secondary);font-size:13px;font-weight:500;white-space:nowrap}
.workspace-mode svg{width:16px;height:16px}
.workspace-mode:hover{background:#e9f2ff;color:var(--primary)}
.workspace-mode.active{background:#e9f2ff;border-color:#b3d4ff;color:var(--primary);font-weight:600}
.mode-sidebar-placeholder{padding:30px 15px;text-align:center;color:var(--muted)}
.mode-sidebar-icon{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 14px;border-radius:12px;background:#e9f2ff;color:var(--primary)}
.mode-sidebar-placeholder h2{color:var(--text);font-size:14px;margin-bottom:8px}
.mode-sidebar-placeholder p{font-size:12px;line-height:1.8}
.mode-sidebar-placeholder>span{display:inline-block;margin-top:14px;padding:4px 9px;border-radius:20px;background:#f4f5f7;font-size:11px}
.mode-placeholder{width:100%;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:24px}
.mode-placeholder-card{max-width:560px;width:100%;padding:52px 42px;text-align:center;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 8px 28px #172b4d0b}
.mode-placeholder-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 22px;color:var(--primary);background:#e9f2ff;border-radius:18px}
.mode-placeholder-icon svg{width:30px;height:30px}
.mode-placeholder-label{font-size:12px;color:var(--muted)}
.mode-placeholder-card h1{font-size:23px;color:var(--text);margin:9px 0 12px}
.mode-placeholder-card p{max-width:430px;margin:0 auto;color:var(--muted);font-size:14px;line-height:1.9}
.mode-placeholder-features{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:25px 0}
.mode-placeholder-features span{padding:7px 12px;border:1px solid #edf0f4;border-radius:20px;background:#fafbfc;color:var(--secondary);font-size:12px}
.mode-coming-soon{display:inline-flex;align-items:center;padding:9px 18px;border-radius:5px;background:var(--primary);color:#fff;font-size:13px;font-weight:600}
#app-shell[data-mode="stitch"] .workspace>:not(#mode-placeholder),#app-shell[data-mode="free"] .workspace>:not(#mode-placeholder){display:none}
#app-shell[data-mode="stitch"] .right-sidebar,#app-shell[data-mode="free"] .right-sidebar,#app-shell[data-mode="stitch"] .collapse-btn,#app-shell[data-mode="free"] .collapse-btn{display:none}
@media(max-width:560px){.workspace-modes{top:-24px;padding-bottom:13px;margin-bottom:15px}.workspace-mode{gap:5px;font-size:12px;padding:9px 3px}.mode-placeholder{padding:16px}.mode-placeholder-card{padding:37px 20px}.mode-placeholder-card h1{font-size:20px}.mode-placeholder-card p{font-size:13px}}
:root{--primary:#6256c9;--primary-hover:#5144b6;--text:#27283b;--secondary:#4b4c61;--muted:#77798e;--border:#e3e3ed;--surface:#f5f5fa;--primary-soft:#f0efff;--sidebar:330px}
body{font-size:14px;line-height:1.55;color:var(--secondary);background:var(--surface);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC","Microsoft YaHei",sans-serif}
button,input,select{font-size:13px;border-radius:6px}button:hover{background:#f5f4ff;border-color:#c8c4f1}button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:var(--primary)}
.app-nav{background:#fff;border-color:#ebebf1;padding-inline:25px}.brand{color:var(--text);font-size:19px;letter-spacing:-.25px}.brand-mark i{background:var(--primary)}.brand-mark i:nth-child(2){background:#8e85e2}.brand-mark i:nth-child(3){background:#c6c1f3}
.nav-links{gap:24px}.nav-links>button:not(.toolbox){font-size:13px;color:var(--secondary)}.app-nav .toolbox{border-radius:7px;padding:9px 14px;background:var(--primary)}
.locale-picker{height:36px;display:flex;align-items:center;gap:6px;padding:0 9px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--muted);flex-shrink:0}.locale-picker svg{width:16px;height:16px}.locale-picker select{border:0;background:transparent;box-shadow:none;padding:3px 0;color:var(--secondary);font-size:12px;cursor:pointer}
.sidebar-scroll{padding:24px 22px}.section-heading{padding-bottom:15px;margin-bottom:18px}.section-heading h2,.settings-section summary{font-size:14px;letter-spacing:.1px}.total-count{font-size:11px;background:#f1f1f7;color:var(--muted)}
.template-search{height:40px;border-radius:7px;margin-bottom:16px;padding-inline:11px}.template-search input{font-size:13px}.category-tabs{gap:8px}.category-tabs button{min-height:37px;padding:8px 6px;border-radius:6px;font-size:12px;white-space:normal;line-height:1.35}.category-tabs button.active{background:var(--primary-soft);border-color:#d8d4fa;color:var(--primary)}
.count-filter{gap:6px;padding:16px 0 6px}.count-filter button{min-width:30px;height:30px;border-radius:6px;font-size:12px}.count-filter button:first-child{width:auto;min-width:42px}.count-filter button.active{background:var(--primary-soft);color:var(--primary)}
.layout-group-heading{margin:24px 0 13px;font-size:13px;line-height:1.45}.layout-group-heading span{font-size:11px;color:var(--muted)}.template-grid{gap:13px}.template-button{border-radius:7px;background:#f6f6fa}.template-button.active{border-color:var(--primary);background:var(--primary-soft)}.thumbnail-cell{background:#c3c0e9}.active .thumbnail-cell{background:var(--primary)}.favorite-button{border-radius:6px}.custom-template{margin-top:24px;padding:12px 9px;border-radius:7px;font-size:13px;color:var(--primary);background:#fafaff}.sidebar-note{font-size:11px;margin-top:24px}
.workspace{padding:30px 34px}.canvas-toolbar{gap:12px;margin-bottom:19px;background:#fff;border-color:#ececf3;border-radius:11px;padding:9px;box-shadow:0 3px 12px #2928580a}.toolbar-group{gap:7px}.canvas-toolbar button{min-height:36px;padding:8px 12px;border-radius:7px;font-size:13px}.canvas-toolbar button:hover{background:var(--primary-soft);color:var(--primary)}.canvas-toolbar .secondary{background:#f8f8fc;border-color:#e8e8f0}.canvas-toolbar .danger{color:#b44954;background:#fff6f6;border-color:#f4e2e3}.canvas-toolbar .danger:hover{background:#fff0f1;color:#a83240}.canvas-frame{border-radius:9px;box-shadow:0 8px 24px #29285814,0 0 1px #29285820}.canvas-meta{font-size:12px;color:var(--muted);gap:10px}.canvas-meta button{font-size:12px;color:var(--secondary);border-radius:5px}.canvas-hint{font-size:12px;line-height:1.7;color:var(--muted);margin-top:17px}
.sidebar.right-sidebar{background:#fff}.settings-section{margin-bottom:27px}.settings-section summary{padding-bottom:14px;border-color:#ededf2}.settings-body{padding-top:18px}.ratio-grid{gap:8px}.ratio-grid button{min-height:36px;padding:8px 5px;border-radius:6px;font-size:13px}.ratio-grid button.active,.active{background:var(--primary-soft);border-color:#d8d4fa;color:var(--primary)}.print-divider{font-size:11px;margin:15px 0 10px}.field-label{font-size:13px;margin:20px 0 10px;line-height:1.45}.field-label>span{font-size:12px}input,select{border-color:#e0e0e9;border-radius:6px;padding:9px 10px}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6256c91a}.custom-ratio{gap:9px}.custom-ratio button{height:38px;min-width:38px}.border-grid{gap:8px}.border-grid input{text-align:center;padding:9px 3px;font-size:13px}.border-label{white-space:normal;font-size:12px}.border-label button{font-size:11px;white-space:nowrap}.border-presets{gap:7px;margin-top:11px}.border-presets button{min-height:32px;border-radius:5px;font-size:12px}.border-default-hint{font-size:11px}.range-label{font-size:13px;margin:24px 0 13px}.range-label span{font-size:12px}.color-field{height:40px;border-color:#e5e5ed;border-radius:6px}.swatches{gap:9px;margin-top:11px}.swatches button{width:23px;height:23px}.two-buttons,.three-buttons{gap:9px}.two-buttons button,.three-buttons button{min-height:36px;padding:9px 7px;border-radius:6px;font-size:12px;white-space:normal;line-height:1.35}.switch-row{font-size:13px;line-height:1.45}.quality-buttons button{font-size:12px;padding:10px 5px}#export-size{min-height:39px;font-size:12px;padding:9px}.export-dimensions{font-size:12px;color:var(--muted);margin:10px 0 18px}.copy-button,.download-button{min-height:41px;padding:11px;border-radius:7px;font-size:13px}.download-button{background:var(--primary);border-color:var(--primary)}.download-button:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.privacy-note{border-color:#ededf2;color:var(--muted);line-height:1.6}.privacy-note p{font-size:12px}.privacy-note span{font-size:11px;line-height:1.7}
.selection-bar{gap:8px;border-color:#e6e5ef;border-radius:9px;box-shadow:0 8px 24px #29285818}.selection-bar button{min-height:32px;border-radius:5px;font-size:12px}.toast{border-radius:9px;background:#282940f5;box-shadow:0 8px 24px #24243f2b}
.workspace-mode{border-radius:7px}.workspace-mode.active{background:var(--primary-soft);border-color:#d8d4fa;color:var(--primary)}.mode-sidebar-icon,.mode-placeholder-icon{background:var(--primary-soft);color:var(--primary)}.mode-coming-soon{background:var(--primary);border-radius:7px}.mode-placeholder-card{border-color:#e8e7f0;box-shadow:0 12px 32px #2928580c}
html[lang="en-US"] .category-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}html[lang="en-US"] .category-tabs button{font-size:12px;min-height:39px}html[lang="en-US"] .count-filter{flex-wrap:wrap}html[lang="en-US"] .print-grid{grid-template-columns:repeat(2,minmax(0,1fr))}html[lang="en-US"] .quality-buttons{grid-template-columns:1fr}html[lang="en-US"] .field-label{gap:8px}
@media(max-width:1024px){.sidebar-scroll{padding:22px}.app-nav{padding-inline:15px}.workspace{padding:23px}.locale-picker{height:34px}.nav-links{gap:16px}}
@media(max-width:560px){.app-nav{padding-inline:11px;gap:7px}.brand{font-size:14px;gap:4px}.brand-mark{width:23px;height:23px}.locale-picker{gap:4px;padding-inline:6px;height:31px}.locale-picker select{font-size:11px}.workspace{padding:18px 14px}.canvas-toolbar{gap:6px}.canvas-toolbar button{padding:8px 9px}.sidebar-scroll{padding:20px}.mode-placeholder-card{border-radius:12px}}
.layout-transform{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding-top:15px}.layout-transform button{min-height:35px;border:1px solid #eeeeF4;border-radius:6px;padding:7px 5px;font-size:12px;white-space:normal;line-height:1.35}
.annotation-rotate-handle{display:none;position:absolute;left:50%;top:-37px;transform:translateX(-50%);width:26px;height:26px;padding:5px;border:2px solid #fff;border-radius:50%;background:#2684ff;color:#fff;box-shadow:0 1px 5px #172b4d30;cursor:grab;touch-action:none;z-index:12}.annotation-rotate-handle svg{height:13px;width:13px;pointer-events:none}.annotation-rotate-handle:before{content:"";position:absolute;height:12px;width:1px;background:#2684ff;top:24px;left:50%;pointer-events:none}.annotation-hit.selected .annotation-rotate-handle{display:flex;align-items:center;justify-content:center}.annotation-rotate-handle:hover{background:var(--primary);border-color:#fff}.annotation-rotate-handle:active,.is-rotating .annotation-rotate-handle{cursor:grabbing;background:var(--primary)}.annotation-rotation-angle{display:none;position:absolute;left:50%;top:-65px;transform:translateX(-50%);padding:2px 7px;border-radius:4px;background:#172b4d;color:#fff;font-size:11px;line-height:1.6;white-space:nowrap;pointer-events:none}.is-rotating .annotation-rotation-angle{display:block}.annotation-hit.is-rotating{z-index:20}
.grid-picker-dialog{width:600px;padding:24px}.grid-picker-intro{color:var(--muted);font-size:13px}.grid-picker-content{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:24px;align-items:start;margin-top:20px}.grid-picker-matrix{display:grid;grid-template-columns:16px minmax(0,1fr);grid-template-rows:18px minmax(0,1fr);gap:6px}.grid-picker-column-labels{grid-column:2;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px}.grid-picker-row-labels{grid-row:2;display:grid;grid-template-rows:repeat(8,minmax(0,1fr));gap:5px}.grid-picker-column-labels span,.grid-picker-row-labels span{display:flex;align-items:center;justify-content:center;font-size:10px;color:#8998ac;line-height:1}.grid-picker{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;aspect-ratio:1}.grid-picker-cell{display:block;width:100%;min-width:0;aspect-ratio:1;padding:0;background:#f4f5f7;border:1px solid #dfe1e6;border-radius:3px;transition:background .08s,border-color .08s;touch-action:manipulation}.grid-picker-cell.in-range{background:#b3d4ff;border-color:#80b5ff}.grid-picker-cell.range-end{background:var(--primary);border-color:var(--primary)}.grid-picker-cell:hover{background:var(--primary);border-color:var(--primary)}.grid-picker-cell:focus-visible{outline:2px solid var(--primary);outline-offset:2px;position:relative;z-index:1}.grid-picker-preview-panel{padding-top:24px;text-align:center;min-width:0}.grid-picker-preview-title{color:var(--muted);font-size:11px;text-align:left;margin-bottom:10px}.grid-picker-preview-stage{aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:10px;border:1px solid #e9edf2;background:#f4f5f7;border-radius:6px}.grid-picker-preview-stage canvas{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#fff;box-shadow:0 1px 4px #091e4226;display:block;border-radius:2px}.grid-picker-dimensions{font-size:16px;font-weight:600;color:var(--text);margin-top:15px}.grid-picker-count{font-size:12px;color:var(--muted);margin-top:3px}.grid-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #edf0f4;padding-top:16px;margin-top:23px;color:var(--muted);font-size:11px}.grid-picker-footer>span:first-child{display:flex;align-items:center;gap:6px}.grid-picker-footer svg{height:13px;width:13px}
@media(max-width:560px){.grid-picker-dialog{padding:20px}.grid-picker-content{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:16px}.grid-picker-matrix{max-width:300px;width:100%;margin:auto}.grid-picker-preview-panel{padding-top:0;display:grid;grid-template-columns:84px 1fr;text-align:left;column-gap:16px;align-items:center}.grid-picker-preview-title{grid-column:2;margin:0;align-self:end}.grid-picker-preview-stage{grid-column:1;grid-row:1 / span 3}.grid-picker-dimensions{grid-column:2;margin-top:2px;font-size:17px}.grid-picker-count{grid-column:2;margin:0;align-self:start}.grid-picker-footer{flex-wrap:wrap;row-gap:4px;margin-top:18px;padding-top:13px;font-size:10px}}
.thumbnail{display:grid;gap:3px;height:auto;aspect-ratio:1}.thumbnail-cell{position:static;min-width:0;min-height:0}
.count-filter{flex-wrap:wrap;gap:4px;padding-bottom:12px}.layout-transform{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;border-top:1px solid #edf0f4;padding-top:12px}.layout-transform button{font-size:10px;padding:7px 0;background:#fafbfc;border-color:transparent}.layout-transform button:hover{color:var(--primary);background:#e9f2ff}.grid-divider{position:absolute;z-index:6;touch-action:none;outline:none;background:transparent}.grid-divider.vertical{width:10px;transform:translateX(-50%);cursor:col-resize}.grid-divider.horizontal{height:10px;transform:translateY(-50%);cursor:row-resize}.grid-divider:after{content:"";position:absolute;inset:0;border-radius:2px;opacity:0;background:#2684ff55;transition:opacity .12s}.grid-divider:hover:after,.grid-divider:focus-visible:after,.resizing-layout .grid-divider:after{opacity:1}.grid-divider.vertical:before{content:"";position:absolute;height:22px;max-height:65%;width:3px;left:3.5px;top:50%;transform:translateY(-50%);border-radius:3px;background:#2684ff;opacity:0;z-index:1}.grid-divider.horizontal:before{content:"";position:absolute;width:22px;max-width:65%;height:3px;top:3.5px;left:50%;transform:translateX(-50%);border-radius:3px;background:#2684ff;opacity:0;z-index:1}.grid-divider:hover:before,.grid-divider:focus-visible:before{opacity:1}.resizing-layout .cell-hit{pointer-events:none}.resizing-layout{user-select:none}
@media(min-width:1600px){.canvas-toolbar{gap:30px}.workspace{padding:32px 48px}.canvas-hint{font-size:12px}}@media(max-width:1280px) and (min-width:1025px){:root{--sidebar:280px}.sidebar-scroll{padding:20px}.workspace{padding:24px}.canvas-toolbar{gap:6px;padding:7px}.toolbar-group{gap:5px}.canvas-toolbar button{padding:8px 7px;gap:5px;font-size:12px}.canvas-toolbar svg{width:16px;height:16px}.canvas-meta{font-size:10px;gap:5px}.canvas-hint{font-size:10px}.local-badge{display:none}}
@media(max-width:1024px){.app-nav{padding:0 16px}.brand{font-size:17px;gap:4px}.brand-mark{width:25px;height:25px}.nav-links{display:none}.mobile-btn{display:inline-flex}.sidebar{position:fixed;top:var(--nav);bottom:0;height:calc(100dvh - var(--nav));z-index:35;width:300px;max-width:88vw;box-shadow:0 4px 16px #091e4226;transition:transform .25s}.left-sidebar{left:0;transform:translateX(-105%)}.right-sidebar{right:0;transform:translateX(105%)}.sidebar.is-open{transform:translateX(0)}.sidebar-scroll{padding:24px}.collapse-btn{display:none!important}.left-collapsed .left-sidebar,.right-collapsed .right-sidebar{margin:0}.workspace{padding:24px;flex:1}.canvas-toolbar{width:auto}.canvas-meta{max-width:680px}.sidebar-overlay{position:fixed;inset:var(--nav) 0 0;background:#091e4260;z-index:30}.canvas-hint{margin-top:16px}.canvas-viewport{align-items:flex-start}.selection-bar{bottom:90px}.category-tabs button{font-size:12px}}
@media(max-width:1024px){.app-nav .mobile-btn{display:inline-flex}}
@media(max-width:1024px){.canvas-toolbar{gap:12px}.canvas-toolbar button{font-size:0;gap:0;padding:10px}.canvas-toolbar .icon-only{padding:10px}.canvas-toolbar svg{width:18px;height:18px}.toolbar-group{gap:8px}}
@media(max-width:560px){.workspace{padding:18px 14px}.brand{font-size:15px}.brand-mark{width:24px;height:24px}.canvas-toolbar{padding:7px;gap:15px;border-radius:9px;margin-bottom:20px}.toolbar-group{gap:6px}.canvas-toolbar button{padding:8px;gap:0;font-size:0}.canvas-toolbar svg{width:18px;height:18px}.canvas-toolbar .icon-only{padding:8px}.toolbar-group.right{gap:6px}.canvas-hint{font-size:10px;text-align:left;line-height:1.9;max-width:100%;margin-top:14px}.canvas-meta{gap:5px;margin-top:14px;font-size:10px;flex-wrap:wrap}.canvas-meta button{font-size:10px}.canvas-meta #layout-name{max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-bar{bottom:95px;gap:5px;padding:7px;max-width:calc(100% - 22px)}.selection-bar button{font-size:10px}.cell-actions{top:3px;right:3px;gap:2px}.cell-actions button{width:22px;height:22px;padding:4px}dialog{padding:20px}.canvas-viewport{padding-bottom:8px}}

/* Keep longer layout actions readable in the mobile and tablet side panel. */
@media(max-width:1024px){.layout-transform{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding-top:15px}.layout-transform button{min-height:35px;border:1px solid #eeeeF4;border-radius:6px;padding:7px 5px;font-size:12px;white-space:normal;line-height:1.35}}

/* Selectable palettes inspired by familiar editor themes. */
:root,:root[data-theme="day"]{--primary:#3978c5;--primary-hover:#2d66ab;--text:#25364b;--secondary:#465a70;--muted:#78899b;--border:#dfe6ee;--surface:#f3f6fa;--panel:#fff;--panel-soft:#f7f9fc;--primary-soft:#e9f1fb;--canvas-empty:#f0f4f8;--canvas-plus:#91a9c4;color-scheme:light}
:root[data-theme="eye"]{--primary:#557d58;--primary-hover:#436847;--text:#2b3b2d;--secondary:#4e5f50;--muted:#798777;--border:#dce4d6;--surface:#f0f3e9;--panel:#fbfcf6;--panel-soft:#f3f5ec;--primary-soft:#e5edde;--canvas-empty:#eff3e7;--canvas-plus:#8da888;color-scheme:light}
:root[data-theme="developer"]{--primary:#3794ff;--primary-hover:#2583eb;--text:#e4e4e4;--secondary:#cccccc;--muted:#9b9b9b;--border:#3c3c3c;--surface:#1e1e1e;--panel:#252526;--panel-soft:#2d2d30;--primary-soft:#263b52;--canvas-empty:#2d3035;--canvas-plus:#82b8f3;color-scheme:dark}
:root[data-theme="midnight"]{--primary:#91a9ff;--primary-hover:#a9baff;--text:#e7ecf5;--secondary:#c5cede;--muted:#9aa7ba;--border:#364153;--surface:#151a24;--panel:#1d2431;--panel-soft:#252d3b;--primary-soft:#2b3650;--canvas-empty:#222c3c;--canvas-plus:#90acff;color-scheme:dark}
body{color:var(--secondary);background:var(--surface)}
.app-nav,.sidebar,.selection-bar,dialog{background:var(--panel);color:var(--secondary);border-color:var(--border)}
.locale-picker,.theme-picker{height:36px;display:flex;align-items:center;gap:6px;padding:0 9px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--muted);flex-shrink:0}
.locale-picker svg,.theme-picker svg{width:16px;height:16px}
.locale-picker select,.theme-picker select{border:0;background:transparent;box-shadow:none;padding:3px 0;color:var(--secondary);font-size:12px;cursor:pointer;max-width:150px}
.theme-picker select{max-width:174px}
.app-nav .toolbox,.download-button,.dialog-primary{background:var(--primary);border-color:var(--primary)}
.template-search,.template-button,.ratio-grid button,.canvas-toolbar,.canvas-toolbar .secondary,.custom-ratio button,.border-presets button,.grid-picker-preview-stage,.mode-placeholder-card{background:var(--panel-soft);border-color:var(--border)}
.category-tabs button,.total-count,.canvas-hint kbd,.grid-picker-cell{background:var(--panel-soft)}
.category-tabs button.active,.active,.border-presets button.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.layout-transform{border-color:var(--border)}
.layout-transform button{background:var(--panel-soft);border-color:var(--border)}
.grid-picker-cell.in-range{background:var(--primary-soft);border-color:var(--primary)}
.grid-picker-preview-stage canvas{background:var(--panel)}
.app-nav{border-bottom-color:var(--border)}
.brand-mark i:nth-child(2){background:color-mix(in srgb,var(--primary) 68%,white)}.brand-mark i:nth-child(3){background:color-mix(in srgb,var(--primary) 38%,white)}
.template-search input,.locale-picker select,.theme-picker select{color:var(--secondary)}
button:hover{background:var(--panel-soft);border-color:var(--muted)}
.app-nav .toolbox:hover,.download-button:hover,.dialog-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.canvas-toolbar button:hover,.layout-transform button:hover{background:var(--primary-soft);color:var(--primary)}
.canvas-frame{background:var(--panel)}
.dialog-heading{border-color:var(--border)}
input,select,.dialog-textarea{background:var(--panel);color:var(--secondary);border-color:var(--border)}
.grid-picker-cell{border-color:var(--border)}
.grid-picker-preview-stage{background:var(--panel-soft)}
:root[data-theme="developer"] .workspace,:root[data-theme="midnight"] .workspace{background:var(--surface)}
:root[data-theme="developer"] .canvas-toolbar,:root[data-theme="midnight"] .canvas-toolbar{box-shadow:0 2px 8px #0005}
:root[data-theme="developer"] .template-button.active,:root[data-theme="midnight"] .template-button.active{background:var(--primary-soft)}
:root[data-theme="developer"] .template-button.active .thumbnail-cell,:root[data-theme="midnight"] .template-button.active .thumbnail-cell{background:var(--primary)}
:root[data-theme="developer"] .grid-picker-cell.in-range,:root[data-theme="midnight"] .grid-picker-cell.in-range{background:var(--primary-soft);border-color:var(--primary)}
:root[data-theme="developer"] .canvas-frame,:root[data-theme="midnight"] .canvas-frame{box-shadow:0 4px 18px #0008,0 0 1px #000}
:root[data-theme="developer"] .total-count,:root[data-theme="midnight"] .total-count{background:var(--panel-soft)}
:root[data-theme="developer"] .canvas-toolbar .danger,:root[data-theme="midnight"] .canvas-toolbar .danger{background:#452d30;color:#ffaaa4;border-color:#644044}
:root[data-theme="developer"] .canvas-toolbar .danger:hover,:root[data-theme="midnight"] .canvas-toolbar .danger:hover{background:#5a3539;color:#ffd0cc}
:root[data-theme="developer"] .switch-row input,:root[data-theme="midnight"] .switch-row input{background:#50545c}
:root[data-theme="developer"] .switch-row input:checked,:root[data-theme="midnight"] .switch-row input:checked{background:var(--primary)}
@media(max-width:1024px){.app-nav{gap:8px}.locale-picker,.theme-picker{padding-inline:7px}.theme-picker select{max-width:145px}}
@media(max-width:560px){.app-nav{gap:5px;padding-inline:8px}.locale-picker,.theme-picker{height:32px;gap:3px;padding-inline:5px}.locale-picker select,.theme-picker select{font-size:10px;max-width:82px}.brand{font-size:13px!important}.brand-mark{width:22px;height:22px}}
@media(max-width:390px){.brand>span:last-child{display:none}.locale-picker select{max-width:72px}.theme-picker select{max-width:98px}}

/* Unified theme tokens keep every control and panel in the same palette. */
:root,:root[data-theme="day"]{--primary:#2875c7;--primary-hover:#1e61a6;--accent-contrast:#fff;--text:#252b33;--secondary:#505b66;--muted:#7b8792;--border:#dce2e8;--surface:#f2f5f8;--panel:#fff;--panel-soft:#f6f8fa;--primary-soft:#e8f1fb;--control-bg:#fff;--control-hover:#edf2f7;--canvas-empty:#edf2f6;--canvas-plus:#849db5;--thumbnail-cell:#c2d8ee;--danger:#b84242;--danger-bg:#fff0ef;--success:#36835d;--backdrop:#18233166;--shadow-soft:0 8px 28px #26384c12;--scroll-thumb:#cbd3dc;color-scheme:light}
:root[data-theme="warm"]{--primary:#b25431;--primary-hover:#943f25;--accent-contrast:#fff;--text:#2b2824;--secondary:#575047;--muted:#898176;--border:#e6ddd1;--surface:#f6f1e9;--panel:#fffdf9;--panel-soft:#f6f0e6;--primary-soft:#f5e7dd;--control-bg:#fffdf9;--control-hover:#efe7dc;--canvas-empty:#f1eadf;--canvas-plus:#ae9075;--thumbnail-cell:#e8c7ae;--danger:#a83d32;--danger-bg:#f9e9e5;--success:#527c54;--backdrop:#2e211d70;--shadow-soft:0 8px 28px #503a2814;--scroll-thumb:#d9cabb;color-scheme:light}
:root[data-theme="eye"]{--primary:#47754d;--primary-hover:#365d3c;--accent-contrast:#fff;--text:#28372b;--secondary:#4b5c4d;--muted:#788578;--border:#d8e2d5;--surface:#eef3e9;--panel:#fbfcf7;--panel-soft:#f1f5eb;--primary-soft:#e3eddf;--control-bg:#fbfcf7;--control-hover:#e8efe2;--canvas-empty:#eaf0e3;--canvas-plus:#829c7c;--thumbnail-cell:#c9ddc4;--danger:#a94740;--danger-bg:#f6e9e5;--success:#41744d;--backdrop:#1f302166;--shadow-soft:0 8px 28px #33483312;--scroll-thumb:#cbd8c8;color-scheme:light}
:root[data-theme="rose"]{--primary:#ad4966;--primary-hover:#913a54;--accent-contrast:#fff;--text:#392a30;--secondary:#5c4c52;--muted:#8b7980;--border:#e8dce0;--surface:#f6eff1;--panel:#fffafb;--panel-soft:#f7eff2;--primary-soft:#f3e3e9;--control-bg:#fffafb;--control-hover:#f1e5e9;--canvas-empty:#f2e9ed;--canvas-plus:#a98493;--thumbnail-cell:#e4c3cf;--danger:#a23e49;--danger-bg:#f8e8e8;--success:#49745b;--backdrop:#39283270;--shadow-soft:0 8px 28px #4b293512;--scroll-thumb:#ddcbd1;color-scheme:light}
:root[data-theme="amber"]{--primary:#a95b16;--primary-hover:#88470e;--accent-contrast:#fff;--text:#352d25;--secondary:#5d5145;--muted:#8b7c6d;--border:#e8ded0;--surface:#f6f1e8;--panel:#fffdf8;--panel-soft:#f7f0e4;--primary-soft:#f4e8d4;--control-bg:#fffdf8;--control-hover:#f1e7d7;--canvas-empty:#f0e9dc;--canvas-plus:#ad9270;--thumbnail-cell:#e6cfaa;--danger:#a93f35;--danger-bg:#f8e9e4;--success:#47734b;--backdrop:#34291e70;--shadow-soft:0 8px 28px #513b2014;--scroll-thumb:#dacbb6;color-scheme:light}
:root[data-theme="lavender"]{--primary:#7054a5;--primary-hover:#5a4289;--accent-contrast:#fff;--text:#302b3a;--secondary:#554e62;--muted:#81798e;--border:#e2dced;--surface:#f3f0f8;--panel:#fdfbff;--panel-soft:#f3eff8;--primary-soft:#ebe4f5;--control-bg:#fdfbff;--control-hover:#ebe5f1;--canvas-empty:#eee9f4;--canvas-plus:#9989b3;--thumbnail-cell:#d7c9e8;--danger:#a8434d;--danger-bg:#f7e8e8;--success:#477754;--backdrop:#2c263770;--shadow-soft:0 8px 28px #36284914;--scroll-thumb:#d1c8dd;color-scheme:light}
:root[data-theme="developer"]{--primary:#3794ff;--primary-hover:#63adff;--accent-contrast:#102033;--text:#e6e6e6;--secondary:#c7c7c7;--muted:#999;--border:#3c3c3c;--surface:#1e1e1e;--panel:#252526;--panel-soft:#2d2d30;--primary-soft:#263b52;--control-bg:#252526;--control-hover:#35353a;--canvas-empty:#2b2e33;--canvas-plus:#7daee3;--thumbnail-cell:#516579;--danger:#ff9b91;--danger-bg:#482d30;--success:#65c18c;--backdrop:#000a;--shadow-soft:0 8px 30px #0006;--scroll-thumb:#505054;color-scheme:dark}
:root[data-theme="midnight"]{--primary:#91aaff;--primary-hover:#aec0ff;--accent-contrast:#18233c;--text:#e8edf6;--secondary:#c6cfdd;--muted:#9aa7ba;--border:#344052;--surface:#151b27;--panel:#1d2635;--panel-soft:#263143;--primary-soft:#2b3a55;--control-bg:#1d2635;--control-hover:#303c50;--canvas-empty:#232f42;--canvas-plus:#91aaff;--thumbnail-cell:#4b5b78;--danger:#ffaaa4;--danger-bg:#482e38;--success:#68c797;--backdrop:#080c14b8;--shadow-soft:0 10px 34px #0007;--scroll-thumb:#46536a;color-scheme:dark}
body,.workspace{color:var(--secondary);background:var(--surface)}
.app-nav,.sidebar,.selection-bar,dialog,.mode-placeholder-card{color:var(--secondary);background:var(--panel);border-color:var(--border)}
.sidebar.right-sidebar{color:var(--secondary);background:var(--panel);border-left-color:var(--border)}
.app-nav{box-shadow:0 1px 0 var(--border)}.sidebar-scroll{scrollbar-color:var(--scroll-thumb) transparent}
.brand,.section-heading h2,.settings-section summary,.dialog-heading h2,.mode-placeholder-card h1,.layout-group-heading{color:var(--text)}
.section-heading,.settings-section summary,.dialog-heading,.privacy-note,.layout-transform,.grid-picker-footer{border-color:var(--border)}
.local-badge,.canvas-meta,.canvas-hint,.privacy-note,.export-dimensions,.grid-picker-intro,.grid-picker-preview-title,.grid-picker-count{color:var(--muted)}
button,input,select,.dialog-textarea{color:var(--secondary);border-color:var(--border)}button{background-color:var(--control-bg)}input,select,.dialog-textarea{background-color:var(--control-bg)}
button:hover{background-color:var(--control-hover);border-color:var(--muted)}button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:var(--primary)}
input:focus,select:focus,.dialog-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent)}
.nav-links>button:not(.toolbox),.canvas-meta button,.text-button,.reset-settings,.mobile-btn,.dialog-heading button,.canvas-toolbar button{background:transparent;border-color:transparent}
.nav-links>button:not(.toolbox):hover,.canvas-meta button:hover,.text-button:hover,.reset-settings:hover,.mobile-btn:hover,.dialog-heading button:hover{color:var(--primary);background:var(--control-hover)}
.app-nav .toolbox,.download-button,.dialog-primary,.mode-coming-soon,.grid-picker-cell.range-end,.grid-picker-cell:hover{background:var(--primary);border-color:var(--primary);color:var(--accent-contrast)}
.app-nav .toolbox:hover,.download-button:hover,.dialog-primary:hover,.mode-coming-soon:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--accent-contrast)}
.locale-picker,.theme-picker{background:var(--panel);border-color:var(--border);color:var(--muted)}.locale-picker select,.theme-picker select,.template-search input{background:transparent;border-color:transparent;color:var(--secondary)}
.template-search,.template-button,.canvas-toolbar,.selection-bar,.collapse-btn,.template-button.active,.custom-template,.custom-ratio button,.ratio-grid button,.border-presets button,.two-buttons button,.three-buttons button,.quality-buttons button,.mode-placeholder-features span,.mode-sidebar-placeholder>span,.grid-picker-dialog,.grid-picker-preview-stage,.grid-picker-cell,.color-field{background:var(--panel-soft);border-color:var(--border)}
.template-search:focus-within,.template-button:hover,.custom-template:hover,.custom-ratio button:hover,.ratio-grid button:hover,.border-presets button:hover,.two-buttons button:hover,.three-buttons button:hover,.quality-buttons button:hover{border-color:var(--primary)}
.category-tabs button,.total-count,.canvas-hint kbd{background:var(--panel-soft);border-color:transparent;color:var(--secondary)}
.category-tabs button.active,.active,.workspace-mode.active,.border-presets button.active,.template-button.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.template-button .thumbnail-cell{background:var(--thumbnail-cell)}.template-button.active .thumbnail-cell{background:var(--primary)}
.canvas-toolbar{box-shadow:var(--shadow-soft)}.canvas-toolbar button:hover,.layout-transform button:hover{background:var(--control-hover);color:var(--primary)}.canvas-toolbar .secondary{background:var(--panel-soft);border-color:var(--border)}
.canvas-toolbar .danger{background:var(--danger-bg);border-color:color-mix(in srgb,var(--danger) 35%,var(--border));color:var(--danger)}.canvas-toolbar .danger:hover{background:color-mix(in srgb,var(--danger) 15%,var(--panel));color:var(--danger)}
.mode-sidebar-icon,.mode-placeholder-icon{background:var(--primary-soft);color:var(--primary)}.mode-placeholder-features span{color:var(--secondary)}.mode-placeholder-card{box-shadow:var(--shadow-soft)}
.grid-picker-cell{background:var(--control-bg)}.grid-picker-cell.in-range{background:var(--primary-soft);border-color:var(--primary)}.grid-picker-cell.range-end,.grid-picker-cell:hover{background:var(--primary);border-color:var(--primary);color:var(--accent-contrast)}
.grid-picker-preview-stage{background:var(--panel-soft)}.grid-picker-preview-stage canvas{background:var(--panel);box-shadow:0 1px 5px #0002}.grid-picker-column-labels span,.grid-picker-row-labels span{color:var(--muted)}
.template-button:after{background:var(--panel);color:var(--text);border:1px solid var(--border)}.favorite-button{background:var(--panel);color:var(--muted);border-color:var(--border)}.favorite-button.is-favorite{color:#d49a29}
.selection-bar{box-shadow:var(--shadow-soft)}.collapse-btn{background:var(--panel);color:var(--muted)}.collapse-btn:hover{background:var(--primary);border-color:var(--primary);color:var(--accent-contrast)}
.border-grid input,.custom-ratio input,.full-input,#export-size,.selection-bar input{background:var(--control-bg);color:var(--secondary);border-color:var(--border)}.color-field{background:var(--panel-soft)}.swatches button{border-color:var(--border)}
.switch-row input{background:var(--border)}.switch-row input:checked{background:var(--primary)}input[type=range]{background:var(--border)}input[type=range]::-webkit-slider-thumb,input[type=range]::-moz-range-thumb{background:var(--primary)}
.privacy-note{border-top-color:var(--border)}.local-badge>span{background:var(--success)}.toast{background:var(--text);color:var(--panel);box-shadow:var(--shadow-soft)}dialog::backdrop{background:var(--backdrop)}
.drop-overlay{background:color-mix(in srgb,var(--panel) 94%,transparent);color:var(--primary)}.drop-overlay p{color:var(--muted)}
.cell-hit.selected{outline-color:var(--primary)}.cell-hit.dragging{background:color-mix(in srgb,var(--primary) 25%,transparent)!important}.cell-hit.drag-over{box-shadow:inset 0 0 0 3px var(--primary)}
.annotation-hit:hover,.annotation-hit.selected{border-color:color-mix(in srgb,var(--primary) 70%,transparent)}.annotation-hit .resize-handle:after,.annotation-rotate-handle{border-color:var(--panel);background:var(--primary)}.annotation-rotate-handle:before{background:var(--primary)}
.annotation-rotate-handle:hover,.annotation-rotate-handle:active,.is-rotating .annotation-rotate-handle{background:var(--primary-hover)}.grid-divider:after{background:color-mix(in srgb,var(--primary) 28%,transparent)}.grid-divider.vertical:before,.grid-divider.horizontal:before{background:var(--primary)}
:root[data-theme="day"]{--canvas-bg:#ffffff}
:root[data-theme="warm"]{--canvas-bg:#fffdf9}
:root[data-theme="eye"]{--canvas-bg:#fbfcf7}
:root[data-theme="rose"]{--canvas-bg:#fffafb}
:root[data-theme="amber"]{--canvas-bg:#fffdf8}
:root[data-theme="lavender"]{--canvas-bg:#fdfbff}
:root[data-theme="developer"]{--canvas-bg:#252526}
:root[data-theme="midnight"]{--canvas-bg:#1d2635}
:root[data-theme="developer"]{--primary:#2465ad;--primary-hover:#1f538e;--accent-contrast:#fff}
:root[data-theme="midnight"]{--primary:#3b5ca5;--primary-hover:#304d8e;--accent-contrast:#fff}
:root,:root[data-theme="day"],:root[data-theme="warm"],:root[data-theme="eye"],:root[data-theme="rose"],:root[data-theme="amber"],:root[data-theme="lavender"]{--accent-contrast:#fff}
.workspace-modes{background:var(--panel);border-bottom-color:var(--border)}
.workspace-mode{background:var(--panel-soft);border-color:var(--border);color:var(--secondary)}
.workspace-mode:hover{background:var(--control-hover);color:var(--primary)}
.workspace-mode.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.app-nav .toolbox,.download-button,.dialog-primary,.mode-coming-soon{color:#fff}
.app-nav .toolbox:hover,.download-button:hover,.dialog-primary:hover,.mode-coming-soon:hover{color:#fff}
.editor-seo-intro{padding:12px 28px 13px;background:var(--panel);border-bottom:1px solid var(--border);color:var(--secondary)}
.editor-seo-intro h1{margin:0 0 4px;color:var(--text);font-size:17px;line-height:1.35;font-weight:650;letter-spacing:-.2px}
.editor-seo-intro h2{margin:0;max-width:1200px;color:var(--muted);font-size:12px;line-height:1.55;font-weight:400}
@media(max-width:560px){.editor-seo-intro{padding:10px 14px}.editor-seo-intro h1{font-size:15px}.editor-seo-intro h2{font-size:11px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}}
.app-nav{justify-content:flex-start;gap:18px;padding-inline:18px}
.nav-links{gap:9px;margin-left:8px}
.nav-links>button:not(.toolbox){padding:7px 10px;border:1px solid var(--border);border-radius:7px;background:var(--panel-soft);color:var(--secondary);font-size:12px}
.nav-links>button:not(.toolbox):hover{background:var(--control-hover);border-color:var(--border);color:var(--primary)}
.app-nav>.header-upload{margin-left:auto}
.locale-picker{margin-left:0}
.theme-picker{margin-left:0}
@media(max-width:1024px){.app-nav{gap:10px;padding-inline:12px}.nav-links{gap:10px;margin-left:0}}
@media(max-width:560px){.app-nav{gap:6px;padding-inline:8px}.locale-picker{margin-left:0}.theme-picker{margin-left:0}}

.brand-logo{display:block;flex:none;width:190px;height:58px;object-fit:contain;background:#fff;border-radius:3px}
@media(max-width:560px){.brand-logo{width:154px;height:47px}}
@media(max-width:390px){.brand-logo{width:122px;height:37px}}

/* Balance the fox mark with the wordmark in the compact editor navigation. */
.brand{gap:8px;flex:none}
.brand-symbol{display:block;flex:none;width:40px;height:40px;object-fit:contain;background:#fff;border-radius:4px}
.brand-wordmark{display:block;flex:none;width:120px;height:25px;object-fit:contain;background:#fff}
@media(max-width:1024px){.brand{gap:7px}.brand-symbol{width:37px;height:37px}.brand-wordmark{width:111px;height:23px}}
@media(max-width:560px){.brand{gap:6px}.brand-symbol{width:32px;height:32px}.brand-wordmark{width:96px;height:20px}}
@media(max-width:390px){.brand-wordmark{display:none}}

/* Keep watermark controls readable and evenly grouped in the settings panel. */
#watermark-settings-body{display:flex;flex-direction:column;gap:15px;padding-top:16px}
#watermark-settings-body>.switch-row{margin:0 0 2px;min-height:30px}
#watermark-settings-body .watermark-field{display:grid;gap:7px;min-width:0}
#watermark-settings-body .watermark-field .field-label,
#watermark-settings-body .watermark-field .range-label{margin:0;line-height:1.4}
#watermark-settings-body .watermark-field .full-input{width:100%;min-height:40px}
#watermark-settings-body .watermark-field input[type=range]{width:100%;margin:1px 0 0;accent-color:var(--primary)}
#watermark-settings-body .range-label{display:flex;align-items:center;justify-content:space-between;gap:10px}
#watermark-settings-body .range-label output{font-variant-numeric:tabular-nums}
#watermark-tile-options{display:grid;gap:15px}

/* Keep translated control labels within their layout while allowing compact labels to remain legible. */
button{min-width:0;overflow-wrap:anywhere;word-break:normal;white-space:normal;line-height:1.35}
.canvas-toolbar{flex-wrap:wrap}
.toolbar-group{min-width:0;flex-wrap:wrap}
.canvas-toolbar button{white-space:normal;min-width:0}
.three-buttons button,.two-buttons button,.quality-buttons button{min-width:0;overflow-wrap:anywhere;word-break:normal;white-space:normal;line-height:1.3}
.download-button,.copy-button{line-height:1.35}
html[dir="rtl"] .app-nav,html[dir="rtl"] .topbar{direction:rtl}
html[dir="rtl"] .sidebar-scroll{direction:rtl}

/* Keep the header mark transparent and let its wordmark follow the active theme. */
.brand-symbol{background:transparent;border-radius:0;filter:none}
.brand-wordmark{display:flex;align-items:baseline;gap:0;width:auto;height:auto;background:transparent;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:19px;font-weight:400;line-height:1;letter-spacing:-.055em;object-fit:initial;font-synthesis:none}
.brand-wordmark span:first-child{color:#102d52}
.brand-wordmark span:last-child{color:#ff6845}
:root[data-theme="developer"] .brand-wordmark span:first-child{color:#f1f3f5}
:root[data-theme="midnight"] .brand-wordmark span:first-child{color:#edf2fb}
@media(max-width:1024px){.brand-wordmark{font-size:17px}}
@media(max-width:620px){.brand-wordmark{font-size:15px}}

/* Narrow controls use short localized labels and stay legible in every theme. */
.workspace-mode{gap:4px;padding:9px 3px;font-size:12px;line-height:1.2}
.workspace-mode svg{width:15px;height:15px}
.layout-transform{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.layout-transform button{min-height:34px;padding:7px 5px;font-size:11px;overflow-wrap:normal;word-break:normal}
.quality-buttons button{font-size:11px;padding-inline:3px}
.copy-button.secondary{background:var(--panel-soft);border-color:var(--border);color:var(--secondary)}
.copy-button.secondary:hover{background:var(--control-hover);border-color:var(--border);color:var(--text)}

/* Keep native select popups legible in the two dark editor themes. */
:root[data-theme="developer"] #theme-switch,:root[data-theme="midnight"] #theme-switch{color-scheme:dark;color:var(--text)}
:root[data-theme="developer"] select option,:root[data-theme="midnight"] select option{background-color:var(--panel);color:var(--text)}
:root[data-theme="developer"] select option:checked,:root[data-theme="midnight"] select option:checked{background-color:var(--primary-soft);color:var(--text)}

.app-nav>.header-upload{flex:none;white-space:nowrap}
@media(max-width:560px){.app-nav>.header-upload{gap:4px;padding:6px 8px;font-size:10px}}

/* Keep the editor viewport and footer in separate rows of the document flow. */
html{min-height:100%;overflow-x:hidden}
body{min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden}
.app-nav,#app-shell{flex:0 0 auto}
#app-shell{width:100%}
body .site-footer{position:static;z-index:auto;flex:0 0 auto}
/* On desktop, let the editor side panels finish before the footer enters view. */
@media(min-width:1025px){
  #app-shell{height:auto;min-height:calc(100dvh - var(--nav));overflow:visible;align-items:stretch}
  #app-shell>.sidebar{height:auto;min-height:0}
  #app-shell>.sidebar>.sidebar-scroll{height:auto;overflow:visible}
  #app-shell>.workspace{height:calc(100dvh - var(--nav));min-height:calc(100dvh - var(--nav));overflow:visible;flex:1 0 auto}
}
.layout-transform button{white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.25}
