@font-face{font-family:Nunito;src:url(/fonts/Nunito-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/Nunito-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/Nunito-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Rubik;src:url(/fonts/Rubik-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Rubik;src:url(/fonts/Rubik-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@layer reset,base,tokens,layout,components,utilities;@layer reset{*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}body{line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}}@layer base{html,body{height:100%}body{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--color-bg);color:var(--color-text)}#root{height:100%;isolation:isolate}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}::selection{background:var(--selection-fill);color:var(--color-text)}}@layer tokens{:root{color-scheme:light dark;--color-primary: oklch(62% .15 6);--color-primary-hover: oklch(57% .17 6);--color-primary-active: oklch(52% .19 6);--color-danger: oklch(60% .2 25);--color-success: oklch(60% .18 145);--color-warning: oklch(75% .15 85);--color-bg: light-dark(oklch(98% .005 250), oklch(12% .01 260));--color-surface: light-dark(oklch(100% 0 0), oklch(18% .01 260));--color-surface-elevated: light-dark(oklch(100% 0 0), oklch(22% .01 260));--color-border: light-dark(oklch(90% .01 250), oklch(28% .01 260));--color-border-strong: light-dark(oklch(80% .01 250), oklch(38% .01 260));--color-text: light-dark(oklch(20% .02 250), oklch(92% .01 250));--color-text-muted: light-dark(oklch(50% .02 250), oklch(65% .01 250));--color-text-subtle: light-dark(oklch(65% .01 250), oklch(50% .01 250));--canvas-bg: light-dark(oklch(98% .003 250), oklch(14% .008 260));--canvas-grid: light-dark(oklch(94% .005 250), oklch(20% .005 260));--canvas-grid-major: light-dark(oklch(88% .008 250), oklch(26% .008 260));--selection-fill: light-dark( oklch(from var(--color-primary) l c h / .12), oklch(from var(--color-primary) 65% c h / .2) );--selection-stroke: var(--color-primary);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-xs: light-dark(0 1px 2px oklch(0% 0 0 / .04), 0 1px 2px oklch(0% 0 0 / .2));--shadow-sm: light-dark(0 1px 3px oklch(0% 0 0 / .06), 0 1px 3px oklch(0% 0 0 / .25));--shadow-md: light-dark(0 4px 6px oklch(0% 0 0 / .06), 0 4px 6px oklch(0% 0 0 / .3));--shadow-lg: light-dark(0 10px 15px oklch(0% 0 0 / .08), 0 10px 15px oklch(0% 0 0 / .35));--shadow-xl: light-dark(0 20px 25px oklch(0% 0 0 / .1), 0 20px 25px oklch(0% 0 0 / .4));--transition-fast: .1s ease-out;--transition-normal: .2s ease-out;--transition-slow: .3s ease-out;--z-canvas: 0;--z-shapes: 10;--z-selection: 20;--z-toolbar: 100;--z-panel: 110;--z-popover: 200;--z-tooltip: 250;--z-modal: 300;--z-toast: 400;--toolbar-width: 52px;--header-height: 56px;--panel-height: 56px;--color-surface-alt: light-dark(oklch(98% .003 250), oklch(16% .01 260));--color-surface-hover: light-dark(oklch(96% .005 250), oklch(22% .01 260))}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}}@layer layout{.app-layout{display:grid;grid-template-rows:var(--header-height) 1fr;grid-template-columns:1fr;grid-template-areas:"header" "canvas";height:100dvh;overflow:hidden;position:relative}.app-header{grid-area:header;z-index:var(--z-toolbar)}.app-canvas{grid-area:canvas;position:relative;overflow:hidden;background:var(--canvas-bg);touch-action:none;overscroll-behavior:none}.app-canvas canvas{touch-action:none}.app-layout.presenter-mode{grid-template-rows:1fr;grid-template-areas:"canvas"}.app-layout.presenter-mode .app-canvas{height:100dvh}.presenter-hint{position:fixed;top:1rem;left:50%;translate:-50% 0;margin:0;padding:.75rem 1.25rem;background:light-dark(oklch(15% .01 260 / .9),oklch(25% .01 260 / .9));color:#eee;border:none;border-radius:.5rem;font-size:.875rem;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:var(--z-modal)}.presenter-hint::backdrop{background:transparent}.canvas-layer-transparent canvas,.canvas-layer-background canvas{background:transparent!important}}@layer components{.panel{background:light-dark(oklch(100% 0 0 / .9),oklch(18% .01 260 / .9));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.header{position:relative;z-index:var(--z-panel);display:flex;align-items:center;justify-content:space-between;height:56px;padding-inline:var(--space-6);background:var(--color-surface);border-block-end:1px solid var(--color-border);flex-shrink:0}.header .header-left,.header .header-right{display:flex;align-items:center;gap:var(--space-2)}.header .header-center{display:flex;align-items:center;gap:var(--space-1)}.app-header-actions{display:flex;align-items:center;gap:var(--space-3)}.logo{display:flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--color-text);text-decoration:none}.logo:hover{color:var(--color-primary)}.logo-image{height:32px;width:auto;display:block}.logo-text{font-family:Rubik,system-ui,sans-serif;font-weight:700;font-size:1.25rem;letter-spacing:-.02em}.back-link{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--color-text-muted);border-radius:var(--radius-md);transition:color var(--transition-fast),background var(--transition-fast)}.back-link:hover{color:var(--color-text);background:var(--color-border)}.canvas-name{font-weight:500;font-size:.9375rem;color:var(--color-text);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}.canvas-name[title]{cursor:text}.canvas-name-input{font-weight:500;font-size:.9375rem;color:var(--color-text);background:var(--color-surface-alt);border:1px solid var(--color-primary);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);width:200px;outline:none}.canvas-name-input:focus{box-shadow:0 0 0 2px oklch(from var(--color-primary) l c h / .2)}.icon-button-small{width:24px;height:24px;min-width:24px}.toolbar{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);background:var(--color-surface)}.toolbar .toolbar-group{display:flex;flex-direction:column;gap:var(--space-1)}.toolbar .toolbar-group:not(:last-child){padding-block-end:var(--space-2);border-block-end:1px solid var(--color-border)}.toolbar-floating{position:fixed;left:var(--space-4);top:50%;transform:translateY(-50%);z-index:var(--z-toolbar);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);background:light-dark(oklch(100% 0 0 / .92),oklch(18% .01 260 / .92));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.layer-toolbar{position:fixed;top:calc(var(--header-height) + var(--space-4));left:50%;transform:translate(-50%);z-index:var(--z-toolbar);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);background:light-dark(oklch(100% 0 0 / .92),oklch(18% .01 260 / .92));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:row}.layer-toolbar .toolbar-group{flex-direction:row;border-block-end:none;padding-block-end:0}.layer-toolbar .toolbar-group:not(:last-child){border-block-end:none;padding-block-end:0}.divider{width:1px;background:var(--color-border);align-self:center}.divider--sm{height:20px}.divider--md{height:24px}.divider--lg{height:28px}.tool-button{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);transition:background var(--transition-fast),color var(--transition-fast)}.tool-button:hover{background:var(--color-border);color:var(--color-text)}.tool-button[aria-pressed=true],.tool-button.active{background:var(--color-primary);color:#fff}.tool-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tool-button svg{width:20px;height:20px}.icon-button{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);transition:background var(--transition-fast),color var(--transition-fast)}.icon-button:hover{background:var(--color-border);color:var(--color-text)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.icon-button.active{background:var(--selection-fill);color:var(--color-primary)}.icon-button svg{width:18px;height:18px}.icon-button.icon-button-danger:hover{color:var(--color-danger)}.style-panel{position:fixed;bottom:var(--space-4);left:50%;transform:translate(-50%);z-index:var(--z-panel);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);background:light-dark(oklch(100% 0 0 / .92),oklch(18% .01 260 / .92));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.stroke-width-button{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-sm);background:transparent;transition:background var(--transition-fast)}.stroke-width-button:hover{background:var(--color-border)}.stroke-width-button.active{background:var(--selection-fill)}.stroke-width-button .stroke-width-preview{width:16px;background:var(--color-text);border-radius:1px}.stroke-style-icon{display:block}.text-align-options{display:flex;gap:var(--space-1)}.text-align-button{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);transition:background var(--transition-fast),color var(--transition-fast)}.text-align-button:hover{background:var(--color-border);color:var(--color-text)}.text-align-button.active{background:var(--selection-fill);color:var(--color-text)}.text-align-button svg{width:16px;height:16px}.font-style-options{display:flex;gap:var(--space-1)}.font-style-button{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:.875rem;font-family:Georgia,serif;transition:background var(--transition-fast),color var(--transition-fast)}.font-style-button:hover{background:var(--color-border);color:var(--color-text)}.font-style-button.active{background:var(--selection-fill);color:var(--color-text)}.font-style-button strong{font-weight:700}.font-style-button em{font-style:italic}.style-input{width:56px;height:28px;padding:0 var(--space-2);font-size:.8125rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;transition:border-color var(--transition-fast)}.style-input:hover{border-color:var(--color-border-strong)}.style-input:focus{outline:none;border-color:var(--color-primary)}.style-input::-webkit-inner-spin-button,.style-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.style-input[type=number]{-moz-appearance:textfield}.style-select{height:28px;padding:0 var(--space-2);font-size:.8125rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition-fast)}.style-select:hover{border-color:var(--color-border-strong)}.style-select:focus{outline:none;border-color:var(--color-primary)}.color-picker{position:relative;display:flex;align-items:center;gap:var(--space-2)}.color-picker .color-picker-label{font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.color-input-native{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.color-presets{display:flex;gap:2px}.color-preset{position:relative;width:18px;height:18px;border-radius:var(--radius-sm);border:1px solid var(--color-border);cursor:pointer;transition:transform var(--transition-fast),border-color var(--transition-fast)}.color-preset:hover{transform:scale(1.1);border-color:var(--color-text-muted)}.color-preset.color-preset-selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.color-swatch{position:relative;width:28px;height:28px;border-radius:var(--radius-sm);border:2px solid var(--color-border);cursor:pointer;transition:border-color var(--transition-fast)}.color-swatch:hover{border-color:var(--color-primary)}.color-swatch:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.color-swatch-transparent{position:absolute;inset:2px;background:linear-gradient(135deg,transparent 45%,var(--color-danger) 45%,var(--color-danger) 55%,transparent 55%),repeating-conic-gradient(#e4e4e4 0% 25%,#fff 25% 50%);background-size:100% 100%,8px 8px;border-radius:2px}.color-swatch-button{background-clip:padding-box}.color-picker-popover-trigger{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast)}.color-picker-popover-trigger:hover{background-color:var(--color-surface-hover)}.color-picker-popover-trigger .color-picker-label{font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.color-picker-popover-trigger .color-swatch-trigger{width:20px;height:20px;border-width:1px}.color-picker-custom{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.color-picker-custom-label{font-size:.75rem;font-weight:500;color:var(--color-text-muted)}.color-picker-custom-input{position:relative}.color-picker-custom-input .color-swatch{width:24px;height:24px}.slider{--slider-track: var(--color-border);--slider-fill: var(--color-primary);--slider-thumb: var(--color-surface);appearance:none;width:100px;height:4px;background:var(--slider-track);border-radius:var(--radius-full);cursor:pointer}.slider::-webkit-slider-thumb{appearance:none;width:14px;height:14px;background:var(--slider-thumb);border:2px solid var(--slider-fill);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.slider::-moz-range-thumb{width:14px;height:14px;background:var(--slider-thumb);border:2px solid var(--slider-fill);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-sm)}[popover]{margin:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:light-dark(oklch(100% 0 0 / .95),oklch(20% .01 260 / .95));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-xl)}[popover]::backdrop{background:transparent}.style-popover{position:fixed;bottom:calc(var(--space-4) + 56px);left:50%;transform:translate(-50%);min-width:180px}.style-popover .popover-title{font-size:.6875rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-block-end:var(--space-2)}.style-popover .popover-content{display:flex;flex-direction:column;gap:var(--space-3)}.style-popover .popover-divider{height:1px;background:var(--color-border);margin:var(--space-1) 0}.style-popover .popover-section{display:flex;flex-direction:column;gap:var(--space-2)}.style-popover .popover-section .popover-section-label{font-size:.6875rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.style-popover-trigger{display:flex;align-items:center;justify-content:center;gap:var(--space-1);min-width:36px;height:32px;padding:0 var(--space-2);border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);font-size:.75rem;font-weight:500;transition:background var(--transition-fast),color var(--transition-fast)}.style-popover-trigger:hover{background:var(--color-border);color:var(--color-text)}.style-popover-trigger[aria-expanded=true]{background:var(--selection-fill);color:var(--color-text)}.style-popover-trigger svg{width:16px;height:16px}.style-popover-anchor{position:relative;display:flex;align-items:center}.popover-chevron{width:12px;height:12px;opacity:.6}.color-presets-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.stroke-width-preview-trigger{width:20px;background:var(--color-text);border-radius:1px;min-height:2px}.stroke-width-options-popover{display:flex;flex-direction:column;gap:var(--space-1)}.stroke-width-options-popover .stroke-width-button{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2);justify-content:flex-start}.stroke-width-options-popover .stroke-width-button .stroke-width-label{font-size:.75rem;color:var(--color-text-muted)}.stroke-width-options-popover .stroke-width-button.active .stroke-width-label{color:var(--color-text)}.stroke-style-options-popover,.fill-style-options-popover{display:flex;flex-direction:column;gap:var(--space-1)}.popover-option-button{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:.8125rem;text-align:left;transition:background var(--transition-fast)}.popover-option-button:hover{background:var(--color-border)}.popover-option-button.active{background:var(--selection-fill)}.popover-slider{display:flex;flex-direction:column;gap:var(--space-2);min-width:160px}.popover-slider .popover-slider-header{display:flex;justify-content:space-between;align-items:center}.popover-slider .popover-slider-label{font-size:.75rem;font-weight:500;color:var(--color-text-muted)}.popover-slider .popover-slider-value{font-size:.75rem;font-weight:500;color:var(--color-text);min-width:32px;text-align:right}.popover-slider .slider{width:100%}.menu-dropdown{position:fixed;min-width:180px;margin:0;inset:unset}.menu-dropdown:popover-open{display:flex;flex-direction:column;gap:var(--space-1)}.menu-dropdown-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:.8125rem;color:var(--color-text);text-align:left;background:transparent;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.menu-dropdown-item:hover{background:var(--color-border)}.menu-dropdown-item svg{flex-shrink:0;color:var(--color-text-muted)}.menu-dropdown-item--active{background:var(--selection-fill);color:var(--color-primary)}.menu-dropdown-item--active svg{color:var(--color-primary)}.menu-dropdown-item--danger{color:var(--color-danger)}.menu-dropdown-item--danger:hover{background:color-mix(in oklch,var(--color-danger) 10%,transparent)}.menu-dropdown-item--danger svg{color:var(--color-danger)}.menu-dropdown-divider{height:1px;background:var(--color-border);margin:var(--space-1) 0}.zoom-indicator{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:.75rem;font-weight:500;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast)}.zoom-indicator:hover{border-color:var(--color-border-strong)}.modal-popover{position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;max-width:min(480px,calc(100vw - var(--space-8)));padding:0;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:light-dark(oklch(100% 0 0 / .98),oklch(18% .01 260 / .98));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-xl);opacity:1;transform:scale(1) translateY(0);transition:opacity .2s ease-out,transform .2s ease-out,overlay .2s ease-out allow-discrete,display .2s ease-out allow-discrete}@starting-style{.modal-popover{opacity:0;transform:scale(.96) translateY(8px)}}.modal-popover:not(:popover-open){opacity:0;transform:scale(.96) translateY(8px)}.modal-popover::backdrop{background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:1;transition:opacity .2s ease-out}@starting-style{.modal-popover::backdrop{opacity:0}}.modal-popover:not(:popover-open)::backdrop{opacity:0}.confirm-dialog{margin:auto;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:light-dark(oklch(100% 0 0 / .98),oklch(18% .01 260 / .98));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-xl);max-width:min(400px,calc(100vw - var(--space-8)));opacity:1;transform:scale(1) translateY(0);transition:opacity .2s ease-out,transform .2s ease-out,overlay .2s ease-out allow-discrete,display .2s ease-out allow-discrete}@starting-style{.confirm-dialog{opacity:0;transform:scale(.96) translateY(8px)}}.confirm-dialog:not([open]){opacity:0;transform:scale(.96) translateY(8px)}.confirm-dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:1;transition:opacity .2s ease-out}@starting-style{.confirm-dialog::backdrop{opacity:0}}.confirm-dialog.dialog-danger .dialog-title{color:var(--color-danger)}.confirm-dialog.dialog-unsaved-changes{max-width:min(560px,calc(100vw - var(--space-8)))}.confirm-dialog.dialog-unsaved-changes .dialog-actions{justify-content:flex-start;flex-wrap:nowrap}.confirm-dialog.dialog-unsaved-changes .dialog-actions .btn-secondary{flex:0 0 auto;white-space:nowrap}.confirm-dialog.dialog-unsaved-changes .dialog-actions .btn-danger,.confirm-dialog.dialog-unsaved-changes .dialog-actions .btn-primary{flex:1 1 0;min-width:0;padding-inline:var(--space-5);white-space:nowrap}@media(max-width:640px){.confirm-dialog.dialog-unsaved-changes .dialog-actions{flex-wrap:wrap}.confirm-dialog.dialog-unsaved-changes .dialog-actions>button{flex:1 1 100%}}.modal-content,.confirm-dialog-body,.confirm-dialog form{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.modal-title,.dialog-title{font-size:1.25rem;font-weight:600;color:var(--color-text);margin:0}.modal-subtitle{margin:var(--space-2) 0 0;font-size:.875rem;color:var(--color-text-muted);line-height:1.5}.dialog-message{font-size:.9375rem;color:var(--color-text-muted);margin:0;line-height:1.5}.dialog-message strong{color:var(--color-text)}.dialog-error{font-size:.875rem;color:var(--color-danger);margin:0;padding:var(--space-2) var(--space-3);background:light-dark(oklch(from var(--color-danger) 95% .02 h),oklch(from var(--color-danger) 15% .03 h));border-radius:var(--radius-md)}.modal-actions,.dialog-actions{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-2)}.save-to-cloud-dialog{max-width:min(400px,calc(100vw - var(--space-8)))}.save-to-cloud-button{gap:var(--space-2)}.form-field{display:flex;flex-direction:column;gap:var(--space-2)}.form-field>label,.form-field>legend{font-size:.875rem;font-weight:500;color:var(--color-text)}.form-field input[type=text],.form-field input[type=number],.form-field select{height:40px;padding:0 var(--space-3);font-size:.9375rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}:is(.form-field input[type=text],.form-field input[type=number],.form-field select):hover{border-color:var(--color-border-strong)}:is(.form-field input[type=text],.form-field input[type=number],.form-field select):focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px oklch(from var(--color-primary) l c h / .15)}:is(.form-field input[type=text],.form-field input[type=number],.form-field select)::placeholder{color:var(--color-text-muted)}.form-hint{font-size:.75rem;color:var(--color-text-muted)}.form-error{padding:var(--space-2) var(--space-3);font-size:.875rem;color:var(--color-danger);background:oklch(from var(--color-danger) l c h / .1);border-radius:var(--radius-md)}.radio-group{display:flex;gap:var(--space-3);padding:var(--space-2)}.radio-label{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);font-size:.9375rem;font-weight:500;cursor:pointer;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:light-dark(oklch(100% 0 0),oklch(16% .005 260));transition:all .15s ease}.radio-label:hover{border-color:var(--color-primary);background:light-dark(oklch(from var(--color-primary) 97% .02 h),oklch(from var(--color-primary) 20% .02 h))}.radio-label:has(input:checked){border-color:var(--color-primary);background:light-dark(oklch(from var(--color-primary) 96% .03 h),oklch(from var(--color-primary) 22% .04 h));box-shadow:0 0 0 1px var(--color-primary)}.radio-label:has(input:focus-visible){outline:2px solid var(--color-primary);outline-offset:2px}.radio-label input[type=radio]{appearance:none;width:18px;height:18px;border:2px solid var(--color-border-strong);border-radius:50%;background:light-dark(oklch(100% 0 0),oklch(14% 0 0));transition:all .15s ease;flex-shrink:0;margin-bottom:-4px}.radio-label input[type=radio]:checked{border-color:var(--color-primary);background:var(--color-primary);box-shadow:inset 0 0 0 3px light-dark(oklch(100% 0 0),oklch(14% 0 0))}.dimension-inputs{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.dimension-inputs input{width:100px}.dimension-inputs span{color:var(--color-text-muted)}.btn-primary,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;padding:0 var(--space-4);font-size:.875rem;font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.btn-primary{color:#fff;background:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:active{background:var(--color-primary-active)}.btn-small{height:32px;padding:0 var(--space-3);font-size:.8125rem;gap:var(--space-1)}.btn-secondary{color:var(--color-text);background:transparent;border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-border);border-color:var(--color-border-strong)}.btn-danger{color:#fff;background:var(--color-danger)}.btn-danger:hover{background:oklch(from var(--color-danger) calc(l - .05) c h)}.canvas-list-layout{display:flex;flex-direction:column;height:100dvh;overflow-y:auto;background:var(--color-bg)}.canvas-list-breadcrumbs{padding:var(--space-2) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.canvas-list-section{padding:var(--space-6)}.section-title{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-4)}.canvas-list-empty{text-align:center;padding:var(--space-12) var(--space-6);color:var(--color-text-muted)}.canvas-list-empty p{margin:0}.canvas-list-empty .canvas-list-empty-hint{font-size:.875rem;margin-top:var(--space-2)}.canvas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.canvas-grid-promo{display:flex;align-items:center;justify-content:center;padding:var(--space-6);border-radius:var(--radius-lg);border:1px dashed var(--color-border);background:var(--color-surface-alt);color:var(--color-text-muted);text-align:center;min-height:200px}.canvas-grid-promo p{margin:0;font-size:.875rem;line-height:1.5;max-width:200px}.canvas-card{position:relative;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);overflow:hidden;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.canvas-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.canvas-card.is-dragging{opacity:.5}.canvas-card.featured{border-color:var(--color-primary)}.canvas-card-link{display:block;color:inherit;text-decoration:none}.canvas-card-thumbnail{position:relative;aspect-ratio:16 / 9;background:light-dark(oklch(97% .003 250),oklch(10% .008 260));background-image:linear-gradient(var(--color-border) 1px,transparent 1px),linear-gradient(90deg,var(--color-border) 1px,transparent 1px);background-size:20px 20px;overflow:hidden}.canvas-card-thumbnail img{width:100%;height:100%;object-fit:cover}.canvas-card-badge{position:absolute;top:var(--space-2);left:var(--space-2);display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);font-size:.6875rem;font-weight:600;color:var(--color-text-muted);background:light-dark(oklch(100% 0 0 / .9),oklch(20% .01 260 / .9));border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.canvas-card-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-muted);opacity:.5}.canvas-card-skeleton{width:100%;height:100%;background:linear-gradient(90deg,light-dark(oklch(95% 0 0),oklch(15% 0 0)) 0%,light-dark(oklch(90% 0 0),oklch(20% 0 0)) 50%,light-dark(oklch(95% 0 0),oklch(15% 0 0)) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite ease-in-out}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.canvas-card-info{padding:var(--space-3)}.canvas-card-name{font-size:.9375rem;font-weight:500;color:var(--color-text);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-card-meta{display:flex;gap:var(--space-2);font-size:.75rem;color:var(--color-text-muted);margin:var(--space-1) 0 0}.canvas-card-type:after{content:"·";margin-left:var(--space-2)}.canvas-card-actions,.folder-card-actions{position:absolute;top:var(--space-2);right:var(--space-2);display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}.canvas-card:hover .canvas-card-actions,.folder-card:hover .folder-card-actions{opacity:1}.canvas-card-action,.folder-card-action{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);background:light-dark(oklch(100% 0 0 / .9),oklch(20% .01 260 / .9));border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}:is(.canvas-card-action,.folder-card-action):hover{color:var(--color-text);background:var(--color-surface)}:is(.canvas-card-action,.folder-card-action).delete-action:hover{color:var(--color-danger)}:is(.canvas-card-action,.folder-card-action).drag-handle{cursor:grab}:is(.canvas-card-action,.folder-card-action).drag-handle:active{cursor:grabbing}.canvas-card-action{width:32px;height:32px}.folder-card{position:relative;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;overflow:hidden;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.folder-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.folder-card.is-dragging{opacity:.5}.folder-card.is-drop-target{border-color:var(--color-primary);background:var(--selection-fill)}.folder-card-thumbnail{display:flex;align-items:center;justify-content:center;aspect-ratio:16 / 9;background:light-dark(oklch(97% .003 250),oklch(10% .008 260))}.folder-card-icon{color:var(--color-primary)}.folder-card-info{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3)}.folder-card-name{font-size:.9375rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.folder-card-count{font-size:.75rem;color:var(--color-text-muted)}.folder-card-action{width:28px;height:28px}.breadcrumbs{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-6);font-size:.875rem}.breadcrumb-segment{display:flex;align-items:center;gap:var(--space-1)}.breadcrumb-item{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);color:var(--color-text-muted);background:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.breadcrumb-item:hover:not(:disabled){color:var(--color-text);background:var(--color-surface-hover)}.breadcrumb-item.is-current{color:var(--color-text);cursor:default}.breadcrumb-item:disabled{cursor:default}.breadcrumb-separator{color:var(--color-text-subtle)}.modal-popover.modal-small{max-width:min(360px,calc(100vw - var(--space-8)))}.move-canvas-modal{max-width:min(400px,calc(100vw - var(--space-8)))}.move-modal-search{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.move-modal-search svg{flex-shrink:0;color:var(--color-text-muted)}.move-modal-search input{flex:1;border:none;background:transparent;outline:none;font-size:.875rem;color:var(--color-text)}.move-modal-search input::placeholder{color:var(--color-text-muted)}.move-modal-folders{display:flex;flex-direction:column;gap:var(--space-1);max-height:240px;overflow-y:auto;margin:var(--space-2) calc(-1 * var(--space-3));padding:0 var(--space-3)}.move-modal-folder-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:background-color .15s ease}.move-modal-folder-item svg{flex-shrink:0;color:var(--color-text-muted)}.move-modal-folder-item:hover:not(:disabled){background:var(--color-surface-hover)}.move-modal-folder-item:disabled{cursor:default;opacity:.7}.move-modal-folder-item.is-current{background:light-dark(oklch(from var(--color-primary) 95% .03 h),oklch(from var(--color-primary) 20% .03 h))}.move-modal-folder-name{flex:1;font-size:.875rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.move-modal-current-badge{flex-shrink:0;font-size:.75rem;color:var(--color-primary);padding:var(--space-1) var(--space-2);background:light-dark(oklch(from var(--color-primary) 90% .05 h),oklch(from var(--color-primary) 25% .05 h));border-radius:var(--radius-sm)}.move-modal-no-results{font-size:.875rem;color:var(--color-text-muted);text-align:center;padding:var(--space-4)}.dialog-warning{padding:var(--space-3);background:light-dark(oklch(95% .05 30),oklch(25% .05 30));border-radius:var(--radius-md);color:var(--color-danger);font-size:.875rem}.toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);min-width:280px;max-width:min(480px,calc(100vw - var(--space-8)));border-radius:var(--radius-md);background:light-dark(oklch(100% 0 0 / .98),oklch(22% .01 260 / .98));border:1px solid var(--color-border);box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:1;transform:translate(-50%) translateY(0);transition:opacity .2s ease-out,transform .2s ease-out}@starting-style{.toast{opacity:0;transform:translate(-50%) translateY(16px)}}.toast:not(:popover-open){opacity:0;transform:translate(-50%) translateY(16px)}.toast::backdrop{background:transparent}.toast-icon{flex-shrink:0}.toast-success .toast-icon{color:var(--color-success)}.toast-error .toast-icon{color:var(--color-danger)}.toast-info .toast-icon{color:var(--color-primary)}.toast-message{flex:1;font-size:.875rem;color:var(--color-text)}.toast-close{display:grid;place-items:center;width:24px;height:24px;border-radius:var(--radius-sm);color:var(--color-text-muted);transition:background var(--transition-fast),color var(--transition-fast)}.toast-close:hover{background:var(--color-border);color:var(--color-text)}}@layer components{.auth-layout{display:flex;flex-direction:column;min-height:100vh;background:var(--color-bg)}.auth-page{display:flex;align-items:center;justify-content:center;flex:1;padding:var(--space-6)}.auth-loading{color:var(--color-text-muted)}.auth-unified{display:flex;flex-direction:column;max-width:680px;width:100%;background:light-dark(oklch(from var(--color-primary) 97% .015 h),oklch(from var(--color-primary) 14% .025 h));border:1px solid var(--color-primary);border-radius:var(--radius-lg);box-shadow:0 4px 24px #00000014;overflow:hidden}.auth-unified-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid light-dark(oklch(from var(--color-primary) 90% .03 h),oklch(from var(--color-primary) 22% .04 h))}.auth-unified-title{font-size:1.375rem;font-weight:600;color:var(--color-text);margin:0}.auth-unified-price{font-size:1.125rem;font-weight:600;color:var(--color-primary)}.auth-unified-price-period{font-size:.875rem;font-weight:400;color:var(--color-text-muted)}.auth-unified-content{display:flex;gap:0}.auth-section{flex:1;display:flex;flex-direction:column;justify-content:center;padding:var(--space-6);border-right:1px solid light-dark(oklch(from var(--color-primary) 90% .03 h),oklch(from var(--color-primary) 22% .04 h))}.auth-section-note{font-size:.8125rem;color:var(--color-text-muted);text-align:center;margin:var(--space-4) 0 0 0}.perks-section{flex:1;display:flex;flex-direction:column;justify-content:center;padding:var(--space-6)}.auth-legal-footer{display:flex;justify-content:center;align-items:center;gap:var(--space-2);padding-top:var(--space-6);font-size:.875rem;color:var(--color-text-muted)}.auth-legal-footer a{color:var(--color-text-muted);text-decoration:underline}.auth-legal-footer a:hover{color:var(--color-text)}.auth-footer-separator{color:var(--color-border)}.auth-buttons{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.auth-button{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);width:100%;border-radius:var(--radius-md);font-size:1rem;font-weight:600;transition:all .15s ease;cursor:pointer}.auth-button--google{background:var(--color-surface-elevated);color:var(--color-text);border:1px solid var(--color-border)}.auth-button--google:hover{background:var(--color-surface-hover);border-color:var(--color-border-strong)}.auth-button svg{flex-shrink:0}.feature-list{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.feature-item{display:flex;align-items:center;gap:var(--space-2);font-size:.9375rem;color:var(--color-text)}.feature-item svg{width:16px;height:16px;color:var(--color-success);flex-shrink:0}@media(max-width:600px){.auth-unified-content{flex-direction:column}.auth-section{border-right:none;border-bottom:1px solid light-dark(oklch(from var(--color-primary) 90% .03 h),oklch(from var(--color-primary) 22% .04 h))}}.account-layout{display:flex;flex-direction:column;height:100vh;overflow-y:auto;background:var(--color-bg)}.account-page{flex:1;display:flex;flex-direction:column;gap:var(--space-6);max-width:600px;margin:0 auto;padding:var(--space-8) var(--space-4);width:100%}.account-title{font-size:1.75rem;font-weight:600;color:var(--color-text);margin:0}.account-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.account-section-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0 0 var(--space-4)}.account-info{display:flex;align-items:flex-start;gap:var(--space-4)}.account-avatar{width:64px;height:64px;border-radius:var(--radius-full);overflow:hidden;flex-shrink:0;background:var(--color-primary);display:flex;align-items:center;justify-content:center}.account-avatar-initials{font-size:1.5rem;font-weight:600;color:#fff;line-height:1;text-transform:uppercase}.account-details{flex:1;display:flex;flex-direction:column;gap:var(--space-2);margin:0}.account-detail-row{display:flex;flex-direction:column;gap:var(--space-1)}.account-detail-row dt{font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.account-detail-row dd{font-size:.9375rem;color:var(--color-text);margin:0}.account-share-links{display:flex;flex-direction:column;gap:var(--space-3)}.account-share-links-loading,.account-share-links-error{font-size:.875rem;color:var(--color-text-muted);margin:0}.account-share-links-error{color:var(--color-danger)}.account-share-links-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);color:var(--color-text-muted);text-align:center}.account-share-links-empty svg{opacity:.5}.account-share-links-empty p{margin:0;font-size:.875rem}.account-share-links-empty-hint{font-size:.8125rem!important;opacity:.8}.account-share-links-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.account-share-link-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.account-share-link-item.status-inactive{opacity:.7}.account-share-link-item.status-expired,.account-share-link-item.status-maxed{opacity:.6;border-color:var(--color-warning)}.account-share-link-info{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;flex:1}.account-share-link-header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.account-share-link-target{display:flex;align-items:center;gap:var(--space-1);font-size:.9375rem;font-weight:500;color:var(--color-text)}.account-share-link-target svg{flex-shrink:0;color:var(--color-text-muted)}.account-share-link-badge{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;padding:.125rem .375rem;border-radius:var(--radius-sm);background:light-dark(oklch(92% .01 260),oklch(25% .02 260));color:var(--color-text-muted)}.account-share-link-status{font-size:.75rem;font-weight:500;padding:.125rem .375rem;border-radius:var(--radius-sm)}.account-share-link-status.status-active{background:light-dark(oklch(from var(--color-success) 92% .05 h),oklch(from var(--color-success) 25% .05 h));color:var(--color-success)}.account-share-link-status.status-inactive{background:light-dark(oklch(92% .01 260),oklch(25% .02 260));color:var(--color-text-muted)}.account-share-link-status.status-expired,.account-share-link-status.status-maxed{background:light-dark(oklch(from var(--color-warning) 92% .05 h),oklch(from var(--color-warning) 25% .05 h));color:var(--color-warning)}.account-share-link-meta{display:flex;align-items:center;gap:var(--space-3);font-size:.75rem;color:var(--color-text-muted)}.account-share-link-meta span{display:flex;align-items:center;gap:var(--space-1)}.account-share-link-label{font-weight:500;color:var(--color-text)!important}.account-share-link-actions{display:flex;gap:var(--space-1);flex-shrink:0}.account-danger-zone{border-color:light-dark(oklch(from var(--color-danger) 85% .1 h),oklch(from var(--color-danger) 25% .1 h));background:light-dark(oklch(from var(--color-danger) 98% .01 h),oklch(from var(--color-danger) 12% .02 h))}.account-danger-zone .account-section-title{color:var(--color-danger)}.account-support{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-start}.account-support p{color:var(--color-text-secondary);font-size:var(--text-sm)}.account-support-btn{display:inline-flex;align-items:center;gap:var(--space-2);text-decoration:none}.account-danger-content{display:flex;flex-direction:column;gap:var(--space-4)}.account-danger-warning{display:flex;gap:var(--space-3);padding:var(--space-3);background:light-dark(oklch(from var(--color-danger) 95% .02 h),oklch(from var(--color-danger) 15% .03 h));border-radius:var(--radius-md)}.account-danger-warning svg{flex-shrink:0;color:var(--color-danger)}.account-danger-warning p{font-size:.875rem;color:var(--color-text);margin:0;line-height:1.5}.account-delete-btn{align-self:flex-start;padding:var(--space-2) var(--space-4);font-size:.875rem;font-weight:500;color:#fff;background:var(--color-danger);border:none;border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast)}.account-delete-btn:hover:not(:disabled){opacity:.9}.account-delete-btn:disabled{opacity:.6;cursor:not-allowed}.right-panel{position:fixed;right:var(--space-4);top:calc(var(--header-height) + var(--space-4));z-index:var(--z-toolbar);min-width:160px;max-height:calc(100vh - var(--header-height) - var(--space-8));border-radius:var(--radius-lg);background:light-dark(oklch(100% 0 0 / .9),oklch(18% .01 260 / .9));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column}.right-panel-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:var(--space-3) var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border)}.right-panel-list{overflow-y:auto;padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.right-panel-item{display:block;width:100%;padding:var(--space-2) var(--space-3);text-align:left;font-size:.875rem;color:var(--color-text);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.right-panel-item:hover{background:var(--color-surface-alt)}.right-panel-item.right-panel-item--selected{background:light-dark(oklch(from var(--color-primary) l c h / .1),oklch(from var(--color-primary) l c h / .2));border-color:var(--color-primary);color:var(--color-primary)}.right-panel--groups{max-width:200px;max-height:300px}.right-panel-actions{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border)}.animation-step-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:.875rem;color:var(--color-text);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.animation-step-item:hover{background:var(--color-surface-alt)}.animation-step-item:hover .animation-step-remove{opacity:1}.animation-step-number{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-full);background:light-dark(oklch(from var(--color-primary) l c h / .12),oklch(from var(--color-primary) l c h / .2));color:var(--color-primary);font-size:.7rem;font-weight:700;flex-shrink:0}.animation-step-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.animation-step-drag{flex-shrink:0;color:var(--color-text-muted);cursor:grab}.animation-step-drag:active{cursor:grabbing}.animation-step-remove{flex-shrink:0;opacity:0;transition:opacity var(--transition-fast)}.right-panel--animation{min-width:200px;max-width:260px;right:var(--space-4)}.app-layout:has(.right-panel--groups) .right-panel--animation{right:calc(var(--space-4) + 210px)}.present-split-button{display:flex;align-items:center;position:relative;anchor-name:--present-split}.present-split-chevron{margin-left:-4px;width:20px;height:32px;border-radius:0 var(--radius-md) var(--radius-md) 0}.present-popover{position:absolute;inset:unset;position-anchor:--present-split;top:calc(anchor(bottom) + 4px);right:anchor(right);margin:0;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:light-dark(oklch(100% 0 0 / .9),oklch(18% .01 260 / .9));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-lg);min-width:180px}.present-popover::backdrop{background:transparent}.present-popover-option{display:block;width:100%;padding:var(--space-2) var(--space-3);text-align:left;font-size:.875rem;color:var(--color-text);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer}.present-popover-option:hover{background:var(--color-surface-alt)}}@layer utilities{.canvas-layer{position:absolute;inset:0}.canvas-layer-z0{z-index:0}.canvas-layer-z2{z-index:2}.center-full-height{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-muted)}.center-full-viewport{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--color-text-muted)}.not-found-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:var(--space-4);color:var(--color-text-muted)}.not-found-title{font-size:1.5rem;color:var(--color-text)}.not-found-link{color:var(--color-primary);text-decoration:none}}@layer components{.offline-banner,.mobile-warning{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:#fac547;color:#2d1f01;font-size:.875rem;font-weight:500}:is(.offline-banner,.mobile-warning) svg{flex-shrink:0}.mobile-warning{display:none}@media(max-width:1023px){.mobile-warning{display:flex}}.mobile-warning button{display:flex;align-items:center;justify-content:center;padding:var(--space-1);margin-left:var(--space-2);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;color:inherit}.mobile-warning button:hover{background:#d9a514}.sync-status{display:flex;align-items:center;font-size:.75rem}.sync-status-saved{display:flex;align-items:center;gap:var(--space-1);color:#11ad32}.sync-status-saving{color:var(--color-text-muted)}.sync-status-error{display:flex;align-items:center;gap:var(--space-1);color:#ff2d39;color:oklch(65% .25 25);cursor:help}.sync-status-local{color:var(--color-text-muted)}}@layer components{.share-modal{min-width:min(480px,calc(100vw - var(--space-8)));max-width:min(640px,calc(100vw - var(--space-8)))}.share-modal-subtitle{margin:0;font-size:.875rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-create-link-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);border:2px dashed var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);font-size:.9375rem;cursor:pointer;transition:all var(--transition-fast)}.share-create-link-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:oklch(from var(--color-primary) l c h / .05)}.share-new-link-form{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-md)}.share-option{display:flex;flex-direction:column;gap:var(--space-2)}.share-option-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;color:var(--color-text);cursor:pointer}.share-option-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary)}.share-option-toggle svg{color:var(--color-text-muted)}.share-option-input{height:36px;padding:0 var(--space-3);font-size:.875rem;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.share-option-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px oklch(from var(--color-primary) l c h / .15)}.share-slug-input-row{display:flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow:hidden}.share-slug-input-row:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px oklch(from var(--color-primary) l c h / .15)}.share-slug-input-row input{flex:1;height:36px;border:none;outline:none;background:transparent;color:var(--color-text);padding:0 var(--space-3) 0 var(--space-2);font-size:.875rem}.share-slug-prefix{padding:0 var(--space-2) 0 var(--space-3);font-size:.8125rem;color:var(--color-text-muted);white-space:nowrap}.share-slug-status{margin:0;font-size:.75rem}.share-slug-status--invalid,.share-slug-status--taken{color:var(--color-danger)}.share-slug-status--checking{color:var(--color-text-muted)}.share-slug-status--available{color:var(--color-success)}.share-option-number{width:100px}.share-form-actions{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-2)}.share-new-link-card{padding:var(--space-4);background:oklch(from var(--color-success) l c h / .1);border:1px solid oklch(from var(--color-success) l c h / .3);border-radius:var(--radius-md)}.share-new-link-header{display:flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--color-success);margin-bottom:var(--space-2)}.share-new-link-note{margin:0 0 var(--space-3);font-size:.875rem;color:var(--color-text-muted)}.share-new-link-url{padding:var(--space-2) var(--space-3);background:var(--color-bg);border-radius:var(--radius-sm);margin-bottom:var(--space-3);overflow-x:auto}.share-new-link-url code{font-size:.8125rem;color:var(--color-text);white-space:nowrap}.share-new-link-actions{display:flex;gap:var(--space-2)}.share-links-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4)}.share-links-title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0 0 var(--space-2)}.share-link-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);gap:var(--space-3)}.share-link-item.status-inactive{opacity:.6}.share-link-item.status-expired,.share-link-item.status-maxed{opacity:.5}.share-link-info{flex:1;min-width:0}.share-link-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.share-link-label{font-size:.9375rem;font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-link-status{font-size:.6875rem;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-sm)}.share-link-status.status-active{color:var(--color-success);background:oklch(from var(--color-success) l c h / .15)}.share-link-status.status-inactive{color:var(--color-text-muted);background:var(--color-border)}.share-link-status.status-expired,.share-link-status.status-maxed{color:var(--color-danger);background:oklch(from var(--color-danger) l c h / .15)}.share-link-meta{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);font-size:.75rem;color:var(--color-text-muted)}.share-link-meta span{display:flex;align-items:center;gap:var(--space-1)}.share-link-actions{display:flex;gap:var(--space-1);flex-shrink:0}.share-link-url-row{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2);background:var(--color-bg);border-radius:var(--radius-sm)}.share-link-url{flex:1;font-size:.75rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:all;user-select:all}.share-link-slug-row{margin-top:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg)}.share-link-slug-label{display:block;margin-bottom:var(--space-2);font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase}.share-link-slug-value-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.share-link-slug-value{font-size:.75rem;color:var(--color-text-muted);-webkit-user-select:all;user-select:all}.share-link-slug-edit{display:flex;align-items:center;gap:var(--space-2)}.share-link-slug-edit input{min-width:180px}.share-empty-state{display:flex;flex-direction:column;align-items:center;padding:var(--space-8) var(--space-4);color:var(--color-text-muted);text-align:center}.share-empty-state svg{opacity:.5;margin-bottom:var(--space-3)}.share-empty-state p{margin:0}.share-empty-hint{font-size:.875rem;margin-top:var(--space-1)}.share-loading{padding:var(--space-8);text-align:center;color:var(--color-text-muted)}.share-action{color:var(--color-text-muted)}.share-action:hover{color:var(--color-primary)}}@layer components{.view-only-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:.6875rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-surface-alt);border-radius:var(--radius-sm);flex-shrink:0}.shared-canvas-controls{display:flex;align-items:center;gap:var(--space-2)}.shared-control-group{display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface-alt)}.shared-control-btn{width:30px;height:30px;border:none;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);background:transparent;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.shared-control-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.shared-control-btn.is-active{background:oklch(from var(--color-primary) l c h / .15);color:var(--color-primary)}.shared-canvas-layout{display:flex;flex-direction:column;height:100dvh;background:var(--color-bg)}.shared-canvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.shared-canvas-header-left{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1}.shared-canvas-header-center{flex-shrink:0}.shared-canvas-header-right{display:flex;align-items:center;justify-content:flex-end;flex:1}.shared-canvas-main{flex:1;position:relative;overflow:hidden;min-height:0}.shared-canvas-cta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border)}.shared-canvas-cta-copy{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.8125rem;color:var(--color-text-muted)}.shared-by{font-size:.8125rem;color:var(--color-text-muted)}.shared-password-card{width:100%;max-width:400px;padding:var(--space-8);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center}.shared-password-icon{color:var(--color-text-muted);margin-bottom:var(--space-4)}.shared-password-title{font-size:1.5rem;font-weight:600;color:var(--color-text);margin:0 0 var(--space-2)}.shared-password-subtitle{font-size:.875rem;color:var(--color-text-muted);margin:0 0 var(--space-6)}.shared-password-form{display:flex;flex-direction:column;gap:var(--space-4)}.shared-password-input{width:100%;height:44px;padding:0 var(--space-3);font-size:1rem;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:center}.shared-password-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px oklch(from var(--color-primary) l c h / .15)}.shared-password-error{font-size:.875rem;color:var(--color-danger);margin:0}.shared-folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4)}.shared-canvas-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all var(--transition-fast)}.shared-canvas-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.shared-canvas-thumbnail{aspect-ratio:16/10;background:var(--color-surface-alt);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.shared-canvas-thumbnail img{width:100%;height:100%;object-fit:cover}.shared-canvas-name{font-size:.9375rem;font-weight:500;color:var(--color-text);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:960px){.shared-canvas-header{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.shared-canvas-header-left,.shared-canvas-header-right{width:100%}.shared-canvas-header-right{justify-content:flex-start}.shared-canvas-cta{align-items:flex-start;flex-direction:column}.shared-control-btn{width:32px;height:32px}}}@layer components{.toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:24px;padding:2px;background:none;border:none;cursor:pointer;outline:none}.toggle:focus-visible .toggle-track{outline:2px solid var(--color-primary);outline-offset:2px}.toggle:disabled,.toggle--disabled{cursor:not-allowed;opacity:.5}.toggle-track{width:100%;height:100%;background:var(--color-text-muted);border-radius:var(--radius-full);transition:background var(--transition-fast);display:flex;align-items:center;padding:2px}.toggle--checked .toggle-track{background:var(--color-primary)}.toggle-thumb{width:16px;height:16px;background:#fff;border-radius:var(--radius-full);transition:transform var(--transition-fast);box-shadow:0 1px 2px #00000026}.toggle--checked .toggle-thumb{transform:translate(20px)}}@layer components{.plans-layout{display:flex;flex-direction:column;height:100vh;overflow-y:auto;background:var(--color-bg)}.plans-page{flex:1;display:flex;flex-direction:column;align-items:center;padding:var(--space-8) var(--space-4);gap:var(--space-6)}.plans-hero{text-align:center;max-width:500px}.plans-hero-title{font-size:2.5rem;font-weight:800;color:var(--color-text);margin:0 0 var(--space-2);letter-spacing:-.02em}.plans-hero-subtitle{font-size:1.125rem;color:var(--color-text-muted);margin:0;line-height:1.5}.plans-toggle-section{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.plans-toggle-label{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.9375rem;font-weight:500;color:var(--color-text-muted);transition:color var(--transition-fast)}.plans-toggle-label--active{color:var(--color-text)}.plans-save-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#fff;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-active));border-radius:var(--radius-full)}.plans-card{width:100%;max-width:420px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #0000000d}.plans-price-section{text-align:center;margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border)}.plans-price{display:flex;align-items:baseline;justify-content:center;gap:2px}.plans-currency{font-size:1.75rem;font-weight:600;color:var(--color-text);align-self:flex-start;margin-top:.5rem}.plans-amount{font-size:4rem;font-weight:800;line-height:1;color:var(--color-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;animation:plans-price-pop .3s ease-out}@keyframes plans-price-pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.plans-period{font-size:1.125rem;font-weight:500;color:var(--color-text-muted);margin-left:var(--space-1)}.plans-billed-note{font-size:.875rem;color:var(--color-text-muted);margin:0;max-height:0;opacity:0;overflow:hidden;transition:max-height .3s ease-out,opacity .3s ease-out,margin .3s ease-out}.plans-billed-note--visible{max-height:2rem;opacity:1;margin:var(--space-2) 0 0}@starting-style{.plans-billed-note--visible{max-height:0;opacity:0;margin:0}}.plans-features{display:flex;flex-direction:column;gap:var(--space-3);margin:0 0 var(--space-6);padding:0;list-style:none}.plans-feature{display:flex;align-items:center;gap:var(--space-3);font-size:.9375rem;color:var(--color-text)}.plans-feature-icon{flex-shrink:0;color:var(--color-success)}.plans-cta{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-6);font-size:1rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));border:none;border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}.plans-cta:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px oklch(from var(--color-primary) l c h / .3)}.plans-cta:active:not(:disabled){transform:translateY(0)}.plans-cta:disabled{opacity:.6;cursor:not-allowed}.plans-vat-note{text-align:center;font-size:.75rem;color:var(--color-text-muted);margin:var(--space-3) 0 0}.plans-guarantee{text-align:center;font-size:.8125rem;color:var(--color-text-muted);margin:var(--space-2) 0 0}.plans-faq{width:100%;max-width:560px;margin-top:var(--space-4)}.plans-faq-title{font-size:1.25rem;font-weight:700;color:var(--color-text);margin:0 0 var(--space-4);text-align:center}.plans-faq-list{display:flex;flex-direction:column;gap:var(--space-3)}.plans-faq-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.plans-faq-question{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-4);font-size:.9375rem;font-weight:500;color:var(--color-text);cursor:pointer;list-style:none;transition:background var(--transition-fast)}.plans-faq-question::-webkit-details-marker{display:none}.plans-faq-question:after{content:"+";font-size:1.25rem;font-weight:400;color:var(--color-text-muted);transition:transform var(--transition-fast)}.plans-faq-item[open] .plans-faq-question:after{content:"−"}.plans-faq-question:hover{background:light-dark(oklch(from var(--color-surface) calc(l - .02) c h),oklch(from var(--color-surface) calc(l + .02) c h))}.plans-faq-answer{padding:0 var(--space-4) var(--space-4);font-size:.875rem;line-height:1.6;color:var(--color-text-muted);margin:0}.plans-agreement{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;color:var(--color-text-secondary);cursor:pointer;margin-bottom:var(--space-3)}.plans-agreement input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer}.plans-agreement a{color:var(--color-primary);text-decoration:underline}.plans-agreement a:hover{color:var(--color-primary-hover)}}@layer components{.subscription-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:light-dark(oklch(from var(--color-primary) 95% .05 h),oklch(from var(--color-primary) 20% .05 h));border-bottom:1px solid light-dark(oklch(from var(--color-primary) 85% .1 h),oklch(from var(--color-primary) 30% .1 h))}.subscription-banner-content{display:flex;align-items:center;gap:var(--space-3);font-size:.875rem;color:var(--color-text)}.subscription-banner-link{font-size:.875rem;font-weight:500;color:var(--color-primary);text-decoration:none;transition:opacity var(--transition-fast)}.subscription-banner-link:hover{opacity:.8}.subscription-banner-dismiss{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:none;cursor:pointer;color:var(--color-text-muted);border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.subscription-banner-dismiss:hover{color:var(--color-text);background:light-dark(oklch(from var(--color-primary) 90% .03 h),oklch(from var(--color-primary) 25% .03 h))}}@layer components{.account-subscription{display:flex;flex-direction:column;gap:var(--space-3)}.account-subscription-status{display:flex;align-items:center;gap:var(--space-3)}.subscription-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm)}.subscription-badge--active{color:var(--color-success);background:light-dark(oklch(from var(--color-success) 95% .05 h),oklch(from var(--color-success) 20% .05 h))}.subscription-badge--inactive{color:var(--color-text-muted);background:var(--color-bg)}.subscription-plan{font-size:.9375rem;color:var(--color-text)}.subscription-renewal{font-size:.875rem;color:var(--color-text-muted);margin:0}.subscription-manage-btn,.subscription-upgrade-btn{align-self:flex-start}}@layer components{.legal-layout{display:flex;flex-direction:column;height:100vh;background:var(--color-bg);overflow-y:auto}.legal-page{flex:1;display:flex;justify-content:center;padding:var(--space-8) var(--space-4)}.legal-article{width:100%;max-width:860px;padding:var(--space-8)}.legal-title{font-size:2rem;font-weight:800;letter-spacing:-.02em;margin:0 0 var(--space-2);color:var(--color-text)}.legal-updated{margin:0 0 var(--space-6);color:var(--color-text-muted);font-size:.875rem}.legal-section{margin-top:var(--space-6)}.legal-section h2{font-size:1.125rem;font-weight:700;margin:0 0 var(--space-3);color:var(--color-text)}.legal-section h3{font-size:1rem;font-weight:700;margin:var(--space-4) 0 var(--space-2);color:var(--color-text)}.legal-article p{margin:0 0 var(--space-3);line-height:1.65;color:var(--color-text)}.legal-article ul{margin:0 0 var(--space-3);padding-left:1.25rem;color:var(--color-text);line-height:1.65;list-style-type:disc}.legal-article li{margin:0 0 var(--space-2)}.legal-article li::marker{color:var(--color-text)}.legal-address{font-style:normal;color:var(--color-text);line-height:1.5}@media(max-width:600px){.legal-article{padding:var(--space-5)}.legal-title{font-size:1.5rem}}}@keyframes spin{to{transform:rotate(360deg)}}.loading-container{display:flex;align-items:center;justify-content:center;height:100vh;background-color:var(--color-bg, #fff)}.loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border, #e5e7eb);border-top-color:var(--color-primary, #ce5b79);border-radius:50%;animation:spin 1s linear infinite}html,body{overscroll-behavior:none;overflow:hidden}.app-canvas,.app-canvas canvas{touch-action:none;overscroll-behavior:none;-webkit-overflow-scrolling:auto}
