@import"https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Noto+Sans+KR:wght@400;500;600;700&display=swap";:root{font-family:Manrope,Noto Sans KR,sans-serif;color:#eaf2fb;background:#07111f;font-synthesis:none;--panel: rgba(17, 31, 49, .82);--panel-strong: #12243a;--line: rgba(173, 204, 236, .12);--muted: #8da3ba;--blue: #59a8ff;--blue-strong: #1885ff;--green: #62dfa8}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 90% 0,#15375a 0,transparent 29%),radial-gradient(circle at 0 70%,#0d2c39 0,transparent 32%),#07111f}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.38}.loading{min-height:100vh;display:grid;place-items:center;color:var(--muted);letter-spacing:.12em}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,440px);padding:42px;border:1px solid var(--line);border-radius:28px;background:#0c1929e0;box-shadow:0 34px 90px #00000059;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.brand-mark{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;background:linear-gradient(145deg,#67b6ff,#1677ff);font-size:32px;box-shadow:0 15px 40px #1885ff47;margin-bottom:26px}.login-card h1{font-size:clamp(32px,6vw,45px);line-height:1.17;margin:7px 0 15px;letter-spacing:-.045em}.login-card form{display:grid;gap:10px;margin-top:32px}.login-card label{color:#b9c9da;font-size:13px;font-weight:700}.login-card input{width:100%;border:1px solid var(--line);color:#fff;background:#091729;border-radius:13px;padding:15px 16px;outline:none}.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #59a8ff1f}.form-error{color:#ff8d99;font-size:13px;margin:0}.app-shell{width:min(1180px,calc(100% - 36px));margin:auto;padding-bottom:80px}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;font-weight:800}.brand span{width:31px;height:31px;display:grid;place-items:center;color:#fff;border-radius:9px;background:var(--blue-strong)}.text-button{color:var(--muted);background:transparent;border:0;padding:10px}.hero{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:64px 0 38px}.hero h1{font-size:clamp(38px,7vw,64px);margin:6px 0 10px;letter-spacing:-.055em}.eyebrow{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.18em;margin:0}.muted{color:var(--muted);line-height:1.65}.connection{display:flex;align-items:center;gap:13px;min-width:205px;padding:15px 18px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.connection .dot{width:10px;height:10px;border-radius:50%;background:#607083;box-shadow:0 0 0 5px #6070831f}.connection.online .dot{background:var(--green);box-shadow:0 0 0 5px #62dfa81f}.connection strong,.connection small{display:block}.connection strong{font-size:13px}.connection small{color:var(--muted);font-size:11px;margin-top:3px}.group-control{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 30px;border:1px solid rgba(87,169,255,.22);border-radius:23px;background:linear-gradient(110deg,#153d62e6,#0e1f33e0);box-shadow:0 24px 80px #0003}.group-control h2,.section-heading h2{margin:5px 0 0;letter-spacing:-.03em}.group-buttons{display:flex;gap:10px}.primary,.secondary{border-radius:12px;padding:13px 21px;border:1px solid transparent;color:#fff;font-weight:800}.primary{background:linear-gradient(145deg,#45a3ff,#1479ef);box-shadow:0 12px 30px #1885ff38}.secondary{background:#ffffff0d;border-color:#ffffff24}.full{width:100%;margin-top:8px}.toast{margin:16px 0;padding:13px 17px;border:1px solid rgba(98,223,168,.2);border-radius:12px;color:var(--green);background:#62dfa80f}.toast.error{color:#ff9ea8;border-color:#ff647833;background:#ff64780f}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:46px 0 18px}.section-heading>span{color:var(--muted);font-size:13px}.unit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.unit-card{min-height:270px;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:21px;transition:transform .2s,border-color .2s;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.unit-card:hover{transform:translateY(-2px);border-color:#59a8ff40}.unit-card.active{background:linear-gradient(150deg,#153a5beb,#112236e6);border-color:#59a8ff52}.unit-card header{display:flex;justify-content:space-between;gap:12px}.unit-card h3{margin:3px 0 0;font-size:19px}.unit-index{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.12em;margin:0}.state-pill{align-self:start;padding:6px 9px;border-radius:999px;color:#8ea2b7;background:#8da3ba1a;font-size:10px;font-weight:800}.state-pill.on{color:#7bc2ff;background:#59a8ff1f}.temperature{min-height:105px;display:flex;align-items:baseline;gap:9px;padding-top:31px}.temperature strong{font-size:44px;letter-spacing:-.05em}.temperature span{color:var(--muted);font-size:11px}.mapping-note{color:#d4a95f;min-height:17px;margin:0 0 11px;font-size:11px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:7px}.segmented button{border:1px solid var(--line);border-radius:10px;padding:10px;color:#aabacd;background:#ffffff08;font-weight:700}.segmented button.on{color:#cfe9ff;background:#3290ef1f;border-color:#59a8ff33}.activity{margin-top:52px;padding:2px 24px 16px;background:#0c1929b8;border:1px solid var(--line);border-radius:20px}.activity .section-heading{margin-top:24px}.activity-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0;border-top:1px solid var(--line)}.activity-row strong,.activity-row small{display:block}.activity-row strong{font-size:13px}.activity-row small,.empty{color:var(--muted);font-size:11px;margin-top:4px}.command-status{color:#a8bbcf;padding:6px 9px;border-radius:8px;background:#ffffff0d;font-size:10px;text-transform:uppercase}.command-status.confirmed{color:var(--green);background:#62dfa814}.command-status.failed,.command-status.timeout{color:#ff9ea8;background:#ff647814}@media(max-width:820px){.unit-grid{grid-template-columns:repeat(2,1fr)}.hero{align-items:start;flex-direction:column}.connection{width:100%}}@media(max-width:560px){.app-shell{width:min(100% - 24px,1180px)}.topbar{height:68px}.hero{padding-top:40px}.group-control{align-items:stretch;flex-direction:column;padding:22px}.group-buttons{display:grid;grid-template-columns:1fr 1fr}.unit-grid{grid-template-columns:1fr}.unit-card{min-height:245px}.login-card{padding:30px 24px}}
