:root{
--bg:#0b1220; --panel:#0f1a2d; --muted:#9aa7bd; --text:#e6eefb; --brand:#11b5a4;
--stroke:#1e2a42; --hover:#15233b; --shadow:0 10px 30px rgba(0,0,0,.35);
--radius:16px;
} *{box-sizing:border-box}
html,body{height:100%;background:var(--bg);color:var(--text);font:16px/1.45 Inter,system-ui,Arial}
.wrap{max-width:980px;margin:32px auto;padding:16px}
.header{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.chip{background:rgba(255,255,255,.06);border:1px solid var(--stroke);padding:6px 10px;border-radius:999px;font-size:12px;color:var(--muted)}
.panel{background:var(--panel);border:1px solid var(--stroke);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
h1{font-size:26px;margin:0 0 8px}
h2{font-size:22px;margin:0 0 10px}
.muted{color:var(--muted)} .stepper{display:flex;gap:6px;margin:10px 0 18px}
.dot{width:9px;height:9px;border-radius:50%;background:#24334f;border:1px solid var(--stroke);opacity:.6}
.dot.on{background:var(--brand);opacity:1} .grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; } .card{
border:1px solid var(--stroke);
background:linear-gradient(180deg,#101c31,#0d182b);
border-radius:14px;
cursor:pointer;
transition:.2s ease;
position:relative;
overflow:hidden;
text-align:center;
aspect-ratio:1 / 1;
display:flex;
flex-direction:column;
justify-content:flex-start;
padding:12px 12px 56px; }
.card:hover{transform:translateY(-1px);background:var(--hover)}
.card.selected{outline:2px solid var(--brand)} .card img{
width:100%;
height:auto;
aspect-ratio:1 / 1;
object-fit:contain;
border-radius:12px;
margin-bottom:10px;
filter:drop-shadow(0 6px 20px rgba(0,0,0,.25));
} .card .title,
.title-badge{
position:absolute;
left:12px; right:12px; bottom:12px;
padding:8px 10px;
border-radius:10px;
border:1px solid var(--stroke);
background:rgba(5,12,25,.55);
backdrop-filter:saturate(140%) blur(6px);
text-align:center;
font-weight:700;
color:var(--text);
}
.card .desc{display:none} .dwelling-grid .card{ aspect-ratio:auto; }
.dwelling-grid .card img{
width:100%; aspect-ratio:16/10; height:auto; object-fit:cover;
border-radius:12px; display:block;
}
.dwelling-grid .card.selected .title,
.dwelling-grid .card.selected .title-badge{
border-color:rgba(17,181,164,.6);
box-shadow:0 0 0 2px rgba(17,181,164,.25) inset;
} .mobile-grid{
display:grid;
grid-template-columns:repeat(2, minmax(260px, 1fr));
gap:16px;
align-items:stretch;
}
.mobile-note{color:var(--muted);font-size:13px;margin:-4px 0 12px;}
.mobile-note a{ color:#bfe9ff; text-decoration:underline; }
@media (max-width:720px){ .mobile-grid{ grid-template-columns:1fr; } } .voice-wrap{
position:relative; background:#0e1a2c; border:1px solid var(--stroke);
border-radius:var(--radius); padding:20px; box-shadow:var(--shadow);
}
.voice-wrap .hero{display:grid;place-items:center;margin:4px 0 18px;}
.voice-wrap .hero img{
width:100%; max-width:560px; height:200px; object-fit:contain; border-radius:12px;
filter:drop-shadow(0 8px 30px rgba(0,0,0,.25));
} .big-choices{ display:grid; grid-template-columns:repeat(2, minmax(240px,1fr)); gap:18px; align-items:center; }
.big-choice{
position:relative; display:grid; place-items:center; gap:8px; padding:12px 10px;
border:1px solid var(--stroke); background:linear-gradient(180deg,#101c31,#0d182b);
border-radius:16px; cursor:pointer; transition:.2s ease; text-align:center;
font-weight:600; color:var(--text);
}
.big-choice:hover{ background:var(--hover); transform:translateY(-1px); }
.big-choice.selected{ outline:2px solid var(--brand); }
.big-choice .x,.big-choice .check{
display:grid; place-items:center; width:48px; height:48px; border-radius:999px;
border:2px solid var(--stroke); font-size:26px; line-height:1;
}
.big-choice.no .x{ border-color:#3b1f2a; background:#1a0f16; color:#ff6b81; }
.big-choice.yes .check{ border-color:#0f3a37; background:#0b2624; color:var(--brand); }
@media (max-width:720px){
.big-choices{ grid-template-columns:1fr; }
.voice-wrap .hero img{ height:180px; }
} .row{display:flex;align-items:center;gap:12px;justify-content:center;margin:10px 0}
.btn{ background:transparent;border:1px solid var(--stroke);color:var(--text); padding:10px 14px;border-radius:10px;cursor:pointer; }
.btn:hover{background:var(--hover)}
.btn.brand{background:var(--brand);border-color:transparent;color:#01201d}
.btn.ghost{border-color:var(--stroke)}
.btn:disabled{opacity:.45;cursor:not-allowed}
input[type="number"]{ width:90px;background:#0b1629;border:1px solid var(--stroke);color:var(--text); padding:10px 12px;border-radius:10px;text-align:center;font-size:16px; } .rooms{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-top:8px}
@media (max-width:720px){.rooms{grid-template-columns:1fr}}
.rooms .item{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--stroke);background:#0b1629;border-radius:12px;padding:8px 10px}
.rooms .label{font-weight:600;display:flex;align-items:center;gap:10px}
.rooms .label svg{width:20px;height:20px;color:#49d1c2}
.rooms .ctrl{display:flex;align-items:center;gap:8px} .panel-thumb{
width:80px;height:80px;aspect-ratio:1/1;object-fit:contain;
background:#0b1629;border:1px solid var(--stroke);border-radius:12px;padding:6px;
box-shadow:0 6px 18px rgba(0,0,0,.18);
} .nav{display:flex;align-items:center;justify-content:space-between;margin-top:18px}
.price{font-size:14px;color:#b9c6dd}
.price b{font-size:18px;color:#fff}
.toast{ position:fixed;right:16px;bottom:16px;background:#0e1a2c;border:1px solid var(--stroke);color:#cde7ff; padding:10px 12px;border-radius:10px;box-shadow:var(--shadow) } @media (min-width:900px){
.mobile-grid.square-cards{ grid-template-columns:repeat(4, minmax(180px,1fr)); gap:12px; }
.mobile-grid.square-cards .card{ min-height:240px; padding:12px 12px 56px; }
.mobile-grid.square-cards .card img{ aspect-ratio:1/1; object-fit:contain; }
}
@media (min-width:1280px){
.mobile-grid.square-cards{ grid-template-columns:repeat(4, minmax(200px,1fr)); }
} input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
input[type=number]{ -moz-appearance:textfield; } .device-list { display: grid; gap: 12px; }
.device-list .item{
display:flex; align-items:center; justify-content:space-between;
border:1px solid var(--stroke); background:#0b1629;border-radius:12px; padding:10px 12px;
}
.device-meta{ display:flex; align-items:center; gap:12px; }
.device-meta .thumb{
width:56px; height:56px; border-radius:10px; object-fit:cover; border:1px solid var(--stroke);
background:#0e1a2c;
}
.device-meta .meta{ display:flex; flex-direction:column; }
.device-meta .title-strong{ font-weight:700; }
.device-meta .sub{ color:var(--muted); font-size:13px; line-height:1.25; } .locks-grid{
display:grid;
grid-template-columns:repeat(2, minmax(220px, 1fr));
gap:16px;
align-items:stretch;
}
@media (max-width:720px){ .locks-grid{ grid-template-columns:1fr; } }
.lock-card{
border:1px solid var(--stroke);
background:linear-gradient(180deg,#101c31,#0d182b);
border-radius:14px;
padding:12px;
display:flex;
flex-direction:column;
gap:10px;
}
.lock-card .thumb{
width:100%;
aspect-ratio:4/3;
object-fit:contain;
background:#0b1629;
border:1px solid var(--stroke);
border-radius:12px;
filter:drop-shadow(0 8px 24px rgba(0,0,0,.25));
}
.lock-meta{
display:flex;
align-items:center;
justify-content:space-between;
gap:10px;
}
.lock-meta .name{ font-weight:700; }
.lock-meta .price{ color:#cfe7ff; font-weight:700; }
.lock-card .ctrl{
margin-top:auto;
display:flex;
align-items:center;
justify-content:flex-end;
gap:8px;
}
.lock-card .qty{
width:78px;
text-align:center;
background:#0b1629;
border:1px solid var(--stroke);
color:var(--text);
padding:10px 12px;
border-radius:10px;
font-size:16px;
} .cams-grid { grid-template-columns: repeat(2, minmax(220px,1fr)); gap:16px; }
.cams-grid .cam-card { }
@media (max-width:720px){
.cams-grid { grid-template-columns:1fr; }
} .hero-wrap{
display:grid; gap:14px; text-align:center; place-items:center;
padding:10px 0 6px;
}
.hero-title{ font-size:26px; font-weight:800; margin:0; }
.hero-sub{ color:var(--muted); max-width:680px; }
.hero-cta{ margin-top:6px; } .map-wrap{ display:grid; gap:12px; margin-top:8px; }
.map{
width:100%;
height:320px; border:1px solid var(--stroke);
border-radius:12px;
background:#0b1629;
overflow:hidden;
display:grid;
place-items:center;
}
.map img{
display:block;
width:100%;
height:100%;
object-fit:contain; }
.select, .text-input{
width:100%;
background:#0b1629;
border:1px solid var(--stroke);
color:var(--text);
padding:10px 12px;
border-radius:10px;
font-size:16px;
}
@media (max-width:720px){
.map{ height:220px; }
} .feel-grid{
display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
gap:12px; margin-top:8px;
}
.feel{
border:1px solid var(--stroke); background:linear-gradient(180deg,#101c31,#0d182b);
border-radius:16px; padding:16px; text-align:center; cursor:pointer; transition:.2s;
}
.feel:hover{ background:var(--hover); transform:translateY(-1px); }
.feel.selected{ outline:2px solid var(--brand); } .inline-qty{ display:flex; align-items:center; gap:8px; justify-content:center; margin-top:10px; }  .wrap{
max-width: 1470px; } .panel{
padding: 32px; min-height: 70vh; } @media (min-width: 1600px){
.wrap{ max-width: 1600px; }
.panel{ padding: 36px; }
} @media (max-width: 720px){
.wrap{ max-width: 100%; }
.panel{ min-height: auto; padding: 20px; }
}