:root{--bg:#09111f;--panel:rgba(18,30,50,.82);--line:rgba(255,255,255,.1);--text:#f5f8ff;--muted:#9cabc0;--blue:#65a8ff;--cyan:#55d6d0;--orange:#ff9d62;--purple:#ae8bff;--danger:#ff6b78;--radius:22px;color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#162743 0,#09111f 42%,#060b14 100%);color:var(--text)}a{color:inherit;text-decoration:none}.ambient{position:fixed;border-radius:50%;filter:blur(90px);opacity:.16;pointer-events:none}.ambient-one{width:420px;height:420px;background:#348cff;top:-180px;right:-100px}.ambient-two{width:360px;height:360px;background:#6b4cff;bottom:-180px;left:-120px}.topbar{height:78px;padding:0 max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(6,11,20,.62);backdrop-filter:blur(18px);position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#65a8ff,#765dff);box-shadow:0 8px 30px #397bd944}.nav{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:.92rem}.nav a:hover{color:var(--text)}.nav form{margin:0}.nav-button,.copy{border:0;background:none;color:var(--muted);cursor:pointer;font:inherit}.shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:54px 0 80px;position:relative}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 18px 50px rgba(0,0,0,.18);backdrop-filter:blur(16px)}.eyebrow{font-size:.72rem;letter-spacing:.18em;font-weight:800;color:var(--blue);margin:0 0 12px}.hero,.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:34px}.hero h1,.page-head h1,.login-copy h1{font-size:clamp(2.1rem,6vw,4.4rem);letter-spacing:-.055em;line-height:.98;margin:0 0 18px}.hero p,.page-head p,.login-copy p{color:var(--muted);font-size:1.08rem;max-width:690px;margin:0;line-height:1.65}.role,.status{padding:8px 12px;border-radius:999px;background:#65a8ff22;color:#9bc7ff;border:1px solid #65a8ff44;font-size:.78rem;font-weight:750;white-space:nowrap}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.service-grid.compact{max-width:900px}.service-card{min-height:152px;border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));transition:.22s transform,.22s border-color}.service-card:hover{transform:translateY(-3px);border-color:#ffffff3d}.service-card .icon{display:grid;place-items:center;width:52px;height:52px;border-radius:17px;background:#fff1;font-weight:900}.service-card h2{margin:0 0 6px;font-size:1.2rem}.service-card p,.wake p{margin:0;color:var(--muted)}.service-card .arrow{font-size:1.5rem;color:var(--muted)}.service-card.blue .icon{color:var(--blue)}.service-card.orange .icon{color:var(--orange)}.service-card.purple .icon{color:var(--purple)}.service-card.cyan .icon{color:var(--cyan)}.section-head{margin:46px 0 18px}.section-head h2{margin:0}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.quick{padding:20px;display:flex;flex-direction:column;gap:7px}.quick span{color:var(--muted);font-size:.9rem}.wake{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;margin-top:18px}.login-wrap{min-height:calc(100vh - 210px);display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:8vw}.login-card{padding:34px;display:grid;gap:20px}.login-card h2{font-size:2rem;margin:0}.login-copy h1{max-width:620px}.login-copy p{max-width:580px}label{display:grid;gap:8px;color:#c9d3e1;font-size:.88rem;font-weight:650}input,select,textarea{width:100%;border:1px solid var(--line);background:#091322;color:var(--text);border-radius:12px;padding:12px 13px;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #65a8ff20}.primary,.secondary,.danger{border:0;border-radius:12px;padding:12px 17px;font:inherit;font-weight:800;cursor:pointer}.primary{background:linear-gradient(135deg,#5ba2ff,#7667ff);color:white}.secondary{background:#ffffff10;color:var(--text);border:1px solid var(--line)}.danger{background:#ff6b7818;color:#ff929c;border:1px solid #ff6b7840}.hint,small{color:var(--muted);font-size:.82rem;line-height:1.5}.notice{padding:13px 16px;border-radius:13px;margin-bottom:18px;background:#65a8ff18;border:1px solid #65a8ff40}.notice.error{background:#ff6b7818;border-color:#ff6b7844;color:#ffb0b7}.notice.success{background:#51d39b18;border-color:#51d39b44;color:#9aebc7}.guest-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-card{padding:28px}.detail-card h2{margin:0 0 24px}.detail-card dl{display:grid;gap:20px;margin:0 0 24px}.detail-card dl div{padding-bottom:16px;border-bottom:1px solid var(--line)}dt{color:var(--muted);font-size:.82rem;margin-bottom:8px}dd{margin:0;display:flex;align-items:center;gap:10px;font-weight:750}.copy{margin-left:auto;color:var(--blue);font-size:.78rem}.link-button{display:block;text-align:center}.app-links{margin-top:22px;color:var(--muted)}.app-links div{display:flex;gap:12px;flex-wrap:wrap}.app-links a{color:var(--blue)}.create-box{padding:22px;margin-bottom:18px}.create-box summary{font-weight:800;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:12px;align-items:end;margin-top:18px}.list-stack{display:grid;gap:12px}.user-row{display:flex;align-items:center;gap:16px;padding:18px}.avatar{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:14px;background:#65a8ff20;color:var(--blue);font-weight:900}.user-form{display:grid;grid-template-columns:1.1fr 1.1fr .8fr 1fr auto;gap:10px;align-items:end;flex:1}.row-actions{display:flex;align-items:center;gap:8px}.status.on{color:#8fe5be;background:#51d39b18;border-color:#51d39b44}.status.off{color:#ff929c;background:#ff6b7818;border-color:#ff6b7840}.device-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px}.device-row p{margin:5px 0;color:var(--muted)}.empty{padding:30px;text-align:center;color:var(--muted)}.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-section{padding:24px;display:grid;gap:16px}.form-section h2{margin:0 0 6px}.save{grid-column:1/-1;justify-self:end;min-width:240px}
@media(max-width:850px){.topbar{height:auto;min-height:70px;padding:14px 18px;align-items:flex-start}.nav{gap:12px;overflow-x:auto;max-width:68%;padding-bottom:5px}.shell{padding-top:34px}.login-wrap{grid-template-columns:1fr}.login-copy{display:none}.service-grid,.guest-grid,.settings-layout{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr 1fr}.form-grid,.user-form{grid-template-columns:1fr 1fr}.user-row{align-items:flex-start;flex-wrap:wrap}.user-form{flex-basis:calc(100% - 62px)}.save{grid-column:auto;justify-self:stretch}.hero h1,.page-head h1{font-size:2.5rem}}
@media(max-width:560px){.nav a{display:none}.nav{max-width:none}.shell{width:min(100% - 22px,1180px)}.hero{align-items:flex-start}.service-grid,.quick-grid,.form-grid,.user-form{grid-template-columns:1fr}.service-card{min-height:126px;padding:19px}.guest-hero .role{display:none}.login-card{padding:24px}.device-row,.wake{align-items:flex-start;flex-direction:column}.row-actions{justify-content:space-between}.user-form{flex-basis:100%}}

/* User administration */
.user-list{gap:16px}.user-card{padding:22px}.user-card-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.user-identity{display:flex;align-items:center;gap:14px;min-width:0}.user-title{display:grid;gap:4px;min-width:0}.user-title strong{font-size:1.05rem;overflow:hidden;text-overflow:ellipsis}.user-title small{overflow:hidden;text-overflow:ellipsis}.user-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.user-card-actions form{margin:0}.user-card-actions button{white-space:nowrap}.danger.remove{background:#ff53631f;border-color:#ff65755c;color:#ff9aa4}.danger.remove:hover{background:#ff536334}.user-edit-form{display:grid;grid-template-columns:minmax(150px,1.15fr) minmax(150px,1.15fr) minmax(130px,.75fr) minmax(170px,1fr) auto;gap:12px;align-items:end;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.user-edit-form>button,.form-grid>button{min-height:46px}.create-box summary{padding:2px 0}.form-grid{padding-top:2px}
@media(max-width:1050px){.user-edit-form{grid-template-columns:1fr 1fr}.user-edit-form>button{grid-column:2;justify-self:end;min-width:150px}}
@media(max-width:650px){.user-card{padding:18px}.user-card-head{align-items:flex-start;flex-direction:column}.user-card-actions{width:100%;justify-content:flex-start}.user-card-actions .status{margin-right:auto}.user-edit-form{grid-template-columns:1fr}.user-edit-form>button{grid-column:auto;justify-self:stretch}.user-card-actions button{padding:10px 12px}}
