@import "tailwindcss";
@import "tw-animate-css";
@import "../vendor/shadcn-tailwind-4.13.0.css";
:root{--background:#fff;--foreground:#263b49;--card:#fff;--card-foreground:#263b49;--popover:#fff;--popover-foreground:#263b49;--primary:#256459;--primary-foreground:#fff;--secondary:#edf2f5;--secondary-foreground:#263b49;--muted:#edf2f5;--muted-foreground:#607482;--accent:#e5f1ed;--accent-foreground:#256459;--destructive:#b63d3d;--border:#dce4e9;--input:#dce4e9;--ring:#256459;--radius:.45rem;--sidebar:#fff;--sidebar-foreground:#263b49;--sidebar-primary:#256459;--sidebar-primary-foreground:#fff;--sidebar-accent:#e5f1ed;--sidebar-accent-foreground:#256459;--sidebar-border:#dce4e9;--sidebar-ring:#256459}
@theme inline{--color-background:var(--background);--color-foreground:var(--foreground);--color-primary:var(--primary);--color-primary-foreground:var(--primary-foreground);--color-secondary:var(--secondary);--color-muted:var(--muted);--color-muted-foreground:var(--muted-foreground);--color-accent:var(--accent);--color-accent-foreground:var(--accent-foreground);--color-border:var(--border);--color-input:var(--input);--color-ring:var(--ring);--color-popover:var(--popover);--color-popover-foreground:var(--popover-foreground);--color-destructive:var(--destructive);--color-sidebar:var(--sidebar);--color-sidebar-foreground:var(--sidebar-foreground);--color-sidebar-accent:var(--sidebar-accent);--color-sidebar-accent-foreground:var(--sidebar-accent-foreground);--color-sidebar-border:var(--sidebar-border);--radius-lg:var(--radius)}
*{box-sizing:border-box}body{margin:0;color:var(--foreground);font-family:'Segoe UI',sans-serif;font-size:16px}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:2px solid #258574;outline-offset:3px}.workspace{height:100dvh;display:flex;flex-direction:column}.topbar{height:72px;flex-shrink:0;display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--border);padding:0 26px}.brand{font-size:23px;font-weight:750;letter-spacing:-1px;display:flex;align-items:center;gap:8px}.brand svg{background:#256459;color:white;padding:7px;width:36px;height:38px;border-radius:8px}.topbar>span{flex:1;color:#6d7e88;font-size:14px}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;border:1px solid var(--border);border-radius:6px;background:white;font-size:14px;font-weight:500}button svg{width:18px;height:18px}button:hover{background:#f0f5f4}.work{display:flex;flex:1;min-height:0}.left{width:240px;flex-shrink:0;border-right:1px solid var(--border);padding:24px 16px}.left button{width:100%;justify-content:flex-start;margin:4px 0}.left h3{display:flex;align-items:center;gap:10px}.active{background:#e5f1ed!important;color:#256459!important}.center{flex:1;min-width:0;display:flex;flex-direction:column}.planbar{display:flex;align-items:center;gap:18px;padding:18px 24px}.planbar span{font-size:14px;color:#6d7e88}h1{font-size:22px;font-weight:650}h2{font-size:15px;font-weight:650;margin:0 0 22px;display:flex;gap:8px;align-items:center}h3{font-size:15px;font-weight:600;margin:20px 0 10px}p{font-size:14px;line-height:1.6;color:#6d7e88}.toolbar{display:flex;gap:7px;padding:8px 20px;border-block:1px solid var(--border);flex-wrap:wrap}.canvas{flex:1;min-height:300px;background:#f4f7f9;overflow:hidden}.canvas svg{width:100%;height:100%;min-height:400px;display:block}.right{width:260px;flex-shrink:0;padding:24px 20px;border-left:1px solid var(--border)}@media(max-width:1000px){.right{display:none}.left{width:210px}}@media(max-width:640px){.left{display:none}.topbar{gap:12px;padding:0 12px}.topbar>span{display:none}.planbar{padding:14px}.toolbar{padding:8px}.canvas svg{min-height:350px}}

.project-title{flex:1;min-width:0}.project-title input{width:100%;border:0;padding:0;font-weight:600;background:transparent;font-size:15px}.project-title span{display:block;font-size:12px;color:#788b94;margin-top:2px}.primary{background:#256459;color:white;border-color:#256459}.primary:hover{background:#1c544a}.iconbutton{padding:8px;border:0;background:transparent;flex-shrink:0}.leftwrap{width:240px;flex-shrink:0;border-right:1px solid var(--border);background:white}.leftwrap [data-slot=sidebar-wrapper]{min-height:100%;height:100%;width:100%}.left{padding:24px 14px;border:0;height:100%}.left [data-slot=sidebar-content]{gap:0}.left h2{margin:0 0 20px 8px}.left button{border:0;padding:10px 9px;margin:2px 0;background:transparent;font-size:14px}.left .building{font-weight:650}.building.chosen{color:#256459}.building>span{margin-left:auto;font-size:12px;color:#718791;background:#edf3f4;padding:0 6px;border-radius:4px}.building-group{margin-top:12px}.floors{margin-left:13px;border-left:1px solid #dce4e9;padding-left:10px}.floors button{padding:9px 8px}.floors button>span{flex:1;text-align:left}.floors small{font-size:12px;color:#7b8c94}.floors svg{width:15px}.left .textbutton{color:#73868f;font-size:13px}.left .add-building{border:1px dashed #cdd9de;margin:22px 0}.layers{border-top:1px solid var(--border);padding:22px 8px}.layers h2{margin-left:0}.layers label{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin:18px 0;gap:8px}.layers [role=switch]{width:30px;padding:0;border:0;height:18px;min-height:0}.layers [role=switch][data-state=checked]{background:#256459}.side-note{display:flex;gap:10px;padding:18px 8px;margin-top:auto;color:#758b94}.side-note svg{flex-shrink:0}.side-note p{font-size:12px;margin:0}.side-heading{display:flex;justify-content:space-between}.planbar{justify-content:space-between;min-height:94px}.breadcrumb{font-size:12px;color:#8597a1;margin-bottom:4px}.breadcrumb span{margin:0 7px}.view-tabs{border:1px solid #dde5e9;background:#f5f8f9;padding:4px;height:40px!important}.view-tabs button{border:0;box-shadow:none;padding:8px 12px;font-size:14px}.view-tabs button[data-state=active]{background:#fff;color:#256459;box-shadow:0 1px 4px #273d4c12}.toolbar{gap:4px;padding:10px 16px;flex-shrink:0;background:white}.toolbar button{border:0;padding:8px 9px}.toolbar-spacer{flex:1}.contextbar{display:flex;gap:20px;align-items:end;padding:10px 20px;background:#fbfcfc;border-bottom:1px solid var(--border);flex-wrap:wrap}.contextbar .field{margin:0;min-width:160px}.contextbar .field>span{font-size:12px}.canvas{position:relative;min-height:250px}.canvas svg{min-height:0;user-select:none}.canvas-caption{position:absolute;bottom:20px;left:20px;max-width:calc(100% - 180px);font-size:12px;color:#748894;background:#f4f7f9e6;padding:5px 8px;pointer-events:none}.zoom{position:absolute;bottom:20px;right:20px;display:flex;background:white;border:1px solid #dce4e9;border-radius:6px;box-shadow:0 2px 7px #30475709}.zoom button{border:0;background:transparent;font-size:12px;padding:7px 9px}.zoom svg{width:15px;height:15px}.statusbar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;min-height:34px;padding:8px 20px;border-top:1px solid var(--border);font-size:12px;color:#7a8c96}.right{overflow-y:auto;width:270px;background:#fff;padding:26px 20px}.right h2{padding-bottom:20px;border-bottom:1px solid var(--border)}.field{display:block;margin:14px 0}.field>span{display:block;font-size:13px;color:#6b808d;margin-bottom:7px}.field input,input:not([type=file]){font-family:inherit;color:inherit}.field input{width:100%;border:1px solid var(--border);background:#fff;border-radius:5px;padding:9px 10px;font-size:14px;min-width:0}.field [data-slot=select-trigger]{width:100%;height:38px;font-size:14px;justify-content:space-between}.field [data-slot=select-value]{overflow:hidden;text-overflow:ellipsis}.pair{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.pair .field{min-width:0}.pair .field>span{font-size:12px}.right p{font-size:13px;margin-top:20px}.right button.danger{width:100%;color:#b34444;margin-top:24px;border-color:#efd7d7}.statline{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #edf1f3;font-size:13px}.statline span{color:#70848f}.statline b{font-weight:600}.selected-title{font-size:18px;font-weight:650;margin-bottom:20px}.metric{font-size:28px;color:#256459;margin-top:20px}.metric small{display:block;font-size:12px;color:#738993}.legend{border-top:1px solid var(--border);margin-top:30px;padding-top:6px}.legend h3{font-size:13px}.legend>div{display:flex;gap:9px;align-items:center;font-size:12px;color:#70838e;margin:12px 0}.legend i{height:8px;width:8px;border-radius:2px}.dash,.solid{width:16px;border-top:2px dashed #d48c49}.solid{border-top:2px solid #598bb5}.board-view{overflow:auto;flex:1;padding:28px;background:#f4f7f9}.board-heading,.circuit-heading{display:flex;gap:16px;align-items:center;justify-content:space-between}.board-heading h2{font-size:19px;margin:0}.board-heading p{margin-top:5px}.cabinet{border:1px solid #ced9df;background:#e6edf1;border-radius:9px;padding:20px 18px 10px;margin:24px 0 36px;box-shadow:inset 0 0 0 6px #eef3f6;overflow:auto}.din-row{margin:0 0 20px;min-width:600px}.din-row>span{display:block;font-size:12px;color:#6e828e;margin:0 0 8px}.rail{position:relative;display:grid;grid-template-columns:repeat(18,minmax(0,1fr));gap:2px;min-height:104px;background:linear-gradient(to bottom,#d7e1e7 42%,#a4b6c1 42%,#a4b6c1 52%,#d7e1e7 52%);padding:8px 3px}.slot{background:#f4f7f8b3;border:1px dashed #c5d1d9;min-width:0}.slot small{display:block;text-align:center;font-size:10px;color:#96a6b0;margin-top:2px}.module{z-index:1;display:flex;flex-direction:column;border:1px solid #b7c5ce;border-radius:3px;background:white;padding:5px 2px;gap:3px;min-width:0;overflow:hidden;box-shadow:1px 2px 3px #2c475322}.module.selected{outline:2px solid #256459;outline-offset:1px}.module small{font-size:9px;letter-spacing:0;color:#7b8b96}.module b{font-size:11px;line-height:1}.module i{display:block;width:12px;height:19px;background:#344957;border-radius:2px;border-top:5px solid #5a7584}.module span{font-size:9px;line-height:1.25;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.circuit-heading h2{font-size:18px;margin:0}.circuit-heading{margin-bottom:18px}[data-slot=table-container]{background:white;border:1px solid var(--border);border-radius:7px}table{font-size:13px}thead{background:#f6f9fa}th{color:#6e838f}table input{padding:7px 6px;border:1px solid transparent;border-radius:4px;width:100%;min-width:110px;max-width:190px;background:transparent;font-size:13px}table input:focus{border-color:#96b5a8;background:#fff}table .field{margin:0}table .field>span{display:none}table .field [data-slot=select-trigger]{border:0;height:32px;min-width:55px;font-size:13px}table .protection{display:flex;align-items:center;gap:2px}.protection input{min-width:40px;width:43px;padding:4px}.board-note{font-size:12px;max-width:800px;margin-top:18px}.error-banner{display:flex;justify-content:center;align-items:center;gap:12px;font-size:12px;padding:6px 16px;background:#fff6e7;color:#8e661f}.error-banner button{font-size:12px;padding:3px 8px}.warning{color:#a36623!important}.mobile-toggle,.inspector-toggle,.inspector-close{display:none}.inspector-close{float:right}.leftwrap .mobile-toggle{width:auto}.left [data-slot=sidebar-content]{overflow-y:auto}.topbar{gap:18px}.topbar .brand{margin-right:20px}[data-slot=dialog-content]{border-radius:10px}[data-slot=dialog-content] form>button{margin-top:12px}.board-view h2 svg{width:18px}
@media(max-width:1250px){.leftwrap{width:220px}.leftwrap [data-slot=sidebar]{width:220px!important}.right{width:235px;padding:22px 16px}.toolbar button span{display:none}.topbar .brand{margin-right:5px}.planbar{padding:16px}.view-tabs button{padding:7px 8px;font-size:13px}}
@media(max-width:1050px){.right{display:none}.inspector-toggle{display:inline-flex}.right.opened{display:block;position:absolute;right:0;top:72px;bottom:0;z-index:30;width:290px;box-shadow:-8px 0 24px #273f4b19}.inspector-close{display:inline-flex}.leftwrap{width:210px}.leftwrap [data-slot=sidebar]{width:210px!important}.view-tabs button{font-size:12px}.board-view{padding:18px}}
@media(max-width:760px){.leftwrap{display:none}.leftwrap.opened{display:block;position:absolute;top:72px;left:0;bottom:0;z-index:40;width:250px;box-shadow:8px 0 24px #273f4b19}.leftwrap.opened [data-slot=sidebar]{width:250px!important;display:flex!important}.mobile-toggle{display:inline-flex}.brand{font-size:19px}.brand svg{width:30px;height:32px;padding:6px}.topbar{gap:7px;padding:0 10px}.topbar .project-title{display:none}.topbar .brand{flex:1}.export-button{font-size:0;gap:0;padding:8px}.export-button svg{width:18px}.planbar{padding:12px;min-height:90px;gap:8px;flex-wrap:wrap}.planbar h1{font-size:20px}.breadcrumb{font-size:12px}.view-tabs button{padding:7px}.view-tabs button svg{display:none}.toolbar{padding:8px}.toolbar button{padding:8px}.contextbar{padding:8px;gap:8px}.contextbar .field{min-width:140px;flex:1}.contextbar .field>span{font-size:12px}.canvas-caption{font-size:12px;left:8px;bottom:60px;max-width:95%}.zoom{right:12px;bottom:14px}.canvas{min-height:320px}.statusbar{padding:8px 12px}.board-heading{align-items:flex-start;flex-direction:column}.board-heading h2{font-size:17px}.board-view{padding:16px}.error-banner{font-size:12px}.board-heading p{font-size:12px}.topbar .primary{padding:9px}.layers [role=switch]{width:30px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.planbar{flex-wrap:wrap}.tools-button{padding:8px;gap:6px;white-space:nowrap}.tools-button svg{width:18px}.plan-tools-dialog[data-slot=dialog-content]{width:min(920px,calc(100% - 24px));max-width:920px;max-height:90dvh;overflow-y:auto}.report-controls{display:flex;gap:16px}.report-controls .field{flex:1;margin:0}.report-controls select{width:100%;padding:10px;background:var(--background);color:var(--foreground);border:1px solid var(--border);border-radius:5px}.report-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.report-totals>div{padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--accent)}.report-totals span,.report-totals strong{display:block}.report-totals span{font-size:12px;color:var(--muted-foreground)}.report-totals strong{font-size:21px;margin-top:4px}.report-note{font-size:12px;line-height:1.6;color:var(--muted-foreground)}.report-table{overflow:auto;max-height:40dvh;border:1px solid var(--border);border-radius:7px}.report-table table{width:100%;border-collapse:collapse;text-align:left}.report-table th{background:var(--accent);color:var(--foreground);position:sticky;top:0}.report-table td,.report-table th{padding:10px 12px;border-bottom:1px solid var(--border)}.report-table td:nth-last-child(-n+2){white-space:nowrap;font-variant-numeric:tabular-nums}.report-table small,.search-results small{display:block;color:var(--muted-foreground);font-size:11px;margin-top:4px}.search-results{max-height:48dvh;overflow:auto}.search-results button{width:100%;justify-content:space-between;text-align:left;border-bottom:1px solid var(--border);border-radius:0;padding:13px 8px}.search-results button span{min-width:0;overflow-wrap:anywhere}.search-results button svg{flex-shrink:0;width:18px}.guide-link{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--primary);text-decoration:underline}.guide-link svg{width:16px}.plan-tools-dialog .auth-tabs button{display:flex;gap:6px;justify-content:center}.plan-tools-dialog .auth-tabs svg{width:16px}
@media(max-width:760px){.tools-button span{display:none}.plan-tools-dialog[data-slot=dialog-content]{padding:18px}.report-totals strong{font-size:17px}.report-totals>div{padding:10px}.report-controls{gap:10px}.report-controls .field{min-width:0}.report-totals{gap:5px}.report-table{max-height:32dvh}}

.din-row{min-width:540px}.module small,.module b,.module span{font-size:12px}.module span{padding-top:3px}.slot small{font-size:12px}.board-view .field>span{font-size:14px}button[data-slot=dialog-close]{font-size:14px}
:root{--plan-bg:#f4f7f9;--plan-room:#fff;--plan-selection:#e9f3ef;--plan-wall:#425663;--plot-fill:#edf4ef}
.plot-editor,.plot-main{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.plot-body{display:flex;flex:1;min-height:0}.plot-inspector{width:270px;flex-shrink:0;padding:24px 20px;overflow-y:auto;border-left:1px solid var(--border);background:var(--background)}.plot-inspector h2{padding-bottom:18px;border-bottom:1px solid var(--border)}.plot-inspector .danger{margin-top:22px;color:var(--destructive)}.plot-inspector p{font-size:12px;margin:12px 0}.plot-main .canvas-caption{max-width:calc(100% - 40px)}.plot-properties-toggle{display:none}.bend-row{display:flex;gap:7px;align-items:center}.bend-row .field{min-width:0}.bend-row button{padding:6px}.length-details{margin:22px 0;padding-top:12px;border-top:1px solid var(--border)}.length-details>div{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin:12px 0}.length-details b{white-space:nowrap}.length-details .length-total{border-top:1px solid var(--border);padding-top:12px;font-size:14px;color:var(--primary)}.length-details p{font-size:12px}.topbar{gap:12px}.topbar .brand{margin-right:4px}.plot-editor .contextbar{gap:10px}.plot-editor .contextbar .field{min-width:140px;max-width:240px;flex:1}
[data-theme=dark]{color-scheme:dark;--background:#17222c;--foreground:#e0e9ef;--card:#17222c;--card-foreground:#e0e9ef;--popover:#202f3a;--popover-foreground:#e0e9ef;--primary:#75c5ae;--primary-foreground:#112d25;--secondary:#243540;--secondary-foreground:#e0e9ef;--muted:#243540;--muted-foreground:#a3b6c3;--accent:#28463f;--accent-foreground:#91d5c1;--border:#354753;--input:#354753;--ring:#75c5ae;--sidebar:#17222c;--sidebar-foreground:#e0e9ef;--sidebar-accent:#28463f;--sidebar-accent-foreground:#91d5c1;--sidebar-border:#354753;--plan-bg:#111c25;--plan-room:#223440;--plan-selection:#294a43;--plan-wall:#819aa8;--plot-fill:#182e2c;--destructive:#ed9696}
body{background:var(--background)}button,.leftwrap,.toolbar,.right,.field input,[data-slot=table-container],.zoom{background:var(--background)}button:hover{background:var(--secondary)}.canvas,.board-view{background:var(--plan-bg)}.active{background:var(--accent)!important;color:var(--accent-foreground)!important}.contextbar,thead,.view-tabs{background:var(--muted)}.view-tabs button[data-state=active]{background:var(--background);color:var(--primary)}.canvas-caption{background:var(--plan-bg);color:var(--muted-foreground)}.field>span,p,.right p,.breadcrumb,.planbar span,.statline span,.legend>div,.project-title span,.statusbar,.side-note{color:var(--muted-foreground)}.statline{border-color:var(--border)}.building.chosen,.metric{color:var(--primary)}.primary{background:#256459;color:white}.primary:hover{background:#1c544a}
[data-theme=dark] .cabinet{background:#233440;box-shadow:inset 0 0 0 6px #2b3e4b;border-color:#4b626f}[data-theme=dark] .rail{background:linear-gradient(to bottom,#304754 42%,#597481 42%,#597481 52%,#304754 52%)}[data-theme=dark] .slot{background:#253944b3;border-color:#47606d}[data-theme=dark] .module{background:#334956;border-color:#6b8795}[data-theme=dark] .module small,[data-theme=dark] .slot small,[data-theme=dark] .din-row>span{color:#bed0da}[data-theme=dark] .building>span{background:#2c414e;color:#bed0da}[data-theme=dark] table input:focus{background:var(--background)}[data-theme=dark] .error-banner{background:#463621;color:#ecd1a2}
@media(max-width:1250px){.plot-inspector{width:240px;padding:20px 16px}}@media(max-width:1275px){.topbar .export-button{font-size:0;gap:0}.topbar .export-button svg{width:18px}}
@media(max-width:1050px){.plot-inspector{display:none}.plot-properties-toggle{display:inline-flex}.plot-inspector.opened{display:block;position:absolute;right:0;top:72px;bottom:0;width:290px;z-index:30;box-shadow:-8px 0 24px #0003}.plot-inspector>.iconbutton{float:right}.topbar .pdf-button{font-size:0;gap:0}.topbar .pdf-button svg{width:18px}}
@media(max-width:760px){.topbar{gap:3px}.topbar .iconbutton{padding:7px}.topbar .pdf-button{padding:8px}.topbar .brand{font-size:17px}.topbar .brand svg{width:26px}.plot-editor .toolbar{gap:0}.plot-editor .toolbar button{font-size:12px;padding:8px 6px}.plot-main .canvas-caption{max-width:95%;bottom:15px}.plot-inspector .pair{gap:0 12px}}
.auth-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid var(--border);border-radius:6px;font-size:14px;text-decoration:none}.auth-link svg{width:18px;height:18px}.secondary-auth{border:0;color:var(--muted-foreground)}.account-identity,.database-state{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--border);border-radius:7px;min-width:0}.account-identity>svg,.database-state>svg{flex-shrink:0;width:22px;color:var(--primary)}.account-identity div,.database-state div{min-width:0}.account-identity span,.database-state span{display:block;font-size:13px;color:var(--muted-foreground);overflow-wrap:anywhere}.account-identity strong,.database-state b{font-size:15px;overflow-wrap:anywhere}.legacy-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 20px;background:var(--accent);color:var(--accent-foreground);font-size:13px}.legacy-banner button{font-size:12px;padding:5px 8px}.topbar .project-title{min-width:120px}.topbar .pdf-button,.account-button{white-space:nowrap}
@media(max-width:1250px){.account-button span{display:none}.account-button{padding:8px}.topbar .pdf-button span{display:none}.topbar .pdf-button{gap:0;padding:8px}}
@media(max-width:760px){.topbar .primary{font-size:0;gap:0;padding:8px}.topbar .primary svg{width:18px}.topbar .brand{flex:1;margin:0;gap:4px}.topbar .project-title{min-width:0}.legacy-banner{flex-wrap:wrap;padding:8px 12px;gap:5px}.account-button{padding:7px}.legacy-banner span{flex:1;min-width:160px}}
.loading-plan{position:fixed;inset:0;z-index:100;background:var(--background);display:grid;place-items:center;color:var(--muted-foreground);font-size:16px}
.auth-tabs{display:flex;gap:8px}.auth-tabs>button{flex:1}.auth-form .field{margin:10px 0}.auth-form>.primary{width:100%;margin-top:14px}.password-field{display:flex;position:relative}.password-field input{padding-right:45px}.password-field button{position:absolute;right:3px;top:3px;padding:6px;border:0;background:transparent}.password-hint,.auth-note{font-size:12px;margin:0}.auth-error{color:var(--destructive);font-size:14px;padding:10px 0}.auth-form+ p{margin-top:0}
.tree-row{display:flex;align-items:center;min-width:0;gap:2px}.left .tree-row>button:first-child{flex:1;min-width:0;overflow-wrap:anywhere;text-align:left}.left .tree-row>.tree-delete{width:30px;flex:0 0 30px;padding:7px 5px;color:var(--muted-foreground);justify-content:center}.left .tree-delete:hover{color:var(--destructive);background:var(--muted)}.tree-delete svg{width:15px;height:15px}.room-tree{margin-left:10px}.left .room-tree button{font-size:13px;padding:7px 4px}.room-tree svg{width:13px;flex-shrink:0}.room-tree span{overflow-wrap:anywhere}.projects-button{white-space:nowrap}.projects-dialog[data-slot=dialog-content]{width:min(620px,calc(100% - 24px));max-width:620px;max-height:90dvh;overflow-y:auto}.project-actions{display:flex;gap:8px;flex-wrap:wrap}.project-list{max-height:38dvh;overflow:auto;border:1px solid var(--border);border-radius:7px}.project-list button{width:100%;justify-content:space-between;text-align:left;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:14px}.project-list span{min-width:0;overflow-wrap:anywhere}.project-list small{display:block;font-size:12px;color:var(--muted-foreground);margin-top:5px}.project-list svg{flex-shrink:0}.empty-project{padding:40px 24px;flex:1}.empty-project h2{font-size:20px}.empty-project p{margin-bottom:20px}.danger{color:var(--destructive)}
@media(max-width:1250px){.projects-button span{display:none}.projects-button{padding:8px}}
@media(max-width:760px){.projects-button{padding:7px}.project-actions>button{flex:1}.projects-dialog[data-slot=dialog-content]{padding:20px}.topbar .brand{font-size:0;gap:0;flex:0}.topbar .brand svg{width:30px}.topbar .mobile-toggle{padding:5px}.topbar{justify-content:space-between}}

.board-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.board-actions button{font-size:14px}.board-wiring{margin-top:36px;padding-top:28px;border-top:1px solid var(--border);scroll-margin-top:20px}.board-wiring h2{display:flex;align-items:center;gap:9px}.board-wiring h3{font-size:16px;font-weight:600}.board-wiring p{font-size:14px;line-height:1.6}.wiring-help{margin:8px 0 20px}.circuit-wiring-list{display:grid;gap:16px}.circuit-wiring{border:1px solid var(--border);border-radius:8px;background:var(--background);overflow:hidden}.circuit-wiring header{padding:14px 16px;background:var(--muted);display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:14px}.circuit-wiring header strong{overflow-wrap:anywhere}.circuit-wiring header span{color:var(--muted-foreground);text-align:right}.conductor-row{display:grid;grid-template-columns:38px minmax(100px,1fr) 35px minmax(150px,1.2fr);gap:10px;align-items:center;padding:12px 16px;border-top:1px solid var(--border)}.conductor-tag{font-size:14px;font-weight:600;color:white;background:var(--wire-color);padding:6px 3px;text-align:center;border-radius:4px}.conductor-tag.earth{border-bottom:4px solid #eac744;padding-bottom:2px}.conductor-row>input{width:100%;min-width:0;border:1px solid var(--border);padding:9px;border-radius:5px;background:var(--background);font-size:14px}.conductor-line{height:2px;background:var(--wire-color);position:relative}.conductor-line svg{position:absolute;right:-2px;top:-8px;color:var(--wire-color);width:18px;height:18px}.conductor-line.unconnected{background:none;border-top:2px dashed var(--wire-color);opacity:.55}.conductor-row .field{margin:0;min-width:0}.conductor-row .field>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.conductor-row [data-slot=select-trigger]{min-height:40px;height:auto;white-space:normal;text-align:left}.conductor-row [data-slot=select-value]{white-space:normal;overflow-wrap:anywhere}.wiring-jumpers{margin:24px 0;padding:20px;background:var(--background);border:1px solid var(--border);border-radius:8px}.wiring-endpoints{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.wiring-endpoints .field{min-width:0}.wiring-add{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.wiring-add .field{flex:1;min-width:160px;margin-bottom:0}.wiring-add button{min-height:40px}.wiring-link{border:0;color:var(--primary);text-align:left;text-decoration:underline;font-size:14px;white-space:normal}.wiring-empty{display:flex;gap:10px;align-items:center;padding:20px;border:1px dashed var(--border);border-radius:8px}.board-wiring table{font-size:14px}.board-wiring td{white-space:normal;min-width:130px}.board-wiring td:last-child{min-width:48px}.board-wiring td input{width:100%;min-width:120px}
@media(max-width:1200px){.conductor-row{grid-template-columns:38px minmax(100px,1fr);gap:8px}.conductor-line{grid-column:1;width:28px;justify-self:center}.conductor-row .field{grid-column:2}.wiring-endpoints{grid-template-columns:1fr}}@media(max-width:760px){.circuit-wiring header{align-items:flex-start;flex-direction:column;gap:4px}.circuit-wiring header span{text-align:left}.conductor-row{padding:12px}.wiring-jumpers{padding:14px}.board-wiring .circuit-heading{align-items:flex-start;flex-wrap:wrap}}

.project-pricing{padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--muted);font-size:14px}.project-pricing p{margin:0 0 12px}.billing-price{padding:20px;border:1px solid var(--border);border-radius:8px;background:var(--muted)}.billing-price strong{font-size:30px;display:block}.billing-price span{font-size:14px;color:var(--muted-foreground)}.billing-notice{padding:14px;background:var(--accent);border:1px solid var(--border);border-radius:8px;color:var(--foreground)}.admin-link{font-size:14px;color:var(--primary);padding:8px}.admin-page{max-width:1120px;margin:0 auto;padding:32px 24px 64px;font-size:16px;line-height:1.6;overflow-wrap:anywhere}.admin-page header{display:flex;justify-content:space-between;gap:20px;align-items:center}.admin-page header>span{color:var(--muted-foreground);font-size:14px}.admin-page h1{font-size:28px;margin:12px 0}.admin-page h2{font-size:21px;margin:0 0 12px}.admin-page a{color:var(--primary);text-decoration:underline}.admin-card{padding:24px;margin:24px 0;border:1px solid var(--border);border-radius:10px;background:var(--background)}.admin-card p{margin:12px 0}.admin-controls,.admin-keys{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-keys fieldset{padding:12px 16px;border:1px solid var(--border);border-radius:8px;min-width:0}.admin-keys legend{padding:0 8px}.admin-card .field>span{font-size:14px}.billing-switch{display:flex;align-items:center;justify-content:space-between;gap:16px}.webhook-address{display:block;font-size:14px;padding:12px;background:var(--muted);border-radius:5px;margin:12px 0;user-select:all}.admin-card ol{list-style:decimal;padding-left:24px}.admin-card li{margin:12px 0}.admin-card table{font-size:14px}.admin-card .project-actions{margin-top:20px}@media(max-width:760px){.admin-page{padding:20px 14px}.admin-page header{align-items:flex-start;flex-direction:column;gap:0}.admin-card{padding:18px}.admin-controls,.admin-keys{grid-template-columns:1fr}.admin-link{padding:4px}}

.billing-dialog[data-slot=dialog-content]{max-height:90dvh;overflow-y:auto}.billing-switch [role=switch]{padding:0;border:0;width:32px;height:18px;min-height:0;justify-content:flex-start}.billing-switch [role=switch][data-state=checked]{background:var(--primary)}.billing-switch [role=switch][data-state=unchecked]{background:var(--input)}

.account-dialog[data-slot=dialog-content]{max-height:90dvh;overflow-y:auto}.account-help-link{font-size:14px;color:var(--primary);text-decoration:underline}.email-verification{padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--muted);font-size:14px}.email-verification p{margin:8px 0}.email-verification button{font-size:14px}.account-page{max-width:560px;margin:0 auto;padding:40px 20px 64px;font-size:16px;line-height:1.65}.account-back{display:flex;align-items:center;gap:8px;color:var(--primary);font-size:14px;margin-bottom:28px}.account-card{padding:32px;border:1px solid var(--border);border-radius:12px;background:var(--background);box-shadow:0 12px 48px #00000009}.account-symbol{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:10px;background:var(--accent);color:var(--primary);margin-bottom:22px}.account-eyebrow{font-size:12px;letter-spacing:.1em;color:var(--muted-foreground)}.account-card h1{font-size:26px;font-weight:650;line-height:1.25;margin:12px 0 18px}.account-card .field>span{font-size:14px}.account-card .textbutton{margin-top:16px;border:0;color:var(--primary);text-decoration:underline}.account-card .auth-link{margin-top:20px}.admin-card .billing-switch{margin:14px 0}@media(max-width:600px){.account-page{padding:22px 14px}.account-card{padding:24px 20px}}

.billing-dialog[data-slot=dialog-content]{width:min(740px,calc(100% - 24px));max-width:740px}.billing-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.billing-options .billing-price{display:flex;flex-direction:column;gap:12px}.billing-options h3{font-size:16px;font-weight:600;margin:0}.billing-options p{font-size:14px;line-height:1.6;margin:0;flex:1}.billing-options strong small{font-size:16px;font-weight:400}.billing-options button{font-size:14px;white-space:normal}.billing-notice p{margin:8px 0 0}@media(max-width:600px){.billing-options{grid-template-columns:1fr}.billing-dialog[data-slot=dialog-content]{padding:20px}}
.invoice-profile{border:1px solid var(--border);padding:18px;border-radius:8px;margin:14px 0}.invoice-profile h3{margin:0 0 12px}.invoice-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.invoice-profile select{width:100%;border:1px solid var(--border);padding:10px;background:var(--background);color:var(--foreground);border-radius:5px}.invoice-consent{display:flex;gap:10px;align-items:flex-start;margin:16px 0;font-size:14px;line-height:1.6}.invoice-consent [data-slot=checkbox]{padding:0;min-width:18px;margin-top:3px}.invoice-job-list article{display:flex;justify-content:space-between;gap:18px;align-items:center;border-top:1px solid var(--border);padding:18px 0}.invoice-job-list span,.invoice-job-list code{display:block;font-size:12px;margin-top:6px;overflow-wrap:anywhere}.invoice-job-list p{margin:8px 0}.invoice-profile details{margin-top:15px}.invoice-profile summary{cursor:pointer;font-size:14px}.billing-dialog[data-slot=dialog-content]{max-height:90dvh;overflow-y:auto}@media(max-width:600px){.invoice-fields{grid-template-columns:1fr}.invoice-job-list article{align-items:flex-start;flex-direction:column}}

.planner-access-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:24px}.planner-access-actions>a{font-size:14px;color:var(--primary);text-decoration:underline}.planner-access-actions .account-button{background:var(--primary);color:var(--primary-foreground);padding:12px 18px;border-radius:6px}

.public-site .account-card{padding:32px}@media(max-width:600px){.public-site .account-card{padding:24px 20px}}

.schematic-view{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--plan-bg)}.schematic-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 20px;border-block:1px solid var(--border)}.schematic-zoom{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:14px}.schematic-help{padding:0 20px;max-height:160px;overflow:auto}.schematic-help p{margin:10px 0;font-size:14px}.schematic-warning{font-size:14px;color:var(--muted-foreground);margin:8px 0}.schematic-warning summary{cursor:pointer}.schematic-warning ul{padding:8px 24px}.schematic-scroll{flex:1;min-height:260px;overflow:auto;background:#e8edf0;padding:20px}.schematic-scroll svg{display:block;max-width:none;background:#fff;box-shadow:0 2px 12px #263b491a}.schematic-scroll svg [role=button]{cursor:pointer}.schematic-scroll svg [role=button]:focus{outline:3px solid #258574}.schematic-connections{padding:12px 20px;font-size:14px;max-height:220px;overflow:auto;border-top:1px solid var(--border)}.schematic-connections summary{cursor:pointer}.schematic-connections button{display:flex;align-items:flex-start;flex-direction:column;width:100%;text-align:left;margin-top:8px}.schematic-connections span{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.schematic-note{padding:0 20px;font-size:12px}.view-tabs{max-width:100%;overflow-x:auto;justify-content:flex-start}.view-tabs button{flex-shrink:0}@media(max-width:760px){.planbar>[data-slot=tabs]{width:100%;overflow:hidden}.schematic-toolbar{padding:10px}.schematic-help,.schematic-connections{padding-inline:12px}.schematic-scroll{padding:12px}}
.view-tabs{height:auto!important;min-height:40px;overflow-y:hidden;scrollbar-width:thin}.view-tabs button{min-height:30px;flex-shrink:0}
.interactive-cabinet{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin:20px 0 30px;background:var(--background)}
.cabinet-connect-toolbar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--border)}
.cabinet-connect-toolbar strong{display:flex;align-items:center;gap:8px;font-size:15px}.cabinet-connect-toolbar label{display:flex;align-items:center;gap:8px;font-size:14px}.cabinet-connect-toolbar input{width:16px;height:16px}
.cabinet-zoom{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:14px}.cabinet-zoom button{padding:6px}.cabinet-zoom svg{width:16px;height:16px}
.cabinet-hint{font-size:14px;line-height:1.6;margin:12px 16px;color:var(--muted-foreground)}
.cabinet-connect-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--muted);font-size:14px;min-height:52px}.cabinet-connect-status span{overflow-wrap:anywhere}.cabinet-connect-status button{flex-shrink:0}
.cabinet-scroll{max-height:640px;overflow:auto;overscroll-behavior:contain;padding:12px;background:var(--plan-bg)}.cabinet-scroll svg{display:block;max-width:none;user-select:none}
.cabinet-row-bg,.cabinet-circuit{fill:var(--background);stroke:var(--border);stroke-width:1.5}
.cabinet-device{cursor:pointer}.cabinet-device rect{fill:var(--muted);stroke:var(--border);stroke-width:2}.cabinet-device text{fill:var(--foreground)}.cabinet-device:hover rect,.cabinet-device.selected rect{stroke:var(--primary);stroke-width:3}
.cabinet-scroll [role=button]:focus{outline:none}.cabinet-device:focus rect{stroke:var(--primary);stroke-width:4}
.cabinet-pin{cursor:crosshair}.cabinet-pin .pin-halo{fill:transparent;stroke:transparent;stroke-width:2}.cabinet-pin:hover .pin-halo,.cabinet-pin:focus .pin-halo{stroke:var(--foreground)}.cabinet-pin.available .pin-halo{stroke:var(--primary);stroke-dasharray:3 2}.cabinet-pin.chosen .pin-halo{stroke:var(--primary);stroke-width:4;fill:var(--muted)}.cabinet-pin.unavailable{opacity:.32;cursor:not-allowed}.cabinet-pin.unavailable:focus,.cabinet-pin.unavailable:hover{opacity:1}
.cabinet-wire{cursor:pointer}.cabinet-wire:focus polyline{stroke-width:5}.cabinet-wire-detail{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px}.cabinet-wire-detail>span{flex:1;min-width:150px;overflow-wrap:anywhere}.cabinet-wire-detail small,.cabinet-connections small{display:block;font-size:13px;margin-top:4px;color:var(--muted-foreground)}
.cabinet-connections{padding:12px 16px;font-size:14px;border-top:1px solid var(--border)}.cabinet-connections summary{cursor:pointer}.cabinet-connections>div{display:grid;gap:8px;margin-top:12px;max-height:240px;overflow:auto}.cabinet-connections button{display:block;text-align:left;overflow-wrap:anywhere}.cabinet-connections button[aria-pressed=true]{border-color:var(--primary);background:var(--muted)}
@media(max-width:760px){.cabinet-connect-toolbar{gap:12px;padding:12px}.cabinet-connect-toolbar strong{width:100%}.cabinet-connect-status{align-items:flex-start;flex-direction:column}.cabinet-scroll{max-height:60dvh}}
.cabinet-jump{display:flex;gap:8px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--border)}.cabinet-jump button{font-size:14px;padding:7px 12px}
.board-size-settings{margin:12px 0;border:1px solid var(--border);border-radius:7px;padding:14px 16px}.board-size-settings summary{cursor:pointer;font-size:15px;font-weight:600}.board-size-settings form{display:flex;gap:16px;flex-wrap:wrap;align-items:end;margin-top:12px}.board-size-settings .field{margin:0;max-width:190px}.board-size-settings p{font-size:13px;color:var(--muted-foreground);margin:12px 0 0}.board-size-settings .auth-error{color:var(--destructive)}
.circuit-designer{flex:1;min-height:0;overflow:auto;background:var(--background)}.circuit-designer-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:14px 20px;border-block:1px solid var(--border)}.circuit-designer-hint{font-size:14px;line-height:1.6;color:var(--muted-foreground);margin:14px 20px}.circuit-picker{display:flex;gap:10px;overflow-x:auto;padding:2px 20px 14px}.circuit-picker button{flex:0 0 235px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;white-space:normal;gap:7px;padding:14px}.circuit-picker b{font-size:15px;overflow-wrap:anywhere}.circuit-picker span{font-size:13px;color:var(--muted-foreground)}.circuit-picker small{font-size:12px;color:var(--muted-foreground)}.circuit-picker button[aria-pressed=true]{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);background:var(--muted)}.circuit-filters{display:flex;align-items:end;flex-wrap:wrap;gap:16px;padding:12px 20px;background:var(--muted)}.circuit-filters label{display:flex;flex-direction:column;gap:5px;font-size:13px}.circuit-filters select{padding:8px 12px;background:var(--background);border:1px solid var(--border);border-radius:5px;min-width:170px;font-size:14px}.circuit-filters>span{font-size:13px;color:var(--muted-foreground);padding-bottom:8px}.circuit-assignment-status{font-size:14px;margin:0;padding:12px 20px;border-bottom:1px solid var(--border);min-height:48px}.circuit-floor-scroll{overflow:auto;max-height:560px;background:var(--plan-bg)}.circuit-floor-scroll svg{display:block;width:100%;min-width:640px;max-height:560px;min-height:320px}.circuit-map-device{cursor:pointer}.circuit-map-device[aria-disabled=true]{cursor:default}.circuit-map-device:focus{outline:none}.circuit-map-device:focus .assignment-ring,.circuit-map-device:hover .assignment-ring{stroke:var(--foreground);stroke-width:3}.circuit-device-list{padding:16px 20px;font-size:14px}.circuit-device-list summary{cursor:pointer}.circuit-device-list>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin-top:12px}.circuit-device-list button{justify-content:space-between;text-align:left;padding:12px;min-width:0}.circuit-device-list button>span{min-width:0;overflow-wrap:anywhere}.circuit-device-list button small{display:block;font-size:12px;color:var(--muted-foreground);margin-top:4px}.circuit-device-list button[aria-pressed=true]{border-color:var(--primary);background:var(--muted)}.circuit-device-list button svg{flex-shrink:0;color:var(--primary)}.circuit-empty{padding:20px;font-size:15px}.circuit-designer button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
@media(max-width:760px){.circuit-designer-toolbar,.circuit-filters,.circuit-device-list{padding:12px}.circuit-picker{padding-inline:12px}.circuit-designer-hint{margin-inline:12px}.circuit-filters select{min-width:140px}.board-size-settings .field{max-width:150px}.circuit-floor-scroll svg{min-width:640px}}
/* Per-floor architectural background and two-point calibration. */
.background-dialog{width:min(94vw,900px)!important;max-width:900px!important;max-height:92dvh;overflow:auto}
.background-form{display:flex;flex-direction:column;gap:12px;min-width:0}
.background-form strong{overflow-wrap:anywhere;font-size:14px}
.background-form button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 12px;border:1px solid var(--border);border-radius:7px;font-size:13px}
.background-form button svg{width:16px;height:16px}
.background-actions,.background-settings,.background-calibration{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.background-form label{display:flex;align-items:center;gap:8px;font-size:13px}
.background-settings label:not(:last-child),.background-calibration label{flex-direction:column;align-items:flex-start}
.background-form input:not([type=checkbox]):not([type=range]):not([type=file]),.background-form select{width:125px;padding:7px;border:1px solid var(--border);border-radius:5px;background:var(--background);color:var(--foreground)}
.background-preview{background:#e8edf0;border:1px solid var(--border);border-radius:8px;overflow:hidden;min-height:100px}
.background-preview svg{display:block;width:100%;height:300px;touch-action:none}
.background-help{font-size:12px;color:var(--muted-foreground);line-height:1.5}
.background-calibration p{flex-basis:100%;font-size:14px}
.background-error{padding:10px;border:1px solid #bc6539;border-radius:6px;color:#ad4c22;font-size:13px}
[data-theme=dark] .background-error{color:#ffc19a}
.background-form button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:640px){.background-preview svg{height:230px}.background-dialog{padding:18px!important}.background-settings{gap:10px}}
.snap-options{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:8px 16px;background:var(--background);border-bottom:1px solid var(--border);font-size:12px}
.snap-options label{display:flex;align-items:center;gap:7px;white-space:nowrap}
.plan-tools-dialog .auth-tabs{flex-wrap:wrap}.plan-tools-dialog .auth-tabs>button{flex:1 1 150px}
.plan-checks .report-controls{flex-wrap:wrap}.plan-checks .report-controls .field{flex:1 1 220px;min-width:0}
.check-totals{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0 8px}.check-totals>span{padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:var(--accent);font-size:13px}.check-totals strong{font-size:20px;margin-right:6px}
.check-results{max-height:42dvh;overflow:auto;border:1px solid var(--border);border-radius:8px}.check-results>button{display:flex;width:100%;text-align:left;align-items:flex-start;justify-content:space-between;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:14px;gap:16px;background:var(--background);color:var(--foreground)}.check-results>button:hover{background:var(--accent)}.check-results>button:last-child{border-bottom:0}.check-results>button>svg{width:18px;flex-shrink:0;margin-top:4px}
.check-result-body{min-width:0;overflow-wrap:anywhere}.check-result-body>strong,.check-result-body>b,.check-result-body>small,.check-detail{display:block}.check-result-body>strong{font-size:15px;margin:6px 0}.check-result-body>b{font-size:13px}.check-result-body>small,.check-detail{color:var(--muted-foreground);font-size:12px;line-height:1.5}.check-detail{margin-top:8px}.check-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;background:var(--accent);color:var(--foreground)}.check-badge.missing{background:#fff1cf;color:#805500}[data-theme=dark] .check-badge.missing{background:#42361a;color:#f4d28b}
.check-empty{display:flex;align-items:center;gap:12px;border:1px dashed var(--border);padding:24px;border-radius:8px;color:var(--muted-foreground);font-size:14px}.check-empty svg{width:26px;flex-shrink:0}
.device-copy-button{width:100%;margin:0 0 18px;color:var(--primary);border-color:var(--primary);justify-content:flex-start}
.device-copy-button kbd{margin-left:auto;font-size:11px;font-family:inherit;white-space:nowrap;color:var(--muted-foreground)}
.snap-options>span{color:var(--muted-foreground);margin-left:auto}
.snap-options [role=switch]{width:34px;height:20px;min-height:0;padding:2px;border:0;border-radius:20px;justify-content:flex-start;background:var(--input)}
.snap-options [role=switch][data-state=checked]{background:var(--primary)}
.snap-options [data-slot=switch-thumb]{width:16px;height:16px;flex-shrink:0;background:white}
@media(max-width:640px){.snap-options{gap:8px 14px;padding:8px 12px}.snap-options>span{margin-left:0;width:100%}}

/* Circuit report shares the planner's compact, theme-aware report controls. */
.circuit-report .report-controls{flex-wrap:wrap}.circuit-report .report-controls>.field{flex:1 1 220px;min-width:0}
.circuit-report-rating{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0}.circuit-report-rating span{color:var(--muted-foreground)}
.circuit-report-sections{max-height:42dvh;overflow:auto;border-top:1px solid var(--border)}
.circuit-report-sections details{padding:12px 0;border-bottom:1px solid var(--border)}
.circuit-report-sections summary{font-weight:600;font-size:14px;cursor:pointer;padding:4px 0}
.circuit-report-item{display:flex;width:100%;justify-content:space-between;align-items:center;gap:12px;text-align:left;padding:12px;margin-top:6px;border:1px solid var(--border);border-radius:8px;background:var(--background)}
.circuit-report-item>span{min-width:0}.circuit-report-item small,.circuit-report-port small{display:block;color:var(--muted-foreground);font-size:13px;margin-top:3px;overflow-wrap:anywhere}
.circuit-report-item b{font-size:14px;overflow-wrap:anywhere}.circuit-report-item svg{width:16px;height:16px;flex-shrink:0}
.circuit-report-port{display:grid;grid-template-columns:36px minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:center;padding:10px 0;font-size:14px;border-top:1px solid var(--border);overflow-wrap:anywhere}
.circuit-report-port button{text-align:left;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--background)}
.circuit-report-port em{font-style:normal;color:var(--muted-foreground)}
@media(max-width:560px){.circuit-report-port{grid-template-columns:36px minmax(0,1fr)}.circuit-report-port>button,.circuit-report-port>em{grid-column:2}}

.route-point-trigger{width:100%;justify-content:center;margin:12px 0;padding:10px;border:1px solid var(--border);border-radius:7px;gap:8px;font-size:14px}.route-point-trigger svg{width:18px}
.route-point-dialog[data-slot=dialog-content]{width:min(720px,calc(100% - 24px));max-width:720px;max-height:90dvh;overflow-y:auto}
.route-point-summary{display:flex;flex-wrap:wrap;gap:8px 20px;padding:12px;background:var(--accent);border-radius:8px;font-size:14px}.route-point-summary span{color:var(--muted-foreground)}
.route-point-list{max-height:45dvh;overflow:auto}.route-point-entry{padding:12px 0;border-bottom:1px solid var(--border)}
.route-point-row{display:grid;grid-template-columns:minmax(100px,1.5fr) minmax(0,1fr) minmax(0,1fr) 36px;align-items:center;gap:12px;font-size:14px}
.route-point-label small{display:block;color:var(--muted-foreground);font-size:13px;overflow-wrap:anywhere}.route-point-row label span{display:block;margin-bottom:4px}.route-point-row input{width:100%;min-width:0;padding:9px;border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--foreground)}.route-point-row input:disabled{opacity:.65}
.route-point-insert{display:flex;align-items:center;gap:6px;font-size:14px;padding:8px;margin-top:8px;color:var(--primary)}.route-point-insert svg{width:16px}.route-point-actions{display:flex;justify-content:flex-end;gap:10px}.route-point-actions button{padding:10px 16px;border:1px solid var(--border);border-radius:7px}.route-point-error{color:var(--destructive);font-size:14px}
@media(max-width:520px){.route-point-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 36px;gap:8px}.route-point-label{grid-column:1/-1}.route-point-dialog[data-slot=dialog-content]{padding:18px}}

