:root{--bg:#f5f5f7;--bg-subtle:#ececef;--surface:#fff;--surface-elevated:#fff;--surface-overlay:#ffffffb8;--border:#0000000f;--border-strong:#0000001a;--text:#1d1d1f;--text-muted:#6e6e73;--text-subtle:#86868b;--accent:#0071e3;--accent-hover:#0077ed;--accent-light:#0071e31a;--accent-glow:#0071e338;--accent-gradient:linear-gradient(180deg, #2997ff 0%, #0071e3 100%);--danger:#ff3b30;--radius:14px;--radius-sm:9px;--radius-xs:6px;--shadow-sm:0 1px 2px #0000000a;--shadow:0 2px 8px #0000000d;--shadow-md:0 4px 16px #00000012;--shadow-lg:0 8px 28px #00000017;--ease-out:cubic-bezier(.25, .1, .25, 1);--transition:.16s var(--ease-out);--transition-slow:.28s var(--ease-out);--font-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", system-ui, sans-serif;--font-body:"DM Sans", var(--font-display);--rail-width:68px;--panel-width:280px;--topbar-height:52px}[data-theme=dark]{--bg:#000;--bg-subtle:#0d0d0d;--surface:#161617;--surface-elevated:#1d1d1f;--surface-overlay:#161617c7;--border:#ffffff14;--border-strong:#ffffff24;--text:#f5f5f7;--text-muted:#a1a1a6;--text-subtle:#6e6e73;--accent:#2997ff;--accent-hover:#40a9ff;--accent-light:#2997ff24;--accent-glow:#2997ff4d;--accent-gradient:linear-gradient(180deg, #40a9ff 0%, #2997ff 100%);--shadow-sm:0 1px 3px #00000059, 0 1px 2px #0003;--shadow:0 4px 16px #00000073, 0 1px 4px #00000040;--shadow-md:0 8px 28px #00000080, 0 2px 8px #0000004d;--shadow-lg:0 16px 48px #0000008c, 0 4px 16px #00000059}[data-theme=dark] html,[data-theme=dark] body{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;transition:background var(--transition-slow), color var(--transition-slow);font-size:14px}body{background:radial-gradient(ellipse 80% 50% at 50% -10%, #0071e30a, transparent 60%), var(--bg)}[data-theme=dark] body{background:radial-gradient(ellipse 80% 50% at 50% -10%, #2997ff0d, transparent 60%), var(--bg)}::selection{background:var(--accent-light);color:var(--text)}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}a{color:var(--accent);transition:color var(--transition);text-decoration:none}a:hover{color:var(--accent-hover)}.btn{border-radius:var(--radius-sm);letter-spacing:-.01em;transition:background var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition);justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;box-shadow:none}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{opacity:.9}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0}.btn-ghost:hover{color:var(--text);background:#0000000a}.btn-ghost.active{background:var(--accent-light);color:var(--accent)}[data-theme=dark] .btn-ghost:hover{background:#ffffff0f}.btn-outline{border:1px solid var(--border-strong);background:var(--surface-elevated);color:var(--text)}.btn-outline:hover{color:var(--accent);background:var(--surface-elevated);border-color:#0071e34d}.btn-outline.active{background:var(--accent-light);color:var(--accent);border-color:#0071e359}.input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-elevated);width:100%;color:var(--text);transition:border-color var(--transition), box-shadow var(--transition);padding:10px 14px}.input:focus{box-shadow:0 0 0 2px var(--accent-light);border-color:#0071e373;outline:none}.input:hover:not(:focus){border-color:#00000029}[data-theme=dark] .input:hover:not(:focus){border-color:#fff3}.slider{width:100%;height:4px;accent-color:var(--accent);cursor:pointer}.label{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:11px;font-weight:600;display:block}.panel{background:var(--surface-overlay);-webkit-backdrop-filter:blur(20px)saturate(1.4);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:14px;display:flex}.panel-title{font-family:var(--font-display);letter-spacing:-.025em;color:var(--text);font-size:15px;font-weight:600}.panel-actions{border-top:1px solid var(--border);gap:8px;margin-top:16px;padding-top:16px;display:flex}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);border-radius:var(--radius-xs);color:#f5f5f7;letter-spacing:-.01em;white-space:pre;pointer-events:none;opacity:0;z-index:3000;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .16s var(--ease-out) .28s, transform .16s var(--ease-out) .28s;background:#1d1d1feb;padding:6px 11px;font-size:11.5px;font-weight:500;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}[data-theme=dark] [data-tip]:after{color:#1d1d1f;background:#f5f5f7f2}[data-tip]:hover:after{opacity:1;transform:translate(-50%)translateY(0)}[data-tip][data-tip-pos=right]:after{top:50%;bottom:auto;left:calc(100% + 10px);transform:translateY(-50%)translate(-4px)}[data-tip][data-tip-pos=right]:hover:after{transform:translateY(-50%)translate(0)}[data-tip][data-tip-pos=bottom]:after{top:calc(100% + 8px);bottom:auto;transform:translate(-50%)translateY(-4px)}[data-tip][data-tip-pos=bottom]:hover:after{transform:translate(-50%)translateY(0)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#0003}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff24}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#ffffff3d}[data-theme=dark] .layers-header,[data-theme=dark] .layers-props,[data-theme=dark] .layers-multi-bar{background:#ffffff08}[data-theme=dark] .topbar{box-shadow:inset 0 1px #ffffff0d}[data-theme=dark] .toast-close:hover{background:#ffffff14}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.toaster{z-index:2000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-sm);background:var(--surface-overlay);-webkit-backdrop-filter:blur(24px)saturate(1.8);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);color:var(--text);pointer-events:auto;align-items:center;gap:9px;padding:10px 14px;font-size:13px;font-weight:500;animation:.24s cubic-bezier(.34,1.4,.64,1) toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.toast-success svg:first-child{color:#34c759}.toast-error svg:first-child{color:var(--danger)}.toast-info svg:first-child{color:var(--accent)}.toast-close{color:var(--text-subtle);border-radius:50%;margin-left:2px;padding:2px;display:flex}.toast-close:hover{color:var(--text);background:#2d374814}.ui-modal-overlay{z-index:1900;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14182266;justify-content:center;align-items:center;animation:.16s overlay-in;display:flex;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.ui-modal{width:380px;max-width:calc(100vw - 48px);animation:.22s cubic-bezier(.34,1.3,.64,1) modal-in}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ui-modal-wide{width:640px;max-height:80vh;overflow-y:auto}.ui-modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.ui-modal-title{color:var(--text);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.ui-modal-message{color:var(--text-muted);margin:10px 0 0;font-size:13px;line-height:1.55}.ui-modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.btn-danger{color:#fff;background:linear-gradient(135deg,#f07070 0%,#e04b4b 100%);box-shadow:0 1px 2px #e04b4b40,0 4px 14px #e04b4b33}.btn-danger:hover{transform:translateY(-1px);box-shadow:0 2px 4px #e04b4b4d,0 6px 20px #e04b4b40}.busy-pill{top:calc(var(--topbar-height) + 14px);z-index:1800;border-radius:var(--radius-sm);background:var(--surface-overlay);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);color:var(--text);align-items:center;gap:9px;padding:8px 14px;font-size:13px;font-weight:500;animation:.2s cubic-bezier(.34,1.4,.64,1) toast-in;display:flex;position:fixed;left:50%;transform:translate(-50%)}.busy-pill .spin{color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.busy-pill .spin,.toast .spin{animation:.8s linear infinite spin}.shortcut-columns{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px;display:grid}.shortcut-group h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);margin-bottom:10px;font-size:11px;font-weight:700}.shortcut-row{color:var(--text-muted);align-items:center;gap:10px;padding:3px 0;font-size:12.5px;display:flex}.shortcut-row kbd{text-align:center;border:1px solid var(--border-strong);background:var(--surface-elevated);min-width:28px;box-shadow:0 1px 0 var(--border-strong);color:var(--text);white-space:nowrap;border-radius:5px;padding:2px 7px;font-family:inherit;font-size:11px;font-weight:600}.prefs-overlay{z-index:300;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.prefs-modal{flex-direction:column;width:min(920px,100%);max-height:min(88vh,720px);display:flex;overflow:hidden}.prefs-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.prefs-body{grid-template-columns:200px 1fr;min-height:420px;display:grid;overflow:hidden}.prefs-nav{border-right:1px solid var(--border);padding:12px 8px;overflow-y:auto}.prefs-nav button{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:10px 12px;font-size:14px}.prefs-nav button.active{background:var(--accent-soft,#6366f11f);color:var(--accent,#6366f1);font-weight:600}.prefs-nav button:hover:not(.active){background:var(--surface-2,#ffffff0a)}.prefs-content{padding:20px 24px;overflow-y:auto}.prefs-section h3{margin:0 0 16px;font-size:18px}.prefs-locale-list{flex-wrap:wrap;gap:8px;display:flex}.prefs-field{margin-bottom:14px}.prefs-field label{color:var(--text-muted);margin-bottom:6px;font-size:13px;display:block}.prefs-avatar-row{align-items:center;gap:16px;margin-bottom:20px;display:flex}.prefs-avatar{background:var(--surface-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;display:flex;overflow:hidden}.prefs-avatar img{object-fit:cover;width:100%;height:100%}.prefs-plan-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.prefs-plan-badge.free{background:var(--surface-2);color:var(--text-muted)}.prefs-plan-badge.pro{color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7)}.prefs-invoice-table{border-collapse:collapse;width:100%;font-size:13px}.prefs-invoice-table th,.prefs-invoice-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 6px}.prefs-danger-zone{border-top:1px solid var(--border);margin-top:24px;padding-top:20px}.prefs-muted{color:var(--text-muted);font-size:13px;line-height:1.5}.prefs-alert{border-radius:8px;margin-bottom:16px;padding:12px 14px}.prefs-alert-warning{background:#ff95001f;border:1px solid #ff950059}.prefs-alert p{margin:0 0 8px;font-size:14px}.prefs-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}@media (width<=700px){.prefs-body{grid-template-columns:1fr}.prefs-nav{border-right:none;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;display:flex}.prefs-nav button{flex:auto;width:auto;min-width:100px}}.user-menu-wrap{position:relative}.user-menu-trigger{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:8px;padding:4px 8px 4px 4px;display:flex}.user-menu-trigger:hover{background:var(--surface-2,#ffffff0f)}.user-menu-avatar{background:var(--surface-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex;overflow:hidden}.user-menu-avatar img{object-fit:cover;width:100%;height:100%}.user-menu-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:14px;font-weight:500;overflow:hidden}.user-dropdown{background:var(--panel-bg,var(--bg));border:1px solid var(--border);z-index:200;border-radius:12px;min-width:260px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 12px 40px #00000040}.user-dropdown-header{border-bottom:1px solid var(--border);gap:12px;padding:14px 16px;display:flex}.user-dropdown-header strong{font-size:14px;display:block}.user-dropdown-header small{color:var(--text-muted);font-size:12px}.user-dropdown-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:11px 16px;font-size:14px;text-decoration:none;display:flex}.user-dropdown-item:hover{background:var(--surface-2,#ffffff0a)}.user-dropdown-badge{text-transform:uppercase;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:600}.user-dropdown-badge.pro{color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7)}.user-dropdown-badge.free{background:var(--surface-2);color:var(--text-muted)}.user-dropdown-divider{background:var(--border);height:1px;margin:4px 0}.deletion-banner{background:color-mix(in srgb, var(--warning,#f59e0b) 16%, var(--surface));border-bottom:1px solid color-mix(in srgb, var(--warning,#f59e0b) 35%, transparent);color:var(--text);flex-wrap:wrap;align-items:center;gap:12px 16px;margin:0;padding:12px max(24px,50% - 560px);display:flex}.deletion-banner svg{color:var(--warning,#f59e0b);flex:none}.deletion-banner-copy{flex:220px;min-width:0}.deletion-banner-copy strong{margin-bottom:2px;font-size:14px;display:block}.deletion-banner-copy p{color:var(--text-muted);margin:0;font-size:13px}.app-logo{align-items:center;gap:8px;min-width:0;display:inline-flex;overflow:visible}.app-logo-mark-frame{flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:visible}.app-logo-mark-frame--scaled .app-logo-mark{object-position:top center;transform-origin:50% 42%}.app-logo-mark{object-fit:contain;transform-origin:50%;flex:none;display:block}.app-logo-name{font-family:var(--font-display);letter-spacing:-.03em;white-space:nowrap;font-weight:600}.install-page{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-body);justify-content:center;align-items:center;padding:24px;display:flex}.install-card{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:560px;box-shadow:var(--shadow-lg);color:var(--text);padding:32px}.install-brand{justify-content:center;margin-bottom:20px;display:flex}.install-brand .app-logo-name{font-size:24px}.install-card h1{color:var(--text);margin:0 0 8px;font-size:24px;font-weight:600}.install-card h2{color:var(--text-muted);margin:0 0 16px;font-size:16px;font-weight:500}.install-card p{color:var(--text)}.install-steps{gap:6px;margin-bottom:24px;display:flex}.install-step-dot{background:var(--border-strong);border-radius:2px;flex:1;height:4px}.install-step-dot.active{background:var(--accent)}.install-field{margin-bottom:14px}.install-field label{color:var(--text-muted);margin-bottom:6px;font-size:13px;display:block}.install-field input,.install-field select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);padding:10px 12px;font-size:14px}.install-field input::placeholder{color:var(--text-subtle)}.install-field input:focus,.install-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);outline:none}.install-row{grid-template-columns:1fr 100px;gap:12px;display:grid}.install-req-list{margin:0 0 16px;padding:0;list-style:none}.install-req-list li{color:var(--text);border-bottom:1px solid var(--border);padding:8px 0;font-size:14px}.install-req-item{list-style:none}.install-req-row{align-items:center;gap:10px;display:flex}.install-guide{color:var(--text-muted);margin:8px 0 0;font-size:13px}.install-guide-panel{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:16px;padding:10px 12px}.install-guide summary{cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;font-weight:500}.install-guide-steps{margin:10px 0 4px;padding-left:20px;line-height:1.55}.install-guide-steps li{border:none;margin-bottom:6px;padding:0}.install-req-badge{text-transform:uppercase;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:600}.install-req-badge.ok{color:#15803d;background:#22c55e26}.install-req-badge.warn{color:#a16207;background:#eab30826}.install-req-badge.fail{color:#b91c1c;background:#ef444426}[data-theme=dark] .install-req-badge.ok{color:#4ade80}[data-theme=dark] .install-req-badge.warn{color:#facc15}[data-theme=dark] .install-req-badge.fail{color:#f87171}.install-actions{justify-content:space-between;gap:12px;margin-top:24px;display:flex}.install-muted{color:var(--text-muted);margin-bottom:16px;font-size:13px;line-height:1.5}.install-section-title{color:var(--text);margin:20px 0 10px;font-size:14px;font-weight:600}.install-spinner{text-align:center;color:var(--text);padding:32px 0}.install-error{color:var(--danger);margin-top:8px;font-size:13px}.install-success{color:#15803d;margin-top:8px;font-size:13px}[data-theme=dark] .install-success{color:#4ade80}.install-diagnostics{color:var(--text-muted,#64748b);margin-top:20px;font-size:12px}.install-diagnostics summary{cursor:pointer;-webkit-user-select:none;user-select:none}.install-diagnostics ul{margin:8px 0 0;padding-left:18px}.install-diagnostics li{word-break:break-all;margin:4px 0}
