html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}@font-face{font-family:Caveat;src:url(/fonts/Caveat.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Cascadia Code;src:url(/fonts/CascadiaCode.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}:root{--ex-bg:#f8f9fa;--ex-canvas-grid:#00000014;--ex-ui-bg:#fff;--ex-ui-bg-glass:#ffffffe0;--ex-border:#00000017;--ex-shadow:0 4px 20px #00000014, 0 0 1px #0000000f;--ex-shadow-sm:0 2px 8px #0000000f;--ex-shadow-elevated:0 0 0 1px #0000000f, 0 12px 32px -4px #0000001f, 0 4px 12px -2px #00000014;--ex-accent:#6366f1;--ex-accent-hover:#4f46e5;--ex-accent-strong:#4f46e5;--ex-accent-soft:#6366f11f;--ex-primary-button-bg:#4f46e5;--ex-primary-button-fg:#fff;--ex-text:#1f2937;--ex-fg:#1f2937;--ex-text-muted:#6b7280;--ex-hover:#0000000d;--ex-shape-hover-bg:#fff;--ex-radius-dock:16px;--ex-radius-btn:10px;--ex-radius-panel:14px;--ex-btn-w:56px;--ex-btn-h:48px;--ex-grid-line:#0000000f;--ex-error:#dc2626;--ex-error-soft:#dc262614;--ex-error-border:#dc262666;--ex-error-text:#b91c1c}[data-theme=dark]{--ex-bg:#111114;--ex-canvas-grid:#ffffff0d;--ex-ui-bg:#1c1c20;--ex-ui-bg-glass:#1c1c20e0;--ex-border:#ffffff1a;--ex-shadow:0 4px 28px #0000008c, 0 0 1px #ffffff0f;--ex-shadow-sm:0 2px 12px #0006;--ex-shadow-elevated:0 0 0 1px #ffffff1a, 0 14px 38px -4px #000000a6, 0 4px 14px -2px #00000073;--ex-accent:#818cf8;--ex-accent-hover:#a5b4fc;--ex-accent-strong:#a5b4fc;--ex-accent-soft:#818cf82e;--ex-primary-button-bg:#5754c4;--ex-primary-button-fg:#fff;--ex-text:#f3f4f6;--ex-fg:#f3f4f6;--ex-text-muted:#9ca3af;--ex-hover:#ffffff14;--ex-shape-hover-bg:#ffffff0f;--ex-grid-line:#ffffff0b;--ex-error:#f87171;--ex-error-soft:#f871711a;--ex-error-border:#f8717173;--ex-error-text:#fca5a5}*{box-sizing:border-box;margin:0;padding:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{color:var(--ex-text);background:var(--ex-bg);-webkit-font-smoothing:antialiased;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Oxygen,Ubuntu,sans-serif;overflow:hidden}.app-container{width:100vw;height:100vh;position:relative;overflow:hidden}.app-workspace{display:contents}.app-chrome{z-index:50;pointer-events:none;justify-content:space-between;align-items:center;padding:12px 14px 12px 18px;display:flex;position:fixed;top:0;left:0;right:0}.app-chrome__actions{pointer-events:none;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:8px;max-width:min(78vw,760px);display:flex;overflow-x:auto}.app-chrome__actions::-webkit-scrollbar{display:none}.app-chrome__actions>*{pointer-events:auto;flex-shrink:0}.autosave-status{height:38px;color:var(--ex-text-muted);white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:0 10px;font-size:11px;display:inline-flex}.autosave-status__dot{background:var(--ex-text-muted);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ex-text-muted) 14%, transparent);border-radius:50%;flex:none}.autosave-status--saving .autosave-status__dot{background:var(--ex-accent);animation:1s ease-in-out infinite autosave-pulse}.autosave-status--saved .autosave-status__dot,.autosave-status--synced .autosave-status__dot{background:#22c55e;box-shadow:0 0 0 3px #22c55e24}.autosave-status--syncing .autosave-status__dot{background:var(--ex-accent);animation:1s ease-in-out infinite autosave-pulse}.autosave-status--error{color:var(--ex-danger,#ef4444)}.autosave-status--error .autosave-status__dot{background:var(--ex-danger,#ef4444);box-shadow:0 0 0 3px #ef444424}@keyframes autosave-pulse{50%{opacity:.35}}.collab-status{position:relative}.collab-pill{height:38px;color:var(--ex-text);background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--ex-border);cursor:pointer;box-shadow:var(--ex-shadow-sm);border-radius:10px;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}[data-theme=dark] .collab-pill{color:var(--ex-text);background:var(--ex-ui-bg-glass)}.collab-pill:hover{background:var(--ex-hover);color:var(--ex-text)}.collab-pill:focus-visible{outline:2px solid var(--ex-accent);outline-offset:2px}.collab-pill__label{white-space:nowrap}.collab-pill__room{color:var(--ex-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-weight:500;overflow:hidden}.collab-dot{background:var(--ex-text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.collab-dot--connected{background:#22c55e;box-shadow:0 0 0 2px #22c55e2e}.collab-dot--connecting{background:#f59e0b;animation:1.1s ease-in-out infinite collab-pulse}.collab-dot--error{background:#ef4444}@keyframes collab-pulse{0%,to{opacity:1}50%{opacity:.35}}.collab-popover{background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--ex-border);border-radius:var(--ex-radius-panel);min-width:260px;box-shadow:var(--ex-shadow-elevated);flex-direction:column;gap:10px;padding:14px;animation:.15s cubic-bezier(.16,1,.3,1) modal-enter;display:flex;position:absolute;top:calc(100% + 8px);right:0}.collab-popover__title{color:var(--ex-text);font-size:13px;font-weight:600}.collab-popover__row{align-items:center;gap:6px;font-size:12px;display:flex}.collab-popover__muted{color:var(--ex-text-muted)}.collab-popover__peers{flex-direction:column;gap:6px;margin-top:8px;margin-bottom:8px;display:flex}.collab-peer-row{background:var(--ex-hover);border-radius:6px;justify-content:space-between;align-items:center;padding:4px 8px;transition:background .12s;display:flex}.collab-peer-row:hover{background:var(--ex-accent-soft)}.collab-peer-identity{align-items:center;gap:6px;display:flex}.collab-peer-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.collab-peer-name{color:var(--ex-text);font-size:13px}.collab-peer-follow-btn{width:auto;height:22px;min-height:22px;margin:0;padding:2px 8px;font-size:11px}.collab-members{border-top:1px solid var(--ex-border);padding-top:8px}.collab-members summary{cursor:pointer;color:var(--ex-text);font-size:12px;font-weight:600}.collab-members__form{grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:8px;display:grid}.collab-members__owner-id{color:var(--ex-text-muted);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;margin-top:8px;font-size:11px;display:grid}.collab-members__owner-id code{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ex-text);overflow:hidden}.collab-members__owner-id button{padding:4px 7px;font-size:11px}.collab-members__form input,.collab-members__form select{min-width:0;color:var(--ex-text);background:var(--ex-bg);border:1px solid var(--ex-border);border-radius:6px;padding:7px 8px;font-size:12px}.collab-members__form input{grid-column:1/-1}.collab-members__form button{margin:0}.collab-members__list{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.collab-members__list li{color:var(--ex-text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.collab-members__list li button{flex:none;margin:0;padding:3px 6px;font-size:10px}.collab-members__list code{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ex-text);overflow:hidden}.collab-popover__label{color:var(--ex-text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.collab-popover__label input{color:var(--ex-text);background:var(--ex-bg);border:1px solid var(--ex-border);border-radius:6px;outline:none;padding:7px 10px;font-size:13px;transition:border-color .12s}.collab-popover__label input:focus-visible{border-color:var(--ex-accent);outline:2px solid var(--ex-accent);outline-offset:1px}.collab-popover__hint{color:var(--ex-text-muted);font-size:11px;line-height:1.4}.collab-popover__error{color:#ef4444;background:#ef444414;border-radius:6px;padding:6px 8px;font-size:12px}.collab-btn{cursor:pointer;border:none;border-radius:6px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .12s,color .12s}.collab-btn:disabled{opacity:.5;cursor:not-allowed}.collab-btn--primary{background:var(--ex-primary-button-bg);color:var(--ex-primary-button-fg)}.collab-btn--primary:hover:not(:disabled){background:var(--ex-accent-hover)}.collab-btn--secondary{background:var(--ex-hover);color:var(--ex-text)}.collab-btn--secondary:hover{background:var(--ex-border)}.collab-btn--share{background:var(--ex-accent-soft);color:var(--ex-accent);border:1px solid var(--ex-accent);justify-content:center;align-items:center;gap:6px;font-weight:500;display:inline-flex}.collab-btn--share:hover{background:var(--ex-accent);color:#fff}.export-popover{background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--ex-border);border-radius:var(--ex-radius-panel);min-width:290px;box-shadow:var(--ex-shadow-elevated);z-index:250;flex-direction:column;gap:12px;padding:16px;animation:.15s cubic-bezier(.16,1,.3,1) modal-enter;display:flex;position:absolute;top:calc(100% + 8px);right:0}@keyframes modal-enter{0%{opacity:0;transform:scale(.97)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes panel-slide-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.export-popover__title{color:var(--ex-text);font-size:13px;font-weight:600}.export-popover__tabs{background:var(--ex-bg);border:1px solid var(--ex-border);border-radius:6px;gap:0;padding:2px;display:flex}.export-popover__tab{color:var(--ex-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;padding:5px 8px;font-size:12px;font-weight:500;transition:background .12s,color .12s}.export-popover__tab:hover:not(.export-popover__tab--active){color:var(--ex-text)}.export-popover__tab--active{background:var(--ex-ui-bg);color:var(--ex-text);box-shadow:0 1px 2px #00000014}.export-popover__panel{flex-direction:column;gap:10px;display:flex}.export-popover__group{flex-direction:column;gap:5px;display:flex}.export-popover__label{color:var(--ex-text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.export-popover__label input[type=number],.export-popover__label input[type=text]{color:var(--ex-text);background:var(--ex-bg);border:1px solid var(--ex-border);border-radius:6px;outline:none;padding:7px 10px;font-size:13px;transition:border-color .12s}.export-popover__label input[type=number]:focus-visible,.export-popover__label input[type=text]:focus-visible{border-color:var(--ex-accent);outline:2px solid var(--ex-accent);outline-offset:1px}.export-popover__radio-row{background:var(--ex-bg);border:1px solid var(--ex-border);border-radius:6px;gap:4px;padding:3px;display:flex}.export-popover__radio{color:var(--ex-text-muted);cursor:pointer;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:4px;padding:4px 6px;font-size:12px;transition:background .12s,color .12s;display:flex}.export-popover__radio:has(input:checked){background:var(--ex-ui-bg);color:var(--ex-text)}.export-popover__radio input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.export-popover__radio:focus-within{outline:2px solid var(--ex-accent);outline-offset:1px}.export-popover__checkbox{color:var(--ex-text);cursor:pointer;align-items:center;gap:8px;font-size:12px;display:flex}.export-popover__checkbox input{accent-color:var(--ex-accent);margin:0}.export-popover__error{color:#ef4444;background:#ef444414;border-radius:6px;padding:6px 8px;font-size:12px}.export-popover__actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.resize-overlay{pointer-events:none;z-index:5;position:absolute;inset:0}.resize-handle{border:1.5px solid var(--ex-accent);pointer-events:auto;background:#fff;border-radius:2px;transition:transform .1s;position:absolute;box-shadow:0 1px 3px #0000002e}.resize-handle:hover{transform:scale(1.15)}[data-theme=dark] .resize-handle{background:#1e1e1e}.resize-handle:focus-visible{outline:2px solid var(--ex-accent);outline-offset:1px}.resize-handle--rotate{z-index:1;border-radius:50%}.resize-stem{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.resize-stem line{stroke:var(--ex-accent);stroke-width:1.5px}.text-editor{z-index:10;border:1.5px dashed var(--ex-accent);color:inherit;resize:none;white-space:pre;pointer-events:auto;background:0 0;border-radius:2px;outline:none;margin:0;padding:0;font-weight:400;line-height:1;position:absolute;overflow:hidden}.text-editor:focus{border-style:solid}.arrow-label-editor{z-index:10;border:1.5px dashed var(--ex-accent);color:inherit;text-align:center;pointer-events:auto;background:#ffffffeb;border-radius:4px;outline:none;margin:0;padding:0;font-weight:400;line-height:1;position:absolute}.arrow-label-editor:focus{border-style:solid}.app-logo{letter-spacing:-.02em;color:var(--ex-text);-webkit-user-select:none;user-select:none;background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--ex-border);box-shadow:var(--ex-shadow-sm);pointer-events:auto;border-radius:12px;align-items:center;gap:8px;padding:6px 14px;font-size:14px;font-weight:700;display:inline-flex}.theme-toggle{pointer-events:auto;border:1px solid var(--ex-border);background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(16px);width:38px;height:38px;color:var(--ex-text-muted);box-shadow:var(--ex-shadow-sm);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s,transform .12s;display:flex}.documents-toggle{white-space:nowrap;flex-shrink:0;width:auto;min-width:38px;padding:0 14px;font-size:13px;font-weight:500}.app-chrome .export-header-btn{white-space:nowrap;color:#fff;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);border:1px solid #fff3;flex-shrink:0;width:auto;min-width:38px;padding:0 14px;font-size:13px;font-weight:600;box-shadow:0 2px 10px #6366f159}.app-chrome .export-header-btn:hover{background:linear-gradient(135deg,#4f46e5 0%,#4338ca 100%);transform:translateY(-1px);box-shadow:0 4px 14px #6366f173}.theme-toggle:hover{background:var(--ex-hover);color:var(--ex-text)}.theme-toggle:focus-visible{outline:2px solid var(--ex-accent);outline-offset:2px}.theme-toggle:disabled{cursor:not-allowed;opacity:.4;box-shadow:none}.theme-toggle:disabled:hover{background:var(--ex-ui-bg);color:var(--ex-text-muted)}.theme-toggle[aria-pressed=true]{background:var(--ex-accent-soft);color:var(--ex-accent);border-color:var(--ex-accent)}.theme-toggle[aria-pressed=true]:hover{background:var(--ex-accent-soft);color:var(--ex-accent)}.search-overlay{z-index:5;background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(16px);color:var(--ex-text);border:1px solid var(--ex-border);border-radius:var(--ex-radius-dock,10px);box-shadow:var(--ex-shadow);align-items:center;gap:8px;min-width:320px;max-width:520px;padding:6px 8px 6px 10px;display:inline-flex;position:fixed;top:56px;left:50%;transform:translate(-50%)}.search-overlay__icon{color:var(--ex-text-muted);flex-shrink:0}.search-overlay__input{min-width:0;color:var(--ex-text);background:0 0;border:0;outline:0;flex:auto;padding:4px 0;font-family:inherit;font-size:13px}.search-overlay__input::placeholder{color:var(--ex-text-muted)}.search-overlay__count{color:var(--ex-text-muted);text-align:right;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;min-width:48px;font-size:11px}.search-overlay__close{color:var(--ex-text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.search-overlay__close:hover{background:var(--ex-hover);color:var(--ex-text)}.search-overlay__close:focus-visible{outline:2px solid var(--ex-accent);outline-offset:1px}.current-style-panel{z-index:10;background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--ex-border);box-shadow:var(--ex-shadow-elevated);scrollbar-width:none;white-space:nowrap;border-radius:12px;align-items:center;gap:4px;max-width:calc(100vw - 436px);padding:4px 8px;display:inline-flex;position:fixed;top:104px;left:176px;overflow-x:auto;transform:none}.app-container[data-side-panel=closed] .current-style-panel{max-width:calc(100vw - 200px)}.app-container[data-library=open][data-side-panel=open] .current-style-panel{max-width:calc(100vw - 686px)}.current-style-panel::-webkit-scrollbar{display:none}@media (width<=1100px){.app-chrome{padding:8px 10px}.app-chrome__actions{gap:6px;max-width:calc(100vw - 104px)}.collab-pill__room{display:none}.current-style-panel{scrollbar-width:none;flex-wrap:nowrap;place-content:center flex-start;max-width:calc(100vw - 200px);max-height:48px;top:96px;left:176px;overflow-x:auto;transform:none}.side-panel,.library-panel{z-index:240;width:min(320px,100vw - 24px);max-height:calc(100vh - 82px);top:58px;left:auto;right:12px}.app-container[data-library=open][data-side-panel=open] .library-panel{right:12px}.app-container[data-side-panel=open] .current-style-panel,.app-container[data-library=open] .current-style-panel{max-width:calc(100vw - 520px)}}.current-style-panel__label{text-transform:uppercase;letter-spacing:.04em;color:var(--ex-text-muted);white-space:nowrap;padding:0 4px;font-size:11px;font-weight:600}.current-style-panel__group{border-right:1px solid var(--ex-border);align-items:center;gap:3px;padding:0 4px;display:inline-flex}.current-style-panel__group:last-child{border-right:none}.current-style-panel .color-palette{grid-template-columns:repeat(5,18px);gap:2px}.current-style-panel .color-swatch{border-radius:4px;width:18px;min-width:18px;height:18px}.current-style-panel input[type=range]{width:52px;height:4px;accent-color:var(--ex-accent)}.current-style-panel__group>span{color:var(--ex-text-muted);text-align:right;min-width:24px;font-size:11px}.current-style-panel .segmented__btn{border-radius:5px;padding:2px 7px;font-size:11px;font-weight:500}.undo-redo{background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--ex-border);box-shadow:var(--ex-shadow-sm);border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.undo-redo .theme-toggle{box-shadow:none;background:0 0;border:none;border-radius:0}.undo-redo .theme-toggle:first-child{border-right:1px solid var(--ex-border)}.toolbar{z-index:200;background:var(--ex-ui-bg);border:1px solid var(--ex-border);border-radius:var(--ex-radius-dock);max-width:calc(100vw - 24px);box-shadow:var(--ex-shadow);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding:8px 10px;display:flex;position:fixed}.toolbar.toolbar--vertical{background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--ex-border);scrollbar-width:thin;border-radius:14px;flex-flow:column;justify-content:flex-start;align-items:stretch;width:auto;min-width:124px;max-width:none;max-height:calc(100vh - 84px);padding:8px 6px 10px;transition:min-width .2s cubic-bezier(.16,1,.3,1),width .2s cubic-bezier(.16,1,.3,1);top:64px;bottom:auto;left:12px;overflow:hidden auto;transform:none}.toolbar.toolbar--vertical .tool-group--tools{grid-template-columns:repeat(3, var(--ex-btn-w));justify-content:center;gap:4px;display:grid}.toolbar.toolbar--vertical.toolbar--collapsed{align-items:center;width:88px;min-width:88px;padding:8px 6px 10px}.toolbar.toolbar--vertical.toolbar--collapsed .tool-group--tools{grid-template-columns:repeat(2,36px);gap:4px}.toolbar.toolbar--vertical.toolbar--collapsed .tool-group--stroke,.toolbar.toolbar--vertical.toolbar--collapsed .tool-group--fill,.toolbar.toolbar--vertical.toolbar--collapsed .separator,.toolbar.toolbar--vertical.toolbar--collapsed .group-label,.toolbar.toolbar--vertical.toolbar--collapsed .stroke-width-label,.toolbar.toolbar--vertical.toolbar--collapsed .fill-summary{display:none}.toolbar.toolbar--vertical.toolbar--collapsed .tool-group--export{flex-direction:column;gap:4px}.toolbar.toolbar--vertical.toolbar--collapsed .tool-button{flex-direction:row;gap:0;width:36px;height:36px;min-height:0}.toolbar.toolbar--vertical.toolbar--collapsed .tool-button__chord{display:none}.toolbar-toggle{border-bottom:1px solid var(--ex-border);justify-content:flex-end;align-items:center;margin-bottom:4px;padding:0 4px 6px;display:flex}.toolbar-toggle__btn{width:28px;height:28px;color:var(--ex-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,transform .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.toolbar-toggle__btn:hover{background:var(--ex-hover);color:var(--ex-text)}.toolbar-toggle__btn:focus-visible{outline:2px solid var(--ex-accent);outline-offset:2px}.toolbar-toggle__chevron{width:16px;height:16px;transition:transform .2s cubic-bezier(.16,1,.3,1)}.toolbar--collapsed .toolbar-toggle__btn{transform:rotate(180deg)}.toolbar.toolbar--vertical .tool-group--stroke,.toolbar.toolbar--vertical .tool-group--fill{flex-direction:column;align-items:stretch;gap:6px}.toolbar.toolbar--vertical .stroke-width-label{flex-direction:row;justify-content:space-between;align-items:center;gap:8px;padding:2px 4px;display:flex}.toolbar.toolbar--vertical .stroke-width-label input[type=range]{cursor:pointer;flex:1;width:auto}.toolbar.toolbar--vertical .color-label{white-space:normal;flex-direction:column;align-items:stretch;gap:6px}.toolbar.toolbar--vertical .tool-group--export{justify-content:center;gap:4px;display:flex}.stroke-width-readout{color:var(--ex-text-muted);font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.toolbar .export-header-btn{color:var(--ex-text);border:1px solid var(--ex-border);background:0 0}.toolbar .export-header-btn:hover{border-color:var(--ex-accent);color:var(--ex-accent)}.group-label{color:var(--ex-text-muted);text-transform:uppercase;letter-spacing:.06em;padding:0 6px;font-size:11px;font-weight:600}.color-palette{grid-template-columns:repeat(4,1fr);gap:4px;padding:0 2px;display:grid}.color-swatch{aspect-ratio:1;border:1px solid var(--ex-border);cursor:pointer;background-clip:padding-box;border-radius:6px;width:100%;padding:0;transition:border-color .12s,box-shadow .12s}.color-swatch:hover{border-color:var(--ex-accent-soft)}.color-swatch.active{border-color:var(--ex-accent)}.color-swatch:focus-visible{outline:2px solid var(--ex-accent);outline-offset:2px}.color-swatch--transparent{background-color:#fff;background-image:linear-gradient(45deg,#d0d0d0 25%,#0000 25%),linear-gradient(-45deg,#d0d0d0 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#d0d0d0 75%),linear-gradient(-45deg,#0000 75%,#d0d0d0 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:8px 8px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;position:relative}[data-theme=dark] .color-swatch--transparent{background-color:#2a2a2a;background-image:linear-gradient(45deg,#555 25%,#0000 25%),linear-gradient(-45deg,#555 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#555 75%),linear-gradient(-45deg,#0000 75%,#555 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:8px 8px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}.color-swatch--picker{display:block;position:relative;overflow:hidden}.color-swatch--picker input[type=color]{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.fill-summary{color:var(--ex-text-muted);align-items:center;gap:6px;padding:0 6px;font-size:11px;display:flex}.fill-summary__chip{border:1px solid var(--ex-border);border-radius:4px;flex-shrink:0;width:14px;height:14px;display:inline-block}.fill-summary__chip[data-empty=true]{background-color:#0000;background-image:linear-gradient(45deg,#d0d0d0 25%,#0000 25%),linear-gradient(-45deg,#d0d0d0 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#d0d0d0 75%),linear-gradient(-45deg,#0000 75%,#d0d0d0 75%);background-position:0 0,0 3px,3px -3px,-3px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:6px 6px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}[data-theme=dark] .fill-summary__chip[data-empty=true]{background-color:#0000;background-image:linear-gradient(45deg,#555 25%,#0000 25%),linear-gradient(-45deg,#555 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#555 75%),linear-gradient(-45deg,#0000 75%,#555 75%);background-position:0 0,0 3px,3px -3px,-3px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:6px 6px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}.toolbar.toolbar--vertical .stroke-width-label input[type=range]{width:100%}.toolbar.toolbar--vertical .tool-group--export{flex-direction:row;justify-content:center;gap:4px}.toolbar.toolbar--vertical .separator{width:100%;height:1px;margin:4px 0}.tool-group{align-items:center;gap:2px;display:flex}.tool-button{min-height:44px;width:var(--ex-btn-w);height:var(--ex-btn-h);border-radius:var(--ex-radius-btn);color:var(--ex-text-muted);cursor:pointer;will-change:transform;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:background .12s,color .12s,transform .1s;display:flex}.tool-button svg{flex-shrink:0;width:22px;height:22px}.tool-button:hover{background:var(--ex-hover);color:var(--ex-text)}.tool-button:disabled{opacity:.42;cursor:not-allowed}.tool-button:disabled:hover{background:0 0}.tool-button:active{transform:scale(.96)}.tool-button.active{background:var(--ex-accent-strong);color:#fff;box-shadow:inset 0 0 0 1px #ffffff2e,0 2px 8px #6366f159}.tool-button:focus-visible{outline:2px solid var(--ex-accent);outline-offset:2px}.separator{background:var(--ex-border);flex-shrink:0;width:1px;height:22px;margin:0 4px}.stroke-width-label,.color-label{color:var(--ex-text-muted);white-space:nowrap;align-items:center;gap:8px;padding:0 6px;font-size:12px;display:flex}.stroke-width-label input[type=range]{width:88px;height:4px;accent-color:var(--ex-accent);cursor:pointer}.color-label input[type=color]{border:1px solid var(--ex-border);cursor:pointer;background:var(--ex-ui-bg);border-radius:8px;width:30px;height:30px;padding:2px}.side-panel{z-index:100;scrollbar-width:thin;background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--ex-border);border-radius:var(--ex-radius-panel);width:240px;max-height:min(560px,100vh - 100px);box-shadow:var(--ex-shadow-elevated);flex-direction:column;gap:14px;padding:14px 14px 16px;animation:.18s cubic-bezier(.16,1,.3,1) panel-slide-in;display:flex;position:fixed;top:56px;left:auto;right:16px;overflow-y:auto}.side-panel h4{color:var(--ex-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:11px;font-weight:600}.side-panel-section{border-top:1px solid var(--ex-border);flex-direction:column;gap:6px;padding-top:10px;display:flex}.shape-list ul{flex-direction:column;gap:4px;list-style:none;display:flex}.shape-item{background:var(--ex-bg);cursor:pointer;color:var(--ex-text);border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;transition:border-color .12s,background .12s;display:flex}.shape-item:hover{border-color:var(--ex-border);background:var(--ex-shape-hover-bg)}.shape-item.selected{background:var(--ex-accent-soft);color:var(--ex-accent);border-color:#6965db40}[data-theme=dark] .shape-item.selected{border-color:#a5b4fc59}.shape-item--grouped{padding-left:24px}.shape-item__group-badge{background:var(--ex-accent-soft);width:16px;height:16px;color:var(--ex-accent);letter-spacing:.04em;border-radius:4px;flex:none;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.shape-type{text-transform:capitalize;flex:auto}.shape-id{opacity:.65;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:11px}.empty-text{color:var(--ex-text-muted);font-size:13px;font-style:italic}.properties-panel{border-top:1px solid var(--ex-border);flex-direction:column;gap:10px;padding-top:6px;display:flex}.properties-panel h4{text-transform:uppercase;letter-spacing:.05em;color:var(--ex-text-muted);font-size:11px;font-weight:700}.property-value{text-transform:capitalize;background:var(--ex-accent-soft);color:var(--ex-accent);border-radius:6px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.property-row{align-items:center;gap:8px;font-size:13px;display:flex}.property-row .property-label,.property-row label{min-width:76px;max-width:76px;color:var(--ex-text-muted);flex-shrink:0;font-size:12px;font-weight:500}.property-row--segmented{flex-wrap:wrap}.segmented{background:var(--ex-bg);border:1px solid var(--ex-border);border-radius:7px;display:inline-flex;overflow:hidden}.segmented__btn{appearance:none;border:none;border-right:1px solid var(--ex-border);color:var(--ex-text);cursor:pointer;background:0 0;padding:4px 9px;font-family:inherit;font-size:11px;font-weight:500;transition:background-color .12s,color .12s,border-color .12s}.segmented__btn:last-child{border-right:none}.segmented__btn:hover:not(.active):not(:disabled){background:var(--ex-hover)}.segmented__btn.active{background:var(--ex-accent-strong);color:#fff}.property-row input[type=range]{accent-color:var(--ex-accent);flex:1}.property-row input[type=color]{border:1px solid var(--ex-border);cursor:pointer;border-radius:6px;width:28px;height:28px;padding:0}.property-row input[type=number]{border:1px solid var(--ex-border);background:var(--ex-bg);color:var(--ex-fg);border-radius:4px;flex:1;padding:3px 6px;font-family:inherit;font-size:13px}.property-suffix{color:var(--ex-text-muted);text-align:left;min-width:12px;font-size:12px}.property-reset{border:1px solid var(--ex-border);cursor:pointer;width:24px;height:24px;color:var(--ex-text-muted);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex}.property-reset:hover:not(:disabled){color:var(--ex-text);border-color:var(--ex-text-muted)}.property-reset:disabled{opacity:.3;cursor:not-allowed}.property-row--slider{padding:0 0 4px}.property-slider{width:100%;accent-color:var(--ex-accent);flex:100%;margin:0}.property-row input:disabled,.property-row .segmented__btn:disabled{opacity:.4;cursor:not-allowed}.property-row input[type=color]:disabled{filter:grayscale(.85)}.property-row--arrange{flex-wrap:wrap}.arrange-buttons{background:var(--ex-bg);border:1px solid var(--ex-border);border-radius:7px;display:inline-flex;overflow:hidden}.arrange-buttons .icon-btn{appearance:none;border:none;border-right:1px solid var(--ex-border);color:var(--ex-text);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:5px 8px;transition:background-color .12s,color .12s,border-color .12s;display:inline-flex}.arrange-buttons .icon-btn:last-child{border-right:none}.arrange-buttons .icon-btn:hover:not(:disabled){background:var(--ex-hover);color:var(--ex-accent)}.arrange-buttons .icon-btn.active{background:var(--ex-accent-soft);color:var(--ex-accent)}.arrange-buttons .icon-btn:disabled{opacity:.35;cursor:not-allowed}.canvas-container{z-index:0;background-color:var(--ex-bg);background-image:radial-gradient(var(--ex-canvas-grid) 1px, transparent 1px);background-size:22px 22px;position:absolute;inset:0}.canvas-container canvas{background:0 0;display:block}@media (width<=900px){.app-container[data-side-panel=open] .side-panel{width:220px;max-height:min(60vh,460px);top:52px;left:auto;right:12px}.app-container[data-side-panel=closed] .side-panel{display:none}}@media (width>=561px) and (width<=900px){.toolbar.toolbar--vertical{flex-flow:wrap;justify-content:center;align-items:center;width:min(880px,100vw - 24px);min-width:0;max-width:calc(100vw - 24px);max-height:min(34vh,280px);padding:8px 10px;inset:auto auto 12px 50%;transform:translate(-50%)}.toolbar.toolbar--vertical .tool-group--tools{flex-flow:wrap;justify-content:center}.toolbar.toolbar--vertical .tool-group--stroke,.toolbar.toolbar--vertical .tool-group--fill{flex-direction:row;align-items:center}.toolbar.toolbar--vertical .stroke-width-label,.toolbar.toolbar--vertical .color-label{white-space:nowrap;flex-direction:row;align-items:center}.toolbar.toolbar--vertical .separator{width:1px;height:22px;margin:0 4px}}.canvas-hint{pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.canvas-hint__inner{text-align:center;color:var(--ex-text-muted);-webkit-user-select:none;user-select:none;background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--ex-border);border-radius:var(--ex-radius-panel);max-width:520px;box-shadow:var(--ex-shadow);padding:28px 36px;animation:.4s cubic-bezier(.16,1,.3,1) modal-enter}.canvas-hint__title{color:var(--ex-text);letter-spacing:-.01em;margin-bottom:6px;font-size:22px;font-weight:600}.canvas-hint__sub{margin-bottom:22px;font-size:14px}.canvas-hint__shortcuts{grid-template-columns:repeat(4,auto);justify-content:center;gap:10px 18px;margin-bottom:22px;font-size:13px;list-style:none;display:grid}.canvas-hint__shortcuts li{align-items:center;gap:6px;display:flex}.canvas-hint__shortcuts kbd{min-width:24px;height:22px;color:var(--ex-text);background:var(--ex-ui-bg);border:1px solid var(--ex-border);border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;padding:0 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:11px;font-weight:600;display:inline-flex}.canvas-hint__footer{color:var(--ex-text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex}.canvas-hint__footer kbd{min-width:20px;height:18px;color:var(--ex-text);background:var(--ex-ui-bg);border:1px solid var(--ex-border);border-bottom-width:2px;border-radius:3px;justify-content:center;align-items:center;padding:0 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:10px;font-weight:600;display:inline-flex}.canvas-hint__sep{opacity:.5}.ds-cmd-hint{align-items:center;gap:4px;display:inline-flex}.ds-cmd-hint__sep{color:var(--ex-text-muted);-webkit-user-select:none;user-select:none;font-size:10px;font-weight:500;line-height:1}.ds-kbd{min-width:24px;height:22px;color:var(--ex-text);background:var(--ex-ui-bg);border:1px solid var(--ex-border);border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;padding:0 6px;font-family:Cascadia Code,ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:11px;font-weight:600;display:inline-flex}@media (width<=560px){.canvas-hint__shortcuts{grid-template-columns:repeat(2,auto)}}.zoom-indicator{background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--ex-border);height:38px;box-shadow:var(--ex-shadow-sm);border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.zoom-btn{height:100%;color:var(--ex-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 8px;transition:background .12s,color .12s;display:inline-flex}.zoom-btn:hover{background:var(--ex-hover);color:var(--ex-text)}.zoom-btn:focus-visible{outline:2px solid var(--ex-accent);outline-offset:-2px}.zoom-btn--readout{color:var(--ex-text);border-left:1px solid var(--ex-border);border-right:1px solid var(--ex-border);gap:5px;padding:0 10px;font-size:12px;font-weight:500}.zoom-readout{font-variant-numeric:tabular-nums;text-align:center;min-width:38px}@media (width<=560px){.app-container[data-selection=active] .current-style-panel{display:none}.current-style-panel{flex-wrap:nowrap;width:auto;max-width:none;max-height:86px;top:108px;left:12px;right:12px;overflow:auto hidden;transform:none}.app-container[data-side-panel=open] .side-panel{width:min(240px,100vw - 24px);max-height:min(40vh,320px);inset:auto auto 100px 12px}.app-container[data-library=open] .library-panel{width:min(240px,100vw - 24px);max-height:min(40vh,320px);inset:auto 12px 100px auto}.app-container[data-library=open][data-side-panel=open] .library-panel{right:12px}.toolbar.toolbar--vertical{overscroll-behavior:contain;flex-flow:wrap;justify-content:center;align-items:center;min-width:0;max-width:calc(100vw - 16px);height:min(42vh,360px);min-height:0;max-height:min(42vh,360px);padding:6px 8px;inset:auto auto 12px 50%;overflow-y:auto;transform:translate(-50%)}.toolbar.toolbar--vertical .tool-group--tools{flex-flow:wrap;justify-content:center}.toolbar.toolbar--vertical .tool-group--stroke{flex-direction:row;align-items:center}.toolbar.toolbar--vertical .stroke-width-label,.toolbar.toolbar--vertical .color-label{white-space:nowrap;flex-direction:row}.toolbar.toolbar--vertical .stroke-width-label input[type=range]{width:88px}.toolbar.toolbar--vertical .separator{width:1px;height:22px;margin:0 4px}.tool-button{width:38px;height:38px}.tool-button__chord{display:none}}.shape-item__handle{cursor:grab;width:14px;height:14px;color:var(--ex-text-muted);opacity:.55;touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.shape-item__handle:hover{opacity:1}.shape-item__handle:active{cursor:grabbing}.shape-item__handle:focus-visible{outline:2px solid var(--ex-accent);outline-offset:2px;border-radius:2px}.shape-item.dragging{opacity:.35;background:var(--ex-bg)}.insertion-line{background:var(--ex-accent);pointer-events:none;border-radius:1px;height:2px;margin:1px 4px}.ruler,.ruler__corner{background:var(--ex-ui-bg);border-color:var(--ex-border);pointer-events:none;z-index:4;box-sizing:border-box;position:absolute;overflow:hidden}.ruler__corner{border-right:1px solid var(--ex-border);border-bottom:1px solid var(--ex-border);z-index:5;top:0;left:0}.ruler--top{border-bottom:1px solid var(--ex-border);top:0}.ruler--left{border-right:1px solid var(--ex-border);left:0}.ruler__tick{color:var(--ex-text-muted);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;line-height:1;position:absolute}.ruler--top .ruler__tick{width:1px;height:100%}.ruler--top .ruler__tick:before{content:"";background:var(--ex-text-muted);width:1px;height:6px;position:absolute;bottom:0;left:0}.ruler--top .ruler__label{white-space:nowrap;position:absolute;top:1px;left:3px}.ruler--left .ruler__tick{width:100%;height:1px}.ruler--left .ruler__tick:before{content:"";background:var(--ex-text-muted);width:6px;height:1px;position:absolute;top:0;right:0}.ruler--left .ruler__label{white-space:nowrap;position:absolute;top:-5px;right:8px}.cursor-readout{z-index:50;font-variant-numeric:tabular-nums;color:var(--ex-text-muted);background:var(--ex-ui-bg);border:1px solid var(--ex-border);pointer-events:none;-webkit-user-select:none;user-select:none;box-shadow:var(--ex-shadow-sm);border-radius:6px;padding:3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;position:fixed;bottom:10px;left:12px}@media (width<=560px){.cursor-readout{display:none}}.context-menu{z-index:1000;background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--ex-border);border-radius:var(--ex-radius-panel);min-width:200px;max-width:280px;box-shadow:var(--ex-shadow-elevated);color:var(--ex-text);flex-direction:column;gap:0;padding:4px;font-size:13px;animation:.12s cubic-bezier(.16,1,.3,1) modal-enter;display:flex;position:fixed}.context-menu__item{color:var(--ex-text);font:inherit;text-align:left;cursor:pointer;appearance:none;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;width:100%;padding:7px 10px;display:flex}.context-menu__item:hover:not(.context-menu__item--disabled),.context-menu__item:focus-visible{background:var(--ex-hover);outline:none}.context-menu__item--disabled{color:var(--ex-text-muted);cursor:default;background:0 0}.context-menu__item--disabled:focus-visible{background:0 0}.context-menu__item--danger{color:#d6342b}.context-menu__item--danger:hover:not(.context-menu__item--disabled),.context-menu__item--danger:focus-visible{background:#d6342b1f}.context-menu__icon-placeholder{flex-shrink:0;width:14px;height:14px;display:inline-block}.context-menu__label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.context-menu__shortcut{color:var(--ex-text-muted);margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px}.context-menu__separator{background:var(--ex-border);pointer-events:none;height:1px;margin:4px 2px}.remote-cursor{pointer-events:none;z-index:5;will-change:transform;transition:transform 60ms linear;position:absolute;top:0;left:0}.remote-cursor__arrow{filter:drop-shadow(0 1px 1px #0003);display:block}.remote-cursor__label{color:#fff;font-size:11px;font-family:var(--ex-font-ui,system-ui, -apple-system, sans-serif);white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:3px;margin-left:14px;padding:2px 6px;display:inline-block;box-shadow:0 1px 2px #00000040}.collab-popover__identity{align-items:center;gap:6px}.collab-name-input{border:1px solid var(--ex-border);background:var(--ex-ui-bg);min-width:0;color:var(--ex-text);font:inherit;border-radius:4px;flex:1;padding:4px 8px}.collab-name-input:focus{border-color:var(--ex-text);outline:none}.collab-popover__swatches{grid-template-columns:repeat(6,1fr);gap:4px;margin:4px 0 8px;display:grid}.collab-swatch{aspect-ratio:1;cursor:pointer;border:2px solid #0000;border-radius:4px;width:100%;padding:0;transition:transform 60ms}.collab-swatch:hover{transform:scale(1.08)}.collab-swatch--selected{border-color:var(--ex-text);box-shadow:inset 0 0 0 1px var(--ex-ui-bg)}.collab-popover__peer-count{margin-top:2px}.library-panel{z-index:100;scrollbar-width:thin;background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--ex-border);border-radius:var(--ex-radius-panel);width:240px;max-height:min(560px,100vh - 100px);box-shadow:var(--ex-shadow-elevated);flex-direction:column;gap:12px;padding:14px 14px 16px;animation:.18s cubic-bezier(.16,1,.3,1) panel-slide-in;display:flex;position:fixed;top:56px;right:16px;overflow-y:auto}.app-container[data-library=open][data-side-panel=open] .library-panel{right:264px}.library-panel__header{justify-content:space-between;align-items:center;gap:8px;min-height:28px;display:flex}.library-panel__title{text-transform:uppercase;letter-spacing:.06em;color:var(--ex-text-muted);margin:0;font-size:11px;font-weight:600}.library-panel__title-input{border:1px solid var(--ex-border);background:var(--ex-bg);color:var(--ex-text);border-radius:6px;flex:auto;padding:4px 6px;font-size:13px}.library-panel__error{background:var(--ex-accent-soft);color:var(--ex-accent);border-radius:6px;padding:6px 8px;font-size:12px;line-height:1.35}.library-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.library-card{border:1px solid var(--ex-border);background:var(--ex-bg);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;gap:4px;padding:6px;display:flex;position:relative}.library-card:hover{border-color:var(--ex-accent);background:var(--ex-shape-hover-bg)}.library-card:active{cursor:grabbing}.library-card__thumb{aspect-ratio:1;object-fit:contain;background:var(--ex-bg);pointer-events:none;border-radius:4px;width:100%}.library-card__name{color:var(--ex-text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.library-card__name-input{border:1px solid var(--ex-border);background:var(--ex-bg);color:var(--ex-text);border-radius:4px;padding:2px 4px;font-size:12px}.library-card__delete{background:var(--ex-ui-bg);width:18px;height:18px;color:var(--ex-text-muted);cursor:pointer;opacity:0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;transition:opacity .12s;display:flex;position:absolute;top:4px;right:4px}.library-card:hover .library-card__delete,.library-card__delete:focus-visible{opacity:1}.library-card__delete:hover{background:var(--ex-accent-soft);color:var(--ex-accent)}.library-empty{text-align:center;color:var(--ex-text-muted);padding:24px 8px;font-size:13px;line-height:1.4}.library-card input,.library-card img{-webkit-user-drag:none}.palette-backdrop{z-index:60;background:#0000002e;justify-content:center;padding-top:88px;display:flex;position:fixed;inset:0}[data-theme=dark] .palette-backdrop{background:#00000073}.palette{background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(20px);width:480px;max-width:calc(100vw - 32px);max-height:60vh;color:var(--ex-text);border:1px solid var(--ex-border);border-radius:var(--ex-radius-dock,10px);box-shadow:var(--ex-shadow-elevated);flex-direction:column;animation:.15s cubic-bezier(.16,1,.3,1) modal-enter;display:flex;overflow:hidden}.palette__input-row{border-bottom:1px solid var(--ex-border);align-items:center;gap:8px;padding:8px 12px;display:flex}.palette__icon{color:var(--ex-text-muted);flex-shrink:0}.palette__input{min-width:0;color:var(--ex-text);background:0 0;border:0;outline:0;flex:auto;padding:4px 0;font-family:inherit;font-size:14px}.palette__input::placeholder{color:var(--ex-text-muted)}.palette__hint{color:var(--ex-text-muted);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;font-size:10px}.palette__results{flex:auto;padding:4px 0 8px;overflow-y:auto}.palette__empty{color:var(--ex-text-muted);text-align:center;padding:16px 12px;font-size:12px}.palette__section{padding:4px 0}.palette__section-header{letter-spacing:.04em;text-transform:uppercase;color:var(--ex-text-muted);padding:6px 12px 4px;font-size:10px;font-weight:600}.palette__row{color:var(--ex-text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:6px 12px;font-size:13px;display:flex}.palette__row--active,.palette__row:hover{background:var(--ex-hover)}.palette__row-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.palette__row-shortcut{color:var(--ex-text-muted);background:var(--ex-bg);border:1px solid var(--ex-border);border-radius:4px;flex-shrink:0;padding:2px 6px;font-family:inherit;font-size:11px}.documents-modal{z-index:100;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.documents-modal__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:default;background:#00000085;border:0;position:absolute;inset:0}.documents-panel{z-index:1;border:1px solid var(--ex-border);background:var(--ex-ui-bg-glass);-webkit-backdrop-filter:blur(20px);width:min(360px,100vw - 32px);max-height:calc(100vh - 80px);box-shadow:var(--ex-shadow-elevated);color:var(--ex-text);border-radius:12px;padding:16px;animation:.18s cubic-bezier(.16,1,.3,1) modal-enter;position:relative;overflow:auto}.documents-panel__header,.documents-panel__create,.documents-panel__item{align-items:center;gap:8px;display:flex}.documents-panel__header{justify-content:space-between;margin-bottom:12px}.documents-panel__header>div{gap:3px;display:grid}.documents-panel__header small{color:var(--ex-text-muted);font-size:.78rem}.documents-panel__header button,.documents-panel__item button,.documents-panel__create button{color:var(--ex-text);background:var(--ex-hover);cursor:pointer;border:0;border-radius:6px;padding:6px 8px;transition:background .12s,color .12s}.documents-panel__header button:hover,.documents-panel__item button:hover,.documents-panel__create button:hover{background:var(--ex-accent-soft);color:var(--ex-accent)}.documents-panel__create input{border:1px solid var(--ex-border);min-width:0;color:var(--ex-text);background:var(--ex-bg);border-radius:6px;flex:1;padding:7px 8px;transition:border-color .12s}.documents-panel__create input:focus{border-color:var(--ex-accent);outline:none}.documents-panel__signin{border:1px solid var(--ex-border);background:var(--ex-bg);border-radius:9px;gap:7px;margin-top:12px;padding:14px;display:grid}.documents-panel__signin span{color:var(--ex-text-muted);font-size:.82rem}.documents-panel__signin button{width:fit-content;color:var(--ex-primary-button-fg);background:var(--ex-primary-button-bg);cursor:pointer;border:0;border-radius:6px;margin-top:3px;padding:7px 10px;transition:background .12s}.documents-panel__signin button:hover{background:var(--ex-accent-hover)}.documents-panel__signin button.secondary,.documents-panel__error button.secondary{color:var(--ex-text);border-color:var(--ex-border);background:0 0}.documents-panel__signin button.secondary:hover,.documents-panel__error button.secondary:hover{background:var(--ex-hover);border-color:var(--ex-text-muted)}.documents-panel__list{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.documents-panel__item{border-radius:8px;justify-content:space-between;padding:7px}.documents-panel__item>button:first-child{background:0 0;flex:1;justify-items:start;display:grid}.documents-panel__inline-edit,.documents-panel__inline-confirm{align-items:center;gap:6px;width:100%;display:flex}.documents-panel__inline-edit input{border:1px solid var(--ex-border);background:var(--ex-bg);color:var(--ex-text);border-radius:6px;flex:1;padding:4px 8px;font-size:13px}.documents-panel__inline-confirm span{color:var(--ex-text);flex:1;font-size:12px}.documents-panel__inline-confirm button.danger{color:#ef4444;border-color:#ef444466}.documents-panel__item small,.documents-panel__empty{color:var(--ex-text-muted)}.documents-panel__error{color:var(--ex-error);gap:5px;margin-top:10px;font-size:.85rem;display:grid}.documents-panel__error span{color:var(--ex-error-text);overflow-wrap:anywhere}.documents-panel__error button{border:1px solid var(--ex-error-border);width:fit-content;color:var(--ex-error);background:var(--ex-error-soft);cursor:pointer;border-radius:6px;padding:5px 8px;transition:background .15s,border-color .15s}.documents-panel__error button:hover{background:var(--ex-error-soft);border-color:var(--ex-error)}.documents-panel__signout{color:var(--ex-text-muted);border:1px solid var(--ex-border);background:0 0;border-radius:6px;align-self:flex-start;padding:5px 9px;font-size:11px}.documents-panel__signout:hover{color:var(--ex-text);background:var(--ex-hover)}@media (width<=600px){.app-chrome{padding:8px}.app-chrome__actions{justify-content:flex-start;gap:5px;max-width:calc(100vw - 76px)}.documents-toggle{width:38px;padding:0;font-size:0}.documents-toggle:after{content:"▣";font-size:16px}.autosave-status{justify-content:center;width:28px;padding:0}.autosave-status__label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.documents-modal{align-items:end;padding:12px}.documents-panel{width:100%;max-height:min(72vh,560px)}}@media (width<=560px){.app-container[data-side-panel=open] .side-panel,.app-container[data-library=open] .library-panel{bottom:calc(42vh + 24px)}.app-container[data-library=open] .library-panel,.app-container[data-library=open][data-side-panel=open] .library-panel{left:auto;right:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}@media (prefers-contrast:more){:root:not([data-theme=dark]){--ex-ui-bg-glass:var(--ex-ui-bg);--ex-border:#0000008c;--ex-hover:#0000001f;--ex-canvas-grid:#0000002e}[data-theme=dark]{--ex-ui-bg-glass:var(--ex-ui-bg);--ex-border:#ffffff8c;--ex-hover:#ffffff24;--ex-canvas-grid:#ffffff2e}.toolbar.toolbar--vertical,.library-panel,.side-panel,.command-palette,.export-dialog{-webkit-backdrop-filter:none!important}:focus-visible{outline-offset:3px!important;outline-width:3px!important}}