.route-register-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.route-register-filters .field{margin:0;min-width:0}
.route-register-options{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;font-size:14px}.route-register-options label{display:flex;gap:8px;align-items:center}.route-register-options input{width:16px;height:16px;accent-color:var(--primary)}.route-register-options button{padding:8px;border:1px solid var(--border);border-radius:6px}
.route-register-list{max-height:36dvh;overflow:auto}.route-register-list>button{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:14px 10px;text-align:left;border-bottom:1px solid var(--border)}
.route-register-body{display:grid;gap:5px;min-width:0;font-size:14px;overflow-wrap:anywhere}.route-register-body small,.route-register-length small{color:var(--muted-foreground);font-size:13px}.route-register-free{color:var(--muted-foreground);font-size:13px}.route-register-length{text-align:right;flex-shrink:0;display:grid;gap:6px;font-size:16px}.route-register-length svg{width:16px;height:16px;margin-left:auto}
@media(max-width:560px){.route-register-filters{grid-template-columns:1fr}.route-register-list>button{align-items:flex-start;flex-direction:column;gap:10px}.route-register-length{text-align:left}.route-register-length svg{display:none}}

.save-protection{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:9px 20px;border-bottom:1px solid var(--border);background:var(--background);font-size:14px}.save-protection label{display:flex;align-items:center;gap:8px;white-space:nowrap}.save-protection input{accent-color:var(--primary);width:16px;height:16px}.save-protection>span{flex:1;min-width:180px;overflow-wrap:anywhere}.save-protection button{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--border);border-radius:6px}.save-protection svg{width:16px}.save-protection small{width:100%;font-size:13px;color:var(--muted-foreground)}
.recovery-dialog[data-slot=dialog-content]{width:min(700px,calc(100% - 24px));max-width:700px;max-height:90dvh;overflow:auto}.recovery-list{max-height:45dvh;overflow:auto}.recovery-list button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;padding:14px;border-bottom:1px solid var(--border)}.recovery-list small{display:block;font-size:13px;color:var(--muted-foreground);margin-top:5px}.recovery-list b{overflow-wrap:anywhere}.recovery-list button>span:last-child{flex-shrink:0;color:var(--primary)}
.save-protection{flex-shrink:0}.recovery-list .recovery-discard{width:auto;font-size:13px;padding:6px 10px;margin:0 0 10px;color:var(--muted-foreground)}.recovery-confirm{padding:12px;border:1px solid var(--border);border-radius:8px}.recovery-confirm button{margin-right:8px}

