.pv{margin:0 auto;width:100%;container-type:inline-size;background:var(--p-background);color:var(--p-on-background);font-family:var(--p-font-body-family);border-radius:10px;overflow:hidden;box-shadow:0 1px 3px #0f121a1a,0 12px 40px #0f121a1f;transition:max-width .25s ease}.pv *{margin:0;box-sizing:border-box}.pv-container{max-width:var(--p-space-container-max);margin:0 auto;padding-left:var(--p-space-container-pad);padding-right:var(--p-space-container-pad)}.pv-display{font-family:var(--p-type-display-family);font-size:var(--p-type-display-size);font-weight:var(--p-type-display-weight);line-height:var(--p-type-display-line);letter-spacing:var(--p-type-display-spacing);font-feature-settings:var(--p-type-display-feature)}.pv-headline-lg{font-family:var(--p-type-headline-lg-family);font-size:var(--p-type-headline-lg-size);font-weight:var(--p-type-headline-lg-weight);line-height:var(--p-type-headline-lg-line);letter-spacing:var(--p-type-headline-lg-spacing)}.pv-headline-md{font-family:var(--p-type-headline-md-family);font-size:var(--p-type-headline-md-size);font-weight:var(--p-type-headline-md-weight);line-height:var(--p-type-headline-md-line);letter-spacing:var(--p-type-headline-md-spacing)}.pv-title{font-family:var(--p-type-title-family);font-size:var(--p-type-title-size);font-weight:var(--p-type-title-weight);line-height:var(--p-type-title-line);letter-spacing:var(--p-type-title-spacing)}.pv-body-lg{font-family:var(--p-type-body-lg-family);font-size:var(--p-type-body-lg-size);font-weight:var(--p-type-body-lg-weight);line-height:var(--p-type-body-lg-line);letter-spacing:var(--p-type-body-lg-spacing)}.pv-body-md{font-family:var(--p-type-body-md-family);font-size:var(--p-type-body-md-size);font-weight:var(--p-type-body-md-weight);line-height:var(--p-type-body-md-line);letter-spacing:var(--p-type-body-md-spacing)}.pv-label-md{font-family:var(--p-type-label-md-family);font-size:var(--p-type-label-md-size);font-weight:var(--p-type-label-md-weight);line-height:var(--p-type-label-md-line);letter-spacing:var(--p-type-label-md-spacing)}.pv-label-sm{font-family:var(--p-type-label-sm-family);font-size:var(--p-type-label-sm-size);font-weight:var(--p-type-label-sm-weight);line-height:var(--p-type-label-sm-line);letter-spacing:var(--p-type-label-sm-spacing)}.pv-nav{background:color-mix(in srgb,var(--p-background) 85%,transparent);border-bottom:1px solid var(--p-outline-variant)}.pv-nav-inner{display:flex;align-items:center;gap:var(--p-space-md);height:64px}.pv-brand{font-family:var(--p-font-head-family);font-weight:700;font-size:20px;letter-spacing:-.01em;color:var(--p-on-surface)}.pv-brand-sm{font-size:16px}.pv-nav-links{display:flex;gap:var(--p-space-md);margin-left:var(--p-space-lg);flex:1}.pv-link{font-family:var(--p-type-label-md-family);font-size:var(--p-type-label-md-size);font-weight:var(--p-type-label-md-weight);letter-spacing:var(--p-type-label-md-spacing);color:var(--p-on-surface-variant);text-decoration:none}.pv-link:hover,.pv-force-hover .pv-link{color:var(--p-primary)}.pv-nav-actions{display:flex;gap:var(--p-space-sm);align-items:center;margin-left:auto}@container (max-width: 620px){.pv-nav-links{display:none}.pv-brand{white-space:nowrap}}@container (max-width: 440px){.pv-nav .pv-btn-ghost{display:none}.pv-nav-inner{height:56px;gap:var(--p-space-sm)}.pv-hero{padding:var(--p-space-lg) 0}.pv-hero .pv-display{font-size:min(var(--p-type-display-size),2rem);line-height:1.15}.pv-hero-actions,.pv-form-actions{flex-direction:column;align-items:stretch}.pv-type-row{grid-template-columns:1fr;gap:4px}.pv-type-sample{white-space:normal;overflow:visible;text-overflow:unset}}.pv-btn{display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.pv-btn-primary{background:var(--p-btn-primary-bg);color:var(--p-btn-primary-text);border-radius:var(--p-btn-primary-radius);padding:var(--p-btn-primary-pad);height:var(--p-btn-primary-height);font-family:var(--p-btn-primary-font-family);font-size:var(--p-btn-primary-font-size);font-weight:var(--p-btn-primary-font-weight);letter-spacing:var(--p-btn-primary-font-spacing)}.pv-btn-primary:hover:not(:disabled),.pv-force-hover .pv-btn-primary:not(:disabled){background:var(--p-btn-primary-hover-bg);color:var(--p-btn-primary-hover-text)}.pv-btn-primary:disabled{background:var(--p-btn-primary-disabled-bg);color:var(--p-btn-primary-disabled-text);cursor:not-allowed}.pv-btn-secondary{background:var(--p-btn-secondary-bg);color:var(--p-btn-secondary-text);border-radius:var(--p-btn-secondary-radius);padding:var(--p-btn-secondary-pad);height:var(--p-btn-secondary-height);font-family:var(--p-btn-secondary-font-family);font-size:var(--p-btn-secondary-font-size);font-weight:var(--p-btn-secondary-font-weight);letter-spacing:var(--p-btn-secondary-font-spacing);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--p-btn-secondary-text) 45%,transparent)}.pv-btn-secondary:hover,.pv-force-hover .pv-btn-secondary{background:var(--p-btn-secondary-hover-bg);color:var(--p-btn-secondary-hover-text)}.pv-btn-ghost{background:var(--p-btn-ghost-bg);color:var(--p-btn-ghost-text);border-radius:var(--p-btn-ghost-radius);padding:0 14px;height:38px;font-family:var(--p-btn-ghost-font-family);font-size:var(--p-btn-ghost-font-size);font-weight:var(--p-btn-ghost-font-weight);letter-spacing:var(--p-btn-ghost-font-spacing)}.pv-btn-ghost:hover,.pv-force-hover .pv-btn-ghost{background:var(--p-btn-ghost-hover-bg);color:var(--p-btn-ghost-hover-text)}.pv-hero{padding:calc(var(--p-space-xl) * 1.2) 0;text-align:center;background:radial-gradient(600px 280px at 50% -80px,color-mix(in srgb,var(--p-primary) 14%,transparent),transparent),var(--p-background)}.pv-hero .pv-display{max-width:760px;margin:var(--p-space-md) auto 0}.pv-hero-sub{max-width:600px;margin:var(--p-space-md) auto 0;color:var(--p-on-surface-variant)}.pv-hero-actions{display:flex;gap:var(--p-space-sm);justify-content:center;margin-top:var(--p-space-lg)}.pv-hero-badge{margin-top:var(--p-space-sm)}.pv-hero-note{color:var(--p-on-surface-variant)}.pv-badge{display:inline-flex;align-items:center;background:var(--p-badge-bg);color:var(--p-badge-text);border-radius:var(--p-badge-radius);padding:var(--p-badge-pad, 4px 10px);font-family:var(--p-badge-font-family);font-size:var(--p-badge-font-size);font-weight:var(--p-badge-font-weight);letter-spacing:var(--p-badge-font-spacing)}.pv-badge-error{background:var(--p-error-container);color:var(--p-on-error-container)}.pv-section{padding:var(--p-space-xl) 0}.pv-section-tint{background:var(--p-surface-container-low);border-top:1px solid var(--p-outline-variant);border-bottom:1px solid var(--p-outline-variant)}.pv-section-sub{color:var(--p-on-surface-variant);margin-top:var(--p-space-xs);max-width:560px}.pv-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--p-space-gutter);margin-top:var(--p-space-lg)}.pv-card{background:var(--p-card-bg);color:var(--p-card-text);border-radius:var(--p-card-radius);padding:var(--p-card-pad);border:1px solid var(--p-outline-variant);display:flex;flex-direction:column;gap:var(--p-space-sm);box-shadow:0 1px 2px #0f121a0d,0 4px 14px #0f121a0d;transition:background-color .15s ease,box-shadow .15s ease,transform .15s ease}.pv-card:hover,.pv-force-hover .pv-card{background:var(--p-card-hover-bg);box-shadow:0 2px 4px #0f121a0f,0 10px 28px #0f121a1a;transform:translateY(-2px)}.pv-card-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--p-rounded-md);background:var(--p-primary-container);color:var(--p-on-primary-container);font-size:18px}.pv-icon-secondary{background:var(--p-secondary-container);color:var(--p-on-secondary-container)}.pv-icon-tertiary{background:var(--p-tertiary-container);color:var(--p-on-tertiary-container)}.pv-card .pv-body-md{color:var(--p-on-surface-variant);flex:1}.pv-card-cta{align-self:flex-start;color:var(--p-primary)}.pv-stats{background:var(--p-inverse-surface);color:var(--p-inverse-on-surface);padding:var(--p-space-lg) 0}.pv-stats-inner{display:flex;justify-content:space-around;gap:var(--p-space-md);flex-wrap:wrap}.pv-stat{display:flex;flex-direction:column;align-items:center;gap:var(--p-space-xs)}.pv-stat .pv-label-sm{opacity:.75}.pv-stat-value{font-family:var(--p-type-headline-lg-family);font-size:var(--p-type-headline-lg-size);font-weight:var(--p-type-headline-lg-weight);letter-spacing:var(--p-type-headline-lg-spacing)}.pv-two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--p-space-gutter);align-items:start}@container (max-width: 700px){.pv-two-col{grid-template-columns:1fr}}.pv-panel{min-width:0}.pv-card-elevated{background:var(--p-card-elev-bg);color:var(--p-card-elev-text);border-radius:var(--p-card-elev-radius);padding:var(--p-card-elev-pad);border:1px solid var(--p-outline-variant);box-shadow:0 8px 30px #0f121a1f}.pv-field{display:flex;flex-direction:column;gap:6px;margin-top:var(--p-space-md)}.pv-field .pv-label-md{color:var(--p-on-surface)}.pv-input{background:var(--p-input-bg);color:var(--p-input-text);border-radius:var(--p-input-radius);padding:var(--p-input-pad);height:var(--p-input-height);font-family:var(--p-input-font-family);font-size:var(--p-input-font-size);font-weight:var(--p-input-font-weight);border:1px solid var(--p-outline-variant);outline:none;width:100%}.pv-input-focused,.pv-force-focus .pv-input,.pv-input:focus{border-color:var(--p-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--p-primary) 30%,transparent)}.pv-input-error,.pv-force-focus .pv-input-error{border-color:var(--p-error);box-shadow:0 0 0 2px color-mix(in srgb,var(--p-error) 25%,transparent)}.pv-helper{color:var(--p-on-surface-variant)}.pv-helper-error{color:var(--p-error)}.pv-form-actions{display:flex;gap:var(--p-space-sm);margin-top:var(--p-space-md)}.pv-list{list-style:none;padding:0;margin-top:var(--p-space-md);display:flex;flex-direction:column;gap:2px}.pv-list-item{display:flex;align-items:center;gap:var(--p-space-sm);background:var(--p-list-bg);color:var(--p-list-text);border-radius:var(--p-list-radius);padding:var(--p-list-pad);transition:background-color .15s ease;cursor:pointer}.pv-list-item:hover,.pv-list-item-active,.pv-force-hover .pv-list-item{background:var(--p-list-hover-bg)}.pv-avatar{width:38px;height:38px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--p-rounded-full);background:var(--p-primary-container);color:var(--p-on-primary-container);font-family:var(--p-type-label-sm-family);font-size:var(--p-type-label-sm-size);font-weight:700}.pv-avatar-secondary{background:var(--p-secondary-container);color:var(--p-on-secondary-container)}.pv-avatar-tertiary{background:var(--p-tertiary-container);color:var(--p-on-tertiary-container)}.pv-list-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.pv-list-title{font-family:var(--p-type-body-md-family);font-size:var(--p-type-body-md-size);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-list-meta{color:var(--p-on-surface-variant)}.pv-badge-sm{flex:none}.pv-type-table{margin-top:var(--p-space-lg);display:flex;flex-direction:column}.pv-type-row{display:grid;grid-template-columns:110px 1fr;gap:var(--p-space-md);align-items:baseline;padding:var(--p-space-sm) 0;border-bottom:1px solid var(--p-outline-variant)}.pv-type-name{color:var(--p-on-surface-variant)}.pv-type-sample{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-swatch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--p-space-sm);margin-top:var(--p-space-lg)}.pv-swatch{height:72px;border-radius:var(--p-rounded-md);border:1px solid color-mix(in srgb,var(--p-on-surface) 12%,transparent);display:flex;align-items:flex-end;padding:8px 10px}.pv-swatch span{font-family:var(--p-type-label-sm-family);font-size:11px;font-weight:var(--p-type-label-sm-weight);letter-spacing:var(--p-type-label-sm-spacing)}.pv-sw-primary{background:var(--p-primary);color:var(--p-on-primary)}.pv-sw-primary-container{background:var(--p-primary-container);color:var(--p-on-primary-container)}.pv-sw-secondary{background:var(--p-secondary);color:var(--p-on-secondary)}.pv-sw-secondary-container{background:var(--p-secondary-container);color:var(--p-on-secondary-container)}.pv-sw-tertiary{background:var(--p-tertiary);color:var(--p-on-tertiary)}.pv-sw-tertiary-container{background:var(--p-tertiary-container);color:var(--p-on-tertiary-container)}.pv-sw-error{background:var(--p-error);color:var(--p-on-error)}.pv-sw-error-container{background:var(--p-error-container);color:var(--p-on-error-container)}.pv-sw-surface{background:var(--p-surface);color:var(--p-on-surface)}.pv-sw-surface-low{background:var(--p-surface-container-low);color:var(--p-on-surface)}.pv-sw-surface-high{background:var(--p-surface-container-high);color:var(--p-on-surface)}.pv-sw-inverse{background:var(--p-inverse-surface);color:var(--p-inverse-on-surface)}.pv-footer{border-top:1px solid var(--p-outline-variant);padding:var(--p-space-lg) 0;background:var(--p-surface-container-low)}.pv-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:var(--p-space-md);flex-wrap:wrap}.pv-footer .pv-label-sm{color:var(--p-on-surface-variant)}:root{--chrome-bg: #f3f4f6;--chrome-panel: #ffffff;--chrome-border: #e2e4e9;--chrome-ink: #16181d;--chrome-muted: #6b7280;--chrome-accent: #16181d;--chrome-mono: "JetBrains Mono", ui-monospace, monospace;--chrome-sans: "Inter", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--chrome-sans);color:var(--chrome-ink);background:var(--chrome-bg);font-size:14px}.app{height:100%;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;height:56px;background:var(--chrome-panel);border-bottom:1px solid var(--chrome-border);flex:none}.app-title{display:flex;align-items:center;gap:12px;min-width:0}.app-title h1{font-size:17px;font-weight:700;letter-spacing:-.01em;margin:0;white-space:nowrap}.app-tag{font-family:var(--chrome-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--chrome-muted);border:1px solid var(--chrome-border);padding:3px 8px;border-radius:4px;white-space:nowrap}.app-actions{display:flex;align-items:center;gap:8px}.app-sep{width:1px;height:22px;background:var(--chrome-border)}.app-btn{font-family:var(--chrome-sans);font-size:13px;font-weight:500;padding:7px 12px;border-radius:6px;border:1px solid var(--chrome-border);background:var(--chrome-panel);color:var(--chrome-ink);cursor:pointer;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease}.app-btn:hover:not(:disabled){background:#f6f7f9;border-color:#cdd1d8}.app-btn:disabled{opacity:.45;cursor:not-allowed}.app-btn-primary{background:var(--chrome-accent);border-color:var(--chrome-accent);color:#fff}.app-btn-primary:hover:not(:disabled){background:#2d3038;border-color:#2d3038}.app-btn-copied{background:#f0fdf4;border-color:#86efac;color:#166534}.app-btn-error{background:#fef2f2;border-color:#fca5a5;color:#991b1b}.app-body{flex:1;display:flex;min-height:0}.app-sidebar{--app-tab-height: 38px;--app-tab-inset: 10px;--app-tab-radius: 9px;width:448px;flex:none;display:flex;flex-direction:column;background:var(--chrome-bg);border-right:1px solid var(--chrome-border);min-height:0;transition:width .32s cubic-bezier(.4,0,.2,1)}.app-sidebar-expanded{width:50vw}.app-tabs{display:flex;gap:6px;margin:8px var(--app-tab-inset) 0;padding:6px 6px 0;background:#e8eaee;border-radius:var(--app-tab-radius) var(--app-tab-radius) 0 0;flex:none}.app-tab{position:relative;flex:1;box-sizing:border-box;height:var(--app-tab-height);padding:0 14px;font-family:var(--chrome-mono);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;background:var(--chrome-panel);border:1px solid var(--chrome-border);border-bottom:none;border-radius:var(--app-tab-radius) var(--app-tab-radius) 0 0;color:#4b5563;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease}.app-tab:not(.app-tab-active):after{content:"";position:absolute;left:14px;right:14px;bottom:3px;height:2px;background:#b8bcc4;border-radius:1px;transition:background-color .12s ease}.app-tab:hover:not(.app-tab-active){color:var(--chrome-ink);background:var(--chrome-panel);border-color:#c8ccd4;box-shadow:0 1px 3px #0f121a14}.app-tab:hover:not(.app-tab-active):after{background:#6b7280}.app-tab:active:not(.app-tab-active){background:#eceef2;border-color:var(--chrome-border);box-shadow:none;transform:translateY(1px)}.app-tab:active:not(.app-tab-active):after{background:var(--chrome-ink)}.app-tab-active{z-index:1;margin-bottom:-1px;background:var(--chrome-ink);color:var(--chrome-panel);font-weight:700;box-shadow:0 -1px 0 var(--chrome-panel)}.app-sidebar-content{flex:1;min-height:0;display:flex;flex-direction:column;margin:0 var(--app-tab-inset) var(--app-tab-inset);background:var(--chrome-panel);border:1px solid var(--chrome-border);border-radius:0 0 var(--app-tab-radius) var(--app-tab-radius);overflow:hidden}.app-canvas{flex:1;display:flex;flex-direction:column;min-width:0}.app-canvas-toolbar{display:flex;align-items:center;gap:16px;padding:10px 20px;flex:none}.app-seg{display:inline-flex;border:1px solid var(--chrome-border);border-radius:7px;overflow:hidden;background:var(--chrome-panel)}.app-seg-btn{border:none;background:transparent;padding:6px 12px;font-size:12px;font-weight:500;color:var(--chrome-muted);cursor:pointer}.app-seg-btn+.app-seg-btn{border-left:1px solid var(--chrome-border)}.app-seg-active{background:var(--chrome-ink);color:#fff}.app-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--chrome-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.app-tooltip-wrap{display:inline-flex}.app-tooltip{width:max-content;max-width:240px;padding:6px 10px;border-radius:6px;border:1.5px solid #c3c3c3;background:#f0f0f0ea;color:var(--chrome-ink);font-size:12px;font-weight:500;line-height:1.4;text-align:center;pointer-events:none;box-shadow:0 2px 4px #0f121a1a,0 8px 24px #0f121a29}.app-tooltip-portal{position:fixed;transform:translate(-50%);z-index:10000}.app-tooltip-readable{max-width:280px;text-align:left;white-space:pre-line}.app-canvas-name{margin-left:auto;font-family:var(--chrome-mono);font-size:11px;color:var(--chrome-muted)}.app-canvas-scroll{flex:1;overflow:auto;padding:8px 24px 40px;background-image:radial-gradient(circle,#d6d9df 1px,transparent 1px);background-size:22px 22px}.app-canvas-scroll:has(.app-canvas-empty){display:flex;align-items:center;justify-content:center;min-height:0}.app-canvas-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;max-width:560px;margin:auto;padding:24px 16px;text-align:center}.empty-title{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.3;color:var(--chrome-ink)}.empty-sub{margin:0;font-size:14px;line-height:1.55;color:var(--chrome-muted);max-width:380px}.empty-mono{font-family:var(--chrome-mono);font-size:12px;letter-spacing:-.02em;color:var(--chrome-ink)}.empty-steps{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;width:100%;max-width:320px}.empty-steps li{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--chrome-panel);border:1px solid var(--chrome-border);border-radius:10px;text-align:left}.empty-step-num{flex:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--chrome-ink);color:#fff;font-size:12px;font-weight:600}.empty-step-text{font-size:13px;line-height:1.4;color:var(--chrome-muted)}.empty-step-text strong{color:var(--chrome-ink);font-weight:600}.src-root{display:flex;flex-direction:column;flex:1;min-height:0;padding:5px 5px 0}.src-section{flex:none;padding:12px}.src-section-title{margin:0 0 8px;font-family:var(--chrome-mono);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--chrome-ink)}.src-toolbar{display:flex;gap:8px;flex:none;min-width:0}.src-samples{flex:1;min-width:0}.src-or{flex:none;align-self:center;font-size:13px;color:var(--chrome-muted)}.src-upload-btn{flex:none;white-space:nowrap}.dd-root{position:relative;min-width:0}.dd-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font-family:var(--chrome-sans);font-size:13px;padding:7px 10px;border-radius:6px;border:1px solid var(--chrome-border);background:var(--chrome-panel);color:var(--chrome-muted);cursor:pointer;text-align:left;transition:border-color .12s ease,box-shadow .12s ease,color .12s ease}.dd-trigger:hover{border-color:#c8ccd4;color:var(--chrome-ink)}.dd-trigger-open,.dd-trigger-selected,.dd-trigger:focus-visible{outline:none;border-color:#a8adb8;box-shadow:0 0 0 2px #16181d14;color:var(--chrome-ink)}.dd-trigger-selected:not(.dd-trigger-open):not(:focus-visible){border-color:var(--chrome-border);box-shadow:none}.dd-trigger-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-chevron{flex:none;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.55;transition:transform .15s ease}.dd-trigger-open .dd-chevron{transform:rotate(180deg)}.dd-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;margin:0;padding:4px;list-style:none;background:var(--chrome-panel);border:1px solid var(--chrome-border);border-radius:8px;box-shadow:0 4px 16px #16181d14,0 1px 3px #16181d0f;max-height:240px;overflow-y:auto}.dd-option{display:block;width:100%;padding:8px 10px;border:none;border-radius:5px;background:transparent;font-family:var(--chrome-sans);font-size:13px;line-height:1.35;color:var(--chrome-ink);text-align:left;cursor:pointer}.dd-option:hover,.dd-option-active{background:#f3f4f6}.dd-option:focus-visible{outline:none;background:#eceef2}.src-editor{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px;gap:8px}.src-editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}.src-editor-head .src-section-title{margin:0}.src-editor-box{flex:1;min-height:0;display:flex;border:1px solid var(--chrome-border);border-radius:8px;overflow:hidden;background:var(--chrome-panel)}.src-expand-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;flex:none;border:1px solid var(--chrome-border);border-radius:6px;background:var(--chrome-panel);color:var(--chrome-muted);cursor:pointer;transition:color .12s ease,border-color .12s ease,background-color .12s ease}.src-expand-btn:hover{color:var(--chrome-ink);border-color:#c8ccd4;background:var(--chrome-panel)}.src-expand-btn:focus-visible{outline:none;border-color:#a8adb8;box-shadow:0 0 0 2px #16181d14}.src-editor-gutter{flex:none;overflow:hidden;padding:12px 10px 12px 12px;border-right:1px solid var(--chrome-border);background:#f6f7f9;-webkit-user-select:none;user-select:none;text-align:right;font-family:var(--chrome-mono);font-size:12px;line-height:1.6;color:var(--chrome-muted)}.src-editor-gutter-line{min-height:calc(12px * 1.6)}.src-textarea{flex:1;min-height:280px;width:100%;resize:none;border:none;outline:none;padding:12px 14px;font-family:var(--chrome-mono);font-size:12px;line-height:1.6;color:var(--chrome-ink);background:transparent}.src-issues{flex:none;max-height:180px;overflow-y:auto;border-top:1px solid var(--chrome-border);padding:8px 12px;display:flex;flex-direction:column;gap:4px}.src-issue{font-family:var(--chrome-mono);font-size:11px;line-height:1.5;padding:4px 8px;border-radius:4px}.src-issue-line{font-weight:600;margin-right:6px}.src-issue-line:after{content:"·";font-weight:400;margin-left:6px;opacity:.55}.src-issue-error{background:#fdecea;color:#8c1d18}.src-issue-warning{background:#fff8e1;color:#7a5900}.ed-root{flex:1;min-height:0;overflow-y:auto;padding:8px 0 32px}.ed-empty{flex:1;min-height:0;overflow-y:auto;padding:12px 16px;color:var(--chrome-muted);font-size:13px;line-height:1.5;margin:0}.ed-note{padding:12px 16px;color:var(--chrome-muted);font-size:13px;line-height:1.5;margin:0}.ed-section{border-bottom:1px solid var(--chrome-border)}.ed-section .ed-section{border-bottom:none;border-top:1px solid #eef0f3}.ed-section-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:transparent;border:none;cursor:pointer;text-align:left}.ed-chevron{font-size:10px;color:var(--chrome-muted);transition:transform .12s ease}.ed-chevron-open{transform:rotate(90deg)}.ed-section-title{font-family:var(--chrome-mono);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--chrome-ink)}.ed-section .ed-section .ed-section-title{text-transform:none;letter-spacing:.02em;font-weight:500}.ed-section-hint{margin-left:auto;font-family:var(--chrome-mono);font-size:10px;color:var(--chrome-muted)}.ed-section-body{padding:2px 14px 12px}.ed-section .ed-section .ed-section-body{padding-right:0}.ctl-row{display:flex;align-items:center;gap:8px;padding:4px 0;min-height:30px}.ctl-label{font-family:var(--chrome-mono);font-size:11px;color:var(--chrome-muted);width:108px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctl-slider{flex:1;min-width:40px;accent-color:var(--chrome-ink);height:22px}.ctl-slider:disabled{opacity:.3}.ctl-text{width:76px;flex:none;font-family:var(--chrome-mono);font-size:11px;padding:5px 7px;border:1px solid var(--chrome-border);border-radius:5px;color:var(--chrome-ink);background:var(--chrome-panel);outline:none}.ctl-text:focus{border-color:var(--chrome-ink)}.ctl-text-wide{flex:1;width:auto}.ctl-mono{font-family:var(--chrome-mono)}.ctl-color-text{flex:1;width:auto;min-width:70px}.ctl-swatch{width:26px;height:26px;flex:none;border-radius:6px;border:1px solid rgba(0,0,0,.15);cursor:pointer;position:relative;overflow:hidden}.ctl-swatch input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.ctl-contrast{flex:none;font-family:var(--chrome-mono);font-size:9.5px;font-weight:600;padding:3px 6px;border-radius:4px;white-space:nowrap;cursor:default}.ctl-contrast-pass{background:#e6f4ea;color:#1e7e34}.ctl-contrast-large{background:#fff8e1;color:#7a5900}.ctl-contrast-fail{background:#fdecea;color:#c62828}.app-footer{flex:none;padding:10px 16px;border-top:1px solid var(--chrome-border);background:var(--chrome-panel);text-align:center}.app-footer p{margin:0;font-size:12px;line-height:1.5;color:var(--chrome-muted)}.app-footer a{color:var(--chrome-ink);text-decoration:underline;text-underline-offset:2px}.app-footer a:hover{color:#4f46e5}.app-footer-link{border:none;background:none;padding:0;font-family:var(--chrome-sans);font-size:12px;color:var(--chrome-ink);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.app-footer-link:hover{color:#4f46e5}.app-mobile-nav{display:none}.app-panel-hidden{display:none!important}@media (max-width: 900px){.app-header{flex-wrap:nowrap;height:auto;min-height:48px;padding:8px 12px;gap:8px}.app-title{flex:1;min-width:0}.app-title h1{font-size:15px;overflow:hidden;text-overflow:ellipsis}.app-tag{display:none}.app-actions{display:flex;flex:none;flex-wrap:nowrap;gap:6px;width:auto;justify-content:flex-end}.app-sep-actions{display:none}.app-btn{font-size:12px;padding:6px 10px}.app-btn-history{display:none}.app-mobile-nav{display:flex;flex:none;gap:6px;padding:8px 12px 0;background:var(--chrome-panel);border-bottom:1px solid var(--chrome-border)}.app-mobile-nav-btn{flex:1;height:36px;border:1px solid var(--chrome-border);border-radius:8px 8px 0 0;background:var(--chrome-bg);font-family:var(--chrome-sans);font-size:13px;font-weight:600;color:var(--chrome-muted);cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.app-mobile-nav-active{background:var(--chrome-panel);color:var(--chrome-ink);border-bottom-color:var(--chrome-panel);margin-bottom:-1px}.app-body{flex-direction:column;min-height:0}.app-sidebar{width:100%;max-height:none;border-right:none;border-bottom:none;min-height:0}.app-sidebar-expanded{width:100%}.app-canvas{flex:1;min-height:0}.app-canvas-toolbar{flex-wrap:wrap;gap:8px 12px;padding:8px 12px}.app-canvas-name{display:none}.app-canvas-scroll{padding:8px 8px 24px}.src-toolbar{flex-direction:column;align-items:stretch}.src-or{display:none}.src-upload-btn{width:100%}.src-textarea{min-height:200px;overflow:auto;white-space:pre;-webkit-overflow-scrolling:touch}.ctl-label{width:88px}}.consent-banner{position:fixed;z-index:1100;left:16px;right:16px;bottom:16px;margin:0 auto;max-width:720px;display:flex;align-items:center;gap:16px;padding:14px 18px;background:var(--chrome-panel);border:1px solid var(--chrome-border);border-radius:12px;box-shadow:0 12px 40px #16181d2e}.consent-banner-text{flex:1;margin:0;font-size:13px;line-height:1.5;color:var(--chrome-muted)}.consent-banner-text a{color:var(--chrome-ink);text-decoration:underline;text-underline-offset:2px}.consent-banner-text a:hover{color:#4f46e5}.consent-banner-actions{flex:none;display:flex;gap:8px}@media (max-width: 600px){.consent-banner{flex-direction:column;align-items:stretch;gap:12px}.consent-banner-actions{justify-content:flex-end}}.mobile-notice-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px 20px;background:#16181d73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mobile-notice{width:min(100%,360px);padding:28px 24px 24px;background:var(--chrome-panel);border:1px solid var(--chrome-border);border-radius:14px;box-shadow:0 16px 48px #16181d2e;text-align:center}.mobile-notice-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;margin-bottom:16px;border-radius:12px;background:var(--chrome-bg);color:var(--chrome-muted)}.mobile-notice-title{margin:0 0 10px;font-size:18px;font-weight:700;letter-spacing:-.02em;color:var(--chrome-ink)}.mobile-notice-body{margin:0 0 22px;font-size:14px;line-height:1.55;color:var(--chrome-muted);text-align:left}.mobile-notice-body strong{color:var(--chrome-ink);font-weight:600}.mobile-notice-actions{display:flex;flex-direction:column;gap:10px}.mobile-notice-continue{width:100%;padding:10px 16px;font-size:14px}.mobile-notice-dismiss-link{border:none;background:none;padding:4px;font-family:var(--chrome-sans);font-size:13px;color:var(--chrome-muted);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.mobile-notice-dismiss-link:hover{color:var(--chrome-ink)}@media (max-width: 480px){.app-btn-reset{display:none}.app-canvas-toolbar .app-toggle{font-size:11px}.app-seg-btn{padding:6px 8px;font-size:11px}}
