:root{--bg:#14171a;--panel:#1c2024;--panel-alt:#20252a;--border:#2a2f35;--text:#e8e8e8;--text-dim:#9aa3ac;--accent-data:#4fd1e8;--accent-power:#f5a623;--danger:#e5484d;--warning:#f5a623;--ok:#3dd68c;--mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--sans:"Inter", -apple-system, "Segoe UI", sans-serif;--canvas-bg:#0a0c0e;--selected-bg:#1a2a2e;--danger-text:#ff8a8e;--on-accent:#0a0c0e}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px}.app-shell{flex-direction:column;height:100vh;display:flex}.app-header{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:14px;padding:14px 22px;display:flex}.brand{align-items:center;gap:12px;display:flex}.planner-brand-mark{font-family:var(--mono);background:var(--accent-data);color:var(--on-accent);border-radius:6px;padding:6px 8px;font-size:15px;font-weight:700}.brand h1{margin:0;font-size:16px}.brand p{color:var(--text-dim);margin:2px 0 0;font-size:12px}.view-tabs{gap:6px;display:flex}.view-tabs button{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:9px 16px;font-size:12px;display:inline-flex}.view-tabs button svg{flex-shrink:0;width:14px;height:14px}.view-tabs button.active{background:var(--accent-data);color:var(--on-accent);border-color:var(--accent-data)}.view-tabs-link-btn{padding:9px 10px}.view-tabs-link-btn.active{background:var(--accent-power);border-color:var(--accent-power);color:var(--on-accent)}.linked-view-row{flex:1;gap:14px;min-height:0;display:flex}.linked-pane{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.linked-pane-label{font-family:var(--mono);color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;font-size:11px}@media (width<=900px){.linked-view-row{flex-direction:column}}.app-toolbar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:10px 22px;display:flex}.btn-guided{color:#fff;cursor:pointer;font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;background:#8b5cf6;border:1px solid #8b5cf6;border-radius:6px;align-items:center;gap:6px;padding:9px 16px;font-size:12px;font-weight:600;display:inline-flex}.btn-guided svg{flex-shrink:0;width:15px;height:15px}.btn-guided:hover{background:#7c4fe0;border-color:#7c4fe0}.guide-btn{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.guide-btn svg{width:16px;height:16px}.file-menu{margin-left:8px;position:relative}.file-menu-trigger{align-items:center;gap:5px;display:flex}.file-menu-caret{font-size:9px}.file-menu-dropdown{z-index:40;background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;min-width:210px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 28px #0006}.file-menu-dropdown button{color:var(--text);text-align:left;cursor:pointer;font-size:12.5px;font-family:var(--sans);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:9px 10px;display:flex}.file-menu-dropdown button svg{width:15px;height:15px;color:var(--text-dim);flex-shrink:0}.file-menu-dropdown button:hover{background:var(--panel-alt)}.file-menu-sep{background:var(--border);height:1px;margin:6px 4px}.file-menu-field{color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;flex-direction:column;gap:5px;padding:6px 10px 4px;font-size:11px;display:flex}.file-menu-field .theme-select{width:100%}.project-error-bar{color:var(--danger-text);background:#e5484d1f;border-bottom:1px solid #e5484d4d;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 22px;font-size:12.5px;display:flex}.cabling-tech-row{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px 16px;padding:10px 22px;display:flex}.cabling-tech-row-label{font-family:var(--mono);color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.cabling-tech-brands{flex-wrap:wrap;gap:6px;display:flex}.cabling-tech-brands button{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;font-family:var(--mono);background:0 0;border-radius:6px;padding:7px 14px;font-size:12px}.cabling-tech-brands button.active{background:var(--accent-data);color:var(--on-accent);border-color:var(--accent-data)}.cabling-tech-coexmode{flex-wrap:wrap;gap:6px;margin-left:4px;display:flex}.cabling-tech-coexmode label{color:var(--text-dim);cursor:pointer;align-items:center;gap:5px;font-size:12px;display:flex}.cabling-tech-coexmode input{accent-color:var(--accent-data)}.beta-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);border:1px solid var(--border);background:#9aa3ac26;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:9px;font-weight:700}.wizard-overlay{z-index:1000;background:#06080ab8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.wizard-modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:min(980px,96vw);max-height:92vh;display:flex;box-shadow:0 20px 60px #00000073}.wizard-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 26px;display:flex}.wizard-header h2{margin:0;font-size:22px}.wizard-header .btn-icon{padding:4px 10px;font-size:18px}.wizard-steps-nav{border-bottom:1px solid var(--border);flex-shrink:0;gap:6px;padding:18px 26px;display:flex;overflow-x:auto}.wizard-step-dot{cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:6px;min-width:90px;padding:6px 4px;display:flex}.wizard-step-num{width:32px;height:32px;font-size:14px;font-family:var(--mono);color:var(--text-dim);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;margin:0 auto;display:flex}.wizard-step-dot.active .wizard-step-num{background:var(--accent-data);color:var(--on-accent);border-color:var(--accent-data)}.wizard-step-dot.done .wizard-step-num{background:color-mix(in srgb, var(--accent-data) 20%, transparent);border-color:var(--accent-data);color:var(--accent-data)}.wizard-step-label{color:var(--text-dim);text-align:center;font-size:13px}.wizard-step-dot.active .wizard-step-label{color:var(--text);font-weight:600}.wizard-body{flex:1;min-height:0;padding:26px;font-size:15px;overflow-y:auto}.about-overlay{z-index:1000;background:#06080ab8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.about-modal{background:var(--panel);border:1px solid var(--border);text-align:center;border-radius:12px;width:min(440px,96vw);padding:30px 28px 24px;position:relative;box-shadow:0 20px 60px #00000073}.about-close{padding:4px 10px;font-size:16px;position:absolute;top:10px;right:10px}.about-logo{width:auto;height:56px;margin:0 auto 18px;display:block}.about-version{text-align:center;font-family:var(--mono);letter-spacing:.04em;color:var(--text-dim);margin:0 0 14px;font-size:11px}.about-description{color:var(--text);margin:0 0 22px;font-size:14px;line-height:1.55}.about-footer{border-top:1px solid var(--border);text-align:left;align-items:center;gap:12px;padding-top:18px;display:flex}.about-footer-logo{flex-shrink:0;width:auto;height:26px}.about-footer-logo-light,[data-theme=light] .about-footer-logo-dark{display:none}[data-theme=light] .about-footer-logo-light{display:block}.about-footer p{color:var(--text-dim);margin:0;font-size:12.5px;line-height:1.5}.about-footer a{color:var(--accent-ink)}.pixelmap-modal{text-align:left;width:min(560px,96vw)}.pixelmap-title{margin:0 0 16px;font-size:18px}.pixelmap-mode-label{color:var(--text-dim);flex-direction:column;gap:5px;margin-bottom:16px;font-size:10.5px;font-weight:500;display:flex}.pixelmap-mode-hint{color:var(--warning);font-size:10.5px}.pixelmap-preview{align-items:flex-start;gap:14px;margin-top:4px;display:flex}.pixelmap-preview-svg{border-radius:2px;flex:none}.pixelmap-canvas-options{flex-direction:column;gap:4px;display:flex}.pixelmap-canvas-options-title{color:var(--text-dim);margin-bottom:2px;font-size:10.5px;font-weight:500}.pixelmap-canvas-option{color:var(--text);cursor:pointer;align-items:center;gap:7px;margin:0;font-size:12px;font-weight:400;display:flex}.pixelmap-canvas-option input[type=radio]{accent-color:var(--accent-data);cursor:pointer;margin:0}.pixelmap-canvas-options .hint{margin-top:4px}.pixelmap-modal .field-grid input[type=color]{cursor:pointer;height:38px;padding:3px}.pixelmap-modal .export-row{margin-top:18px}.pixelmap-modal .export-row .btn-primary{width:100%}.wizard-step-content{flex-direction:column;gap:14px;display:flex}.wizard-step-content>.hint:first-child{margin-bottom:4px;font-size:14.5px;line-height:1.5}.wizard-body .hint{font-size:13.5px}.wizard-body .field-grid{gap:12px 16px}.wizard-body .field-grid label{gap:5px;font-size:13px}.wizard-body .field-grid input,.wizard-body .field-grid select,.wizard-body .field-grid textarea{min-height:38px;padding:9px 10px;font-size:15px}.wizard-body .btn-ghost,.wizard-body .btn-icon,.wizard-body .btn-primary{padding:9px 14px;font-size:14px}.wizard-body .mode-toggle button{padding:9px 10px;font-size:13.5px}.wizard-body .controller-spec-row{padding:5px 0;font-size:14px}.wizard-body .cabling-tech-brands button{padding:10px 18px;font-size:14px}.wizard-body .cabling-tech-coexmode label{font-size:14px}.wizard-summary-grid{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;margin-bottom:18px;padding-bottom:18px;display:flex}.wizard-summary-grid .physical-label,.wizard-summary-grid .physical-value{font-size:15px}.wizard-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 26px;display:flex}.wizard-footer-nav{gap:10px;display:flex}.wizard-footer .btn-ghost,.wizard-footer .btn-primary{padding:10px 16px;font-size:14px}.wizard-assign-prompt{background:color-mix(in srgb, var(--accent-data) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent-data) 35%, transparent);border-radius:8px;margin-top:12px;padding:16px 18px}.wizard-assign-prompt p{margin:0 0 12px;font-size:15px}.wizard-assign-prompt-actions{gap:10px;display:flex}.powered-by{align-items:center;gap:10px;margin-left:auto;text-decoration:none;display:flex}.powered-by-label{color:var(--text-dim);font-size:10.5px;font-family:var(--mono);white-space:nowrap}.powered-by-logo{width:auto;height:34px;display:block}.summary-bar{background:var(--panel);border-bottom:1px solid var(--border);font-family:var(--mono);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:22px;padding:10px 22px;display:flex}.summary-item{flex-direction:column;gap:1px;display:flex}.summary-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-size:9.5px}.summary-value{font-size:14px;font-weight:600}.summary-value.accent-data{color:var(--accent-data)}.summary-value.accent-power{color:var(--accent-power)}.summary-value-sub{color:var(--text-dim);font-size:11px;font-weight:400}.summary-sep{background:var(--border);width:1px;height:26px}.summary-loading{color:var(--text-dim);font-size:11px;font-style:italic}.summary-bar-3phase{background:var(--bg);padding:8px 22px}.summary-value.warn{color:var(--danger);font-size:12px;font-weight:500}.summary-value.equiv{color:var(--ok);font-size:12px}.three-phase-cuts .summary-value{gap:6px;display:flex}.cut-chip{font-family:var(--mono);border:1px solid var(--border);color:var(--text-dim);border-radius:10px;padding:2px 8px;font-size:11px}.cut-chip-active{border-color:var(--accent-power);color:var(--accent-power);font-weight:700}.phase-balance-table{border-collapse:collapse;width:100%;font-family:var(--mono);margin:4px 0 10px;font-size:11.5px}.phase-balance-table th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);padding:4px 0;font-weight:500}.phase-balance-table td{border-bottom:1px solid var(--border);padding:5px 0}.phase-chip{font-family:var(--mono);border:1px solid var(--border);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700}.phase-chip.phase-L1{color:var(--accent-data);border-color:var(--accent-data)}.phase-chip.phase-L2{color:var(--accent-power);border-color:var(--accent-power)}.phase-chip.phase-L3{color:var(--ok);border-color:var(--ok)}.phase-balance .physical-value.equiv{flex-wrap:wrap;gap:6px;display:flex}.phase-pie-row{align-items:center;gap:16px;margin-top:12px;display:flex}.phase-pie{flex-shrink:0}.phase-slice{stroke:var(--panel);stroke-width:1.5px}.phase-slice.phase-L1{fill:var(--accent-data)}.phase-slice.phase-L2{fill:var(--accent-power)}.phase-slice.phase-L3{fill:var(--ok)}.phase-pie-empty{fill:none;stroke:var(--border);stroke-width:1.5px;stroke-dasharray:3 3}.phase-pie-legend{font-family:var(--mono);flex-direction:column;gap:6px;font-size:12px;display:flex}.phase-pie-legend-row{align-items:center;gap:8px;display:flex}.phase-pie-pct{color:var(--text);min-width:36px;font-weight:700}.phase-pie-watts{color:var(--text-dim)}.app-body{flex:1;min-height:0;display:flex}.sidebar{border-right:1px solid var(--border);background:var(--panel);scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex-shrink:0;gap:10px;min-height:0;padding:14px;display:flex;overflow:hidden auto}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.sidebar::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.output-sidebar{border-right:none;border-left:1px solid var(--border)}.resizer{cursor:col-resize;background:0 0;flex-shrink:0;width:6px;position:relative}.resizer:after{content:"";background:var(--border);width:2px;position:absolute;top:0;bottom:0;left:2px}.resizer:hover:after,.resizer:active:after{background:var(--accent-data)}.preview-area{background:var(--bg);flex-direction:column;flex:1;gap:10px;min-width:0;padding:16px;display:flex;overflow:hidden}.icon-rail{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;align-items:center;gap:6px;width:68px;padding:14px 0;display:flex;overflow-y:auto}.icon-rail-group{flex-direction:column;align-items:center;gap:6px;display:flex}.icon-rail-divider{background:var(--border);width:36px;height:1px;margin:10px 0}.icon-rail-btn{cursor:pointer;width:52px;height:52px;color:var(--text-dim);background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;display:flex;position:relative}.icon-rail-btn:hover{background:var(--panel-alt);border-color:var(--border);color:var(--text)}.icon-rail-btn.active{background:color-mix(in srgb, var(--accent-data) 18%, transparent);border-color:var(--accent-data);color:var(--accent-data)}.icon-rail-icon{line-height:1;display:flex}.icon-rail-icon svg{width:25px;height:25px}.icon-rail-warn-dot{background:var(--warning);border:1.5px solid var(--panel);border-radius:50%;width:10px;height:10px;position:absolute;top:5px;right:5px}.icon-rail-spacer{flex:1;min-height:10px}.drawer-panel{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:min(460px,92%);display:flex}.drawer-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.drawer-header h3{margin:0;font-size:17px}.drawer-body{--field-grid-cols:1fr;flex:1;min-height:0;padding:18px 20px;font-size:14px;overflow-y:auto}.drawer-section-alerts{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.drawer-power-supply{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:16px;padding-top:16px;display:flex}.drawer-body .hint{font-size:13px}.drawer-body .info-box{padding:10px 12px;font-size:13px}.drawer-body .field-grid{gap:12px}.drawer-body .field-grid label{gap:5px;font-size:13px}.drawer-body .field-grid input,.drawer-body .field-grid select,.drawer-body .field-grid textarea{min-height:40px;padding:9px 11px;font-size:14.5px}.drawer-body .btn-ghost,.drawer-body .btn-icon,.drawer-body .btn-primary{padding:9px 14px;font-size:14px}.drawer-body .mode-toggle button{padding:10px;font-size:13.5px}.drawer-body .module-card{padding:13px}.drawer-body .module-name{font-size:14px}.drawer-body .watts-label-text{font-size:13px}.drawer-body .controller-name{font-size:15px}.drawer-body .controller-family{font-size:12px}.drawer-body .controller-spec-row{padding:5px 0;font-size:13.5px}.drawer-body .controller-evaluation{font-size:13.5px}.drawer-body .line-row{gap:10px;font-size:13px}.drawer-body .physical-row{font-size:14px}.drawer-body .h4-row h4{font-size:14.5px}.drawer-body .cabling-tech-brands{flex-direction:column;align-items:stretch}.drawer-body .cabling-tech-brands button{text-align:left;padding:10px 14px;font-size:14px}.drawer-body .cabling-tech-coexmode{flex-direction:column;align-items:flex-start;gap:10px;margin-left:0}.drawer-body .cabling-tech-coexmode label{font-size:14px}.drawer-body .export-row{flex-direction:column}.drawer-body .export-row .btn-primary{box-sizing:border-box;width:100%}.dashboard-empty{padding:24px;font-size:15px}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));align-content:start;gap:18px;height:100%;padding:4px;display:grid;overflow-y:auto}.dashboard-tile{text-align:left;background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;gap:10px;padding:20px 22px;display:flex}.dashboard-tile:hover{border-color:var(--accent-data)}.dashboard-tile.status-ok{border-color:color-mix(in srgb, var(--ok) 55%, var(--border))}.dashboard-tile.status-warn{border-color:var(--warning)}.dashboard-tile.status-danger{border-color:var(--danger)}.dashboard-tile.status-warn:hover,.dashboard-tile.status-danger:hover{border-color:var(--accent-data)}.dashboard-hint-danger{color:var(--danger-text)}.dashboard-hint-warn{color:var(--warning)}.dashboard-tile h4{color:var(--text);border-bottom:1px solid var(--border);margin:0 0 6px;padding-bottom:8px;font-size:16px;font-weight:700}.dashboard-tile-row{justify-content:space-between;align-items:baseline;gap:12px;font-size:15px;display:flex}.dashboard-tile-row span{color:var(--text-dim)}.dashboard-tile-row b{color:var(--text);font-size:16px;font-weight:700}.dashboard-tile-row-detail{opacity:.75;font-size:11.5px;font-weight:400}.dashboard-tile .hint{color:var(--text-dim);font-size:14px}.dashboard-tile-warnings{cursor:default}.dashboard-warning-row{text-align:left;cursor:pointer;width:100%;color:var(--danger-text);border:none;border-bottom:1px solid var(--border);background:0 0;padding:8px 0;font-size:14.5px;line-height:1.4;display:block}.dashboard-warning-row.suggestion{color:var(--text)}.dashboard-warning-row:last-child{border-bottom:none}.legal-drawer-links{flex-direction:column;gap:10px;display:flex}.legal-drawer-link{border:1px solid var(--border);background:var(--panel-alt);color:var(--text);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;font-size:14.5px;text-decoration:none;display:flex}.legal-drawer-link:hover{border-color:var(--accent-data);color:var(--accent-data)}.legal-drawer-link-arrow{color:var(--text-dim);font-size:16px}.legal-drawer-link:hover .legal-drawer-link-arrow{color:var(--accent-data)}.summary-warn-badge{background:color-mix(in srgb, var(--warning) 16%, transparent);border:1px solid color-mix(in srgb, var(--warning) 45%, transparent);color:var(--warning);font-family:var(--mono);cursor:pointer;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:4px 10px;font-size:11.5px;display:inline-flex}.summary-warn-badge svg{flex-shrink:0;width:13px;height:13px}.app-subtitle-brand{color:var(--accent-data);font-weight:600}.preview-legend{font-family:var(--mono);color:var(--text-dim);flex-shrink:0;padding-right:150px;font-size:12px;position:relative}.mounting-labels-toggle{cursor:pointer;white-space:nowrap;color:var(--text-dim);align-items:center;gap:6px;display:flex;position:absolute;top:0;right:0}.mounting-labels-toggle input{cursor:pointer;accent-color:var(--accent-data)}.mounting-labels-toggle:hover{color:var(--text)}.module-legend{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.legend-chip{color:var(--text);align-items:center;gap:5px;font-size:11px;display:flex}.legend-swatch{border-radius:3px;width:11px;height:11px;display:inline-block}.viewport{background:var(--canvas-bg);border:1px solid var(--border);border-radius:8px;flex:1;min-height:0;position:relative;overflow:hidden}.viewport-content{position:absolute;top:0;left:0}.wall-svg{background:var(--canvas-bg);display:block}.route-control{background:var(--panel);border:1.5px solid var(--accent-data);z-index:20;border-radius:20px;justify-content:space-between;align-items:center;gap:8px;width:260px;padding:6px 8px;display:flex;position:absolute;box-shadow:0 4px 14px #0006}.route-control-btn{background:var(--panel-alt);border:1.5px solid var(--accent-data);width:36px;height:36px;color:var(--accent-data);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;font-weight:700;line-height:1;display:flex}.route-control-btn:hover{background:var(--accent-data);color:var(--on-accent)}.route-control-btn:active{transform:scale(.94)}.route-control-label{font-family:var(--mono);color:var(--accent-data);text-align:center;flex:1;font-size:11px}.cell-context-menu{z-index:100;background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:200px;padding:4px;position:fixed;box-shadow:0 8px 24px #00000080}.cell-context-menu button{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:8px 10px;font-size:12px;display:block}.cell-context-menu button:hover{background:var(--panel-alt);color:var(--accent-data)}.zoom-controls{border:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#14171aeb;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;display:flex;position:absolute;bottom:14px;right:14px}.zoom-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:5px;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;line-height:1;display:flex}.zoom-btn.zoom-reset,.zoom-btn.zoom-fit{width:auto;font-size:11px;font-family:var(--mono);padding:0 8px}.zoom-slider{width:90px}.zoom-pct{font-family:var(--mono);color:var(--text-dim);text-align:right;min-width:34px;font-size:11px}.collapsible{border:1px solid var(--border);background:var(--panel-alt);border-radius:8px;flex-shrink:0;overflow:hidden}.collapsible-header{align-items:center;gap:6px;width:100%;padding:9px 10px 9px 12px;display:flex}.collapsible-header-toggle{cursor:pointer;color:var(--text);letter-spacing:.01em;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;padding:0;font-family:inherit;font-size:12.5px;font-weight:600;display:flex}.collapsible-header .chev{color:var(--text-dim);transition:transform .15s}.collapsible-header .chev.open{transform:rotate(180deg)}.collapsible-body{padding:3px 12px 12px}.help-wrap{flex-shrink:0;display:inline-flex;position:relative}.help-btn{border:1px solid var(--text-dim);width:18px;height:18px;color:var(--text-dim);cursor:pointer;font-size:11px;font-weight:700;line-height:1;font-family:var(--sans);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.help-btn:hover{border-color:var(--accent-data);color:var(--accent-data)}.help-popover{background:var(--panel);border:1px solid var(--accent-data);z-index:50;border-radius:8px;width:260px;max-width:80vw;padding:12px 14px;position:absolute;top:26px;right:0;box-shadow:0 8px 24px #00000080}.help-popover-text{color:var(--text);letter-spacing:normal;white-space:pre-line;font-size:11.5px;font-weight:400;line-height:1.55}.panel-toolbar{margin-bottom:8px}.info-box{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;margin-top:10px;padding:8px 10px;font-size:11px;line-height:1.45}.info-box strong{color:var(--text);margin-bottom:3px;display:block}.info-box ol{margin:5px 0 0;padding-left:16px}.info-box li{margin-bottom:2px}.hint{color:var(--text-dim);margin:3px 0 6px;font-size:11px}.field-grid{grid-template-columns:var(--field-grid-cols,minmax(0, 1fr) minmax(0, 1fr));gap:8px 10px;display:grid}.field-grid label{color:var(--text-dim);flex-direction:column;gap:3px;min-width:0;font-size:10.5px;font-weight:500;display:flex}.field-grid-span-all{grid-column:1/-1}.field-grid input,.field-grid select,.field-grid textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--mono);box-sizing:border-box;border-radius:5px;width:100%;min-width:0;min-height:30px;padding:6px 8px;font-size:12px}.field-grid textarea{resize:vertical;font-family:var(--sans);line-height:1.4}.field-grid input:focus,.field-grid select:focus,.field-grid textarea:focus{border-color:var(--accent-data);outline:none}.doc-info-grid input[type=file]{min-height:auto;padding:5px 6px;font-size:11px}.logo-preview-row{align-items:center;gap:10px;margin-top:2px;display:flex}.logo-preview{object-fit:contain;background:#fff;border-radius:4px;max-width:140px;max-height:40px;padding:3px}.watts-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:1px 5px;font-size:9px;font-weight:700}.watts-badge.auto{color:var(--ok);background:#3dd68c26}.watts-badge.custom{color:var(--accent-power);background:#f5a62326}.watts-label-row{justify-content:space-between;align-items:center;gap:4px;min-width:0;display:flex}.watts-label-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.watts-badge{flex-shrink:0}.watts-auto-btn{box-sizing:border-box;grid-column:1/-1;width:100%;margin-top:1px;padding:5px 7px;font-size:10.5px}.pitch-calc-btn{box-sizing:border-box;white-space:normal;grid-column:1/-1;width:100%;margin-top:1px;padding:6px 8px;font-size:11px}.module-list{flex-direction:column;gap:8px;display:flex}.module-card{border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:10px}.module-card.selected{border-color:var(--accent-data);background:var(--selected-bg)}.module-card.half-module{cursor:default;background:repeating-linear-gradient(135deg,#0000,#0000 10px,#ffffff05 10px 20px)}.module-card.half-module.selected{border-color:var(--border);background:0 0}.half-module-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);border:1px solid var(--border);background:#9aa3ac26;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:9px;font-weight:700}.modal-overlay{z-index:200;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--panel);border:1px solid var(--accent-data);border-radius:10px;width:360px;max-width:88vw;padding:20px 22px;box-shadow:0 12px 32px #00000080}.modal-title{color:var(--text);margin:0 0 8px;font-size:14px;font-weight:700}.modal-text{color:var(--text-dim);margin:0 0 18px;font-size:12.5px;line-height:1.55}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.modal-actions .btn-primary{flex:none;padding:8px 16px}.modal-actions .btn-ghost{padding:8px 16px}.module-swatch{border-radius:4px;flex-shrink:0;width:12px;height:12px}.module-card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.module-name{color:var(--text);background:0 0;border:none;flex:1;min-width:0;padding:3px 0;font-size:12.5px;font-weight:600}.module-name:focus{border-bottom:1px solid var(--accent-data);outline:none}.btn-ghost,.btn-icon,.btn-primary{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;font-size:11.5px}.btn-ghost{padding:6px 10px}.btn-icon{color:var(--danger);border-color:#0000;padding:3px 7px}.btn-primary{background:var(--accent-data);color:var(--on-accent);border-color:var(--accent-data);flex:1;padding:9px 12px;font-weight:600}.theme-select{background:var(--panel);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 8px;font-size:11.5px}.theme-select:hover{border-color:var(--accent-data)}.theme-select option{background:var(--panel);color:var(--text)}.flag-icon{border-radius:2px;flex-shrink:0;display:block}.lang-menu{position:relative}.lang-menu-trigger{background:var(--panel);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:11.5px;display:flex}.lang-menu-trigger:hover{border-color:var(--accent-data)}.lang-menu-dropdown{z-index:40;background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;min-width:170px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 28px #0006}.lang-menu-dropdown button{color:var(--text);text-align:left;cursor:pointer;font-size:12.5px;font-family:var(--sans);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;display:flex}.lang-menu-dropdown button:hover{background:var(--panel-alt)}.lang-menu-dropdown button.active{background:color-mix(in srgb, var(--accent-data) 16%, transparent)}.export-row{gap:8px;margin-top:10px;display:flex}.panel{background:var(--panel-alt);border:1px solid var(--border);border-radius:8px;padding:12px}.panel-header{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.panel-header h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin:0;font-size:12px}.output-panel h4{text-transform:uppercase;color:var(--text-dim);margin:12px 0 6px;font-size:11px}.h4-row{justify-content:space-between;align-items:center;gap:8px;margin:12px 0 6px;display:flex}.h4-row h4{margin:0}.mode-toggle{border:1px solid var(--border);border-radius:6px;display:flex;overflow:hidden}.mode-toggle button{color:var(--text-dim);cursor:pointer;border:none;border-right:1px solid var(--border);background:0 0;flex:1;padding:7px 8px;font-size:11px;font-weight:600}.mode-toggle button:last-child{border-right:none}.mode-toggle button.active{background:var(--accent-data);color:var(--on-accent)}.mode-toggle button:disabled{opacity:.4;cursor:not-allowed}.materials-module-list{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.materials-module-list .physical-row:last-child{border-top:1px solid var(--border);padding-top:6px}.materials-table{border-collapse:collapse;width:100%;font-family:var(--mono);margin-top:4px;font-size:11.5px}.materials-table th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);padding:4px 0;font-weight:500}.materials-table td{border-bottom:1px solid var(--border);padding:6px 0}.materials-table td:first-child{color:var(--text-dim)}.materials-table td:not(:first-child){text-align:center;font-weight:600}.line-list{flex-direction:column;gap:5px;display:flex}.line-row{font-family:var(--mono);align-items:center;gap:8px;font-size:11.5px;display:flex}.physical-panel{flex-direction:column;gap:8px;display:flex}.physical-row{justify-content:space-between;align-items:center;font-size:12.5px;display:flex}.physical-label{color:var(--text-dim)}.physical-value{align-items:center;gap:6px;font-weight:600;display:flex}.physical-avg-input{color:var(--text-dim);align-items:center;gap:3px;margin-left:4px;font-size:11px;font-weight:400;display:inline-flex}.physical-avg-input input{background:var(--bg);border:1px solid var(--border);width:44px;color:var(--text);text-align:right;border-radius:4px;padding:2px 4px;font-size:11px}.line-row .tag{background:var(--bg);border:1px solid var(--border);color:var(--accent-data);border-radius:4px;padding:2px 7px}.port-load{flex-shrink:0;align-items:center;gap:5px;margin-left:auto;display:flex}.port-load-bar{background:var(--bg);border:1px solid var(--border);border-radius:3px;flex-shrink:0;width:54px;height:9px;overflow:hidden}.port-load-fill{border-radius:2px;height:100%;display:block}.port-load-fill.ok{background:var(--ok)}.port-load-fill.warning{background:var(--accent-power)}.port-load-fill.danger{background:var(--danger)}.port-load-pct{color:var(--text-dim);text-align:right;flex-shrink:0;width:34px;font-size:11.5px}.warning-msg{color:var(--danger-text);background:#e5484d1f;border:1px solid #e5484d4d;border-radius:6px;margin-bottom:6px;padding:7px 9px;font-size:11.5px}.warning-msg.warning{color:var(--accent-power);background:#f5a6231f;border-color:#f5a6234d}.suggestion-msg{color:var(--ok);background:#3dd68c1a;border:1px solid #3dd68c40;border-radius:6px;margin-bottom:6px;padding:7px 9px;font-size:11.5px}.controller-card{border:1px solid var(--border);background:var(--panel-alt);border-radius:8px;padding:12px;position:relative}.controller-card-recommended{border-color:var(--ok);background:#3dd68c0f}.controller-badge{background:var(--ok);color:#0a0c0e;text-transform:uppercase;letter-spacing:.03em;border-radius:10px;padding:3px 8px;font-size:9.5px;font-weight:700;position:absolute;top:-9px;right:10px}.controller-card-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.controller-image{border-radius:4px;flex-shrink:0;width:96px;height:auto}.controller-name{font-size:13px;font-weight:600}.controller-nrnd-badge{letter-spacing:.03em;color:var(--accent-power);vertical-align:middle;background:#f5a6231f;border:1px solid #f5a6234d;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:8.5px;font-weight:700;display:inline-block}.controller-family{color:var(--text-dim);margin-top:1px;font-size:10.5px}.controller-specs{font-family:var(--mono);flex-direction:column;gap:3px;margin:8px 0;font-size:11px;display:flex}.controller-spec-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:8px;padding:2px 0;display:flex}.controller-spec-row span:first-child{color:var(--text-dim)}.controller-spec-row span:last-child{text-align:right}.controller-notes{font-style:italic}.controller-software{margin:8px 0}.controller-software-label{color:var(--text-dim);margin-bottom:5px;font-size:11px;display:block}.controller-software-list{flex-direction:column;gap:5px;display:flex}.controller-software-item{color:var(--accent-data);align-items:center;gap:7px;font-size:12px;text-decoration:none;display:flex}.controller-software-item:hover{text-decoration:underline}.controller-software-type{font-family:var(--mono);letter-spacing:.03em;border:1px solid var(--border);color:var(--text-dim);border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:9.5px;font-weight:700}.controller-software-type-webapp{color:var(--ok);border-color:var(--ok)}.controller-software-type-mobile{color:var(--accent-power);border-color:var(--accent-power)}.controller-evaluation{flex-direction:column;gap:4px;margin-top:8px;display:flex}.controller-evaluation .warning-msg,.controller-evaluation .suggestion-msg{margin-bottom:0}.controller-disclaimer{margin-top:10px;font-style:italic}@media (width<=900px){.app-body{flex-direction:column}.sidebar{width:100%!important;min-width:0!important;max-width:none!important}.resizer{display:none}.output-sidebar{border:none;border-top:1px solid var(--border);width:100%}}:root[data-theme=light]{--bg:#eef1f4;--panel:#fff;--panel-alt:#f7f9fa;--border:#d3d9df;--text:#1b1f23;--text-dim:#5b6570;--accent-data:#0a84c0;--accent-power:#b8690a;--danger:#c6303a;--warning:#b8690a;--ok:#1c9a5a;--canvas-bg:#d8dee4;--selected-bg:#dceef5;--danger-text:#b3261e;--on-accent:#fff}[data-theme=light] .warning-msg{background:#c6303a14}[data-theme=light] .warning-msg.warning{background:#b8690a1a}[data-theme=light] .suggestion-msg{background:#1c9a5a14}.guide-modal{text-align:left;flex-direction:column;width:min(1120px,96vw);height:min(84vh,880px);padding:0;display:flex;overflow:hidden}.guide-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:14px 18px;display:flex}.guide-title{white-space:nowrap;margin:0;font-size:17px;font-weight:700}.guide-search{background:var(--bg);border:1px solid var(--border);min-width:160px;max-width:420px;color:var(--text);font-family:var(--sans);border-radius:5px;flex:1;min-height:32px;padding:6px 10px;font-size:13px}.guide-search:focus{border-color:var(--accent-data);outline:none}.guide-shortcut{color:var(--text-dim);white-space:nowrap;margin-left:auto;font-size:11px}.guide-close{padding:4px 10px;font-size:16px}.guide-body{flex:1;grid-template-columns:290px 1fr;min-height:0;display:grid}.guide-tree{border-right:1px solid var(--border);padding:10px 8px;overflow:auto}.guide-results-note{color:var(--text-dim);padding:4px 8px 8px;font-size:11.5px}.guide-chapter{margin-bottom:4px}.guide-chapter-btn,.guide-section-btn{text-align:left;width:100%;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 8px;font-size:13px}.guide-chapter-btn{justify-content:space-between;align-items:center;font-weight:600;display:flex}.guide-chapter-caret{color:var(--text-dim);font-size:11px}.guide-section-btn{color:var(--text-dim);padding-left:22px;font-weight:400}.guide-chapter-btn:hover,.guide-section-btn:hover{color:var(--text);background:#7f7f7f1f}.guide-section-btn.active{background:var(--accent-data);color:var(--on-accent)}.guide-content{padding:20px 28px 28px;overflow:auto}.guide-crumb{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px}.guide-section-title{margin:4px 0 14px;font-size:21px;line-height:1.25}.guide-content p,.guide-content li{color:var(--text);font-size:14px;line-height:1.6}.guide-content p{margin:0 0 12px}.guide-content ul{margin:0 0 12px 18px;padding:0}.guide-content li{margin-bottom:5px}.guide-content mark{background:var(--accent-data);color:var(--on-accent);border-radius:2px;padding:0 2px}.guide-empty{color:var(--text-dim);font-size:13.5px}.guide-nav{border-top:1px solid var(--border);justify-content:space-between;gap:12px;margin-top:24px;padding-top:14px;display:flex}.guide-nav button{text-overflow:ellipsis;white-space:nowrap;max-width:48%;overflow:hidden}@media (width<=900px){.guide-body{grid-template-columns:1fr}.guide-tree{border-right:none;border-bottom:1px solid var(--border);max-height:40%}}.release-card{z-index:900;background:var(--panel);border:1px solid color-mix(in srgb, var(--accent-data) 40%, var(--border));border-radius:10px;width:min(360px,100vw - 36px);max-height:calc(100vh - 36px);padding:16px 18px 14px;animation:.22s ease-out release-card-in;position:fixed;bottom:88px;right:18px;overflow-y:auto;box-shadow:0 14px 40px #0000006b}@keyframes release-card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.release-card{animation:none}}.release-card-head{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.release-card-head svg{width:20px;height:20px;color:var(--accent-data);flex-shrink:0;margin-top:1px}.release-card-head h3{color:var(--text);margin:0;font-size:13.5px;font-weight:600}.release-card-version{font-family:var(--mono);letter-spacing:.03em;color:var(--text-dim);margin:2px 0 0;font-size:10.5px}.release-card-list{margin:0 0 14px;padding-left:18px}.release-card-list li{color:var(--text);margin-bottom:8px;font-size:12.5px;line-height:1.55}.release-card-list li:last-child{margin-bottom:0}.release-card-close{flex:none;width:100%}.about-release-link{margin:0 0 20px}.history-buttons{gap:4px;display:flex}.history-btn{align-items:center;padding:6px 8px;display:inline-flex}.history-btn svg{width:15px;height:15px}.history-btn:disabled{opacity:.35;cursor:default}.label-preview-row{align-items:center;gap:16px;margin:4px 0 6px;display:flex}.label-preview{color:#18191b;border:1px solid var(--border);background:#fff;border-radius:3px;flex-shrink:0;display:flex;position:relative;overflow:hidden}.label-preview-band{background:var(--accent-data);flex-shrink:0;width:8px}.label-preview-body{flex-direction:column;gap:2px;min-width:0;padding:6px 8px;display:flex}.label-preview-coord{font-size:19px;font-weight:700;line-height:1.1}.label-preview-suffix{color:#6b7076;margin-left:5px;font-size:10px;font-weight:400}.label-preview-line{color:#4a4f55;white-space:nowrap;font-size:10px}.label-preview-line b{color:#18191b}.label-preview-col{flex-direction:column;flex:1;justify-content:space-between;min-width:0;display:flex}.label-preview-footer{flex-direction:column;min-width:0;padding:0 8px 5px;display:flex}.label-preview-footer b{color:#18191b;font-size:9px}.label-preview-footer span{color:#6b7076;font-size:8px}.label-preview-footer b,.label-preview-footer span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.screen-tabs{flex-shrink:0;align-items:center;gap:4px;padding:6px 10px 0;display:flex;overflow-x:auto}.screen-tab{max-width:220px;color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:6px 6px 0 0;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:inline-flex}.screen-tab:hover{color:var(--text);background:var(--panel-alt)}.screen-tab.active{background:var(--panel);border-color:var(--border);color:var(--text);font-weight:600}.screen-tab-name{text-overflow:ellipsis;overflow:hidden}.screen-tab-remove{width:15px;height:15px;color:var(--text-dim);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:inline-flex}.screen-tab-remove:hover{background:var(--danger);color:#fff}.screen-tab-input{background:var(--panel);max-width:220px;color:var(--text);border:1px solid var(--accent-data);border-radius:6px 6px 0 0;padding:5px 9px;font-size:12px;font-weight:600}.screen-tab-add{position:relative}.screen-tab-add-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:6px;padding:4px 9px;font-size:14px;line-height:1}.screen-tab-add-btn:hover{color:var(--text);border-color:var(--accent-data)}.screen-tab-menu{z-index:1100;background:var(--panel);border:1px solid var(--border);border-radius:8px;width:220px;padding:4px;position:fixed;box-shadow:0 10px 30px #00000073}.screen-tab-menu button{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:7px 10px;font-size:12px;display:block}.screen-tab-menu button:hover{background:var(--panel-alt)}.screen-mirror-warning{color:var(--warning)}.screen-dialog-check{color:var(--text);align-items:center;gap:8px;margin:6px 0 14px;font-size:12.5px;display:flex}.screen-dialog-check input{width:auto}.summary-scope-toggle{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border-radius:5px;margin-left:auto;padding:4px 10px;font-size:10.5px}.summary-scope-toggle:hover{color:var(--text);border-color:var(--accent-data)}.summary-scope-toggle.active{background:color-mix(in srgb, var(--accent-data) 16%, transparent);border-color:var(--accent-data);color:var(--text)}.project-total-title{border-top:1px solid var(--border);color:var(--accent-data);margin:18px 0 8px;padding-top:12px;font-size:12px}.pixelmap-screens{background:var(--panel-alt);border:1px solid var(--border);border-radius:8px;max-height:170px;margin-bottom:10px;padding:8px 10px;overflow-y:auto}.pixelmap-screens-head{color:var(--text-dim);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:10.5px;font-weight:500;display:flex}.pixelmap-screens-actions{gap:4px;display:flex}.pixelmap-screens-actions .btn-ghost{padding:3px 8px;font-size:10.5px}.pixelmap-screen-row{border-radius:5px;align-items:center;gap:8px;padding:4px 6px;font-size:12px;display:flex}.pixelmap-screen-row.editing{background:color-mix(in srgb, var(--accent-data) 14%, transparent)}.pixelmap-screen-row input{width:auto;margin:0}.pixelmap-screen-name{text-align:left;cursor:pointer;min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;padding:0;font-size:12px;overflow:hidden}.pixelmap-screen-name:hover{color:var(--accent-ink);text-decoration:underline}.pixelmap-screen-res{font-family:var(--mono);color:var(--text-dim);flex-shrink:0;font-size:10.5px}.recovery-bar{background:var(--panel);color:var(--text);border-bottom:1px solid var(--accent-data);justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.recovery-bar-actions{flex-shrink:0;gap:8px;display:flex}.drawer-help{opacity:.65;margin-left:auto;font-weight:700}.drawer-help:hover{opacity:1}.doc-profile-row{flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 12px;display:flex}.doc-profile-row .hint{flex:1;min-width:180px;margin:0}.controller-front{background:0 0;flex-shrink:0;align-self:center;width:116px;height:auto}.history-modal{text-align:left;width:min(640px,92vw);max-width:640px}.history-title{margin:0 0 4px;font-size:17px}.history-list{max-height:58vh;margin-top:12px;padding-right:6px;overflow-y:auto}.history-entry{border-top:1px solid var(--border);padding:10px 0}.history-entry:first-child{border-top:none;padding-top:2px}.history-entry h3{color:var(--accent-data);margin:0 0 6px;font-size:13px;font-weight:600}.history-entry ul{flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}.history-entry li{font-size:13px;line-height:1.45}.history-current{background:var(--accent-data);color:#0c0e10;vertical-align:middle;border-radius:9px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:600}.feedback-modal{text-align:left;width:min(560px,92vw);max-width:560px}.feedback-title{margin:0 0 4px;font-size:17px}.feedback-tipo{margin:12px 0}.feedback-required{color:var(--danger,#e8705f)}.feedback-error{color:var(--danger,#e8705f);margin-top:4px;font-size:12px;display:block}.feedback-privacy{margin-top:10px}.feedback-trap{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}.feedback-btn{white-space:nowrap}.feedback-protocollo{color:var(--muted,#9aa0a6);font-size:12px;font-family:var(--mono,monospace);margin-top:8px}:root{--bg:#14171a;--panel:#1c2024;--panel-alt:#20252a;--border:#2a2f35;--text:#e8e8e8;--text-dim:#9aa3ac;--accent:#4fd1e8;--accent-ink:#8fe3f1;--ok:#3dd68c;--warn:#f5a623;--danger:#e5484d;--sans:"Inter", -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace}@media (prefers-color-scheme:light){:root{--bg:#f1f4f5;--panel:#fff;--panel-alt:#f7f9fa;--border:#dce3e6;--text:#14181b;--text-dim:#57646c;--accent:#0b7788;--accent-ink:#075464}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}.muted{color:var(--text-dim)}.center-note{text-align:center;color:var(--text-dim);padding:60px}.mobile-block-screen{background:var(--bg);justify-content:center;align-items:center;height:100%;padding:32px;display:flex}.mobile-block-card{text-align:center;max-width:380px}.mobile-block-logo{height:32px;margin-bottom:24px}.mobile-block-card h1{margin:0 0 14px;font-size:1.3rem}.mobile-block-card p{color:var(--text-dim);margin:0 0 10px;line-height:1.5}.btn{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel-alt);color:var(--text);border-radius:8px;padding:8px 14px;font-size:14px}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#06232a;font-weight:600}.btn.primary:hover{filter:brightness(1.05)}.btn.ghost{background:0 0}.btn.full{width:100%}.btn.small{padding:4px 9px;font-size:12.5px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-row{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.shell{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:20px;padding:10px 18px;display:flex}.brand{align-items:center;gap:8px;font-weight:700;display:flex}.brand.big{margin-bottom:6px;font-size:1.15rem}.brand-mark{color:var(--ok);font-size:1.1em}.brand-badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent-ink);border:1px solid var(--border);border-radius:5px;padding:1px 6px;font-size:10px}.topnav{gap:6px;display:flex}.topnav a{color:var(--text-dim);border-radius:7px;padding:6px 12px;font-size:14px}.topnav a:hover,.topnav a.active{color:var(--text);background:var(--panel-alt)}.topright{align-items:center;gap:14px;margin-left:auto;display:flex}.who{font-size:13px}.role-pill{font-family:var(--mono);border-radius:999px;padding:1px 7px;font-size:11px}.role-pill.admin{color:var(--accent-ink);background:color-mix(in srgb, var(--accent) 18%, transparent)}.role-pill.member{color:var(--text-dim);border:1px solid var(--border)}.content{width:100%;max-width:900px;margin:0 auto;padding:26px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-bottom:18px;padding:22px 24px}.card h1{margin:0 0 10px;font-size:1.5rem}.card h2{margin:0 0 12px;font-size:1.15rem}.notice{text-align:left;max-width:560px;margin:40px auto}.stub-tag,.status{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.stub-tag{color:var(--warn);border:1px solid var(--border);border-radius:5px;margin-bottom:8px;padding:2px 7px;display:inline-block}.kv{background:var(--border);border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin-top:14px;display:grid;overflow:hidden}.kv>div{background:var(--panel);flex-direction:column;gap:3px;padding:12px 14px;display:flex}.kv .k,.k{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:11px}.kv .v,.v{font-size:15px}.auth-screen{place-items:center;min-height:100%;padding:24px;display:grid}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:380px;padding:30px;display:flex}.auth-clerk{flex-direction:column;align-items:center;gap:4px;display:flex}.field{color:var(--text-dim);flex-direction:column;gap:5px;font-size:13px;display:flex}.field input,.invite-row input,.members select,.plan-row select{font:inherit;border:1px solid var(--border);background:var(--panel-alt);color:var(--text);border-radius:8px;padding:9px 11px}.field input:focus,.invite-row input:focus{outline:2px solid var(--accent);outline-offset:1px}.dev-hint{color:var(--text-dim);border-top:1px dashed var(--border);margin:10px 0 0;padding-top:10px;font-size:12px}.dash h1{margin:0 0 18px}.plan-row{flex-wrap:wrap;gap:26px;margin-bottom:12px;display:flex}.stat{flex-direction:column;gap:3px;display:flex}.status.active{color:var(--ok)}.status.trialing{color:var(--accent-ink)}.status.past_due,.status.canceled{color:var(--danger)}.members{border-collapse:collapse;width:100%;margin-top:6px;font-size:14px}.members th,.members td{text-align:left;border-bottom:1px solid var(--border);padding:9px 10px}.members th{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:11px}.members select{padding:5px 8px}.invite-row{gap:10px;margin-top:14px;display:flex}.invite-row input{flex:1}.card.no-pad{padding:0;overflow:hidden}.clerk-orgprofile{justify-content:center;display:flex}.clerk-orgprofile>*{width:100%}.btn.lg{padding:12px 22px;font-size:15px}.landing{max-width:1000px;margin:0 auto;padding:0 24px 60px}.landing-nav{justify-content:space-between;align-items:center;padding:18px 0;display:flex}.landing-hero{text-align:center;padding:60px 0 40px}.landing-eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);font-size:12px;display:block}.landing-hero h1{letter-spacing:-.02em;max-width:16ch;margin:14px auto 16px;font-size:clamp(2rem,5vw,3.2rem);line-height:1.08}.landing-sub{color:var(--text-dim);max-width:56ch;margin:0 auto 28px;font-size:1.15rem}.landing-cta{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.landing-note{color:var(--text-dim);margin-top:14px;font-size:13px}.landing-features{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;padding:40px 0;display:grid}.landing-feature{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:22px}.landing-feature-icon{color:var(--accent-ink);display:inline-flex}.landing-feature-icon svg{width:28px;height:28px}.landing-feature h3{margin:10px 0 6px;font-size:1.05rem}.landing-feature p{color:var(--text-dim);margin:0;font-size:14px}.landing-pricing{text-align:center;padding:30px 0}.landing-pricing h2{margin-bottom:22px;font-size:1.6rem}.landing-price-card{background:var(--panel);border:1px solid var(--border);text-align:left;border-radius:16px;max-width:380px;margin:0 auto;padding:30px}.landing-price{justify-content:center;align-items:baseline;gap:6px;display:flex}.landing-price-amount{letter-spacing:-.03em;font-size:3rem;font-weight:800}.landing-price-per{color:var(--text-dim);font-size:1.1rem}.landing-price-alt{text-align:center;color:var(--accent-ink);margin:6px 0 18px;font-size:14px}.landing-price-list{margin:0 0 22px;padding:0;list-style:none}.landing-price-list li{border-bottom:1px solid var(--border);padding:8px 0 8px 26px;font-size:14.5px;position:relative}.landing-price-list li:last-child{border-bottom:none}.landing-price-list li:before{content:"✓";color:var(--ok);font-weight:700;position:absolute;left:2px}.landing-footer{border-top:1px solid var(--border);color:var(--text-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:20px;padding-top:30px;font-size:13px;display:flex}.landing-footer-links{flex-wrap:wrap;gap:16px;display:flex}.landing-footer-links a{color:var(--text-dim)}.landing-footer-links a:hover{color:var(--accent)}.landing-logo-wrap{align-items:center;text-decoration:none;display:inline-flex}.landing-logo-wrap:hover{opacity:.85}.landing-logo{width:auto;height:40px;display:block}.logo-on-light{display:none}@media (prefers-color-scheme:light){.logo-on-dark{display:none}.logo-on-light{display:block}}.landing-nav-right{align-items:center;gap:12px;display:flex}.landing-lang{font:inherit;background:var(--panel);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:7px 9px;font-size:13px}.landing-lang option{background:var(--panel);color:var(--text)}.cookie-banner{z-index:2000;background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;max-width:720px;margin:0 auto;padding:12px 16px;display:flex;position:fixed;bottom:16px;left:16px;right:16px;box-shadow:0 8px 30px #00000059}.cookie-banner p{color:var(--text-dim);flex:1;min-width:220px;margin:0;font-size:13px}.cookie-banner a{color:var(--accent)}.legal{max-width:820px;margin:0 auto;padding:0 24px 60px}.legal-nav{padding:18px 0}.legal-doc{line-height:1.65}.legal-doc h1{margin:6px 0 4px;font-size:1.9rem}.legal-doc h2{margin:26px 0 6px;font-size:1.2rem}.legal-doc p,.legal-doc li{color:var(--text)}.legal-doc ul{padding-left:20px}.legal-doc li{margin:5px 0}.legal-updated{color:var(--text-dim);margin-top:0;font-size:13px}.legal-draft{background:var(--warn-soft,#f5a6231f);border:1px solid var(--warn,#f5a623);color:var(--text);border-radius:10px;margin-bottom:24px;padding:12px 14px;font-size:13.5px}.legal-back{margin-top:30px}.saas-app-layout{flex-direction:column;height:100vh;display:flex}.saas-planner-host{flex:1;min-height:0;position:relative}.saas-app-layout .app-shell{height:100%}.saas-topstrip{background:var(--panel);border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:14px;height:52px;padding:0 14px;font-size:12.5px;display:flex}.saas-topstrip-brand{color:var(--text);align-items:center;gap:7px;font-weight:600;display:flex}.saas-topstrip-mark{color:var(--ok)}.saas-topstrip-web{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent-ink);border:1px solid var(--border);border-radius:5px;padding:0 5px;font-size:9.5px}.saas-topstrip-logo{width:auto;height:38px;display:block}.saas-topstrip-account{align-items:center;gap:10px;display:flex}.saas-topstrip-user{color:var(--text)}.saas-topstrip-team{color:var(--text-dim)}.saas-role{font-family:var(--mono);border-radius:999px;padding:1px 6px;font-size:10px}.saas-role.admin{color:var(--accent-ink);background:color-mix(in srgb, var(--accent) 20%, transparent)}.saas-role.member{color:var(--text-dim);border:1px solid var(--border)}.saas-trial-badge{font-family:var(--mono);color:var(--accent-ink);background:color-mix(in srgb, var(--accent) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:999px;padding:1px 6px;font-size:10px}.saas-comp-badge{font-family:var(--mono);color:#16794b;background:#1fbf7829;border:1px solid #1fbf7873;border-radius:999px;padding:1px 6px;font-size:10px}.badge-comp{font-family:var(--mono);color:#16794b;background:#1fbf7829;border:1px solid #1fbf7873;border-radius:999px;margin-right:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.saas-topstrip-link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;text-decoration:none}.saas-topstrip-link:hover{text-decoration:underline}