.project-state-tabs{display:flex;gap:6px;flex-wrap:wrap}.project-state-tabs button{flex:1;white-space:nowrap}.project-state-tabs button[aria-pressed=true]{background:var(--primary);color:var(--primary-foreground)}.project-entry{border-bottom:1px solid var(--border)}.project-list .project-entry>button{border-bottom:0}.project-entry-actions{display:flex;gap:8px;padding:0 12px 10px;flex-wrap:wrap}.project-list .project-entry-actions button{width:auto;padding:7px 9px;border:1px solid var(--border);border-radius:6px;font-size:12px;justify-content:center;gap:6px}.project-entry-actions svg{width:14px;height:14px}.project-state-confirm{padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--muted)}.project-state-confirm p{font-size:13px;margin:8px 0}.project-state-confirm b{overflow-wrap:anywhere}

.plan-history-dialog[data-slot=dialog-content]{width:min(700px,calc(100% - 24px));max-width:700px;max-height:90dvh;overflow:auto}.history-current{display:flex;flex-direction:column;gap:4px;background:var(--muted);padding:14px;border-radius:8px}.history-list{max-height:38dvh;overflow:auto}.history-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.history-list span{min-width:0;overflow-wrap:anywhere}.history-list small,.history-current small{display:block;color:var(--muted-foreground);font-size:12px;margin-top:4px}.history-list button{flex-shrink:0;font-size:13px}.history-list svg{width:15px;height:15px}

