:root,:root[data-theme=light]{--bg: #f4f4f5;--bg-sink: #eeeef0;--freeform-stage-sink: #f1efec;--surface: #ffffff;--surface-2: #fafafa;--surface-3: #eeeef0;--text: #18181b;--text-2: #52525b;--text-3: #a1a1aa;--line: #e6e6e9;--line-2: #d4d4d8;--accent: #c2410c;--accent-weak: rgba(194, 65, 12, .1);--accent-text: #c2410c;--on-accent: #ffffff;--danger: #b42318;--danger-weak: rgba(180, 35, 24, .1);--btn: #18181b;--on-btn: #fafafa;--shadow-sm: 0 1px 2px rgba(24, 24, 27, .05), 0 1px 3px rgba(24, 24, 27, .06);--shadow-md: 0 4px 12px rgba(24, 24, 27, .07), 0 2px 4px rgba(24, 24, 27, .04);--shadow-lg: 0 12px 32px rgba(24, 24, 27, .12), 0 4px 8px rgba(24, 24, 27, .06);--shadow-card: 0 10px 40px rgba(24, 24, 27, .12);--bar-blur: saturate(180%) blur(20px);--bar-bg: rgba(255, 255, 255, .72)}:root[data-theme=dark]{--bg: #0b0b0d;--bg-sink: #101013;--freeform-stage-sink: #12110f;--surface: #161619;--surface-2: #1c1c20;--surface-3: #26262b;--text: #f4f4f5;--text-2: #a1a1aa;--text-3: #6b6b73;--line: #26262b;--line-2: #34343a;--accent: #f97316;--accent-weak: rgba(249, 115, 22, .16);--accent-text: #fb923c;--on-accent: #0b0b0d;--danger: #ff8a80;--danger-weak: rgba(255, 138, 128, .14);--btn: #fafafa;--on-btn: #0b0b0d;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 14px rgba(0, 0, 0, .45);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .6);--shadow-card: 0 16px 50px rgba(0, 0, 0, .65);--bar-bg: rgba(22, 22, 25, .72)}:root{--sans: "Instrument Sans", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--app-header-height: 52px;--workspace-toolbar-height: 50px;--control-height: 32px;--control-radius: 8px;--panel-radius: 10px;--radius: 14px;--radius-sm: 9px;--radius-xs: 7px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}html.theme-anim,html.theme-anim *{transition:background-color .28s ease,color .28s ease,border-color .28s ease,box-shadow .28s ease,fill .28s ease!important}.app{position:relative;display:flex;flex-direction:column;height:100vh}.app-shell{position:relative;height:100vh;min-height:0;display:flex;flex-direction:column;background:var(--bg)}.app-header{position:relative;z-index:30;flex:0 0 var(--app-header-height);display:flex;align-items:center;gap:12px;height:var(--app-header-height);padding:0 18px;border-bottom:1px solid var(--line);background:var(--bar-bg);-webkit-backdrop-filter:var(--bar-blur);backdrop-filter:var(--bar-blur)}.app-brand{display:flex;align-items:center;gap:9px;min-width:112px;color:var(--text)}.app-brand-logo{display:block;width:28px;height:28px;border-radius:8px}.app-brand strong{font-size:15px;font-weight:650;letter-spacing:-.01em;white-space:nowrap}.workspace-tabs{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.workspace-tab{height:32px;padding:0 13px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text-2);font-family:var(--sans);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:color .15s,border-color .15s,background .15s,box-shadow .15s}.workspace-tab:hover{color:var(--text);background:var(--surface)}.workspace-tab[aria-selected=true]{border-color:var(--line-2);background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow-sm)}.workspace-tab:focus-visible,.app-header-icon:focus-visible,.app-account:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-header-spacer{flex:1 1 auto}.app-header-icon,.app-account{flex:0 0 auto;height:44px;border:1px solid var(--line);background:var(--surface);color:var(--text-2);font-family:var(--sans);cursor:pointer;transition:color .15s,border-color .15s,background .15s,box-shadow .15s}.app-header-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;padding:0;border-radius:var(--radius-sm)}.app-header-icon svg{width:18px;height:18px}.app-header-icon:hover,.app-account-login:hover{border-color:var(--line-2);background:var(--surface-2);color:var(--text)}.app-account-login{padding:0 13px;border-radius:var(--radius-sm);font-size:13px;font-weight:600}.app-account-user{width:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);font-size:14px;font-weight:700;text-transform:uppercase;box-shadow:var(--shadow-sm)}.app-account-user:hover{border-color:var(--line-2);background:var(--surface-2);box-shadow:var(--shadow-md)}.app-account-status{display:inline-flex;align-items:center;justify-content:center;min-width:62px;padding:0 11px;border-radius:var(--radius-sm);color:var(--text-3);font-size:12px;font-weight:600;letter-spacing:.01em;cursor:default}.app-account-status-retry{color:var(--accent-text);cursor:pointer}.app-account-status-retry:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--accent-weak)}.app-account-status-retry:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.operation-notice{position:absolute;z-index:70;top:calc(var(--workspace-toolbar-height) + 12px);right:16px;display:grid;grid-template-columns:3px minmax(0,1fr) auto;align-items:center;gap:11px;width:min(420px,calc(100% - 32px));min-height:52px;padding:9px 9px 9px 10px;border:1px solid var(--line-2);border-radius:11px;background:color-mix(in srgb,var(--surface) 94%,var(--danger-weak));color:var(--text);box-shadow:var(--shadow-lg);animation:operation-notice-in .18s cubic-bezier(.22,1,.36,1)}.operation-notice--global{top:calc(var(--app-header-height) + 12px)}.operation-notice-mark{align-self:stretch;width:3px;min-height:30px;border-radius:999px;background:var(--danger)}.operation-notice-copy{display:flex;min-width:0;flex-direction:column;gap:2px;line-height:1.35}.operation-notice-copy strong{overflow-wrap:anywhere;font-size:13px;font-weight:650}.operation-notice-copy span{overflow-wrap:anywhere;color:var(--text-2);font-size:12px}.operation-notice-actions{display:inline-flex;align-items:center;gap:4px}.operation-notice-retry,.operation-notice-dismiss{border:0;border-radius:7px;background:transparent;color:var(--text-2);font-family:var(--sans);cursor:pointer}.operation-notice-retry{height:30px;padding:0 9px;color:var(--accent-text);font-size:12px;font-weight:650}.operation-notice-dismiss{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0}.operation-notice-dismiss svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.7}.operation-notice-retry:hover,.operation-notice-dismiss:hover{background:var(--surface-2);color:var(--text)}.operation-notice-retry:focus-visible,.operation-notice-dismiss:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@keyframes operation-notice-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}:root[data-theme=dark] .workspace-tab[aria-selected=true]{border-color:#45454f;background:#2a2a30}.workspace-toolbar{position:relative;z-index:20;flex:0 0 var(--workspace-toolbar-height);min-width:0;height:var(--workspace-toolbar-height);display:flex;align-items:center;gap:8px;padding:0 20px;border-bottom:1px solid var(--line);background:var(--bar-bg);-webkit-backdrop-filter:var(--bar-blur);backdrop-filter:var(--bar-blur)}.toolbar-group,.toolbar-insert-tools{min-width:0;display:inline-flex;align-items:center;gap:6px}.toolbar-group-left{flex:0 1 auto}.toolbar-group-right{flex:0 0 auto;margin-left:auto}.toolbar-divider{flex:0 0 1px;width:1px;height:20px;margin:0 2px;background:var(--line-2)}.workspace-toolbar .bar-btn,.workspace-toolbar .sel-trigger,.workspace-toolbar .page-size-trigger,.workspace-toolbar .freeform-insert-trigger,.workspace-toolbar .toolbar-primary{height:var(--control-height);border-radius:var(--control-radius)}.workspace-toolbar .seg{height:var(--control-height);padding:2px;border-radius:var(--control-radius)}.workspace-toolbar .seg-btn{height:26px;padding-block:0}.workspace-toolbar .seg-btn:focus-visible,.workspace-toolbar .sel-trigger:focus-visible,.workspace-toolbar .bar-btn:focus-visible,.workspace-toolbar .page-size-trigger:focus-visible,.workspace-toolbar .freeform-insert-trigger:focus-visible,.workspace-toolbar .toolbar-primary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.workspace-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.workspace-panel[hidden]{display:none}.workspace-panel>.app,.workspace-panel>.freeform-workspace{height:auto;flex:1 1 auto;min-height:0}.freeform-workspace{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:var(--bg)}.freeform-page-context{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px}.freeform-page-meta{color:var(--text-3);font-family:var(--mono);font-size:10px;white-space:nowrap}@media (max-width: 1100px){.freeform-toolbar .freeform-page-meta{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);border:0}.freeform-toolbar .bar-btn,.freeform-toolbar .freeform-insert-trigger{padding-inline:9px}}.workspace-toolbar .freeform-insert-menu-control{position:relative;flex:0 0 auto}.freeform-toolbar .freeform-insert-trigger{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--sans);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.freeform-toolbar .freeform-insert-trigger svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4;transition:transform .15s ease}.freeform-toolbar .freeform-insert-trigger:hover{border-color:var(--line-2);background:var(--surface-2)}.freeform-toolbar .freeform-insert-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-text)}.freeform-toolbar .freeform-insert-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.freeform-toolbar .freeform-insert-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:60;min-width:112px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.freeform-toolbar .freeform-insert-menu-item{width:100%;height:32px;display:flex;align-items:center;padding:0 9px;border:0;border-radius:var(--radius-xs);background:transparent;color:inherit;font-family:var(--sans);font-size:12px;font-weight:550;text-align:left;white-space:nowrap;cursor:pointer}.freeform-toolbar .freeform-insert-menu-item:hover,.freeform-toolbar .freeform-insert-menu-item:focus-visible{outline:none;background:var(--accent-weak);color:var(--accent-text)}[data-theme=dark] .freeform-toolbar .freeform-insert-menu{border-color:#3a3a44;background:#24242a}[data-theme=dark] .freeform-toolbar .freeform-insert-menu-item:hover,[data-theme=dark] .freeform-toolbar .freeform-insert-menu-item:focus-visible{background:#2c2c34}.workspace-toolbar .page-size-control{position:relative;flex:0 0 auto}.workspace-toolbar .page-size-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:4px;padding:0 6px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--mono);font-size:10px;font-weight:650;white-space:nowrap;cursor:pointer;transition:border-color .15s,background .15s}.workspace-toolbar .page-size-trigger svg{flex:0 0 auto;width:10px;height:10px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4;transition:transform .15s ease}.workspace-toolbar .page-size-trigger:hover{border-color:var(--line-2);background:var(--surface-2)}.workspace-toolbar .page-size-control .page-size-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-text)}.workspace-toolbar .page-size-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.workspace-toolbar .page-size-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:60;width:min(324px,calc(100vw - 32px));padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.workspace-toolbar .page-size-popover-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.workspace-toolbar .page-size-popover-heading strong{font-size:13px;font-weight:700}.workspace-toolbar .page-size-popover-heading span{color:var(--text-3);font-family:var(--mono);font-size:10px}.workspace-toolbar .page-size-presets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.workspace-toolbar .page-size-preset{min-width:0;height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0 3px;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface-2);color:var(--text-2);font-family:var(--mono);cursor:pointer}.workspace-toolbar .page-size-preset span{font-size:11px;font-weight:750}.workspace-toolbar .page-size-preset small{overflow:hidden;max-width:100%;color:var(--text-3);font-size:7px;line-height:1;text-overflow:ellipsis}.workspace-toolbar .page-size-preset:hover,.workspace-toolbar .page-size-preset.on{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-text)}.workspace-toolbar .page-size-preset.on small{color:var(--accent-text)}.workspace-toolbar .page-size-custom{margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}.workspace-toolbar .page-size-custom-heading{margin-bottom:8px;color:var(--text-2);font-size:11px;font-weight:700}.workspace-toolbar .page-size-fields{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:end}.workspace-toolbar .page-size-field{min-width:0;display:grid;gap:5px;color:var(--text-2);font-size:10px;font-weight:650}.workspace-toolbar .page-size-field small{color:var(--text-3);font-family:var(--mono);font-size:9px;font-weight:500}.workspace-toolbar .page-size-field input{width:100%;height:32px;padding:0 8px;border:1px solid var(--line-2);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);font-family:var(--mono);font-size:12px;outline:none;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.workspace-toolbar .page-size-field input::-webkit-inner-spin-button,.workspace-toolbar .page-size-field input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.workspace-toolbar .page-size-times{padding-bottom:8px;color:var(--text-3);font-family:var(--mono);font-size:11px}.workspace-toolbar .page-size-error{margin-top:8px;padding:7px 8px;border:1px solid rgba(229,72,77,.2);border-radius:var(--radius-xs);background:#e5484d14;color:#e5484d;font-size:11px;font-weight:600}.workspace-toolbar .page-size-apply{width:100%;height:32px;margin-top:10px;border:1px solid var(--btn);border-radius:var(--radius-xs);background:var(--btn);color:var(--on-btn);font-family:var(--sans);font-size:12px;font-weight:700;cursor:pointer}.workspace-toolbar .page-size-apply:hover:not(:disabled){opacity:.88}.workspace-toolbar .page-size-preset:focus-visible,.workspace-toolbar .page-size-field input:focus,.workspace-toolbar .page-size-apply:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-weak)}.workspace-toolbar .page-size-preset:disabled,.workspace-toolbar .page-size-field input:disabled,.workspace-toolbar .page-size-apply:disabled{opacity:.45;cursor:default}.freeform-file{display:none}.freeform-main,.freeform-rail,.freeform-slide-list,.freeform-stage-scroll,.freeform-inspector,.freeform-right-tabpanel,.freeform-layer-tree{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.freeform-main::-webkit-scrollbar,.freeform-rail::-webkit-scrollbar,.freeform-slide-list::-webkit-scrollbar,.freeform-stage-scroll::-webkit-scrollbar,.freeform-inspector::-webkit-scrollbar,.freeform-right-tabpanel::-webkit-scrollbar,.freeform-layer-tree::-webkit-scrollbar{width:10px;height:10px}.freeform-main::-webkit-scrollbar-track,.freeform-rail::-webkit-scrollbar-track,.freeform-slide-list::-webkit-scrollbar-track,.freeform-stage-scroll::-webkit-scrollbar-track,.freeform-inspector::-webkit-scrollbar-track,.freeform-right-tabpanel::-webkit-scrollbar-track,.freeform-layer-tree::-webkit-scrollbar-track{background:transparent}.freeform-main::-webkit-scrollbar-thumb,.freeform-rail::-webkit-scrollbar-thumb,.freeform-slide-list::-webkit-scrollbar-thumb,.freeform-stage-scroll::-webkit-scrollbar-thumb,.freeform-inspector::-webkit-scrollbar-thumb,.freeform-right-tabpanel::-webkit-scrollbar-thumb,.freeform-layer-tree::-webkit-scrollbar-thumb{min-height:44px;border:3px solid transparent;border-radius:999px;background:color-mix(in srgb,var(--text-3) 68%,transparent);background-clip:content-box}.freeform-main::-webkit-scrollbar-thumb:hover,.freeform-rail::-webkit-scrollbar-thumb:hover,.freeform-slide-list::-webkit-scrollbar-thumb:hover,.freeform-stage-scroll::-webkit-scrollbar-thumb:hover,.freeform-inspector::-webkit-scrollbar-thumb:hover,.freeform-right-tabpanel::-webkit-scrollbar-thumb:hover,.freeform-layer-tree::-webkit-scrollbar-thumb:hover{background:var(--accent);background-clip:content-box}.freeform-main::-webkit-scrollbar-button,.freeform-rail::-webkit-scrollbar-button,.freeform-slide-list::-webkit-scrollbar-button,.freeform-stage-scroll::-webkit-scrollbar-button,.freeform-inspector::-webkit-scrollbar-button,.freeform-right-tabpanel::-webkit-scrollbar-button,.freeform-layer-tree::-webkit-scrollbar-button{display:none;width:0;height:0}.freeform-main::-webkit-scrollbar-corner,.freeform-rail::-webkit-scrollbar-corner,.freeform-slide-list::-webkit-scrollbar-corner,.freeform-stage-scroll::-webkit-scrollbar-corner,.freeform-inspector::-webkit-scrollbar-corner,.freeform-right-tabpanel::-webkit-scrollbar-corner,.freeform-layer-tree::-webkit-scrollbar-corner{background:transparent}.freeform-main{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:152px minmax(0,1fr) 248px;gap:0;padding:0;overflow:hidden;background:var(--bg-sink)}.freeform-rail,.freeform-stage-pane,.freeform-inspector{min-width:0;min-height:0;background:var(--surface);border:0;border-radius:0;box-shadow:none;overflow:hidden}.freeform-rail{border-right:1px solid var(--line)}.freeform-inspector{border-left:1px solid var(--line)}.freeform-rail,.freeform-inspector{display:flex;flex-direction:column}.freeform-panel-head,.freeform-stage-pane .freeform-stage-head{flex:0 0 auto;min-height:52px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);color:var(--text-2);font-size:12px;font-weight:700}.mini-btn{height:44px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer}.freeform-rail .freeform-add-page{width:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--control-radius)}.freeform-rail .freeform-add-page svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.mini-btn:hover:not(:disabled){border-color:var(--line-2);background:var(--surface-2)}.mini-btn:disabled{opacity:.45;cursor:default}.mini-btn.danger{color:#e5484d}.freeform-slide-list{flex:1 1 auto;min-height:0;overflow:auto;padding:8px}.freeform-thumb{width:100%;display:flex;flex-direction:column;gap:7px;align-items:stretch;padding:8px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-2);text-align:left;cursor:pointer}.freeform-thumb:hover{background:var(--surface-2);color:var(--text)}.freeform-thumb.on{border:2px solid var(--accent);background:var(--accent-weak);color:var(--text)}.freeform-thumb-art{width:100%;min-height:62px;max-height:108px;display:block;margin:0 auto;border:1px solid var(--line);border-radius:var(--control-radius);box-shadow:var(--shadow-sm)}.freeform-rail .freeform-thumb-caption{min-width:0;display:flex;align-items:baseline;gap:7px}.freeform-rail .freeform-thumb-number{flex:0 0 auto;color:var(--text-2);font-family:var(--mono);font-size:10px;font-weight:600}.freeform-thumb-title{min-width:0;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.freeform-rail-actions{flex:0 0 auto;display:grid;gap:8px;padding:8px;border-top:1px solid var(--line)}.freeform-stage-pane{display:flex;flex-direction:column}.freeform-stage-pane .freeform-stage-head{background:var(--surface);justify-content:flex-end}.freeform-stage-pane .freeform-stage-scroll{flex:1 1 auto;min-height:0;overflow:auto;display:grid;place-items:center;padding:32px;background:var(--freeform-stage-sink)}.freeform-stage-pane .freeform-stage-box{flex:0 0 auto;box-shadow:0 12px 30px #18181b24,0 2px 8px #18181b14}.freeform-artboard{position:relative;overflow:visible;transform-origin:top left}.freeform-artwork-clip{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.freeform-element{position:absolute;touch-action:none;-webkit-user-select:none;user-select:none}.element-outline{position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:2px solid var(--accent);border-radius:4px;pointer-events:none}.freeform-selection-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none}.freeform-selection-item{position:absolute;transform-origin:0 0;pointer-events:none}.freeform-selection-item .element-outline{inset:calc(-2px * var(--freeform-inverse-scale, 1));border-width:calc(2px * var(--freeform-inverse-scale, 1))}.freeform-marquee{position:absolute;z-index:20;border:2px solid var(--accent);border-radius:6px;background:var(--accent-weak);pointer-events:none}.freeform-snap-line{position:absolute;z-index:19;pointer-events:none;background:var(--accent);opacity:.82}.freeform-snap-line-x{top:0;bottom:0;width:2px;transform:translate(-1px)}.freeform-snap-line-y{left:0;right:0;height:2px;transform:translateY(-1px)}.element-resize{position:absolute;right:calc(-16px * var(--freeform-inverse-scale, 1));bottom:calc(-16px * var(--freeform-inverse-scale, 1));width:calc(32px * var(--freeform-inverse-scale, 1));height:calc(32px * var(--freeform-inverse-scale, 1));padding:0;border:0;border-radius:50%;background:transparent;cursor:nwse-resize;touch-action:none;pointer-events:auto}.element-drag{position:absolute;top:0;left:50%;width:calc(32px * var(--freeform-inverse-scale, 1));height:calc(32px * var(--freeform-inverse-scale, 1));padding:0;border:0;border-radius:50%;background:transparent;cursor:move;transform:translate(-50%,-50%);touch-action:none;pointer-events:auto}.element-rotate{position:absolute;top:calc(-32px * var(--freeform-inverse-scale, 1));left:50%;width:calc(32px * var(--freeform-inverse-scale, 1));height:calc(32px * var(--freeform-inverse-scale, 1));padding:0;border:0;border-radius:50%;background:transparent;cursor:grab;transform:translate(-50%,-50%);touch-action:none;pointer-events:auto}.freeform-selection-move:before,.freeform-selection-resize:before,.freeform-selection-rotate:before{content:"";position:absolute;top:50%;left:50%;display:block;background:var(--accent);border:2px solid var(--surface);box-shadow:var(--shadow-sm);transform:translate(-50%,-50%) scale(var(--freeform-inverse-scale, 1));pointer-events:none}.freeform-selection-move:before{width:18px;height:7px;border-radius:999px}.freeform-selection-resize:before{width:10px;height:10px;border-radius:50%}.freeform-selection-rotate:before{width:11px;height:11px;border-radius:50%;box-shadow:var(--shadow-sm),0 -7px 0 -4px var(--accent)}.freeform-selection-item button:focus,.freeform-selection-item button:focus-visible{outline:calc(2px * var(--freeform-inverse-scale, 1)) solid var(--accent);outline-offset:calc(2px * var(--freeform-inverse-scale, 1));box-shadow:0 0 0 calc(4px * var(--freeform-inverse-scale, 1)) var(--accent-weak)}.freeform-textbox{width:100%;height:100%;display:block;border:0;outline:none;overflow:hidden;background:transparent;line-height:1.18;padding:8px;cursor:text;-webkit-user-select:text;user-select:text;white-space:pre-wrap;word-break:break-word}.freeform-image,.freeform-shape,.freeform-line{width:100%;height:100%;display:block;pointer-events:none}.freeform-shape{border-style:solid;background-position:center;background-repeat:no-repeat}.shape-rect{border-radius:16px}.shape-ellipse{border-radius:999px}.shape-triangle{clip-path:polygon(50% 0,100% 100%,0 100%)}.freeform-inspector{overflow-y:auto}.freeform-right-panel{overflow-x:hidden;overflow-y:auto}.freeform-right-tabpanel{min-height:0;flex:1 1 auto;overflow-x:hidden;overflow-y:auto}.freeform-right-tabpanel[hidden]{display:none}.freeform-layers-tabpanel{overflow:hidden}.freeform-right-tabs{flex:0 0 44px;display:flex;align-items:stretch;gap:2px;padding:5px 8px 0;border-bottom:1px solid var(--line);background:var(--surface)}.freeform-right-tab{position:relative;flex:1 1 0;min-width:0;border:0;border-radius:var(--radius-xs) var(--radius-xs) 0 0;background:transparent;color:var(--text-2);font-family:var(--sans);font-size:12px;font-weight:700;cursor:pointer}.freeform-right-tab:hover,.freeform-right-tab:focus-visible{outline:none;background:var(--surface-2);color:var(--text)}.freeform-right-tab:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.freeform-right-tab.is-active{color:var(--accent-text);background:var(--accent-weak)}.freeform-right-tab.is-active:after{content:"";position:absolute;right:8px;bottom:-1px;left:8px;height:2px;background:var(--accent)}.freeform-layers-panel{position:relative;height:100%;min-height:0;display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.freeform-layers-heading{flex:0 0 44px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--line);color:var(--text-2);font-size:11px;font-weight:750;letter-spacing:0;text-transform:uppercase}.freeform-layers-title,.freeform-layers-commands{display:inline-flex;align-items:center}.freeform-layers-title{gap:7px}.freeform-layers-commands{gap:4px}.freeform-layers-command{min-width:42px;height:26px;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface-2);color:var(--text-2);font-family:var(--sans);font-size:11px;font-weight:650;cursor:pointer}.freeform-layers-command:hover{border-color:var(--line-2);background:var(--surface-3);color:var(--text)}.freeform-layers-command:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.freeform-layers-count{color:var(--text-2);font-family:var(--mono);font-size:10px;letter-spacing:0}.freeform-layer-tree{min-height:0;flex:1 1 auto;overflow:auto;padding:6px 6px 14px}.freeform-layer-branch,.freeform-layer-children{min-width:0}.freeform-layer-row{position:relative;min-width:0;height:40px;display:flex;align-items:center;gap:6px;padding:0 8px 0 4px;border-left:3px solid transparent;border-radius:var(--radius-xs);color:var(--text-2);cursor:default;-webkit-user-select:none;user-select:none}.freeform-layer-depth{position:absolute;top:2px;left:6px;width:24px;overflow:hidden;color:var(--text-2);font-family:var(--mono);font-size:8px;line-height:11px;text-align:right;text-overflow:clip;white-space:nowrap;pointer-events:none}.freeform-layer-children .freeform-layer-row{padding-left:14px}.freeform-layer-row:hover{background:var(--surface-2);color:var(--text)}.freeform-layer-row:focus-visible{outline:2px solid var(--text-2);outline-offset:-2px}.freeform-layer-row.is-selected{border-left-color:var(--accent);background:var(--accent-weak);color:var(--text)}.freeform-layer-expand,.freeform-layer-expand-spacer{width:24px;height:28px;flex:0 0 24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:var(--radius-xs);background:transparent;color:var(--text-2)}.freeform-layer-expand{cursor:pointer}.freeform-layer-expand:hover,.freeform-layer-expand:focus-visible{outline:none;background:var(--surface-3);color:var(--text)}.freeform-layer-expand-icon{width:13px;height:13px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.freeform-layer-type{position:relative;width:18px;height:18px;flex:0 0 18px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-2)}.freeform-layer-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.35}.freeform-layer-type-mark{font-family:var(--mono);font-size:12px;font-weight:800}.freeform-layer-name,.freeform-layer-rename{min-width:0;flex:1 1 auto;overflow:hidden;color:inherit;font-size:12px;line-height:28px;text-overflow:ellipsis;white-space:nowrap}.freeform-layer-actions{flex:0 0 auto;height:28px;display:inline-flex;align-items:center;gap:1px;padding:0 2px;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface-2);opacity:0;transition:opacity .12s ease}.freeform-layer-inherited-state{position:absolute;right:-4px;bottom:-5px;width:12px;height:12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--surface);border-radius:50%;background:var(--surface-2);color:var(--text-2)}.freeform-layer-inherited-icon{width:9px;height:9px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45}.freeform-layer-row:hover .freeform-layer-actions,.freeform-layer-row:focus-within .freeform-layer-actions,.freeform-layer-row.is-selected .freeform-layer-actions,.freeform-layer-row.is-effectively-hidden .freeform-layer-actions,.freeform-layer-row.is-effectively-locked .freeform-layer-actions{opacity:1}.freeform-layer-action{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:var(--radius-xs);background:transparent;color:var(--text-2);cursor:pointer}.freeform-layer-action:hover,.freeform-layer-action[aria-pressed=true]{outline:none;background:var(--surface-3);color:var(--text)}.freeform-layer-action:focus-visible{outline:2px solid var(--text-2);outline-offset:1px;background:var(--surface);color:var(--text)}.freeform-layer-action-icon{width:15px;height:15px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45}.freeform-textbox[aria-readonly=true]{cursor:default}.freeform-layer-rename{height:28px;padding:0 6px;border:1px solid var(--accent);border-radius:var(--radius-xs);outline:none;background:var(--surface);font-family:var(--sans)}.freeform-layer-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.freeform-lock-banner{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:9px;margin:12px;padding:10px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text)}.freeform-lock-descendant-banner{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:9px;margin:12px;padding:10px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text)}.freeform-lock-descendant-banner>svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.freeform-lock-banner>svg,.freeform-lock-banner-action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.freeform-lock-banner-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.freeform-lock-banner-copy strong{font-size:12px}.freeform-lock-banner-copy span{overflow:hidden;color:var(--text-2);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.freeform-lock-banner-action{min-width:64px;height:30px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 8px}.freeform-inspector .freeform-panel-head{position:sticky;top:0;z-index:20;background:var(--surface)}.freeform-inspector-breadcrumb{min-width:0;flex:1 1 auto;display:flex;align-items:center;gap:5px;overflow:hidden;color:var(--text-2);font-size:10px;font-weight:550;white-space:nowrap}.freeform-inspector-breadcrumb>span{min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}.freeform-inspector-breadcrumb>.freeform-inspector-breadcrumb-current{flex:0 1 48%;min-width:44px;color:var(--text)}.freeform-inspector-breadcrumb-separator{margin:0 2px;color:var(--text-3);flex:0 0 auto}.freeform-inspector .inspector-section{padding:0 14px 16px;border-bottom:1px solid var(--line)}.freeform-inspector .inspector-section-title{margin:0;padding:14px 0 11px;color:var(--text-2);font-size:11px;font-weight:750;letter-spacing:.08em;line-height:1.2;text-transform:uppercase}.freeform-inspector .inspector-section-body{min-width:0}.freeform-inspector .inspector-section-danger .inspector-section-title{color:var(--danger)}.freeform-inspector .inspector-empty{padding:12px 14px 16px;color:var(--text-2);font-size:12px;line-height:1.55}.freeform-inspector .color-field{width:100%;height:32px;padding:0 7px 0 9px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface)}.freeform-inspector .field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.freeform-inspector .field-grid.with-gap,.freeform-inspector .field.with-gap,.freeform-inspector .field-label.with-gap{margin-top:12px}.freeform-inspector .field-grid label{display:flex;flex-direction:column;gap:6px;color:var(--text-2);font-size:11px;font-weight:700}.freeform-inspector .stroke-color-field{display:flex;min-width:0;flex-direction:column;gap:6px;color:var(--text-2);font-size:11px;font-weight:700}.freeform-inspector .field-grid .color-field{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text-2);font-size:11px;font-weight:700}.freeform-inspector .stroke-color-field .color-field{gap:4px;padding:0 4px 0 7px}.freeform-inspector .stroke-color-field .color-field-value{min-width:0;overflow:hidden;color:var(--text);font-family:var(--mono);font-size:10px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.freeform-inspector .stroke-color-field .paint-color-button{width:26px;height:26px;border-radius:6px;box-shadow:none}.freeform-inspector .field-grid input{min-width:0;height:32px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:var(--text);font-family:var(--mono);font-size:12px;padding:0 8px}.freeform-inspector .freeform-inspector-text{width:100%;min-height:92px;resize:vertical;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:var(--text);font-family:var(--sans);font-size:13px;line-height:1.5;padding:10px;outline:none}.freeform-inspector .freeform-inspector-text:focus,.freeform-inspector .field-grid input:focus,.freeform-inspector .text-input:focus,.freeform-inspector .sel-trigger:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.freeform-inspector .field{margin-bottom:12px}.freeform-inspector .text-input,.freeform-inspector .sel-trigger{width:100%;height:32px;border-radius:8px}.freeform-inspector .sel{width:100%}.freeform-inspector .seg.stretch{width:100%;height:32px;margin-top:8px;padding:0;border:0;border-radius:8px;box-shadow:inset 0 0 0 1px var(--line)}.freeform-inspector .seg.stretch .seg-btn{flex:1 1 0;height:32px;min-height:32px;padding:0 8px;border-radius:8px;font-size:12px}.freeform-inspector .inspector-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.freeform-inspector .inspector-actions .ghost{flex:1 1 calc(50% - 4px);height:32px;padding:0 9px;border-radius:8px;font-size:12px}.freeform-inspector .inspector-delete{width:100%;height:32px;border-color:color-mix(in srgb,var(--danger) 34%,var(--line));border-radius:8px;color:var(--danger);font-size:12px}.freeform-inspector .inspector-delete:hover{border-color:var(--danger);background:var(--danger-weak)}.freeform-inspector input[type=file],.freeform-inspector input[type=color]{display:none}.freeform-inspector .paint-field{display:grid;gap:10px}.freeform-inspector .paint-field .field-label{margin-bottom:0}.freeform-inspector .paint-mode{margin-top:0}.freeform-inspector .paint-row{position:relative;display:flex;align-items:center;gap:8px;min-width:0}.freeform-inspector .paint-color{position:relative;flex:0 0 auto;z-index:3}.freeform-inspector .paint-color-button{width:32px;height:32px;padding:0;border:1px solid var(--line-2);border-radius:8px;box-shadow:var(--shadow-sm);cursor:pointer}.freeform-inspector .paint-color-button:focus-visible,.freeform-inspector .paint-hex:focus,.freeform-inspector .paint-angle:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak);outline:none}.freeform-inspector .paint-hex,.freeform-inspector .paint-angle,.freeform-inspector .paint-popover-hex,.freeform-inspector .paint-channel-number{min-width:0;height:32px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:var(--text);font-family:var(--mono);font-size:12px;padding:0 8px}.freeform-inspector .paint-hex{flex:1 1 auto}.freeform-inspector .paint-angle{width:64px}.freeform-inspector .paint-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:40;width:min(246px,calc(100vw - 32px));padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-lg)}.freeform-inspector .paint-row .paint-color{position:static}.freeform-inspector .paint-row .paint-popover{left:0;width:100%;max-width:none}.freeform-inspector .field-grid .color-field .paint-color{position:static}.freeform-inspector .field-grid .color-field .paint-popover{left:0;width:calc(200% + 9px);max-width:calc(100vw - 32px)}.freeform-inspector .paint-popover-head{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center}.freeform-inspector .paint-popover-sample{width:34px;height:34px;border:1px solid var(--line-2);border-radius:var(--radius-xs);box-shadow:var(--shadow-sm)}.freeform-inspector .paint-popover-hex{width:100%;text-transform:lowercase}.freeform-inspector .paint-swatch-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-top:10px}.freeform-inspector .paint-swatch{width:100%;aspect-ratio:1;padding:0;border:1px solid color-mix(in srgb,var(--line-2) 76%,transparent);border-radius:999px;box-shadow:inset 0 0 0 1px #ffffff47,var(--shadow-sm);cursor:pointer}.freeform-inspector .paint-swatch:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-weak)}.freeform-inspector .paint-channel-list{display:grid;gap:8px;margin-top:12px}.freeform-inspector .paint-channel{display:grid;grid-template-columns:18px 1fr 48px;gap:8px;align-items:center;color:var(--text-2);font-family:var(--mono);font-size:11px}.freeform-inspector .paint-channel-number{width:48px;height:32px;padding:0 6px}.freeform-inspector .paint-gradient{display:grid;gap:8px}.freeform-inspector .paint-range{flex:1 1 auto;min-width:0;height:8px;border-radius:999px;background-color:var(--surface-2);background-image:linear-gradient(90deg,var(--line-2),var(--accent));cursor:pointer}.freeform-inspector .paint-range,.freeform-inspector .paint-channel-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none}.freeform-inspector .paint-range:focus-visible,.freeform-inspector .paint-channel-range:focus-visible{box-shadow:0 0 0 3px var(--accent-weak)}.freeform-inspector .paint-channel-range{width:100%;height:8px;border-radius:999px;background-color:var(--surface-2);cursor:pointer}.freeform-inspector .paint-range::-webkit-slider-runnable-track,.freeform-inspector .paint-channel-range::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:transparent}.freeform-inspector .paint-range::-webkit-slider-thumb,.freeform-inspector .paint-channel-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;margin-top:-5px;border:2px solid var(--surface);border-radius:999px;background:var(--accent);box-shadow:0 1px 4px #18181b3d;cursor:pointer}.freeform-inspector .paint-channel-range::-webkit-slider-thumb{background:var(--text)}.freeform-inspector .paint-range::-moz-range-track,.freeform-inspector .paint-channel-range::-moz-range-track{height:8px;border:0;border-radius:999px;background:transparent}.freeform-inspector .paint-range::-moz-range-thumb,.freeform-inspector .paint-channel-range::-moz-range-thumb{width:18px;height:18px;border:2px solid var(--surface);border-radius:999px;background:var(--accent);box-shadow:0 1px 4px #18181b3d;cursor:pointer}.freeform-inspector .paint-channel-range::-moz-range-thumb{background:var(--text)}.freeform-inspector .paint-preview{height:28px;border:1px solid var(--line-2);border-radius:var(--radius-xs);box-shadow:var(--shadow-sm) inset}.freeform-inspector .paint-image{display:grid;gap:8px}.freeform-inspector input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.freeform-inspector input[type=number]::-webkit-outer-spin-button,.freeform-inspector input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.freeform-inspector .seg-btn:focus-visible,.freeform-inspector .field-grid input:focus-visible,.freeform-inspector .text-input:focus-visible,.freeform-inspector .sel-trigger:focus-visible,.freeform-inspector .inspector-actions .ghost:focus-visible,.freeform-inspector .inspector-delete:focus-visible,.freeform-inspector .paint-hex:focus-visible,.freeform-inspector .paint-angle:focus-visible,.freeform-inspector .paint-popover-hex:focus-visible,.freeform-inspector .paint-channel-number:focus-visible,.freeform-inspector .paint-color-button:focus-visible,.freeform-inspector .paint-range:focus-visible,.freeform-inspector .paint-channel-range:focus-visible,.freeform-inspector .paint-swatch:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.seg{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px}.seg-btn{border:0;background:transparent;color:var(--text-2);padding:5px 13px;border-radius:7px;font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;transition:color .15s,background .15s}.seg-btn:hover{color:var(--text)}.seg-btn.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.sel{position:relative;display:inline-block}.sel-trigger{display:inline-flex;align-items:center;gap:10px;height:34px;padding:0 11px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--text);font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s}.sel-trigger:hover{border-color:var(--line-2);background:var(--surface-2)}.sel-trigger.open{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.sel-value{white-space:nowrap}.sel-caret{color:var(--text-3);transition:transform .18s ease}.sel-trigger.open .sel-caret{transform:rotate(180deg);color:var(--accent-text)}.sel-panel{position:absolute;z-index:40;top:calc(100% + 6px);left:0;min-width:100%;margin:0;padding:5px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);animation:pop-in .13s ease-out;max-height:320px;overflow-y:auto}.sel-option{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:var(--radius-xs);font-size:13.5px;color:var(--text);white-space:nowrap;cursor:pointer}.sel-option.hover{background:var(--surface-2)}.sel-option.selected{color:var(--accent-text);font-weight:600}.sel-check{flex:0 0 auto;color:var(--accent-text)}.bar-btn{height:34px;padding:0 13px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--text);font-family:var(--sans);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:border-color .15s,background .15s}.bar-btn:hover:not(:disabled){border-color:var(--line-2);background:var(--surface-2)}.bar-btn:disabled{opacity:.45;cursor:not-allowed}[data-theme=dark] .bar-btn,[data-theme=dark] .sel-trigger,[data-theme=dark] .workspace-toolbar .freeform-insert-trigger,[data-theme=dark] .workspace-toolbar .page-size-trigger{background:#24242a;border-color:#3a3a44}[data-theme=dark] .bar-btn:hover:not(:disabled),[data-theme=dark] .sel-trigger:hover,[data-theme=dark] .workspace-toolbar .freeform-insert-trigger:hover:not([aria-expanded=true]),[data-theme=dark] .workspace-toolbar .page-size-trigger:hover:not([aria-expanded=true]){background:#2c2c34;border-color:#4a4a56}[data-theme=dark] .workspace-toolbar .freeform-insert-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-text)}.toolbar-primary{height:34px;padding:0 16px;border:0;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font-family:var(--sans);font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .15s,opacity .15s}.toolbar-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.toolbar-primary:disabled{opacity:.5;cursor:default}.body{flex:1 1 auto;display:grid;grid-template-columns:minmax(300px,38%) 1fr;gap:18px;padding:18px;min-height:0}.pane{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;min-height:0;overflow:hidden}.pane-head{flex:0 0 auto;height:46px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);color:var(--text-2);font-size:12px;font-weight:600;letter-spacing:.02em}.pane-sub{font-family:var(--mono);font-weight:400;color:var(--text-3);font-size:11px}.cm-host{flex:1 1 auto;min-height:0;overflow:hidden}.cm-host .cm-scroller{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.cm-host .cm-scroller::-webkit-scrollbar{width:10px;height:10px}.cm-host .cm-scroller::-webkit-scrollbar-track{background:transparent}.cm-host .cm-scroller::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:var(--line-2);background-clip:content-box}.cm-host .cm-scroller::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:content-box}.cm-host .cm-scroller::-webkit-scrollbar-button{display:none;width:0;height:0}.cm-host .cm-scroller::-webkit-scrollbar-corner{background:transparent}.pane-preview{background:var(--bg-sink)}.pane-preview .pane-head{background:var(--surface)}.zoom-controls{display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}.zoom-btn,.zoom-value{height:26px;border:0;border-radius:7px;background:transparent;color:var(--text-2);font-family:var(--mono);font-size:12px;font-weight:600;cursor:pointer}.zoom-btn{width:26px;font-size:16px;line-height:1}.zoom-value{min-width:46px;padding:0 7px}.zoom-btn:hover:not(:disabled),.zoom-value:hover{background:var(--surface);color:var(--text)}.zoom-btn:disabled{opacity:.35;cursor:default}.freeform-stage-pane .freeform-stage-head .zoom-controls{gap:2px;padding:2px;border-radius:var(--panel-radius)}.freeform-stage-pane .freeform-stage-head .zoom-btn,.freeform-stage-pane .freeform-stage-head .zoom-value{height:44px;border-radius:var(--control-radius)}.freeform-stage-pane .freeform-stage-head .zoom-btn{width:44px;display:inline-flex;align-items:center;justify-content:center}.freeform-stage-pane .freeform-stage-head .zoom-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.freeform-stage-pane .freeform-stage-head .zoom-btn:focus-visible,.freeform-stage-pane .freeform-stage-head .zoom-value:focus-visible,.freeform-rail .freeform-add-page:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stage-wrap{position:relative;flex:1 1 auto;min-height:0;display:flex}.stage{flex:1 1 auto;min-width:0;min-height:0;padding:28px 96px;overflow:auto;display:flex;align-items:flex-start;justify-content:flex-start;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.stage::-webkit-scrollbar{width:10px;height:10px}.stage::-webkit-scrollbar-track{background:transparent}.stage::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:var(--line-2);background-clip:content-box}.stage::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:content-box}.stage::-webkit-scrollbar-button{display:none;width:0;height:0}.stage::-webkit-scrollbar-corner{background:transparent}.card-zoom-box{width:var(--preview-w);height:var(--preview-h);flex:0 0 auto;display:flex;align-items:flex-start;justify-content:flex-start;margin:auto}.card-frame{position:relative;flex:0 0 auto;transform:scale(var(--preview-scale, 1));transform-origin:top left}.corner-handle{position:absolute;width:20px;height:20px;z-index:5;opacity:0;cursor:nwse-resize;transition:opacity .18s;touch-action:none}.corner-handle:before{content:"";position:absolute;top:50%;left:50%;width:7px;height:7px;transform:translate(-50%,-50%);border-radius:50%;background:var(--text-3);box-shadow:0 0 0 2px var(--bg-sink);transition:background .15s,transform .12s}.card-frame:hover .corner-handle,.card-frame.rounding .corner-handle{opacity:.55}.corner-handle:hover{opacity:1}.corner-handle:hover:before,.card-frame.rounding .corner-handle:before{background:var(--accent);transform:translate(-50%,-50%) scale(1.15)}.corner-handle.corner-tl{top:-10px;left:-10px}.corner-handle.corner-tr{top:-10px;right:-10px}.corner-handle.corner-bl{bottom:-10px;left:-10px}.corner-handle.corner-br{bottom:-10px;right:-10px}.card-frame.rounding{cursor:nwse-resize}.nav-arrow{position:absolute;z-index:6;top:50%;display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text-2);font-size:26px;font-weight:400;line-height:1;cursor:pointer;box-shadow:var(--shadow-md);transform:translateY(-50%);transition:transform .16s cubic-bezier(.34,1.56,.64,1),color .15s,background .18s,border-color .15s,box-shadow .18s,opacity .15s}.nav-prev{left:max(28px,calc(50% - var(--preview-half-w) - 78px))}.nav-next{right:max(28px,calc(50% - var(--preview-half-w) - 78px))}.nav-arrow:hover:not(:disabled){transform:translateY(-50%) scale(1.1);color:var(--on-btn);background:var(--btn);border-color:var(--btn);box-shadow:var(--shadow-lg)}.nav-arrow:active:not(:disabled){transform:translateY(-50%) scale(.94)}.nav-arrow:disabled{opacity:.3;cursor:default}.accent{height:40px;padding:0 18px;border:0;border-radius:var(--radius-sm);background:var(--btn);color:var(--on-btn);font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .15s,opacity .15s}.accent:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.accent:disabled{opacity:.5;cursor:default}.ghost{height:40px;padding:0 18px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:transparent;font-family:var(--sans);font-size:14px;font-weight:500;cursor:pointer;color:var(--text);transition:background .15s,border-color .15s}.ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-3)}.ghost:disabled{opacity:.45;cursor:not-allowed}.primary{height:40px;padding:0 20px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;color:var(--accent-text);transition:background .15s,box-shadow .15s}.primary:hover{background:var(--accent-weak)}.card{width:var(--card-w);height:var(--card-h);padding:var(--card-pad);background:var(--card-bg);color:var(--card-fg);border-radius:var(--card-radius, 18px);box-shadow:var(--shadow-card);overflow:hidden;display:flex;flex-direction:column}.card-content{display:flow-root;font-family:var(--card-font);font-size:var(--card-fs);line-height:var(--card-lh);word-break:break-word;flex:1 1 auto;min-height:0}.card-content>*{margin:0 0 var(--card-gap) 0}.card-content>*:last-child{margin-bottom:0}.card-content h1,.card-content h2,.card-content h3{line-height:1.3;font-weight:700}.card-content h1{font-size:1.55em}.card-content h2{font-size:1.28em}.card-content h3{font-size:1.1em}.card-content a{color:var(--card-accent)}.card-content strong{color:var(--card-accent);font-weight:700}.card-content blockquote{margin-left:0;padding:4px 0 4px 14px;border-left:3px solid var(--card-accent);color:inherit;opacity:.85}.card-content ul,.card-content ol{padding-left:1.3em}.card-content li{margin-bottom:4px}.card-content img{display:block;max-width:100%;border-radius:8px}.img-wrap{position:relative;display:inline-block;max-width:100%;line-height:0}.img-wrap img{width:100%;height:auto}.img-handle{position:absolute;right:-7px;bottom:-7px;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);box-shadow:var(--shadow-sm);cursor:nwse-resize;opacity:0;transition:opacity .15s,transform .12s;touch-action:none}.img-wrap:hover .img-handle,.img-wrap.resizing .img-handle{opacity:1}.img-handle:hover{transform:scale(1.2)}.img-wrap.resizing{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.card-content code{font-family:var(--mono);font-size:.86em;background:#7f7f7f26;padding:1px 5px;border-radius:4px}.card-content pre{background:#7f7f7f1f;padding:12px 14px;border-radius:8px;overflow:auto}.card-content pre code{background:none;padding:0}.card-content hr{border:0;border-top:1px solid currentColor;opacity:.2}.cardhead{display:flex;gap:10px;margin-bottom:14px;flex:0 0 auto}.cardhead-twitter{align-items:center}.cardhead-weibo{align-items:center;gap:10px}.cardhead-weibo-avatar-wrap{position:relative;flex:0 0 auto;width:40px;height:40px}.cardhead-weibo .avatar{width:40px;height:40px}.cardhead-weibo-avatar-badge{position:absolute;right:-1px;bottom:-1px;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--card-bg)}.avatar{width:40px;height:40px;object-fit:cover;flex:0 0 auto}.avatar-fallback{display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;font-weight:600}.cardhead-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.cardhead-weibo .cardhead-meta{gap:3px}.cardhead-name-row{display:flex;align-items:center;gap:4px}.cardhead-name{font-size:14px;font-weight:600;line-height:1.2}.cardhead-weibo .cardhead-name{font-size:15px}.cardhead-twitter .cardhead-name{color:var(--card-fg)}.verified{flex:0 0 auto}.cardhead-sub{font-size:11px;color:#7f7f7fe6;display:flex;align-items:center;line-height:1.35}.cardhead-twitter .cardhead-sub{font-size:12px}.cardhead-weibo .cardhead-sub{font-size:11.5px}.pager{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:7px;justify-content:center;padding:0 18px}.page-dot{min-width:34px;height:40px;padding:0 6px;border:1px solid var(--line-2);border-radius:var(--radius-xs);background:var(--surface);font-family:var(--mono);font-size:13px;font-weight:500;color:var(--text-2);cursor:pointer;transition:transform .12s,border-color .15s,color .15s,box-shadow .15s}.page-dot:hover{transform:translateY(-2px);color:var(--text);box-shadow:var(--shadow-sm)}.page-dot.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-sm)}.pager-hint{flex:0 0 auto;text-align:center;font-size:11px;color:var(--text-3);padding:12px 0 18px}.ctx-menu{position:fixed;z-index:60;min-width:176px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:5px;animation:pop-in .12s ease-out}.ctx-item{display:block;width:100%;text-align:left;border:0;background:transparent;padding:9px 11px;border-radius:var(--radius-xs);font-family:var(--sans);font-size:13px;color:var(--text);cursor:pointer;transition:background .12s}.ctx-item:hover{background:var(--accent-weak);color:var(--accent-text)}.modal-backdrop,.sheet-backdrop,.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#09090b80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fade-in .15s ease-out}.sheet-backdrop{z-index:80}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.modal{width:460px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-lg);animation:pop-in .18s ease-out}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-head h3{margin:0;font-size:18px;font-weight:600;letter-spacing:-.01em}.modal-x{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:8px;background:transparent;font-size:20px;line-height:1;color:var(--text-3);cursor:pointer;transition:background .15s,color .15s}.modal-x:hover{background:var(--surface-2);color:var(--text)}.modal-row{display:flex;gap:16px;align-items:center;margin-bottom:22px}.avatar-preview{width:62px;height:62px;border-radius:50%;background-size:cover;background-position:center;flex:0 0 auto;border:1px solid var(--line-2)}.avatar-picker{flex:1 1 auto}.field-label{font-size:12px;font-weight:600;color:var(--text-2);display:block;margin-bottom:9px}.swatches{display:flex;gap:8px;align-items:center}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .12s}.swatch:hover{transform:scale(1.1)}.swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--surface) inset}.swatch-upload{background:var(--surface-2);color:var(--text-3);border:1px dashed var(--line-2);font-size:16px;display:flex;align-items:center;justify-content:center}.field{display:block;margin-bottom:18px}.text-input{width:100%;height:42px;padding:0 13px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--sans);font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}.text-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.field-inline{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.field-inline .field-label{margin-bottom:0}.toggle{width:46px;height:26px;border-radius:13px;border:0;background:var(--line-2);position:relative;cursor:pointer;transition:background .2s}.toggle.on{background:var(--accent)}.toggle-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .2s}.toggle.on .toggle-knob{transform:translate(20px)}.modal-foot{display:flex;justify-content:flex-end;gap:12px}.sheet{width:384px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);animation:pop-in .18s ease-out}.sheet-tabs{display:flex;padding:6px;gap:4px;border-bottom:1px solid var(--line)}.sheet-tab{flex:1 1 0;height:42px;border:0;border-radius:var(--radius-sm);background:transparent;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--text-3);cursor:pointer;transition:color .15s,background .15s}.sheet-tab:hover{color:var(--text-2)}.sheet-tab.on{background:var(--surface-2);color:var(--text)}.sheet-body{padding:24px}.form-error{color:#e5484d;font-size:13px;font-weight:500;margin-bottom:12px}.form-note{font-size:12px;color:var(--text-3);line-height:1.6;margin:0 0 20px}.sheet-foot{display:flex;justify-content:flex-end;gap:12px}.drawer-backdrop{justify-content:flex-end;align-items:stretch}.drawer{height:100%;width:356px;max-width:90vw;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slide-in .22s cubic-bezier(.22,1,.36,1)}@keyframes slide-in{0%{transform:translate(100%)}to{transform:none}}.drawer-head{height:58px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-weight:600;font-size:15px}.drawer-empty{padding:30px 22px;color:var(--text-3);font-size:13px;line-height:1.7}.draft-list{list-style:none;margin:0;padding:10px;overflow-y:auto}.draft-item{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.draft-item:hover{background:var(--surface-2)}.draft-item.on{background:var(--accent-weak);border-color:var(--accent)}.draft-main{flex:1 1 auto;min-width:0}.draft-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draft-meta{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:4px}.draft-del{flex:0 0 auto;border:0;background:transparent;color:var(--text-3);font-size:12px;cursor:pointer;transition:color .15s}.draft-del:hover{color:#e5484d}.workspace-toolbar .page-size-popover,.freeform-toolbar .freeform-insert-menu,.freeform-inspector .paint-popover{border-radius:var(--panel-radius)}[data-theme=dark] .freeform-stage-pane .freeform-stage-box{box-shadow:0 14px 34px #0000007a,0 2px 8px #00000057}.app-header button:active:not(:disabled),.workspace-toolbar button:active:not(:disabled),.freeform-rail button:active:not(:disabled),.freeform-stage-pane .freeform-stage-head button:active:not(:disabled),.freeform-inspector button:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 0 0 1px var(--line-2)}@media (max-width: 1279px){.app-header{padding-inline:12px}.workspace-toolbar{gap:6px;padding-inline:12px}.freeform-main{grid-template-columns:136px minmax(0,1fr) 224px}.workspace-toolbar .toolbar-collapsible-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);border:0;white-space:nowrap}.freeform-panel-head,.freeform-stage-pane .freeform-stage-head{padding-inline:10px}.freeform-stage-pane .freeform-stage-scroll{padding:24px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html.theme-anim,html.theme-anim *{transition-duration:.01ms!important}}
