:root{--bg:#f3f4f6;--panel:#fff;--panel-2:#f9fafb;--border:#e5e7eb;--text:#111827;--muted:#6b7280;--primary:#2563eb;--primary-600:#1d4ed8;--primary-50:#eff6ff;--success:#16a34a;--warning:#d97706;--danger:#dc2626;--dark:#0f172a;--dark-2:#1e293b;--radius:10px;--shadow:0 1px 2px #0000000f, 0 4px 12px #0000000f;color:var(--text);background:var(--bg);font-family:Segoe UI,Heebo,Assistant,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{direction:rtl}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--panel);border-radius:8px;align-items:center;gap:6px;padding:6px 12px;line-height:1.3;transition:background .12s,border-color .12s;display:inline-flex}button:hover{background:var(--panel-2);border-color:#d1d5db}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover{background:var(--primary-600)}button.danger{color:var(--danger)}button.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}button.danger-solid:hover{background:#b91c1c}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button.ghost{background:0 0;border-color:#0000}button.sm{padding:3px 8px;font-size:12px}button.active{background:var(--primary-50);border-color:var(--primary);color:var(--primary-600)}input,select,textarea{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:6px 10px}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:2px solid #2563eb40}input[type=checkbox]{width:auto}input[type=range]{padding:0}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}label.field>span{font-weight:500}label.inline{color:var(--text);align-items:center;gap:8px;font-size:13px;display:flex}.grid-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.topbar{background:var(--dark);color:#e2e8f0;z-index:20;align-items:center;gap:16px;height:52px;padding:0 16px;display:flex;position:sticky;top:0}.topbar .brand{color:#fff;align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.logo{background:linear-gradient(135deg,#3b82f6,#22c55e);border-radius:7px;flex:none;width:26px;height:26px;display:inline-block}.topbar .who{border-radius:8px;flex-direction:column;align-items:flex-end;max-width:220px;padding:2px 6px;line-height:1.2;text-decoration:none;display:flex}.topbar .who:hover{background:#ffffff14}.topbar .who-mobile{display:none}.topbar .who-name,.topbar .who-email{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.topbar .who-name{color:#e2e8f0;font-size:12px}.topbar .who-email{color:#94a3b8;font-size:11px}.login-wrap{justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex}.login-card{width:min(420px,100%)}.login-card h1{margin:0;font-size:22px}.topbar .crumbs{color:#94a3b8;white-space:nowrap;align-items:center;gap:8px;display:flex;overflow:hidden}.topbar .crumbs a{color:#cbd5e1}.topbar .spacer{flex:1}.topbar button{background:var(--dark-2);color:#e2e8f0;border-color:#334155}.topbar button.primary{background:var(--primary);border-color:var(--primary)}.page{max-width:1100px;margin:0 auto;padding:24px 16px 60px}.page h1{margin:0 0 16px;font-size:22px}.page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card h2,.card h3{margin:0 0 10px;font-size:15px}.cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.card.clickable{cursor:pointer;transition:transform .12s,box-shadow .12s}.card.clickable:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0000001a}.badge{color:#374151;background:#e5e7eb;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.draft{background:#f3f4f6}.badge.analyzed{color:#1e40af;background:#dbeafe}.badge.quoted,.badge.approved,.badge.ok{color:#166534;background:#dcfce7}.badge.warn{color:#92400e;background:#fef3c7}.badge.bad{color:#991b1b;background:#fee2e2}.badge.info{color:#1e40af;background:#dbeafe}.badge.pulse{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.55}}.chip{background:var(--panel-2);border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:12px;display:inline-flex}.chip.strong{background:var(--primary-50);color:var(--primary-600);border-color:#bfdbfe;font-weight:600}.chip.warn{color:#92400e;background:#fef3c7;border-color:#fcd34d}.form-error{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:6px 10px;font-size:13px}.muted{color:var(--muted)}.small{font-size:12px}.row{align-items:center;gap:8px;display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:10px;display:flex}.empty{text-align:center;color:var(--muted);padding:56px 28px;line-height:1.65}.empty p{margin:0 0 8px}.sidepanel .tabs button{letter-spacing:0}.empty-state{text-align:center;max-width:560px;margin:24px auto;padding:40px 24px}.empty-state .icon{margin-bottom:8px;font-size:36px}.empty-state h3{margin:0 0 8px;font-size:17px}.skeleton{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 37%,#e5e7eb 63%) 0 0/400% 100%;border-radius:8px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.progress{background:#e5e7eb;border-radius:999px;height:8px;overflow:hidden}.progress .bar{background:linear-gradient(90deg, var(--primary), #22c55e);border-radius:999px;height:100%;transition:width .4s}.progress.indeterminate .bar{animation:1.2s ease-in-out infinite slide;width:40%!important}@keyframes slide{0%{transform:translate(120%)}to{transform:translate(-280%)}}.stepper{align-items:center;gap:4px;margin:0;padding:0;list-style:none;display:flex}.stepper .step{min-width:0;color:var(--muted);flex:1;align-items:center;gap:6px;font-size:12px;display:flex;position:relative}.stepper .step:not(:last-child):after{content:"";background:var(--border);flex:1;height:2px;margin:0 2px}.stepper .step.done:not(:last-child):after{background:#86efac}.stepper .step .dot{color:#6b7280;background:#e5e7eb;border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-grid}.stepper .step .lbl{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.stepper .step.done .dot{background:var(--success);color:#fff}.stepper .step.done .lbl{color:var(--text)}.stepper .step.active .dot{background:var(--primary);color:#fff;box-shadow:0 0 0 4px #2563eb2e}.stepper .step.active .lbl{color:var(--primary-600);font-weight:600}.stepper .step.warn .dot{background:var(--warning);color:#fff}.stepper .step.warn .lbl{color:#92400e;font-weight:600}.stepper .step.error .dot{background:var(--danger);color:#fff}.stepper .step.clickable{cursor:pointer}.stepper .step.clickable:hover .lbl{text-decoration:underline}.stepper.compact .step .dot{width:18px;height:18px;font-size:10px}.stepper.compact .step{flex:0 auto;font-size:11px}.stepper.compact .step:not(:last-child):after{flex:1 0 8px}.stepper.compact{justify-content:space-between}.menu{display:inline-block;position:relative}.menu-list{border:1px solid var(--border);z-index:30;background:#fff;border-radius:10px;flex-direction:column;min-width:190px;padding:4px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 10px 30px #00000024}.menu-item{text-align:right;background:0 0;border:none;border-radius:7px;justify-content:flex-start;padding:7px 10px;font-size:13px}.menu-item:hover{background:var(--panel-2)}.menu-item.danger{color:var(--danger)}.filters{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.filters .search{max-width:360px;padding:8px 12px}.segmented{background:#e5e7eb;border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:none;border-radius:8px;padding:5px 10px;font-size:13px}.segmented button.active{color:var(--text);background:#fff;box-shadow:0 1px 2px #00000014}.segmented .count{color:var(--muted);font-size:11px}.project-card .thumbs{gap:6px;height:120px;display:flex}.project-card .thumbs img{object-fit:cover;border:1px solid var(--border);background:#f3f4f6;border-radius:8px;flex:1;min-width:0;height:100%}.thumb-empty{border:1px dashed var(--border);background:repeating-linear-gradient(45deg,#f3f4f6,#f3f4f6 10px,#f9fafb 10px 20px);border-radius:8px;flex:1;place-items:center;height:100%;display:grid}.summary-strip{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:8px;display:grid}.summary-strip .stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px}.summary-strip .stat.wide{grid-column:1/-1}.summary-strip .v{text-align:right;direction:ltr;font-size:20px;font-weight:700}.summary-strip .l{color:var(--muted);font-size:11px}.floor-card .thumb{background:#f3f4f6;border-radius:8px;height:150px;position:relative;overflow:hidden}.floor-card .thumb img{object-fit:contain;width:100%;height:100%}.floor-card .thumb-progress{background:#ffffffeb;flex-direction:column;gap:4px;padding:8px 10px;display:flex;position:absolute;inset:auto 0 0}.dropzone.has-file{color:var(--text);background:#f0fdf4;border-style:solid;border-color:#86efac}.autoplan-opt{background:var(--primary-50);border:1px solid #bfdbfe;border-radius:10px;align-items:flex-start;padding:10px 12px}.autoplan-opt input{margin-top:3px}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th,table.data td{text-align:right;border-bottom:1px solid var(--border);padding:6px 8px}table.data th{color:var(--muted);font-size:12px;font-weight:600}table.data tr.total td{border-top:2px solid #d1d5db;font-weight:700}table.data td.num,table.data th.num{text-align:left;font-variant-numeric:tabular-nums;direction:ltr}.modal-backdrop{z-index:50;background:#0f172a73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:min(560px,94vw);max-height:90vh;padding:20px;overflow:auto;box-shadow:0 20px 60px #0000004d}.modal h2{margin:0 0 14px;font-size:18px}.modal .actions{justify-content:flex-start;gap:8px;margin-top:16px;display:flex}.toast{background:var(--dark);color:#fff;box-shadow:var(--shadow);z-index:60;border-radius:10px;align-items:center;gap:12px;padding:10px 16px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast.error{background:var(--danger)}.toast.success{background:#166534}.dropzone{text-align:center;color:var(--muted);background:var(--panel-2);cursor:pointer;border:2px dashed #cbd5e1;border-radius:12px;padding:24px}.dropzone.active{border-color:var(--primary);background:var(--primary-50)}.workspace{grid-template-columns:76px 1fr 360px;height:calc(100vh - 52px);display:grid;overflow:hidden}.workspace.panel-hidden{grid-template-columns:64px 1fr 0}.workspace{position:relative}.canvas-col{flex-direction:column;min-width:0;min-height:0;display:flex}.save-state[data-state=saved]{color:#86efac}.save-state[data-state=dirty]{color:#fbbf24}.save-state[data-state=saving]{color:#93c5fd}.toolbar .tool.accent{color:#fff;background:linear-gradient(135deg,#7c3aed,#2563eb)}.toolbar .tool.accent:hover:not(:disabled){filter:brightness(1.1)}.toolbar .tool.accent:disabled{color:#94a3b8;background:#334155}.autoplan-overlay{z-index:12;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#f3f4f6d1;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.autoplan-card{border-color:#c7d2fe;flex-direction:column;gap:14px;width:min(520px,100%);padding:20px 22px;display:flex}.autoplan-banner{border-bottom:1px solid var(--border);padding:10px 14px;font-size:13px;animation:.25s dropin}@keyframes dropin{0%{opacity:0;transform:translateY(-6px)}}.autoplan-banner.ok{background:#f0fdf4;border-bottom-color:#86efac}.autoplan-banner.warn{background:#fffbeb;border-bottom-color:#fcd34d}.autoplan-banner.bad{background:#fef2f2;border-bottom-color:#fecaca}.workflow{border-bottom:1px solid var(--border);background:var(--panel-2);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.workflow .next{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.workflow .next button{flex:1;justify-content:center}.tab-dot{background:var(--success);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.toolbar{background:var(--dark-2);flex-direction:column;align-items:center;gap:2px;padding:8px 4px 12px;display:flex;overflow-y:auto}.toolbar .tool{color:#e2e8f0;background:0 0;border:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:68px;height:auto;min-height:48px;padding:4px 2px;font-size:10px;line-height:1.15;display:flex}.toolbar .tool span{text-align:center;max-width:66px}.toolbar .tool svg{width:20px;height:20px}.toolbar .tool:hover{background:#334155}.toolbar .tool.active{background:var(--primary);color:#fff}.toolbar .tool.on{color:#bfdbfe;background:#1e3a5f}.toolbar .sep{background:#334155;width:32px;height:1px;margin:6px 0}.canvas-area{background:radial-gradient(900px 520px at 50% 0,#f8fafc,#e2e8f0 72%);height:100%;position:relative;overflow:hidden}.canvas-area canvas{display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.canvas-hud{z-index:5;flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:10px;right:10px}.canvas-hud .hud-group{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff0;border:1px solid #0f172a14;border-radius:10px;gap:2px;padding:4px;display:flex;box-shadow:0 8px 24px #0f172a1f}.canvas-hud .hud-hint{color:var(--muted);align-items:center;padding:0 8px;font-size:12px}.canvas-hud button{background:0 0;border:none;border-radius:7px;padding:6px 10px;font-size:12px;font-weight:600}.tour-card{z-index:6;color:#f8fafc;text-align:right;background:#0f172af0;border-radius:14px;width:min(460px,100% - 24px);padding:14px 16px 12px;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #0f172a47}.tour-card h3{color:#fff;margin:2px 0 8px;font-size:18px;font-weight:700}.tour-kicker{color:#93c5fd;font-size:12px;font-weight:700}.tour-card ul{flex-direction:column;gap:4px;margin:0 0 12px;padding:0 1.15em 0 0;font-size:13.5px;line-height:1.45;display:flex}.tour-card li::marker{color:#93c5fd}.tour-actions{flex-wrap:wrap;gap:6px;display:flex}.tour-card button{color:#f8fafc;background:#ffffff14;border-color:#ffffff29}.tour-card button:hover{background:#ffffff29;border-color:#ffffff47}.tour-card button.primary{background:var(--primary);border-color:var(--primary);color:#fff}.tour-card button.primary:hover{background:var(--primary-600);border-color:var(--primary-600)}.tour-hint{color:#94a3b8;margin-top:8px;font-size:11px}.view-note{z-index:5;color:#f8fafc;text-align:center;background:#0f172ae6;border-radius:10px;max-width:min(520px,100% - 32px);padding:8px 14px;font-size:13px;line-height:1.45;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0f172a2e}.canvas-hud button.active{background:var(--primary);color:#fff}.canvas-hint{pointer-events:none;z-index:5;justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.hint-legends{align-items:flex-end;gap:8px;display:flex}.canvas-hint .hint{color:#e2e8f0;pointer-events:auto;background:#0f172ad9;border-radius:8px;padding:6px 12px;font-size:12px}.measure-readout{z-index:6;pointer-events:none;-webkit-user-select:none;user-select:none;color:#0f766e;white-space:nowrap;background:#fffffff5;border:1px solid #0f766e59;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 6px 16px #0f172a29}.measure-readout.warn{color:#b45309;border-color:#b4530966;font-weight:600}.legend{border:1px solid var(--border);pointer-events:auto;background:#fffffff2;border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px;font-size:11px;display:flex}.legend .item{align-items:center;gap:6px;display:flex}.legend .swatch{border-radius:2px;width:14px;height:10px;display:inline-block}.busy-overlay{z-index:8;color:var(--dark);background:#ffffff8c;justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}.busy-overlay .spinner{border:3px solid #cbd5e1;border-top-color:var(--primary);border-radius:50%;width:18px;height:18px;margin-left:8px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.sidepanel{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}.sidepanel .tabs{border-bottom:1px solid var(--border);display:flex}.sidepanel .tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:1;justify-content:center;padding:10px 6px;font-size:13px}.sidepanel .tabs button.active{color:var(--primary-600);border-bottom-color:var(--primary);font-weight:600}.sidepanel .panel-body{flex-direction:column;flex:1;gap:12px;padding:12px;display:flex;overflow-y:auto}.section{border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.section>h4{justify-content:space-between;align-items:center;margin:0;font-size:13px;display:flex}.kpis{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.kpi{background:var(--panel-2);text-align:center;border-radius:8px;padding:8px}.kpi .v{direction:ltr;font-size:18px;font-weight:700}.kpi .l{color:var(--muted);font-size:11px}.kpi.ok .v{color:var(--success)}.kpi.bad .v{color:var(--danger)}.warn-list{color:#92400e;margin:0;padding:0 16px 0 0;font-size:12px}.device-list{flex-direction:column;gap:4px;display:flex}.device-item{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.device-item:hover{background:var(--panel-2)}.device-item.selected{border-color:var(--primary);background:var(--primary-50)}.device-item .dot{border-radius:50%;width:10px;height:10px}.device-item .grow{flex:1}.report{background:#fff;max-width:900px;margin:0 auto;padding:24px}.report h1{margin:0 0 4px;font-size:24px}.report h2{border-bottom:2px solid var(--primary);margin:24px 0 8px;padding-bottom:4px;font-size:17px}.report .meta{color:var(--muted);font-size:13px}.report .letterhead{border-bottom:2px solid var(--dark);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;padding-bottom:12px;display:flex}.report .letterhead h1{margin:0;font-size:22px}.report .snapshot{border:1px solid var(--border);border-radius:8px;width:100%}.report .kpis{grid-template-columns:repeat(4,1fr)}.no-print{margin-bottom:16px}@media (width<=1100px){.workspace{grid-template-columns:56px 1fr 300px}.toolbar .tool{width:44px;height:40px;font-size:9px}}@media (width<=820px){.workspace{grid-template-rows:1fr auto;grid-template-columns:56px 1fr}.workspace .sidepanel{border-right:none;border-top:1px solid var(--border);grid-column:1/-1;max-height:45vh}.workspace.panel-hidden{grid-template-rows:1fr;grid-template-columns:56px 1fr}.page-header{flex-direction:column;align-items:stretch!important}.grid-3{grid-template-columns:1fr 1fr}.topbar .crumbs{display:none}.canvas-hud{flex-direction:column;align-items:flex-end}}@media (width<=560px){.grid-2,.grid-3,.cards{grid-template-columns:1fr}.topbar{gap:8px;padding:0 10px}.topbar .brand{min-width:0;font-size:14px}.topbar .who{display:none}.topbar .who-mobile{display:inline-flex}.topbar .brand-text,.topbar .save-state[data-state=saved],.autoplan-banner .chip:not(.strong),.autoplan-banner .small.muted{display:none}.autoplan-banner{padding:8px 10px}.canvas-hint .hint{display:none}.topbar button{white-space:nowrap;padding:5px 8px;font-size:12px}.workspace,.workspace.panel-hidden{grid-template-columns:44px minmax(0,1fr);max-width:100vw}.workspace>*{min-width:0}.workspace .sidepanel{max-height:50vh}.toolbar{padding:6px 2px 10px}.toolbar .tool{width:38px;height:34px}.toolbar .tool span{display:none}.canvas-hud{flex-flow:wrap;justify-content:flex-end;align-items:flex-start;gap:4px;left:10px;right:10px}.canvas-hud .hud-secondary,.canvas-hud .hud-hint{display:none}.canvas-hud .hud-group{padding:2px;box-shadow:0 4px 12px #0f172a1f}.canvas-hud button{padding:5px 7px;font-size:11px}.canvas-hint{bottom:6px;left:6px;right:6px}.canvas-hint .hint{padding:4px 8px;font-size:11px}.canvas-hint .legend{display:none}.view-note{font-size:12px}}.letterhead-logo{object-fit:contain;border-radius:6px;max-width:180px;max-height:64px}@media print{.no-print,.topbar{display:none!important}.report{padding:0}body{background:#fff}@page{size:A4;margin:14mm}}
