:root{--bg-app:#121214;--bg-panel:#1b1b1f;--bg-panel-raised:#222228;--bg-input:#121215;--bg-hover:#2a2a31;--bg-active:#33333c;--bg-canvas:#0e0e10;--border:#2c2c33;--border-strong:#3c3c46;--text:#e8e8ec;--text-muted:#9a9aa6;--text-faint:#8c8c98;--accent:#5b8cff;--accent-strong:#3f74f5;--accent-soft:#5b8cff2e;--danger:#ff5c5c;--danger-soft:#ff5c5c2e;--warning:#ffb547;--success:#4cd38a;--guide:#ff4fd8;--snap:#4cd38a;--redline:#ff5c5c;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:15px;--fs-xl:20px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--toolbar-h:44px;--structure-w:272px;--inspector-w:300px;--ruler:20px;--control-h:26px;--shadow-page:0 8px 32px #0009;--shadow-popover:0 12px 40px #0000008c}:root[data-theme=light]{--bg-app:#f3f3f5;--bg-panel:#fff;--bg-panel-raised:#f6f6f8;--bg-input:#fff;--bg-hover:#ececf0;--bg-active:#e1e1e7;--bg-canvas:#d9d9de;--border:#e0e0e6;--border-strong:#c9c9d2;--text:#1c1c21;--text-muted:#5c5c68;--text-faint:#6f6f7c;--accent:#2f66e0;--accent-strong:#2353c4;--accent-soft:#2f66e024;--danger:#d8323c;--danger-soft:#d8323c24;--warning:#8f5905;--success:#1f9a5a;--guide:#b5139a;--snap:#1f9a5a;--redline:#d8323c;--shadow-page:0 6px 24px #00000038;--shadow-popover:0 12px 36px #0000002e}:root{--motion-fast:.16s;--motion-normal:.2s;--motion-ease:cubic-bezier(.2, .7, .2, 1);--motion-fade:.32s}@media (prefers-reduced-motion:reduce){:root{--motion-fast:0s;--motion-normal:0s;--motion-fade:0s}}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--bg-app);color:var(--text);font-family:var(--font-ui);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;line-height:1.4;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box;border:2px solid #0000;border-radius:5px}::-webkit-scrollbar-track{background:0 0}.btn{align-items:center;gap:var(--space-1);height:var(--control-h);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-panel-raised);color:var(--text);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;display:inline-flex}.btn:hover{background:var(--bg-hover)}.btn:active{background:var(--bg-active)}.btn:disabled{opacity:.4;cursor:default}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn--primary:hover{background:var(--accent-strong)}.btn--danger{color:var(--danger)}.btn--ghost{background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--bg-hover)}.btn--sm{height:22px;padding:0 var(--space-2);font-size:var(--fs-xs)}.btn--block{justify-content:center;width:100%}.icon-btn{border-radius:var(--radius-md);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn--active{background:var(--accent-soft);color:var(--accent)}.icon-btn--sm{width:22px;height:22px}.input{height:var(--control-h);width:100%;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font-size:var(--fs-sm);-webkit-user-select:text;user-select:text;outline:none}.input:focus{border-color:var(--accent)}.input--mono{font-family:var(--font-mono)}.input--textarea{height:auto;min-height:56px;padding:var(--space-1) var(--space-2);resize:vertical;line-height:1.4}.input--fallback{color:var(--warning);font-style:italic}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);background-position:calc(100% - 12px) 11px,calc(100% - 8px) 11px;background-repeat:no-repeat;background-size:4px 4px;padding-right:22px}.number-field{align-items:center;gap:var(--space-1);min-width:0;display:flex}.number-field__label{min-width:14px;color:var(--text-muted);font-size:var(--fs-xs);cursor:ew-resize;-webkit-user-select:none;user-select:none;flex:none}.number-field__input{min-width:0;font-family:var(--font-mono);text-align:right;flex:auto}.number-field__unit{color:var(--text-faint);font-size:var(--fs-xs);flex:none}.field{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);grid-template-columns:88px 1fr;display:grid}.field--stack{gap:var(--space-1);grid-template-columns:1fr}.field__label{color:var(--text-muted);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.field__row{gap:var(--space-2);align-items:center;min-width:0;display:flex}.field__row>*{flex:1 1 0;min-width:0}.slider-row{align-items:center;gap:var(--space-2);grid-template-columns:1fr 84px;min-width:0;display:grid}.slider-row input[type=range]{width:100%;min-width:0;accent-color:var(--accent)}.field__hint{color:var(--text-faint);font-size:var(--fs-xs);grid-column:1/-1}.toggle{align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--fs-sm);display:inline-flex}.toggle input{appearance:none;background:var(--border-strong);cursor:pointer;border-radius:8px;width:28px;height:16px;margin:0;transition:background .15s;position:relative}.toggle input:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle input:checked{background:var(--accent)}.toggle input:checked:after{transform:translate(12px)}.segmented{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input);display:inline-flex;overflow:hidden}.segmented button{height:24px;color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;background:0 0;border:none;padding:0 10px}.segmented button:hover{color:var(--text)}.segmented button.is-active{background:var(--bg-active);color:var(--text)}.color-field{align-items:center;gap:var(--space-2);display:flex}.color-field__swatch{border-radius:var(--radius-sm);border:1px solid var(--border-strong);flex:none;width:22px;height:22px}.color-field__cmyk{gap:var(--space-1);flex:1;grid-template-columns:repeat(4,1fr);display:grid}.panel-section{padding:var(--space-3) var(--space-3) var(--space-2);border-bottom:1px solid var(--border)}.panel-section__title{margin:0 0 var(--space-2);color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;font-weight:600;display:flex}.panel-section__title .icon-btn{margin:-4px 0}.tabs{border-bottom:1px solid var(--border);display:flex}.tabs button{height:34px;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1}.tabs button.is-active{color:var(--text);border-bottom-color:var(--accent)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:var(--fs-xs)}.mono{font-family:var(--font-mono)}.row{align-items:center;gap:var(--space-2);display:flex}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.stack{gap:var(--space-2);flex-direction:column;display:flex}.grow{flex:auto;min-width:0}.app{grid-template-rows:var(--toolbar-h) minmax(0, 1fr);grid-template-columns:var(--structure-w) minmax(0, 1fr) var(--inspector-w);grid-template-areas:"toolbar toolbar toolbar""structure canvas inspector";width:100%;min-width:0;height:100%;display:grid;overflow:hidden}.app__toolbar{grid-area:toolbar}.app__structure{grid-area:structure}.app__canvas{grid-area:canvas;min-width:0;min-height:0}.app__inspector{grid-area:inspector}.panel{background:var(--bg-panel);min-height:0;overflow:auto}.panel--left{border-right:1px solid var(--border)}.panel--right{border-left:1px solid var(--border)}.toolbar{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--bg-panel);border-bottom:1px solid var(--border);min-width:0;display:flex;overflow:hidden}.toolbar--compact{gap:var(--space-1)}.toolbar--compact .toolbar__zoom{width:52px}.toolbar__group{align-items:center;gap:2px;display:flex}.toolbar__sep{background:var(--border);width:1px;height:22px;margin:0 var(--space-2)}.toolbar__title{font-weight:600;font-size:var(--fs-md);border-radius:var(--radius-sm);-webkit-user-select:text;user-select:text;background:0 0;border:1px solid #0000;flex:0 220px;min-width:80px;padding:2px 6px}.toolbar__title:hover{border-color:var(--border)}.toolbar__title:focus{border-color:var(--accent);outline:none}.toolbar__status{color:var(--text-faint);font-size:var(--fs-xs);white-space:nowrap}.toolbar>*{flex-shrink:0}.toolbar>.toolbar__title,.toolbar>.toolbar__spacer{flex-shrink:1}.toolbar__spacer{flex:1}.toolbar__zoom{text-align:center;width:64px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted)}.menu{display:inline-flex}.menu__popover{z-index:300;min-width:200px;padding:var(--space-1);background:var(--bg-panel-raised);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-popover);overscroll-behavior:contain;animation:menu-in var(--motion-fast) var(--motion-ease);position:fixed;overflow:auto}.menu__popover .menu__item:focus-visible{background:var(--bg-hover);box-shadow:inset 0 0 0 1px var(--accent);outline:none}.menu__item{align-items:center;gap:var(--space-2);width:100%;height:28px;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.menu__item:hover{background:var(--bg-hover)}.menu__item:disabled{opacity:.4;cursor:default}.menu__label{padding:6px var(--space-2) 2px;color:var(--text-faint);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em}.menu__sep{height:1px;margin:var(--space-1) 0;background:var(--border)}.tree-page__header{align-items:center;gap:var(--space-1);padding:4px var(--space-2) 4px var(--space-3);font-weight:600;font-size:var(--fs-sm);cursor:pointer;border-radius:0;display:flex}.tree-page__header:hover{background:var(--bg-hover)}.tree-page__header.is-selected{background:var(--accent-soft)}.tree-page__header.is-overflow{color:var(--danger)}.tree-page__actions{margin-left:auto;display:none}.tree-page__header:hover .tree-page__actions,.tree-row:hover .tree-row__actions{display:inline-flex}.tree-row{align-items:center;gap:var(--space-1);height:26px;padding-right:var(--space-2);font-size:var(--fs-sm);cursor:pointer;display:flex;position:relative}.tree-row:hover{background:var(--bg-hover)}.tree-row.is-selected{background:var(--accent-soft)}.tree-row.is-hover{box-shadow:inset 0 0 0 1px var(--accent)}.tree-row.is-overflow{color:var(--danger)}.tree-row.is-hidden{opacity:.5}.tree-row__handle{color:var(--text-faint);cursor:grab;padding:0 2px;display:inline-flex}.tree-row__icon{color:var(--text-muted);flex:none;display:inline-flex}.tree-row__label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.tree-row__label.is-fallback{color:var(--warning);font-style:italic}.tree-row__meta{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-xs)}.tree-row__actions{align-items:center;display:none}.tree-row__rename{border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-input);height:20px;font-size:var(--fs-sm);-webkit-user-select:text;user-select:text;flex:1;padding:0 4px}.tree-add{align-items:center;gap:var(--space-1);height:24px;color:var(--text-faint);font-size:var(--fs-xs);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;display:flex}.tree-add:hover{color:var(--text)}.tree-group-label{padding:6px var(--space-3) 2px;color:var(--text-faint);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em}.tree-drop{background:var(--accent);border-radius:1px;height:2px;margin:-1px 8px}.tree-overflow{align-items:center;gap:var(--space-2);margin:4px var(--space-2);padding:6px var(--space-2);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:var(--fs-xs);display:flex}.canvas{grid-template-rows:var(--ruler) minmax(0, 1fr);grid-template-columns:var(--ruler) minmax(0, 1fr);background:var(--bg-canvas);height:100%;display:grid;position:relative;overflow:hidden}.canvas__corner{background:var(--bg-panel);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.canvas__ruler{background:var(--bg-panel);position:relative;overflow:hidden}.canvas__ruler--top{border-bottom:1px solid var(--border)}.canvas__ruler--left{border-right:1px solid var(--border)}.canvas__scroll{outline:none;position:relative;overflow:auto}.canvas__content{flex-direction:column;justify-content:center;align-items:center;gap:48px;min-width:min-content;min-height:100%;padding:48px;display:flex;position:relative}.page-view{box-shadow:0 0 0 1px #00000059, 0 0 0 2px #ffffff2e, var(--shadow-page);background:#fff;position:relative}.page-view.is-overflow{outline:2px solid var(--danger);outline-offset:2px}.page-view__svg{display:block}.page-view__label{color:var(--pb-fg-faint,var(--text-faint));font-size:var(--fs-xs);white-space:nowrap;position:absolute;top:-22px;left:0}.page-view__label.is-overflow{color:var(--danger)}.page-view__overflow-action{margin-left:var(--space-2);color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-sm);font-size:var(--fs-xs);cursor:pointer;background:0 0;padding:1px 6px}.inline-editor{border:1px solid var(--accent);color:#111;resize:none;white-space:pre;-webkit-user-select:text;user-select:text;background:#fffffff2;border-radius:0;outline:none;margin:0;padding:0;line-height:1;position:absolute;overflow:hidden}.inline-editor__label{background:var(--accent);color:#fff;white-space:nowrap;pointer-events:none;border-radius:3px 3px 0 0;padding:1px 5px;font-size:10px;line-height:14px;position:absolute;transform:translateY(-100%)}.canvas__empty{height:100%;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.inspector__title{padding:var(--space-3);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-2);font-weight:600;display:flex}.inspector__empty{padding:var(--space-4);color:var(--text-muted);font-size:var(--fs-sm)}.style-list__item{align-items:center;gap:var(--space-2);padding:4px 0;display:flex}.swatch-list__item{align-items:center;gap:var(--space-2);grid-template-columns:22px 1fr auto;padding:4px 0;display:grid}.swatch-list__preview{border-radius:var(--radius-sm);border:1px solid var(--border-strong);width:22px;height:22px}.lang-chip{background:var(--bg-panel-raised);border:1px solid var(--border);height:22px;font-size:var(--fs-xs);text-transform:uppercase;border-radius:11px;align-items:center;gap:4px;padding:0 6px 0 8px;display:inline-flex}.lang-chip.is-primary{border-color:var(--accent)}.dialog-backdrop{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(960px,92vw);height:min(640px,88vh);box-shadow:var(--shadow-popover);grid-template-rows:auto 1fr auto;display:grid;overflow:hidden}.dialog--small{width:min(420px,92vw);height:auto}.dialog__header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;font-weight:600;display:flex}.dialog__body{grid-template-columns:320px 1fr;min-height:0;display:grid}.dialog__body--single{padding:var(--space-4);grid-template-columns:1fr}.dialog__settings{padding:var(--space-3);border-right:1px solid var(--border);overflow:auto}.dialog__preview{padding:var(--space-4);background:var(--bg-canvas);justify-content:center;align-items:center;display:flex;overflow:auto}.dialog__preview svg{max-width:100%;max-height:100%;box-shadow:var(--shadow-page)}.dialog__footer{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);display:flex}.dialog__error{color:var(--danger);font-size:var(--fs-xs);margin-right:auto}.dashboard{height:100%;padding:var(--space-5) clamp(16px, 6vw, 80px);overflow:auto}.dashboard__header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.dashboard__title{font-size:var(--fs-xl);margin:0;font-weight:700}.dashboard__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.project-card{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);cursor:pointer;flex-direction:column;display:flex;position:relative}.project-card:hover{border-color:var(--border-strong);background:var(--bg-panel-raised)}.project-card__preview{background:var(--bg-canvas);border-radius:var(--radius-md);justify-content:center;align-items:center;height:180px;display:flex;overflow:hidden}.project-card__preview svg{max-width:100%;max-height:160px;box-shadow:0 4px 16px #00000080}.project-card__name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.project-card__meta{color:var(--text-faint);font-size:var(--fs-xs)}.project-card__menu{top:var(--space-2);right:var(--space-2);position:absolute}.project-card--new{min-height:260px;color:var(--text-muted);justify-content:center;align-items:center;gap:var(--space-3);border-style:dashed}.toast{z-index:200;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--bg-panel-raised);border:1px solid var(--border-strong);box-shadow:var(--shadow-popover);font-size:var(--fs-sm);position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast--error{border-color:var(--danger);color:var(--danger)}.loading{height:100%;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.app__structure,.app__inspector{min-width:0;width:var(--structure-w);transition:width var(--motion-normal) var(--motion-ease);position:relative;overflow:hidden}.panel.is-collapsed .panel__inner,.panel.is-collapsed .panel-resizer{visibility:hidden;transition:visibility 0s linear var(--motion-normal)}.app__inspector{width:var(--inspector-w)}.panel.is-collapsed{border:none}.panel__inner{height:100%;overflow:auto}.panel--left .panel__inner{margin-left:auto}.panel-resizer{cursor:col-resize;z-index:5;width:6px;position:absolute;top:0;bottom:0}.panel-resizer--left{right:0}.panel-resizer--right{left:0}.panel-resizer:after{content:"";width:2px;transition:background var(--motion-fast) var(--motion-ease);background:0 0;position:absolute;top:0;bottom:0}.panel-resizer--left:after{right:0}.panel-resizer--right:after{left:0}.panel-resizer:hover:after,body.is-resizing .panel-resizer:after{background:var(--accent)}body.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}body.is-resizing .app__structure,body.is-resizing .app__inspector{transition:none}.app__canvas{position:relative}.panel-edge{z-index:20;border:1px solid var(--accent);background:var(--bg-panel);width:20px;height:64px;color:var(--accent);box-shadow:var(--shadow-popover);cursor:pointer;opacity:.95;transition:opacity var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease);justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.panel-edge:hover{opacity:1;color:var(--text)}.panel-edge--left{border-radius:0 var(--radius-md) var(--radius-md) 0;border-left:none;left:0}.panel-edge--right{border-radius:var(--radius-md) 0 0 var(--radius-md);border-right:none;right:0}.canvas--no-rulers{grid-template-rows:1fr;grid-template-columns:1fr}.canvas__ruler{cursor:crosshair;-webkit-user-select:none;user-select:none}.page-view{transition:box-shadow var(--motion-normal) var(--motion-ease)}.page-view.is-active{box-shadow:var(--shadow-page), 0 0 0 2px var(--accent-soft)}.page-view__label{align-items:center;gap:var(--space-2);height:22px;display:flex;top:-26px}.page-view__badge{background:var(--bg-panel-raised);border:1px solid var(--border-strong);min-width:18px;height:18px;color:var(--text);font-size:var(--fs-xs);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-weight:600;display:inline-flex}.page-view.is-active .page-view__badge{background:var(--accent);border-color:var(--accent);color:#fff}.page-view__name{color:var(--pb-fg,var(--text));font-weight:600}.page-view__meta{color:var(--pb-fg-faint,var(--text-faint))}.page-view__badge{color:var(--pb-fg,var(--text))}.page-view__meta--danger{color:var(--danger)}.guide-preview{pointer-events:none;z-index:8;position:absolute}.guide-preview--y{border-top:1px dashed var(--guide);height:0;left:0;right:0}.guide-preview--x{border-left:1px dashed var(--guide);width:0;top:0;bottom:0}.guide-tooltip{z-index:9;border-radius:var(--radius-sm);background:var(--guide);color:#fff;font-family:var(--font-mono);font-size:var(--fs-xs);white-space:nowrap;pointer-events:none;padding:2px 6px;position:absolute;transform:translate(8px,8px)}.guide-tooltip--inline{top:0;left:24px}.guide-edit{z-index:9;border-radius:var(--radius-md);background:var(--bg-panel-raised);border:1px solid var(--border-strong);box-shadow:var(--shadow-popover);align-items:center;gap:4px;padding:4px 6px;display:flex;position:absolute;transform:translate(8px,8px)}.guide-edit .input{width:72px}.context-menu{min-width:220px}.menu__shortcut{color:var(--text-faint);font-size:var(--fs-xs);font-family:var(--font-mono);margin-left:var(--space-3)}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.structure{padding:var(--space-2)}.tree-page{margin-bottom:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);transition:border-color var(--motion-normal) var(--motion-ease), box-shadow var(--motion-normal) var(--motion-ease);overflow:clip}.tree-page.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.tree-page.is-collapsed .tree-page__header{border-bottom:none}.tree-page__header{z-index:2;gap:var(--space-2);padding:6px var(--space-2) 6px 4px;background:var(--bg-panel-raised);border-bottom:1px solid var(--border);border-radius:0;position:sticky;top:0}.tree-page.is-active .tree-page__header{background:var(--accent-soft)}.tree-page__chevron{flex:none}.tree-page__badge{background:var(--bg-panel);border:1px solid var(--border-strong);min-width:20px;height:20px;font-size:var(--fs-xs);border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0 6px;font-weight:700;display:inline-flex}.tree-page.is-active .tree-page__badge{background:var(--accent);border-color:var(--accent);color:#fff}.tree-page__badge.is-overflow{border-color:var(--danger);color:var(--danger)}.tree-page__thumb{background:#fff;border-radius:3px;flex:none;display:inline-flex;overflow:hidden;box-shadow:0 1px 4px #00000059}.tree-page__thumb svg{display:block}.tree-page__title{flex-direction:column;min-width:0;line-height:1.25;display:flex}.tree-page__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tree-page__count{color:var(--text-faint);font-size:var(--fs-xs);align-items:center;gap:3px;font-weight:400;display:inline-flex}.tree-page .tree-add{padding-bottom:4px}.dialog--settings{width:min(560px,92vw);height:auto;max-height:88vh}.dialog__body--settings{grid-template-columns:1fr;overflow:auto}.settings-grid{gap:6px var(--space-3);margin-bottom:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.swatch-grid{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.swatch-grid__item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease);flex-direction:column;align-items:center;gap:4px;padding:6px 4px;display:flex;position:relative}.swatch-grid__item:hover{border-color:var(--border-strong)}.swatch-grid__item.is-active{border-color:var(--accent);color:var(--text)}.swatch-grid__item input[type=color]{opacity:0;cursor:pointer;position:absolute;inset:0}.swatch-grid__preview{border-radius:var(--radius-sm);border:1px solid var(--border-strong);width:100%;height:22px}.dialog--shortcuts{width:min(680px,92vw);height:auto;max-height:88vh}.dialog__body--shortcuts{gap:var(--space-4);padding:var(--space-4);grid-template-columns:1fr 1fr;overflow:auto}.shortcut-group{min-width:0}.shortcut-list{margin:0}.shortcut-list__row{gap:var(--space-2);font-size:var(--fs-sm);grid-template-columns:150px 1fr;align-items:center;padding:3px 0;display:grid}.shortcut-list dt,.shortcut-list dd{margin:0}kbd{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-panel-raised);font-family:var(--font-mono);font-size:var(--fs-xs);white-space:nowrap;border-bottom-width:2px;padding:1px 6px;display:inline-block}.font-picker{justify-content:space-between;align-items:center;gap:var(--space-2);cursor:pointer;text-align:left;width:100%;display:flex}.font-picker__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-ok{color:var(--success)}.field__hint a{color:var(--accent)}.api-key-row>.input{flex:auto}.api-key-row>.icon-btn,.api-key-row>.btn{flex:none}.dialog--fonts{grid-template-rows:auto auto 1fr auto;width:min(980px,94vw);height:min(680px,90vh)}.dialog--fonts .dialog__header{gap:var(--space-3)}.dialog--fonts .dialog__header>span:first-child{margin-right:auto}.font-browser__tools{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.font-browser__search{align-items:center;gap:var(--space-2);min-width:160px;color:var(--text-faint);flex:200px;display:flex}.font-browser__search .input{flex:1}.font-browser__count{white-space:nowrap;margin-left:auto}.font-browser__body{grid-template-columns:minmax(0,1fr) 300px}.font-browser__list{border-right:1px solid var(--border);position:relative;overflow:auto}.font-browser__heading{left:var(--space-2);align-items:flex-end;height:58px;padding-bottom:6px;display:flex;position:absolute;right:0}.font-row{align-items:center;gap:var(--space-3);padding:0 var(--space-4);border:none;border-bottom:1px solid var(--border);color:var(--text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:180px minmax(0,1fr);display:grid;position:absolute;left:0;right:0}.font-row:hover{background:var(--bg-hover)}.font-row.is-active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.font-row__check{color:var(--accent);margin-left:6px}.font-row__name{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;flex-direction:column;min-width:0;font-weight:600;display:flex;overflow:hidden}.font-row__meta{color:var(--text-faint);font-size:var(--fs-xs);font-weight:400}.font-row__sample{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.2;overflow:hidden}.font-browser__detail{padding:var(--space-4);background:var(--bg-panel-raised);overflow:auto}.font-browser__empty{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-5);text-align:center;flex-direction:column;max-width:420px;margin:0 auto;display:flex}.font-detail__title{align-items:center;gap:var(--space-2);font-size:var(--fs-lg);font-weight:600;display:flex}.font-detail__preview{padding:var(--space-3);border-radius:var(--radius-md);color:#151516;overflow-wrap:anywhere;background:#fff;min-height:80px;line-height:1.25}.font-detail__variants{flex-wrap:wrap;gap:6px;display:flex}.font-variant{border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;border-radius:999px;padding:3px 8px;position:relative}.font-variant:hover{color:var(--text)}.font-variant.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.font-variant__dot{background:var(--success);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:5px;display:inline-block}.presentation{z-index:400;background:var(--bg-canvas);-webkit-user-select:none;user-select:none;outline:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.presentation--idle{cursor:none}.presentation__stage{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.presentation__page{box-shadow:var(--shadow-page);background:#fff;flex:none}.presentation__page svg{pointer-events:none;display:block}.presentation__grid{place-content:center;display:grid}.presentation__hud{color:#f2f2f5;font-size:var(--fs-sm);white-space:nowrap;pointer-events:none;transition:opacity var(--motion-fade) var(--motion-ease);background:#141418c7;border-radius:999px;padding:6px 14px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.presentation--idle .presentation__hud{opacity:0}.icon-btn,.btn,.tree-row,.menu__item{transition:background var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease)}
