.marketing-footer{padding:56px 40px 32px;border-top:1px solid #e5e7eb}:root[data-theme=dark] .marketing-footer{border-top-color:var(--border-color)}.marketing-footer-columns{display:flex;gap:64px;max-width:1100px;margin:0 auto 32px}.marketing-footer-col{display:flex;flex-direction:column;gap:8px}.marketing-footer-heading{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-tertiary, #9ca3af);margin:0 0 4px}.marketing-footer-link{color:var(--text-secondary, #6b7280);text-decoration:none;font-size:14px;transition:color .15s}.marketing-footer-link:hover{color:var(--text-primary, #111827)}.marketing-footer-copy{text-align:center;font-size:13px;color:var(--text-tertiary, #9ca3af);margin:0;padding-top:24px;border-top:1px solid #f0f1f3}:root[data-theme=dark] .marketing-footer-copy{border-top-color:var(--border-color)}.content-page{max-width:720px;margin:0 auto;padding:120px 40px 80px}.content-page-title{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:36px;font-weight:700;letter-spacing:-.5px;margin:0 0 8px;color:var(--text-primary, #111827)}.content-page-meta{font-size:13px;color:var(--text-tertiary, #9ca3af);margin:0 0 40px}.content-section{margin-bottom:32px}.content-section-heading{font-size:20px;font-weight:600;margin:0 0 12px;color:var(--text-primary, #111827)}.content-section-body{font-size:15px;line-height:1.75;color:var(--text-secondary, #6b7280);margin:0 0 12px}.content-section-list{margin:8px 0 0;padding-left:24px;color:var(--text-secondary, #6b7280);font-size:15px;line-height:1.75}.content-section-list li{margin-bottom:4px}.content-callout{padding:16px 20px;border-radius:8px;font-size:14px;line-height:1.6;margin:16px 0}.content-callout-info{background-color:#eff6ff;border-left:3px solid var(--accent, #1d4ed8);color:#1e40af}:root[data-theme=dark] .content-callout-info{background-color:#60a5fa1a;color:#93c5fd}.content-callout-warning{background-color:#fffbeb;border-left:3px solid #f59e0b;color:#92400e}:root[data-theme=dark] .content-callout-warning{background-color:#f59e0b1a;color:#fcd34d}.pricing-page{max-width:900px;margin:0 auto;padding:120px 40px 80px;text-align:center}.pricing-title{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:40px;font-weight:700;letter-spacing:-.5px;margin:0 0 12px;color:var(--text-primary, #111827)}.pricing-subtitle{font-size:16px;color:var(--text-secondary, #6b7280);margin:0 0 48px}.pricing-toggle{display:inline-flex;align-items:center;gap:12px;margin-bottom:40px;font-size:14px;color:var(--text-secondary, #6b7280)}.pricing-toggle-btn{width:44px;height:24px;border-radius:12px;border:none;background-color:#d1d5db;position:relative;cursor:pointer;transition:background-color .15s}.pricing-toggle-btn.active{background-color:var(--accent, #1d4ed8)}.pricing-toggle-btn:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}.pricing-toggle-btn.active:after{transform:translate(20px)}.pricing-save-badge{font-size:12px;font-weight:600;color:#059669;background-color:#ecfdf5;padding:2px 8px;border-radius:10px}:root[data-theme=dark] .pricing-save-badge{background-color:#05966926;color:#34d399}.pricing-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;text-align:left;margin-bottom:64px}.pricing-card{padding:32px;border:1.5px solid #e5e7eb;border-radius:12px;background:#fff;position:relative}:root[data-theme=dark] .pricing-card{background:var(--bg-primary);border-color:var(--border-color)}.pricing-card.featured{border-color:var(--accent, #1d4ed8);box-shadow:0 4px 24px #1d4ed81a}.pricing-card-badge{position:absolute;top:-12px;left:24px;background:var(--accent, #1d4ed8);color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:3px 12px;border-radius:10px}.pricing-plan-name{font-size:18px;font-weight:600;margin:0 0 4px;color:var(--text-primary, #111827)}.pricing-plan-desc{font-size:13px;color:var(--text-tertiary, #9ca3af);margin:0 0 20px}.pricing-price{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:40px;font-weight:700;color:var(--text-primary, #111827);margin:0}.pricing-price-period{font-size:15px;font-weight:400;color:var(--text-tertiary, #9ca3af)}.pricing-annual-note{font-size:13px;color:var(--text-tertiary, #9ca3af);margin:4px 0 24px}.pricing-features{list-style:none;padding:0;margin:0 0 28px}.pricing-features li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-secondary, #6b7280);padding:6px 0}.pricing-features li svg{width:16px;height:16px;color:#059669;flex-shrink:0}.pricing-btn{display:block;width:100%;padding:11px 16px;font-size:14px;font-weight:600;font-family:inherit;border-radius:8px;border:none;cursor:pointer;text-align:center;text-decoration:none;transition:background-color .15s,transform .1s}.pricing-btn-primary{background-color:var(--accent, #1d4ed8);color:#fff}.pricing-btn-primary:hover{background-color:#1e40af;transform:translateY(-1px)}.pricing-btn-secondary{background-color:#f3f4f6;color:var(--text-primary, #111827);border:1.5px solid #e5e7eb}:root[data-theme=dark] .pricing-btn-secondary{background-color:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.pricing-btn-secondary:hover{background-color:#e5e7eb}.pricing-faq{max-width:640px;margin:0 auto;text-align:left}.pricing-faq-title{font-size:24px;font-weight:700;text-align:center;margin:0 0 32px;color:var(--text-primary, #111827)}.pricing-faq-item{border-bottom:1px solid #e5e7eb}:root[data-theme=dark] .pricing-faq-item{border-bottom-color:var(--border-color)}.pricing-faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 0;background:none;border:none;font-size:15px;font-weight:600;color:var(--text-primary, #111827);cursor:pointer;font-family:inherit;text-align:left}.pricing-faq-q:hover{color:var(--accent, #1d4ed8)}.pricing-faq-a{font-size:14px;line-height:1.65;color:var(--text-secondary, #6b7280);padding:0 0 16px;margin:0}.pricing-bottom-note{text-align:center;font-size:13px;color:var(--text-secondary, #6b7280);margin-top:48px}.pricing-bottom-note a{color:var(--accent, #1d4ed8);text-decoration:none}.pricing-bottom-note a:hover{text-decoration:underline}.blog-index{max-width:900px;margin:0 auto;padding:120px 40px 80px}.blog-index-title{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:36px;font-weight:700;margin:0 0 8px;color:var(--text-primary, #111827)}.blog-index-sub{font-size:16px;color:var(--text-secondary, #6b7280);margin:0 0 48px}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.blog-card{border:1px solid #e5e7eb;border-radius:12px;padding:28px 24px;background:#fff;transition:box-shadow .25s,transform .25s;text-decoration:none;display:block}:root[data-theme=dark] .blog-card{background:var(--bg-primary);border-color:var(--border-color)}.blog-card:hover{box-shadow:0 8px 24px #0000000f;transform:translateY(-2px)}.blog-card-date{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:12px;color:var(--text-tertiary, #9ca3af);margin:0 0 8px}.blog-card-title{font-size:17px;font-weight:600;color:var(--text-primary, #111827);margin:0 0 8px;line-height:1.3}.blog-card-excerpt{font-size:14px;line-height:1.6;color:var(--text-secondary, #6b7280);margin:0 0 12px}.blog-card-tags{display:flex;gap:6px;flex-wrap:wrap}.blog-tag{font-size:11px;font-weight:500;padding:2px 8px;border-radius:10px;background-color:#f3f4f6;color:var(--text-secondary, #6b7280)}:root[data-theme=dark] .blog-tag{background-color:var(--bg-secondary)}.blog-post{max-width:720px;margin:0 auto;padding:120px 40px 80px}.blog-post-back{font-size:14px;color:var(--accent, #1d4ed8);text-decoration:none;display:inline-flex;align-items:center;gap:4px;margin-bottom:24px}.blog-post-back:hover{text-decoration:underline}.blog-post-title{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:36px;font-weight:700;letter-spacing:-.5px;margin:0 0 12px;color:var(--text-primary, #111827)}.blog-post-meta{font-size:13px;color:var(--text-tertiary, #9ca3af);margin:0 0 40px;display:flex;gap:16px}.help-page{max-width:720px;margin:0 auto;padding:120px 40px 80px}.help-title{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:36px;font-weight:700;margin:0 0 8px;color:var(--text-primary, #111827)}.help-subtitle{font-size:16px;color:var(--text-secondary, #6b7280);margin:0 0 48px}.help-category{margin-bottom:32px}.help-category-title{font-size:18px;font-weight:600;margin:0 0 16px;color:var(--text-primary, #111827)}.help-item{border-bottom:1px solid #e5e7eb}:root[data-theme=dark] .help-item{border-bottom-color:var(--border-color)}.help-item-q{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 0;background:none;border:none;font-size:15px;font-weight:500;color:var(--text-primary, #111827);cursor:pointer;font-family:inherit;text-align:left}.help-item-q:hover{color:var(--accent, #1d4ed8)}.help-item-a{font-size:14px;line-height:1.65;color:var(--text-secondary, #6b7280);padding:0 0 14px;margin:0}.seo-page{padding:120px 40px 0}.seo-hero{max-width:700px;margin:0 auto 64px;text-align:center}.seo-hero h1{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:42px;font-weight:700;letter-spacing:-.5px;margin:0 0 16px;color:var(--text-primary, #111827)}.seo-hero p{font-size:17px;line-height:1.7;color:var(--text-secondary, #6b7280);margin:0 0 32px}.seo-benefits{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;max-width:900px;margin:0 auto 64px}.seo-benefit{padding:28px 24px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}:root[data-theme=dark] .seo-benefit{background:var(--bg-primary);border-color:var(--border-color)}.seo-benefit-icon{width:28px;height:28px;color:var(--accent, #1d4ed8);margin-bottom:12px}.seo-benefit h3{font-size:16px;font-weight:600;margin:0 0 8px;color:var(--text-primary, #111827)}.seo-benefit p{font-size:14px;line-height:1.65;color:var(--text-secondary, #6b7280);margin:0}.not-found-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;font-family:var(--font-ui, "IBM Plex Sans", sans-serif);background-color:#fff;color:var(--text-primary, #111827)}:root[data-theme=dark] .not-found-page{background-color:var(--bg-primary)}.not-found-code{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:80px;font-weight:700;color:var(--accent, #1d4ed8);margin:0 0 8px;line-height:1}.not-found-title{font-size:24px;font-weight:600;margin:0 0 8px}.not-found-sub{font-size:15px;color:var(--text-secondary, #6b7280);margin:0 0 32px}.not-found-links{display:flex;gap:16px}.not-found-link{padding:10px 24px;font-size:14px;font-weight:600;border-radius:8px;text-decoration:none;transition:background-color .15s,transform .1s}.not-found-link-primary{background-color:var(--accent, #1d4ed8);color:#fff}.not-found-link-primary:hover{background-color:#1e40af;transform:translateY(-1px)}.not-found-link-secondary{background-color:#f3f4f6;color:var(--text-primary, #111827)}:root[data-theme=dark] .not-found-link-secondary{background-color:var(--bg-secondary);color:var(--text-primary)}.not-found-link-secondary:hover{background-color:#e5e7eb}@media(max-width:900px){.pricing-cards{grid-template-columns:1fr;max-width:400px;margin-left:auto;margin-right:auto;margin-bottom:64px}}@media(max-width:600px){.marketing-footer-columns{flex-direction:column;gap:32px}.marketing-footer{padding:40px 20px 24px}.content-page,.blog-index,.blog-post,.help-page,.pricing-page,.seo-page{padding-left:20px;padding-right:20px}}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 40px;background:#ffffffd9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(0,0,0,.06)}:root[data-theme=dark] .landing-nav{background:#0f1117d9;border-bottom-color:#ffffff0f}.landing-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text-primary, #111827)}.landing-logo-icon{width:24px;height:24px;color:var(--accent, #1d4ed8)}.landing-logo-text{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:18px;font-weight:700;letter-spacing:-.3px}.landing-nav-links{display:flex;align-items:center;gap:4px}.landing-nav-link{padding:6px 14px;background:none;border:none;border-radius:6px;font-size:14px;font-weight:500;color:var(--text-secondary, #6b7280);cursor:pointer;text-decoration:none;transition:color .15s,background-color .15s}.landing-nav-link:hover{color:var(--text-primary, #111827);background-color:#0000000a}.landing-page{min-height:100vh;background-color:#fff;color:var(--text-primary, #111827);font-family:var(--font-ui, "IBM Plex Sans", sans-serif)}:root[data-theme=dark] .landing-page{background-color:var(--bg-primary)}.landing-hero{display:flex;min-height:100vh}.landing-hero-left{flex:1;display:flex;flex-direction:column;justify-content:center;padding:120px 64px 80px;background-color:#0f1b3d;color:#fff;position:relative;overflow:hidden}.landing-hero-left:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}.landing-hero-left:after{content:"";position:absolute;top:-20%;right:-10%;width:60%;height:60%;background:radial-gradient(ellipse,rgba(29,78,216,.15) 0%,transparent 70%);pointer-events:none}.landing-hero-title{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:56px;font-weight:700;line-height:1.05;letter-spacing:-1.5px;margin:0 0 20px;color:#fff;position:relative;z-index:1}.landing-hero-title .accent{color:#60a5fa}.landing-hero-sub{font-size:17px;line-height:1.7;color:#ffffffa6;margin:0 0 40px;max-width:420px;position:relative;z-index:1}.landing-features-list{display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}.landing-feature-item{display:flex;align-items:center;gap:14px;font-size:15px;color:#ffffffbf}.landing-feature-icon{width:18px;height:18px;color:#60a5fa;flex-shrink:0}.blueprint-illustration{position:absolute;bottom:48px;right:48px;width:260px;height:200px;opacity:.35;z-index:0}.blueprint-illustration path,.blueprint-illustration line,.blueprint-illustration rect{stroke:#60a5fa;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.blueprint-draw{stroke-dasharray:800;stroke-dashoffset:800;animation:drawLine 3s ease-in-out .8s forwards}.blueprint-draw-delayed{stroke-dasharray:400;stroke-dashoffset:400;animation:drawLineShort 2s ease-in-out 2s forwards}@keyframes drawLine{to{stroke-dashoffset:0}}@keyframes drawLineShort{to{stroke-dashoffset:0}}.blueprint-label{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:9px;fill:#60a5fa;opacity:0;animation:fadeIn .4s ease-out 3.2s forwards}@keyframes fadeIn{to{opacity:.7}}.landing-hero-right{width:480px;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:120px 48px 80px;background-color:#fff}:root[data-theme=dark] .landing-hero-right{background-color:var(--bg-primary)}.landing-auth-card{width:100%;max-width:380px}.landing-auth-title{font-size:24px;font-weight:700;margin:0 0 8px;color:var(--text-primary, #111827)}.landing-auth-subtitle{font-size:14px;color:var(--text-tertiary, #9ca3af);margin:0 0 28px}.landing-auth-form{display:flex;flex-direction:column;gap:12px}.landing-input-group{position:relative;display:flex;align-items:center}.landing-input{width:100%;padding:11px 14px;font-size:14px;font-family:inherit;border:1.5px solid #e5e7eb;border-radius:8px;background-color:#fff;color:var(--text-primary, #111827);outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}:root[data-theme=dark] .landing-input{background-color:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.landing-input:focus{border-color:var(--accent, #1d4ed8);box-shadow:0 0 0 3px #1d4ed81a}.landing-password-toggle{position:absolute;right:10px;background:none;border:none;padding:4px;cursor:pointer;color:var(--text-tertiary, #9ca3af);display:flex;align-items:center}.landing-password-toggle:hover{color:var(--text-secondary, #6b7280)}.landing-btn-primary{width:100%;padding:11px 16px;font-size:14px;font-weight:600;font-family:inherit;background-color:var(--accent, #1d4ed8);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .15s,transform .1s,box-shadow .15s;margin-top:4px}.landing-btn-primary:hover{background-color:#1e40af;box-shadow:0 4px 12px #1d4ed84d;transform:translateY(-1px)}.landing-btn-primary:active{transform:translateY(0);box-shadow:none}.landing-toggle-link{background:none;border:none;padding:8px 0;font-size:13px;color:var(--accent, #1d4ed8);cursor:pointer;text-align:center;font-family:inherit}.landing-toggle-link:hover{text-decoration:underline}.landing-legal-note{font-size:11px;color:var(--text-secondary, #6b7280);text-align:center;margin:12px 0 0;line-height:1.5}.landing-legal-note a{color:var(--accent, #1d4ed8);text-decoration:none}.landing-legal-note a:hover{text-decoration:underline}.landing-divider{display:flex;align-items:center;gap:12px;margin:4px 0}.landing-divider:before,.landing-divider:after{content:"";flex:1;height:1px;background-color:#e5e7eb}:root[data-theme=dark] .landing-divider:before,:root[data-theme=dark] .landing-divider:after{background-color:var(--border-color)}.landing-divider-text{font-size:11px;font-weight:600;color:var(--text-tertiary, #9ca3af);text-transform:uppercase;letter-spacing:.8px}.landing-btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:10px 16px;font-size:14px;font-weight:500;font-family:inherit;background-color:#fff;color:var(--text-primary, #111827);border:1.5px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:border-color .15s,background-color .15s}:root[data-theme=dark] .landing-btn-google{background-color:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.landing-btn-google:hover{border-color:#d1d5db;background-color:#f9fafb}.landing-btn-google svg{width:18px;height:18px}.landing-verified-banner{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:13px;font-weight:500;color:#166534;margin-bottom:20px}:root[data-theme=dark] .landing-verified-banner{background:#16653426;border-color:#4ade804d;color:#4ade80}.landing-auth-error-banner{padding:10px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font-size:13px;color:#dc2626;margin-bottom:20px}:root[data-theme=dark] .landing-auth-error-banner{background:#dc26261a;border-color:#dc26264d;color:#f87171}.landing-login-error{margin:0;padding:9px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:7px;font-size:13px;color:#dc2626}:root[data-theme=dark] .landing-login-error{background:#dc26261a;border-color:#dc26264d;color:#f87171}.landing-forgot-link{margin:-6px 0 0;text-align:right;font-size:13px}.landing-forgot-link a{color:var(--text-secondary, #6b7280);text-decoration:none}.landing-forgot-link a:hover{color:#1d4ed8;text-decoration:underline}.landing-section{padding:96px 40px;max-width:1100px;margin:0 auto}.landing-section-label{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:2px;color:var(--accent, #1d4ed8);text-align:center;margin:0 0 12px}.landing-section-title{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:36px;font-weight:700;text-align:center;margin:0 0 12px;letter-spacing:-.5px;color:var(--text-primary, #111827)}.landing-section-sub{font-size:16px;color:var(--text-secondary, #6b7280);text-align:center;margin:0 0 56px;line-height:1.6}.landing-cards-bg{background-color:#f8f9fa;border-top:1px solid #f0f1f3;border-bottom:1px solid #f0f1f3}:root[data-theme=dark] .landing-cards-bg{background-color:var(--bg-secondary);border-color:var(--border-color)}.landing-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.landing-card{padding:32px 28px;background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;transition:box-shadow .25s,transform .25s;position:relative}:root[data-theme=dark] .landing-card{background-color:var(--bg-primary);border-color:var(--border-color)}.landing-card:hover{box-shadow:0 8px 24px #0000000f;transform:translateY(-3px)}.landing-card-number{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:500;color:var(--accent, #1d4ed8);background-color:#1d4ed814;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.landing-card-icon{width:28px;height:28px;color:var(--accent, #1d4ed8);margin-bottom:16px}.landing-card h3{font-size:17px;font-weight:600;margin:0 0 8px;color:var(--text-primary, #111827)}.landing-card p{font-size:14px;line-height:1.65;margin:0;color:var(--text-secondary, #6b7280)}.landing-steps{display:flex;align-items:flex-start;gap:0;justify-content:center}.landing-step{display:flex;flex-direction:column;align-items:center;text-align:center;width:220px}.landing-step-num{width:52px;height:52px;border-radius:50%;background-color:#0f1b3d;color:#60a5fa;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:18px;font-weight:600;display:flex;align-items:center;justify-content:center;margin-bottom:16px;border:2px solid rgba(96,165,250,.3)}:root[data-theme=dark] .landing-step-num{background-color:var(--accent-light);color:var(--accent);border-color:transparent}.landing-step h4{font-size:15px;font-weight:600;margin:0 0 6px;color:var(--text-primary, #111827)}.landing-step p{font-size:13px;line-height:1.6;margin:0;color:var(--text-secondary, #6b7280)}.landing-step-connector{width:64px;height:2px;background:linear-gradient(90deg,#0f1b3d,#0f1b3d33);margin-top:26px;flex-shrink:0}:root[data-theme=dark] .landing-step-connector{background:linear-gradient(90deg,var(--border-color),transparent)}.landing-cta-banner{background-color:#0f1b3d;padding:80px 40px;text-align:center;position:relative;overflow:hidden}.landing-cta-banner:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}:root[data-theme=dark] .landing-cta-banner{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.landing-cta-title{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:32px;font-weight:700;color:#fff;margin:0 0 12px;position:relative;letter-spacing:-.5px}:root[data-theme=dark] .landing-cta-title{color:var(--text-primary)}.landing-cta-sub{font-size:16px;color:#fff9;margin:0 0 32px;position:relative}:root[data-theme=dark] .landing-cta-sub{color:var(--text-secondary)}.landing-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:13px 32px;font-size:15px;font-weight:600;font-family:inherit;background-color:#fff;color:#0f1b3d;border:none;border-radius:8px;cursor:pointer;transition:transform .12s,box-shadow .2s;text-decoration:none;position:relative}:root[data-theme=dark] .landing-cta-btn{background-color:var(--accent);color:#fff}.landing-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.landing-footer{padding:40px;text-align:center;font-size:13px;color:var(--text-tertiary, #9ca3af);border-top:1px solid #e5e7eb}:root[data-theme=dark] .landing-footer{border-top-color:var(--border-color)}.landing-footer-links{display:flex;justify-content:center;gap:24px;margin-bottom:12px}.landing-footer-link{color:var(--text-secondary, #6b7280);text-decoration:none;font-size:13px;transition:color .15s}.landing-footer-link:hover{color:var(--text-primary, #111827)}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.hero-anim-1{animation:fadeUp .7s cubic-bezier(0,0,.2,1) .2s both}.hero-anim-2{animation:fadeUp .7s cubic-bezier(0,0,.2,1) .35s both}.hero-anim-3{animation:fadeUp .7s cubic-bezier(0,0,.2,1) .5s both}.hero-anim-4{animation:fadeUp .7s cubic-bezier(0,0,.2,1) .3s both}.reveal{opacity:0;transform:translateY(32px);transition:opacity .6s,transform .6s cubic-bezier(0,0,.2,1)}.reveal.visible{opacity:1;transform:none}@media(max-width:900px){.landing-hero{flex-direction:column}.landing-hero-left{padding:100px 32px 64px;text-align:center}.landing-hero-title{font-size:38px}.landing-hero-sub{margin-left:auto;margin-right:auto}.landing-features-list{align-items:center}.blueprint-illustration{display:none}.landing-hero-right{width:100%;padding:48px 32px}.landing-cards{grid-template-columns:1fr}.landing-steps{flex-direction:column;align-items:center;gap:24px}.landing-step-connector{width:2px;height:32px;margin-top:0;background:linear-gradient(180deg,#0f1b3d,#0f1b3d33)}}@media(max-width:600px){.landing-nav{padding:0 16px}.landing-nav-links{display:none}.landing-hero-left{padding:88px 20px 48px}.landing-hero-title{font-size:30px}.landing-hero-right{padding:40px 20px}.landing-section,.landing-cta-banner{padding:56px 20px}}:root[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #f0f1f3;--bg-hover: #f1f3f5;--bg-active: #eff6ff;--text-primary: #111827;--text-secondary: #6b7280;--text-tertiary: #9ca3af;--border-color: #e5e7eb;--border-hover: #d1d5db;--key-face-top: #ffffff;--key-face-bottom: #eceef1;--key-edge: #c9ced6;--key-skirt: #b6bcc6;--accent: #1d4ed8;--accent-hover: #1e40af;--accent-light: #eff6ff;--success: #16a34a;--warning: #d97706;--error: #dc2626;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .1);--canvas-bg: #fafafa;--canvas-grid: rgba(0, 0, 0, .05);--brand-dark: #1e293b;--brand-mid: #334155;--font-ui: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "JetBrains Mono", "Monaco", monospace;--font-display: "IBM Plex Sans Condensed", "IBM Plex Sans", sans-serif;--dur-fast: .12s;--dur-base: .2s;--dur-slow: .35s;--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}:root[data-theme=dark]{--bg-primary: #0f1117;--bg-secondary: #1a1d23;--bg-tertiary: #252830;--bg-hover: #2d3139;--bg-active: #1e3a5f;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-tertiary: #64748b;--border-color: #2d3139;--border-hover: #3d4150;--key-face-top: #3a3f4b;--key-face-bottom: #272b34;--key-edge: #1a1d23;--key-skirt: #12151b;--accent: #60a5fa;--accent-hover: #93c5fd;--accent-light: #1e3a5f;--success: #4ade80;--warning: #fbbf24;--error: #f87171;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .4);--canvas-bg: #141720;--canvas-grid: rgba(255, 255, 255, .05);--brand-dark: #e2e8f0;--brand-mid: #cbd5e1;--font-ui: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "JetBrains Mono", "Monaco", monospace;--font-display: "IBM Plex Sans Condensed", "IBM Plex Sans", sans-serif;--dur-fast: .12s;--dur-base: .2s;--dur-slow: .35s;--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}.workbench-container{display:flex;flex-direction:column;height:100vh;background-color:var(--bg-primary);color:var(--text-primary);overflow:hidden}.workbench-topbar{display:flex;justify-content:space-between;align-items:center;height:56px;padding:0 16px;background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm);z-index:100}.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px}.topbar-breadcrumb{display:flex;align-items:center;gap:2px}.breadcrumb-segment{position:relative}.breadcrumb-separator{color:var(--text-tertiary);font-size:15px;padding:0 2px;-webkit-user-select:none;user-select:none}.breadcrumb-item{display:flex;align-items:center;gap:4px;padding:5px 8px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s,border-color .15s;max-width:220px}.breadcrumb-item:hover{background-color:var(--bg-hover);border-color:var(--border-color);box-shadow:none;transform:none}.breadcrumb-item.open{background-color:var(--bg-hover);border-color:var(--border-hover)}.topbar-project-menu{position:relative}.topbar-project-menu-button{padding:6px;border:1px solid transparent;border-radius:6px}.topbar-project-menu-popover{position:absolute;top:calc(100% + 6px);left:0;width:260px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);padding:6px;z-index:220}.topbar-project-menu-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;border-radius:6px;background:transparent;color:var(--text-primary);cursor:pointer;font-size:14px;text-align:left}.topbar-project-menu-item:hover:not(:disabled){background:var(--bg-hover)}.topbar-project-menu-item:disabled{opacity:.6;cursor:not-allowed}.topbar-project-menu-note{margin:8px 8px 4px;color:var(--text-secondary);font-size:12px;line-height:1.45}.breadcrumb-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-chevron{flex-shrink:0;color:var(--text-tertiary);transition:transform .15s}.breadcrumb-item.open .breadcrumb-chevron{transform:rotate(180deg)}.breadcrumb-popover{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;max-width:300px;max-height:280px;overflow-y:auto;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);z-index:200;padding:4px}.breadcrumb-option{display:block;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:5px;color:var(--text-primary);font-size:13px;font-weight:400;cursor:pointer;text-align:left;transition:background-color .1s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-option:hover{background-color:var(--bg-hover);box-shadow:none;transform:none}.breadcrumb-option.active{font-weight:600;color:var(--accent);background-color:var(--accent-light)}.breadcrumb-option.active:hover{background-color:var(--accent-light)}.add-floorplan-button{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:var(--accent);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.add-floorplan-button:hover:not(:disabled){background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.add-floorplan-button:active:not(:disabled){transform:translateY(0)}.add-floorplan-button:disabled{opacity:.6;cursor:not-allowed}.save-button{display:flex;align-items:center;gap:6px;padding:8px 14px;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;margin-left:8px}.save-button:hover:not(:disabled){background-color:var(--bg-tertiary);border-color:var(--accent)}.save-button:active:not(:disabled){transform:translateY(0)}.save-button:disabled{cursor:default}.save-button.save-clean{color:var(--text-tertiary);background-color:transparent;border-color:transparent}.save-button.save-clean:hover:not(:disabled){background-color:transparent;border-color:transparent}.save-button.save-error{background-color:#ef44441a;border-color:var(--error);color:var(--error)}.save-button.save-error:hover{background-color:#ef444433}.save-button.save-success{color:var(--text-secondary, #6b7280);background-color:transparent;border-color:var(--border, #e5e7eb);opacity:.7}.save-button.save-success:hover{opacity:1}.share-button-wrapper{position:relative;margin-left:4px}.topbar-share-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.topbar-share-btn:hover{background-color:var(--bg-tertiary);border-color:var(--accent)}.topbar-share-btn.shared{color:var(--accent)}.share-popover{position:absolute;top:calc(100% + 6px);right:0;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:12px;min-width:320px;z-index:1000}[data-theme=dark] .share-popover{box-shadow:0 4px 16px #0006}.share-popover-loading{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px;padding:4px 0}.share-popover-label{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:6px}.share-popover-desc{font-size:12px;color:var(--text-secondary);margin:0 0 10px}.share-popover-url{display:flex;gap:6px;margin-bottom:8px}.share-popover-url input{flex:1;padding:6px 8px;font-size:12px;font-family:IBM Plex Mono,monospace;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);min-width:0}.share-copy-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:600;font-family:inherit;border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap}.share-copy-btn:hover{opacity:.9}.share-create-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;font-family:inherit;border:none;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer;width:100%;justify-content:center}.share-create-btn:hover{opacity:.9}.share-revoke-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 0;font-size:12px;font-family:inherit;background:none;border:none;color:var(--text-tertiary);cursor:pointer}.share-revoke-btn:hover{color:var(--error)}.share-popover-option{display:flex;align-items:flex-start;gap:7px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color);font-size:12px;color:var(--text-secondary);cursor:pointer}.share-popover-option em{display:block;font-style:normal;color:var(--text-tertiary)}.auto-save-indicator{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;white-space:nowrap;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.auto-save-saving{background-color:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.auto-save-error{background-color:#fee2e2;color:#dc2626;border:1px solid #fca5a5}:root[data-theme=dark] .auto-save-error{background-color:#dc262626;color:#f87171;border-color:#f871714d}.auto-save-dismiss{display:flex;align-items:center;justify-content:center;margin-left:4px;padding:0;width:18px;height:18px;background:transparent;border:none;border-radius:50%;color:inherit;font-size:16px;font-weight:700;line-height:1;cursor:pointer;opacity:.7;transition:opacity .15s}.auto-save-dismiss:hover{opacity:1;background-color:#0000001a}:root[data-theme=dark] .auto-save-dismiss:hover{background-color:#ffffff1a}.icon-spin{animation:spin 1s linear infinite}.icon-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s;color:var(--text-secondary)}.icon-button:hover{background-color:var(--bg-hover);border-color:var(--border-hover);color:var(--text-primary)}.user-menu{position:relative}.user-avatar{width:36px;height:36px;border-radius:50%;cursor:pointer;border:2px solid var(--border-color);transition:border-color .2s}.user-avatar:hover{border-color:var(--accent)}.user-menu:hover .user-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s;z-index:1000}.user-info{padding:12px 16px}.user-name{font-weight:600;color:var(--text-primary);margin-bottom:4px}.user-email{font-size:13px;color:var(--text-tertiary)}.dropdown-divider{height:1px;background-color:var(--border-color);margin:4px 0}.dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:transparent;border:none;color:var(--text-primary);font-size:14px;cursor:pointer;transition:background-color .2s;text-align:left}.dropdown-item:hover{background-color:var(--bg-hover)}.dropdown-item:first-of-type{border-radius:8px 8px 0 0}.dropdown-item:last-of-type{border-radius:0 0 8px 8px}.workbench-main{display:flex;flex:1;overflow:hidden;position:relative}.workbench-canvas-area{flex:1;display:flex;flex-direction:column;background-color:var(--canvas-bg);background-image:radial-gradient(circle,var(--canvas-grid) 1px,transparent 1px);background-size:24px 24px;position:relative}.workbench-readonly-banner{position:absolute;top:40px;left:50%;transform:translate(-50%);z-index:40;border:1px solid rgba(185,28,28,.65);border-radius:999px;padding:8px 18px;background:#dc262694;color:#fff;font-size:12px;font-weight:800;letter-spacing:.18em;backdrop-filter:blur(10px) saturate(130%);-webkit-backdrop-filter:blur(10px) saturate(130%);box-shadow:0 10px 30px #7f1d1d47;cursor:pointer}.workbench-readonly-banner:hover{background:#dc2626b8}.workbench-left-sidebar{width:240px;min-width:240px;max-width:240px;flex-shrink:0;background-color:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow-y:auto}.workbench-left-sidebar.read-only,.workbench-right-sidebar.read-only{background:#f3f4f6b8;backdrop-filter:blur(12px) saturate(125%);-webkit-backdrop-filter:blur(12px) saturate(125%)}[data-theme=dark] .workbench-left-sidebar.read-only,[data-theme=dark] .workbench-right-sidebar.read-only{background:#1f2937ad}.sidebar-section{padding:8px 12px}.section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);margin-bottom:4px;padding:0 8px}.tool-list{display:flex;flex-direction:column;gap:4px}.tool-button{display:flex;align-items:center;gap:10px;padding:10px 12px;background-color:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .2s;font-size:14px;position:relative}.tool-button:hover{background-color:var(--bg-hover);color:var(--text-primary)}.tool-button.active{background-color:var(--accent-light);color:var(--accent);border-left:2px solid var(--accent);padding-left:10px}.tool-button.view-toggle.active{background-color:var(--accent-light);color:var(--accent);outline:none}.tool-label{flex:1;text-align:left;font-weight:500}.tool-hotkey{font-size:11px;padding:2px 6px;background-color:var(--bg-tertiary);border-radius:3px;color:var(--text-tertiary);font-family:IBM Plex Mono,Monaco,monospace}.delete-button{color:#ef4444}.delete-button:hover{background-color:#ef44441a;color:#dc2626}.delete-button .tool-hotkey{background-color:#ef444426;color:#ef4444}.group-button{color:var(--accent, #6366f1)}.group-button:hover{background-color:#6366f11a}.group-button .tool-hotkey{background-color:#6366f126;color:var(--accent, #6366f1)}.ungroup-button{color:var(--text-secondary)}.ungroup-button:hover{background-color:var(--bg-hover)}.merge-button{color:var(--accent, #6366f1)}.merge-button:hover{background-color:#6366f11a}.merge-button .tool-hotkey{background-color:#6366f126;color:var(--accent, #6366f1)}.tool-button.loading{animation:estimating-pulse 1s ease-in-out infinite}@keyframes estimating-pulse{0%,to{background-color:transparent}50%{background-color:#f9731633}}.loading-dots:after{content:"";animation:loading-dots 1.5s steps(3,end) infinite}@keyframes loading-dots{0%{content:" "}33%{content:" ."}66%{content:" .."}to{content:" ..."}}.sidebar-divider{height:1px;background-color:var(--border-color);margin:8px 12px}.sidebar-spacer{flex:1}.calibration-button{display:flex;align-items:center;gap:10px;padding:12px;background-color:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .2s;font-size:13px;font-weight:500;width:100%;text-align:left}.calibration-button:hover{background-color:var(--bg-hover);border-color:var(--accent);color:var(--text-primary)}.calibration-label{flex:1;font-size:12px;line-height:1.3}.canvas-container{flex:1;position:relative;overflow:hidden}.canvas-utility-controls{position:absolute;bottom:16px;left:40px;display:flex;align-items:center;gap:8px;z-index:10}.undo-redo-controls{display:flex;align-items:center;gap:2px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:4px;box-shadow:var(--shadow-md);z-index:10}.canvas-stage-wrapper .konvajs-content,.canvas-stage-wrapper canvas{cursor:inherit!important}.zoom-controls{display:flex;align-items:center;gap:4px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:4px;box-shadow:var(--shadow-md);z-index:10}.zoom-button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background-color:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.zoom-button:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.zoom-button:active:not(:disabled){background-color:var(--bg-active);color:var(--accent)}.zoom-button:disabled{opacity:.4;cursor:not-allowed}.zoom-level{display:flex;align-items:center;justify-content:center;min-width:40px;padding:0 8px;font-size:11px;font-weight:600;color:var(--text-primary);font-family:IBM Plex Mono,Monaco,monospace}.scale-select-compact{appearance:none;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:4px 20px 4px 8px;font-size:11px;font-weight:600;color:var(--text-primary);cursor:pointer;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23868e96' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;transition:all .2s}.scale-select-compact:hover{border-color:var(--border-hover);background-color:var(--bg-hover)}.scale-select-compact:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.calibrated-badge-small{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background-color:#22c55e;color:#fff;border-radius:50%;font-size:11px;font-weight:700}.canvas-overlay{position:absolute;bottom:16px;right:16px;display:flex;gap:8px;align-items:center}.canvas-info{display:flex;gap:12px;padding:8px 12px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;font-size:13px;color:var(--text-secondary);box-shadow:var(--shadow-md);pointer-events:none}.hint-stack{position:absolute;bottom:60px;left:40px;display:flex;flex-direction:column;align-items:stretch;max-width:calc(100% - 56px);gap:8px;pointer-events:none;z-index:10}.hint-stack:empty{display:none}.hint-stack[hidden]{display:none}.hint-item{display:inline-flex;align-items:center;overflow:hidden;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;font-size:13px;color:var(--text-secondary);box-shadow:var(--shadow-md);white-space:nowrap;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.hint-slab{display:inline-flex;flex-shrink:0;align-items:center;align-self:stretch;justify-content:center;gap:6px;padding:4px 12px;background-color:var(--bg-tertiary);border-right:1px solid var(--border-color);transition:background-color var(--dur-fast) var(--ease-out)}.hint-item.is-alone .hint-slab{border-right:none}.hint-verb{font-family:var(--font-mono);font-size:9px;font-weight:600;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary)}.hint-body{display:block;min-width:0;white-space:normal;overflow-wrap:anywhere;padding:5px 14px;line-height:1.35}.hint-body strong{color:var(--text-primary);font-weight:600}.hint-item .hint-key{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 7px;border-radius:6px;background:linear-gradient(180deg,var(--key-face-top) 0%,var(--key-face-bottom) 100%);border:1px solid var(--key-edge);box-shadow:0 2px 0 0 var(--key-skirt),0 3px 4px #00000021,inset 0 1px #ffffffbf;font-family:var(--font-mono);font-size:11px;font-weight:600;line-height:1;letter-spacing:.02em;color:var(--text-primary);text-shadow:0 1px 0 rgba(255,255,255,.6);transform:translateY(-1px);transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}:root[data-theme=dark] .hint-item .hint-key{text-shadow:none;box-shadow:0 2px 0 0 var(--key-skirt),0 3px 4px #00000080,inset 0 1px #ffffff14}.hint-item .hint-key.is-down{transform:translateY(1px);background:var(--key-face-bottom);box-shadow:inset 0 2px 4px #0000002e}.hint-item.is-active{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-color));box-shadow:var(--shadow-md),0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.hint-item.is-active .hint-slab{background-color:var(--accent-light)}.hint-item.is-active .hint-verb,.hint-item.is-active .hint-key{color:var(--accent)}.hint-item.is-active .hint-key{border-color:var(--accent)}.hint-token{font-family:var(--font-mono);font-size:11.5px;font-weight:600;line-height:1.25;letter-spacing:.08em;text-transform:uppercase;color:var(--text-primary);border-bottom:2px solid var(--border-hover);padding-bottom:1px}.hint-item.is-active .hint-token{color:var(--accent);border-bottom-color:var(--accent)}.hint-status.is-alone{background-color:var(--bg-tertiary)}.hint-status .hint-tool-icon{color:var(--text-secondary)}.hint-status .hint-tool-name{font-size:13px;font-weight:600;color:var(--text-primary)}.hint-sel-label{margin-right:7px;font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary)}.hint-sel-name{font-weight:600;color:var(--text-primary)}.hint-item.hint-warning{border-color:#f59e0b;color:#b45309}.hint-item.hint-history{pointer-events:auto}.hint-item.hint-history .hint-action{display:inline-flex;width:100%;align-items:center;padding:0;background:none;border:none;font:inherit;color:inherit;cursor:pointer}.hint-item.hint-history .hint-action:hover .hint-slab{background-color:var(--bg-hover)}.hint-item.hint-history .hint-action:hover{background-color:var(--bg-secondary)}.hint-item.hint-history .hint-action:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tool-hint-overlay{position:absolute;bottom:16px;left:50%;transform:translate(-50%);padding:8px 16px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;font-size:13px;color:var(--text-secondary);box-shadow:var(--shadow-md);pointer-events:none;white-space:nowrap;z-index:10}.tool-hint-overlay .hint-key{display:inline-block;padding:2px 6px;margin-right:6px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;font-size:11px;font-weight:600;font-family:monospace;color:var(--text-primary)}.canvas-scale-selector{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;box-shadow:var(--shadow-md)}.empty-canvas{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary)}.empty-canvas h2{margin-bottom:8px;color:var(--text-secondary)}.canvas-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);gap:12px}.canvas-loading .loading-spinner{width:32px;height:32px}.canvas-loading p{margin:0;font-size:14px}.workbench-crash-fallback{gap:16px;padding:32px;text-align:center}.workbench-crash-fallback h2{margin:0;color:var(--text-primary);font-size:24px}.workbench-crash-fallback p{max-width:480px}.workbench-crash-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.workbench-crash-button{border:1px solid var(--border-color);border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}.workbench-crash-button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.workbench-crash-button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.workbench-crash-button.secondary{background:var(--bg-primary);color:var(--text-primary)}.workbench-crash-button.secondary:hover{background:var(--bg-hover);border-color:var(--border-hover)}.canvas-loading.projects-loading .loading-spinner{width:48px;height:48px;border-width:4px}.canvas-loading.projects-loading p{font-size:16px;font-weight:500;animation:fadeInOut 2s ease-in-out infinite}@keyframes fadeInOut{0%,to{opacity:.5}50%{opacity:1}}.workbench-right-sidebar{width:210px;min-width:210px;max-width:210px;flex-shrink:0;background-color:var(--bg-secondary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;overflow-y:auto}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border-color)}.sidebar-title{font-size:14px;font-weight:600;color:var(--text-primary)}.close-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:28px;background-color:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.close-button:hover{background-color:var(--bg-hover);color:var(--text-primary)}.sidebar-empty{display:flex;align-items:center;justify-content:center;height:100%;padding:24px;text-align:center;color:var(--text-tertiary)}.properties-panel{padding:8px 10px;display:flex;flex-direction:column;gap:6px}.property-group{display:flex;flex-direction:column;gap:4px}.property-section-divider{height:1px;background:var(--border-color);margin:2px 0}.property-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.property-input{padding:6px 8px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;transition:all .2s}.property-input:hover{border-color:var(--border-hover)}.property-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.property-input:disabled{opacity:.5;cursor:not-allowed}.property-checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary);cursor:pointer}.property-checkbox-row input[type=checkbox]{cursor:pointer}.property-checkbox-row input[type=checkbox]:disabled{cursor:not-allowed}.color-section-card,.project-setting-card{display:flex;flex-direction:column;gap:6px;padding:8px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px}.project-setting-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.board-select-row{display:flex;align-items:center;gap:6px}.board-select-row .property-input{flex:1;min-width:0}.board-color-swatch{flex:0 0 auto;width:14px;height:14px;border-radius:3px;border:1px solid var(--border-color)}.board-color-swatch.is-empty{background:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--border-color) 3px,var(--border-color) 4px)}.wall-finish-catalog{border-top:1px solid var(--border-color);padding-top:6px;font-size:12px}.wall-finish-catalog summary{cursor:pointer;color:var(--text-secondary)}.wall-finish-catalog-row{display:flex;align-items:center;gap:6px;margin-top:6px}.wall-finish-catalog-row .property-input{flex:1;min-width:0}.property-hint{font-size:11px;color:var(--text-secondary);line-height:1.4}.property-label-with-info{display:flex;align-items:center;gap:5px}.property-info-icon{color:var(--text-tertiary);cursor:help;flex-shrink:0}.project-setting-copy,.project-setting-hint{margin:4px 0 0;color:var(--text-secondary);font-size:12px;line-height:1.45}.color-section-header{display:flex;align-items:center;justify-content:space-between}.color-reset-link{background:none;border:none;color:var(--text-tertiary);font-size:11px;font-weight:500;cursor:pointer;padding:0;transition:color .15s}.color-reset-link:hover{color:var(--text-primary)}.color-picker-row{display:flex;align-items:center;gap:10px}.color-swatch-wrapper{position:relative;width:36px;height:36px;border-radius:8px;overflow:hidden;border:2px solid var(--border-color);transition:border-color .15s;flex-shrink:0}.color-swatch-wrapper:hover{border-color:var(--text-secondary)}.color-swatch-input{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);padding:0;border:none;cursor:pointer;background:none}.color-swatch-input::-webkit-color-swatch-wrapper{padding:0}.color-swatch-input::-webkit-color-swatch{border:none;border-radius:0}.color-swatch-input::-moz-color-swatch{border:none;border-radius:0}.color-hex-label{font-size:13px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;color:var(--text-secondary);letter-spacing:.3px}.colors-in-use-label{display:block;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}.recent-colors-section{display:flex;flex-direction:column;padding-top:8px;border-top:1px solid var(--border-color-subtle, rgba(255,255,255,.06))}.recent-colors-grid{display:grid;grid-template-columns:repeat(auto-fill,20px);gap:5px}.recent-color-swatch-wrap{position:relative;width:20px;height:20px}.recent-color-swatch{width:20px;height:20px;border-radius:4px;border:1px solid var(--border-color);cursor:pointer;padding:0;transition:transform .1s,border-color .15s}.recent-color-swatch-wrap:hover .recent-color-swatch{transform:scale(1.15);border-color:var(--text-primary)}.recent-color-remove{display:none;position:absolute;top:-5px;right:-5px;width:12px;height:12px;border-radius:50%;background:#dc2626;color:#fff;border:none;font-size:10px;line-height:1;padding:0;cursor:pointer;align-items:center;justify-content:center;z-index:2}.recent-color-swatch-wrap:hover .recent-color-remove{display:flex}.recent-color-remove:hover{background:#b91c1c}.property-textarea{min-height:80px;resize:vertical;font-family:inherit;line-height:1.4}.note-editing-textarea{z-index:100;box-shadow:0 0 0 2px var(--accent);border-radius:2px}.note-editing-textarea:focus{outline:none}.property-row{display:flex;gap:8px}.property-row>.property-group{flex:1;min-width:0}.property-readonly-value{padding:8px 10px;font-size:13px;color:var(--text-secondary);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px}.property-warning{padding:8px 10px;font-size:12px;color:#b45309;background-color:#f59e0b1f;border:1px solid #f59e0b;border-radius:6px}.property-col{flex:1;display:flex;flex-direction:column;gap:6px}.property-sublabel{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase}.workbench-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background-color:var(--bg-primary);color:var(--text-primary);gap:16px}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.dashboard-content{flex:1;padding:32px;overflow:auto;background-color:var(--bg-primary)}.dashboard-inner{max-width:1200px;margin:0 auto}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.dashboard-title{margin:0;color:var(--text-primary);font-size:24px;font-weight:600}.dashboard-projects{display:flex;flex-direction:column;gap:40px}.dashboard-project-section{border-radius:12px;border:2px solid transparent;transition:all .2s ease}.dashboard-project-section.drag-over{padding:16px;margin:-16px;border:2px dashed var(--accent);background-color:var(--accent-light)}.dashboard-project-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.dashboard-project-name{margin:0;color:var(--text-primary);font-size:18px;font-weight:500}.dashboard-project-count{display:inline-flex;align-items:center;margin-left:4px;padding:2px 8px;background-color:var(--bg-tertiary);border-radius:10px;font-size:12px;font-weight:500;color:var(--text-secondary)}.dashboard-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.floorplan-card{display:flex;flex-direction:column;padding:0;background-color:transparent;border-radius:4px;text-align:left;position:relative}.floorplan-card:has(.menu-item){z-index:1}div.floorplan-card{cursor:grab;transition:opacity .2s}button.floorplan-card{border:none;cursor:pointer;text-align:center;transition:opacity .2s}.floorplan-card-thumb{width:100%;aspect-ratio:4/3;background-color:var(--bg-secondary);border-radius:4px;margin-bottom:8px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);cursor:pointer;position:relative;overflow:hidden;transition:border-color .15s,box-shadow .15s}.floorplan-card:hover:not(:disabled) .floorplan-card-thumb{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.floorplan-card-drag-handle{position:absolute;top:4px;left:4px;padding:2px;color:var(--text-tertiary);opacity:.4}.floorplan-card-footer{display:flex;align-items:flex-start;justify-content:space-between;padding:0 4px}.floorplan-card-info{flex:1;min-width:0;cursor:pointer}.floorplan-card-name{color:var(--text-primary);font-weight:500;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floorplan-card-date{color:var(--text-tertiary);font-size:11px;margin-top:2px}.floorplan-card-img{width:100%;height:100%;object-fit:contain;border-radius:3px}:root[data-theme=dark] .floorplan-card-img{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.82)}.floorplan-card-initials{width:56px;height:56px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;letter-spacing:-.5px;font-family:IBM Plex Sans,sans-serif}.floorplan-add-label{color:var(--text-tertiary);font-size:13px}.floorplan-add-thumb{width:100%;aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background-color:var(--bg-secondary);border-radius:4px;margin-bottom:8px;border:1px dashed var(--border-color);transition:border-color .15s,background-color .15s}button.floorplan-card:hover:not(:disabled) .floorplan-add-thumb{border-color:var(--accent);background-color:var(--accent-light)}.floorplan-card:active:not(:disabled){opacity:.7}.floorplan-card:disabled{opacity:.4;cursor:not-allowed}.item-menu-button:hover{background-color:var(--bg-hover);color:var(--text-primary)}.menu-item:hover{background-color:var(--bg-hover)}.menu-item-danger:hover{background-color:#dc35451a}.floorplan-card[draggable=true]:active{cursor:grabbing}.scale-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.scale-select{appearance:none;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:4px 24px 4px 8px;font-size:13px;font-weight:600;color:var(--text-primary);cursor:pointer;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23868e96' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;transition:all .2s}.scale-select:hover{border-color:var(--border-hover);background-color:var(--bg-hover)}.scale-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.calibrated-badge{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:#22c55e;color:#fff;border-radius:50%;font-size:12px;font-weight:700}@keyframes skeleton-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton-shimmer{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-hover) 50%,var(--bg-tertiary) 75%);background-size:800px 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:4px}.skeleton-card-thumb{width:100%;aspect-ratio:4/3;border-radius:4px;margin-bottom:8px}.skeleton-card-line{height:12px;width:70%;margin-bottom:4px}.skeleton-card-line-short{height:10px;width:40%}.dashboard-empty-icon{color:var(--text-tertiary);margin-bottom:12px}.dashboard-empty-title{color:var(--text-primary);margin:0 0 6px;font-size:18px;font-weight:600}.dashboard-empty-subtitle{color:var(--text-secondary);font-size:14px;margin:0}.dashboard-empty-state{display:flex;flex-direction:column;align-items:center;padding:80px 32px;text-align:center}.dashboard-empty-steps{display:flex;gap:32px;margin-top:40px;margin-bottom:32px}.dashboard-empty-step{display:flex;flex-direction:column;align-items:center;gap:10px;width:140px}.dashboard-empty-step-num{width:36px;height:36px;border-radius:50%;background-color:var(--accent-light);color:var(--accent);font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace}.dashboard-empty-step-label{font-size:13px;color:var(--text-secondary);line-height:1.4}.dashboard-empty-connector{width:32px;height:1px;background-color:var(--border-color);align-self:center;margin-top:-24px}.modal-overlay{position:fixed;inset:0;background-color:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-dialog{background-color:var(--bg-primary);border-radius:12px;padding:24px;width:90%;max-width:400px;box-shadow:var(--shadow-lg);border:1px solid var(--border-color)}.modal-title{margin:0 0 16px;color:var(--text-primary);font-size:18px;font-weight:600}.modal-input{width:100%;padding:10px 12px;font-size:14px;font-family:inherit;border:1px solid var(--border-color);border-radius:6px;background-color:var(--bg-secondary);color:var(--text-primary);margin-bottom:16px;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.modal-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.modal-btn{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:background-color .15s,border-color .15s}.modal-btn-cancel{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.modal-btn-cancel:hover{background-color:var(--bg-hover);border-color:var(--border-hover);box-shadow:none;transform:none}.modal-btn-primary{background-color:var(--accent);color:#fff;border:none}.modal-btn-primary:hover{background-color:var(--accent-hover);box-shadow:none;transform:none}.tool-locked{opacity:.5;cursor:not-allowed!important;position:relative}.tool-locked:hover{opacity:.65;background-color:var(--bg-hover)}.tool-lock-icon{color:var(--text-muted);flex-shrink:0;margin-left:auto}.workbench-banner-stack{display:flex;flex-direction:column;flex-shrink:0}.autosave-upgrade-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;padding:6px 14px;font-size:12px;font-weight:500;background:#fef3c7;color:#92400e;border-bottom:1px solid #fcd34d}.autosave-upgrade-banner>span{min-width:0;max-width:100%;overflow-wrap:anywhere}[data-theme=dark] .autosave-upgrade-banner{background:#78350f;color:#fef3c7;border-bottom-color:#92400e}.autosave-upgrade-banner button{flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:600;font-family:inherit;border:none;border-radius:4px;background:#92400e;color:#fef3c7;cursor:pointer}[data-theme=dark] .autosave-upgrade-banner button{background:#fcd34d;color:#78350f}.properties-readonly{pointer-events:none;opacity:.6}.properties-readonly .properties-readonly-hint{pointer-events:auto;opacity:1;text-align:center;font-size:12px;color:var(--accent);padding:8px;margin-bottom:8px;background:var(--accent-light);border-radius:6px;cursor:default}.topbar-hamburger-btn,.topbar-more-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-secondary);cursor:pointer}.topbar-hamburger-btn:hover,.topbar-more-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.topbar-mobile-overflow{display:none}[data-layout=mobile] .workbench-topbar{height:40px;flex-shrink:0;padding:0 8px;gap:4px;position:relative}[data-layout=mobile] .topbar-hamburger-btn,[data-layout=mobile] .topbar-more-btn{display:flex}[data-layout=mobile] .topbar-left>a,[data-layout=mobile] .workbench-topbar .add-floorplan-button,[data-layout=mobile] .share-button-wrapper,[data-layout=mobile] .topbar-summary-toggle,[data-layout=mobile] .topbar-right{display:none}[data-layout=mobile] .topbar-left{gap:4px;min-width:0;flex:1}[data-layout=mobile] .topbar-breadcrumb{min-width:0;overflow:hidden}[data-layout=mobile] .breadcrumb-item{max-width:140px;padding:4px 6px;font-size:13px}[data-layout=mobile] .save-button{padding:6px;margin-left:0}[data-layout=mobile] .save-button-label{display:none}[data-layout=mobile] .topbar-mobile-overflow{display:flex;flex-direction:column;gap:2px;position:absolute;top:100%;right:8px;left:8px;max-height:calc(100vh - 56px);overflow-y:auto;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;z-index:500;padding-bottom:calc(6px + env(safe-area-inset-bottom))}.topbar-mobile-overflow-item{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 12px;background:transparent;border:none;border-radius:6px;color:var(--text-primary);font-size:14px;text-align:left;cursor:pointer}.topbar-mobile-overflow-item:hover:not(:disabled){background-color:var(--bg-hover)}.topbar-mobile-overflow-item:disabled{opacity:.6;cursor:not-allowed}.topbar-mobile-overflow-item.active{color:var(--accent);background-color:var(--accent-light)}.topbar-mobile-overflow-logout{color:var(--error)}.topbar-mobile-overflow-divider{height:1px;background-color:var(--border-color);margin:4px 6px}.topbar-mobile-overflow-share{padding:8px 12px 10px}.topbar-mobile-overflow-share .share-popover-url{margin-bottom:8px}[data-layout=mobile] .workbench-left-sidebar{width:48px;min-width:48px;max-width:48px;transition:none}[data-layout=mobile] .workbench-left-sidebar .section-title,[data-layout=mobile] .workbench-left-sidebar .tool-label,[data-layout=mobile] .workbench-left-sidebar .tool-hotkey,[data-layout=mobile] .workbench-left-sidebar .calibration-label{display:none}[data-layout=mobile] .workbench-left-sidebar:not(.mobile-drawer-open) .sidebar-section{padding-left:4px;padding-right:4px}[data-layout=mobile] .workbench-left-sidebar .tool-button,[data-layout=mobile] .workbench-left-sidebar .calibration-button{justify-content:center;padding:12px 4px;min-height:44px}[data-layout=mobile] .workbench-left-sidebar .tool-button.active{padding-left:2px}[data-layout=mobile] .workbench-left-sidebar:not(.mobile-drawer-open) .tool-button svg:not(.tool-lock-icon),[data-layout=mobile] .workbench-left-sidebar:not(.mobile-drawer-open) .calibration-button svg:not(.tool-lock-icon){width:24px;height:24px;flex-shrink:0}[data-layout=mobile] .workbench-left-sidebar.mobile-drawer-open{position:absolute;top:0;bottom:0;left:0;width:240px;min-width:240px;max-width:240px;z-index:400;box-shadow:var(--shadow-lg);padding-bottom:env(safe-area-inset-bottom)}[data-layout=mobile] .workbench-left-sidebar.mobile-drawer-open .section-title{display:block}[data-layout=mobile] .workbench-left-sidebar.mobile-drawer-open .tool-label,[data-layout=mobile] .workbench-left-sidebar.mobile-drawer-open .calibration-label{display:inline}[data-layout=mobile] .workbench-left-sidebar.mobile-drawer-open .tool-button,[data-layout=mobile] .workbench-left-sidebar.mobile-drawer-open .calibration-button{justify-content:flex-start;padding:10px 12px}[data-layout=mobile] .workbench-left-sidebar.mobile-drawer-open .tool-button.active{padding-left:10px}.mobile-drawer-close-btn{display:none}[data-layout=mobile] .workbench-left-sidebar.mobile-drawer-open .mobile-drawer-close-btn{display:flex;align-items:center;justify-content:center;align-self:flex-end;width:32px;height:32px;margin:6px 6px 0 0;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer}[data-layout=mobile] .workbench-left-sidebar.mobile-drawer-open .mobile-drawer-close-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.workbench-mobile-drawer-backdrop{position:absolute;inset:0;background:#00000059;z-index:390}[data-layout=mobile] .tool-touch-preview{position:fixed;left:52px;transform:translateY(-50%);z-index:600;padding:6px 10px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;box-shadow:var(--shadow-lg);color:var(--text-primary);font-size:13px;white-space:nowrap;pointer-events:none}[data-layout=mobile] .dashboard-topbar .topbar-left>a{display:flex}[data-layout=mobile] .dashboard-content{padding:16px}[data-layout=mobile] .dashboard-empty-state{padding:24px 0}[data-layout=mobile] .dashboard-empty-steps{flex-direction:column;align-items:flex-start;gap:16px;margin:24px 0}[data-layout=mobile] .dashboard-empty-step{flex-direction:row;width:auto;text-align:left}[data-layout=mobile] .dashboard-empty-step-num{flex:0 0 36px}[data-layout=mobile] .dashboard-empty-connector,[data-layout=mobile] .floorplan-card-drag-handle,.mobile-bottom-sheet{display:none}[data-layout=mobile] .canvas-utility-controls{bottom:calc(var(--mobile-sheet-height, calc(44px + env(safe-area-inset-bottom)) ) + 8px)}[data-layout=mobile] .hint-stack{bottom:calc(var(--mobile-sheet-height, calc(44px + env(safe-area-inset-bottom)) ) + 52px)}[data-layout=mobile] .hint-history .hint-action{min-height:44px}[data-layout=mobile] .mobile-bottom-sheet{display:flex;flex-direction:column;position:absolute;left:48px;right:0;bottom:0;z-index:380;background-color:var(--bg-secondary);border-top:1px solid var(--border-color);box-shadow:0 -2px 12px #0000001f;transition:height .2s ease;overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}[data-layout=mobile] .mobile-bottom-sheet.dragging{transition:none}.mobile-sheet-handle{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:28px;padding-top:4px;cursor:grab;touch-action:none}.mobile-sheet-grip{width:36px;height:4px;border-radius:2px;background-color:var(--border-color)}.mobile-sheet-peek-label{font-size:11px;color:var(--text-secondary)}.mobile-sheet-tabs{flex-shrink:0;display:flex;border-bottom:1px solid var(--border-color)}.mobile-sheet-tab{flex:1;padding:8px 4px;background:transparent;border:none;border-bottom:2px solid transparent;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer}.mobile-sheet-tab.active{color:var(--text-primary);border-bottom-color:var(--accent)}.mobile-sheet-body{flex:1;min-height:0;display:flex;flex-direction:column}.mobile-sheet-pane{flex:1;min-height:0;flex-direction:column}[data-layout=mobile] .mobile-sheet-pane .workbench-right-sidebar{width:100%!important;min-width:0!important;max-width:none!important;height:100%;border-left:none}[data-layout=mobile] .mobile-sheet-pane .area-summary-panel,[data-layout=mobile] .mobile-sheet-pane .area-summary-inner{width:100%!important;min-width:0!important;height:100%}[data-layout=mobile] .mobile-sheet-pane .area-summary-panel{border-left:none}[data-layout=mobile] .mobile-sheet-pane .area-summary-resize-handle,[data-layout=mobile] .mobile-sheet-pane .area-summary-toggle-tab{display:none}.sidebar-disclosure>summary{min-height:44px;cursor:pointer;color:var(--text-primary);font-size:12px;font-weight:600;padding:12px 0}.sidebar-disclosure>summary>span{float:right;max-width:80px;font-size:10px;font-weight:400;color:var(--text-secondary)}.sidebar-advanced>summary{cursor:pointer;min-height:36px;padding-top:10px;color:var(--text-secondary);font-size:11px}.tool-button.layer-visibility{background:transparent;color:var(--text-secondary);min-height:36px}.tool-button.layer-visibility[aria-pressed=true]{color:var(--text-primary)}.layer-eye{margin-left:auto;flex-shrink:0}.sidebar-context-actions{display:contents}.mobile-rail-sections{display:none}[data-layout=mobile] .workbench-left-sidebar:not(.mobile-drawer-open) .sidebar-disclosure,[data-layout=mobile] .workbench-left-sidebar:not(.mobile-drawer-open) .sidebar-context-actions,[data-layout=mobile] .workbench-left-sidebar:not(.mobile-drawer-open) .sidebar-center-view,[data-layout=mobile] .workbench-left-sidebar:not(.mobile-drawer-open) .sidebar-divider{display:none}[data-layout=mobile] .workbench-left-sidebar:not(.mobile-drawer-open) .mobile-rail-sections{display:flex;flex-direction:column;align-items:center;gap:4px}[data-layout=mobile] .sidebar-disclosure .tool-button,[data-layout=mobile] .sidebar-disclosure .calibration-button{min-height:44px}.flooring-color-legend{position:absolute;top:56px;left:12px;z-index:15;padding:8px 12px;max-width:210px;max-height:180px;overflow:auto;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;font-size:11px}.flooring-color-legend summary{cursor:pointer;min-height:28px}.flooring-color-legend>div{display:flex;align-items:center;gap:8px;min-height:28px}.flooring-color-legend p{color:var(--text-secondary);line-height:1.5;margin-bottom:0}.support-inbox-overlay{z-index:1200}.support-inbox-modal{width:min(96vw,1080px);max-width:1080px;max-height:min(88vh,860px);padding:0;overflow:hidden;display:flex;flex-direction:column}.support-inbox-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 18px;border-bottom:1px solid var(--border-color)}.support-inbox-title{margin:0;font-size:1.2rem;font-weight:700;color:var(--text-primary)}.support-inbox-subtitle{margin:6px 0 0;color:var(--text-secondary);font-size:.94rem;line-height:1.45}.support-inbox-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-secondary);color:var(--text-secondary)}.support-inbox-close:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-hover);box-shadow:none;transform:none}.support-inbox-body{display:grid;grid-template-columns:320px 1fr;min-height:620px;overflow:hidden}.support-inbox-sidebar{display:flex;flex-direction:column;border-right:1px solid var(--border-color);background:var(--bg-secondary);min-width:0}.support-inbox-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px;border-bottom:1px solid var(--border-color)}.support-inbox-sidebar-title{font-size:.95rem;font-weight:700;color:var(--text-primary)}.support-inbox-sidebar-copy{margin-top:4px;font-size:.82rem;color:var(--text-secondary);word-break:break-word}.support-inbox-new-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-primary);color:var(--text-primary);font-size:.84rem;font-weight:600}.support-inbox-new-btn:hover{background:var(--bg-hover);border-color:var(--border-hover);box-shadow:none;transform:none}.support-inbox-thread-list{flex:1;overflow-y:auto;padding:12px}.support-inbox-thread-item{width:100%;padding:14px;border:1px solid transparent;border-radius:14px;background:transparent;text-align:left;margin-bottom:10px;color:var(--text-primary)}.support-inbox-thread-item:hover{background:var(--bg-hover);border-color:var(--border-color);box-shadow:none;transform:none}.support-inbox-thread-item.active{background:var(--accent-light);border-color:color-mix(in srgb,var(--accent) 35%,var(--border-color))}.support-inbox-thread-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.support-inbox-thread-topic{font-size:.92rem;font-weight:700;text-transform:capitalize}.support-inbox-thread-status,.support-inbox-thread-reference,.support-inbox-thread-time{font-size:.78rem;color:var(--text-secondary)}.support-inbox-thread-preview{margin-top:8px;font-size:.86rem;color:var(--text-primary);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.support-inbox-thread-time{margin-top:10px}.support-inbox-content{display:flex;flex-direction:column;min-width:0;background:var(--bg-primary)}.support-inbox-feedback{display:flex;align-items:center;gap:8px;margin:18px 20px 0;padding:12px 14px;border-radius:12px;font-size:.88rem}.support-inbox-feedback-success{background:#22c55e1f;color:#166534}.support-inbox-feedback-error{background:#ef44441f;color:#991b1b}.support-inbox-compose,.support-inbox-reply-form{display:flex;flex-direction:column;gap:16px;padding:20px 24px 24px}.support-inbox-compose-header h3,.support-inbox-thread-header h3{margin:0;color:var(--text-primary)}.support-inbox-compose-header p,.support-inbox-thread-header p{margin:8px 0 0;color:var(--text-secondary);line-height:1.45}.support-inbox-field{display:flex;flex-direction:column;gap:8px}.support-inbox-field span{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.support-inbox-field select,.support-inbox-field textarea{width:100%;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font:inherit;padding:12px 14px;resize:vertical;box-sizing:border-box}.support-inbox-field select:focus,.support-inbox-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.support-inbox-email-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;background:var(--bg-secondary);color:var(--text-secondary);font-size:.88rem}.support-inbox-actions{display:flex;justify-content:flex-end}.support-inbox-message-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:20px 24px;background:color-mix(in srgb,var(--bg-secondary) 55%,transparent)}.support-inbox-message{max-width:min(84%,640px);padding:14px 16px;border-radius:16px;border:1px solid var(--border-color);background:var(--bg-primary);box-shadow:var(--shadow-sm)}.support-inbox-message.is-user{align-self:flex-end;background:var(--accent-light)}.support-inbox-message.is-admin{align-self:flex-start}.support-inbox-message-meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:.76rem;color:var(--text-secondary)}.support-inbox-message-body{white-space:pre-wrap;color:var(--text-primary);line-height:1.5}.support-inbox-thread-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 0}.support-inbox-thread-header-topline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.support-inbox-thread-status-pill{padding:5px 10px;border-radius:999px;background:var(--bg-secondary);color:var(--text-secondary);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.support-inbox-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px 24px;text-align:center;color:var(--text-secondary)}.support-inbox-detail-loading{flex:1}.support-inbox-spinner{animation:spin 1s linear infinite}@media(max-width:900px){.support-inbox-modal{width:min(100vw,100vw);max-height:100vh;height:100vh;border-radius:0}.support-inbox-body{grid-template-columns:1fr}.support-inbox-sidebar{border-right:none;border-bottom:1px solid var(--border-color);max-height:260px}.support-inbox-thread-header,.support-inbox-sidebar-header{flex-direction:column;align-items:stretch}.support-inbox-message{max-width:100%}}.avatar-tile{--avatar-size: 36px;position:relative;isolation:isolate;display:inline-grid;place-items:center;flex:none;width:var(--avatar-size);height:var(--avatar-size);overflow:hidden;border:1px solid rgba(20,39,58,.18);border-radius:26%;background:var(--avatar-ground);color:var(--avatar-ink);box-shadow:inset 0 1px #ffffff47;vertical-align:middle}.avatar-motif{position:absolute;inset:0;pointer-events:none}.avatar-motif:before,.avatar-motif:after{content:"";position:absolute;display:block}.avatar-initials{position:relative;z-index:1;font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:calc(var(--avatar-size) * .39);font-weight:700;line-height:1;letter-spacing:-.035em;text-shadow:0 1px 1px rgba(0,0,0,.12)}.avatar-draftline{--avatar-ground: #28435b;--avatar-ink: #fffaf0}.avatar-draftline .avatar-motif:before{width:42%;height:42%;top:-20%;left:-20%;transform:rotate(45deg);background:#d5dddc;border-right:2px solid rgba(20,45,65,.25)}.avatar-draftline .avatar-motif:after{width:70%;height:70%;right:-47%;bottom:-41%;border:max(1px,calc(var(--avatar-size) * .025)) solid rgba(216,232,231,.48);border-radius:50%}.avatar-timberline{--avatar-ground: #665143;--avatar-ink: #fff8eb}.avatar-timberline .avatar-motif{background:repeating-linear-gradient(105deg,transparent 0 14%,rgba(243,220,181,.095) 15% 17%,transparent 18% 24%)}.avatar-timberline .avatar-motif:before{inset:0 auto auto 0;width:33%;height:36%;background:#b28d6d;clip-path:polygon(0 0,100% 0,100% 55%,53% 55%,53% 100%,0 100%)}.avatar-arcwork{--avatar-ground: #7a6e65;--avatar-ink: #fff9f2}.avatar-arcwork .avatar-motif:before{width:90%;height:90%;left:-56%;bottom:-42%;border:max(2px,calc(var(--avatar-size) * .045)) solid rgba(247,234,214,.65);border-radius:50%}.avatar-arcwork .avatar-motif:after{width:42%;height:1px;top:20%;right:0;background:#fff8ed80}.avatar-tilework{--avatar-ground: #4e686d;--avatar-ink: #fffdf5}.avatar-tilework .avatar-motif:before{width:53%;height:54%;right:-7%;top:-12%;transform:rotate(-12deg);border-left:max(2px,calc(var(--avatar-size) * .045)) solid rgba(235,233,216,.65);border-bottom:max(2px,calc(var(--avatar-size) * .045)) solid rgba(235,233,216,.65);background:#bed2cc2e}.avatar-tilework .avatar-motif:after{width:48%;height:45%;left:-26%;bottom:-21%;border-top:max(2px,calc(var(--avatar-size) * .04)) solid rgba(235,233,216,.5);background:#bed2cc29}.avatar-stonecut{--avatar-ground: #5c6465;--avatar-ink: #fffaf1}.avatar-stonecut .avatar-motif:before{inset:auto auto -18% -17%;width:75%;height:58%;transform:rotate(-24deg);background:#cdd2cc3b;border-top:max(2px,calc(var(--avatar-size) * .04)) solid rgba(238,238,221,.58)}.avatar-stonecut .avatar-motif:after{width:38%;height:1px;right:0;top:25%;background:#f2efdd61}.avatar-variant-1 .avatar-motif{transform:rotate(15deg) scale(1.05)}.avatar-variant-2 .avatar-motif{transform:rotate(-14deg) scale(1.05)}.avatar-control{--avatar-ground: #64748b;--avatar-ink: #fff}.avatar-control .avatar-motif{display:none}:root[data-theme=dark] .avatar-draftline{--avatar-ground: #829ca7;--avatar-ink: #10263a}:root[data-theme=dark] .avatar-timberline{--avatar-ground: #b99d7d;--avatar-ink: #281e18}:root[data-theme=dark] .avatar-arcwork{--avatar-ground: #b6a99e;--avatar-ink: #2c2827}:root[data-theme=dark] .avatar-tilework{--avatar-ground: #a3bdb8;--avatar-ink: #193137}:root[data-theme=dark] .avatar-stonecut{--avatar-ground: #aeb9b6;--avatar-ink: #1d2b2d}:root[data-theme=dark] .avatar-tile{border-color:#fff3}.account-topbar{flex-shrink:0}.account-topbar-logo{display:flex;align-items:center;text-decoration:none}.account-topbar-logo img{height:40px;margin-right:12px}.account-profile-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:none;color:var(--text-primary);cursor:pointer;border-radius:50%}.account-topbar .user-menu:not(.account-profile-open) .user-dropdown{opacity:0;visibility:hidden}.account-topbar .account-profile-open .user-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.account-topbar button:focus-visible,.account-topbar a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.authenticated-layout{--account-topbar-height: 56px;padding-top:var(--account-topbar-height)}.authenticated-layout>.account-topbar{position:fixed;top:0;left:0;right:0}.authenticated-layout>.settings-container,.authenticated-layout>.shared-view,.authenticated-layout>.shared-view-loading,.authenticated-layout>.shared-view-error{height:calc(100vh - var(--account-topbar-height))}.authenticated-layout>.landing-page,.authenticated-layout>.signup-page,.authenticated-layout>.admin-page,.authenticated-layout>.not-found-page,.authenticated-layout>.subscription-success-page{min-height:calc(100vh - var(--account-topbar-height))}[data-layout=mobile] .authenticated-layout{--account-topbar-height: 40px}[data-layout=mobile] .account-topbar-logo img{height:32px}.toast-container{position:fixed;bottom:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:10px 16px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;pointer-events:auto;animation:toast-in .25s ease;max-width:360px;box-shadow:0 4px 12px #00000026}.toast-info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.toast-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.toast-warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.toast-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}[data-theme=dark] .toast-info{background:#172554;color:#93c5fd;border-color:#1e3a5f}[data-theme=dark] .toast-success{background:#052e16;color:#86efac;border-color:#14532d}[data-theme=dark] .toast-warning{background:#451a03;color:#fcd34d;border-color:#78350f}[data-theme=dark] .toast-error{background:#450a0a;color:#fca5a5;border-color:#7f1d1d}@keyframes toast-in{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.past-due-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;padding:6px 14px;font-size:12px;font-weight:500;background:#fef3c7;color:#92400e;border-bottom:1px solid #fcd34d;flex-shrink:0}.past-due-banner>span{min-width:0;max-width:100%;overflow-wrap:anywhere}.past-due-banner>svg,.past-due-banner>button{flex-shrink:0}[data-theme=dark] .past-due-banner{background:#78350f;color:#fef3c7;border-bottom-color:#92400e}.past-due-banner button{padding:3px 10px;font-size:11px;font-weight:600;font-family:inherit;border-radius:6px;border:none;cursor:pointer;white-space:nowrap;background:#92400e;color:#fef3c7;transition:opacity .15s}.past-due-banner button:hover{opacity:.85}.past-due-banner button:disabled{opacity:.6;cursor:not-allowed}[data-theme=dark] .past-due-banner button{background:#fcd34d;color:#78350f}.notif-banner{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:space-between;gap:12px;padding:6px 14px;border-left:4px solid;font-size:12px}.notif-info{background:#eff6ff;border-color:#3b82f6}.notif-warning{background:#fffbeb;border-color:#f59e0b}.notif-error{background:#fef2f2;border-color:#ef4444}[data-theme=dark] .notif-info{background:#172554;border-color:#3b82f6}[data-theme=dark] .notif-warning{background:#451a03;border-color:#f59e0b}[data-theme=dark] .notif-error{background:#450a0a;border-color:#ef4444}.notif-text{display:flex;flex:1 1 240px;flex-direction:column;gap:1px;min-width:0;overflow-wrap:anywhere}.notif-text strong{font-size:12px}.notif-text span{font-size:11px;opacity:.8}.notif-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;max-width:100%;margin-left:auto}.notif-cta{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;font-family:inherit;border:none;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer;min-width:0;overflow-wrap:anywhere}.notif-actions svg,.notif-dismiss{flex-shrink:0}.notif-cta:hover{opacity:.9}.notif-dismiss{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary);border-radius:4px}.notif-dismiss:hover{background:#0000000d}[data-theme=dark] .notif-dismiss:hover{background:#ffffff1a}.trial-badge{display:inline-flex;align-self:flex-start;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--accent);background:var(--accent-light);border-radius:12px;white-space:nowrap}.trial-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;padding:6px 14px;font-size:12px;font-weight:500;flex-shrink:0}.trial-banner>span{min-width:0;max-width:100%;overflow-wrap:anywhere}.trial-banner-warning{background:#fef3c7;color:#92400e;border-bottom:1px solid #fcd34d}[data-theme=dark] .trial-banner-warning{background:#78350f;color:#fef3c7;border-bottom-color:#92400e}.trial-banner-free{background:var(--accent-light);color:var(--accent);border-bottom:1px solid var(--accent)}.trial-banner-cta{flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:600;font-family:inherit;border-radius:6px;border:none;cursor:pointer;white-space:nowrap;transition:opacity .15s}.trial-banner-cta:hover{opacity:.85}.trial-banner-warning .trial-banner-cta{background:#92400e;color:#fef3c7}[data-theme=dark] .trial-banner-warning .trial-banner-cta{background:#fcd34d;color:#78350f}.trial-banner-free .trial-banner-cta{background:var(--accent);color:#fff}.upgrade-overlay{position:fixed;inset:0;background-color:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1100}.upgrade-dialog{position:relative;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:28px 24px 24px;width:90%;max-width:400px;box-shadow:var(--shadow-lg);font-family:IBM Plex Sans,sans-serif}.upgrade-close{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px}.upgrade-close:hover{color:var(--text-primary);background:var(--bg-hover)}.upgrade-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.upgrade-icon{color:var(--accent);flex-shrink:0}.upgrade-title{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.upgrade-context{margin:0 0 20px;font-size:13px;color:var(--text-secondary)}.upgrade-plans{display:flex;gap:10px;margin-bottom:20px}.upgrade-plan{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);cursor:pointer;transition:border-color .15s,box-shadow .15s;position:relative;font-family:inherit;color:var(--text-primary)}.upgrade-plan:hover{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.plan-recommended{border-color:var(--accent)}.plan-badge{position:absolute;top:-9px;right:8px;background:var(--accent);color:#fff;font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;letter-spacing:.02em}.plan-price{font-size:24px;font-weight:700;line-height:1}.plan-period{font-size:12px;color:var(--text-secondary)}.upgrade-features{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:6px}.upgrade-features li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary)}.feature-check{color:var(--accent);flex-shrink:0}.upgrade-free-note{margin:0;font-size:12px;color:var(--text-muted);text-align:center}.upgrade-cancel{display:block;margin:12px auto 0;padding:6px 20px;background:none;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:13px;cursor:pointer}.upgrade-cancel:hover{background:var(--bg-secondary)}@keyframes upgrade-spin{to{transform:rotate(360deg)}}.upgrade-spinner{animation:upgrade-spin 1s linear infinite}.upgrade-plan:disabled{opacity:.6;cursor:not-allowed}.upgrade-error{margin:0 0 12px;padding:8px 12px;font-size:12px;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;text-align:center}[data-theme=dark] .upgrade-error{background:#450a0a;border-color:#7f1d1d;color:#fca5a5}.pricing-checkout-error{margin:10px 0 0;font-size:12px;color:#dc2626;text-align:center}[data-theme=dark] .pricing-checkout-error{color:#fca5a5}.admin-page{min-height:100vh;padding:2rem;background:var(--bg-primary, #f5f5f5)}[data-theme=dark] .admin-page{background:var(--bg-primary, #1a1a2e)}.admin-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.admin-header h1{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.5rem;color:var(--text-primary, #333);flex:1}[data-theme=dark] .admin-header h1{color:var(--text-primary, #e0e0e0)}.admin-back-btn,.admin-refresh-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-secondary, #fff);color:var(--text-primary, #333);cursor:pointer;font-size:.875rem;transition:all .2s}.admin-back-btn:hover,.admin-refresh-btn:hover{background:var(--bg-hover, #f0f0f0)}[data-theme=dark] .admin-back-btn,[data-theme=dark] .admin-refresh-btn{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060);color:var(--text-primary, #e0e0e0)}[data-theme=dark] .admin-back-btn:hover,[data-theme=dark] .admin-refresh-btn:hover{background:var(--bg-hover, #3d3d5c)}.admin-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.spinning{animation:spin 1s linear infinite}.admin-loading{text-align:center;padding:4rem;color:var(--text-secondary, #666)}.admin-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem;text-align:center;color:var(--text-secondary, #666)}.admin-error h2{margin:0;color:var(--text-primary, #333)}[data-theme=dark] .admin-error h2{color:var(--text-primary, #e0e0e0)}.admin-btn{padding:.75rem 1.5rem;border:none;border-radius:6px;background:var(--accent-color, #667eea);color:#fff;cursor:pointer;font-size:1rem}.admin-btn:hover{opacity:.9}.admin-error-banner{background:#fee2e2;border:1px solid #fca5a5;color:#dc2626;padding:1rem;border-radius:6px;margin-bottom:1rem}[data-theme=dark] .admin-error-banner{background:#450a0a;border-color:#7f1d1d;color:#fca5a5}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{display:flex;gap:1rem;padding:1.5rem;background:var(--bg-secondary, #fff);border:1px solid var(--border-color, #ddd);border-radius:12px;box-shadow:0 2px 4px #0000000d}[data-theme=dark] .stat-card{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060)}.stat-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;flex-shrink:0}.stat-icon.users{background:#dbeafe;color:#2563eb}.stat-icon.telemetry{background:#dcfce7;color:#16a34a}.stat-icon.flags{background:#fef3c7;color:#d97706}[data-theme=dark] .stat-icon.users{background:#1e3a5f}[data-theme=dark] .stat-icon.telemetry{background:#14532d}[data-theme=dark] .stat-icon.flags{background:#451a03}.stat-content h3{margin:0 0 .25rem;font-size:.875rem;font-weight:500;color:var(--text-secondary, #666)}[data-theme=dark] .stat-content h3{color:var(--text-secondary, #aaa)}.stat-value{margin:0 0 .25rem;font-size:1.5rem;font-weight:600;color:var(--text-primary, #333)}[data-theme=dark] .stat-value{color:var(--text-primary, #e0e0e0)}.stat-detail{margin:0;font-size:.75rem;color:var(--text-secondary, #888)}.flag-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.flag-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;text-transform:capitalize}.flag-badge.enabled{background:#dcfce7;color:#16a34a}.flag-badge.disabled{background:#fee2e2;color:#dc2626}[data-theme=dark] .flag-badge.enabled{background:#14532d;color:#86efac}[data-theme=dark] .flag-badge.disabled{background:#450a0a;color:#fca5a5}.admin-users{background:var(--bg-secondary, #fff);border:1px solid var(--border-color, #ddd);border-radius:12px;padding:1.5rem}[data-theme=dark] .admin-users{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060)}.admin-users h2{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1.25rem;color:var(--text-primary, #333)}[data-theme=dark] .admin-users h2{color:var(--text-primary, #e0e0e0)}.users-table-container{overflow-x:auto}.users-table{width:100%;border-collapse:collapse;font-size:.875rem}.users-table th,.users-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color, #eee)}.users-table th{font-weight:600;color:var(--text-secondary, #666);background:var(--bg-primary, #f9f9f9)}[data-theme=dark] .users-table th{background:var(--bg-primary, #1a1a2e);color:var(--text-secondary, #aaa);border-color:var(--border-color, #404060)}[data-theme=dark] .users-table td{border-color:var(--border-color, #404060);color:var(--text-primary, #e0e0e0)}.users-table tr.current-user{background:#667eea1a}[data-theme=dark] .users-table tr.current-user{background:#667eea33}.role-badge,.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;margin-right:.25rem}.role-badge.admin{background:#fef3c7;color:#b45309}.role-badge.user{background:#e0e7ff;color:#4338ca}[data-theme=dark] .role-badge.admin{background:#451a03;color:#fcd34d}[data-theme=dark] .role-badge.user{background:#312e81;color:#a5b4fc}.status-badge.active{background:#dcfce7;color:#16a34a}.status-badge.inactive{background:#fee2e2;color:#dc2626}.status-badge.verified{background:#dbeafe;color:#2563eb}[data-theme=dark] .status-badge.active{background:#14532d;color:#86efac}[data-theme=dark] .status-badge.inactive{background:#450a0a;color:#fca5a5}[data-theme=dark] .status-badge.verified{background:#1e3a5f;color:#93c5fd}.admin-toggle-btn{padding:.375rem .75rem;border:1px solid var(--border-color, #ddd);border-radius:4px;background:var(--bg-secondary, #fff);color:var(--text-primary, #333);font-size:.75rem;cursor:pointer;transition:all .2s;white-space:nowrap}.admin-toggle-btn:hover:not(:disabled){border-color:var(--accent-color, #6366f1)}.admin-toggle-btn.grant{background:#dcfce7;color:#166534;border-color:#86efac}.admin-toggle-btn.grant:hover:not(:disabled){background:#bbf7d0}.admin-toggle-btn.revoke{background:#fee2e2;color:#991b1b;border-color:#fca5a5}.admin-toggle-btn.revoke:hover:not(:disabled){background:#fecaca}.admin-toggle-btn:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .admin-toggle-btn.grant{background:#052e16;color:#86efac;border-color:#166534}[data-theme=dark] .admin-toggle-btn.grant:hover:not(:disabled){background:#14532d}[data-theme=dark] .admin-toggle-btn.revoke{background:#450a0a;color:#fca5a5;border-color:#991b1b}[data-theme=dark] .admin-toggle-btn.revoke:hover:not(:disabled){background:#7f1d1d}@media(max-width:768px){.admin-page{padding:1rem}.admin-header{flex-direction:column;align-items:flex-start}.admin-header h1{order:-1;width:100%}}.admin-tabs{display:flex;gap:0;overflow-x:auto;margin-bottom:1.5rem;border-bottom:2px solid var(--border-color, #ddd)}.admin-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border:none;background:none;color:var(--text-secondary, #666);font-size:.875rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.admin-tab:hover{color:var(--text-primary, #333)}.admin-tab.active{color:var(--accent-color, #667eea);border-bottom-color:var(--accent-color, #667eea)}@media(max-width:600px){.admin-tabs{flex-wrap:wrap;overflow-x:visible}.admin-tab{flex:1 1 110px;justify-content:center;margin-bottom:0}}[data-theme=dark] .admin-tabs{border-color:var(--border-color, #404060)}[data-theme=dark] .admin-tab{color:var(--text-secondary, #aaa)}[data-theme=dark] .admin-tab:hover{color:var(--text-primary, #e0e0e0)}[data-theme=dark] .admin-tab.active{color:var(--accent-color, #667eea)}.worker-section{background:var(--bg-secondary, #fff);border:1px solid var(--border-color, #ddd);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}[data-theme=dark] .worker-section{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060)}.worker-section h2{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1.25rem;color:var(--text-primary, #333)}[data-theme=dark] .worker-section h2{color:var(--text-primary, #e0e0e0)}.queue-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1rem}.queue-card{border:1px solid var(--border-color, #ddd);border-radius:8px;padding:1rem;background:var(--bg-primary, #f9f9f9)}[data-theme=dark] .queue-card{background:var(--bg-primary, #1a1a2e);border-color:var(--border-color, #404060)}.queue-card.healthy{border-left:3px solid #16a34a}.queue-card.unhealthy{border-left:3px solid #dc2626}.queue-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.queue-name{font-weight:600;font-size:1rem;color:var(--text-primary, #333)}[data-theme=dark] .queue-name{color:var(--text-primary, #e0e0e0)}.health-dot{width:10px;height:10px;border-radius:50%}.health-dot.green{background:#16a34a;box-shadow:0 0 6px #16a34a66}.health-dot.red{background:#dc2626;box-shadow:0 0 6px #dc262666}.queue-card-body{display:flex;flex-direction:column;gap:.375rem}.queue-metric{display:flex;justify-content:space-between;font-size:.8125rem}.metric-label{color:var(--text-secondary, #888)}.metric-value{font-weight:500;color:var(--text-primary, #333)}[data-theme=dark] .metric-value{color:var(--text-primary, #e0e0e0)}.text-green{color:#16a34a!important}.text-red{color:#dc2626!important}.requeue-btn{display:flex;align-items:center;gap:.375rem;margin-top:.75rem;padding:.375rem .75rem;border:1px solid #fca5a5;border-radius:4px;background:#fee2e2;color:#991b1b;font-size:.75rem;cursor:pointer;width:100%;justify-content:center}.requeue-btn:hover:not(:disabled){background:#fecaca}.requeue-btn:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .requeue-btn{background:#450a0a;border-color:#991b1b;color:#fca5a5}.routing-info{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem;background:var(--bg-primary, #f9f9f9);border-radius:6px;font-size:.8125rem}[data-theme=dark] .routing-info{background:var(--bg-primary, #1a1a2e)}.routing-label{color:var(--text-secondary, #888)}.routing-value{font-weight:500;color:var(--text-primary, #333);margin-right:.75rem}.routing-value.highlight{color:var(--accent-color, #667eea)}[data-theme=dark] .routing-value{color:var(--text-primary, #e0e0e0)}.tasks-table-container{overflow-x:auto}.tasks-table{width:100%;border-collapse:collapse;font-size:.8125rem}.tasks-table th,.tasks-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border-color, #eee)}.tasks-table th{font-weight:600;color:var(--text-secondary, #666);background:var(--bg-primary, #f9f9f9)}[data-theme=dark] .tasks-table th{background:var(--bg-primary, #1a1a2e);color:var(--text-secondary, #aaa);border-color:var(--border-color, #404060)}[data-theme=dark] .tasks-table td{border-color:var(--border-color, #404060);color:var(--text-primary, #e0e0e0)}.task-id{font-family:monospace;font-size:.75rem}.empty-row{text-align:center;color:var(--text-secondary, #888);padding:2rem!important}.task-status-badge{display:inline-block;padding:.125rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.task-status-badge.completed{background:#dcfce7;color:#166534}.task-status-badge.processing{background:#dbeafe;color:#1e40af}.task-status-badge.queued{background:#fef3c7;color:#92400e}.task-status-badge.failed{background:#fee2e2;color:#991b1b}.task-status-badge.unknown{background:#f3f4f6;color:#6b7280}[data-theme=dark] .task-status-badge.completed{background:#052e16;color:#86efac}[data-theme=dark] .task-status-badge.processing{background:#1e3a5f;color:#93c5fd}[data-theme=dark] .task-status-badge.queued{background:#451a03;color:#fcd34d}[data-theme=dark] .task-status-badge.failed{background:#450a0a;color:#fca5a5}[data-theme=dark] .task-status-badge.unknown{background:#374151;color:#9ca3af}.queue-card-actions{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.health-toggle-btn{display:flex;align-items:center;gap:.325rem;padding:.3rem .625rem;border-radius:4px;border:1px solid;font-size:.7rem;cursor:pointer;flex:1;justify-content:center}.health-toggle-btn.danger{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.health-toggle-btn.danger:hover:not(:disabled){background:#fecaca}.health-toggle-btn.success{background:#dcfce7;border-color:#86efac;color:#166534}.health-toggle-btn.success:hover:not(:disabled){background:#bbf7d0}.health-toggle-btn:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .health-toggle-btn.danger{background:#450a0a;border-color:#991b1b;color:#fca5a5}[data-theme=dark] .health-toggle-btn.success{background:#052e16;border-color:#166534;color:#86efac}.routing-section{margin-top:.75rem}.pipeline-config-section{margin-top:1rem;padding:1rem;border:1px solid var(--border-color, #ddd);border-radius:10px;background:var(--bg-primary, #f9f9f9)}[data-theme=dark] .pipeline-config-section{background:var(--bg-primary, #1a1a2e);border-color:var(--border-color, #404060)}.pipeline-config-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.pipeline-config-title{font-size:.85rem;font-weight:600;color:var(--text-primary, #333)}.pipeline-config-path{font-size:.72rem;font-family:monospace;color:var(--text-secondary, #666);word-break:break-all}.pipeline-component-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem}.pipeline-component-list.compact{grid-template-columns:1fr}.pipeline-component-card{border:1px solid var(--border-color, #ddd);border-radius:8px;padding:.75rem;background:var(--bg-secondary, #fff)}[data-theme=dark] .pipeline-component-card{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060)}.pipeline-component-top{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.pipeline-step{font-size:.75rem;font-weight:600;color:var(--text-primary, #333)}.pipeline-class{font-size:.68rem;color:var(--text-secondary, #666)}.pipeline-artifact{font-size:.7rem;font-family:monospace;color:var(--text-secondary, #666);word-break:break-all;margin-bottom:.5rem}.pipeline-meta-row{display:flex;flex-wrap:wrap;gap:.35rem}.pipeline-chip{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:999px;background:#e0e7ff;color:#3730a3;font-size:.68rem;font-weight:500}[data-theme=dark] .pipeline-chip{background:#1e1b4b;color:#a5b4fc}.routing-edit-btn{background:none;border:1px solid var(--border-color, #ddd);border-radius:4px;padding:.25rem .4rem;cursor:pointer;color:var(--text-secondary, #666);display:inline-flex;align-items:center;margin-left:auto}.routing-edit-btn:hover{background:var(--bg-primary, #eee);color:var(--accent-color, #667eea)}.routing-editor{margin-top:.75rem;padding:1rem;border:1px solid var(--border-color, #ddd);border-radius:8px;background:var(--bg-primary, #f9f9f9)}[data-theme=dark] .routing-editor{background:var(--bg-primary, #1a1a2e);border-color:var(--border-color, #404060)}.routing-editor-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.625rem}.routing-editor-row label{font-size:.8rem;font-weight:500;min-width:140px;color:var(--text-secondary, #666)}.routing-editor-row select,.routing-editor-row input{flex:1;padding:.375rem .5rem;border:1px solid var(--border-color, #ccc);border-radius:4px;font-size:.8rem;background:var(--bg-secondary, #fff);color:var(--text-primary, #333)}[data-theme=dark] .routing-editor-row select,[data-theme=dark] .routing-editor-row input{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060);color:var(--text-primary, #e0e0e0)}.routing-editor-actions{display:flex;gap:.5rem;margin-top:.75rem}.routing-save-btn,.routing-reset-btn,.routing-cancel-btn{padding:.35rem .75rem;border-radius:4px;font-size:.75rem;cursor:pointer;display:flex;align-items:center;gap:.25rem}.routing-save-btn{background:var(--accent-color, #667eea);border:none;color:#fff}.routing-save-btn:hover{opacity:.9}.routing-reset-btn{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.routing-reset-btn:hover{background:#fecaca}.routing-cancel-btn{background:none;border:1px solid var(--border-color, #ccc);color:var(--text-secondary, #666)}.routing-cancel-btn:hover{background:var(--bg-primary, #eee)}[data-theme=dark] .routing-reset-btn{background:#450a0a;border-color:#991b1b;color:#fca5a5}[data-theme=dark] .routing-cancel-btn{border-color:var(--border-color, #404060);color:var(--text-secondary, #aaa)}.queue-badge{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.7rem;font-weight:500;background:#e0e7ff;color:#3730a3}[data-theme=dark] .queue-badge{background:#1e1b4b;color:#a5b4fc}.error-expand-btn{background:none;border:none;cursor:pointer;color:#dc2626;padding:0 .25rem;vertical-align:middle;margin-left:.25rem}.error-expand-btn:hover{color:#991b1b}.task-row-failed{background:#fef2f2}[data-theme=dark] .task-row-failed{background:#7f1d1d26}.error-row td{padding:.5rem .75rem!important;background:#fef2f2}[data-theme=dark] .error-row td{background:#7f1d1d1a}.task-error-detail{margin:0;padding:.5rem;border-radius:4px;background:#1e1e1e;color:#f87171;font-size:.7rem;font-family:monospace;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.task-actions{display:inline-flex;align-items:center;gap:.35rem}.task-detail-btn{background:none;border:1px solid var(--border-color, #ddd);border-radius:4px;padding:.2rem .35rem;cursor:pointer;color:var(--text-secondary, #666);display:inline-flex;align-items:center}.task-detail-btn:hover{color:var(--accent-color, #667eea);border-color:var(--accent-color, #667eea)}.task-detail-btn:disabled{opacity:.5;cursor:not-allowed}.task-detail-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.task-detail-modal{background:var(--bg-secondary, #fff);border-radius:12px;width:min(560px,90vw);max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #0003;border:1px solid var(--border-color, #ddd)}[data-theme=dark] .task-detail-modal{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060)}.task-detail-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color, #eee)}.task-detail-header h3{margin:0;font-size:1rem}.task-detail-close{background:none;border:none;cursor:pointer;color:var(--text-secondary, #666);padding:.25rem}.task-detail-close:hover{color:var(--text-primary, #333)}.task-detail-body{padding:1.25rem}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.5rem}.detail-grid-compact{margin-bottom:.75rem}.detail-item{display:flex;flex-direction:column;gap:.15rem}.detail-label{font-size:.7rem;font-weight:500;color:var(--text-secondary, #888);text-transform:uppercase;letter-spacing:.02em}.detail-value{font-size:.85rem;color:var(--text-primary, #333)}.detail-value.mono{font-family:monospace;font-size:.75rem;word-break:break-all}[data-theme=dark] .detail-value{color:var(--text-primary, #e0e0e0)}.detail-error-section,.detail-pipeline-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #eee)}.detail-pipeline-section h4{margin:0 0 .75rem;font-size:.85rem;color:var(--text-primary, #333);display:flex;align-items:center;gap:.3rem}.detail-error-section h4{margin:0 0 .5rem;font-size:.85rem;color:#dc2626;display:flex;align-items:center;gap:.3rem}.status-section{background:var(--bg-secondary, #fff);border:1px solid var(--border-color, #ddd);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}[data-theme=dark] .status-section{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060)}.status-section h2{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1.25rem;color:var(--text-primary, #333)}[data-theme=dark] .status-section h2{color:var(--text-primary, #e0e0e0)}.health-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem}.health-card{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem;border-radius:8px;border:1px solid var(--border-color, #ddd);background:var(--bg-primary, #f9f9f9)}[data-theme=dark] .health-card{background:var(--bg-primary, #1a1a2e);border-color:var(--border-color, #404060)}.health-card.healthy{border-left:3px solid #16a34a}.health-card.unhealthy{border-left:3px solid #dc2626}.health-card.not_configured{border-left:3px solid #9ca3af}.health-card-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;flex-shrink:0;background:#e0e7ff;color:#4338ca}[data-theme=dark] .health-card-icon{background:#312e81;color:#a5b4fc}.health-card-body{display:flex;flex-direction:column;gap:.125rem;min-width:0}.health-card-name{font-weight:600;font-size:.875rem;color:var(--text-primary, #333)}[data-theme=dark] .health-card-name{color:var(--text-primary, #e0e0e0)}.health-card-status{font-size:.75rem;font-weight:500}.health-card-status.healthy{color:#16a34a}.health-card-status.unhealthy{color:#dc2626}.health-card-status.not_configured{color:#9ca3af}.health-card-latency{font-size:.6875rem;color:var(--text-secondary, #888)}.health-card-error{font-size:.6875rem;color:#dc2626;word-break:break-all}.system-status-badge{display:inline-block;padding:.375rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:500}.system-status-badge.healthy{background:#dcfce7;color:#166534}.system-status-badge.degraded{background:#fef3c7;color:#92400e}[data-theme=dark] .system-status-badge.healthy{background:#052e16;color:#86efac}[data-theme=dark] .system-status-badge.degraded{background:#451a03;color:#fcd34d}.queue-overview-grid{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.queue-overview-item{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:6px;background:var(--bg-primary, #f9f9f9);font-size:.875rem}[data-theme=dark] .queue-overview-item{background:var(--bg-primary, #1a1a2e)}.health-dot-inline{width:8px;height:8px;border-radius:50%;flex-shrink:0}.health-dot-inline.green{background:#16a34a;box-shadow:0 0 4px #16a34a66}.health-dot-inline.red{background:#dc2626;box-shadow:0 0 4px #dc262666}.queue-overview-name{font-weight:600;color:var(--text-primary, #333);min-width:80px}[data-theme=dark] .queue-overview-name{color:var(--text-primary, #e0e0e0)}.queue-overview-depth{color:var(--text-secondary, #888);margin-left:auto;font-size:.8125rem}.queue-overview-status{font-size:.75rem;font-weight:500;color:#16a34a;min-width:60px;text-align:right}.queue-overview-status.down{color:#dc2626}.env-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem}.env-item{display:flex;flex-direction:column;gap:.125rem;padding:.5rem .75rem;border-radius:6px;background:var(--bg-primary, #f9f9f9)}[data-theme=dark] .env-item{background:var(--bg-primary, #1a1a2e)}.env-label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #888)}.env-value{font-size:.875rem;font-weight:500;color:var(--text-primary, #333);word-break:break-all}.env-value.mono{font-family:monospace;font-size:.8125rem}[data-theme=dark] .env-value{color:var(--text-primary, #e0e0e0)}.flag-grid{display:flex;flex-direction:column;gap:.25rem}.flag-row{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:4px;font-size:.8125rem}.flag-row:nth-child(odd){background:var(--bg-primary, #f9f9f9)}[data-theme=dark] .flag-row:nth-child(odd){background:var(--bg-primary, #1a1a2e)}.flag-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.flag-dot.on{background:#16a34a}.flag-dot.off{background:#dc2626}.flag-name{flex:1;color:var(--text-primary, #333);font-family:monospace;font-size:.75rem}[data-theme=dark] .flag-name{color:var(--text-primary, #e0e0e0)}.flag-value{font-weight:500;font-size:.75rem;min-width:36px;text-align:right}.flag-value.on{color:#16a34a}.flag-value.off{color:#dc2626}.redis-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1rem}.redis-metric-card{display:flex;flex-direction:column;gap:.125rem;padding:.875rem;border-radius:8px;background:var(--bg-primary, #f9f9f9);border:1px solid var(--border-color, #eee)}[data-theme=dark] .redis-metric-card{background:var(--bg-primary, #1a1a2e);border-color:var(--border-color, #404060)}.redis-metric-label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #888)}.redis-metric-value{font-size:1.25rem;font-weight:600;color:var(--text-primary, #333)}[data-theme=dark] .redis-metric-value{color:var(--text-primary, #e0e0e0)}.redis-metric-sub{font-size:.6875rem;color:var(--text-secondary, #888)}.redis-keys-breakdown{padding-top:.5rem;border-top:1px solid var(--border-color, #eee)}[data-theme=dark] .redis-keys-breakdown{border-color:var(--border-color, #404060)}.redis-keys-breakdown h3{font-size:.8125rem;font-weight:500;color:var(--text-secondary, #888);margin:0 0 .5rem}.redis-key-row{display:flex;justify-content:space-between;padding:.25rem .5rem;font-size:.8125rem}.redis-key-row:nth-child(odd){background:var(--bg-primary, #f9f9f9);border-radius:3px}[data-theme=dark] .redis-key-row:nth-child(odd){background:var(--bg-primary, #1a1a2e)}.redis-key-prefix{font-family:monospace;font-size:.75rem;color:var(--text-primary, #333)}[data-theme=dark] .redis-key-prefix{color:var(--text-primary, #e0e0e0)}.redis-key-count{font-weight:500;color:var(--text-secondary, #888)}.notification-breakdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:1rem}.notification-events-table-container{margin-top:1rem}.notification-cell-stack{display:flex;flex-direction:column;gap:.125rem}.notification-primary{color:var(--text-primary, #333);font-weight:500}[data-theme=dark] .notification-primary{color:var(--text-primary, #e0e0e0)}.notification-secondary{color:var(--text-secondary, #888);font-size:.75rem;word-break:break-word}.notification-request-id{font-family:monospace;font-size:.75rem;color:var(--text-secondary, #666)}.notification-state-badge{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.notification-state-badge.success{background:#dcfce7;color:#166534}.notification-state-badge.failure{background:#fee2e2;color:#991b1b}.notification-state-badge.pending{background:#fef3c7;color:#92400e}.notification-state-badge.unknown{background:#e5e7eb;color:#4b5563}[data-theme=dark] .notification-state-badge.success{background:#14532d;color:#86efac}[data-theme=dark] .notification-state-badge.failure{background:#450a0a;color:#fca5a5}[data-theme=dark] .notification-state-badge.pending{background:#451a03;color:#fcd34d}[data-theme=dark] .notification-state-badge.unknown{background:#1f2937;color:#d1d5db}.notification-prefix{word-break:break-all}.notification-metric-time{font-size:.9rem;line-height:1.35}.task-timestamp{font-size:.75rem;white-space:nowrap;color:var(--text-secondary, #888)}[data-theme=dark] .task-timestamp{color:var(--text-secondary, #aaa)}.sub-stats-bar{display:flex;align-items:center;gap:1.5rem;padding:1rem 1.5rem;background:var(--bg-secondary, #fff);border:1px solid var(--border-color, #ddd);border-radius:12px;margin-bottom:1rem;flex-wrap:wrap}.sub-mrr{display:flex;flex-direction:column}.sub-mrr-label{font-size:.75rem;color:var(--text-secondary)}.sub-mrr-value{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.sub-referral-stats{display:flex;flex-direction:column}.sub-status-pills{display:flex;gap:.5rem;flex-wrap:wrap}.sub-status-pill{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.sub-status-pill.active{background:#dcfce7;color:#16a34a}.sub-status-pill.trialing{background:#dbeafe;color:#2563eb}.sub-status-pill.free{background:#f3f4f6;color:#6b7280}.sub-status-pill.past_due{background:#fef3c7;color:#d97706}.sub-status-pill.canceled,.sub-status-pill.expired{background:#fee2e2;color:#dc2626}.sub-status-pill.gifted{background:#fae8ff;color:#a855f7}.sub-filters{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.sub-filters select,.sub-filters input{padding:.5rem .75rem;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-secondary, #fff);color:var(--text-primary);font-size:.875rem}.sub-filters input{flex:1;min-width:200px}.sub-list-section{background:var(--bg-secondary, #fff);border:1px solid var(--border-color, #ddd);border-radius:12px;padding:1rem;overflow-x:auto}.sub-table{width:100%;border-collapse:collapse;font-size:.875rem}.sub-table th,.sub-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color, #eee)}.sub-table th{font-weight:600;color:var(--text-secondary);background:var(--bg-primary)}.sub-pagination{padding:.75rem 1rem;font-size:.75rem;color:var(--text-secondary)}.sub-detail-modal{max-width:700px}.sub-actions{display:flex;gap:.5rem;margin:1rem 0;flex-wrap:wrap}.sub-events-list{max-height:300px;overflow-y:auto}.sub-event-row{display:flex;justify-content:space-between;padding:.375rem 0;border-bottom:1px solid var(--border-color, #eee);font-size:.8125rem}.sub-event-type{font-family:IBM Plex Mono,monospace;font-size:.75rem}.sub-event-time{color:var(--text-secondary);font-size:.75rem}.sub-referral-row{padding:.25rem 0;font-size:.8125rem}.stripe-mode-badge{display:inline-block;padding:.125rem .375rem;border-radius:3px;font-size:.625rem;font-weight:600;text-transform:uppercase}.stripe-mode-badge.live{background:#dcfce7;color:#16a34a}.stripe-mode-badge.test{background:#fef3c7;color:#d97706}[data-theme=dark] .sub-stats-bar{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060)}[data-theme=dark] .sub-status-pill.active{background:#14532d;color:#86efac}[data-theme=dark] .sub-status-pill.trialing{background:#1e3a5f;color:#93c5fd}[data-theme=dark] .sub-status-pill.free{background:#374151;color:#9ca3af}[data-theme=dark] .sub-status-pill.past_due{background:#451a03;color:#fcd34d}[data-theme=dark] .sub-status-pill.canceled,[data-theme=dark] .sub-status-pill.expired{background:#450a0a;color:#fca5a5}[data-theme=dark] .sub-status-pill.gifted{background:#4a1d7a;color:#d8b4fe}[data-theme=dark] .sub-filters select,[data-theme=dark] .sub-filters input{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060);color:var(--text-primary, #e0e0e0)}[data-theme=dark] .sub-list-section{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060)}[data-theme=dark] .sub-table th{background:var(--bg-primary, #1a1a2e);color:var(--text-secondary, #aaa)}[data-theme=dark] .sub-table td{border-color:var(--border-color, #404060);color:var(--text-primary)}[data-theme=dark] .stripe-mode-badge.live{background:#14532d;color:#86efac}[data-theme=dark] .stripe-mode-badge.test{background:#451a03;color:#fcd34d}.support-admin-panel{display:flex;flex-direction:column;gap:1.5rem}.support-admin-header-card,.support-admin-settings-card,.support-thread-list-card,.support-thread-detail-card{background:var(--bg-secondary, #fff);border:1px solid var(--border-color, #ddd);border-radius:12px;box-shadow:0 2px 4px #0f172a0d}[data-theme=dark] .support-admin-header-card,[data-theme=dark] .support-admin-settings-card,[data-theme=dark] .support-thread-list-card,[data-theme=dark] .support-thread-detail-card{background:var(--bg-secondary, #2d2d44);border-color:var(--border-color, #404060)}.support-admin-header-card{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem}.support-admin-header-card h2,.support-admin-settings-copy h3{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem;color:var(--text-primary, #111827)}.support-admin-header-card p,.support-admin-settings-copy p,.support-reply-hint,.support-thread-detail-subtitle,.support-thread-email,.support-thread-preview,.support-thread-list-footer,.support-empty-state{color:var(--text-secondary, #6b7280)}[data-theme=dark] .support-admin-header-card h2,[data-theme=dark] .support-admin-settings-copy h3{color:var(--text-primary, #e0e0e0)}.support-admin-count{padding:.5rem .75rem;border-radius:999px;background:#3b82f61f;color:#1d4ed8;font-size:.875rem;font-weight:600;white-space:nowrap}[data-theme=dark] .support-admin-count{background:#3b82f633;color:#93c5fd}.support-admin-settings-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;flex-wrap:wrap}.support-admin-settings-copy{min-width:260px;flex:1}.support-admin-checkbox-row{display:inline-flex;align-items:center;gap:.65rem;color:var(--text-primary, #111827);font-size:.95rem}[data-theme=dark] .support-admin-checkbox-row{color:var(--text-primary, #e0e0e0)}.support-admin-checkbox-row input{width:16px;height:16px}.support-admin-save-button,.support-reply-submit{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1rem;border:none;border-radius:10px;background:var(--accent, #667eea);color:#fff;font-weight:600;cursor:pointer}.support-admin-save-button:disabled,.support-reply-submit:disabled{opacity:.55;cursor:not-allowed}.support-admin-error{padding:.85rem 1rem;border-radius:10px;border:1px solid #fca5a5;background:#fee2e2;color:#b91c1c}[data-theme=dark] .support-admin-error{border-color:#7f1d1d;background:#7f1d1d59;color:#fecaca}.support-admin-layout{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:1.5rem}.support-thread-list-card,.support-thread-detail-card{min-height:640px}.support-thread-list-card{display:flex;flex-direction:column}.support-thread-list-toolbar{padding:1rem 1rem 0}.support-thread-list-toolbar label{display:flex;flex-direction:column;gap:.45rem;color:var(--text-primary, #111827);font-size:.875rem;font-weight:600}[data-theme=dark] .support-thread-list-toolbar label{color:var(--text-primary, #e0e0e0)}.support-thread-list-toolbar select{padding:.65rem .75rem;border-radius:10px;border:1px solid var(--border-color, #d1d5db);background:var(--bg-primary, #f9fafb);color:var(--text-primary, #111827)}.support-thread-list{display:flex;flex-direction:column;padding:1rem;gap:.75rem;overflow-y:auto}.support-thread-list-item{display:flex;flex-direction:column;gap:.45rem;padding:.95rem;border-radius:12px;border:1px solid var(--border-color, #e5e7eb);background:var(--bg-primary, #f9fafb);text-align:left;cursor:pointer}.support-thread-list-item.active{border-color:var(--accent, #667eea);box-shadow:0 0 0 1px var(--accent, #667eea)}[data-theme=dark] .support-thread-list-item{background:var(--bg-primary, #1a1a2e);border-color:var(--border-color, #404060)}.support-thread-list-topline,.support-thread-list-footer,.support-message-meta,.support-delivery-row,.support-thread-detail-title{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.support-thread-reference,.support-thread-user,.support-thread-detail-title,.support-message-author,.support-thread-detail-topic{color:var(--text-primary, #111827);font-weight:600}[data-theme=dark] .support-thread-reference,[data-theme=dark] .support-thread-user,[data-theme=dark] .support-thread-detail-title,[data-theme=dark] .support-message-author,[data-theme=dark] .support-thread-detail-topic{color:var(--text-primary, #e0e0e0)}.support-thread-status-pill,.support-delivery-state{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:capitalize}.support-thread-status-pill.open,.support-thread-status-pill.waiting_on_support,.support-delivery-state.sent{background:#dcfce7;color:#166534}.support-thread-status-pill.waiting_on_user{background:#dbeafe;color:#1d4ed8}.support-thread-status-pill.closed,.support-delivery-state.failed{background:#fee2e2;color:#b91c1c}[data-theme=dark] .support-thread-status-pill.open,[data-theme=dark] .support-thread-status-pill.waiting_on_support,[data-theme=dark] .support-delivery-state.sent{background:#14532d66;color:#bbf7d0}[data-theme=dark] .support-thread-status-pill.waiting_on_user{background:#1d4ed852;color:#bfdbfe}[data-theme=dark] .support-thread-status-pill.closed,[data-theme=dark] .support-delivery-state.failed{background:#7f1d1d66;color:#fecaca}.support-thread-detail-card{display:flex;flex-direction:column;padding:1.25rem}.support-thread-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e5e7eb)}[data-theme=dark] .support-thread-detail-header{border-color:var(--border-color, #404060)}.support-message-list{display:flex;flex-direction:column;gap:.9rem;padding:1rem 0;flex:1;overflow-y:auto}.support-message-card{display:flex;flex-direction:column;gap:.55rem;padding:.95rem;border-radius:12px;border:1px solid var(--border-color, #e5e7eb);background:var(--bg-primary, #f8fafc)}.support-message-card.admin{background:#3b82f614}[data-theme=dark] .support-message-card{background:var(--bg-primary, #1a1a2e);border-color:var(--border-color, #404060)}[data-theme=dark] .support-message-card.admin{background:#3b82f629}.support-message-body{white-space:pre-wrap;line-height:1.55;color:var(--text-primary, #111827)}[data-theme=dark] .support-message-body{color:var(--text-primary, #e0e0e0)}.support-message-deliveries{display:flex;flex-direction:column;gap:.35rem}.support-delivery-row{justify-content:flex-start;color:var(--text-secondary, #6b7280);font-size:.82rem}.support-delivery-recipient{overflow-wrap:anywhere}.support-reply-form{display:flex;flex-direction:column;gap:.85rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e7eb)}[data-theme=dark] .support-reply-form{border-color:var(--border-color, #404060)}.support-reply-form label{color:var(--text-primary, #111827);font-weight:600}[data-theme=dark] .support-reply-form label{color:var(--text-primary, #e0e0e0)}.support-reply-form textarea{width:100%;resize:vertical;min-height:120px;padding:.9rem 1rem;border-radius:12px;border:1px solid var(--border-color, #d1d5db);background:var(--bg-primary, #f9fafb);color:var(--text-primary, #111827);font:inherit}.support-reply-controls{display:flex;align-items:center;gap:1rem;justify-content:space-between;flex-wrap:wrap}.support-reply-checkbox{flex:1;min-width:260px}.support-detail-error{margin-top:.25rem}@media(max-width:1024px){.support-admin-layout{grid-template-columns:1fr}.support-thread-list-card,.support-thread-detail-card{min-height:0}}@media(max-width:640px){.support-admin-header-card,.support-admin-settings-card,.support-thread-detail-header,.support-reply-controls{flex-direction:column;align-items:flex-start}.support-admin-count,.support-admin-save-button,.support-reply-submit{width:100%}.support-reply-submit{justify-content:center}}.admin-artwork{color:var(--text-primary)}.admin-artwork-toolbar,.admin-artwork-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.admin-artwork-toolbar{margin-bottom:16px}.admin-artwork-toolbar h2,.admin-artwork-detail h3{margin:0 0 6px;font-size:1.25rem}.admin-artwork-toolbar p,.admin-artwork-detail-head p{margin:0 0 6px;color:var(--text-secondary)}.admin-artwork-toolbar small,.admin-artwork-detail-head small{color:var(--text-secondary)}.admin-artwork-toolbar-actions,.admin-artwork-detail-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-artwork button,.admin-artwork-import{border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);padding:8px 11px;font:inherit;cursor:pointer}.admin-artwork button:hover,.admin-artwork-import:hover{border-color:var(--accent)}.admin-artwork button:focus-visible,.admin-artwork-import:focus-within,.admin-artwork input:focus-visible,.admin-artwork select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.admin-artwork button:disabled{opacity:.55;cursor:not-allowed}.admin-artwork-import input{position:absolute;width:1px;height:1px;opacity:0}.admin-artwork-message,.admin-artwork-import-preview{padding:12px;margin:0 0 14px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary)}.admin-artwork-message.error{border-color:#b75454}.admin-artwork-import-preview p{margin:6px 0}.admin-artwork-import-preview ul{margin:6px 0 12px;padding-left:20px}.admin-artwork-replace{display:inline-flex;align-items:center;gap:6px;font-size:.82rem}.admin-artwork-import-preview button+button{margin-left:8px}.admin-artwork-loading{padding:20px;color:var(--text-secondary)}.admin-artwork-layout{display:grid;grid-template-columns:minmax(210px,260px) minmax(0,1fr);gap:16px}.admin-artwork-list,.admin-artwork-detail{border:1px solid var(--border-color);border-radius:10px;background:var(--bg-secondary);overflow:hidden}.admin-artwork-list{align-self:start;padding:5px}.admin-artwork-group{padding-top:8px;margin-top:5px;border-top:1px solid var(--border-color)}.admin-artwork-group h3{margin:3px 10px 6px;color:var(--text-secondary);font-size:.72rem;font-weight:600}.admin-artwork .admin-artwork-row{display:block;width:100%;text-align:left;padding:10px;border:0;border-radius:6px;background:transparent}.admin-artwork .admin-artwork-row.selected{background:var(--bg-hover);box-shadow:inset 3px 0 var(--accent)}.admin-artwork-row-name,.admin-artwork-row-meta{display:block}.admin-artwork-row-name{font-weight:600}.admin-artwork-row-meta{margin-top:3px;font-size:.76rem;color:var(--text-secondary);overflow-wrap:anywhere}.admin-artwork-detail{padding:18px}.admin-artwork-detail-head{padding-bottom:14px;border-bottom:1px solid var(--border-color)}.admin-artwork-route-previews{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-color);font-size:.8rem}.admin-artwork-route-previews span{color:var(--text-secondary)}.admin-artwork-route-previews a{color:var(--accent);text-decoration:underline}.admin-artwork-route-previews a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.admin-artwork-original{color:var(--text-secondary)}.admin-artwork-draft-fields{display:grid;gap:10px;grid-template-columns:minmax(0,220px) minmax(0,1fr);margin:16px 0}.admin-artwork-draft-fields label{display:grid;gap:4px;font-size:.82rem}.admin-artwork-draft-fields input,.admin-artwork-asset select{width:100%;min-width:0;padding:7px 8px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px}.admin-artwork-slots{margin-top:12px}.admin-artwork-slot{display:grid;grid-template-columns:minmax(120px,170px) repeat(2,minmax(0,1fr));gap:12px;padding:10px 0;border-bottom:1px solid var(--border-color)}.admin-artwork-slot:last-child{border-bottom:0}.admin-artwork-slot-label strong,.admin-artwork-slot-label small{display:block}.admin-artwork-slot-label small{color:var(--text-secondary);font-size:.72rem;margin-top:3px}.admin-artwork-asset{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:4px 8px;align-items:center;min-width:0;font-size:.75rem;color:var(--text-secondary)}.admin-artwork-asset>span:first-child{grid-column:1 / -1;text-transform:capitalize}.admin-artwork-asset-id{color:var(--text-primary);overflow-wrap:anywhere}.admin-artwork-crop{display:block;width:72px;height:40px;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-primary);background-size:cover;background-position:center}@media(max-width:900px){.admin-artwork-layout{grid-template-columns:1fr}.admin-artwork-list{display:block}.admin-artwork-group{display:flex;flex-wrap:wrap}.admin-artwork-group h3{flex:1 0 100%}.admin-artwork .admin-artwork-row{width:auto;max-width:240px}.admin-artwork-toolbar,.admin-artwork-detail-head{flex-direction:column}}@media(max-width:600px){.admin-artwork-draft-fields,.admin-artwork-slot{grid-template-columns:1fr}.admin-artwork-asset{grid-template-columns:minmax(0,1fr) 72px}}.signup-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;background-color:#f9fafb}:root[data-theme=dark] .signup-page{background-color:var(--bg-primary)}.signup-card{width:100%;max-width:400px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:40px 40px 32px;box-shadow:0 4px 24px #0000000f;display:flex;flex-direction:column}:root[data-theme=dark] .signup-card{background:var(--bg-secondary);border-color:var(--border-color)}.signup-logo{font-family:var(--font-display, "IBM Plex Sans Condensed", sans-serif);font-size:17px;font-weight:700;color:var(--accent, #1d4ed8);text-decoration:none;margin-bottom:28px;display:block}.signup-error{margin:0;padding:10px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:7px;font-size:13px;color:#dc2626;line-height:1.5}.signup-trial-disclosure{margin:0 0 24px;font-size:13px;line-height:1.6;color:var(--text-secondary)}.signup-trial-dialog{margin:auto;max-width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto}.signup-trial-dialog::backdrop{background:#00000073}.signup-trial-dialog:not([open]){display:none}.signup-trial-dialog .landing-btn-primary{margin-top:20px;min-height:44px}@media(max-width:540px){.signup-trial-dialog{padding:28px 24px}}:root[data-theme=dark] .signup-error{background:#dc26261a;border-color:#dc26264d;color:#f87171}.signup-footer-link{margin:20px 0 0;text-align:center;font-size:13px;color:var(--text-tertiary, #9ca3af)}.signup-footer-link a{color:var(--accent, #1d4ed8);text-decoration:none}.signup-footer-link a:hover{text-decoration:underline}.signup-success-icon{width:56px;height:56px;background:#eff6ff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent, #1d4ed8);margin:0 auto 20px}:root[data-theme=dark] .signup-success-icon{background:#1d4ed826}.signup-success-title{font-size:22px;font-weight:700;margin:0 0 10px;color:var(--text-primary, #111827);text-align:center}.signup-success-sub{font-size:14px;color:var(--text-secondary, #6b7280);text-align:center;line-height:1.6;margin:0 0 8px}.signup-success-hint{font-size:13px;color:var(--text-tertiary, #9ca3af);text-align:center;margin:0 0 24px}.signup-resend-btn{width:100%;padding:10px 16px;font-size:14px;font-weight:500;font-family:inherit;background:none;border:1.5px solid #e5e7eb;border-radius:8px;color:var(--text-secondary, #6b7280);cursor:pointer;transition:border-color .15s,color .15s}.signup-resend-btn:hover:not(:disabled){border-color:var(--accent, #1d4ed8);color:var(--accent, #1d4ed8)}.signup-resend-btn:disabled{opacity:.6;cursor:default}.verify-spinner{width:36px;height:36px;border:3px solid #e5e7eb;border-top-color:var(--accent, #1d4ed8);border-radius:50%;animation:verify-spin .7s linear infinite}@keyframes verify-spin{to{transform:rotate(360deg)}}.upload-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.upload-modal{background:var(--bg-primary);border-radius:12px;box-shadow:var(--shadow-lg);width:100%;max-width:480px;margin:16px;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.upload-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.upload-modal-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--text-primary)}.upload-modal-close{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background-color .15s,color .15s}.upload-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.upload-modal-content{padding:20px}.upload-file-info{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border-radius:8px;margin-bottom:16px}.upload-file-name{font-size:14px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.upload-task-id{font-size:12px;color:var(--text-tertiary);font-family:monospace}.upload-status{display:flex;align-items:center;gap:12px;padding:16px;border-radius:8px;margin-bottom:16px}.upload-status.queued,.upload-status.processing{background:var(--accent-light)}.upload-status.completed{background:#10b9811a}.upload-status.failed,.upload-status.error{background:#ef44441a}.status-icon{flex-shrink:0}.status-icon.spinning{color:var(--accent);animation:spin 1s linear infinite}.status-icon.success{color:#10b981}.status-icon.error{color:#ef4444}.upload-status-text{font-size:14px;color:var(--text-primary);flex:1}.upload-progress-container{display:flex;align-items:center;gap:12px;margin-bottom:12px}.upload-progress-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.upload-progress-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .3s ease-out}.upload-progress-percent{font-size:12px;font-weight:600;color:var(--text-secondary);min-width:36px;text-align:right}.upload-step-info{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);margin-bottom:8px}.upload-step-label{color:var(--text-tertiary)}.upload-step-name{font-family:monospace;background:var(--bg-secondary);padding:2px 8px;border-radius:4px}.upload-results{margin-top:16px;padding:16px;background:var(--bg-secondary);border-radius:8px}.upload-results-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.upload-results-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.upload-result-item{text-align:center}.upload-result-value{display:block;font-size:24px;font-weight:600;color:var(--accent)}.upload-result-label{font-size:12px;color:var(--text-tertiary)}.upload-naming{margin-top:20px}.upload-naming-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.upload-naming-input-wrapper{display:flex;gap:8px;align-items:stretch}.upload-naming-input-wrapper .upload-naming-input{flex:1}.upload-naming-input{width:100%;padding:12px 16px;font-size:14px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.upload-naming-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.upload-naming-input::placeholder{color:var(--text-tertiary)}.upload-naming-error{margin:8px 0 0;font-size:13px;color:var(--danger, #dc3545)}.upload-naming-refresh-btn{display:flex;align-items:center;justify-content:center;width:44px;padding:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .15s}.upload-naming-refresh-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent)}.upload-naming-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.upload-naming-refresh-btn .spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upload-error-details{margin-top:12px;padding:12px;background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:8px}.upload-error-details pre{font-size:12px;color:#ef4444;margin:0;white-space:pre-wrap;word-break:break-word;font-family:monospace}.upload-modal-footer{padding:16px 20px;border-top:1px solid var(--border-color)}.upload-footer-hint{font-size:12px;color:var(--text-tertiary);margin:0 0 12px;text-align:center}.upload-modal-actions{display:flex;justify-content:flex-end;gap:12px}.upload-btn{padding:10px 20px;font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;transition:all .15s;border:none}.upload-btn:disabled{opacity:.6;cursor:not-allowed}.upload-btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.upload-btn-secondary:hover:not(:disabled){background:var(--bg-tertiary)}.upload-btn-primary{background:var(--accent);color:#fff}.upload-btn-primary:hover:not(:disabled){background:var(--accent-hover)}.add-floorplan-options{display:flex;flex-direction:column;gap:12px}.add-floorplan-option{display:flex;align-items:flex-start;gap:16px;padding:20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;transition:all .15s;text-align:left}.add-floorplan-option:hover{background:var(--bg-tertiary);border-color:var(--accent)}.add-floorplan-option .option-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--accent-light);border-radius:10px;color:var(--accent)}.add-floorplan-option .option-text{flex:1;min-width:0}.add-floorplan-option .option-title{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.add-floorplan-option .option-description{font-size:13px;color:var(--text-secondary);line-height:1.4}.blank-floorplan-form{padding:8px 0}.upload-modal-wide{max-width:720px}.pdf-loading,.pdf-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--text-secondary)}.pdf-error{color:#ef4444}.pdf-loading .spinning{animation:spin 1s linear infinite}.pdf-info{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border-radius:8px;margin-bottom:12px}.pdf-filename{font-size:14px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-page-count{font-size:13px;color:var(--text-secondary)}.pdf-hint{font-size:13px;color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.pdf-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;max-height:400px;overflow-y:auto;padding:4px}.pdf-page-card{border:2px solid var(--border-color);border-radius:8px;overflow:hidden;cursor:pointer;transition:all .15s;background:var(--bg-secondary)}.pdf-page-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.pdf-page-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.pdf-page-thumbnail{position:relative;aspect-ratio:3 / 4;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}.pdf-page-thumbnail img{width:100%;height:100%;object-fit:contain}.pdf-page-placeholder{color:var(--text-tertiary)}.pdf-page-selected-overlay{position:absolute;inset:0;background:#6366f133;display:flex;align-items:center;justify-content:center;color:var(--accent)}.pdf-page-info{padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.pdf-page-number{font-size:12px;font-weight:500;color:var(--text-primary)}.pdf-page-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.3px}.pdf-page-badge.floorplan{background:#10b98126;color:#10b981}.upload-scale-status{margin-top:16px;padding:14px 16px;border-radius:8px;border:1px solid var(--border-color)}.upload-scale-ocr{background:#10b9810d;border-color:#10b98133}.upload-scale-estimate{background:#f59e0b0d;border-color:#f59e0b33}.upload-scale-unknown{background:#ef44440d;border-color:#ef444433}.upload-scale-default{background:var(--bg-secondary)}.scale-status-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.scale-status-icon{flex-shrink:0}.scale-status-icon.success{color:#10b981}.scale-status-icon.warning{color:#f59e0b}.scale-status-title{font-size:13px;font-weight:600;color:var(--text-primary)}.scale-status-value{font-size:15px;font-weight:500;color:var(--text-primary);font-family:monospace;margin-bottom:8px;display:flex;align-items:baseline;gap:8px}.scale-confidence{font-size:12px;font-weight:400;color:var(--text-tertiary);font-family:inherit}.scale-status-description{font-size:12px;color:var(--text-secondary);margin:0;line-height:1.5}.cheat-sheet-modal{max-width:480px}.cheat-sheet-category{margin-bottom:18px}.cheat-sheet-category:last-child{margin-bottom:0}.cheat-sheet-category-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary, #9ca3af);margin-bottom:8px}.cheat-sheet-shortcut-list{display:flex;flex-direction:column;gap:6px}.cheat-sheet-shortcut-row{display:flex;align-items:center;justify-content:space-between;font-size:14px}.cheat-sheet-shortcut-label{color:var(--text-primary, #111827)}.cheat-sheet-shortcut-keys{display:flex;gap:4px}.cheat-sheet-shortcut-keys kbd{display:inline-block;min-width:20px;text-align:center;padding:2px 6px;font-family:var(--font-mono, monospace);font-size:12px;border:1px solid var(--border-color, #e5e7eb);border-bottom-width:2px;border-radius:4px;background:var(--bg-secondary, #f8f9fa);color:var(--text-primary, #111827)}.material-assignment-field{margin:12px 0;min-width:0}.property-disclosure{margin-top:16px;border-top:1px solid var(--border-color)}.property-disclosure>summary{min-height:44px;padding:10px 0;cursor:pointer;font-size:12px}.property-disclosure>summary small{display:block;margin:4px 0 0 14px;color:var(--text-secondary)}.property-disclosure-body{padding-top:8px}.property-subheading,.wall-material-properties h4{font-size:13px;font-weight:600;margin:10px 0}.property-side-switch{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border-color);border-radius:6px;margin:12px 0;overflow:hidden}.property-side-switch button{border:0;padding:8px;min-height:44px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;font:inherit;font-size:12px}.property-side-switch button+button{border-left:1px solid var(--border-color)}.property-side-switch button[aria-pressed=true]{background:var(--accent-light);color:var(--accent)}.area-material-name{display:block;color:var(--text-secondary);font-size:11px}.material-field-label{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:6px}.material-field-label small{color:var(--text-secondary)}.material-field-controls{display:flex;gap:4px}.material-field-trigger{display:flex;align-items:center;gap:8px;min-width:0;width:100%;min-height:44px;padding:8px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);text-align:left;font:inherit}.material-field-trigger>span:not(.material-data-swatch){flex:1;overflow-wrap:anywhere}.material-data-swatch{width:12px;height:12px;border-radius:3px;border:1px solid var(--border-color);flex-shrink:0;display:inline-block}.material-manage-button,.material-icon-button{border:0;background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;cursor:pointer}.material-picker-dialog{width:420px;max-width:calc(100% - 16px);margin:auto;padding:0;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-primary);color:var(--text-primary);box-shadow:0 4px 8px #0001,0 16px 48px #0003;font:14px/1.45 var(--font-ui)}.material-picker-dialog[open]{display:flex;flex-direction:column}.material-picker-dialog::backdrop{background:#0004}.material-picker-dialog header{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border-color);flex-shrink:0;gap:8px}.material-picker-dialog h2{font:600 20px var(--font-display);flex:1;margin:0}.material-picker-dialog [hidden]{display:none}.material-target-context{padding:12px 16px;background:var(--bg-secondary);flex-shrink:0}.material-target-context strong,.material-target-context span{display:block}.material-target-context span{font-size:12px;color:var(--text-secondary);margin-top:4px}.material-dialog-body{padding:16px;min-height:0;overflow-y:auto}.material-picker-dialog>form{display:flex;flex-direction:column;min-height:0}.material-picker-dialog footer{display:flex;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid var(--border-color);flex-shrink:0}.material-picker-dialog footer>span{font-size:12px;color:var(--text-secondary)}.material-primary,.material-secondary{padding:10px 14px;min-height:44px;border-radius:6px;font:inherit;border:1px solid var(--border-color);cursor:pointer}.material-primary{background:var(--accent);color:var(--bg-primary);border-color:var(--accent);margin-left:auto}.material-secondary{background:var(--bg-primary);color:var(--text-primary)}.material-primary:disabled{opacity:.4;cursor:default}.material-choice{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:10px 8px;min-height:44px;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;cursor:pointer}.material-choice>span:not(.material-data-swatch){flex:1}.material-choice:hover,.material-choice[aria-pressed=true]{background:var(--bg-hover)}.material-create-choice,.material-secondary-action{color:var(--accent)}.material-secondary-action{background:transparent;border:0;font:inherit;min-height:44px;cursor:pointer}.material-form-field{display:flex;flex-direction:column;gap:6px;font-size:13px;margin:16px 0}.material-form-field input:not([type=color]),.material-form-field select{width:100%;min-height:44px;border:1px solid var(--border-color);padding:8px 10px;color:var(--text-primary);background:var(--bg-primary);border-radius:6px;font:inherit}.material-profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.material-picker-dialog input[type=color]{width:44px;height:44px}.material-picker-dialog summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:13px}.material-picker-dialog p{font-size:13px;margin:12px 0}.material-picker-dialog .material-form-error{color:var(--error, #b91c1c);margin:12px 16px}.material-catalog-row{display:flex;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border-color)}.material-catalog-row>span{flex:1;min-width:0;overflow-wrap:anywhere}.material-catalog-row strong,.material-catalog-row small{display:block}.material-catalog-row small{color:var(--text-secondary);font-size:11px}.material-catalog-row button{border:0;background:transparent;color:var(--accent);min-height:44px;cursor:pointer}.material-assignment-field.is-compact{margin:4px 0 0}.material-assignment-field.is-compact .material-field-controls{display:inline-flex;max-width:calc(100% - 16px);vertical-align:top}.material-assignment-field.is-compact .material-field-trigger{width:auto;max-width:100%;gap:4px;padding:3px 6px;border-radius:4px;font-size:11px;min-height:24px;color:var(--text-secondary);background:var(--bg-primary);cursor:pointer;transition:border-color .15s,color .15s,background-color .15s}.material-assignment-field.is-compact .material-field-trigger>span:not(.material-data-swatch){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-assignment-field.is-compact .material-field-trigger .material-data-swatch{width:8px;height:8px;border-radius:2px}.material-assignment-field.is-compact .material-field-trigger svg{flex-shrink:0}.material-assignment-field.is-compact .material-field-trigger:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary);background:var(--bg-hover)}.material-assignment-field.is-compact .material-field-trigger:disabled{cursor:not-allowed;opacity:.55}.material-field-trigger:focus-visible,.material-picker-dialog :is(button,input,select,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:999px){.material-picker-dialog{width:calc(100% - 16px)}.material-form-field input:not([type=color]),.material-form-field select{font-size:16px}.material-manage-button{min-width:44px}.material-assignment-field.is-compact .material-field-trigger{min-height:44px}}.ruler{background-color:var(--bg-secondary);flex-shrink:0}.ruler-horizontal{position:absolute;top:0;left:24px;height:24px;z-index:5}.ruler-vertical{position:absolute;top:24px;left:0;width:24px;z-index:5}.ruler-horizontal.ruler-compact{left:12px}.ruler-vertical.ruler-compact{top:12px}.ruler-corner.ruler-corner-compact{width:12px;height:12px}.ruler-corner.ruler-corner-compact .unit-toggle{font-size:7px;padding:0}.ruler-corner{position:absolute;top:0;left:0;width:24px;height:24px;background-color:var(--bg-secondary);border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);z-index:6;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.ruler-corner:hover{background-color:var(--accent-light)}.ruler-corner:active{transform:scale(.95)}.ruler-corner-icon{font-size:10px;color:var(--text-tertiary);font-weight:600}.unit-toggle{font-size:10px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.3px;padding:2px 4px;border-radius:3px;background-color:transparent;border:1.5px solid var(--accent);transition:all .2s ease}.ruler-corner:hover .unit-toggle{background-color:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.shortcut-tooltip-wrapper{position:relative;display:inline-flex}.shortcut-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:2px;padding:6px 10px;background-color:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .12));white-space:nowrap;pointer-events:none;z-index:100}.shortcut-tooltip-row{display:flex;align-items:center;gap:8px}.shortcut-tooltip-label{font-size:13px;color:var(--text-primary, #111827)}.shortcut-tooltip-sub{font-size:11px;color:var(--text-tertiary, #9ca3af)}.shortcut-tooltip-keys{display:flex;gap:4px}.shortcut-tooltip-keys kbd{display:inline-block;min-width:20px;text-align:center;padding:2px 6px;font-family:var(--font-mono, monospace);font-size:12px;border:1px solid var(--border-color, #e5e7eb);border-bottom-width:2px;border-radius:4px;background:var(--bg-secondary, #f8f9fa);color:var(--text-primary, #111827)}.area-summary-panel{position:relative;flex-shrink:0;display:flex;transition:width .25s ease,min-width .25s ease}.area-summary-panel.read-only .area-summary-inner{background:#f3f4f6b8;backdrop-filter:blur(12px) saturate(125%);-webkit-backdrop-filter:blur(12px) saturate(125%)}[data-theme=dark] .area-summary-panel.read-only .area-summary-inner{background:#1f2937ad}.area-summary-toggle-tab{position:absolute;top:6px;left:-28px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-right:none;border-radius:6px 0 0 6px;color:var(--text-secondary);cursor:pointer;transition:color .15s,background-color .15s;z-index:5;padding:0}.area-summary-toggle-tab:hover{background-color:var(--bg-hover);color:var(--text-primary)}.area-summary-panel.read-only .area-summary-toggle-tab,.area-summary-panel.read-only .area-summary-close-btn,.area-summary-panel.read-only .area-summary-autocenter-btn,.area-summary-panel.read-only .area-summary-delete-area,.area-summary-panel.read-only .area-summary-delete-group,.area-summary-panel.read-only .area-summary-group-btn,.area-summary-panel.read-only .area-summary-collapse-btn{opacity:.55;cursor:not-allowed}.area-summary-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:color .15s,background-color .15s;flex-shrink:0}.area-summary-close-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.area-summary-inner{width:100%;min-width:0;background-color:var(--bg-secondary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;font-size:13px;transition:opacity .2s ease}.area-summary-panel.collapsed{width:0!important;min-width:0!important}.area-summary-panel.collapsed .area-summary-inner{opacity:0;pointer-events:none}.area-summary-header{display:flex;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border-color);flex-shrink:0;gap:8px}.area-summary-header-actions{display:flex;align-items:center;gap:4px}.area-summary-title{font-size:14px;font-weight:600;color:var(--text-primary);flex:1;min-width:0}.area-summary-print-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.area-summary-print-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.area-summary-autocenter-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;transition:all .15s}.area-summary-autocenter-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.area-summary-autocenter-btn.active{color:var(--accent, #6366f1)}.area-summary-table-wrap{flex:1;overflow-y:auto;overflow-x:hidden}.area-summary-table{width:100%;border-collapse:collapse;table-layout:fixed;user-select:none;-webkit-user-select:none}.area-summary-table th,.area-summary-table td{padding:6px 8px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.area-summary-table thead th{position:sticky;top:0;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;z-index:2}.col-handle{width:24px;padding:6px 2px;text-align:center}.col-name{word-break:break-word;overflow-wrap:break-word;white-space:normal;overflow:visible;text-overflow:clip}.col-size{width:96px;min-width:96px;text-align:right;padding-right:8px;white-space:nowrap}td.col-size{position:relative}.area-size-value{display:inline}.area-summary-delete-area{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:3px;margin-left:6px;border-radius:4px;transition:color .15s,background-color .15s;vertical-align:middle}.area-summary-delete-area:hover{color:var(--error, #ef4444);background-color:#ef44441a}.area-summary-drag-handle{display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary);cursor:grab;border-radius:3px;padding:2px;transition:color .15s}.area-summary-drag-handle:hover{color:var(--text-secondary)}.area-summary-drag-handle:active{cursor:grabbing}.area-summary-table tbody tr{border-bottom:1px solid var(--border-color-subtle, var(--border-color));transition:background-color .1s}.area-summary-table tbody tr:hover{background-color:var(--bg-hover)}.area-summary-table td.selected{background-color:#6366f11a}.area-summary-table tbody tr:hover td.selected{background-color:#6366f129}.col-name.grouped-child{padding-left:24px}.area-summary-group-header{background-color:var(--bg-tertiary, var(--bg-secondary))}.area-summary-group-header td{font-weight:600;color:var(--text-primary)}.area-summary-group-header .col-name{overflow:hidden;text-overflow:ellipsis}.area-summary-group-header .col-name>*{display:inline;vertical-align:middle}.area-summary-group-header .col-name>.material-assignment-field{display:block}.area-summary-group-label{flex-shrink:0;margin-right:4px;font-size:10px;font-weight:700;letter-spacing:.3px;opacity:.6}.area-summary-group-header .area-summary-name-text{display:inline;max-width:none}.area-summary-group-header .area-summary-name-input{display:inline-block;width:auto;min-width:60px;max-width:calc(100% - 50px)}.area-summary-group-size{position:relative;text-align:right;padding-right:8px}.area-summary-collapse-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:2px;border-radius:3px}.area-summary-collapse-btn:hover{color:var(--text-primary);background-color:var(--bg-hover)}.area-summary-delete-group{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;border-radius:3px;opacity:0;transition:opacity .15s,color .15s}.area-summary-group-header:hover .area-summary-delete-group{opacity:1}.area-summary-delete-group:hover{color:var(--error, #ef4444)}.area-summary-name-text{cursor:default;display:inline-block;max-width:100%;white-space:normal;word-break:break-word;overflow-wrap:break-word}.area-summary-unnamed{color:var(--text-tertiary);font-style:italic}.area-summary-name-input{width:100%;padding:2px 4px;font-size:13px;font-family:inherit;background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--accent);border-radius:3px;outline:none;box-sizing:border-box;user-select:text;-webkit-user-select:text}.area-summary-total-row{border-top:2px solid var(--border-color);background-color:var(--bg-tertiary, var(--bg-secondary))}.area-summary-total-row td{padding:10px 8px}.area-summary-total-row .col-size{text-align:right;padding-right:12px}.area-summary-actions{padding:10px 16px;border-top:1px solid var(--border-color);display:flex;justify-content:center;gap:8px;flex-shrink:0;flex-wrap:wrap}.area-summary-group-btn{padding:6px 16px;font-size:13px;font-weight:500;color:#fff;background-color:var(--accent, #6366f1);border:none;border-radius:6px;cursor:pointer;transition:background-color .15s}.area-summary-group-btn:hover{background-color:var(--accent-hover, #4f46e5)}.area-summary-group-btn:disabled,.area-summary-delete-area:disabled,.area-summary-delete-group:disabled,.area-summary-collapse-btn:disabled,.area-summary-autocenter-btn:disabled,.area-summary-close-btn:disabled,.area-summary-toggle-tab:disabled{opacity:.5;cursor:not-allowed}.area-summary-resize-handle{position:absolute;top:0;left:-4px;width:8px;height:100%;cursor:col-resize;z-index:6;display:flex;align-items:center;justify-content:center}.area-summary-resize-handle:before{content:"";position:absolute;left:3px;top:0;width:2px;height:100%;background-color:transparent;transition:background-color .15s}.area-summary-resize-handle:hover:before,.area-summary-resize-handle.dragging:before{background-color:var(--accent, #6366f1)}.area-summary-resize-knob{position:relative;z-index:1;width:4px;height:32px;border-radius:2px;background-color:var(--text-tertiary);opacity:0;transition:opacity .15s}.area-summary-resize-handle:hover .area-summary-resize-knob,.area-summary-resize-handle.dragging .area-summary-resize-knob{opacity:.6}.topbar-summary-toggle{display:flex;align-items:center;justify-content:center;gap:4px;height:32px;padding:0 8px;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;margin-left:6px;transition:all .15s;position:relative}.topbar-summary-label{font-size:11px;font-weight:500;letter-spacing:0;line-height:1}.topbar-summary-toggle:hover{background-color:var(--bg-hover);color:var(--text-primary)}.topbar-summary-toggle.active{color:var(--accent, #6366f1)}.topbar-summary-toggle.active:after{content:"";position:absolute;bottom:-2px;left:6px;right:6px;height:2px;background-color:var(--accent, #6366f1);border-radius:1px}.board-materials-panel{width:320px;min-width:320px;--color-text-secondary: var(--text-secondary);--color-border: var(--border-color);--color-bg-hover: var(--bg-hover);--material-selection-bg: color-mix(in srgb, var(--accent-color, #667eea) 14%, transparent)}.board-materials-panel .area-summary-header{display:grid;grid-template-columns:minmax(0,1fr) auto}.board-materials-panel .area-summary-header-actions{grid-column:1 / -1}.board-materials-catalog-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:32px;padding:6px 8px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--border-color));border-radius:6px;background:var(--accent-light);color:var(--accent);font-family:inherit;font-size:12px;font-weight:600;text-align:left;cursor:pointer;transition:background-color .15s,border-color .15s}.board-materials-catalog-btn svg{flex-shrink:0}.board-materials-catalog-btn:hover{background:color-mix(in srgb,var(--accent) 10%,var(--accent-light));border-color:var(--accent)}.board-materials-catalog-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:767px),(pointer:coarse){.board-materials-catalog-btn{min-height:44px}}.board-materials-body{padding:8px 10px;overflow-y:auto;font-size:12px}.board-materials-empty{color:var(--color-text-secondary, #888);font-size:12px;padding:8px 2px}.board-materials-empty p{margin:0 0 6px}.board-materials-section-title{font-weight:600;font-size:12px;margin:4px 0 6px}.board-materials-group{margin-bottom:10px}.board-materials-group-header{display:flex;justify-content:space-between;align-items:baseline;font-weight:500;font-size:12px;padding:3px 2px;border-bottom:1px solid var(--color-border, #e0e0e0);margin-bottom:2px}.board-materials-subtotal{color:var(--color-text-secondary, #777);font-size:11px}.board-materials-row{display:flex;align-items:baseline;gap:6px;width:100%;padding:6px 2px;border:none;background:transparent;cursor:pointer;text-align:left;color:inherit;font-size:12px;border-radius:4px}.board-materials-row:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.board-materials-row.selected{background:var(--material-selection-bg)}.board-materials-row.selected:hover{background:color-mix(in srgb,var(--accent-color, #667eea) 20%,transparent)}.board-materials-row.selected .board-materials-row-label{font-weight:600}.board-materials-row-label{font-family:ui-monospace,monospace;font-size:11px;white-space:nowrap}.board-materials-row-code{flex:1;color:var(--color-text-secondary, #999);font-family:ui-monospace,monospace;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-materials-row-length{white-space:nowrap;font-variant-numeric:tabular-nums}.board-materials-totals{margin-top:12px;padding-top:8px;border-top:1px solid var(--color-border, #e0e0e0)}.board-materials-total-row{display:flex;align-items:baseline;gap:6px;padding:3px 2px;font-size:12px}.board-materials-total-row .board-materials-row-label{font-family:inherit;font-size:12px;overflow:hidden;text-overflow:ellipsis}.board-materials-footnote{margin-top:8px;font-size:10px;color:var(--color-text-secondary, #999)}.board-materials-bulk{padding:8px 10px 10px;border-bottom:1px solid #e2e8f0;display:flex;flex-direction:column;gap:6px}.board-materials-bulk-hint{font-size:11px;color:#94a3b8}.board-materials-bulk-select{width:100%;font-size:11px;padding:4px 6px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#334155}.board-materials-bulk-row{display:flex;gap:6px}.board-materials-bulk-btn{flex:1;font-size:11px;padding:5px 6px;border:1px solid #cbd5e1;border-radius:4px;background:#f8fafc;color:#334155;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-materials-bulk-btn:hover{background:#e0f2fe;border-color:#0ea5e9;color:#0369a1}.board-materials-section{margin-bottom:20px}.board-materials-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:8px 0}.board-materials-section-heading h3{margin:0;font-size:13px;font-weight:600;color:var(--text-primary)}.board-materials-section-heading>span{font-size:10px;color:var(--text-secondary);white-space:nowrap}.board-materials-finishes{padding-bottom:16px;border-bottom:1px solid var(--border-color)}.board-materials-swatch{align-self:center;flex-shrink:0;width:8px;height:8px;border-radius:2px;box-shadow:inset 0 0 0 1px #0000001f}.board-materials-group-parent{color:var(--color-text-secondary, #94a3b8);font-weight:400;font-size:11px}.board-materials-total-block{padding:4px 0 6px;border-bottom:1px dashed var(--color-border, #e2e8f0)}.board-materials-total-block:last-of-type{border-bottom:none}.board-materials-waste-row{display:flex;justify-content:space-between;gap:6px;padding:1px 2px 3px;font-size:11px;color:var(--color-text-secondary, #64748b)}.board-materials-pieces{margin-top:4px;display:flex;flex-direction:column;gap:3px}.board-materials-pieces-summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:11px;color:var(--text-secondary)}.board-materials-offcut{color:#b45309;white-space:nowrap}.board-materials-piece-bar{display:flex;flex:1;min-width:0;height:24px;border:1px solid var(--border-color);border-radius:3px;overflow:hidden;background:var(--bg-secondary)}.board-materials-piece-cut{display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;flex-basis:0;padding:0;border:none;border-radius:0;background:color-mix(in srgb,var(--board-color) 24%,var(--bg-secondary));border-right:1px solid #fff;font-family:ui-monospace,monospace;font-size:9px;color:var(--text-primary);white-space:nowrap;cursor:pointer}.board-materials-piece-cut:hover{background:color-mix(in srgb,var(--board-color) 40%,var(--bg-secondary))}.board-materials-piece-cut.selected{background:var(--material-selection-bg);box-shadow:inset 0 0 0 2px var(--accent-color, #667eea);font-weight:600}.board-materials-piece-row{display:flex;align-items:center;gap:8px}.board-materials-piece-length{flex:0 0 44px;font-size:10px;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.board-materials-stock{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 8px;font-size:11px;color:var(--text-secondary);padding:4px 0}.board-materials-stock-link{background:transparent;border:none;border-radius:2px;padding:2px 0;font-size:11px;color:var(--accent-color, #667eea);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.board-materials-row:focus-visible,.board-materials-piece-cut:focus-visible,.board-materials-stock-link:focus-visible{outline:2px solid var(--accent-color, #667eea);outline-offset:-2px}@media(max-width:999px),(pointer:coarse){.board-materials-row,.board-materials-piece-bar,.board-materials-stock-link{min-height:44px}}.board-materials-piece-offcut{flex-basis:0;min-width:0;background:repeating-linear-gradient(45deg,#fde68a,#fde68a 3px,#fef3c7 3px 6px)}.board-materials-cut-list{display:flex;flex-direction:column;margin:4px 0 12px}.board-materials-cut-list button{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 8px;background:var(--bg-primary);color:var(--text-primary);border:0;border-bottom:1px solid var(--border-color);font:11px var(--font-ui);cursor:pointer}.board-materials-cut-list button:hover{background:var(--bg-hover)}.board-materials-bulk summary{cursor:pointer;min-height:32px;color:var(--text-secondary)}.board-materials-row:disabled{color:var(--text-primary);cursor:default;opacity:1}summary.board-materials-group-header{cursor:pointer;min-height:44px;gap:8px}summary.board-materials-group-header:before{content:"▸";color:var(--text-secondary)}.board-materials-group[open]>summary:before{content:"▾"}.board-materials-row-label small{display:block;font:10px var(--font-ui);color:var(--text-secondary)}summary.board-materials-group-header>span:first-of-type{flex:1;min-width:0}.print-options-modal{max-width:440px}.print-options-content{display:flex;flex-direction:column;gap:6px}.print-options-intro{margin:0 0 4px;font-size:12px;color:var(--text-secondary, #64748b)}.print-options-row{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;cursor:pointer;font-size:13px;color:var(--text-primary, #334155)}.print-options-row:hover{border-color:var(--accent, #0ea5e9);background:var(--bg-active, #f0f9ff)}.print-options-subrow{margin-left:24px}.print-options-row.disabled{opacity:.5;cursor:not-allowed}.print-options-row.disabled:hover{border-color:var(--border-color, #e2e8f0);background:transparent}.print-options-row input{margin-top:2px}.print-options-label{display:flex;flex-direction:column;gap:1px}.print-options-hint{font-size:11px;color:var(--text-secondary, #94a3b8)}.board-catalog-modal{max-width:1040px;width:92vw}.board-catalog-content{display:flex;flex-direction:column;gap:20px;max-height:60vh;overflow-y:auto}.board-catalog-section+.board-catalog-section{padding-top:16px;border-top:1px solid var(--border-color)}.board-catalog-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 0;color:var(--color-text-secondary, #666)}.board-catalog-empty-actions{display:flex;gap:8px}.board-catalog-section-header{display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:13px;margin-bottom:10px}.board-catalog-add-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:6px;background:transparent;cursor:pointer;color:inherit}.board-catalog-add-btn:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.board-catalog-none{font-size:12px;color:var(--color-text-secondary, #888);padding:4px 2px}.board-catalog-table{width:100%;min-width:880px;border-collapse:collapse;font-size:12px}.board-catalog-section{min-width:0}.board-catalog-table-wrap{max-width:100%;overflow-x:auto}.board-catalog-table th{text-align:left;font-weight:500;color:var(--color-text-secondary, #888);padding:2px 6px 4px 0}.board-catalog-table td{padding:2px 6px 2px 0;vertical-align:middle}.board-catalog-table .col-code{width:120px;min-width:120px;white-space:nowrap;font-family:ui-monospace,monospace;font-size:11px;color:var(--color-text-secondary, #777)}.board-catalog-table .col-name{min-width:240px}.board-catalog-table input[type=text],.board-catalog-table input[type=number]{width:100%;box-sizing:border-box;padding:4px 6px;border:1px solid var(--color-border, #d0d0d0);border-radius:5px;background:transparent;color:inherit;font-size:12px}.board-catalog-table .col-dim{width:90px}.board-catalog-table .col-color{width:76px}.board-catalog-color{display:flex;align-items:center;gap:4px}.board-catalog-color input[type=color]{width:28px;height:22px;padding:0;border:1px solid var(--color-border, #d0d0d0);border-radius:4px;background:transparent;cursor:pointer}.board-catalog-color-reset{border:none;background:transparent;padding:0;font-size:10px;color:var(--color-text-secondary, #888);text-decoration:underline;cursor:pointer}.board-catalog-table .col-actions{width:28px}.board-catalog-delete-btn{display:inline-flex;align-items:center;padding:3px;border:none;background:transparent;cursor:pointer;color:var(--color-text-secondary, #888);border-radius:4px}.board-catalog-delete-btn:hover{color:var(--color-error, #ef4444);background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.board-catalog-table th.col-replace,.board-catalog-table td.col-replace{width:120px}.board-catalog-table td.col-replace select{width:100%;font-size:11px;padding:3px 4px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#334155}.bulk-boards-modal{max-width:860px;width:94vw}.bulk-boards-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:12px 20px;border-bottom:1px solid var(--color-border, #e2e2e2)}.bulk-boards-control-block{display:flex;flex-direction:column;gap:8px;min-width:0}.bulk-boards-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary, #666)}.bulk-boards-type-row{display:flex;align-items:center;gap:8px}.bulk-boards-select{flex:1;min-width:0;padding:6px 8px;font-size:13px;border:1px solid var(--color-border, #d0d0d0);border-radius:6px;background:var(--color-bg, #fff);color:inherit}.bulk-boards-link{background:none;border:none;padding:0;font-size:12px;color:var(--color-accent, #2563eb);cursor:pointer;white-space:nowrap}.bulk-boards-hint{font-size:11.5px;line-height:1.4;color:var(--color-text-secondary, #888)}.bulk-boards-button-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.bulk-boards-btn{padding:6px 10px;font-size:12px;border:1px solid var(--color-border, #d0d0d0);border-radius:6px;background:transparent;color:inherit;cursor:pointer}.bulk-boards-btn:hover:not(:disabled){background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.bulk-boards-btn:disabled{opacity:.45;cursor:not-allowed}.bulk-boards-area-list{display:flex;flex-direction:column;gap:2px;max-height:132px;overflow-y:auto;border:1px solid var(--color-border, #d0d0d0);border-radius:6px;padding:6px 8px}.bulk-boards-area-item{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.bulk-boards-content{max-height:46vh;overflow-y:auto}.bulk-boards-empty{padding:20px 0;text-align:center;color:var(--color-text-secondary, #888)}.bulk-boards-table{width:100%;border-collapse:collapse;font-size:13px}.bulk-boards-table th{position:sticky;top:0;z-index:1;text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary, #666);background:var(--color-bg, #fff);padding:6px 8px;border-bottom:1px solid var(--color-border, #e2e2e2)}.bulk-boards-table td{padding:5px 8px;border-bottom:1px solid var(--color-border-subtle, #f0f0f0)}.bulk-boards-table .col-code{width:64px;font-variant-numeric:tabular-nums;font-weight:600}.bulk-boards-table .col-length{width:96px;font-variant-numeric:tabular-nums;color:var(--color-text-secondary, #666)}.bulk-boards-cell{display:flex;align-items:center;gap:8px;cursor:pointer;min-width:0}.bulk-boards-side-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary, #777)}.bulk-boards-side-label.is-inner{color:inherit;font-weight:500}.bulk-boards-other-type{flex-shrink:0;font-size:11px;padding:1px 6px;border-radius:999px;background:#f59e0b29;color:#b45309;white-space:nowrap;border-left:4px solid var(--other-type-color, #f59e0b)}.bulk-boards-modal .upload-modal-footer{display:flex;align-items:center;gap:16px}.bulk-boards-summary{flex:1;font-size:12px;color:var(--color-text-secondary, #777)}@media(max-width:720px){.bulk-boards-controls{grid-template-columns:minmax(0,1fr)}}.wall-side-view-modal{max-width:780px;width:94vw}.wall-side-view-content{display:flex;flex-direction:column;gap:12px}.wall-side-view-empty{color:var(--text-secondary);font-size:13px;padding:24px 4px}.wall-side-view-tabs{display:flex;gap:6px}.wall-side-view-tab{flex:1;padding:6px 10px;font-size:12px;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:inherit;cursor:pointer;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wall-side-view-tab:hover{background:var(--bg-hover)}.wall-side-view-tab.is-active{border-color:var(--accent);color:var(--accent);font-weight:600}.wall-side-view-stage{border:1px solid var(--border-color);border-radius:6px;background:var(--canvas-bg);align-self:center}.wall-side-view-warning{font-size:12px;color:var(--warning);background:#f59e0b1f;border:1px solid rgba(245,158,11,.4);border-radius:6px;padding:6px 10px}.wall-side-view-footer{display:flex;flex-wrap:wrap;gap:8px 20px;padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary)}.wall-side-view-total{display:flex;flex-direction:column;gap:2px;min-width:140px}.wall-side-view-total-label{font-size:11px;color:var(--text-secondary)}.wall-side-view-total-value{font-size:13px;font-weight:600;font-family:IBM Plex Mono,monospace}.wall-side-view-hint{font-size:11px;color:var(--text-secondary)}.wall-side-view-assignments{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.wall-side-view-tab{min-height:44px}.wall-side-view-modal{display:flex;flex-direction:column;overflow:hidden}.wall-side-view-modal>.upload-modal-header{flex-shrink:0}.wall-side-view-content{min-height:0;overflow-y:auto}.wall-side-view-modal .upload-modal-close{min-width:44px;min-height:44px}.wall-side-preview{position:absolute;right:16px;bottom:16px;z-index:45;padding:6px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 8px 24px #0f172a29;font-family:IBM Plex Sans,sans-serif}.wall-side-preview-header,.wall-side-preview-details{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.wall-side-preview-header{margin-bottom:3px;font-size:12px}.wall-side-preview-header span,.wall-side-preview-details strong{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500}.wall-side-preview-faces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.wall-side-preview-face{min-width:0;padding:3px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:inherit;text-align:left;cursor:pointer}.wall-side-preview-face:hover,.wall-side-preview-face:focus-visible{border-color:var(--text-secondary)}.wall-side-preview-face:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}.wall-side-preview-side,.wall-side-preview-details{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.wall-side-preview-side small{font-size:10px;color:var(--text-secondary)}.wall-side-preview-svg{display:block;width:100%;height:calc(var(--preview-elevation-height, 160px) * var(--preview-scale, 1))}.wall-side-preview-details{display:flex}.wall-side-preview-details>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.wall-side-preview-details strong{flex-shrink:0}@media(max-width:900px){.wall-side-preview{display:none}}.wb-panel-controls{position:absolute;z-index:20;top:8px;right:8px;display:flex;gap:6px}.wb-panel-controls button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);padding:6px 10px;font:12px var(--font-ui);cursor:pointer}.workbench-panel-frame{display:flex;flex-shrink:0;min-height:0;border-left:1px solid var(--border-color);background:var(--bg-primary)}.wb-dock-frame[hidden],.wb-dock-frame [hidden]{display:none!important}.wb-dock-frame .mobile-sheet-body{display:flex;flex:1;min-height:0;min-width:0;padding:0;overflow:hidden}.wb-dock-grid{display:grid;grid-template-rows:44px minmax(0,1fr);flex:1;min-height:0;min-width:0}.wb-dock-tab-slot{grid-row:1;min-width:0}.wb-dock-tabs{display:flex;height:44px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.wb-dock-tabs button{flex:1;min-width:0;min-height:44px;padding:6px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-secondary);font:12px var(--font-ui);cursor:pointer}.wb-dock-tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.wb-panel-slot{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border-left:1px solid var(--border-color)}.wb-panel-slot-heading{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-height:36px;padding:0 6px 0 12px;border-bottom:1px solid var(--border-color);font-size:11px;color:var(--text-secondary)}.wb-panel-slot-heading>span{margin-right:auto}.wb-panel-slot-heading button{width:32px;min-height:36px;border:0;background:transparent;color:var(--text-secondary);cursor:pointer}.wb-panel-slot>.workbench-right-sidebar,.wb-panel-slot>.area-summary-panel{width:100%!important;min-width:0;max-width:none;flex:1;min-height:0;border:0}.wb-panel-slot .area-summary-inner{width:100%;min-width:0}.wb-panel-slot .area-summary-resize-handle{display:none}.wb-dock-single:not(.mobile-bottom-sheet){width:340px}.wb-dock-single .wb-dock-grid{grid-template-columns:minmax(0,1fr)}.wb-panel-menu-choice{display:flex;align-items:center;min-height:44px;gap:12px}.wb-panel-menu-choice:last-of-type{margin-bottom:16px}.wb-panel-controls button:focus-visible,.wb-dock-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:999px){.wb-panel-controls button{min-height:44px}.wb-dock-tabs button{font-size:11px;padding:6px 2px}.wb-panel-slot{border-left:0}}.wb-panel-slot .area-summary-header>button:not(.area-summary-close-btn):not(.area-summary-autocenter-btn){display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:36px;padding:4px;border:0;background:transparent;color:var(--text-secondary);cursor:pointer}.wb-panel-slot .board-materials-panel .area-summary-header{grid-template-columns:minmax(0,1fr) auto auto}.wb-panel-slot .board-materials-panel .area-summary-close-btn{grid-column:-2}[data-layout=mobile] .wb-panel-slot .board-materials-row,[data-layout=mobile] .wb-panel-slot .board-materials-stock-link,[data-layout=mobile] .wb-panel-slot .area-summary-close-btn{min-height:44px}.screen-calibration-overlay{position:fixed;inset:0;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;flex-direction:column;color:var(--text-primary, #212529);cursor:grab;-webkit-user-select:none;user-select:none}.screen-calibration-overlay.dragging{cursor:grabbing}.calibration-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 32px;border-bottom:1px solid var(--border-color, #dee2e6)}.calibration-title h3{margin:0 0 8px;font-size:24px;font-weight:600;color:var(--text-primary, #212529)}.calibration-title p{margin:0;font-size:14px;color:var(--text-secondary, #495057)}.calibration-close{background:none;border:none;color:var(--text-secondary, #495057);cursor:pointer;padding:8px;border-radius:4px;transition:background .2s}.calibration-close:hover{background:var(--bg-hover, #f1f3f5)}.calibration-content{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;position:relative}.credit-card-container{display:flex;align-items:center;justify-content:center;position:relative}.credit-card{position:relative;pointer-events:none}.card-outline{position:absolute;inset:0;border:3px dashed var(--accent, #667eea);border-radius:12px;background:#667eea14;box-shadow:0 0 40px #667eea33}.card-corners{position:absolute;inset:0}.corner{position:absolute;width:20px;height:20px;border:3px solid var(--accent, #667eea)}.corner.top-left{top:-3px;left:-3px;border-right:none;border-bottom:none;border-radius:12px 0 0}.corner.top-right{top:-3px;right:-3px;border-left:none;border-bottom:none;border-radius:0 12px 0 0}.corner.bottom-left{bottom:-3px;left:-3px;border-right:none;border-top:none;border-radius:0 0 0 12px}.corner.bottom-right{bottom:-3px;right:-3px;border-left:none;border-top:none;border-radius:0 0 12px}.card-dimensions{position:absolute;inset:0;pointer-events:none}.dimension-label{position:absolute;background:var(--accent, #667eea);color:#fff;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:600;white-space:nowrap}.dimension-label.top{top:-30px;left:50%;transform:translate(-50%)}.dimension-label.left{left:-70px;top:50%;transform:translateY(-50%)}.card-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.card-icon{font-size:48px;margin-bottom:8px;opacity:.6}.card-text{font-size:14px;font-weight:600;color:var(--text-primary, #212529);margin-bottom:4px}.card-subtext{font-size:12px;color:var(--text-secondary, #495057)}.resize-handle{position:absolute;background:var(--accent, #667eea);opacity:0;transition:opacity .2s}.credit-card:hover .resize-handle{opacity:.8}.resize-handle:hover{opacity:1!important}.handle-right{top:0;right:-6px;width:12px;height:100%;cursor:ew-resize}.handle-bottom{bottom:-6px;left:0;width:100%;height:12px;cursor:ns-resize}.handle-corner{bottom:-6px;right:-6px;width:20px;height:20px;border-radius:0 0 12px;cursor:nwse-resize}.calibration-controls{padding:24px 32px;border-top:1px solid var(--border-color, #dee2e6);background:var(--bg-secondary, #f8f9fa)}.control-row{display:flex;gap:12px;margin-bottom:20px}.lock-button{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #dee2e6);border-radius:6px;color:var(--text-primary, #212529);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.lock-button:hover{background:var(--bg-hover, #f1f3f5);border-color:var(--border-hover, #adb5bd)}.lock-button.locked{background:var(--accent-light, #e7f5ff);border-color:var(--accent, #667eea);color:var(--accent, #667eea)}.reset-button{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #dee2e6);border-radius:6px;color:var(--text-primary, #212529);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.reset-button:hover{background:var(--bg-hover, #f1f3f5);border-color:var(--border-hover, #adb5bd)}.calibration-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:24px}.info-group{display:flex;flex-direction:column;gap:4px}.info-label{font-size:12px;color:var(--text-tertiary, #868e96);text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:18px;font-weight:600;color:var(--accent, #667eea);font-family:Courier New,monospace}.calibration-help{padding:16px;background:var(--accent-light, #e7f5ff);border:1px solid rgba(102,126,234,.3);border-radius:8px}.calibration-help p{margin:0 0 12px;font-size:14px;color:var(--text-primary, #212529)}.calibration-help ol{margin:0;padding-left:20px;font-size:13px;color:var(--text-secondary, #495057);line-height:1.6}.calibration-help li{margin-bottom:4px}:root[data-theme=dark] .screen-calibration-overlay{background:#1a1b1ef2;color:#f8f9fa}:root[data-theme=dark] .calibration-header{border-bottom-color:#373a40}:root[data-theme=dark] .calibration-title h3{color:#f8f9fa}:root[data-theme=dark] .calibration-title p{color:#ced4da}:root[data-theme=dark] .calibration-close{color:#ced4da}:root[data-theme=dark] .calibration-close:hover{background:#373a40}:root[data-theme=dark] .card-outline{background:#748ffc1a;box-shadow:0 0 40px #748ffc4d}:root[data-theme=dark] .card-text{color:#f8f9fa}:root[data-theme=dark] .card-subtext{color:#ced4da}:root[data-theme=dark] .calibration-controls{border-top-color:#373a40;background:#25262b}:root[data-theme=dark] .lock-button{background:#2c2e33;border-color:#373a40;color:#f8f9fa}:root[data-theme=dark] .lock-button:hover{background:#373a40;border-color:#495057}:root[data-theme=dark] .lock-button.locked{background:#2b3544;border-color:#748ffc;color:#748ffc}:root[data-theme=dark] .reset-button{background:#2c2e33;border-color:#373a40;color:#f8f9fa}:root[data-theme=dark] .reset-button:hover{background:#373a40;border-color:#495057}:root[data-theme=dark] .info-label{color:#868e96}:root[data-theme=dark] .info-value{color:#748ffc}:root[data-theme=dark] .calibration-help{background:#2b3544;border-color:#748ffc4d}:root[data-theme=dark] .calibration-help p{color:#f8f9fa}:root[data-theme=dark] .calibration-help ol{color:#ced4da}.fps-overlay{position:fixed;inset:0;background:var(--bg-primary, #ffffff);z-index:1000;display:flex;flex-direction:column;color:var(--text-primary, #212529)}.fps-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid var(--border-color, #dee2e6);flex-shrink:0}.fps-header-left{display:flex;align-items:center;gap:12px;color:var(--accent, #1d4ed8)}.fps-header-left h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary, #212529)}.fps-subtitle{margin:0;font-size:13px;color:var(--text-secondary, #495057)}.fps-close{background:none;border:none;color:var(--text-secondary, #495057);cursor:pointer;padding:8px;border-radius:4px;transition:background .2s}.fps-close:hover{background:var(--bg-hover, #f1f3f5)}.fps-body{flex:1;display:flex;overflow:hidden}.fps-canvas{flex:1;position:relative;background:var(--canvas-bg, #fafbfc);border-right:1px solid var(--border-color, #dee2e6);display:flex;align-items:center;justify-content:center;padding:24px}.fps-canvas svg{max-width:100%;max-height:100%}.fps-panel{width:360px;flex-shrink:0;display:flex;flex-direction:column;padding:20px;overflow-y:auto;gap:16px}.fps-scale-info{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:6px;font-size:13px;line-height:1.4}.fps-scale-info.warning{background:var(--color-warning-bg, #fef3c7);color:var(--color-warning-text, #92400e);border:1px solid var(--color-warning-border, #fde68a)}.fps-scale-info.ok{background:var(--color-success-bg, #dcfce7);color:var(--color-success-text, #166534);border:1px solid var(--color-success-border, #bbf7d0)}.fps-step{display:flex;flex-direction:column;gap:12px}.fps-step h4{margin:0;font-size:16px;font-weight:600;color:var(--text-primary, #212529)}.fps-step p{margin:0;font-size:13px;color:var(--text-secondary, #495057);line-height:1.5}.fps-wall-info{background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #dee2e6);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:6px}.fps-info-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.fps-info-label{color:var(--text-secondary, #495057)}.fps-info-value{font-weight:500;font-family:IBM Plex Mono,monospace;color:var(--text-primary, #212529)}.fps-current-length{font-size:13px;color:var(--text-secondary, #495057)}.fps-input-row{display:flex;gap:8px;align-items:center}.fps-length-input{flex:0 0 60%;padding:10px 12px;border:2px solid var(--border-color, #dee2e6);border-radius:6px;font-size:18px;font-family:IBM Plex Mono,monospace;font-weight:500;background:var(--bg-primary, #ffffff);color:var(--text-primary, #212529);outline:none;transition:border-color .15s}.fps-length-input:focus{border-color:var(--accent, #1d4ed8)}.fps-length-input::placeholder{color:var(--text-tertiary, #ced4da)}.fps-length-input::-webkit-outer-spin-button,.fps-length-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fps-length-input[type=number]{-moz-appearance:textfield}.fps-unit-select{padding:10px 12px;border:2px solid var(--border-color, #dee2e6);border-radius:6px;font-size:14px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #212529);cursor:pointer;outline:none;min-width:90px}.fps-unit-select:focus{border-color:var(--accent, #1d4ed8)}.fps-scale-preview{font-size:14px;color:var(--accent, #1d4ed8);font-weight:500;padding:8px 0}.fps-scale-preview strong{font-family:IBM Plex Mono,monospace}.fps-warning{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--color-warning-bg, #fef3c7);color:var(--color-warning-text, #92400e);border:1px solid var(--color-warning-border, #fde68a);border-radius:4px;font-size:12px}.fps-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px;padding-top:12px;border-top:1px solid var(--border-color, #dee2e6)}.fps-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:background .15s,opacity .15s}.fps-btn:disabled{opacity:.4;cursor:not-allowed}.fps-btn-primary{background:var(--accent, #1d4ed8);color:#fff}.fps-btn-primary:hover:not(:disabled){background:var(--accent-hover, #1e40af)}.fps-btn-secondary{background:var(--bg-secondary, #f1f3f5);color:var(--text-primary, #212529);border:1px solid var(--border-color, #dee2e6)}.fps-btn-secondary:hover:not(:disabled){background:var(--bg-hover, #e9ecef)}.fps-success-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--color-success-bg, #dcfce7);color:var(--color-success-text, #166534);margin-bottom:4px}.fps-hint{font-size:12px;color:var(--text-tertiary, #868e96);font-style:italic}[data-theme=dark] .fps-overlay{background:var(--bg-primary, #1a1b1e)}[data-theme=dark] .fps-canvas{background:var(--canvas-bg, #212226)}[data-theme=dark] .fps-scale-info.warning{background:#f59e0b1f;color:#fbbf24;border-color:#f59e0b33}[data-theme=dark] .fps-scale-info.ok{background:#22c55e1f;color:#4ade80;border-color:#22c55e33}[data-theme=dark] .fps-warning{background:#f59e0b1f;color:#fbbf24;border-color:#f59e0b33}[data-theme=dark] .fps-length-input,[data-theme=dark] .fps-unit-select{background:var(--bg-secondary, #25262b);border-color:var(--border-color, #373a40);color:var(--text-primary, #c1c2c5)}.brave-shield-warning{position:fixed;top:0;left:0;right:0;z-index:10000;background:linear-gradient(135deg,#ff6b00,#ff8533);color:#fff;padding:12px 16px;box-shadow:0 2px 8px #00000026;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.brave-shield-warning-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:12px}.brave-shield-icon{flex-shrink:0;opacity:.9}.brave-shield-message{flex:1;display:flex;flex-direction:column;gap:2px}.brave-shield-message strong{font-weight:600;font-size:14px}.brave-shield-message span{font-size:13px;opacity:.95;line-height:1.4}.brave-shield-dismiss{flex-shrink:0;background:#fff3;border:none;border-radius:4px;padding:6px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s}.brave-shield-dismiss:hover{background:#ffffff4d}.brave-shield-dismiss:active{background:#fff6}[data-theme=dark] .brave-shield-warning{background:linear-gradient(135deg,#c45500,#e06600)}@media(max-width:768px){.brave-shield-warning{padding:10px 12px}.brave-shield-warning-content{gap:10px}.brave-shield-message strong{font-size:13px}.brave-shield-message span{font-size:12px}}.confirmation-dialog{max-width:520px}.confirmation-dialog-title{font-size:18px}.confirmation-dialog-message{color:var(--text-secondary);font-size:15px;line-height:1.6}.confirmation-dialog-message p{margin:0 0 12px}.confirmation-dialog-message p:last-child{margin-bottom:0}.confirmation-dialog-message .hint-text{font-size:13px;color:var(--text-tertiary);font-style:italic}.confirmation-dialog-actions{gap:16px}.confirmation-dialog-btn{padding:12px 24px;font-size:15px;font-weight:600}.tutorial-overlay{position:fixed;inset:0;z-index:2000;font-family:var(--font-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.tutorial-backdrop-piece{position:absolute;background:#0f11178c;pointer-events:none}.tutorial-backdrop-full{inset:0}.tutorial-highlight-ring{position:absolute;border:2px solid var(--accent, #1d4ed8);border-radius:6px;box-shadow:0 0 0 4px #1d4ed840;pointer-events:none}.tutorial-arrow{position:absolute;color:var(--accent, #1d4ed8);pointer-events:none}.tutorial-arrow line,.tutorial-arrow path{stroke:currentColor;fill:currentColor}.tutorial-arrow line{stroke-width:4;stroke-linecap:round}.tutorial-info-box{position:absolute;width:300px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #111827);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;box-shadow:var(--shadow-lg, 0 10px 30px rgba(0, 0, 0, .1));padding:16px;pointer-events:auto}.tutorial-info-box:focus{outline:none}.tutorial-info-box-close{position:absolute;top:10px;right:10px;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-secondary, #6b7280);border-radius:4px;cursor:pointer}.tutorial-info-box-close:hover{background:var(--bg-hover, #f1f3f5);color:var(--text-primary, #111827)}.tutorial-info-box-step-counter{font-size:12px;font-weight:600;color:var(--text-tertiary, #9ca3af);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}.tutorial-info-box-title{margin:0 0 8px;font-size:16px;font-weight:600;padding-right:20px}.tutorial-info-box-body{margin:0 0 14px;font-size:14px;line-height:1.5;color:var(--text-secondary, #6b7280)}.tutorial-info-box-cta{display:inline-block;margin-bottom:14px;font-size:13px;font-weight:600;color:var(--accent, #1d4ed8);text-decoration:none}.tutorial-info-box-cta:hover{text-decoration:underline}.tutorial-info-box-actions{display:flex;align-items:center;justify-content:space-between}.tutorial-info-box-skip{border:none;background:transparent;color:var(--text-tertiary, #9ca3af);font-size:13px;cursor:pointer;padding:6px 4px}.tutorial-info-box-skip:hover{color:var(--text-secondary, #6b7280)}.tutorial-info-box-nav{display:flex;gap:8px}.tutorial-info-box-prev,.tutorial-info-box-next{border-radius:6px;font-size:13px;font-weight:600;padding:6px 12px;cursor:pointer}.tutorial-info-box-prev{border:1px solid var(--border-color, #e5e7eb);background:var(--bg-primary, #ffffff);color:var(--text-primary, #111827)}.tutorial-info-box-prev:hover{background:var(--bg-hover, #f1f3f5)}.tutorial-info-box-next{border:none;background:var(--accent, #1d4ed8);color:#fff}.tutorial-info-box-next:hover{background:var(--accent-hover, #1e40af)}.settings-container{display:flex;height:100vh;background-color:var(--bg-primary);color:var(--text-primary)}.settings-sidebar{width:250px;border-right:1px solid var(--border-color);display:flex;flex-direction:column;background-color:var(--bg-secondary)}.settings-header{padding:20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border-color)}.settings-header h2{margin:0;font-size:1.2rem}.back-button{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.back-button:hover{background-color:var(--bg-hover);color:var(--text-primary)}.settings-nav{padding:20px 10px;display:flex;flex-direction:column;gap:5px}.settings-nav-item{display:flex;align-items:center;gap:10px;padding:10px 15px;text-decoration:none;color:var(--text-secondary);border-radius:6px;transition:all .2s}.settings-nav-item:hover{background-color:var(--bg-hover);color:var(--text-primary)}.settings-nav-item.active{background-color:var(--accent-light);color:var(--accent)}.settings-content{position:relative;flex:1;padding:40px;overflow-y:auto;overscroll-behavior-y:none}.settings-page{max-width:800px;margin:0 auto}.settings-page.preferences-page{max-width:1440px}.settings-page h1{margin-bottom:30px;font-size:2rem}.settings-section{background-color:var(--bg-secondary);padding:20px;border-radius:8px;border:1px solid var(--border-color);margin-bottom:20px}.settings-section h3{margin-top:0;margin-bottom:15px;border-bottom:1px solid var(--border-color);padding-bottom:10px}.preference-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.theme-toggle-btn{padding:8px 16px;background-color:var(--accent);color:#fff;border:none;border-radius:4px;cursor:pointer}.theme-toggle-btn:hover{background-color:var(--accent-hover)}.preferences-section-copy{margin:0 0 16px;color:var(--text-secondary);line-height:1.5}.preferences-form{display:flex;flex-direction:column;gap:16px}.preferences-value-group{display:flex;align-items:center;gap:10px}.preferences-value-input,.preferences-unit-select{border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;padding:9px 12px}.preferences-value-input{width:140px}.preferences-unit-select{min-width:88px}.preferences-defaults-note{color:var(--text-secondary);font-size:13px;line-height:1.45}.preferences-feedback{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:8px;font-size:14px}.preferences-feedback-success{color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent)}.preferences-feedback-error{color:var(--error);background:color-mix(in srgb,var(--error) 12%,transparent)}.preferences-form-actions{display:flex;justify-content:space-between;align-items:center;gap:16px}.preferences-form-note{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.45}.preferences-save-button{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600}.preferences-save-button:disabled{opacity:.6;cursor:not-allowed}.preferences-save-spinner{animation:spin 1s linear infinite}@media(max-width:720px){.settings-container{flex-direction:column}.settings-sidebar{width:100%;flex:none;border-right:0;border-bottom:1px solid var(--border-color)}.settings-header{padding:10px 16px}.settings-nav{flex-direction:row;overflow-x:auto;padding:6px 12px}.settings-nav-item{flex:none;white-space:nowrap;padding:8px 10px}.settings-content{min-width:0;padding:20px 16px}.settings-page h1{font-size:1.65rem;margin-bottom:20px}.preferences-form-actions{flex-direction:column;align-items:flex-start}}.settings-section h2{margin:0 0 15px;font-size:1.15rem;border-bottom:1px solid var(--border-color);padding-bottom:10px}.preferences-field{margin:0;padding:20px 0;border:0;border-bottom:1px solid var(--border-color);min-width:0}.preferences-field>label,.preferences-field legend{font-weight:600;margin-bottom:10px}.preferences-field>label{display:block}.preferences-stock-field legend{padding:20px 0 0}.preferences-defaults-note{margin:10px 0 0}.preferences-field-error{color:var(--error);font-size:14px;margin:6px 0 0}.preferences-field-error:empty{display:none}.preferences-value-input[aria-invalid=true]{border-color:var(--error)}.preferences-stock-toolbar,.preferences-stock-row,.preferences-stock-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.preferences-stock-toolbar .preferences-defaults-note{margin:0}.preferences-stock-list{list-style:none;padding:0;margin:16px 0;display:grid;gap:12px}.preferences-secondary-button,.preferences-remove-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.preferences-remove-button{margin-left:auto}.preferences-secondary-button:hover,.preferences-remove-button:hover{background:var(--bg-hover)}.preferences-secondary-button:disabled{opacity:.6;cursor:not-allowed}.preferences-defaults .preferences-value-input,.preferences-defaults .preferences-unit-select{min-height:44px;font-variant-numeric:tabular-nums}.preferences-defaults :is(input,select,button):focus-visible{outline:2px solid var(--accent);outline-offset:3px}.preferences-form-actions{margin-top:18px;flex-wrap:wrap}.preferences-stock-field:disabled{opacity:.6}.preferences-stock-field:disabled button{cursor:not-allowed}.preferences-stock-field .preferences-value-input{width:min(180px,45vw)}.preferences-feedback{flex-wrap:wrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1000px){.preferences-value-input,.preferences-unit-select{font-size:16px;min-height:44px}.preferences-stock-row{flex-wrap:nowrap}.preferences-stock-row .preferences-value-input{min-width:0;flex:1;width:100px}.preference-item{flex-wrap:wrap;gap:12px}}@media(prefers-reduced-motion:reduce){.preferences-save-spinner{animation:none}}.account-section-copy{margin:0 0 20px;color:var(--text-secondary);line-height:1.5}.account-profile-card{display:flex;align-items:center;gap:16px;padding:18px;margin-bottom:20px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px}.account-profile-avatar{box-shadow:0 10px 24px #0f172a1f}.account-avatar-picker{margin-top:30px;padding-top:24px;border-top:1px solid var(--border-color)}.account-avatar-picker h4{margin:0 0 7px;color:var(--text-primary);font-size:1.05rem}.account-avatar-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.account-avatar-option{display:flex;align-items:center;gap:12px;min-height:84px;padding:12px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-primary);color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color .12s ease,background-color .12s ease}.account-avatar-option:hover:not(:disabled),.account-avatar-option.is-selected{border-color:var(--accent);background:var(--bg-active)}.account-avatar-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.account-avatar-option:disabled{cursor:wait}.account-avatar-option-text{display:grid;gap:3px;min-width:0;flex:1}.account-avatar-option-text strong{font-size:.93rem}.account-avatar-option-text small{color:var(--text-secondary);font-size:.78rem;line-height:1.35}.account-avatar-check{flex:none;color:var(--accent)}.account-avatar-picker .account-feedback{margin-top:14px}.account-profile-meta{min-width:0}.account-profile-name{font-size:1.05rem;font-weight:600;color:var(--text-primary)}.account-profile-email{margin-top:4px;color:var(--text-secondary);word-break:break-word}.account-form{display:flex;flex-direction:column;gap:18px}.account-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.account-field{display:flex;flex-direction:column;gap:8px}.account-field label{font-size:.92rem;font-weight:600;color:var(--text-primary)}.account-input-wrapper{position:relative}.account-input-icon{position:absolute;top:50%;left:14px;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.account-input{width:100%;padding:12px 14px 12px 42px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease}.account-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.account-input:disabled{cursor:not-allowed}.account-input-readonly{color:var(--text-secondary);background:var(--bg-secondary)}.account-field-hint{margin:0;color:var(--text-secondary);font-size:.86rem;line-height:1.45}.account-support-card{display:flex;flex-direction:column;gap:18px;padding:20px;border-radius:12px;background:var(--bg-primary);border:1px solid var(--border-color)}.account-support-email-row{display:flex;align-items:center;gap:12px}.account-support-email-icon{color:var(--accent)}.account-support-email-label{font-size:.84rem;color:var(--text-secondary)}.account-support-email-value{font-size:.98rem;font-weight:600;color:var(--text-primary);word-break:break-word}.account-support-option-group{display:flex;flex-direction:column;gap:12px}.account-support-option{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:12px;border:1px solid var(--border-color);background:var(--bg-secondary)}.account-support-option input{margin-top:2px}.account-support-option-title{display:block;font-weight:600;color:var(--text-primary)}.account-support-option-copy{display:block;margin-top:4px;font-size:.88rem;color:var(--text-secondary);line-height:1.45}.account-feedback{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;border:1px solid transparent;font-size:.95rem}.account-feedback-success{color:#166534;background:#dcfce7;border-color:#86efac}.account-feedback-error{color:#991b1b;background:#fee2e2;border-color:#fca5a5}[data-theme=dark] .account-feedback-success{color:#bbf7d0;background:#14532d66;border-color:#4ade8073}[data-theme=dark] .account-feedback-error{color:#fecaca;background:#7f1d1d66;border-color:#f8717173}.account-form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.account-form-note{margin:0;color:var(--text-secondary);line-height:1.5;max-width:520px}.account-save-button{display:inline-flex;align-items:center;gap:10px;padding:11px 16px;border:none;border-radius:10px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.account-save-button:hover:not(:disabled){background:var(--accent-hover)}.account-save-button:disabled{opacity:.6;cursor:not-allowed}.account-save-spinner{animation:account-spin .9s linear infinite}@keyframes account-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:640px){.account-profile-card{align-items:flex-start;flex-direction:column}.account-form-actions{align-items:stretch}.account-save-button{justify-content:center;width:100%}}.ref-description{margin:0 0 12px;font-size:13px;color:var(--text-secondary);line-height:1.5}.ref-code-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.ref-code{display:inline-block;padding:6px 14px;font-size:14px;font-family:IBM Plex Mono,monospace;font-weight:600;letter-spacing:.5px;background:var(--bg-tertiary, var(--bg-hover));border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary)}.ref-copy-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;font-family:inherit;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--accent);cursor:pointer;transition:border-color .15s,background .15s}.ref-copy-btn:hover{border-color:var(--accent);background:var(--bg-hover)}.ref-stats{display:flex;gap:20px;margin-bottom:8px}.ref-stat{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.ref-stat svg{color:var(--text-tertiary, var(--text-secondary))}.sub-callout{display:flex;gap:12px;padding:14px 16px;border-radius:8px;margin-bottom:20px;font-size:13px;line-height:1.5;border:1px solid}.sub-callout svg{flex-shrink:0;margin-top:1px}.sub-callout strong{display:block;font-size:14px;margin-bottom:4px}.sub-callout p{margin:0;color:inherit;opacity:.85}.sub-callout-info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.sub-callout-ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.sub-callout-warn{background:#fffbeb;border-color:#fde68a;color:#92400e}.sub-callout-error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.sub-callout-gift{background:#faf5ff;border-color:#e9d5ff;color:#6b21a8}.sub-callout-neutral{background:var(--bg-secondary, #f9fafb);border-color:var(--border-color);color:var(--text-secondary)}[data-theme=dark] .sub-callout-info{background:#172554;border-color:#1e3a5f;color:#93c5fd}[data-theme=dark] .sub-callout-ok{background:#052e16;border-color:#14532d;color:#86efac}[data-theme=dark] .sub-callout-warn{background:#451a03;border-color:#78350f;color:#fcd34d}[data-theme=dark] .sub-callout-error{background:#450a0a;border-color:#7f1d1d;color:#fca5a5}[data-theme=dark] .sub-callout-gift{background:#2e1065;border-color:#4c1d95;color:#d8b4fe}[data-theme=dark] .sub-callout-neutral{background:var(--bg-secondary, #1f2937);border-color:var(--border-color);color:var(--text-secondary)}.sub-gift-tag{font-size:12px;font-weight:500;color:#7c3aed}[data-theme=dark] .sub-gift-tag{color:#c4b5fd}.sub-status-row{display:flex;align-items:center;padding:10px 0;border-bottom:1px solid var(--border-color)}.sub-status-row:last-child{border-bottom:none}.sub-label{width:160px;flex-shrink:0;font-size:13px;font-weight:500;color:var(--text-secondary)}.sub-value{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-primary)}.sub-tier-badge{display:inline-flex;padding:2px 10px;font-size:12px;font-weight:600;border-radius:12px}.sub-tier-pro{background:var(--accent-light);color:var(--accent)}.sub-tier-free{background:var(--bg-tertiary, var(--bg-hover));color:var(--text-secondary)}.sub-trial-tag{font-size:12px;color:var(--accent)}.sub-warning-tag{font-size:12px;font-weight:600;color:#dc2626}.sub-cancel-tag{font-size:12px;font-weight:500;color:var(--text-secondary)}.sub-error{margin:0 0 12px;padding:8px 12px;font-size:13px;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px}[data-theme=dark] .sub-error{background:#450a0a;border-color:#7f1d1d;color:#fca5a5}.sub-manage-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;font-family:inherit;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:border-color .15s,background .15s}.sub-manage-btn:hover{border-color:var(--accent);background:var(--bg-hover)}.sub-manage-btn:disabled{opacity:.6;cursor:not-allowed}.sub-external-icon{color:var(--text-secondary)}.sub-upgrade-btn{display:inline-flex;align-items:center;padding:10px 24px;font-size:14px;font-weight:600;font-family:inherit;border:none;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;transition:opacity .15s}.sub-upgrade-btn:hover{opacity:.9}.sub-hint{margin:8px 0 0;font-size:12px;color:var(--text-secondary)}.sub-timeline{display:flex;flex-direction:column;gap:0;padding-left:4px}.sub-timeline-item{display:flex;align-items:flex-start;gap:12px;position:relative;padding-bottom:16px;padding-left:8px}.sub-timeline-item:last-child{padding-bottom:0}.sub-timeline-item:not(:last-child):before{content:"";position:absolute;left:11px;top:14px;bottom:0;width:2px;background:var(--border-color)}.sub-timeline-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px;background:var(--border-color)}.sub-evt-positive .sub-timeline-dot{background:#22c55e}.sub-evt-negative .sub-timeline-dot{background:#ef4444}.sub-evt-neutral .sub-timeline-dot{background:#94a3b8}.sub-timeline-content{display:flex;flex-direction:column;gap:2px;min-width:0}.sub-timeline-label{font-size:13px;font-weight:500;color:var(--text-primary)}.sub-timeline-date{font-size:12px;color:var(--text-secondary)}.subscription-success-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--bg-primary);padding:20px;font-family:IBM Plex Sans,sans-serif}.subscription-success-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:48px 40px;max-width:480px;width:100%;text-align:center;box-shadow:var(--shadow-lg)}.success-icon{color:var(--accent);margin-bottom:16px}.success-processing-icon{color:var(--text-secondary);margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.success-spinner{color:var(--accent);animation:spin 1s linear infinite;margin-bottom:16px}.success-title{margin:0 0 8px;font-size:22px;font-weight:600;color:var(--text-primary)}.success-subtitle{margin:0 0 24px;font-size:14px;color:var(--text-secondary);line-height:1.5}.success-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 28px;font-size:14px;font-weight:600;font-family:inherit;border:none;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;transition:opacity .15s}.success-btn:hover{opacity:.9}.signup-offer-page{min-height:calc(100dvh - 56px);padding:40px 20px;background:var(--bg-primary);color:var(--text-primary)}.signup-offer{max-width:680px;margin:0 auto}.signup-offer h1{font-size:clamp(24px,4vw,32px);letter-spacing:-.02em}.signup-offer h2{font-size:18px;margin-bottom:12px}.signup-offer p{color:var(--text-secondary);line-height:1.6}.signup-offer-intro{margin:12px 0 24px}.signup-offer-benefits{list-style:none;display:grid;gap:8px;margin-bottom:28px}.signup-offer-benefits li{display:flex;gap:10px;align-items:center}.signup-offer-benefits svg{flex-shrink:0;color:var(--accent)}.signup-offer-plans{display:grid;grid-template-columns:1fr 1fr;gap:16px}.signup-offer-plan{padding:24px;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-secondary)}.signup-offer-plan p{margin-bottom:20px}.signup-offer-plan .signup-offer-price{font-size:32px;font-weight:600;color:var(--text-primary)}.signup-offer-price span{font-size:14px;font-weight:400;color:var(--text-secondary)}.signup-offer-payment{margin:16px 0 24px;font-size:13px}.signup-offer-trial{border-top:1px solid var(--border-color);padding:24px 0}.signup-offer-trial p{margin-bottom:12px}.signup-offer-trial button{margin-top:8px}.signup-offer button{min-height:44px}.signup-offer .signup-resend-btn{border-color:var(--border-color);color:var(--text-primary)}.signup-offer button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:540px){.signup-offer-page{padding:28px 16px}.signup-offer-plans{grid-template-columns:1fr}.signup-offer-plan{padding:20px}}.shared-view{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);color:var(--text-primary)}.shared-view-topbar{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 16px;border-bottom:1px solid var(--border-color);background:var(--bg-primary);flex-shrink:0}.shared-view-topbar-left{display:flex;align-items:center;gap:8px;min-width:0}.shared-view-topbar-right{display:flex;align-items:center;gap:8px}.shared-view-logo{font-size:14px;font-weight:700;color:var(--accent);text-decoration:none}.shared-view-logo:hover{opacity:.8}.shared-view-separator{color:var(--text-tertiary)}.shared-view-name{font-size:14px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-view-badge{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:4px;background:var(--bg-tertiary);color:var(--text-secondary)}.shared-view-canvas{flex:1;display:flex;min-height:0}.shared-view-stage{flex:1;position:relative;overflow:hidden}.shared-view-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--text-secondary);font-size:14px}.shared-view-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:12px;background:var(--bg-primary);color:var(--text-primary)}.shared-view-error h2{font-size:20px;font-weight:600;margin:0}.shared-view-error p{font-size:14px;color:var(--text-secondary);margin:0}.shared-view-cta{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;border-top:1px solid var(--border-color);background:var(--bg-secondary);font-size:13px;color:var(--text-secondary);flex-shrink:0}.shared-view-cta-btn{display:inline-flex;align-items:center;padding:6px 16px;font-size:13px;font-weight:600;font-family:inherit;text-decoration:none;border:none;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer}.shared-view-cta-btn:hover{opacity:.9}.shared-view-canvas{position:relative}.shared-material-sheet .mobile-sheet-body{display:flex;flex-direction:column;min-height:0;overflow:hidden}.shared-material-sheet .board-materials-panel{flex:1;min-height:0}.shared-material-sheet.workbench-panel-frame{flex-direction:column}[data-layout=mobile] .shared-material-sheet.mobile-bottom-sheet{left:0}[data-layout=mobile] .shared-material-sheet .area-summary-inner{width:100%;min-width:0}.shared-view-menu{position:relative}.shared-view-menu:hover .shared-view-menu-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.shared-view-menu-dropdown{position:absolute;top:100%;right:0;min-width:180px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s;z-index:1000;padding:4px}.shared-view-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:transparent;color:var(--text-primary);font-size:13px;font-family:inherit;text-align:left;border-radius:6px;cursor:pointer}.shared-view-menu-item:hover{background:var(--bg-hover)}.coming-soon-page{--coming-soon-navy: #0f1b3d;--coming-soon-blue: #2563eb;position:relative;display:grid;min-height:100vh;min-height:100dvh;place-items:center;overflow:hidden;padding:40px 20px 72px;color:#f8fafc;background:radial-gradient(circle at 18% 18%,rgba(37,99,235,.28),transparent 32%),radial-gradient(circle at 82% 72%,rgba(14,165,233,.18),transparent 30%),linear-gradient(145deg,#081126 0%,var(--coming-soon-navy) 55%,#14295a 100%)}.coming-soon-grid{position:absolute;inset:0;opacity:.14;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 85%);mask-image:linear-gradient(to bottom,black,transparent 85%)}.coming-soon-card{position:relative;z-index:1;width:min(680px,100%);text-align:center}.coming-soon-logo{width:104px;height:auto;margin-bottom:18px;filter:drop-shadow(0 18px 38px rgba(0,0,0,.25))}.coming-soon-eyebrow{margin:0 0 14px;color:#93c5fd;font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.coming-soon-card h1{margin:0;font-size:clamp(2.6rem,7vw,5.5rem);font-weight:750;letter-spacing:-.055em;line-height:.98}.coming-soon-copy{max-width:570px;margin:24px auto 0;color:#cbd5e1;font-size:clamp(1rem,2.5vw,1.18rem);line-height:1.65}.coming-soon-form{max-width:570px;margin:36px auto 0;text-align:left}.coming-soon-form>label{display:block;margin-bottom:10px;color:#f8fafc;font-size:.9rem;font-weight:650}.coming-soon-form-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:7px;border:1px solid rgba(148,163,184,.35);border-radius:14px;background:#ffffff17;box-shadow:0 24px 70px #0000003d;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.coming-soon-form-row input{min-width:0;border:0;outline:0;padding:13px 14px;color:#f8fafc;background:transparent;font:inherit}.coming-soon-form-row input::placeholder{color:#94a3b8}.coming-soon-form-row input:focus-visible{border-radius:8px;outline:2px solid #93c5fd;outline-offset:-2px}.coming-soon-form-row button{border:0;border-radius:9px;padding:13px 20px;color:#fff;background:var(--coming-soon-blue);cursor:pointer;font:inherit;font-weight:700;white-space:nowrap;transition:background-color .15s ease,transform .15s ease}.coming-soon-form-row button:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.coming-soon-form-row button:focus-visible{outline:3px solid #bfdbfe;outline-offset:2px}.coming-soon-form-row button:disabled{cursor:wait;opacity:.7}.coming-soon-consent{margin:12px 4px 0;color:#94a3b8;font-size:.76rem;line-height:1.5}.coming-soon-message{min-height:24px;margin:12px 4px 0;color:#86efac;font-size:.9rem;font-weight:600}.coming-soon-message.is-error{color:#fca5a5}.coming-soon-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.coming-soon-footer{position:absolute;z-index:1;bottom:24px;color:#64748b;font-size:.76rem}@media(max-width:620px){.coming-soon-page{align-items:start;padding-top:54px}.coming-soon-form-row{grid-template-columns:1fr}.coming-soon-form-row button{width:100%}}@media(prefers-reduced-motion:reduce){.coming-soon-form-row button{transition:none}}:root[data-artwork-preview]{--artwork-header-width: 457.5px }:root[data-artwork-preview] .workbench-topbar{background-color:#f4f3ef;background-image:linear-gradient(#f4f3ef,#f4f3ef),var(--artwork-workbench-header-blend, linear-gradient(90deg, #f4f3ef 30%, transparent 85%)),var(--artwork-workbench-header-light, none);background-blend-mode:color,normal,normal;background-size:var(--artwork-workbench-header-size, 100% 100%, 100% 100%, auto 104px);background-position:center,var(--artwork-workbench-header-x, right) center,var(--artwork-workbench-header-x, right) var(--artwork-workbench-header-y, calc(50% + 8px) );background-repeat:no-repeat}:root[data-artwork-preview] .account-topbar{background-color:#f4f3ef;background-image:linear-gradient(#f4f3ef,#f4f3ef),var(--artwork-account-header-blend, linear-gradient(90deg, #f4f3ef 30%, transparent 85%)),var(--artwork-account-header-light, none);background-blend-mode:color,normal,normal;background-size:var(--artwork-account-header-size, 100% 100%, 100% 100%, auto 104px);background-position:center,var(--artwork-account-header-x, right) center,var(--artwork-account-header-x, right) var(--artwork-account-header-y, calc(50% + 8px) );background-repeat:no-repeat}:root[data-theme=dark][data-artwork-preview] .workbench-topbar{background-color:var(--bg-primary);background-image:var(--artwork-workbench-header-dark, none);background-blend-mode:normal;background-size:var(--artwork-workbench-header-dark-size, cover);background-position:var(--artwork-workbench-header-x, center) center}:root[data-theme=dark][data-artwork-preview] .account-topbar{background-color:var(--bg-primary);background-image:var(--artwork-account-header-dark, none);background-blend-mode:normal;background-size:var(--artwork-account-header-dark-size, cover);background-position:var(--artwork-account-header-x, center) center}@media(max-width:720px){:root[data-artwork-preview] .workbench-topbar,:root[data-artwork-preview] .account-topbar{background-size:var(--artwork-workbench-header-size, 100% 100%, 100% 100%, auto 76px);background-position:center,var(--artwork-workbench-header-x, right) center,var(--artwork-workbench-header-x, right) var(--artwork-workbench-header-y, calc(50% + 8px) )}:root[data-artwork-preview] .account-topbar{background-size:var(--artwork-account-header-size, 100% 100%, 100% 100%, auto 76px);background-position:center,var(--artwork-account-header-x, right) center,var(--artwork-account-header-x, right) var(--artwork-account-header-y, calc(50% + 8px) )}:root[data-theme=dark][data-artwork-preview] .workbench-topbar,:root[data-theme=dark][data-artwork-preview] .account-topbar{background-size:var(--artwork-workbench-header-dark-size-phone, cover);background-position:var(--artwork-workbench-header-x, center) center}:root[data-theme=dark][data-artwork-preview] .account-topbar{background-size:var(--artwork-account-header-dark-size-phone, cover);background-position:var(--artwork-account-header-x, center) center}}:root[data-layout=mobile][data-artwork-preview]{--artwork-header-width: calc(39px * 2928 / 352)}:root[data-artwork-preview] .settings-section{background-color:color-mix(in srgb,var(--bg-secondary) 84%,transparent)}:root[data-artwork-preview] .dashboard-content{background-image:var(--artwork-dashboard-field-light, none)}:root[data-artwork-preview] .settings-content{background-image:var(--artwork-settings-field-light, none)}:root[data-artwork-preview] .authenticated-layout>.landing-page:has(.help-page){background-image:var(--artwork-information-field-light, none)}:root[data-theme=dark][data-artwork-preview] .dashboard-content{background-image:var(--artwork-dashboard-field-dark, none)}:root[data-theme=dark][data-artwork-preview] .settings-content{background-image:var(--artwork-settings-field-dark, none)}:root[data-theme=dark][data-artwork-preview] .authenticated-layout>.landing-page:has(.help-page){background-image:var(--artwork-information-field-dark, none)}:root[data-artwork-preview] .dashboard-content,:root[data-artwork-preview] .settings-content,:root[data-artwork-preview] .authenticated-layout>.landing-page:has(.help-page){background-size:cover;background-position:center top;background-repeat:no-repeat;--text-secondary: color-mix(in srgb, var(--text-primary) 70%, var(--bg-secondary))}:root[data-artwork-preview] .dashboard-project-dialog{background-image:var(--artwork-project-dialog-light, none);background-size:100% 100%,100% 78px;background-position:top center;background-repeat:no-repeat}:root[data-theme=dark][data-artwork-preview] .dashboard-project-dialog{background-image:var(--artwork-project-dialog-dark, none);background-size:100% 100%,100% 78px,100% 78px}.artwork-preview-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.artwork-preview-option{display:block;min-width:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);cursor:pointer;overflow:hidden}.artwork-preview-option:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.artwork-preview-option:focus-within{outline:2px solid var(--accent);outline-offset:2px}.artwork-preview-option input{position:absolute;opacity:0}.artwork-preview-swatch{display:block;height:60px;border-bottom:1px solid var(--border-color);background-color:var(--bg-primary);background-size:cover;background-position:center}.artwork-preview-option-copy{display:block;padding:10px 11px 12px}.artwork-preview-option-copy strong,.artwork-preview-option-copy small{display:block}.artwork-preview-option-copy small{margin-top:4px;color:var(--text-secondary);line-height:1.4}@media(max-width:720px){.artwork-preview-options{grid-template-columns:1fr}.artwork-preview-option{display:flex}.artwork-preview-swatch{flex:0 0 88px;height:auto;border-bottom:0;border-right:1px solid var(--border-color)}}.artwork-admin-preview-notice{position:fixed;z-index:1000;inset:auto 16px 16px auto;display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);box-shadow:0 5px 20px #0002;font-size:.82rem}.artwork-admin-preview-notice button{border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}*{margin:0;padding:0;box-sizing:border-box}body{font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
