/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}}:root{--ink:#182039;--green:#17213a;--green-2:#34405e;--cream:#f4f5f7;--line:#d9dde6;--muted:#697087;--gold:#e9aa2c}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{color:var(--ink);background:#eef1f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.38}.app-shell{flex-direction:column;height:100dvh;min-height:0;transition:padding-right .2s;display:flex;overflow:hidden}.app-shell.help-visible{padding-right:400px}.topbar{border-bottom:3px solid var(--gold);background:#17213a;grid-template-columns:auto minmax(260px,1fr) auto auto;grid-template-areas:"brand project actions account";align-items:start;gap:11px 18px;min-height:86px;padding:13px 30px;display:grid;box-shadow:0 5px 20px #0f18302e}.brand{color:#fff;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;flex-direction:column;order:1;grid-area:brand;align-items:flex-start;gap:5px;font-size:10px;font-weight:750;text-decoration:none;display:flex}.brand-logo{width:235px;height:auto;display:block}.brand-product{text-align:center;border:0;width:100%;padding:0}.project-fields{order:4;grid-area:project;place-self:start center;gap:12px;width:min(620px,100%);max-width:620px;display:flex}.project-fields label{background:#fff;border:1px solid #ffffff47;border-radius:7px;flex:1;align-items:center;gap:8px;height:42px;padding:0 12px;display:flex;box-shadow:0 2px 8px #070d1e1f}.project-fields label:last-child{flex:auto;width:100%}.project-fields span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800}.project-fields input,.project-fields select{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-weight:650}.top-actions{order:2;grid-area:actions;align-items:center;gap:8px;margin-left:0;display:flex}.icon-button,.save-button,.export-button,.projects-button,.new-project-button,.help-button{height:42px;color:var(--ink);background:#fff;border:1px solid #ffffff47;border-radius:7px;font-weight:750;transition:transform .15s,box-shadow .15s,background .15s}.icon-button:hover:not(:disabled),.save-button:hover:not(:disabled),.projects-button:hover:not(:disabled),.help-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 14px #040a1933}.help-button{color:var(--green);align-items:center;gap:7px;padding:0 11px;display:flex}.help-button b{background:var(--gold);width:21px;height:21px;color:var(--green);border-radius:50%;place-items:center;font-size:12px;display:grid}.projects-button{padding:0 13px}.projects-button span{min-width:19px;height:19px;color:var(--green);background:#e6ece9;border-radius:10px;place-items:center;margin-left:5px;padding:0 5px;font-size:10px;display:inline-grid}.new-project-button{border-color:var(--gold);color:var(--green);background:#f5c14f;padding:0 14px}.icon-button{width:42px;font-size:20px}.save-button{align-items:center;gap:8px;padding:0 17px;display:flex}.save-button span{color:var(--green-2)}.save-wrap{height:54px;position:relative}.save-button.saved{animation:.7s ease-out save-flash}.save-feedback{z-index:30;color:var(--green);white-space:nowrap;opacity:0;pointer-events:none;background:#f1f8f5;border:1px solid #b8d3c7;border-radius:10px;padding:3px 7px;font-size:9px;font-weight:800;transition:opacity .18s,transform .18s;position:absolute;top:45px;left:50%;transform:translate(-50%,-3px)}.save-feedback.visible{opacity:1;transform:translate(-50%)}@keyframes save-flash{0%{box-shadow:none;background:#fff}35%{background:#d8eee5;border-color:#4f9d7d;box-shadow:0 0 0 5px #4f9d7d33}to{box-shadow:none;background:#fff}}@media (prefers-reduced-motion:reduce){.save-button.saved{background:#e3f1eb;animation:none}.save-feedback{transition:none}}.export-button{background:var(--gold);color:var(--green);border-color:var(--gold);padding:0 18px;box-shadow:0 4px 13px #e9aa2c40}.export-button:hover:not(:disabled),.new-project-button:hover:not(:disabled){background:#f3b83e;transform:translateY(-1px)}.projects-backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#121a1761;justify-content:flex-end;display:flex;position:fixed;inset:0}.help-dialog{z-index:150;background:#fbfaf7;border-left:1px solid #cfd4dd;width:400px;padding:24px;position:fixed;top:0;bottom:0;right:0;overflow:auto;box-shadow:-14px 0 38px #11182b2e}.help-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:17px;display:flex}.help-head small{color:var(--green);letter-spacing:.16em;font-size:9px;font-weight:900}.help-head h2{margin:4px 0 0;font:700 25px/1.15 Georgia,serif}.help-head button{width:34px;height:34px;color:var(--muted);background:#e9ebe7;border:0;border-radius:50%;flex:none;font-size:22px}.help-content{grid-template-columns:1fr;gap:10px;margin-top:17px;display:grid}.help-content article{background:#fff;border:1px solid #e1e2dd;border-radius:9px;gap:11px;padding:13px;display:flex}.help-content article>b{width:27px;height:27px;color:var(--green);background:#e5eee9;border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.help-content h3{margin:0 0 5px;font-size:12px}.help-content p{color:var(--muted);margin:0;font-size:10px;line-height:1.45}.help-shortcuts{color:#fff;background:#173f35;border-radius:9px;margin-top:13px;padding:13px 15px}.help-shortcuts h3{margin:0 0 8px;font-size:11px}.help-shortcuts p{color:#d6e0dc;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0;font-size:9px;display:flex}.help-shortcuts kbd{color:#fff;background:#ffffff18;border:1px solid #fff4;border-radius:4px;padding:4px 6px;font:800 9px/1 Inter,ui-sans-serif,system-ui,sans-serif}.auth-backdrop{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f1830a3;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.auth-dialog{background:#fbfaf7;border-radius:14px;width:min(430px,100%);padding:26px;box-shadow:0 28px 80px #0007}.auth-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:18px;display:flex}.auth-head small{color:var(--green);letter-spacing:.15em;font-size:9px;font-weight:900}.auth-head h2{margin:5px 0 0;font:700 24px/1.18 Georgia,serif}.auth-head button{width:34px;height:34px;color:var(--muted);background:#e9ebe7;border:0;border-radius:50%;flex:none;font-size:22px}.auth-form{gap:13px;margin-top:19px;display:grid}.auth-form label{gap:6px;display:grid}.auth-form label span{color:#4e586d;letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:850}.auth-form input{width:100%;height:44px;color:var(--ink);background:#fff;border:1px solid #cdd3df;border-radius:7px;outline:0;padding:0 12px}.auth-form input:focus{border-color:#506080;box-shadow:0 0 0 3px #5060801f}.auth-submit{background:var(--gold);height:45px;color:var(--green);border:1px solid #d89b23;border-radius:8px;margin-top:3px;font-size:12px;font-weight:900}.auth-error,.auth-message{border-radius:7px;margin:0;padding:10px 11px;font-size:10px;line-height:1.45}.auth-error{color:#963b30;background:#fff0ed;border:1px solid #e5b8b1}.auth-message{color:#245b48;background:#edf6f2;border:1px solid #afcfc1}.auth-links{justify-content:space-between;gap:10px;margin-top:13px;display:flex}.auth-links button{color:#3e5378;background:0 0;border:0;padding:4px 0;font-size:10px;font-weight:750;text-decoration:underline}.auth-note{border-top:1px solid var(--line);color:var(--muted);margin:16px 0 0;padding-top:14px;font-size:9px;line-height:1.5}.confirm-backdrop{z-index:120;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#121a1780;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{text-align:center;background:#fff;border-radius:12px;width:min(390px,100%);padding:25px;box-shadow:0 24px 70px #0005}.confirm-dialog>span{color:#a23e32;background:#fff0ed;border-radius:50%;place-items:center;width:42px;height:42px;margin:0 auto 13px;font-size:23px;font-weight:850;display:grid}.confirm-dialog h2{margin:0;font:700 21px/1.2 Georgia,serif}.confirm-dialog p{color:var(--muted);margin:10px 0 20px;font-size:12px;line-height:1.5}.confirm-dialog>div{grid-template-columns:1fr 1fr;gap:9px;display:grid}.confirm-dialog button{border-radius:7px;height:40px;font-size:12px;font-weight:800}.confirm-no{border:1px solid var(--line);color:var(--ink);background:#f5f6f3}.confirm-yes{color:#fff;background:#a94738;border:1px solid #ba6a5e}.projects-panel{background:#fbfaf7;width:min(460px,100%);height:100%;padding:26px;overflow:auto;box-shadow:-18px 0 50px #0003}.projects-panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding-bottom:18px;display:flex}.projects-panel-head p{color:var(--green);letter-spacing:.14em;margin:0 0 6px;font-size:10px;font-weight:900}.projects-panel-head h2{margin:0;font:700 23px/1.15 Georgia,serif}.projects-panel-head small{color:var(--muted);margin-top:6px;font-size:9px;display:block}.projects-panel-head>button{width:34px;height:34px;color:var(--muted);background:#ebece8;border:0;border-radius:50%;font-size:22px}.projects-account-actions{grid-template-columns:1fr auto;align-items:center;gap:8px;margin:18px 0 12px;display:grid}.projects-account-actions .panel-new-project{margin:0}.signout-button{border:1px solid var(--line);height:44px;color:var(--muted);background:#fff;border-radius:8px;padding:0 11px;font-size:9px;font-weight:800}.account-menu-wrap{order:4;position:relative}.account-button{max-width:235px;height:42px;color:var(--green);text-align:left;background:#fff;border:1px solid #d7dedb;border-radius:9px;align-items:center;gap:8px;padding:5px 9px;display:flex}.account-button.signed-in{background:#f6faf8;border-color:#b9ccc5}.account-avatar{background:var(--green);color:#fff;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font-size:12px;font-weight:900;display:grid}.account-avatar.large{width:40px;height:40px;font-size:17px}.account-button-text{flex-direction:column;min-width:0;line-height:1.05;display:flex}.account-button-text small{color:#6d7b76;text-transform:uppercase;letter-spacing:.08em;font-size:8px}.account-button-text strong{text-overflow:ellipsis;white-space:nowrap;max-width:165px;font-size:11px;overflow:hidden}.account-chevron{color:#74817c;margin-left:auto}.account-dropdown{z-index:80;width:310px;color:var(--ink);background:#fff;border:1px solid #d9e0dd;border-radius:14px;padding:14px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 45px #142c2433}.account-summary{border-bottom:1px solid #e7ecea;align-items:center;gap:10px;padding-bottom:12px;display:flex}.account-summary div{flex-direction:column;min-width:0;display:flex}.account-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.account-summary small{color:#65746e;margin-top:3px;font-size:10px}.account-facts{padding:9px 0}.account-facts p{justify-content:space-between;gap:14px;margin:0;padding:5px 0;font-size:10px;display:flex}.account-facts span{color:#71807a}.account-facts b{text-align:right}.account-actions{border-top:1px solid #e7ecea;grid-template-columns:1fr 1fr;gap:7px;padding-top:10px;display:grid}.account-actions button{color:var(--green);background:#f5f8f7;border:1px solid #dbe3e0;border-radius:8px;padding:8px 9px;font-size:10px;font-weight:800}.account-actions button:hover{background:#e9f0ed}.account-actions .account-signout{color:#a53c33;background:#fff5f4;border-color:#efd6d3;grid-column:1/-1}.panel-new-project{width:100%;height:44px;color:var(--green);background:#edf4f1;border:1px dashed #8aaca0;border-radius:8px;margin:18px 0 12px;font-weight:800}.project-list{gap:9px;display:grid}.project-card{border:1px solid var(--line);background:#fff;border-radius:9px;grid-template-columns:48px 1fr auto;align-items:center;gap:11px;padding:10px;display:grid}.project-card.current{box-shadow:inset 3px 0 var(--green);border-color:#83aa9c}.project-thumb{width:48px;height:48px;color:var(--green);background:#e7ece9;border-radius:7px;place-items:center;font-size:22px;display:grid;position:relative}.project-thumb small{background:var(--green);color:#fff;border:2px solid #fff;border-radius:10px;place-items:center;min-width:18px;height:18px;font-size:8px;display:grid;position:absolute;bottom:-4px;right:-4px}.project-main{text-align:left;background:0 0;border:0;min-width:0;padding:3px 0}.project-main strong,.project-main span,.project-main small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.project-main strong{color:var(--ink);font-size:13px}.project-main span{color:var(--muted);margin-top:4px;font-size:10px}.project-main small{color:#9ba19d;margin-top:4px;font-size:9px}.project-delete{color:#a23e32;background:#fff2ef;border:0;border-radius:5px;padding:7px 8px;font-size:9px;font-weight:800}.projects-empty{color:var(--muted);text-align:center;padding:35px 10px;font-size:12px}.workspace{flex:1;grid-template-columns:278px minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;min-height:0;padding:26px 20px;display:flex;overflow-y:auto;box-shadow:4px 0 18px #19213a0d}.floor-picker{border-bottom:1px solid var(--line);margin:0 0 23px;padding-bottom:20px}.floor-picker>p{color:var(--muted);letter-spacing:.14em;margin:0 0 9px;font-size:10px;font-weight:900}.floor-list{gap:5px;display:grid}.floor-option{background:#f2f4f7;border:1px solid #0000;border-radius:7px;grid-template-columns:1fr 30px;min-height:34px;display:grid;overflow:hidden}.floor-option.active{box-shadow:inset 3px 0 var(--gold);background:#fff6df;border-color:#e5b54f}.floor-main{color:#4f5b56;text-align:left;background:0 0;border:0;min-width:0;padding:7px 10px;font-size:11px;font-weight:750}.floor-option.active .floor-main{color:var(--green)}.floor-remove{color:#9b5b51;background:0 0;border:0;border-left:1px solid #78827d26;font-size:17px}.floor-remove:hover{color:#a33425;background:#fff0ed}.floor-list>.expand-floors{min-height:28px;color:var(--green-2);background:0 0;border:0;justify-content:space-between;align-items:center;padding:5px 3px;font-size:10px;font-weight:750;display:flex}.expand-floors span{background:#fff;border:1px solid #b8c8c1;border-radius:50%;place-items:center;width:18px;height:18px;font-size:13px;display:grid}.extra-floors{background:#f7f8f5;border:1px solid #dfe5e1;border-radius:8px;gap:5px;padding:7px;display:grid}.extra-floor-option{color:#58625e;grid-template-columns:1fr auto;align-items:center;gap:7px;min-height:29px;font-size:10px;display:grid}.extra-floor-option button{width:24px;height:24px;color:var(--green);background:#fff;border:1px solid #9bb8ac;border-radius:50%;place-items:center;font-size:16px;display:grid}.extra-floor-option small{color:#9da49f;font-size:8px}.sidebar-heading{justify-content:space-between;align-items:center;display:flex}.sidebar-heading p{letter-spacing:.13em;margin:0;font-size:12px;font-weight:850}.sidebar-heading span{color:var(--muted);font-size:12px}.helper{color:var(--muted);margin:9px 0 18px;font-size:13px;line-height:1.55}.tool-list{gap:7px;display:grid}.tool-entry{min-width:0;position:relative}.tool-entry.has-options .tool{padding-right:42px}.tool-entry.with-snap-toggle .tool-options-trigger{top:30px}.light-snap-toggle{color:var(--muted);cursor:pointer;align-items:center;gap:7px;margin:1px 10px 6px 12px;font-size:10px;font-weight:750;display:flex}.light-snap-toggle input{accent-color:#dc3f3f;cursor:pointer;width:15px;height:15px;margin:0}.tool{text-align:left;width:100%;min-height:61px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:12px;padding:8px 10px;display:flex}.tool:hover{background:#f2f4f8}.tool.active{box-shadow:inset 3px 0 var(--gold);background:#fff6df;border-color:#e5b54f}.tool-icon{width:38px;height:38px;color:var(--green);background:#fff;border:1.5px solid #315b50;border-radius:50%;flex:0 0 38px;place-items:center;font-family:Georgia,serif;font-size:18px;font-weight:800;display:grid}.tool-socket .tool-icon{color:#fff;background:#23855f;border-color:#23855f;font:850 13px/1 Inter,ui-sans-serif,system-ui,sans-serif}.tool-switch .tool-icon{color:#2563eb;border-color:#2563eb}.tool-light .tool-icon{color:#dc3f3f;border-color:#dc3f3f}.tool-light .tool-icon.light-tool-facade{border-radius:5px}.tool-switch .tool-icon,.tool-light .tool-icon{font:850 11px/1 Inter,ui-sans-serif,system-ui,sans-serif}.tool-led-strip .tool-icon{color:#dc3f3f;border-color:#dc3f3f;font:850 11px/1 Inter,ui-sans-serif,system-ui,sans-serif}.tool-network .tool-icon{color:#fff;background:#e03535;border-color:#e03535;border-radius:50%;font:850 10px/1 Inter,ui-sans-serif,system-ui,sans-serif}.tool-mainboard .tool-icon{color:#fff;background:#173f35;border-color:#173f35;border-radius:7px;font:850 10px/1 Inter,ui-sans-serif,system-ui,sans-serif}.tool-smoke .tool-icon{color:#fff;background:#dc3f3f;border-color:#dc3f3f}.tool-motion .tool-icon{color:#fff;background:#23855f;border-color:#23855f}.tool-magnet .tool-icon{color:#fff;background:#2563eb;border-color:#2563eb}.tool-keypad .tool-icon{color:#fff;background:#7c3aed;border-color:#7c3aed;font-size:12px}.tool-siren-inside .tool-icon,.tool-siren-outside .tool-icon{color:#fff;background:#ea7c22;border-color:#ea7c22;font-size:11px}.tool-camera .tool-icon{color:#fff;background:#38bdf8;border-color:#38bdf8}.tool-network .tool-icon:before{display:none}.tool-cable .tool-icon{color:#3346d3;border-color:#3346d3;font-size:13px;transform:scale(.75)}.tool-arrow .tool-icon{color:#6e3a78;border-color:#6e3a78;font:850 11px/1 Inter,ui-sans-serif,system-ui,sans-serif}.tool strong,.tool small{display:block}.tool strong{font-size:13px}.tool small{color:var(--muted);margin-top:3px;font-size:11px}.tool i{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:19px;height:19px;margin-left:auto;font-size:11px;font-style:normal;display:grid}.tool-options-trigger{z-index:3;width:28px;height:38px;color:var(--green);background:#fff;border:1px solid #d5dcd8;border-radius:7px;font-size:23px;line-height:1;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.tool-options-trigger:hover,.tool-options-trigger[aria-expanded=true]{background:#e9f0ed;border-color:#8dac9f}.tool-options-popover{z-index:35;background:#fff;border:1px solid #cbd5d0;border-radius:9px;grid-template-columns:1fr 1fr;gap:6px;padding:9px;display:grid;position:absolute;top:58px;left:8px;right:8px;box-shadow:0 12px 28px #18241f33}.tool-options-popover>button{border:1px solid var(--line);min-height:42px;color:var(--ink);text-align:left;background:#f7f8f6;border-radius:7px;align-items:center;gap:6px;padding:5px 6px;font-size:9px;font-weight:750;display:flex}.tool-options-popover>button i{color:#fff;background:#687b74;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:8px;font-style:normal;display:grid}.tool-options-light>button i{color:#fff;background:#dc3f3f;font-size:17px}.tool-options-light>button i.light-option-recessed{border:2px dashed #fff}.tool-options-light>button i.light-option-facade{border-radius:4px}.tool-options-switch>button i{background:#2563eb}.tool-options-socket>button i{background:#23855f}.tool-options-network>button i{background:#e03535;font-size:7px}.tool-options-popover>button.active{background:#eaf2ee;border-color:#6f9b8b;box-shadow:0 0 0 2px #dce9e4}.power-extra-tools{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.power-extra-toggle{width:100%;min-height:34px;color:var(--green);background:#f3f5f2;border:1px solid #d7ddd9;border-radius:7px;justify-content:space-between;align-items:center;padding:6px 9px;font-size:10px;font-weight:850;display:flex}.power-extra-toggle span{background:#fff;border-radius:50%;place-items:center;width:19px;height:19px;font-size:15px;display:grid}.power-extra-grid{grid-template-columns:1fr 1fr;gap:5px;margin-top:7px;display:grid}.power-extra-grid>button{min-width:0;min-height:42px;color:var(--ink);text-align:left;background:#f6f5f1;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:5px 6px;display:flex}.power-extra-grid>button:hover{background:#eeece5}.power-extra-grid>button.active{background:#f3e9df;border-color:#a9825c;box-shadow:inset 2px 0 #8a5a2b}.power-extra-grid i{color:#fff;background:#8a5a2b;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font:850 8px/1 Inter,ui-sans-serif,system-ui,sans-serif;display:grid}.legend-toggle{width:100%;min-height:42px;color:var(--green);text-align:left;background:#f5f7f4;border:1px solid #cfd9d4;border-radius:8px;grid-template-columns:25px 1fr 25px;align-items:center;gap:7px;margin-top:10px;padding:7px 10px;font-size:11px;font-weight:850;display:grid}.legend-toggle span{font-size:16px}.legend-toggle b{background:#fff;border-radius:50%;place-items:center;min-width:22px;height:22px;font-size:9px;display:grid}.legend-toggle.active{background:#e5efea;border-color:#719a8b}.plan-legend{z-index:18;background:#fffefb;border:1px solid #bdcac4;border-radius:11px;width:min(340px,100% - 40px);max-height:calc(100% - 92px);padding:15px;position:absolute;bottom:20px;left:20px;overflow:auto;box-shadow:0 14px 38px #17211e30}.plan-legend-head{border-bottom:1px solid var(--line);align-items:center;padding-bottom:11px;display:flex}.plan-legend-head small,.plan-legend-head strong{display:block}.plan-legend-head small{color:var(--muted);font-size:9px}.plan-legend-head strong{margin-top:2px;font-size:16px}.plan-legend-head button{width:28px;height:28px;color:var(--muted);background:#eff1ee;border:0;border-radius:50%;margin-left:auto;font-size:18px}.plan-legend-list{gap:6px;margin-top:11px;display:grid}.plan-legend-row{min-height:42px;color:var(--ink);background:#f6f6f2;border-radius:7px;grid-template-columns:32px 1fr 28px;align-items:center;gap:9px;padding:5px 7px;font-size:11px;font-weight:700;display:grid}.plan-legend-row>b{width:25px;height:25px;color:var(--green);background:#fff;border-radius:50%;place-items:center;font-size:10px;display:grid}.legend-symbol{color:#fff;background:#315b50;border-radius:50%;place-items:center;width:28px;height:28px;font:850 9px/1 Inter,ui-sans-serif,system-ui,sans-serif;display:grid}.legend-symbol-socket{background:#23855f}.legend-symbol-switch{background:#2563eb}.legend-symbol-light,.legend-symbol-led-strip{background:#dc3f3f;font-size:18px}.legend-light-wall{background:#72c99a}.legend-light-facade{background:#23855f;border-radius:3px}.legend-light-recessed{border:2px dashed #fff}.legend-symbol-network{background:#e03535;font-size:7px}.legend-symbol-mainboard{background:#173f35;border-radius:4px;font-size:7px}.legend-symbol-power-device{background:#8a5a2b}.legend-symbol-smoke{background:#dc3f3f}.legend-symbol-motion{background:#23855f}.legend-symbol-magnet{background:#2563eb}.legend-symbol-keypad{background:#7c3aed}.legend-symbol-siren-inside,.legend-symbol-siren-outside{background:#ea7c22}.legend-symbol-camera{background:#38bdf8}.legend-symbol-cable{background:#3346d3;font-size:8px}.plan-legend-empty{color:var(--muted);margin:13px 0 2px;font-size:11px}.power-extra-grid span{overflow-wrap:anywhere;min-width:0;font-size:9px;font-weight:750;line-height:1.15}.tip{border-top:1px solid var(--line);color:var(--muted);gap:10px;margin-top:auto;padding:13px;font-size:11px;line-height:1.4;display:flex}.tip>span{border:1px solid #aab1ad;border-radius:50%;flex:none;place-items:center;width:19px;height:19px;display:grid}.tip p{margin:0}.tip strong{color:var(--ink);margin-bottom:2px;display:block}.remove-button{color:#82483f;background:#fff9f7;border:1px solid #d7beba;border-radius:7px;height:38px;font-size:12px;font-weight:700}.canvas-area{background:#e9edf3;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.canvas-toolbar{height:52px;color:var(--muted);background:#f7f8fa;border-bottom:1px solid #d4d9e3;flex:none;justify-content:space-between;align-items:center;padding:0 24px;font-size:12px;font-weight:650;display:flex}.status-dot{background:var(--gold);border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.canvas-controls{align-items:center;gap:12px;display:flex}.clipboard-controls{border:1px solid var(--line);background:#fff;border-radius:6px;height:30px;display:flex;overflow:hidden}.clipboard-controls button{border:0;border-right:1px solid var(--line);color:var(--green);background:#fff;padding:0 9px;font-size:10px;font-weight:800}.clipboard-controls button:last-child{border-right:0}.clipboard-controls button:hover:not(:disabled){background:#eaf2ee}.clipboard-controls button:disabled{color:#a8aeab;cursor:not-allowed;background:#f4f5f2}.block-scale{border:1px solid var(--line);background:#fff;border-radius:6px;align-items:center;gap:8px;height:30px;padding:0 10px;display:flex}.block-scale span{color:var(--ink);font-size:11px}.block-scale input{width:95px;accent-color:var(--green);cursor:pointer}.block-scale .scale-step{width:25px;height:24px;color:var(--green);background:#f7f8f6;border:1px solid #d7dcd9;border-radius:5px;flex:none;place-items:center;padding:0;font-size:15px;font-weight:800;line-height:1;display:grid}.block-scale .scale-step:hover:not(:disabled){background:#eaf2ee;border-color:#8fb2a5}.block-scale b{width:34px;color:var(--green);text-align:right;font-size:11px}.zoom{border:1px solid var(--line);background:#fff;border-radius:6px;align-items:center;display:flex;overflow:hidden}.zoom button{background:#fff;border:0;width:32px;height:28px;font-size:17px}.zoom span{text-align:center;width:52px;font-size:11px}.zoom .zoom-fit{border-right:1px solid var(--line);width:auto;color:var(--green);padding:0 9px;font-size:10px;font-weight:800}.canvas-scroll{--canvas-pad-y:42px;overflow-anchor:none;overscroll-behavior:contain;scroll-behavior:auto;min-height:0;padding:var(--canvas-pad-y) 42px;touch-action:pan-x pan-y;scrollbar-width:none;-ms-overflow-style:none;background-image:radial-gradient(#cac9c3 .7px,#0000 .7px);background-size:18px 18px;flex:1;display:block;overflow:hidden}.canvas-scroll::-webkit-scrollbar{width:0;height:0;display:none}.canvas-scroll.panning,.canvas-scroll.panning .plan{cursor:grabbing;-webkit-user-select:none;user-select:none}.plan{aspect-ratio:1.42;overflow-anchor:none;touch-action:pan-x pan-y;background:#fff6;border:1px dashed #b7b8b2;place-items:center;max-width:none;margin:0 auto;display:grid;position:relative}.plan.has-plan{cursor:grab;background:#fff;border:120px solid #fff;box-shadow:0 8px 30px #202a2621}.plan.has-plan.placing{cursor:crosshair}.canvas-scroll.panning .plan.has-plan.placing{cursor:grabbing}.plan>img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.upload-card{color:var(--muted);background:0 0;border:0;flex-direction:column;align-items:center;display:flex}.upload-icon{width:58px;height:58px;color:var(--green);background:#f8f7f2;border:1px solid #b7bcb8;border-radius:50%;place-items:center;margin-bottom:18px;font-size:25px;display:grid}.upload-card strong{color:var(--ink);margin-bottom:7px;font-family:Georgia,serif;font-size:21px}.upload-card small{font-size:13px}.upload-card b{background:var(--green);color:#fff;border-radius:6px;margin-top:19px;padding:10px 16px;font-size:12px}.marker{transform:translate(-50%,-50%) scale(var(--plan-scale,1));transform-origin:50%;color:#fff;z-index:2;touch-action:none;cursor:pointer;pointer-events:none;background:0 0;border:0;border-radius:50%;width:34px;height:34px;padding:0;position:absolute;overflow:visible}.marker-face{background:var(--green);transform:scale(var(--block-scale,1));transform-origin:50%;pointer-events:auto;cursor:pointer;border:2px solid #fff;border-radius:50%;place-items:center;display:grid;position:absolute;inset:0;box-shadow:0 2px 7px #0000004d}.marker-socket .marker-face{background:#23855f}.marker-switch .marker-face{background:#2563eb}.marker-light .marker-face{background:#dc3f3f}.marker-light-recessed .marker-face{transform:scale(var(--block-scale,1));background:#f28c28;border-style:dashed}.marker-light-surface .marker-face{background:#dc3f3f}.marker-light-wall .marker-face{background:#72c99a}.marker-light-facade .marker-face{background:#23855f;border-radius:4px}.marker-network{border-radius:50%;width:34px;height:34px}.marker-network .marker-face{background:#e03535;border:2px solid #fff;border-radius:50%;inset:0}.marker-mainboard{border-radius:6px;width:86px;height:50px}.marker-mainboard .marker-face{background:#173f35;border-radius:6px}.marker-power-device .marker-face{background:#8a5a2b}.marker-power-device .marker-face i{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:10px}.marker-mainboard .marker-face i{text-overflow:ellipsis;white-space:nowrap;max-width:74px;font:850 27px/1 Inter,ui-sans-serif,system-ui,sans-serif;display:block;overflow:hidden}.marker-smoke .marker-face{background:#dc3f3f}.marker-motion .marker-face{background:#23855f}.marker-magnet .marker-face{background:#2563eb}.marker-keypad .marker-face{background:#7c3aed}.marker-siren-inside .marker-face,.marker-siren-outside .marker-face{background:#ea7c22}.marker-camera .marker-face{background:#38bdf8}.marker-network .marker-face:before{display:none}.marker-network .marker-face i{letter-spacing:-.04em;font:850 8px/1 Inter,ui-sans-serif,system-ui,sans-serif;display:block}.marker-face i{font-family:Georgia,serif;font-size:14px;font-style:normal;font-weight:850}.marker.selected{z-index:3}.marker.selected .marker-face{outline:3px solid var(--gold);outline-offset:2px}.marker-note .marker-face{background:var(--gold);color:var(--ink)}.marker-switch .marker-face i{letter-spacing:-.04em;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:9px}.light-symbol{width:100%;height:100%;display:block;position:relative}.light-symbol:before,.light-symbol:after{content:"";background:#fff;border-radius:2px;width:70%;height:3px;position:absolute;top:46%;left:15%}.light-symbol:before{transform:rotate(45deg)}.light-symbol:after{transform:rotate(-45deg)}.marker-light-recessed .light-symbol:before,.marker-light-recessed .light-symbol:after{background:repeating-linear-gradient(90deg,#fff 0 4px,#0000 4px 7px)}.marker-cable{width:74px;transform:translate(-12px,-50%) scale(var(--plan-scale,1));transform-origin:12px}.marker-cable .marker-face{box-shadow:none;transform-origin:12px;background:0 0;border:0;border-radius:18px;display:block;inset:0}.marker-cable-light .marker-face{transform:scale(calc(var(--block-scale,1) * .75))}.marker-cable .marker-face:before{content:"";background:#3346d3;border-radius:50%;width:24px;height:24px;position:absolute;top:7px;left:1px;box-shadow:0 2px 6px #00000038}.marker-cable .marker-face:after{content:"";border-top:2px solid #3346d3;border-radius:50%;width:48px;height:20px;position:absolute;top:7px;left:22px;transform:rotate(4deg)}.marker-cable .marker-face i{display:none}.marker-cable em{left:78px}.cable-device{display:contents}.marker-cable-kind{z-index:4;color:#3346d3;white-space:nowrap;pointer-events:none;touch-action:none;background:0 0;border:0;padding:0;position:absolute}.marker-cable-kind>span{transform:scale(var(--block-scale,1));transform-origin:50%;pointer-events:auto;cursor:move;background:#fff;border:1px solid #3346d3;border-radius:8px;padding:3px 6px;font:850 9px/1 Inter,ui-sans-serif,system-ui,sans-serif;display:block;box-shadow:0 1px 4px #0002}.marker-cable-kind.default{transform:translate(5px,-30px) scale(var(--plan-scale,1));transform-origin:0}.marker-cable-kind.default>span{transform-origin:0}.marker-cable-kind.moved{transform:translate(-50%,-50%) scale(var(--plan-scale,1));transform-origin:50%}.marker-cable-kind.selected>span{outline:2px solid var(--gold);outline-offset:2px}.marker-variant{transform:translateY(-50%) scale(calc(var(--block-scale,1) * 1.25));transform-origin:0;color:#b92f2f;text-align:center;pointer-events:none;background:#fff;border:1px solid #dc3f3f;border-radius:9px;min-width:22px;padding:3px 5px;font:900 11px/1 Inter,ui-sans-serif,system-ui,sans-serif;position:absolute;top:50%;left:27px;box-shadow:0 1px 4px #0002}.marker-network-label{transform:translateX(-50%) scale(var(--block-scale,1));transform-origin:bottom;color:#c92f2f;text-align:center;white-space:nowrap;pointer-events:none;background:#fff;border:1px solid #e03535;border-radius:9px;min-width:24px;padding:3px 5px;font:850 9px/1 Inter,ui-sans-serif,system-ui,sans-serif;position:absolute;bottom:39px;left:50%;box-shadow:0 1px 4px #0002}.marker-height{transform:translateX(-50%) scale(var(--block-scale,1));transform-origin:bottom;color:#176847;text-align:center;white-space:nowrap;pointer-events:none;background:#fff;border:1px solid #23855f;border-radius:9px;min-width:42px;padding:3px 5px;font:850 9px/1 Inter,ui-sans-serif,system-ui,sans-serif;position:absolute;bottom:39px;left:50%;box-shadow:0 1px 4px #0002}.marker-circuit{transform:translateX(-50%) scale(var(--block-scale,1));transform-origin:bottom;text-align:center;white-space:nowrap;pointer-events:none;background:#fff;border:1px solid;border-radius:9px;min-width:20px;padding:4px 6px;font:850 20px/1 Inter,ui-sans-serif,system-ui,sans-serif;position:absolute;bottom:39px;left:50%;box-shadow:0 1px 4px #0002}.marker-circuit-switch{color:#2563eb}.marker-switch .marker-circuit-switch{transform:scale(calc(var(--block-scale,1) * 1.15));transform-origin:0 100%;bottom:28px;left:29px}.marker-circuit-light{color:#dc3f3f;bottom:26px}.marker-light-recessed .marker-circuit-light{color:#d66d0d;border-color:#f28c28}.marker-light-surface .marker-variant,.marker-light-surface .marker-circuit-light{color:#b92f2f;border-color:#dc3f3f}.marker-light-wall .marker-variant,.marker-light-wall .marker-circuit-light{color:#2f8257;border-color:#72c99a}.marker-light-facade .marker-variant,.marker-light-facade .marker-circuit-light{color:#176847;border-color:#23855f}.device-marker-group{display:contents}.circuit-label-handle{z-index:4;pointer-events:none;touch-action:none;background:0 0;border:0;padding:0;position:absolute}.circuit-label-handle>span{text-align:center;white-space:nowrap;min-width:20px;transform:scale(var(--block-scale,1));transform-origin:50%;pointer-events:auto;cursor:move;background:#fff;border:1px solid;border-radius:9px;padding:4px 6px;font:850 20px/1 Inter,ui-sans-serif,system-ui,sans-serif;display:block;box-shadow:0 1px 4px #0002}.circuit-label-switch{color:#2563eb}.circuit-label-switch.circuit-label-default{transform:translate(20px,-34px) scale(var(--plan-scale,1));transform-origin:0 100%}.circuit-label-switch.circuit-label-default>span{transform:scale(calc(var(--block-scale,1) * 1.15));transform-origin:0 100%}.circuit-label-light{color:#dc3f3f}.circuit-label-light.circuit-label-default{transform:translate(-50%,-31px) scale(var(--plan-scale,1));transform-origin:bottom}.circuit-label-moved{transform:translate(-50%,-50%) scale(var(--plan-scale,1));transform-origin:50%}.circuit-label-light-recessed{color:#d66d0d}.circuit-label-light-wall{color:#2f8257}.circuit-label-light-facade{color:#176847}.circuit-label-handle.selected>span{outline:2px solid var(--gold);outline-offset:2px}.marker em{z-index:5;text-overflow:ellipsis;max-width:220px;color:var(--ink);opacity:0;visibility:hidden;pointer-events:none;white-space:nowrap;background:#fffbea;border:1px solid #d4c68e;border-radius:4px;padding:5px 8px;font-size:11px;font-style:normal;transition:opacity .12s,visibility 0s linear .12s;position:absolute;top:50%;left:42px;overflow:hidden;transform:translateY(-50%);box-shadow:0 2px 5px #0002}:is(.marker:hover em,.marker:focus-visible em){opacity:1;visibility:visible;transition-delay:1s,1s}.arrow-annotation{display:contents}.arrow-line-hit{z-index:2;transform-origin:0;background:0 0;border:0;height:22px;padding:0;position:absolute;overflow:visible}.arrow-line-hit i{width:100%;height:calc(4px * var(--block-scale,1));pointer-events:none;background:#6e3a78;position:absolute;top:50%;left:0;transform:translateY(-50%)}.arrow-line-hit i:before{content:"";left:calc(-4px * var(--block-scale,1));border-top:calc(12px * var(--block-scale,1)) solid transparent;border-bottom:calc(12px * var(--block-scale,1)) solid transparent;border-right:calc(20px * var(--block-scale,1)) solid #6e3a78;position:absolute;top:50%;transform:translateY(-50%)}.arrow-annotation.selected .arrow-line-hit i{height:calc(6px * var(--block-scale,1));box-shadow:0 0 0 3px #f4b74073}.arrow-text{z-index:3;color:#5d2d67;text-align:left;white-space:nowrap;cursor:move;touch-action:none;background:#fff;border:1px solid #9b70a4;border-radius:5px;max-width:240px;padding:5px 8px;font:750 11px/1.2 Inter,ui-sans-serif,system-ui,sans-serif;position:absolute;transform:translate(4px,-50%);box-shadow:0 2px 6px #0002}.arrow-tip-handle{z-index:4;cursor:move;touch-action:none;background:0 0;border:0;border-radius:50%;width:24px;height:24px;position:absolute;transform:translate(-50%,-50%)}.arrow-annotation.selected .arrow-tip-handle{background:#f6edf8cc;border:2px solid #6e3a78;box-shadow:0 0 0 2px #fff}.arrow-text.placeholder{color:#9b83a0;border-style:dashed;font-weight:650}.arrow-annotation.selected .arrow-text{outline:3px solid var(--gold);outline-offset:2px}.arrow-draft-tip{z-index:3;filter:drop-shadow(0 1px 2px #0004);pointer-events:none;border-top:16px solid #0000;border-bottom:16px solid #0000;border-right:26px solid #6e3a78;width:0;height:0;position:absolute;transform:translate(-50%,-50%)}.led-strip-annotation{display:contents}.led-strip-line-hit{z-index:2;transform-origin:0;background:0 0;border:0;height:30px;padding:0;position:absolute;overflow:visible}.led-strip-line-hit i{width:100%;height:calc(5px * var(--plan-scale,1));pointer-events:none;background:#dc3f3f;border-radius:999px;position:absolute;top:50%;left:0;transform:translateY(-50%);box-shadow:0 1px 2px #0003}.led-strip-line-hit i:before{content:"";width:calc(22px * var(--block-scale,1) * var(--plan-scale,1));height:calc(22px * var(--block-scale,1) * var(--plan-scale,1));border:calc(2px * var(--plan-scale,1)) solid white;background:#dc3f3f;border-radius:50%;position:absolute;top:50%;left:0;transform:translate(-50%,-50%);box-shadow:0 2px 5px #0004}.led-strip-annotation.selected .led-strip-line-hit i{box-shadow:0 0 0 3px #f4b7408c}.led-strip-handle{z-index:4;cursor:move;touch-action:none;background:0 0;border:0;border-radius:50%;width:26px;height:26px;position:absolute;transform:translate(-50%,-50%)}.led-strip-annotation.selected .led-strip-handle{background:#fff4f4cc;border:2px solid #dc3f3f;box-shadow:0 0 0 2px #fff}.led-strip-draft-start{z-index:4;width:calc(22px * var(--block-scale,1) * var(--plan-scale,1));height:calc(22px * var(--block-scale,1) * var(--plan-scale,1));border:calc(2px * var(--plan-scale,1)) solid white;pointer-events:none;background:#dc3f3f;border-radius:50%;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 5px #0004}.light-snap-guide{z-index:5;opacity:0;pointer-events:none;position:absolute}.light-snap-guide.active{opacity:1}.light-snap-guide.horizontal{border-top:2px dashed #e03434;left:0;right:0}.light-snap-guide.vertical{border-left:2px dashed #e03434;top:0;bottom:0}.light-snap-preview{z-index:6;width:30px;height:30px;transform:translate(-50%,-50%) scale(calc(var(--block-scale,1) * var(--plan-scale,1)));pointer-events:none;background:#fff4;border:2px dashed #e03434;border-radius:50%;position:absolute;box-shadow:0 0 0 2px #fff9}.light-snap-preview.recessed{transform:translate(-50%,-50%) scale(calc(var(--block-scale,1) * var(--plan-scale,1)));border-style:dashed}.light-snap-preview:before,.light-snap-preview:after{content:"";background:#e03434;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.light-snap-preview:before{width:8px;height:2px}.light-snap-preview:after{width:2px;height:8px}.device-editor{z-index:20;background:#fff;border:1px solid #cfd4d1;border-radius:10px;width:290px;padding:16px;position:absolute;top:70px;right:20px;box-shadow:0 14px 38px #17211e33}.device-editor-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding-bottom:13px;display:flex}.device-editor-head .device-dot{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font:800 17px/1 Georgia,serif;display:grid}.device-editor-head .device-dot-socket{background:#23855f}.device-editor-head .device-dot-switch{background:#2563eb}.device-editor-head .device-dot-light{background:#dc3f3f}.device-editor-head .device-dot-network{background:#e03535;font-size:9px}.device-editor-head .device-dot-cable{background:#3346d3;font-size:11px}.device-editor-head .device-dot-arrow{background:#6e3a78;font-size:10px}.device-editor-head .device-dot-note{background:var(--gold);color:var(--ink)}.device-editor-head .device-dot-mainboard{background:#173f35;border-radius:6px;font-size:9px}.device-editor-head .device-dot-led-strip{background:#dc3f3f;font-size:9px}.device-editor-head .device-dot-power-device{background:#8a5a2b;font-size:9px}.device-dot-smoke{background:#dc3f3f!important}.device-dot-motion{background:#23855f!important}.device-dot-magnet{background:#2563eb!important}.device-dot-keypad{background:#7c3aed!important;font-size:11px!important}.device-dot-siren-inside,.device-dot-siren-outside{background:#ea7c22!important;font-size:10px!important}.device-dot-camera{background:#38bdf8!important}.device-editor-head strong,.device-editor-head small{display:block}.device-editor-head strong{font-size:14px}.device-editor-head small{color:var(--muted);margin-top:2px;font-size:10px}.device-editor-head>button{width:28px;height:28px;color:var(--muted);background:#f0f1ee;border:0;border-radius:50%;margin-left:auto;font-size:19px}.count-field,.comment-field{margin-top:14px;display:block}.count-field>span,.comment-field>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px;font-size:10px;font-weight:800;display:block}.count-field>div{border:1px solid var(--line);border-radius:7px;grid-template-columns:38px 1fr 38px;height:38px;display:grid;overflow:hidden}.count-field button{color:var(--green);background:#f5f6f3;border:0;font-size:18px}.count-field b{border-left:1px solid var(--line);border-right:1px solid var(--line);place-items:center;font-size:14px;display:grid}.comment-field textarea{resize:vertical;border:1px solid var(--line);width:100%;color:var(--ink);border-radius:7px;outline:none;padding:9px 10px;font:12px/1.4 inherit}.comment-field textarea:focus{border-color:#77a594;box-shadow:0 0 0 3px #dceae4}.switch-kind-field{margin-top:14px}.switch-kind-field>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px;font-size:10px;font-weight:800;display:block}.switch-kind-field>div{grid-template-columns:1fr 1fr;gap:7px;display:grid}.switch-kind-field button{border:1px solid var(--line);min-height:48px;color:var(--ink);text-align:left;background:#f7f8f6;border-radius:7px;align-items:center;gap:8px;padding:6px 8px;font-size:11px;font-weight:750;display:flex}.switch-kind-field button i{color:#fff;background:#2563eb;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font-size:9px;font-style:normal;display:grid}.switch-kind-field button.active{background:#eaf0ff;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.light-mount-field button i{background:#dc3f3f}.light-mount-field button.active{background:#fff0f0;border-color:#dc3f3f;box-shadow:0 0 0 2px #dc3f3f1f}.network-kind-field button i{background:#e03535;border-radius:2px;font-size:8px}.network-kind-field button.active{background:#fff0f0;border-color:#e03535;box-shadow:0 0 0 2px #e035351f}.circuit-field{margin-top:14px;display:block}.circuit-field>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px;font-size:10px;font-weight:800;display:block}.circuit-field input{border:1px solid var(--line);width:100%;height:38px;color:var(--ink);border-radius:7px;outline:none;padding:0 10px;font-size:13px;font-weight:750}.circuit-field input:focus{border-color:#77a594;box-shadow:0 0 0 3px #dceae4}.height-field>div{border:1px solid var(--line);border-radius:7px;grid-template-columns:34px 1fr 38px;align-items:center;height:38px;display:grid;overflow:hidden}.height-field>div b{height:100%;color:var(--muted);background:#f5f6f3;place-items:center;font-size:11px;display:grid}.height-field>div input{border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center;border-radius:0;height:100%}.editor-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.editor-done,.delete-device{border-radius:7px;height:37px;font-size:12px;font-weight:800}.editor-done{background:var(--green);color:#fff;border:0}.delete-device{color:#a23e32;background:#fff7f5;border:1px solid #d8aaa3}.plan-actions{z-index:15;gap:7px;display:flex;position:absolute;bottom:18px;right:20px}.delete-plan,.clear-plan{color:#9b4034;background:#fff8f6;border:1px solid #dbb3ac;border-radius:6px;padding:8px 12px;font-size:11px;font-weight:700}.delete-plan:hover,.clear-plan:hover:not(:disabled){background:#fff0ed;border-color:#b85b4e}.clear-plan:disabled{opacity:.45;cursor:not-allowed}footer{color:#cad8d2;letter-spacing:.02em;background:#173f35;justify-content:space-between;align-items:center;gap:12px;min-height:37px;padding:6px 25px;font-size:10px;display:flex}footer a{color:#fff}.footer-actions{flex-wrap:wrap;align-items:center;gap:9px 16px;display:flex}.footer-actions button{color:#fff;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff57;border-radius:7px;padding:5px 9px}.footer-actions button:hover{background:#ffffff1a}.footer-actions .footer-help{border-color:var(--gold);background:#ffffff12;align-items:center;gap:9px;min-height:36px;padding:7px 14px;font-size:12px;font-weight:850;display:flex}.footer-help b{background:var(--gold);width:23px;height:23px;color:var(--green);border-radius:50%;place-items:center;font-size:14px;display:grid}.visually-hidden{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:900px){.topbar{flex-wrap:wrap;gap:12px;height:auto;min-height:74px;padding:14px 18px;display:flex}.brand-logo{width:190px}.brand-product{display:block}.project-fields{flex-basis:100%;order:3;width:100%;max-width:none}.workspace{grid-template-columns:220px}.canvas-scroll{padding:var(--canvas-pad-y) 24px}.tool{padding:6px}.sidebar{padding:20px 12px}.top-actions{gap:5px}.save-button,.export-button,.projects-button,.new-project-button{padding:0 10px}}@media (max-width:650px){html,body{height:auto;overflow:auto}.app-shell{height:auto;min-height:100dvh;overflow:visible}.workspace{flex-direction:column;display:flex;overflow:visible}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:14px;overflow:visible}.floor-picker{margin-bottom:14px;padding-bottom:13px}.floor-list{gap:6px;padding-bottom:3px;display:flex;overflow-x:auto}.floor-list>button,.extra-floors>button{white-space:nowrap;width:auto;min-width:132px}.floor-list>.expand-floors{min-width:118px;padding:5px 7px}.extra-floors{gap:6px;display:flex}.helper,.tip{display:none}.tool-list{padding-bottom:4px;display:flex;overflow-x:auto}.tool{grid-template-columns:36px 1fr;gap:6px;min-width:112px;display:grid}.tool small,.tool i{display:none}.remove-button{margin-top:8px}.canvas-area{min-height:540px}.canvas-toolbar{flex-wrap:wrap;gap:8px;height:auto;min-height:52px;padding:8px 12px}.canvas-controls{justify-content:flex-end;gap:6px;width:100%}.block-scale span{display:none}.block-scale input{width:72px}.canvas-scroll{padding:18px}.device-editor{width:auto;position:fixed;inset:auto 12px 12px}.project-fields label:last-child{flex-basis:120px}.icon-button{display:none}footer{flex-direction:column;align-items:flex-start;padding:10px 14px}.footer-actions{justify-content:space-between;gap:10px;width:100%}.brand{font-size:15px}.top-actions{flex-wrap:wrap;margin-left:auto}.new-project-button{font-size:0}.new-project-button:after{content:"+ Uus";font-size:11px}.projects-button{font-size:0}.projects-button:before{content:"Projektid";font-size:11px}.projects-button span{font-size:9px}.export-button{font-size:0}.export-button:after{content:"↓ PNG";font-size:12px}.projects-panel{padding:20px 14px}.floor-option{min-width:152px}.extra-floors{min-width:max-content}.extra-floor-option{min-width:145px}.extra-floor-option button{width:24px;min-width:24px}.marker-cable{width:70px}.block-scale input{display:none}.power-extra-grid{padding-bottom:4px;display:flex;overflow-x:auto}.power-extra-grid>button{min-width:125px}.power-extra-tools{margin-top:6px}.tool-entry{min-width:112px}.tool-entry .tool{min-width:100%}.tool-options-popover{grid-template-columns:1fr 1fr 1fr;max-height:230px;position:fixed;inset:auto 12px 76px;overflow:auto}.app-shell.help-visible{padding-right:0}.help-button span{display:none}.help-button{padding:0 9px}.help-content{grid-template-columns:1fr}.help-dialog{width:min(400px,100vw);padding:17px}.help-head h2{font-size:21px}.account-button{max-width:150px}.account-button-text strong{max-width:86px}.account-dropdown{width:auto;position:fixed;top:72px;left:10px;right:10px}.top-actions .new-project-button{display:none}}.plan-legend-actions{align-items:center;gap:7px;margin-left:auto;display:flex}.plan-legend-head .legend-add-button{background:var(--green);color:#fff;border-radius:6px;width:auto;min-width:88px;padding:0 10px;font-size:10px;font-weight:800}.plan-legend-head .legend-add-button:disabled{opacity:.4}.placed-legend{z-index:6;width:270px;transform:translate(-50%,-50%) scale(calc(var(--legend-scale,1) * var(--plan-scale,1)));transform-origin:50%;color:var(--ink);cursor:move;touch-action:none;background:#fffefb;border:1px solid #64776f;border-radius:7px;padding:12px;position:absolute;box-shadow:0 5px 16px #17211e30}.placed-legend.selected{outline:3px solid var(--gold);outline-offset:3px}.placed-legend-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;padding-bottom:7px;display:flex}.placed-legend-head strong{font-size:13px}.placed-legend-head small{color:var(--muted);font-size:8px}.placed-legend-list{gap:3px;margin-top:7px;display:grid}.placed-legend-row{background:#f6f6f2;grid-template-columns:25px 1fr 24px;align-items:center;gap:7px;min-height:31px;padding:3px 5px;font-size:9px;font-weight:700;display:grid}.placed-legend-row .legend-symbol{width:22px;height:22px;font-size:7px}.placed-legend-row .legend-symbol-light{font-size:14px}.placed-legend-row b{text-align:center;color:var(--green);font-size:9px}.placed-legend>p{color:var(--muted);margin:8px 0 0;font-size:9px}.legend-scale-field{margin-top:14px;display:block}.legend-scale-field>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px;font-size:10px;font-weight:800;display:block}.legend-scale-field>div{border:1px solid var(--line);border-radius:7px;grid-template-columns:42px 1fr 42px;height:38px;display:grid;overflow:hidden}.legend-scale-field button{color:var(--green);background:#f5f6f3;border:0;font-size:18px}.legend-scale-field b{border-left:1px solid var(--line);border-right:1px solid var(--line);place-items:center;font-size:12px;display:grid}.legend-light-surface{background:#dc3f3f}.legend-light-recessed{background:#f28c28}@media (max-width:650px){.canvas-scroll{padding:var(--canvas-pad-y) 18px}}.tool-light .tool-icon,.tool-options-light>button i{position:relative;font-size:0!important}.tool-light .tool-icon:before,.tool-light .tool-icon:after,.tool-options-light>button i:before,.tool-options-light>button i:after{content:"";background:#fff;border-radius:2px;width:70%;height:3px;position:absolute;top:46%;left:15%}.tool-light .tool-icon:before,.tool-options-light>button i:before{transform:rotate(45deg)}.tool-light .tool-icon:after,.tool-options-light>button i:after{transform:rotate(-45deg)}.tool-light .tool-icon.light-tool-recessed{border:2px dashed #fff!important}.tool-light .tool-icon.light-tool-recessed:before,.tool-light .tool-icon.light-tool-recessed:after,.tool-options-light>button i.light-option-recessed:before,.tool-options-light>button i.light-option-recessed:after{background:repeating-linear-gradient(90deg,#fff 0 4px,#0000 4px 7px)}.topbar>.account-menu-wrap{order:3;grid-area:account}.account-button.guest{max-width:280px}.account-button.guest .account-button-text strong{white-space:normal;max-width:220px;font-size:9px;line-height:1.15}@media (max-width:650px){.account-button.guest{max-width:190px}.account-button.guest .account-button-text strong{max-width:132px;font-size:8px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
