/* ─────────────────────────────────────────────────────────────
   Live projects: working models of systems we run in the wild.
   Each model has its own fixed palette (they are products, not the page theme),
   is drawn at 840 × 500 and scaled to fit by live.js.
   ───────────────────────────────────────────────────────────── */
.lp{display:flex;flex-direction:column;gap:22px}
.lp-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.lp-tabs button{display:inline-flex;align-items:center;gap:9px;padding:11px 18px;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--mute);font:600 14.5px var(--font-body);cursor:pointer;transition:color .2s,border-color .2s,background-color .25s,transform .2s}
.lp-tabs button:hover{color:var(--ink);border-color:var(--brand)}
.lp-tabs button[aria-selected=true]{color:var(--ink);border-color:var(--brand);background:color-mix(in srgb,var(--brand) 16%,var(--surface));box-shadow:0 10px 26px -14px var(--brand)}
.lp-body{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:28px;align-items:center}
.lp-frame{position:relative;height:var(--h,500px);border-radius:16px;overflow:hidden;background:#05060c;border:1px solid var(--line);box-shadow:0 40px 90px -40px color-mix(in srgb,var(--brand) 55%,#000)}
.lp-mock{position:absolute;left:0;top:0;width:840px;height:500px;transform:scale(var(--s,1));transform-origin:0 0}
.lp-mock.in{animation:lpIn .55s cubic-bezier(.2,.7,.2,1)}
@keyframes lpIn{from{opacity:0;transform:scale(var(--s,1)) translateY(10px)}to{opacity:1;transform:scale(var(--s,1))}}
.lp-info{min-width:0}
.lp-k{margin:0 0 10px;font:600 12px var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--brand-text)}.lp-k span{opacity:.5;margin:0 4px}
.lp-info h3{margin:0 0 14px;font-size:clamp(22px,2.4vw,30px);line-height:1.15}
.lp-info .ticks{margin:0 0 18px}
.lp-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}.lp-tags span{padding:5px 12px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;color:var(--mute)}
.lp-info .btn{margin-bottom:14px}
@media (max-width:900px){.lp-body{grid-template-columns:1fr;gap:22px}.lp-tabs{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.lp-tabs button{flex:none}}

/* ── shared by every model ── */
.lm{position:absolute;inset:0;display:flex;font:12px/1.35 'Inter',system-ui,sans-serif;color:#e8eaf0;overflow:hidden;-webkit-font-smoothing:antialiased;text-align:left}
.lm *{box-sizing:border-box}
.lm :is(h4,h5,h6,b,p,small,em,u,i,span,strong,header,nav,main,aside,section,ul,li){font-family:inherit;margin:0;padding:0;text-transform:none;letter-spacing:normal;text-decoration:none;font-style:normal;list-style:none}
.lm b{font-weight:700}
.lm button{font:inherit;cursor:default}
@keyframes lmPulse{50%{opacity:.35;transform:scale(1.4)}}
@keyframes lmBlink{50%{opacity:0}}

/* ── 1 · Phone Provisioning ── */
.lm-prov{background:#0c0d10}
.lm-prov aside{width:172px;flex:none;border-right:1px solid #1f2025;padding:14px 10px;display:flex;flex-direction:column;gap:3px}
.lm-prov .lg{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;line-height:1.15}
.lm-prov .lg i{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#1e6bf2,#12b3f5);display:grid;place-items:center;font-size:10.5px;font-weight:800;color:#fff}
.lm-prov aside p{padding:8px 10px;border-radius:8px;color:#9aa0ae}.lm-prov aside p.on{background:#202127;color:#fff}
.lm-prov aside small{margin-top:18px;font-size:9.5px;letter-spacing:.1em;color:#6b7080;display:flex;justify-content:space-between}
.lm-prov .cl{display:flex;align-items:center;gap:8px;padding:8px;margin-top:4px;border-radius:9px;background:#16171b;border:1px solid #26272d}
.lm-prov .cl i{width:22px;height:22px;border-radius:6px;background:#3a3110;color:#f1c40f;display:grid;place-items:center;font-size:9px;font-weight:700}.lm-prov .cl span{flex:1}.lm-prov .cl em{color:#7b8190}
.lm-prov main{flex:1;min-width:0;padding:14px 20px}
.lm-prov .crumb{color:#7b8190;font-size:11px}.lm-prov .crumb b{color:#fff}.lm-prov .crumb span{margin:0 4px}
.lm-prov .hd{display:flex;gap:12px;align-items:center;margin:10px 0 12px}
.lm-prov .av{width:44px;height:44px;border-radius:12px;background:#3a3110;color:#f5d142;display:grid;place-items:center;font-weight:800;font-size:15px}
.lm-prov .hd h4{font-size:20px;font-weight:700;display:flex;gap:8px;align-items:center;line-height:1.2}
.lm-prov .lchip{font-size:9.5px;padding:2px 8px;border-radius:99px;background:#0e3a55;color:#4cc3ff;font-weight:600}
.lm-prov .hd small{color:#8b91a1}
.lm-prov .hd button{margin-left:auto;background:#17202b;color:#4cc3ff;border:1px solid #2b3a4a;border-radius:99px;padding:6px 14px}
.lm-prov .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.lm-prov .stats div{background:#16171b;border-radius:14px;padding:10px 14px}
.lm-prov .stats span{color:#8b91a1;font-size:10.5px;display:block}.lm-prov .stats b{font-size:22px;line-height:1.2}.lm-prov .stats em{font-size:10px;color:#7b8190;font-weight:500}.lm-prov .stats u{text-decoration:none}
.lm-prov .lpanel{margin-top:12px;background:#16171b;border-radius:16px;padding:4px 10px 6px}
.lm-prov .tabs{display:flex;gap:4px;align-items:center;padding:7px 0;border-bottom:1px solid #26272d}
.lm-prov .tabs i{padding:5px 12px;border-radius:99px;color:#9aa0ae}.lm-prov .tabs i.on{background:#26272d;color:#fff}.lm-prov .tabs em{color:#7b8190;font-size:10px;margin-left:3px}
.lm-prov .tabs button{margin-left:auto;background:#0ea5e9;color:#fff;border:0;border-radius:99px;padding:6px 14px;font-weight:600}
.lm-prov .srch{display:flex;justify-content:space-between;padding:8px 4px;color:#8b91a1;font-size:11px}
.lm-prov :is(.th,.tr){display:grid;grid-template-columns:1.5fr .5fr 1.25fr 1fr .9fr;align-items:center;padding:0 8px}
.lm-prov .th{background:#1c1d22;border-radius:9px;height:26px;font-size:10px;color:#8b91a1}
.lm-prov .tr{height:31px;border-bottom:1px solid #202126;font-size:11.5px}
.lm-prov .tr .ph{display:inline-block;width:16px;height:13px;border-radius:4px;background:#2a2b31;margin-right:8px;vertical-align:-2px}
.lm-prov .tr u{background:#26272d;border-radius:5px;padding:1px 7px;font-weight:700;font-size:10.5px}
.lm-prov .mac{font-family:var(--mono);font-size:10px;color:#7b8190}
.lm-prov .st{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;padding:2px 9px;border-radius:99px;background:#1d1e23;width:max-content;transition:background-color .4s}
.lm-prov .st i{width:6px;height:6px;border-radius:50%;background:#6b7080;transition:background-color .4s}
.lm-prov .st.ok i{background:#22c55e;box-shadow:0 0 6px #22c55e}.lm-prov .st.prov{background:#2b2210}.lm-prov .st.prov i{background:#f59e0b;animation:lmPulse 1s infinite}.lm-prov .ls{color:#8b91a1}

/* ── 2 · Scoreboard ── */
.lm-score{background:#f1f5fb;color:#0d1b33}
.lm-score aside{width:170px;flex:none;background:linear-gradient(#0b2247,#071329);padding:16px 12px;color:#b7c6e6}
.lm-score .lg b{font-size:19px;font-weight:800;color:#fff;letter-spacing:.04em}.lm-score .lg i{color:#19b7f0}
.lm-score aside small{display:block;margin:16px 0 6px;font-size:9px;letter-spacing:.12em;color:#6f86b3}
.lm-score aside p{padding:8px 10px;border-radius:8px;margin-bottom:1px}.lm-score aside p.on{background:#13335f;color:#fff}
.lm-score main{flex:1;min-width:0;padding:16px 20px}
.lm-score h4{font-size:22px;font-weight:700}.lm-score .sub{color:#5a6a86;font-size:11.5px;margin:2px 0 12px}
.lm-score .tvs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.lm-score .sbc{background:#fff;border-radius:14px;box-shadow:0 8px 22px -12px #1d2c4d66;overflow:hidden;border:1px solid #dfe6f2}
.lm-score .tv{position:relative;aspect-ratio:16/9;overflow:hidden;color:#fff}
.lm-score .tv1{background:linear-gradient(135deg,#123a3c,#1f5a3d 70%,#2a6a3a);padding:8px 10px}
.lm-score .tvh{display:flex;justify-content:space-between;font-size:10px}.lm-score .tvh b{font-size:11px}
.lm-score .tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:6px 0}
.lm-score .tiles div{background:#0006;border-radius:5px;padding:4px 6px}.lm-score .tiles small{font-size:6.5px;letter-spacing:.08em;color:#cfe;display:block}.lm-score .tiles b{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.lm-score .gauges{display:grid;grid-template-columns:repeat(3,44px) 1fr;gap:6px;align-items:center}
.lm-score .gg{--c:#ffc933;position:relative;width:44px;height:44px;display:grid;place-content:center;text-align:center;line-height:1}
.lm-score .gg::before{content:'';position:absolute;inset:0;border-radius:50%;background:conic-gradient(var(--c) calc(var(--p)*360deg),#ffffff22 0);-webkit-mask:radial-gradient(circle 18px,transparent 98%,#000 100%);mask:radial-gradient(circle 18px,transparent 98%,#000 100%)}
.lm-score .gg b{font-size:11px;position:relative}.lm-score .gg small{font-size:5.5px;position:relative;color:#d8efe0}
.lm-score .gauges .gg:nth-child(3){--c:#b784ff}.lm-score .gauges .gg:nth-child(1){--c:#5be08a}
.lm-score .lsvc{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;font-size:8px;background:#0006;border-radius:6px;padding:5px 7px}.lm-score .lsvc li{display:flex;align-items:center;gap:4px}.lm-score .lsvc i{width:5px;height:5px;border-radius:50%;background:#34d399}.lm-score .lsvc i.w{background:#fbbf24}
.lm-score .flash{position:absolute;left:8px;right:8px;bottom:8px;padding:6px 10px;border-radius:8px;background:#ff6a13;color:#fff;font:700 10px 'Inter',sans-serif;transform:translateY(160%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.lm-score .flash.on{transform:none}
.lm-score .tv2{background:#07101c}
.lm-score .sc{position:absolute;inset:0;opacity:0;transition:opacity .8s}.lm-score .sc.on{opacity:1}
.lm-score .sc-q .sky{position:absolute;inset:0;background:linear-gradient(#8fd0ff,#d9f0ff 60%,#bfe3a8 61%,#6fae55)}
.lm-score .hill{position:absolute;left:-10%;right:-10%;bottom:-30%;height:60%;border-radius:50%;background:#5da048}.lm-score .hill.h2{left:30%;right:-40%;bottom:-40%;background:#4d9140}
.lm-score .qt{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:0 22px;background:#0003}.lm-score .qt small{font-size:7px;letter-spacing:.14em;opacity:.8}.lm-score .qt p{font:800 15px/1.2 'Space Grotesk','Inter',sans-serif;text-shadow:0 2px 8px #0008;margin-top:4px}
.lm-score .sc-m{background:radial-gradient(circle at 70% 0,#7a2a0a,#1a0b08 70%);padding:8px 10px}
.lm-score .mus{display:flex;gap:12px;align-items:center;margin-top:16px}.lm-score .alb{width:64px;height:64px;border-radius:10px;background:#ffffff18;display:grid;place-items:center;font-size:28px;color:#ffb36b;flex:none}
.lm-score .mus b{font-size:15px;display:block}.lm-score .mus small{font-size:10px;color:#ffb36b;display:block;margin-bottom:8px}
.lm-score .lbar{height:4px;border-radius:9px;background:#ffffff26;width:150px}.lm-score .lbar i{display:block;height:100%;width:34%;border-radius:9px;background:#ff8a3d}.lm-score .tm{display:flex;justify-content:space-between;width:150px;font-size:8px;color:#ffffffaa;margin-top:3px}
.lm-score .meta{display:grid;grid-template-columns:1fr auto;gap:0 8px;padding:10px 12px 12px}
.lm-score .meta b{font-size:13px}.lm-score .meta em{font-size:9.5px;font-weight:600;padding:2px 9px;border-radius:99px;background:#dff1ff;color:#1673b3;align-self:center}
.lm-score .meta small{grid-column:1/3;color:#6a7a96;font-size:10.5px;margin:1px 0 8px}
.lm-score .lbtn{grid-column:1/3;justify-self:start;background:#12a5e8;color:#fff;border-radius:9px;padding:6px 12px;font-weight:600;font-size:11px}
.lm-score .fm{display:flex;align-items:center;gap:10px;margin-top:18px;background:#fff;border:1px solid #dfe6f2;border-radius:12px;padding:8px 12px}.lm-score .fm span{font-weight:700;color:#d9570a}.lm-score .fm .in{flex:1;border:1px solid #dfe6f2;border-radius:8px;padding:6px 10px;color:#3a4a66;background:#f7f9fd}
.lm-score .fm button{background:#ff6a13;color:#fff;border:0;border-radius:9px;padding:7px 12px;font-weight:700;transition:transform .2s,background-color .2s}.lm-score .fm button.sent{background:#1faa6b;transform:scale(1.05)}

/* ── 3 · Threat Watch ── */
.lm-threat{background:radial-gradient(900px 400px at 20% 0,#10204a,#060a18 70%);flex-direction:column;padding:14px 22px;color:#dbe4ff}
.lm-threat header{display:flex;align-items:center;gap:14px}.lm-threat .ltl b{font:800 12px var(--mono);color:#19b7f0;letter-spacing:.1em;display:block}.lm-threat .ltl small{font:10px var(--mono);color:#7d8bb5}
.lm-threat .up{margin-left:auto;font:10px var(--mono);color:#7d8bb5}.lm-threat .lpill{padding:5px 12px;border-radius:99px;border:1px solid #2a3566;font-size:10.5px;color:#cfd8ff}
.lm-threat .days{display:flex;gap:7px;margin:12px 0}.lm-threat .days i{padding:7px 13px;border-radius:12px;border:1px solid #2a3566;color:#9fb0e6;font-size:11px;background:#0a1130;white-space:nowrap}
.lm-threat .days i.on{border-color:#19b7f0;color:#19b7f0;background:#0c2a4a}.lm-threat .days em{background:#c9304f;color:#fff;border-radius:99px;padding:0 6px;font-size:9px;font-weight:700;margin-left:3px}.lm-threat .days u{display:inline-block;width:6px;height:6px;border-radius:50%;background:#f0a020;margin-left:3px}
.lm-threat .cols{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;flex:1;min-height:0}
.lm-threat .lterm{border:1px solid #4a1f55;border-radius:14px;background:#0b0d22;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 0 0 1px #c9304f33}
.lm-threat .lterm .lbar{display:flex;gap:8px;align-items:center;background:#161a3a;padding:8px 12px;font:10.5px var(--mono);color:#9fb0e6}.lm-threat .lterm .lbar span{flex:1}
.lm-threat .body{padding:12px 16px}.lm-threat code{font:10.5px var(--mono);color:#b4c2f0;display:block;margin-bottom:12px}.lm-threat .cur{display:inline-block;width:6px;height:11px;background:#19b7f0;margin-left:3px;vertical-align:-2px;animation:lmBlink 1s steps(2) infinite}
.lm-threat .body>small{font:600 9px var(--mono);letter-spacing:.1em;color:#9fb0e6;display:block}
.lm-threat h5{font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px;margin:4px 0 6px;color:#fff}.lm-threat .ldot{width:12px;height:12px;border-radius:50%;background:#ff4466;box-shadow:0 0 12px #ff4466;animation:lmPulse 1.6s infinite;flex:none}
.lm-threat .b{color:#35b6ff;font-size:11.5px}.lm-threat .r{color:#ff6b86;font-size:11.5px;padding-bottom:10px;border-bottom:1px solid #1f2652;margin-bottom:10px}
.lm-threat li{display:flex;gap:9px;align-items:flex-start;padding:4px 0;font-size:12px;color:#e6ecff}.lm-threat li i{width:6px;height:6px;border-radius:50%;background:#ff4466;margin-top:6px;flex:none}
.lm-threat.anim li:not(.in){opacity:0;transform:translateX(-8px)}.lm-threat li{transition:opacity .5s,transform .5s}
.lm-threat .more{color:#7d8bb5;margin:4px 0 0 15px;display:block}
.lm-threat .side{min-width:0;overflow:hidden}.lm-threat .watch{border:1px solid #2a3566;border-radius:14px;background:#0a1130;padding:10px 12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.lm-threat .watch span{color:#9fb0e6;font-size:11px;margin-right:4px}.lm-threat .watch b{font-weight:500;font-size:10px;padding:3px 9px;border-radius:99px;background:#e9edff;color:#10204a}
.lm-threat h6{font:600 9.5px var(--mono);letter-spacing:.08em;color:#9fb0e6;margin:12px 0 7px}
.lm-threat .sup{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lm-threat .sup div{position:relative;border:1px solid #2a3566;border-radius:12px;background:#0a1130;padding:9px 12px 9px 26px}
.lm-threat .sup i{position:absolute;left:11px;top:13px;width:8px;height:8px;border-radius:50%;background:#ff4466}.lm-threat .sup i.a{background:#f0a020}.lm-threat .sup i.blink{animation:lmPulse .9s}
.lm-threat .sup b{font-size:12px;display:block}.lm-threat .sup small{color:#ff8a9c;font-size:9.5px}

/* ── 4 · Smart home ── */
.lm-home{background:#111214;flex-direction:column;color:#e1e3e8}
.lm-home header{display:flex;align-items:center;gap:22px;padding:0 22px;height:50px;background:#03a9f4;color:#fff}.lm-home header b{font-size:17px}.lm-home nav{display:flex;gap:6px}.lm-home nav i{padding:6px 12px;border-radius:99px;font-size:12px;opacity:.85}.lm-home nav i.on{background:#ffffff30;opacity:1}.lm-home .who{margin-left:auto;font-size:12px}
.lm-home .grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;gap:14px;padding:18px 22px 6px;flex:1;min-height:0}
.lm-home .tile{position:relative;background:#1c1d21;border-radius:18px;padding:14px 16px;border:1px solid #2a2b31;overflow:hidden;display:flex;flex-direction:column;gap:3px;transition:background-color .4s,border-color .4s}
.lm-home .tile small{font-size:9.5px;letter-spacing:.1em;color:#8b909c}.lm-home .tile>b{font-size:15px;font-weight:600}
.lm-home .light{cursor:pointer}.lm-home .light.on{background:linear-gradient(160deg,#3a3318,#1c1d21 70%);border-color:#6b5a1a}
.lm-home .bulb{width:46px;height:46px;border-radius:50%;margin:8px 0;background:#2a2b31;transition:background-color .4s,box-shadow .4s}.lm-home .light.on .bulb{background:#ffd25a;box-shadow:0 0 28px 6px #ffc83a88}
.lm-home .tg{position:absolute;right:14px;top:14px;width:36px;height:20px;border-radius:99px;background:#3a3b42;transition:background-color .3s}.lm-home .tg i{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .3s}.lm-home .light.on .tg{background:#03a9f4}.lm-home .light.on .tg i{transform:translateX(16px)}
.lm-home .sl{height:6px;border-radius:9px;background:#2a2b31;margin-top:auto}.lm-home .sl i{display:block;height:100%;border-radius:9px;background:#ffc83a;transition:width .5s}
.lm-home .dial{position:relative;margin:4px auto 0;width:150px}.lm-home .dial svg{width:100%;display:block}.lm-home .dial path{fill:none;stroke-width:7;stroke-linecap:round}.lm-home .trk{stroke:#2a2b31}.lm-home .val{stroke:#ff8a3d;stroke-dasharray:100;stroke-dashoffset:34}.lm-home .dial strong{position:absolute;left:0;right:0;bottom:-2px;text-align:center;font-size:26px;font-weight:700}
.lm-home .lock .lk{font-size:40px;margin:10px 0 4px;transition:transform .3s}
.lm-home .energy b{font-size:22px}.lm-home .energy u{text-decoration:none}.lm-home .energy svg{width:100%;height:62px;margin-top:auto}.lm-home .area{fill:#03a9f422}.lm-home .line{fill:none;stroke:#03a9f4;stroke-width:2}
.lm-home .scenes{gap:7px}.lm-home .scenes button{background:#26272d;color:#e1e3e8;border:1px solid #34353c;border-radius:12px;padding:9px 12px;text-align:left;transition:background-color .25s,border-color .25s}.lm-home .scenes button.on{background:#0a3a55;border-color:#03a9f4}
.lm-home .hint{text-align:center;color:#6f7480;font-size:11px;padding:2px 0 10px}

/* ── 5 · Voice dialler ── */
.lm-voice{background:radial-gradient(900px 500px at 70% 0,#10285a,#070d20 70%);align-items:center;justify-content:center;gap:10px;padding:0 26px}
.lm-voice .web{width:330px;background:#f6f8fc;border-radius:12px;overflow:hidden;color:#16233f;box-shadow:0 24px 50px -20px #000a;flex:none}
.lm-voice .wb{display:flex;align-items:center;gap:5px;background:#dde3ef;padding:8px 10px}.lm-voice .wb i{width:8px;height:8px;border-radius:50%;background:#aab4c8}.lm-voice .wb span{margin-left:8px;flex:1;background:#fff;border-radius:99px;padding:3px 10px;font-size:10px;color:#5a6a86}
.lm-voice .wp{padding:18px 18px 16px}.lm-voice .wp small{font-size:9px;letter-spacing:.12em;color:#7d8aa5}.lm-voice .wp h5{font-size:22px;font-weight:700;margin:2px 0}.lm-voice .wp p{color:#5a6a86;font-size:11px}
.lm-voice .ph{display:flex;align-items:center;justify-content:space-between;margin:16px 0;background:#fff;border:1px solid #dbe2ef;border-radius:12px;padding:10px 12px}.lm-voice .ph span{font:700 15px var(--mono)}
.lm-voice .ph button{background:#1faa6b;color:#fff;border:0;border-radius:9px;padding:8px 16px;font-weight:700;transition:transform .2s,box-shadow .2s}.lm-voice .ph button.press{transform:scale(.93);box-shadow:0 0 0 6px #1faa6b44}
.lm-voice .wp li{padding:7px 0;border-top:1px solid #e3e8f2;color:#4a5a78;font-size:11px}.lm-voice .wp li b{color:#16233f;margin-right:6px}
.lm-voice .link{display:flex;flex-direction:column;align-items:center;gap:4px;width:66px;flex:none;color:#5be0c0}.lm-voice .link span{font:600 9px var(--mono);letter-spacing:.08em;text-transform:uppercase}.lm-voice .link svg{width:62px;height:16px;stroke:#5be0c0;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4 5;animation:lmDash 1s linear infinite}
@keyframes lmDash{to{stroke-dashoffset:-18}}
.lm-voice .win{width:380px;background:#f3f4f6;border-radius:10px;overflow:hidden;color:#1a2233;box-shadow:0 24px 50px -20px #000a;border:1px solid #cbd2de;transition:transform .35s,box-shadow .35s;flex:none}.lm-voice .win.pop{transform:scale(1.025);box-shadow:0 0 0 2px #5be0c0,0 30px 60px -20px #000c}
.lm-voice .ltt{display:flex;align-items:center;gap:7px;padding:7px 10px;background:#fff;font-size:11px}.lm-voice .ltt i{color:#1faa6b}.lm-voice .ltt span{margin-left:auto;color:#667}
.lm-voice .dh{background:#0b2247;color:#fff;padding:10px 14px;display:grid;grid-template-columns:1fr auto;gap:0 8px}.lm-voice .dh b{font-size:12px}.lm-voice .dh small{color:#9fb8e6;font-size:9.5px}.lm-voice .dh u{grid-row:1/3;grid-column:2;align-self:center;border:1px solid #fff9;padding:4px 10px;font-size:10px}
.lm-voice .body{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:10px}
.lm-voice .disp{height:32px;border:1px solid #444;background:#fff;padding:5px 8px;font:600 14px var(--mono)}
.lm-voice .keys{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:5px}.lm-voice .keys i{background:#fff;border:1px solid #dde1e8;display:grid;place-items:center;height:28px;font-size:13px;color:#8a1c1c}.lm-voice .keys i.cl{font-size:9.5px;color:#222}.lm-voice .keys i.go{background:#2e8b57;color:#fff;font-weight:700;font-size:11px;transition:background-color .3s}.lm-voice .keys i.go.on{background:#c0392b}
.lm-voice .ft{display:flex;border-bottom:1px solid #cbd2de}.lm-voice .ft i{padding:5px 8px;font-size:9.5px;color:#6a7385}.lm-voice .ft i.on{background:#fff;color:#1a2233;border-bottom:2px solid #2e8b57;font-weight:600}
.lm-voice .fg{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.lm-voice .fg div{background:#fff;border-radius:7px;padding:6px 8px;box-shadow:0 1px 3px #0001}.lm-voice .fg b{font-size:11px;display:block}.lm-voice .fg small{color:#7a8396;font-size:10px}
.lm-voice .status{font-size:10.5px;color:#6a7385;padding-top:4px;border-top:1px solid #dde1e8}.lm-voice .status.dial{color:#b9770e;font-weight:600}.lm-voice .status.live{color:#1a8a4f;font-weight:700}

/* ── 6 · Cloud Drive Mapping ── */
.lm-map{background:radial-gradient(900px 500px at 70% 30%,#0e3566,#071a38 70%);position:absolute}
.lm-map .grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff0d 1px,transparent 1px),linear-gradient(90deg,#ffffff0d 1px,transparent 1px);background-size:34px 34px}
.lm-map header{position:absolute;left:24px;top:18px;display:flex;align-items:center;gap:10px}.lm-map header i{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#1e6bf2,#12b3f5);display:grid;place-items:center;font-weight:800;color:#fff}.lm-map header b{font-size:16px;color:#fff}.lm-map header span{color:#8fb2e8;font-size:12px;margin-left:6px}
.lm-map .wires{position:absolute;inset:0;width:100%;height:100%}.lm-map .wires path{stroke:#6fb4ff88;stroke-width:1.6;stroke-dasharray:5 6;animation:lmDash 1.1s linear infinite}
.lm-map .n{position:absolute;display:flex;gap:10px;align-items:center;width:230px;height:70px;padding:0 14px;border:1px solid #6fb4ff44;background:#0c2a52cc;border-radius:14px;backdrop-filter:blur(4px)}
.lm-map .n1{left:56px;top:170px}.lm-map .n2{left:56px;top:295px}
.lm-map .n i{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:#fff;font-size:16px;flex:none}.lm-map i.g{background:#2f9e5e}.lm-map i.b{background:#4a90e8}.lm-map i.y{background:#e8a020}
.lm-map .n b{display:block;color:#fff;font-size:13px}.lm-map .n small{color:#8fb2e8;font-size:11px}
.lm-map .hub{position:absolute;left:390px;top:215px;width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,#2a7bf6,#18a8f6);display:grid;place-items:center;box-shadow:0 0 0 8px #2a7bf622,0 0 40px #2a7bf6aa;animation:hubGlow 3s ease-in-out infinite}.lm-map .hub span{font:800 30px 'Space Grotesk','Inter',sans-serif;color:#fff}
@keyframes hubGlow{50%{box-shadow:0 0 0 14px #2a7bf611,0 0 60px #2a7bf6cc}}
.lm-map .pc{position:absolute;left:560px;top:118px;width:240px;padding:12px;border:1px solid #6fb4ff44;background:#0c2a52cc;border-radius:16px}.lm-map .pc small{color:#8fb2e8;font-size:11px;display:block;margin:0 0 8px 4px}
.lm-map .dv{display:flex;gap:10px;align-items:center;padding:9px 10px;margin-bottom:8px;border-radius:10px;background:#ffffff0d;opacity:.35;transform:translateX(10px);transition:opacity .5s,transform .5s,background-color .5s}.lm-map .dv.on{opacity:1;transform:none;background:#ffffff1c}
.lm-map .dv i{width:30px;height:22px;border-radius:5px;flex:none}.lm-map .dv b{color:#fff;font-size:13px;display:block}.lm-map .dv small{margin:0;color:#8fb2e8}
.lm-map .rules{position:absolute;left:560px;top:372px;width:240px;color:#cfe0ff}.lm-map .rules small{font-size:9.5px;letter-spacing:.1em;color:#6f93cc}.lm-map .rules p{font-size:11px;margin-top:4px;color:#9fbbea}.lm-map .rules b{color:#fff}
.lm-map .cap{position:absolute;left:24px;bottom:22px;width:440px;color:#a9c3ee;font-size:12px;line-height:1.5}

@media (prefers-reduced-motion:reduce){.lm *{animation:none!important;transition:none!important}.lp-mock.in{animation:none}.lm-map .dv{opacity:1;transform:none}}
