:root{--rack-bg: #0b1017;--rack-panel: #121923;--rack-line: #263242;--rack-text: #e7edf5;--rack-muted: #8492a6;--rack-blue: #4f8cff;--rack-cyan: #36d6c0}.rack-builder-shell{min-height:100vh;color:var(--rack-text);background:radial-gradient(circle at 52% 45%,#16243a 0,#0d141d 32%,#080c12 78%)}.rack-topbar{min-height:64px;display:grid;grid-template-columns:auto auto minmax(160px,1fr) auto auto;align-items:center;gap:14px;padding:9px 16px;border-bottom:1px solid #263242;background:#0a0f16f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.rack-topbar button,.rack-topbar input,.rack-builder-shell select,.rack-builder-shell input{font:inherit}.rack-back,.rack-top-actions button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;color:var(--rack-muted);border:1px solid #2b3748;border-radius:8px;background:#111923;cursor:pointer;font-size:10px;font-weight:700}.rack-back:hover,.rack-top-actions button:hover{color:#fff;border-color:#496a99;background:#182536}.rack-brand{display:flex;align-items:center;gap:8px}.rack-brand>span{width:34px;height:34px;display:grid;place-items:center;color:var(--rack-cyan);border:1px solid #244d4b;border-radius:9px;background:#102a2a}.rack-brand strong,.rack-brand small{display:block}.rack-brand strong{font-size:12px}.rack-brand small{margin-top:2px;color:#5f7187;font-size:7px;letter-spacing:.08em;text-transform:uppercase}.rack-topbar>input{min-width:0;padding:8px 10px;color:#dce6f2;border:1px solid transparent;border-radius:7px;background:transparent;font-size:11px;font-weight:700}.rack-topbar>input:hover,.rack-topbar>input:focus{border-color:#2b3b50;background:#101821;outline:0}.rack-beta{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;color:#7be6d8;border:1px solid #255653;border-radius:999px;background:#102a29;white-space:nowrap;font-size:8px;font-weight:700}.rack-top-actions{display:flex;justify-content:flex-end;gap:6px}.rack-top-actions button:first-child{color:#b8e5ff;border-color:#28557c;background:#10283d}.rack-top-actions button.present{color:#07121f;border-color:#5cdac9;background:var(--rack-cyan)}.rack-workspace{min-height:calc(100vh - 64px);display:grid;grid-template-columns:260px minmax(430px,1fr) 300px}.rack-library,.rack-inspector{min-height:0;padding:15px 12px;background:#0f151ef0;overflow-y:auto}.rack-library{border-right:1px solid var(--rack-line)}.rack-inspector{border-left:1px solid var(--rack-line)}.rack-panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:11px}.rack-panel-title span,.rack-panel-title strong{display:block}.rack-panel-title span{color:#607087;font-size:7px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.rack-panel-title strong{margin-top:2px;font-size:12px}.rack-panel-title>small{color:#5f7187;font-size:8px}.rack-panel-title div>small{display:block;max-width:210px;margin-top:3px;color:#607188;font-size:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.open-rack-catalog{width:100%;min-height:54px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:9px;padding:8px 9px;color:#8dc2ff;text-align:left;border:1px solid #35639a;border-radius:9px;background:linear-gradient(135deg,#142b48,#102238);cursor:pointer;box-shadow:inset 0 1px #ffffff0f}.open-rack-catalog:hover{border-color:#5c98df;background:linear-gradient(135deg,#19375c,#132a46)}.open-rack-catalog>svg{justify-self:center}.open-rack-catalog span,.open-rack-catalog strong,.open-rack-catalog small{display:block}.open-rack-catalog strong{color:#e8f2ff;font-size:9px}.open-rack-catalog small{margin-top:3px;color:#7592b4;font-size:6px}.open-rack-catalog>b{min-width:26px;padding:4px 5px;color:#76e0d1;text-align:center;border:1px solid #275c58;border-radius:6px;background:#102c2b;font-size:8px}.rack-search{min-height:38px;display:grid;grid-template-columns:18px minmax(0,1fr) 23px;align-items:center;gap:6px;padding:0 9px;color:#607087;border:1px solid #293547;border-radius:8px;background:#0d141d}.rack-search input{min-width:0;padding:8px 0;color:#dfe8f3;border:0;outline:0;background:transparent;font-size:9px}.rack-search button{width:23px;height:23px;display:grid;place-items:center;color:#708096;border:0;border-radius:5px;background:transparent;cursor:pointer}.rack-categories{display:flex;gap:4px;margin:9px 0;overflow-x:auto}.rack-categories button{flex:0 0 auto;padding:5px 7px;color:#718196;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;font-size:8px;font-weight:700}.rack-categories button.active{color:#dbe9ff;border-color:#35557e;background:#17283d}.rack-products{display:grid;gap:5px}.rack-product{min-height:72px;display:grid;grid-template-columns:54px minmax(0,1fr) 26px;align-items:center;gap:8px;padding:7px;border:1px solid #263141;border-radius:8px;background:#111823;cursor:grab}.rack-product:hover{border-color:#3a587e;background:#151f2c}.rack-product:active{cursor:grabbing}.rack-product strong,.rack-product span,.rack-product small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rack-product strong{font-size:8px}.rack-product span{margin-top:2px;color:#718197;font-size:7px}.rack-product small{margin-top:3px;color:#5aaada;font-size:7px}.rack-product-copy{min-width:0}.rack-product .rack-product-brand{display:flex;align-items:center;gap:4px;margin:0 0 4px;color:#8fa1b7;font-size:6px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.rack-product-brand b{padding:1px 3px;color:#6dd9c8;border:1px solid #28584f;border-radius:3px;background:#102720;font-size:5px}.rack-product>button{width:26px;height:26px;display:grid;place-items:center;color:#79aefb;border:1px solid #34547f;border-radius:6px;background:#14263e;cursor:pointer}.rack-mini-face{position:relative;width:54px;height:43px;display:grid;place-items:center;color:var(--device-color);border:1px solid color-mix(in srgb,var(--device-color) 55%,#334154);border-left:3px solid var(--device-color);border-radius:5px;background:linear-gradient(#2b343e,#131a22);box-shadow:inset 0 1px #ffffff1a;overflow:hidden}.rack-mini-face>b{position:absolute;top:4px;left:5px;max-width:36px;color:#b9c6d3;font-size:4px;letter-spacing:.05em;overflow:hidden}.rack-mini-face>em{width:calc(100% - 10px);display:grid;grid-template-columns:repeat(6,1fr);gap:2px;margin-top:7px}.rack-mini-face>em u{height:5px;display:block;border:1px solid #56616c;border-radius:1px;background:#04070a;text-decoration:none}.rack-mini-face.mini-patch>em u{border-color:#a1aab1;background:#49535d;box-shadow:inset 0 0 0 1px #161c22}.rack-mini-face.mini-pdu>em{display:flex;justify-content:center}.rack-mini-face.mini-pdu>em u{width:6px;height:9px;border-radius:50%}.rack-mini-face.mini-face-unifi,.rack-mini-face.mini-face-white,.rack-mini-face.mini-face-steel{background:linear-gradient(#e4e8e9,#aeb8bc)}.rack-mini-face.mini-face-unifi>b,.rack-mini-face.mini-face-white>b,.rack-mini-face.mini-face-steel>b{color:#38454d}.rack-mini-face.mini-face-unifi>em u,.rack-mini-face.mini-face-white>em u{border-color:#859197}.rack-mini-face i{position:absolute;right:3px;bottom:2px;color:#8494a8;font-size:6px;font-style:normal;font-weight:800}.rack-more-products{width:100%;margin-top:7px;padding:7px;color:#7daef0;border:1px dashed #355274;border-radius:7px;background:#101a27;cursor:pointer;font-size:8px;font-weight:700}.rack-library-tip{display:flex;align-items:flex-start;gap:7px;margin-top:10px;padding:9px;color:#73849a;border-radius:7px;background:#0c131b;font-size:7px;line-height:1.5}.rack-library-tip svg{flex:0 0 auto;color:#4d8de8}.rack-stage{position:relative;min-width:0;min-height:700px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.stage-toolbar{position:relative;z-index:5;min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 15px;border-bottom:1px solid #1d2a39;background:#0b1119c2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stage-toolbar>div:first-child{display:flex;align-items:center;gap:8px}.stage-toolbar span{color:#718197;font-size:8px}.stage-toolbar select{padding:7px 9px;color:#dbe5f1;border:1px solid #304158;border-radius:7px;background:#121b27;font-size:9px;font-weight:700}.stage-meter{min-width:180px;display:grid;grid-template-columns:18px auto;align-items:center;gap:2px 6px;color:#6da8ff}.stage-meter>i{grid-column:1 / -1;height:4px;border-radius:3px;background:#1c2938;overflow:hidden}.stage-meter>i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3979da,#36d6c0)}.rack-scene{position:relative;min-height:0;display:grid;place-items:center;padding:26px 20px 40px;overflow:auto;perspective:1100px}.scene-glow{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgb(42 102 178 / 20%),transparent 67%);filter:blur(10px);pointer-events:none}.rack-cabinet{position:relative;z-index:2;width:min(470px,76vw);color:#dbe5f1;filter:drop-shadow(0 24px 30px rgb(0 0 0 / 45%));transform:rotateX(1deg)}.rack-cap,.rack-base{height:28px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:0 12px;border:1px solid #4e5b68;background:linear-gradient(#303a46,#1e2630);box-shadow:inset 0 1px #ffffff1f}.rack-cap{border-radius:8px 8px 0 0}.rack-cap span{height:5px;border-radius:3px;background:repeating-linear-gradient(90deg,#111820 0 7px,#46515d 7px 10px)}.rack-cap strong{color:#9babbc;font-size:8px;letter-spacing:.08em}.rack-body{display:grid;grid-template-columns:27px minmax(0,1fr) 27px;border-inline:5px solid #303b47;background:#080c11;box-shadow:inset 0 0 25px #000}.rack-rail{height:var(--rack-height);display:flex;flex-direction:column;background:repeating-linear-gradient(180deg,#2e3945 0 10px,#171f28 10px 20px);overflow:hidden}.rack-rail i{height:32px;flex:0 0 32px;display:grid;place-items:center;color:#718092;border-bottom:1px solid #53606e;font-size:6px;font-style:normal}.rack-inner{position:relative;height:var(--rack-height);min-height:192px;background:linear-gradient(90deg,#05080b,#111823 50%,#05080b)}.rack-unit-line{position:absolute;left:0;right:0;height:32px;border-bottom:1px dashed rgb(123 146 171 / 18%);pointer-events:none}.rack-unit-line span{position:absolute;top:2px;left:4px;color:#879bb13d;font-size:6px}.rack-base{border-radius:0 0 8px 8px}.rack-base span{color:#8594a5;font-size:7px}.rack-base span:last-child{text-align:right}.rack-base i{height:3px;background:repeating-linear-gradient(90deg,#111820 0 5px,#4e5964 5px 7px)}.floor-rack:after{content:"";position:absolute;left:20px;right:20px;bottom:-9px;height:10px;border-radius:0 0 7px 7px;background:#151c24}.rack-floor-shadow{position:absolute;z-index:1;bottom:17px;width:440px;height:35px;border-radius:50%;background:#0000007f;filter:blur(12px)}.rack-device{position:absolute;left:2px;right:2px;z-index:3;width:calc(100% - 4px);padding:0;color:#e8eef5;text-align:left;border:1px solid #536170;border-left:3px solid var(--device-color);border-radius:3px;background:linear-gradient(180deg,#2c3540,#151c24);box-shadow:inset 0 1px #ffffff1f,0 2px 5px #0000007a;cursor:grab;overflow:hidden}.rack-device:hover,.rack-device.selected{z-index:5;border-color:#64a3ff;box-shadow:0 0 0 2px #4f8cff47,inset 0 1px #ffffff24}.rack-device.selected{animation:selectedPulse 1.7s ease-in-out infinite}@keyframes selectedPulse{50%{box-shadow:0 0 0 2px #4f8cff7f,0 0 16px #4f8cff3d}}.device-side-label{position:absolute;z-index:4;top:2px;right:3px;color:#65768b;font-size:5px}.device-face{width:100%;height:100%;min-height:28px;position:relative;display:flex;align-items:center;gap:7px;padding:3px 7px;background:linear-gradient(180deg,#2c3540,#151c24)}.rack-face-unifi .device-face,.rack-face-white .device-face,.rack-face-steel .device-face{color:#2f3b43;background:linear-gradient(180deg,#e5e9ea,#aeb8bc)}.rack-face-dahua .device-face{background:linear-gradient(180deg,#273238,#11191d);box-shadow:inset 0 2px #ef7d32}.rack-face-blue .device-face{background:linear-gradient(180deg,#1d536f,#102a3a)}.device-form-desktop{border-color:transparent;background:transparent;box-shadow:none}.device-form-desktop .device-face{width:84%;margin-inline:auto;border:1px solid #536170;border-radius:3px;box-shadow:inset 0 1px #ffffff1f,0 2px 5px #0000007a}.face-identity{width:64px;min-width:64px;display:block;color:#b9c6d4;font-size:6px;font-weight:900;letter-spacing:.05em}.face-identity strong,.face-identity small{display:block;max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.face-identity small{margin-top:2px;color:#68788a;font-size:4px;font-weight:700;letter-spacing:0}.rack-face-unifi .face-identity,.rack-face-white .face-identity,.rack-face-steel .face-identity{color:#34444d}.rack-face-unifi .face-identity small,.rack-face-white .face-identity small,.rack-face-steel .face-identity small{color:#66747b}.port-grid{min-width:0;flex:1;display:grid;grid-template-columns:repeat(var(--port-cols, 12),minmax(4px,1fr));gap:2px}.port-grid i{aspect-ratio:1.2;position:relative;display:block;border:1px solid #596674;border-radius:1px;background:#05080b;box-shadow:inset 0 0 2px #000}.port-grid i:after{content:"";position:absolute;top:1px;left:1px;width:2px;height:2px;border-radius:50%;background:#283542}.port-grid i.linked:after{background:#54e09c;box-shadow:0 0 4px #54e09c}.port-grid b{position:absolute;inset:0;display:grid;place-items:center;color:#536272;font-size:3px}.poe-ports i{border-color:#987038;box-shadow:inset 0 -2px #7a501f}.poe-ports i:before{content:"";position:absolute;inset:-1px;border-top:1px solid #e6a847;pointer-events:none}.unifi-display{width:12px;height:12px;flex:0 0 12px;display:grid;place-items:center;color:#9ad8ff;border-radius:2px;background:#31536a;font-size:6px;box-shadow:inset 0 0 5px #102936}.sfp-grid{display:grid;grid-template-columns:repeat(2,13px);gap:2px}.sfp-grid i{height:8px;display:grid;place-items:center;color:#8997a5;border:1px solid #65717c;background:#10161b;font-size:3px;font-style:normal}.device-leds{display:flex;gap:2px}.device-leds i{width:3px;height:3px;border-radius:50%;background:#45d58e;box-shadow:0 0 4px #45d58e}.router-face{gap:6px}.router-display{min-width:29px;padding:2px 3px;color:#7892aa;border:1px solid #435466;border-radius:2px;background:#0d151d;font:4px monospace}.router-display b{color:#5ee1a9;font-size:4px}.router-ports{flex:1;display:flex;gap:3px}.router-ports i{width:18px;height:10px;border:1px solid #536170;border-radius:1px;background:#06090d}.router-ports i.live{border-top-color:#47d996;box-shadow:inset 0 2px #47d996}.fan-face{justify-content:space-between}.fan-face strong,.fan-face small{color:#718398;font-size:5px}.fan-face>div{display:flex;gap:5px}.fan-face i{width:23px;height:23px;display:grid;place-items:center;color:#526679;border:2px solid #4c5c6b;border-radius:50%;background:#0b1015}.ups-face{gap:10px}.ups-screen{padding:3px 6px;color:#77f2c8;border:1px solid #35655a;border-radius:2px;background:#071a16;font:5px monospace;box-shadow:inset 0 0 7px #36d6c026}.ups-screen b{margin-left:4px}.ups-buttons{display:flex;gap:3px}.ups-buttons i{width:7px;height:7px;border:1px solid #65717e;border-radius:50%;background:#202833}.ups-face small{margin-left:auto;color:#8e9aa8;font-size:5px}.nvr-face{gap:8px}.nvr-logo{width:74px;min-width:74px}.nvr-status{display:grid;grid-template-columns:repeat(3,7px);grid-template-rows:5px 5px;justify-items:center;gap:0 3px}.nvr-status i{width:3px;height:3px;border-radius:50%;background:#e34d4d;box-shadow:0 0 3px #e34d4d}.nvr-status i.power{background:#55d895;box-shadow:0 0 3px #55d895}.nvr-status span{color:#657584;font-size:3px}.nvr-usb{width:19px;height:8px;display:grid;place-items:center;color:#607080;border:1px solid #536170;background:#080c10;font-size:3px}.nvr-vents{min-width:0;flex:1;display:flex;justify-content:flex-end;gap:2px;overflow:hidden}.nvr-vents i{width:2px;height:12px;flex:0 0 2px;display:block;border-radius:1px;background:#080c10;box-shadow:inset 1px 0 #414c56}.nvr-face>small{margin-left:auto;color:#8493a4;font-size:5px;white-space:nowrap}.patch-device-face{gap:6px;background:linear-gradient(#aeb7be,#727e87)}.patch-port-blocks{min-width:0;flex:1;display:grid;grid-template-columns:repeat(12,minmax(5px,1fr));gap:2px}.patch-port-blocks i{height:10px;position:relative;display:grid;place-items:end center;border:1px solid #4d5861;border-radius:1px;background:#242b31;box-shadow:inset 0 0 0 2px #78828a;font-style:normal}.patch-port-blocks i:before{content:"";position:absolute;top:1px;width:45%;height:3px;background:#0e1317}.patch-port-blocks b{color:#d5dadd;font-size:3px;font-weight:500}.passive-label{width:35px;color:#27333b;font-size:4px;font-weight:900;line-height:1.3}.pdu-face{gap:8px}.power-sockets{min-width:0;flex:1;display:flex;justify-content:space-evenly;gap:4px}.power-sockets i{width:18px;height:18px;display:grid;place-items:center;color:#697681;border:2px solid #65717c;border-radius:50%;background:#0a0f14;font-style:normal}.power-sockets b{font-size:6px}.pdu-breaker{padding:3px;color:#65d99a;border:1px solid #37634c;border-radius:2px;background:#0e271d;font:5px monospace}.blank-face{justify-content:center;flex-direction:column;gap:4px}.blank-face strong{color:#697787;font-size:5px;letter-spacing:.12em}.blank-vents{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}.blank-vents i{width:18px;height:2px;border-radius:2px;background:#0a0e12;box-shadow:inset 0 1px #485562}.brush-face>i{min-width:0;flex:1;height:15px;border:1px solid #4e5b67;background:repeating-linear-gradient(90deg,#05080b 0 2px,#2b343d 2px 3px)}.brush-face>strong{color:#738293;font-size:5px}.organizer-face{justify-content:space-around}.organizer-face span{width:28px;height:14px;border:3px solid #65717d;border-radius:2px}.organizer-face strong{color:#778697;font-size:5px;letter-spacing:.12em}.shelf-face{justify-content:space-around}.shelf-face span{width:20px;height:3px;border-radius:2px;background:#0a0e13;box-shadow:inset 0 1px #525f6d}.shelf-face strong{color:#6d7b8b;font-size:5px}.drawer-face{justify-content:space-between}.drawer-face>span{width:45px;height:4px;border-radius:3px;background:#0a0e12;box-shadow:inset 0 1px #596675}.drawer-face strong{color:#758497;font-size:6px;letter-spacing:.1em}.drawer-face i{color:#aab5c0;font-size:7px;font-style:normal}.stage-hint{min-height:32px;display:flex;align-items:center;justify-content:center;gap:7px;color:#53657a;border-top:1px solid #1d2938;background:#0b1119;font-size:7px}.live-dot{width:6px;height:6px;border-radius:50%;background:#40d998;box-shadow:0 0 7px #40d998}.rack-dashboard{padding-bottom:14px;border-bottom:1px solid #273343}.online-pill{display:flex!important;align-items:center;gap:4px;padding:4px 6px;color:#58dca7!important;border:1px solid #235b47;border-radius:999px;background:#0d281f;font-size:6px!important}.online-pill i{width:4px;height:4px;border-radius:50%;background:currentColor;box-shadow:0 0 5px currentColor}.rack-metrics{display:grid;grid-template-columns:1fr 1fr;gap:5px}.rack-metric{min-height:61px;display:grid;grid-template-columns:20px 1fr;align-content:center;gap:2px;padding:8px;border:1px solid #293646;border-radius:8px;background:#0d141d}.rack-metric svg{grid-row:1 / 3}.rack-metric span{color:#65768b;font-size:7px}.rack-metric strong{font-size:11px}.rack-metric.blue svg{color:#62a0ff}.rack-metric.amber svg{color:#f0ac4e}.rack-metric.red svg{color:#ed6b6b}.rack-metric.violet svg{color:#a78bfa}.capacity-bars{display:grid;gap:8px;margin-top:11px}.capacity>span{display:flex;justify-content:space-between;gap:10px;color:#748398;font-size:7px}.capacity>span b{font-size:7px}.capacity>i{height:4px;display:block;margin-top:4px;border-radius:3px;background:#222e3c;overflow:hidden}.capacity>i b{height:100%;display:block;border-radius:inherit}.capacity .enough{color:#52d6a0}.capacity>i .enough{background:linear-gradient(90deg,#21865f,#52d6a0)}.capacity .shortage{color:#f07070}.capacity>i .shortage{background:linear-gradient(90deg,#a43343,#f07070)}.rack-checks{display:grid;gap:5px;margin-top:12px}.rack-checks>div{display:flex;align-items:flex-start;gap:6px;padding:7px;border-radius:6px;font-size:7px;line-height:1.45}.rack-checks svg{flex:0 0 auto}.rack-checks .ok{color:#60d9a8;background:#10271f}.rack-checks .warning{color:#eeb45e;background:#2b2112}.rack-checks .error{color:#ef7a7a;background:#2e171b}.rack-total{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:12px;padding:10px;border:1px solid #2e4663;border-radius:8px;background:linear-gradient(135deg,#13243a,#111a25)}.rack-total span{display:flex;align-items:center;gap:5px;color:#7890aa;font-size:7px}.rack-total strong{color:#7db0ff;font-size:15px}.rack-properties,.accessory-panel{padding-top:14px}.rack-properties .rack-panel-title button{width:28px;height:28px;display:grid;place-items:center;color:#e66f75;border:1px solid #63343d;border-radius:6px;background:#27141a;cursor:pointer}.property-device-preview{width:100%;height:58px;margin-bottom:10px;display:flex;align-items:center;padding:8px;border:1px solid #2f3e50;border-radius:8px;background:radial-gradient(circle,#1b2a3d,#0a1017);overflow:hidden}.property-device-preview .device-face{height:34px;border:1px solid #536170;border-radius:3px;box-shadow:0 6px 12px #00000059}.rack-properties label{display:grid;gap:4px;margin-top:8px;color:#748398;font-size:7px;font-weight:700}.rack-properties input,.rack-properties select,.nvr-config select{width:100%;padding:7px 8px;color:#dbe5f0;border:1px solid #2d3b4c;border-radius:6px;background:#0e151f;font-size:9px}.nvr-config{margin-top:10px;padding:9px;border:1px solid #334d74;border-radius:8px;background:#111f33}.nvr-config>span{display:flex;align-items:center;gap:5px;color:#89b3ee;font-size:8px;font-weight:700}.nvr-config>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}.nvr-config small{display:block;margin-top:7px;color:#718caa;font-size:7px}.property-specs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:10px}.property-specs span{padding:7px;color:#65768b;border-radius:6px;background:#0d141d;font-size:6px}.property-specs strong{display:block;margin-top:3px;color:#d2dde9;font-size:8px}.accessory-panel>p{margin:-4px 0 9px;color:#65768b;font-size:7px;line-height:1.45}.accessory-list{display:grid;gap:5px}.accessory-list>div{min-height:45px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px;border:1px solid #283546;border-radius:7px;background:#0e151e}.accessory-list strong,.accessory-list small{display:block}.accessory-list strong{font-size:8px}.accessory-list small{margin-top:2px;color:#607188;font-size:6px}.accessory-list>div>div{display:grid;grid-template-columns:23px 24px 23px;align-items:center}.accessory-list button{width:23px;height:23px;color:#8db8f5;border:1px solid #34506f;background:#142437;cursor:pointer}.accessory-list button:first-child{border-radius:5px 0 0 5px}.accessory-list button:last-child{border-radius:0 5px 5px 0}.accessory-list b{text-align:center;color:#dce5ef;font-size:8px}.rack-toast{position:fixed;z-index:100;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:9px 12px;color:#dff9ef;border:1px solid #2a6651;border-radius:8px;background:#10291f;box-shadow:0 12px 30px #00000052;font-size:9px;font-weight:700}.rack-presentation{min-height:100vh;color:#1d2732;background:#eef1f5}.rack-presentation>header{min-height:62px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:8px 20px;border-bottom:1px solid #d9e0e7;background:#fff}.rack-presentation header button{justify-self:start;min-height:36px;display:inline-flex;align-items:center;gap:6px;padding:7px 10px;color:#687689;border:1px solid #d8dfe7;border-radius:7px;background:#fff;cursor:pointer;font-size:9px;font-weight:700}.rack-presentation header>div{display:flex;align-items:center;gap:7px;color:#2868e8}.rack-presentation header strong,.rack-presentation header small{display:block}.rack-presentation header strong{color:#1d2732;font-size:11px}.rack-presentation header small{margin-top:2px;color:#7d8998;font-size:7px}.rack-presentation header button.print-rack{justify-self:end;color:#fff;border-color:#2868e8;background:#2868e8}.rack-presentation main{width:min(1380px,100%);margin:0 auto;padding:28px}.presentation-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.presentation-heading span{color:#2868e8;font-size:8px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.presentation-heading h1{margin:4px 0;font-size:28px}.presentation-heading p{margin:0;color:#758193;font-size:10px}.presentation-status{display:flex;align-items:center;gap:8px;padding:9px 11px;color:#178553;border:1px solid #bee5d2;border-radius:8px;background:#eaf8f1}.presentation-status strong,.presentation-status small{display:block}.presentation-status strong{font-size:9px}.presentation-status small{margin-top:2px;color:#5e8975;font-size:7px}.presentation-grid{display:grid;grid-template-columns:minmax(360px,.72fr) minmax(540px,1.28fr);align-items:start;gap:20px}.presentation-rack{min-height:650px;display:grid;place-items:center;align-content:center;padding:28px;border:1px solid #d9e0e7;border-radius:12px;background:radial-gradient(circle,#263c59,#101a26 70%);overflow:auto}.presentation-rack .rack-cabinet{width:min(390px,90%)}.presentation-caption{width:min(390px,90%);display:flex;justify-content:space-between;margin-top:12px;color:#a7b8cc;font-size:8px}.presentation-caption strong{color:#72e0c9}.presentation-summary{display:grid;gap:14px}.presentation-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.presentation-metrics>span{min-height:76px;display:grid;grid-template-columns:24px 1fr;align-content:center;gap:2px 5px;padding:10px;color:#2868e8;border:1px solid #d9e0e7;border-radius:9px;background:#fff}.presentation-metrics svg{grid-row:1 / 3}.presentation-metrics small{color:#798697;font-size:7px}.presentation-metrics strong{color:#1c2834;font-size:12px}.presentation-summary h2{margin:0;font-size:12px}.presentation-bom{max-height:370px;overflow:auto;border:1px solid #d9e0e7;border-radius:10px;background:#fff}.presentation-bom table{width:100%;border-collapse:collapse;font-size:8px}.presentation-bom th{padding:8px 9px;color:#788495;text-align:left;background:#f7f9fb}.presentation-bom td{padding:9px;border-top:1px solid #edf0f3}.presentation-bom td:nth-child(n+2),.presentation-bom th:nth-child(n+2){text-align:right}.presentation-bom td strong,.presentation-bom td small{display:block}.presentation-bom td small{margin-top:2px;color:#8994a2;font-size:6px}.presentation-bom tfoot td{color:#2868e8;font-weight:800;font-size:10px}.presentation-checks{display:grid;gap:5px}.presentation-checks>div{display:flex;align-items:flex-start;gap:6px;padding:8px;border-radius:7px;font-size:8px}.presentation-checks .ok{color:#14734a;background:#e7f7ef}.presentation-checks .warning{color:#98600c;background:#fff3dc}.presentation-checks .error{color:#aa3f43;background:#fdebed}.rack-catalog-overlay{position:fixed;z-index:300;inset:0;display:grid;place-items:center;padding:24px;background:#03070cd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.rack-catalog-modal{width:min(1320px,96vw);height:min(880px,94vh);display:grid;grid-template-rows:auto auto auto auto auto minmax(0,1fr);color:#e7edf5;border:1px solid #34445a;border-radius:15px;background:#0c121a;box-shadow:0 30px 90px #000000a6;overflow:hidden}.rack-catalog-modal>header{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;border-bottom:1px solid #243143;background:radial-gradient(circle at 20% 0,#183458,#0e1722 64%)}.rack-catalog-modal>header span{color:#57d4c2;font-size:7px;font-weight:800;letter-spacing:.13em}.rack-catalog-modal>header h2{margin:4px 0 2px;font-size:22px}.rack-catalog-modal>header p{margin:0;color:#718197;font-size:9px}.rack-catalog-modal>header button{width:38px;height:38px;display:grid;place-items:center;color:#90a0b4;border:1px solid #344257;border-radius:9px;background:#111b28;cursor:pointer}.catalog-search-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:10px;padding:13px 18px 8px}.catalog-search-row>label{min-height:44px;display:grid;grid-template-columns:22px minmax(0,1fr) 28px;align-items:center;gap:7px;padding:0 11px;color:#7293bd;border:1px solid #345273;border-radius:9px;background:#0e1926}.catalog-search-row input{min-width:0;padding:10px 0;color:#edf4fc;border:0;outline:0;background:transparent;font-size:10px}.catalog-search-row label button{width:27px;height:27px;display:grid;place-items:center;color:#8090a4;border:0;border-radius:6px;background:transparent;cursor:pointer}.catalog-search-row select{padding:0 11px;color:#dce7f4;border:1px solid #34445a;border-radius:9px;background:#121c28;font-size:9px;font-weight:700}.catalog-type-tabs{display:flex;gap:6px;padding:2px 18px 9px;overflow-x:auto}.catalog-type-tabs button{min-width:82px;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 10px;color:#77879c;border:1px solid #283647;border-radius:7px;background:#0e151e;cursor:pointer;font-size:9px;font-weight:700}.catalog-type-tabs button b{padding:2px 4px;color:#60738b;border-radius:4px;background:#182332;font-size:6px}.catalog-type-tabs button.active{color:#e4f0ff;border-color:#3d70a9;background:#162b44}.catalog-type-tabs button.active b{color:#6fe1cf;background:#11312e}.catalog-brand-filter{min-height:54px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 18px;border-block:1px solid #1e2a39;background:#0a1017}.catalog-brand-filter>span{color:#65768b;font-size:8px;font-weight:800;text-transform:uppercase}.catalog-brand-filter>div{display:flex;gap:5px;overflow-x:auto}.catalog-brand-filter button{flex:0 0 auto;padding:5px 8px;color:#7b899b;border:1px solid #2b3849;border-radius:999px;background:#101823;cursor:pointer;font-size:7px;font-weight:700}.catalog-brand-filter button.active{color:#dffaf5;border-color:#2d7568;background:#12322d}.catalog-brand-filter>button{color:#d07a7a;border-color:#60363d;border-radius:6px;background:#26161a}.catalog-brand-filter>div,.rack-catalog-grid{scrollbar-width:thin;scrollbar-color:#33445a #0b1119}.catalog-brand-filter>div::-webkit-scrollbar,.rack-catalog-grid::-webkit-scrollbar{width:7px;height:7px}.catalog-brand-filter>div::-webkit-scrollbar-track,.rack-catalog-grid::-webkit-scrollbar-track{background:#0b1119}.catalog-brand-filter>div::-webkit-scrollbar-thumb,.rack-catalog-grid::-webkit-scrollbar-thumb{border-radius:7px;background:#33445a}.catalog-result-bar{min-height:36px;display:flex;align-items:center;justify-content:space-between;padding:6px 18px}.catalog-result-bar strong{font-size:9px}.catalog-result-bar span{color:#5f7085;font-size:7px}.rack-catalog-grid{min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:10px;padding:0 18px 18px;overflow-y:auto}.rack-catalog-card{min-width:0;display:grid;grid-template-rows:68px auto auto auto auto 1fr auto;padding:10px;border:1px solid #293647;border-radius:10px;background:#111923;box-shadow:inset 0 1px #ffffff08}.rack-catalog-card:hover{border-color:#42648b;transform:translateY(-1px)}.rack-catalog-card.tier-premium{border-top-color:#886f3e}.rack-catalog-card.tier-budget{border-top-color:#356e5d}.catalog-device-preview{height:58px;display:flex;align-items:center;padding:9px;border:1px solid #2a394b;border-radius:7px;background:radial-gradient(circle,#1d2d42,#080d13);overflow:hidden}.catalog-device-preview .device-face{height:34px;border:1px solid #536170;border-left:3px solid var(--device-color, #5d8fca);border-radius:3px;box-shadow:0 7px 12px #00000073}.catalog-device-preview.preview-desktop .device-face{width:82%;margin-inline:auto}.catalog-card-head{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:9px}.catalog-card-head span{color:#64a5ee;font-size:7px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.catalog-card-head b{color:#718198;font-size:6px;font-weight:700}.rack-catalog-card h3{margin:5px 0 0;font-size:11px;line-height:1.25}.rack-catalog-card>p{margin:3px 0 8px;color:#7b8ca1;font-size:8px}.catalog-technical{display:flex;justify-content:space-between;gap:6px;padding:7px;border-radius:6px;background:#0b121a}.catalog-technical strong{color:#cbd8e6;font-size:7px}.catalog-technical span{color:#61738a;text-align:right;font-size:6px}.rack-catalog-card ul{display:flex;flex-wrap:wrap;align-content:start;gap:4px;margin:8px 0 10px;padding:0;list-style:none}.rack-catalog-card li{display:inline-flex;align-items:center;gap:2px;padding:3px 5px;color:#75869a;border:1px solid #263547;border-radius:4px;background:#0c141d;font-size:6px}.rack-catalog-card li svg{color:#49c999}.rack-catalog-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #253140;padding-top:9px}.rack-catalog-card footer>strong{color:#8bbcff;font-size:11px}.rack-catalog-card footer button{min-height:30px;display:inline-flex;align-items:center;gap:4px;padding:6px 9px;color:#e7f2ff;border:1px solid #3d6d9f;border-radius:6px;background:#173253;cursor:pointer;font-size:8px;font-weight:800}.rack-catalog-card footer button.added{color:#c9f8e8;border-color:#31735f;background:#12352b}.catalog-empty{grid-column:1 / -1;min-height:260px;display:grid;place-items:center;align-content:center;gap:7px;color:#51647b}.catalog-empty strong{color:#a7b4c4;font-size:13px}.catalog-empty span{font-size:8px}@media(max-width:1080px){.rack-workspace{grid-template-columns:220px minmax(390px,1fr) 260px}.rack-topbar{grid-template-columns:auto auto minmax(120px,1fr) auto}.rack-beta{display:none}.presentation-grid{grid-template-columns:1fr}.presentation-rack{min-height:540px}.rack-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:840px){.rack-topbar{grid-template-columns:auto 1fr auto}.rack-topbar>input,.rack-brand small{display:none}.rack-top-actions button:first-child{font-size:0;padding-inline:8px}.rack-workspace{grid-template-columns:180px minmax(380px,1fr);grid-template-rows:minmax(660px,1fr) auto}.rack-inspector{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:14px;border-top:1px solid var(--rack-line);border-left:0}.rack-library{padding-inline:8px}.rack-product{grid-template-columns:44px minmax(0,1fr) 26px}.rack-mini-face{width:44px}.presentation-metrics{grid-template-columns:1fr 1fr}.rack-catalog-overlay{padding:10px}.rack-catalog-modal{width:100%;height:96vh}.rack-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.rack-topbar{gap:6px;padding-inline:8px}.rack-back{font-size:0}.rack-brand strong{font-size:10px}.rack-top-actions button{font-size:0;padding-inline:8px}.rack-workspace{grid-template-columns:1fr;grid-template-rows:auto 650px auto}.rack-library{max-height:300px;border-right:0;border-bottom:1px solid var(--rack-line)}.rack-products{grid-template-columns:1fr 1fr}.rack-product{min-height:67px}.rack-inspector{grid-column:auto;grid-template-columns:1fr}.stage-toolbar{align-items:flex-start;flex-direction:column}.stage-meter{width:100%}.rack-cabinet{width:min(430px,88vw)}.rack-presentation>header{grid-template-columns:auto 1fr auto;padding-inline:8px}.rack-presentation header button{font-size:0}.rack-presentation header>div{justify-self:center}.rack-presentation main{padding:16px 10px}.presentation-heading{align-items:flex-start;flex-direction:column}.presentation-rack{min-height:450px;padding-inline:8px}.presentation-grid{grid-template-columns:1fr}.rack-catalog-overlay{padding:0}.rack-catalog-modal{height:100vh;border:0;border-radius:0}.rack-catalog-modal>header{min-height:74px;padding:12px 14px}.rack-catalog-modal>header h2{font-size:17px}.rack-catalog-modal>header p{display:none}.catalog-search-row{grid-template-columns:1fr;padding-inline:10px}.catalog-search-row select{min-height:38px}.catalog-type-tabs,.catalog-brand-filter,.catalog-result-bar{padding-inline:10px}.catalog-brand-filter{grid-template-columns:1fr}.catalog-brand-filter>span{display:none}.rack-catalog-grid{grid-template-columns:1fr;padding-inline:10px}.catalog-result-bar span{display:none}}@media print{.rack-presentation>header{display:none}.rack-presentation main{width:100%;padding:0}.presentation-grid{grid-template-columns:42% 58%;gap:12px}.presentation-rack{min-height:730px;break-inside:avoid}.presentation-bom{max-height:none}.presentation-summary{break-inside:avoid}}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#18212b;background:#eef1f4;font-synthesis:none;text-rendering:optimizeLegibility;--blue: #2868e8;--blue-soft: #e8f0ff;--green: #178553;--green-soft: #e7f7ef;--orange: #d97706;--red: #d34141;--ink: #18212b;--muted: #687586;--line: #dce2e8;--panel: #f8f9fb;--surface: #ffffff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#eef1f4}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:3px solid rgb(40 104 232 / 22%);outline-offset:1px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fatal-error{min-height:100vh;display:grid;place-items:center;align-content:center;gap:10px;padding:24px;text-align:center}.fatal-error h1{margin:5px 0 0;font-size:24px}.fatal-error p{max-width:520px;margin:0;color:var(--muted);font-size:12px;line-height:1.6}.fatal-error button{margin-top:6px;padding:10px 15px;color:#fff;border:0;border-radius:8px;background:var(--blue);cursor:pointer;font-weight:700}.app-shell{min-height:100vh;display:grid;grid-template-rows:60px minmax(500px,1fr) auto;background:var(--surface)}.topbar{display:flex;align-items:center;gap:16px;padding:0 18px;border-bottom:1px solid var(--line);background:var(--surface);z-index:20}.brand{display:flex;align-items:center;gap:9px;font-weight:700;white-space:nowrap}.brand-mark{width:30px;height:30px;display:grid;place-items:center;color:var(--blue);background:var(--blue-soft);border-radius:9px}.brand-dot{color:var(--blue)}.beta-badge{padding:3px 6px;color:#087855;border:1px solid #b8e6d4;border-radius:999px;background:#eaf9f3;font-size:8px;font-weight:700;white-space:nowrap}.project-switcher{display:flex;align-items:center;gap:6px;min-width:0;padding:7px 9px;color:var(--muted);background:transparent;border:0;border-radius:7px;cursor:pointer}.project-switcher:hover{color:var(--ink);background:#f2f4f6}.project-name-inline{width:min(390px,34vw);cursor:text;text-overflow:ellipsis}.project-name-inline:focus{color:var(--ink);background:#f7f9fb;outline:2px solid rgb(40 104 232 / 18%)}.save-state{display:flex;align-items:center;gap:5px;margin-left:auto;color:var(--muted);font-size:12px;white-space:nowrap}.save-state.is-saved{color:var(--green)}.save-state.has-error{color:var(--red)}.top-actions{display:flex;gap:8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;font-size:13px;font-weight:600}.button:hover{background:#f5f7f9}.button.primary{color:#fff;border-color:var(--blue);background:var(--blue)}.button.primary:hover{background:#1f59cf}.button.danger-outline{color:var(--red);border-color:#efbcbc;background:#fff}.button.danger-outline:hover{background:#fff0f0}.workspace{min-height:0;display:grid;grid-template-columns:214px minmax(420px,1fr) 260px}.left-panel,.right-panel{min-height:0;padding:15px 12px;background:var(--panel);overflow-y:auto}.left-panel{border-right:1px solid var(--line)}.right-panel{border-left:1px solid var(--line);padding:16px}.left-panel section+section{margin-top:20px}.panel-heading{margin-bottom:9px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.tool-button{position:relative;min-height:61px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:8px 9px;border:1px solid transparent;border-radius:9px;background:transparent;cursor:pointer;font-size:12px}.tool-button:hover:not(:disabled){background:var(--surface);border-color:var(--line)}.tool-button.active{color:#fff;border-color:var(--blue);background:var(--blue);box-shadow:0 4px 12px #2868e833}.tool-button:disabled{color:#a0a8b2;cursor:not-allowed}.tool-button small{position:absolute;top:6px;right:6px;color:#9aa4ae;font-size:8px;text-transform:uppercase}.finish-wall{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;padding:8px;color:var(--blue);border:1px solid #bfd0f6;border-radius:8px;background:var(--blue-soft);cursor:pointer;font-size:12px;font-weight:600}.equipment-list{display:grid;gap:5px}.equipment-heading{display:flex;justify-content:space-between;gap:8px}.equipment-heading span:last-child{color:#99a3ae;font-size:9px;letter-spacing:0;text-transform:none}.equipment-button{width:100%;min-height:49px;display:grid;grid-template-columns:31px minmax(0,1fr) 16px;align-items:center;gap:8px;padding:7px;text-align:left;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer}.equipment-button:hover,.equipment-button.active{border-color:var(--line);background:var(--surface)}.equipment-button.active{box-shadow:inset 3px 0 var(--blue)}.equipment-icon{width:29px;height:29px;display:grid;place-items:center;color:var(--equipment-color);background:color-mix(in srgb,var(--equipment-color) 11%,white);border-radius:7px}.equipment-button strong{display:block;font-size:12px;font-weight:600}.equipment-button small{display:block;margin-top:2px;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.equipment-button>svg{color:#a0a9b3}.catalog-launch{width:100%;min-height:56px;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;align-items:center;gap:8px;margin-top:8px;padding:8px;text-align:left;color:var(--blue);border:1px solid #c8d8fa;border-radius:9px;background:var(--blue-soft);cursor:pointer}.catalog-launch:hover,.catalog-launch.active{border-color:var(--blue);box-shadow:0 4px 12px #2868e81a}.catalog-launch-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;background:#fff}.catalog-launch strong,.catalog-launch small{display:block}.catalog-launch strong{color:#245dbb;font-size:11px}.catalog-launch small{margin-top:2px;color:#6e7f99;font-size:8px}.layers-section{padding-top:2px}.layer-toggle{min-height:38px;display:grid;grid-template-columns:19px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 6px;color:var(--muted);cursor:pointer;font-size:12px}.layer-toggle input{position:absolute;opacity:0;pointer-events:none}.switch{width:28px;height:17px;position:relative;display:block;border-radius:10px;background:#c9d0d7;transition:.2s ease}.switch:after{content:"";position:absolute;top:3px;left:3px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000002e;transition:.2s ease}.layer-toggle input:checked+.switch{background:var(--blue)}.layer-toggle input:checked+.switch:after{transform:translate(11px)}.canvas-area{position:relative;min-width:0;min-height:500px;overflow:hidden;background:#edf0f3}.canvas-toolbar{position:absolute;top:12px;left:50%;z-index:5;transform:translate(-50%);display:flex;align-items:center;gap:3px;max-width:calc(100% - 24px);padding:4px;border:1px solid var(--line);border-radius:9px;background:#fffffff0;box-shadow:0 6px 18px #1a26341f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.icon-button{min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;padding:6px;border:0;border-radius:7px;background:transparent;cursor:pointer}.icon-button:hover:not(:disabled){background:var(--blue-soft);color:var(--blue)}.icon-button:disabled{color:#b7bec5;cursor:default}.icon-button.danger:hover{color:var(--red);background:#fdecec}.toolbar-divider{width:1px;height:21px;margin:0 3px;background:var(--line)}.mode-hint{max-width:390px;padding:0 7px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar-action{min-height:29px;padding:5px 8px;color:var(--muted);white-space:nowrap;border:0;border-radius:6px;background:transparent;cursor:pointer;font-size:10px;font-weight:600}.toolbar-action:hover{color:var(--blue);background:var(--blue-soft)}.floor-canvas{width:100%;height:100%;display:block;touch-action:none;-webkit-user-select:none;user-select:none}.floor-canvas.mode-wall,.floor-canvas.mode-route,.floor-canvas.mode-measure,.floor-canvas.mode-camera,.floor-canvas.mode-access,.floor-canvas.mode-rack,.floor-canvas.mode-sensor,.floor-canvas.mode-switch,.floor-canvas.mode-catalog{cursor:crosshair}.floor-canvas.mode-pan{cursor:grab}.floor-canvas.mode-pan:active{cursor:grabbing}.canvas-background{fill:#f1f3f5}.grid-minor{stroke:#dfe4e9;stroke-width:.55}.grid-major{stroke:#cbd2da;stroke-width:1}.wall{stroke:#27313c;stroke-width:9;stroke-linecap:square;cursor:pointer}.wall:hover,.wall.selected{stroke:var(--blue)}.wall.preview{stroke:var(--blue);stroke-width:6;stroke-dasharray:9 6;pointer-events:none}.wall-length-preview{fill:var(--blue);paint-order:stroke;stroke:#f1f3f5;stroke-width:6;font-size:13px;font-weight:700;text-anchor:middle;pointer-events:none}.coverage{fill:#3478f61c;stroke:#3478f661;stroke-width:1;pointer-events:none}.cable-route polyline{fill:none;stroke:#3478f6;stroke-width:2.3;stroke-dasharray:8 6;opacity:.85;pointer-events:none}.cable-route.route-access polyline{stroke:#1b9b63}.cable-route.route-sensor polyline{stroke:#d97706}.cable-route text{fill:#647185;paint-order:stroke;stroke:#f1f3f5;stroke-width:5;font-size:10px;font-weight:700;text-anchor:middle;pointer-events:none}.manual-route polyline{fill:none;stroke:#11a36a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;cursor:pointer}.manual-route polyline:hover,.manual-route.selected polyline{stroke:#08784b;stroke-width:5}.manual-route.preview polyline{stroke:#11a36a;stroke-dasharray:8 6;pointer-events:none}.manual-route text,.measurements text{fill:#08784b;paint-order:stroke;stroke:#f1f3f5;stroke-width:5;font-size:10px;font-weight:700;text-anchor:middle;pointer-events:none}.measurements line{stroke:#e2712d;stroke-width:2;stroke-dasharray:6 4;cursor:pointer}.measurements circle{fill:#fff;stroke:#e2712d;stroke-width:2;pointer-events:none}.measurements .selected line{stroke-width:4}.measurements .preview{pointer-events:none}.measurements text{fill:#b45119}.wifi-coverage{pointer-events:none;opacity:.72;transition:opacity .2s ease}.wifi-coverage.highlighted{opacity:1}.wifi-coverage circle{stroke:#0f9d72;stroke-width:1.2}.wifi-range-outer{fill:#3abb8e0f;stroke-dasharray:7 5}.wifi-range-medium{fill:#3abb8e17;stroke:#0f9d728c!important}.wifi-range-strong{fill:#3abb8e24;stroke:#0f9d72b8!important}.wifi-coverage text{fill:#087855;paint-order:stroke;stroke:#f1f3f5;stroke-width:5;text-anchor:middle;font-size:10px;font-weight:700}.device-node{cursor:grab}.device-node:active{cursor:grabbing}.device-circle{fill:#fff;stroke:var(--equipment-color);stroke-width:2.5}.device-node text{fill:#33404d;paint-order:stroke;stroke:#f4f6f8;stroke-width:4;font-size:10px;font-weight:700;text-anchor:middle;pointer-events:none}.selection-ring{fill:none;stroke:var(--blue);stroke-width:1.5;stroke-dasharray:4 3}.camera-direction{color:var(--blue);pointer-events:none}.camera-direction line{stroke:currentColor;stroke-width:2.5}.camera-direction path{fill:currentColor}.device-icon{overflow:visible;pointer-events:none}.device-icon div{width:18px;height:18px;display:grid;place-items:center}.cursor-cross line{stroke:var(--blue);stroke-width:1.5;pointer-events:none}.canvas-status{position:absolute;left:12px;right:12px;bottom:10px;display:flex;justify-content:space-between;pointer-events:none;color:var(--muted);font-size:10px}.canvas-status span{padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:#ffffffe5}.network-hud{position:absolute;top:62px;left:12px;z-index:4;display:flex;gap:5px;pointer-events:none}.network-hud span{display:inline-flex;align-items:center;gap:4px;padding:5px 7px;color:#486071;border:1px solid var(--line);border-radius:7px;background:#ffffffeb;box-shadow:0 3px 9px #18233012;font-size:9px}.mini-map{position:absolute;right:14px;bottom:47px;z-index:5;width:184px;height:126px;padding:8px;border:1px solid #ccd5df;border-radius:10px;background:#fffffff0;box-shadow:0 8px 24px #16222f24}.mini-map>span{display:block;margin-bottom:4px;color:var(--muted);font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.mini-map svg{width:100%;height:calc(100% - 13px);background:#f2f4f6;border-radius:5px}.mini-map line{stroke:#586675;stroke-width:8;vector-effect:non-scaling-stroke}.mini-map circle{fill:var(--blue)}.mini-map rect{fill:#2868e814;stroke:var(--blue);stroke-width:2;vector-effect:non-scaling-stroke}.right-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:15px}.right-header strong{display:block;font-size:14px}.property-actions{display:flex;gap:2px}.empty-properties{min-height:175px;display:grid;place-items:center;align-content:center;gap:8px;padding:22px;color:#9aa4af;text-align:center}.empty-properties p{margin:0;font-size:11px;line-height:1.55}.property-form{display:grid;gap:11px}.selected-type{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:12px;font-weight:600}.selected-type span:last-child{min-width:0}.selected-type small{display:block;margin-top:2px;color:var(--muted);font-size:9px;font-weight:500}.property-form label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:600}.property-form input,.property-form select{width:100%;min-width:0;padding:8px 9px;color:var(--ink);border:1px solid var(--line);border-radius:7px;background:var(--surface);font-size:12px}.property-form input:focus{border-color:var(--blue)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.angle-control{display:grid;gap:7px;padding:10px;border:1px solid #cad8f8;border-radius:8px;background:var(--blue-soft)}.angle-heading{display:flex;justify-content:space-between;align-items:center;color:#526680;font-size:10px}.angle-heading strong{color:var(--blue);font-size:13px}.angle-row{display:grid;grid-template-columns:30px minmax(0,1fr) 30px;align-items:center;gap:5px}.angle-row button{width:30px;height:30px;display:grid;place-items:center;color:var(--blue);border:1px solid #bdd0f8;border-radius:7px;background:#fff;cursor:pointer}.angle-row input,.property-form input[type=range]{padding:0;accent-color:var(--blue);border:0;background:transparent}.route-detail{display:flex;align-items:flex-start;gap:8px;padding:10px;color:var(--blue);border-radius:8px;background:var(--blue-soft);font-size:11px}.route-detail strong,.route-detail small{display:block}.route-detail small{margin-top:2px;color:#677792}.camera-metrics{display:flex;flex-wrap:wrap;gap:7px}.camera-metrics span{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;color:var(--muted);border:1px solid var(--line);border-radius:6px;background:var(--surface);font-size:9px}.wifi-property-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;color:#087855;border:1px solid #bce9d7;border-radius:8px;background:#eaf9f3}.wifi-property-card div{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:600}.wifi-property-card strong{font-size:12px}.device-specs{display:flex;flex-wrap:wrap;gap:5px}.device-specs span{padding:4px 6px;color:#5d6877;border:1px solid var(--line);border-radius:5px;background:var(--surface);font-size:8px}.network-capacity{display:grid;grid-template-columns:1fr 1fr;gap:6px}.network-capacity span{display:flex;align-items:center;gap:5px;padding:7px;color:#176477;border-radius:7px;background:#e5f6f8;font-size:9px}.wall-stats{display:flex;justify-content:space-between;align-items:center;padding:11px;border-radius:8px;background:var(--surface)}.wall-stats span{color:var(--muted);font-size:11px}.property-note{margin:0;color:var(--muted);font-size:10px;line-height:1.55}.smart-checks{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.smart-title{display:flex;align-items:center;gap:7px;margin-bottom:9px;color:var(--ink);font-size:11px;font-weight:700}.check-row{display:flex;align-items:flex-start;gap:7px;padding:9px;border-radius:8px;font-size:9px;line-height:1.5}.check-row+.check-row{margin-top:6px}.check-row svg{flex:0 0 auto}.check-row.ok{color:#176f49;background:var(--green-soft)}.check-row.warning{color:#97600c;background:#fff4db}.check-row.error{color:#a43636;background:#fdecec}.result-drawer{position:relative;z-index:10;min-height:146px;border-top:1px solid var(--line);background:var(--surface);box-shadow:0 -8px 24px #1924300d}.result-tabs{min-height:42px;display:flex;align-items:stretch;gap:2px;padding:0 16px;border-bottom:1px solid var(--line);overflow-x:auto}.result-tab{display:inline-flex;align-items:center;gap:6px;padding:0 10px;color:var(--muted);white-space:nowrap;border:0;border-bottom:2px solid transparent;background:transparent;cursor:pointer;font-size:11px;font-weight:600}.result-tab:hover{color:var(--ink)}.result-tab.active{color:var(--ink);border-bottom-color:var(--blue)}.clear-project{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:0 8px;color:var(--muted);border:0;background:transparent;cursor:pointer;white-space:nowrap;font-size:10px}.clear-project:hover{color:var(--red)}.summary-grid{min-height:102px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;padding:13px 16px}.wifi-panel{min-height:102px;display:grid;grid-template-columns:150px 170px 140px minmax(260px,1fr) auto;align-items:stretch;padding:12px 16px}.wifi-panel>.metric{padding-inline:12px}.wifi-device-list{min-width:0;display:flex;align-items:center;gap:7px;padding:2px 12px;overflow-x:auto;border-right:1px solid var(--line)}.wifi-device-list>span{flex:0 0 auto;min-width:130px;display:grid;grid-template-columns:18px 1fr;align-items:center;padding:7px 8px;color:#087855;border-radius:7px;background:#eaf9f3}.wifi-device-list svg{grid-row:1 / 3}.wifi-device-list strong{font-size:9px}.wifi-device-list small{color:#4a7968;font-size:7px}.wifi-legend{display:grid;align-content:center;gap:5px;padding-left:12px;white-space:nowrap;color:var(--muted);font-size:8px}.wifi-legend span{display:flex;align-items:center;gap:5px}.wifi-legend i{width:13px;height:8px;border:1px solid #0f9d72;border-radius:4px}.wifi-legend i.strong{background:#3abb8e3d}.wifi-legend i.medium{background:#3abb8e24}.wifi-legend i.weak{background:#3abb8e12}.wifi-empty{min-height:102px;display:flex;align-items:center;justify-content:center;gap:10px;color:#0b8a64}.wifi-empty strong,.wifi-empty span{display:block}.wifi-empty strong{font-size:11px}.wifi-empty span{margin-top:3px;color:var(--muted);font-size:9px}.metric{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:4px 15px;border-right:1px solid var(--line)}.metric:first-child{padding-left:4px}.metric:last-child{border-right:0}.metric>span{color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric strong{margin:4px 0 2px;font-size:18px;font-weight:700;white-space:nowrap}.metric small{color:var(--muted);font-size:9px}.metric.total strong{color:var(--blue);font-size:21px}.table-wrap{max-height:195px;overflow:auto;padding:5px 16px 12px}table{width:100%;border-collapse:collapse;font-size:10px}th{padding:7px 9px;color:var(--muted);text-align:left;font-weight:600}td{padding:8px 9px;border-top:1px solid #edf0f2}td:last-child,th:last-child{text-align:right}.table-subtitle{display:block;margin-top:2px;color:var(--muted)}.empty-row{padding:22px;color:var(--muted);text-align:center!important}.checks-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;padding:14px 16px}.large-check{display:flex;align-items:flex-start;gap:8px;padding:11px;border-radius:8px;font-size:11px}.large-check.ok{color:#176f49;background:var(--green-soft)}.large-check.warning{color:#97600c;background:#fff4db}.large-check.error{color:#a43636;background:#fdecec}.catalog-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#121b268a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.catalog-modal{width:min(1160px,96vw);height:min(820px,92vh);min-height:560px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);overflow:hidden;border:1px solid rgb(255 255 255 / 35%);border-radius:16px;background:var(--surface);box-shadow:0 30px 80px #00000047}.catalog-header{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 18px;border-bottom:1px solid var(--line)}.catalog-title{display:flex;align-items:center;gap:11px}.catalog-title-icon{width:42px;height:42px;display:grid;place-items:center;color:var(--blue);border-radius:11px;background:var(--blue-soft)}.catalog-title h2{margin:0;font-size:17px}.catalog-title p{margin:3px 0 0;color:var(--muted);font-size:10px}.catalog-close{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;cursor:pointer}.catalog-close:hover{color:var(--red);background:#fdecec}.catalog-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 18px 9px}.catalog-search{min-height:43px;display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;padding:0 12px;color:var(--muted);border:1px solid var(--line);border-radius:10px;background:#f8f9fb}.catalog-search:focus-within{color:var(--blue);border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px #2868e81a}.catalog-search input{min-width:0;padding:10px 0;border:0;outline:0;background:transparent;font-size:12px}.catalog-search button{width:28px;height:28px;display:grid;place-items:center;color:var(--muted);border:0;border-radius:6px;background:transparent;cursor:pointer}.catalog-count{min-width:66px;text-align:center}.catalog-count strong,.catalog-count span{display:block}.catalog-count strong{color:var(--blue);font-size:18px}.catalog-count span{color:var(--muted);font-size:8px}.catalog-categories{display:flex;gap:5px;padding:5px 18px 12px;overflow-x:auto;border-bottom:1px solid var(--line)}.catalog-categories button{min-height:32px;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;color:var(--muted);white-space:nowrap;border:1px solid transparent;border-radius:7px;background:transparent;cursor:pointer;font-size:10px;font-weight:600}.catalog-categories button:hover{color:var(--ink);background:#f3f5f7}.catalog-categories button.active{color:#fff;border-color:var(--blue);background:var(--blue)}.catalog-categories small{min-width:17px;padding:2px 4px;text-align:center;color:inherit;border-radius:4px;background:#808a9621;font-size:8px}.catalog-categories button.active small{background:#fff3}.catalog-content{min-height:0;display:grid;grid-template-columns:190px minmax(0,1fr)}.brand-filter{min-height:0;padding:15px 12px;border-right:1px solid var(--line);background:#f8f9fb;overflow-y:auto}.brand-filter-title{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.brand-filter-title button{padding:2px;color:var(--blue);border:0;background:transparent;cursor:pointer;font-size:8px;text-transform:none}.brand-filter>p{margin:4px 0 10px;color:var(--muted);font-size:8px}.brand-list{display:grid;gap:3px}.brand-list label{min-height:34px;display:grid;grid-template-columns:17px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 7px;border-radius:7px;cursor:pointer;font-size:10px}.brand-list label:hover,.brand-list label.selected{background:var(--surface)}.brand-list input{position:absolute;opacity:0}.brand-check{width:16px;height:16px;display:grid;place-items:center;color:#fff;border:1px solid #c7cfd8;border-radius:4px;background:#fff}.brand-list label.selected .brand-check{border-color:var(--blue);background:var(--blue)}.brand-list small{color:var(--muted);font-size:8px}.catalog-results{min-height:0;padding:14px;overflow-y:auto;background:#f4f6f8}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.product-card{min-width:0;display:flex;flex-direction:column;min-height:300px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.product-card:hover{transform:translateY(-2px);border-color:#b9c9e9;box-shadow:0 8px 22px #1d2b3a17}.product-visual{position:relative;min-height:105px;display:grid;place-items:center;margin-bottom:10px;color:var(--equipment-color);border-radius:9px;background:linear-gradient(145deg,color-mix(in srgb,var(--equipment-color) 9%,white),#f8fafc);overflow:hidden}.product-visual svg{width:76%;max-height:86px;filter:drop-shadow(0 8px 9px rgb(35 51 68 / 10%))}.product-visual .product-brand{position:absolute;top:8px;right:8px}.product-visual>small{position:absolute;left:8px;bottom:6px;color:var(--muted);font-size:7px;font-weight:700;text-transform:uppercase}.product-brand{padding:3px 6px;color:var(--muted);border-radius:5px;background:#f0f2f4;font-size:8px;font-weight:700}.product-model{color:var(--blue);font-size:10px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-card h3{min-height:32px;margin:4px 0 9px;font-size:11px;line-height:1.4}.product-specs{display:flex;flex-wrap:wrap;gap:4px}.product-specs span{padding:3px 5px;color:#637083;border-radius:4px;background:#f2f4f6;font-size:7px}.product-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:12px}.product-card-footer strong,.product-card-footer small{display:block}.product-card-footer strong{white-space:nowrap;font-size:13px}.product-card-footer small{margin-top:2px;color:var(--muted);font-size:7px}.product-card-footer button{display:inline-flex;align-items:center;gap:4px;padding:7px 8px;color:#fff;border:0;border-radius:7px;background:var(--blue);cursor:pointer;font-size:9px;font-weight:700}.product-card-footer button:hover{background:#1f59cf}.catalog-empty{min-height:320px;display:grid;place-items:center;align-content:center;gap:7px;color:var(--muted);text-align:center}.catalog-empty strong{color:var(--ink);font-size:13px}.catalog-empty span{font-size:9px}.catalog-empty button{margin-top:5px;padding:7px 9px;color:var(--blue);border:1px solid #bed0f7;border-radius:7px;background:var(--blue-soft);cursor:pointer;font-size:9px}.confirm-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px;background:#121b2694;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.new-project-dialog{width:min(520px,96vw);display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;padding:22px;border:1px solid rgb(255 255 255 / 45%);border-radius:16px;background:#fff;box-shadow:0 28px 80px #00000047}.new-project-icon{width:46px;height:46px;display:grid;place-items:center;color:var(--blue);border-radius:12px;background:var(--blue-soft)}.dialog-kicker{color:var(--blue);font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.new-project-dialog h2{margin:4px 0 7px;font-size:18px}.new-project-dialog p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.new-project-actions{grid-column:1 / -1;display:grid;gap:8px;margin-top:5px}.new-project-actions .button{min-height:42px}.dialog-note{grid-column:1 / -1;color:var(--muted);text-align:center;font-size:8px}.welcome-backdrop{background:radial-gradient(circle at 20% 10%,rgb(40 104 232 / 20%),transparent 38%),#121b26ad}.welcome-dialog{width:min(760px,96vw);padding:28px;border:1px solid rgb(255 255 255 / 48%);border-radius:20px;background:#fff;box-shadow:0 32px 100px #00000057}.welcome-brand{display:flex;align-items:center;gap:9px}.welcome-brand strong{font-size:14px}.welcome-brand strong span{color:var(--blue)}.welcome-brand i{margin-left:auto;padding:4px 7px;color:#087855;border:1px solid #b8e6d4;border-radius:999px;background:#eaf9f3;font-size:8px;font-style:normal;font-weight:700}.welcome-hero{max-width:610px;margin:35px auto 26px;text-align:center}.welcome-hero h1{margin:7px 0 11px;color:#15202c;font-size:clamp(28px,5vw,45px);line-height:1.08;letter-spacing:-.035em}.welcome-hero p{max-width:590px;margin:0 auto;color:var(--muted);font-size:12px;line-height:1.65}.welcome-features{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.welcome-features>div{min-height:105px;display:grid;align-content:center;gap:5px;padding:14px;color:var(--blue);border:1px solid #e1e6ec;border-radius:11px;background:#f8fafc}.welcome-features strong{color:var(--ink);font-size:11px}.welcome-features span{color:var(--muted);font-size:8px;line-height:1.45}.welcome-actions{display:flex;justify-content:center;gap:8px;margin-top:18px}.welcome-actions .button{min-height:43px;padding-inline:17px}.welcome-trust{display:flex;align-items:flex-start;justify-content:center;gap:7px;max-width:600px;margin:17px auto 0;color:#5f6f7f;font-size:8px;line-height:1.5}.welcome-trust svg{flex:0 0 auto;color:var(--green)}.help-dialog{width:min(680px,96vw);max-height:92vh;overflow-y:auto;padding:22px;border-radius:16px;background:#fff;box-shadow:0 28px 80px #0000004d}.help-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.help-dialog h2{margin:4px 0 0;font-size:19px}.help-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.help-steps>div{display:grid;grid-template-columns:29px minmax(0,1fr);gap:8px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fafbfc}.help-steps b{width:27px;height:27px;display:grid;place-items:center;color:#fff;border-radius:8px;background:var(--blue);font-size:10px}.help-steps strong,.help-steps small{display:block}.help-steps strong{font-size:10px}.help-steps small{margin-top:3px;color:var(--muted);font-size:8px;line-height:1.5}.help-hotkeys{display:flex;align-items:center;flex-wrap:wrap;gap:7px 12px;margin-top:12px;padding:10px 12px;border-radius:9px;background:#f1f4f7;color:var(--muted);font-size:8px}.help-hotkeys strong{margin-right:3px;color:var(--ink);font-size:9px}.help-hotkeys span{display:flex;align-items:center;gap:4px}kbd{padding:2px 5px;color:#455467;border:1px solid #cfd6de;border-bottom-width:2px;border-radius:4px;background:#fff;font:inherit;font-weight:700}.data-notice{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding:12px;color:#087855;border:1px solid #bce9d7;border-radius:9px;background:#eaf9f3}.data-notice svg{flex:0 0 auto}.data-notice strong,.data-notice span{display:block}.data-notice strong{font-size:10px}.data-notice span{margin-top:3px;color:#4a7968;font-size:8px;line-height:1.5}.help-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.app-shell.editor-fullscreen{position:fixed;inset:0;z-index:90;min-height:0;grid-template-rows:0 minmax(0,1fr);background:#fff}.editor-fullscreen .topbar,.editor-fullscreen .result-drawer{display:none}.editor-fullscreen .workspace{min-height:0;grid-template-columns:224px minmax(0,1fr) 280px}.editor-fullscreen .canvas-area{min-height:0}.editor-fullscreen .left-panel,.editor-fullscreen .right-panel{padding-top:12px}.editor-fullscreen .tool-grid{grid-template-columns:repeat(3,1fr)}.editor-fullscreen .tool-button{min-height:55px;padding-inline:6px}.editor-fullscreen .fullscreen-button{color:var(--blue);background:var(--blue-soft)}.estimate-shell{min-height:100vh;background:#f2f4f7}.estimate-topbar{position:sticky;top:0;z-index:20;min-height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:9px 22px;border-bottom:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.estimate-back{justify-self:start;display:inline-flex;align-items:center;gap:7px;padding:8px 10px;color:var(--muted);border:0;border-radius:8px;background:transparent;cursor:pointer;font-size:12px;font-weight:600}.estimate-back:hover{color:var(--blue);background:var(--blue-soft)}.estimate-brand{display:flex;align-items:center;gap:9px}.estimate-brand strong,.estimate-brand span{display:block}.estimate-brand strong{font-size:13px}.estimate-brand span{margin-top:2px;color:var(--muted);font-size:9px}.estimate-actions{justify-self:end;display:flex;gap:7px}.estimate-page{width:min(1480px,100%);margin:0 auto;padding:28px 30px 48px}.estimate-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.estimate-kicker{display:block;margin-bottom:5px;color:var(--blue);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.estimate-project-name{width:min(680px,70vw);padding:0;color:var(--ink);border:0;border-bottom:1px solid transparent;background:transparent;font-size:clamp(22px,3vw,34px);font-weight:700}.estimate-project-name:hover,.estimate-project-name:focus{border-bottom-color:var(--line);outline:0}.estimate-total-top{flex:0 0 auto;text-align:right}.estimate-total-top span{display:block;color:var(--muted);font-size:10px}.estimate-total-top strong{display:block;margin-top:3px;color:var(--blue);font-size:24px}.pricing-controls{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:16px}.pricing-controls label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.pricing-controls span{color:var(--muted);font-size:10px;font-weight:600}.pricing-controls input{width:78px;padding:6px 7px;text-align:right;border:1px solid var(--line);border-radius:6px;background:#f8f9fb;font-size:12px;font-weight:700}.estimate-table-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 8px 24px #1b27330d;overflow:hidden}.estimate-table-title{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 17px;border-bottom:1px solid var(--line)}.estimate-table-title strong,.estimate-table-title span{display:block}.estimate-table-title strong{font-size:13px}.estimate-table-title span{margin-top:3px;color:var(--muted);font-size:9px}.estimate-table-title .estimate-currency{margin:0;padding:6px 8px;border-radius:6px;background:#f2f4f6;font-size:9px}.estimate-table-scroll{overflow-x:auto}.estimate-table{min-width:900px;font-size:11px}.estimate-table th{position:sticky;top:0;padding:10px 12px;background:#f8f9fb;font-size:9px;text-transform:uppercase;letter-spacing:.04em}.estimate-table td{padding:12px}.estimate-table td:first-child{width:42px;color:var(--muted)}.estimate-table td:nth-child(2){width:125px}.estimate-table td:nth-child(3){min-width:280px}.estimate-table td:nth-child(4),.estimate-table td:nth-child(5){width:92px}.estimate-table td:nth-child(6){width:150px}.estimate-table td:last-child{width:145px}.estimate-table td strong,.estimate-table td small{display:block}.estimate-table td strong{font-size:11px}.estimate-table td small{margin-top:3px;color:var(--muted);font-size:9px}.number-cell{text-align:right;font-variant-numeric:tabular-nums}.sum-cell{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.section-chip{display:inline-flex!important;width:max-content;padding:4px 6px;border-radius:5px;font-size:8px!important;font-weight:700}.section-chip.equipment{color:#255fca;background:var(--blue-soft)}.section-chip.cable{color:#14734a;background:var(--green-soft)}.section-chip.labor{color:#995a08;background:#fff1dc}.editable-money{display:flex;align-items:center;gap:5px}.editable-money input{width:105px;padding:7px 8px;text-align:right;border:1px solid #cfd6de;border-radius:7px;background:#fff;font-size:11px;font-weight:700}.editable-money input:hover,.editable-money input:focus{border-color:var(--blue)}.editable-money span{color:var(--muted)}.estimate-footer-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;align-items:start;gap:18px;margin-top:18px}.estimate-notes,.estimate-totals{padding:18px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.estimate-notes strong{display:block;margin-bottom:10px;font-size:12px}.estimate-notes textarea{width:100%;min-height:95px;resize:vertical;padding:10px;color:var(--ink);border:1px solid var(--line);border-radius:8px;font:inherit;font-size:10px;line-height:1.6}.total-line{display:flex;justify-content:space-between;gap:16px;padding:6px 0;color:var(--muted);font-size:10px}.total-line strong{color:var(--ink);font-weight:600}.grand-total{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:9px;padding-top:13px;border-top:1px solid var(--line)}.grand-total span{font-weight:700}.grand-total strong{color:var(--blue);font-size:22px}@media(max-width:1050px){.workspace{grid-template-columns:190px minmax(390px,1fr) 230px}.left-panel{padding-inline:9px}.project-name-inline{width:220px}.beta-badge{display:none}.metric{padding-inline:9px}.wifi-panel{grid-template-columns:repeat(3,minmax(120px,1fr))}.wifi-device-list{grid-column:1 / -1;border-top:1px solid var(--line);border-right:0}.wifi-legend{display:none}}@media(max-width:900px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.estimate-topbar{grid-template-columns:auto 1fr auto;padding-inline:12px}.estimate-brand span{display:none}.estimate-page{padding-inline:16px}.pricing-controls{grid-template-columns:repeat(2,minmax(150px,1fr))}.estimate-footer-grid{grid-template-columns:1fr}}@media(max-width:820px){.app-shell{grid-template-rows:56px auto auto}.topbar{padding:0 10px;gap:8px}.save-state,.button.ghost{display:none}.button.ghost.new-project-button,.button.ghost.help-button,.button.ghost.rack-builder-button,.new-project-actions .button.ghost,.welcome-actions .button.ghost,.help-dialog .button.ghost{display:inline-flex}.top-actions{margin-left:auto}.workspace{grid-template-columns:150px minmax(0,1fr);grid-template-rows:540px auto}.right-panel{grid-column:1 / -1;border-top:1px solid var(--line);border-left:0}.right-panel{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,1fr);gap:16px}.right-header{grid-column:1 / -1;margin-bottom:0}.smart-checks{margin-top:0;padding-top:0;border-top:0}.tool-grid{grid-template-columns:1fr}.tool-button{min-height:48px;flex-direction:row;align-items:center;justify-content:flex-start}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric:nth-child(3){border-right:0}}@media(max-width:560px){.brand>span:last-child{display:none}.project-name-inline{display:none}.button.primary{padding-inline:9px}.new-project-button,.help-button,.rack-builder-button{font-size:0;padding-inline:9px}.new-project-dialog{grid-template-columns:40px minmax(0,1fr);padding:17px}.new-project-icon{width:40px;height:40px}.welcome-dialog{padding:18px}.welcome-hero{margin:24px auto 18px}.welcome-hero h1{font-size:29px}.welcome-features{grid-template-columns:1fr}.welcome-features>div{min-height:72px;grid-template-columns:24px 1fr;align-items:center}.welcome-features svg{grid-row:1 / 3}.welcome-actions{flex-direction:column}.help-steps{grid-template-columns:1fr}.help-dialog footer{flex-direction:column-reverse}.workspace{grid-template-columns:1fr;grid-template-rows:auto 500px auto}.left-panel{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}.left-panel section+section{margin-top:0}.layers-section{display:none}.tool-grid{grid-template-columns:repeat(2,1fr)}.tool-button{min-height:44px}.equipment-list{grid-template-columns:1fr 1fr}.equipment-button{grid-template-columns:28px minmax(0,1fr);min-height:44px}.equipment-button>svg,.equipment-button small{display:none}.right-panel{grid-column:auto;grid-template-columns:1fr}.right-header{grid-column:auto}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{border-right:1px solid var(--line)!important}.metric:nth-child(2n),.metric:last-child{border-right:0!important}.result-tabs{padding-inline:6px}.clear-project{display:none}.mode-hint{max-width:220px}.catalog-backdrop{padding:5px}.catalog-modal{width:100%;height:97vh;min-height:0;border-radius:12px}.catalog-header{min-height:64px;padding:10px 12px}.catalog-title-icon{width:36px;height:36px}.catalog-title h2{font-size:14px}.catalog-title p{display:none}.catalog-search-row{padding:9px 10px 6px}.catalog-categories{padding:4px 10px 8px}.catalog-content{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.brand-filter{max-height:114px;padding:8px 10px;border-right:0;border-bottom:1px solid var(--line)}.brand-filter>p{display:none}.brand-list{display:flex;gap:5px;margin-top:6px;overflow-x:auto}.brand-list label{flex:0 0 auto;min-height:29px;grid-template-columns:15px auto auto;padding:3px 6px;background:#fff}.brand-check{width:14px;height:14px}.catalog-results{padding:8px}.product-grid{grid-template-columns:1fr}.product-card{min-height:178px}.estimate-topbar{min-height:58px;grid-template-columns:auto 1fr}.estimate-back{font-size:0}.estimate-brand{display:none}.estimate-actions{grid-column:2}.estimate-actions .button.ghost{display:none}.estimate-page{padding:20px 10px 36px}.estimate-title-row{align-items:flex-start;flex-direction:column;gap:12px}.estimate-project-name{width:100%;font-size:23px}.estimate-total-top{text-align:left}.pricing-controls{grid-template-columns:1fr}.estimate-table-title .estimate-currency{display:none}}@media print{body{background:#fff}.estimate-topbar,.pricing-controls,.estimate-notes{display:none!important}.estimate-page{width:100%;padding:0}.estimate-table-card,.estimate-totals{box-shadow:none;break-inside:avoid}.estimate-footer-grid{grid-template-columns:1fr}.editable-money input{border:0;padding:0}}