.board-manager{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--background);flex-shrink:0}.board-manager>label{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600}.board-manager select{min-width:210px;max-width:100%;padding:8px 10px;background:var(--background);color:var(--foreground);border:1px solid var(--border);border-radius:7px}.board-manager details{margin-left:auto}.board-manager summary{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;padding:8px}.board-manager details[open]{flex-basis:100%;margin:0}.board-manager form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;padding:8px 0}.board-manager form label{display:grid;gap:5px;min-width:220px;font-size:13px}.board-manager p{max-width:760px;font-size:13px;color:var(--muted-foreground);line-height:1.5}.board-manager button svg{width:16px;height:16px}@media(max-width:640px){.board-manager{padding:10px 12px;gap:8px}.board-manager>label{width:100%}.board-manager select{flex:1;min-width:0}.board-manager details{margin:0}.board-manager form label{min-width:0;width:100%}}

.route-register-kind{display:inline-block;margin-right:8px;padding:2px 6px;border:1px solid var(--border);border-radius:5px;font-size:11px;font-weight:600;color:var(--muted-foreground);vertical-align:middle}
.multi-context{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;background:var(--plan-selection);border-bottom:1px solid var(--border);font-size:13px}.multi-context>span{flex:1;min-width:200px}.multi-context button{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--background)}
.group-selection{display:grid;gap:12px}.group-selection h2{display:flex;align-items:center;gap:8px}.group-selection p,.group-selection small{font-size:12px;line-height:1.5;color:var(--muted-foreground)}.group-selection form{display:grid;gap:10px}.group-selection label{display:grid;gap:5px;font-size:12px}.group-selection input{min-width:0;width:100%;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--foreground)}.group-selection button{display:flex;align-items:center;justify-content:center;gap:7px;padding:8px;border:1px solid var(--border);border-radius:6px}.group-selection button:disabled{opacity:.45}.group-selection button svg{width:16px;height:16px}.group-members{max-height:230px;overflow:auto;border-block:1px solid var(--border)}.group-members>div{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0}.group-members span{min-width:0;overflow-wrap:anywhere;font-size:13px}.group-members small{display:block}.group-members button{flex-shrink:0}
.structure-copy-dialog{max-height:90dvh;overflow-y:auto}.structure-copy-dialog form{display:grid;gap:10px}.structure-copy-dialog .field{margin:0}.structure-copy-dialog p{font-size:12px;line-height:1.5;margin:0}.copy-option{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.4}.copy-option input{accent-color:var(--primary);margin-top:3px}.copy-summary{padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--accent);color:var(--foreground)}
.opening-editor p{font-size:12px;line-height:1.5}.opening-editor fieldset{padding:10px;margin:16px 0;border:1px solid var(--border);border-radius:7px;min-width:0}.opening-editor legend{font-size:13px;font-weight:600;padding:0 5px}.opening-editor .field>span{font-size:12px}.opening-actions{display:flex;flex-wrap:wrap;gap:8px}.opening-actions button{flex:1}
.template-dialog{width:min(900px,96vw);max-width:900px!important;max-height:90dvh;overflow-y:auto}.template-library{display:grid;gap:20px}.template-library section{border:1px solid var(--border);border-radius:10px;padding:16px}.template-library h3{font-weight:600;margin-bottom:8px}.template-library p,.template-library small{font-size:12px;color:var(--muted-foreground)}.template-library form{display:grid;gap:10px}.template-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.template-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;max-height:250px;overflow-y:auto;margin-top:10px}.template-list>button{justify-content:flex-start;text-align:left;white-space:normal}.template-list span{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}.template-list>button.active{border-color:var(--primary);background:var(--accent)}.template-insert>.field{margin:12px 0}.template-insert form{margin-top:14px}.template-note{line-height:1.6}
@media(min-width:700px){.template-library{grid-template-columns:1fr 1fr}.template-library>.template-insert,.template-library>.template-note,.template-library>.error-banner{grid-column:1/-1}.template-library .template-list{grid-template-columns:1fr}}
.quote-editor fieldset{border:0;padding:0;min-width:0;display:grid;gap:14px}.quote-intro{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}.quote-editor h3{font-weight:650}.quote-editor p{font-size:12px;line-height:1.6;color:var(--muted-foreground)}.quote-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.quote-fields textarea,.quote-editor textarea{width:100%;border:1px solid var(--border);border-radius:6px;background:var(--background);padding:10px;color:var(--foreground);resize:vertical}.quote-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quote-travel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}.quote-travel>p{grid-column:1/-1}.quote-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px}.quote-totals>div{display:grid;gap:6px;padding:12px;background:var(--accent);border-radius:8px}.quote-totals strong{font-size:17px;overflow-wrap:anywhere}.quote-table{overflow:auto;max-height:480px;border:1px solid var(--border);border-radius:8px}.quote-table table{width:100%;min-width:940px;border-collapse:collapse;font-size:12px}.quote-table th{position:sticky;top:0;background:var(--background);text-align:left;z-index:1}.quote-table td,.quote-table th{padding:8px;border-bottom:1px solid var(--border);vertical-align:top}.quote-table th:nth-child(2){min-width:240px}.quote-table input:not([type=checkbox]),.quote-table select{width:100%;min-width:85px;border:1px solid var(--border);background:var(--background);border-radius:5px;padding:7px;color:var(--foreground)}.quote-table td:nth-child(2)>input{margin-bottom:5px}.quote-table small{display:block;margin-top:4px;color:var(--muted-foreground)}.quote-table .quote-excluded{opacity:.55}.quote-issues{padding:12px;border:1px solid var(--border);border-radius:8px;font-size:12px}.quote-issues ul{list-style:disc;padding-left:18px;margin-top:5px}.quote-editor .warning-banner{padding:12px;background:var(--accent);border:1px solid var(--border);border-radius:8px}@media(max-width:600px){.quote-fields,.quote-controls,.quote-travel{grid-template-columns:1fr}}
.phase-load{display:grid;gap:14px}.phase-load-board{display:grid;gap:10px;padding-top:6px;border-top:1px solid var(--border)}.phase-load-board h3{font-size:15px;font-weight:600;margin:0}.phase-bars{display:grid;gap:6px}.phase-bar{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;font-size:13px}.phase-bar>div{height:10px;border-radius:5px;background:var(--accent);overflow:hidden}.phase-bar i{display:block;height:100%;background:var(--primary)}.phase-bar strong{font-variant-numeric:tabular-nums;font-weight:500}.phase-issues{display:grid;gap:6px;margin:0;padding:0;list-style:none}.phase-issues li{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px}.phase-issues small{display:block;color:var(--muted-foreground);margin-top:2px}.phase-warn,.phase-issues li.phase-warn b{color:var(--destructive)}
.workbook-button{white-space:nowrap}.workbook-badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--destructive);color:var(--background);font-size:12px;line-height:20px;text-align:center;font-weight:700}.workbook-dialog[data-slot=dialog-content]{width:min(780px,calc(100% - 24px));max-width:780px;max-height:90dvh;overflow-y:auto}.workbook-body{border:0;margin:0;padding:0;min-width:0;display:grid;gap:14px}.workbook-group h4{margin:8px 0 4px;font-size:14px}.workbook-task{display:grid;grid-template-columns:140px 1fr auto auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:8px}.workbook-task small{display:block;color:var(--muted-foreground)}.workbook-task.overdue{border-left:4px solid var(--destructive)}.workbook-task.done .workbook-task-title{text-decoration:line-through;color:var(--muted-foreground)}.workbook-task.frozen{background:var(--muted)}.workbook-tag{display:inline-block;padding:1px 8px;border:1px solid var(--border);border-radius:999px;font-size:12px;color:var(--muted-foreground)}.workbook-client-card{display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--muted)}.workbook-client-list{display:grid;gap:6px;max-height:300px;overflow-y:auto}.workbook-client-list>button{justify-content:space-between;text-align:left}.workbook-client-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.workbook-client-form .wide{grid-column:1/-1}.workbook-due-quick{display:flex;flex-wrap:wrap;gap:6px}.quote-client{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 0}.quote-client small{color:var(--muted-foreground)}
.workbook-section{display:grid;gap:10px;min-width:0}.workbook-dialog .field{margin:0}.workbook-dialog .warning-banner{padding:12px;background:var(--accent);border:1px solid var(--border);border-radius:8px;font-size:14px}.workbook-section h3{font-size:16px;font-weight:650;margin:0;overflow-wrap:anywhere}.workbook-section h4{font-size:14px;font-weight:600;margin:6px 0 0}.workbook-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.workbook-row>.field{flex:1 1 240px}.workbook-tasks{display:grid;gap:6px}.workbook-task select,.workbook-dialog textarea{width:100%;border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--foreground);padding:8px;font:inherit;font-size:14px}.workbook-dialog textarea{resize:vertical}.workbook-task-title{overflow-wrap:anywhere;font-weight:500}.workbook-task-note{white-space:pre-line;overflow-wrap:anywhere}.workbook-task-due{font-size:13px;white-space:nowrap}.workbook-task.overdue .workbook-task-due{color:var(--destructive);font-weight:600}.workbook-task-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}.workbook-task .workbook-tag{margin-top:4px}.workbook-task-form{display:grid;gap:8px;padding:12px;border:1px dashed var(--border);border-radius:8px}.workbook-link{padding:2px 8px;margin-left:8px;font-size:12px}.workbook-link svg{width:14px;height:14px}.workbook-client-card a{color:var(--primary);overflow-wrap:anywhere}.workbook-client-card small{white-space:pre-line;color:var(--muted-foreground)}.workbook-client-list>button span{display:grid;gap:2px;min-width:0}.workbook-client-list small{color:var(--muted-foreground);font-weight:400}.workbook-client-editor{display:grid;gap:12px}.workbook-client-form .field{margin:0}.workbook-client-form .field small{display:block;padding:4px 0 0}.workbook-projects{display:grid;gap:6px;margin:0;padding:0;list-style:none}.workbook-projects li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px}.workbook-projects li>span:first-child{flex:1;min-width:0;overflow-wrap:anywhere}
/* Ügyfelek és teendők: keskeny nézetben tördelődő fülek, teljes soros törlés-megerősítés, hosszú (szóköz nélküli) nevek tördelése */.workbook-dialog .auth-tabs{flex-wrap:wrap}.workbook-dialog .auth-tabs>button{flex:1 1 90px;padding:9px 8px}.workbook-task-actions.confirming{grid-column:1/-1;justify-content:flex-end}.workbook-body>*,.workbook-section>*,.workbook-row>.field{min-width:0}.workbook-client-list strong,.workbook-client-list small,.workbook-task small,.workbook-client-card strong,.workbook-client-card span,.workbook-client-card small,.workbook-client-editor h3,.workbook-dialog p{overflow-wrap:anywhere}.workbook-client-list>button svg{flex-shrink:0}.workbook-alert{outline:none;scroll-margin:12px}
@media(max-width:1350px){.workbook-button span{display:none}.workbook-button{padding:8px}}
@media(max-width:760px){.workbook-button{padding:7px}.workbook-task{grid-template-columns:1fr}.workbook-client-form{grid-template-columns:1fr}.workbook-dialog[data-slot=dialog-content]{padding:18px}}
@media(max-width:480px){.workbook-button{position:relative}.workbook-badge{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;line-height:18px;padding:0 4px;font-size:11px}.workbook-dialog .auth-tabs svg{display:none}}
@media(max-width:400px){.topbar{gap:1px;padding:0 6px}.workbook-button{padding:6px}}
@media(max-width:350px){.topbar .iconbutton,.topbar .projects-button,.topbar .workbook-button,.topbar .export-button,.topbar .pdf-button,.topbar .primary,.topbar .account-button{padding:5px}}
.share-button{white-space:nowrap}.share-dialog[data-slot=dialog-content]{width:min(700px,calc(100% - 24px));max-width:700px;max-height:90dvh;overflow-y:auto}.share-dialog h3{margin:8px 0 0;font-size:16px}.share-form{display:grid;gap:10px}.share-check{display:flex;gap:8px;align-items:center;font-size:14px}.share-link-once{display:grid;gap:8px;padding:12px;border:1px solid var(--primary);border-radius:8px;background:var(--muted)}.share-link-once input{width:100%;font-family:monospace;font-size:13px}.share-link-once p{margin:0;font-size:13px}.share-dialog[data-slot=dialog-content]>*,.share-form>*,.share-list>*{min-width:0}.share-list{display:grid;gap:8px}.share-entry b{overflow-wrap:anywhere}.share-entry{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:8px}.share-entry>span:first-child{flex:1;min-width:0}.share-entry small{display:block;color:var(--muted-foreground);overflow-wrap:anywhere}.share-entry .danger{width:auto;margin:0;flex-shrink:0}.share-tag{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--accent);white-space:nowrap}
.share-site{min-height:100dvh;background:var(--background);color:var(--foreground)}.share-page{max-width:1200px;margin:0 auto;padding:24px 16px;display:grid;gap:14px;min-width:0}.share-page>*{min-width:0}.share-head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}.share-head h1{margin:0;font-size:28px;line-height:1.2;overflow-wrap:anywhere}.share-head p{margin:6px 0 0}.share-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.share-meta,.share-note{color:var(--muted-foreground);font-size:14px}.share-notice{margin:0;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--accent);font-size:14px}.share-notice a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.share-failure{display:grid;gap:8px;justify-items:start}.share-section{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0}.share-section>*{min-width:0}.share-tabs,.share-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.share-controls .field{min-width:160px}.share-zoom{display:flex;gap:4px;align-items:center}.share-zoom span{min-width:52px;text-align:center;font-size:14px}.share-canvas{overflow:auto;max-height:75dvh;border:1px solid var(--border);border-radius:8px;background:var(--plan-bg)}.share-canvas svg{display:block;max-width:none;height:auto}.share-plot{display:flex;height:min(75dvh,720px);min-height:360px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.share-section .legend{margin-top:0}
[data-theme=dark] .share-site .public-footer{background:var(--muted);color:var(--muted-foreground);border-color:var(--border)}[data-theme=dark] .share-site .public-footer .brand{color:var(--foreground)}
/* A Megosztás gombbal bővült felső sáv lépcsőzetesen csukódik össze: előbb a Megosztás, majd az Ügyfelek, aztán az Exportálás felirata, 1250 px alatt a többi; a feliratok így sehol sem törnek két sorba. */
@media(max-width:1440px){.share-button span{display:none}.share-button{padding:8px}}
@media(max-width:760px){.share-button{padding:7px}.share-dialog[data-slot=dialog-content]{padding:18px}.share-entry{flex-direction:column;align-items:stretch}.share-page{padding:16px}.share-head h1{font-size:22px}.share-controls .field{min-width:0;flex:1 1 140px}}
/* A Megosztás gombbal 320 px-ig sem lóg ki a felső sáv: keskeny kijelzőn kisebb ikonok és kisebb belső margó. */
/* 761–900 px között a márkanévnek nincs helye (760 px alatt eddig is csak a logó látszott). */
@media(max-width:900px){.topbar .brand{font-size:0;gap:0}}
@media(max-width:420px){.topbar button svg{width:16px;height:16px}.topbar .share-button{padding:5px}}
@media(max-width:370px){.topbar .iconbutton,.topbar .projects-button,.topbar .workbook-button,.topbar .share-button,.topbar .export-button,.topbar .pdf-button,.topbar .primary,.topbar .account-button{padding:4px}}
@media(max-width:310px){.topbar{gap:0;padding:0 4px}}
/* Termékkatalógus (Eszközök → Termékkatalógus) és az ajánlat „Termékek és katalógusárak” része: csak tokenek, így sötét módban is működik. */
.catalog-manager{display:grid;gap:14px}
.catalog-manager h3{font-weight:650}.catalog-manager h4{font-weight:600}
.catalog-body{border:0;padding:0;margin:0;min-width:0;display:grid;gap:14px}
.catalog-actions,.quote-product-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.catalog-search,.catalog-import-options{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.catalog-search .field{flex:1 1 260px;margin:0}.catalog-import-options .field{flex:0 1 260px;margin:0}
.catalog-conflict{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.catalog-defaults{display:grid;gap:8px}
.catalog-table,.quote-product-table{overflow:auto;max-height:420px;border:1px solid var(--border);border-radius:8px}
.catalog-table table,.quote-product-table table{width:100%;border-collapse:collapse;font-size:12px}
.catalog-table th,.catalog-table td,.quote-product-table th,.quote-product-table td{padding:7px 8px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.catalog-table th,.quote-product-table th{position:sticky;top:0;background:var(--background)}
/* anywhere: a szóköz nélküli hosszú cikkszám vagy gyártónév is törhető (a break-word auto táblaelrendezésben nem csökkenti a min-content szélességet). */
.catalog-table td,.quote-product-table td{overflow-wrap:anywhere}
.quote-products,.quote-product-table,.catalog-body,.catalog-table,.catalog-import,.catalog-form,.catalog-defaults{min-width:0}
.catalog-table small,.quote-product-table small,.material-product{display:block;color:var(--muted-foreground)}
.report-table small.material-product{margin-top:2px}
.catalog-badge{display:inline-block;margin-left:6px;padding:0 6px;border:1px solid var(--border);border-radius:999px;font-size:11px;color:var(--muted-foreground);white-space:nowrap}
.catalog-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--muted)}
.catalog-form .wide{grid-column:1/-1}.catalog-form .field{margin:0}
.catalog-form input,.catalog-form select{width:100%;border:1px solid var(--border);background:var(--background);border-radius:5px;padding:7px;color:var(--foreground)}
.catalog-import{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:8px}
.catalog-import ul{list-style:disc;padding-left:18px;font-size:12px}
.catalog-import summary{cursor:pointer;font-size:12px}
/* A <details> tartalma egy belső dobozba kerül, ezért blokkelrendezés: a széles tábla így a saját dobozában görgethető. */
.quote-products{border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:block;min-width:0;max-width:100%}.quote-products>*+*{margin-top:10px}
.quote-products>summary{cursor:pointer;font-weight:600}
.quote-product-buttons{display:flex;flex-wrap:nowrap;gap:6px}.quote-product-table td:nth-child(2),.quote-product-table td:nth-child(4),.quote-product-table td:nth-child(5),.catalog-table td:nth-child(5),.catalog-table td:nth-child(6){white-space:nowrap}.catalog-table td:last-child button{font-size:12px;padding:5px 8px;white-space:nowrap}.quote-product-buttons button,.quote-product-table td:last-child button{font-size:12px;padding:5px 8px;white-space:nowrap}
.quote-table .quote-product{margin-top:5px;max-width:100%;justify-content:flex-start;text-align:left;font-size:12px;padding:5px 8px;white-space:normal}
.product-picker-dialog[data-slot=dialog-content]{width:min(720px,calc(100% - 24px));max-width:720px;max-height:90dvh;overflow-y:auto}
.product-picker-list{display:grid;gap:6px;max-height:50dvh;overflow-y:auto}
.product-picker-list>button{justify-content:space-between;text-align:left;white-space:normal;gap:10px}
.product-picker-list>button>span:first-child{min-width:0;overflow-wrap:anywhere}.product-picker-list small{display:block;color:var(--muted-foreground);font-size:12px;margin-top:3px}
.product-picker-badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
/* Keskeny kijelzőn a sorok kártyák: a műveletgomb vízszintes görgetés nélkül elérhető, a cellák a data-label feliratot kapják. */
@media(max-width:760px){.catalog-form{grid-template-columns:1fr}
 .catalog-table table,.catalog-table tbody,.quote-product-table table,.quote-product-table tbody{display:block}
 .catalog-table thead,.quote-product-table thead{display:none}
 .catalog-table tr,.quote-product-table tr{display:flex;flex-wrap:wrap;gap:4px 14px;padding:8px;border-bottom:1px solid var(--border)}
 .catalog-table td,.quote-product-table td{display:block;padding:0;border:0}
 .catalog-table td:not([data-label]),.quote-product-table td:not([data-label]){flex:1 1 100%}
 .catalog-table td[data-label]::before,.quote-product-table td[data-label]::before{content:attr(data-label) ": ";color:var(--muted-foreground)}}
/* Méretezési segédszámítás (Eszközök → Méretezés) */
.sizing-report{display:grid;gap:14px}
.sizing-disclaimer{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-left:4px solid #b7791f;border-radius:6px;background:var(--accent);font-size:13px;line-height:1.5}.sizing-disclaimer svg{flex:none;width:18px;color:#b7791f}.sizing-disclaimer p{margin:0}
.sizing-review{font-size:13px;color:var(--muted-foreground)}.sizing-review.pending{color:#805500}
.sizing-report .report-totals{grid-template-columns:repeat(4,minmax(0,1fr))}
.sizing-report .report-controls{flex-wrap:wrap}.sizing-report .report-controls>.field{flex:1 1 220px;min-width:0}
.sizing-board{display:grid;gap:8px;padding-top:8px;border-top:1px solid var(--border)}.sizing-board h3{font-size:15px;font-weight:600;margin:0}
.sizing-head,.sizing-circuit>summary{display:grid;grid-template-columns:minmax(130px,1.5fr) minmax(110px,1.1fr) minmax(120px,1.1fr) minmax(56px,.6fr) minmax(80px,.8fr) minmax(120px,1.2fr);gap:8px;align-items:center}
.sizing-head{padding:0 12px;font-size:12px;color:var(--muted-foreground)}
.sizing-circuit{border:1px solid var(--border);border-radius:7px;background:var(--background)}
.sizing-circuit>summary{padding:10px 12px;cursor:pointer;list-style:none;font-size:13px;font-variant-numeric:tabular-nums}.sizing-circuit>summary::-webkit-details-marker{display:none}
.sizing-circuit>summary>span{min-width:0;overflow-wrap:anywhere}.sizing-circuit>summary>.sizing-col{font-size:12.5px}.sizing-circuit>summary>.sizing-col:nth-child(3){white-space:nowrap}
.sizing-circuit>summary small{display:block;font-size:11px;color:var(--muted-foreground)}
.sizing-name{display:flex;gap:6px;align-items:flex-start}.sizing-name>span{min-width:0}.sizing-chevron{flex:none;width:14px;height:14px;margin-top:2px;color:var(--muted-foreground);transition:transform .15s}.sizing-circuit[open]>summary .sizing-chevron{transform:rotate(90deg)}
.sizing-body{display:grid;gap:12px;padding:0 12px 12px}.sizing-body h4{margin:0;font-size:13px;font-weight:600}
.sizing-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600}
.sizing-badge.ok{background:#e3f3ea;color:#1d6b43}.sizing-badge.warn{background:#fff1cf;color:#805500}.sizing-badge.fail{background:#fde4e1;color:#a2271b}.sizing-badge.na,.sizing-badge.skipped{background:var(--muted);color:var(--muted-foreground)}
.sizing-checks,.sizing-refs,.sizing-assumptions,.sizing-segments{list-style:none;padding:0;margin:0;display:grid;gap:8px;font-size:13px}
.sizing-checks>li{display:grid;gap:4px;padding-bottom:8px;border-bottom:1px solid var(--border)}.sizing-checks>li:last-child{border-bottom:0;padding-bottom:0}.sizing-checks p{margin:0;overflow-wrap:anywhere}
.sizing-check-head{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.sizing-check-head small{color:var(--muted-foreground);font-size:11px}
.sizing-checks code{font-size:12px;white-space:normal}.sizing-assumptions .strong{font-weight:600;color:#805500}
.sizing-refs li{overflow-wrap:anywhere}
.sizing-segments li{display:flex;gap:10px;align-items:center;justify-content:space-between}.sizing-segments li>span{min-width:0;overflow-wrap:anywhere}.sizing-segments button,.sizing-body button{gap:6px;white-space:nowrap}.sizing-segments svg,.sizing-body button svg{width:16px}
.sizing-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.sizing-form .field{margin:0;min-width:0}.sizing-form .field>span{display:flex;align-items:flex-end;min-height:2.7em;line-height:1.35}.sizing-form small{display:block;color:var(--muted-foreground);font-size:11px;margin-top:4px}
.sizing-settings{border:1px solid var(--border);border-radius:7px;padding:10px 12px;display:grid;gap:10px}.sizing-settings>summary{cursor:pointer;font-weight:600}.sizing-settings ul{margin:0;padding-left:18px;font-size:13px;display:grid;gap:4px}.sizing-settings .sizing-segments{padding-left:0}.sizing-settings>summary~*{margin-top:10px}.sizing-settings>p{margin-bottom:0}
[data-theme=dark] .sizing-badge.ok{background:#173d2a;color:#9fdcb9}[data-theme=dark] .sizing-badge.warn{background:#42361a;color:#f4d28b}[data-theme=dark] .sizing-badge.fail{background:#4a1f1b;color:#f3aaa1}[data-theme=dark] .sizing-review.pending,[data-theme=dark] .sizing-assumptions .strong{color:#f4d28b}
@media(max-width:760px){.sizing-report .report-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.sizing-head{display:none}.sizing-circuit>summary{grid-template-columns:minmax(0,1fr) minmax(0,42%);justify-items:start}.sizing-circuit>summary>span:last-child{justify-self:end;text-align:right}.sizing-circuit>summary>.sizing-col{display:none}.sizing-form{grid-template-columns:1fr}.sizing-form .field>span{min-height:0}.sizing-disclaimer{flex-direction:column}.sizing-segments li{flex-wrap:wrap}}
/* Kalkulátorok ikonlink a felső sávban (új lapon nyílik, a szerkesztési állapot megmarad). */
.topbar .kb-link{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:inherit;text-decoration:none}.topbar .kb-link svg{width:18px;height:18px}.topbar .kb-link:hover{background:#f0f5f4}[data-theme=dark] .topbar .kb-link:hover{background:var(--muted)}
/* A Kalkulátorok ikonnal bővült felső sáv: szűk asztali szélességen a projektnév rövidebb lehet, telefonon az ikonlink kompaktabb (ne lógjon ki 390 px-en sem). */
@media(max-width:1000px){.topbar .project-title{min-width:64px}.topbar .project-title span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25}}@media(max-width:420px){.topbar .kb-link{padding:4px}.topbar .kb-link svg{width:16px;height:16px}}
@media(max-width:480px){.topbar{gap:1px}}@media(max-width:480px) and (min-width:371px){.topbar .export-button,.topbar .pdf-button,.topbar .primary{padding:6px}.topbar .projects-button,.topbar .account-button{padding:5px}}@media(max-width:370px){.topbar .export-button svg,.topbar .pdf-button svg,.topbar .primary svg{width:16px;height:16px}.topbar .brand svg{width:26px;height:28px;padding:5px}}@media(max-width:350px){.topbar .kb-link{padding:3px}}
@media(max-width:1520px){.topbar .export-button{font-size:0;gap:0}.topbar .export-button svg{width:18px}}@media(max-width:350px){.topbar .brand svg{width:24px}}
