:root{color:#1d2939;background:radial-gradient(circle at 0 0,#ffb67a47,#0000 28%),linear-gradient(135deg,#fff8ef 0%,#f3f7ff 52%,#eef8f4 100%);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.loading-screen,.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card,.country-card,.modal-card,.hero,.message-banner{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffd1;border:1px solid #94a3b838;box-shadow:0 24px 80px #1118271f}.login-card{border-radius:28px;width:min(460px,100%);padding:32px}.login-card h1,.hero h1{letter-spacing:-.04em;margin:8px 0 12px;font-size:clamp(2rem,5vw,3.4rem);line-height:1}.eyebrow{color:#c2410c;text-transform:uppercase;letter-spacing:.16em;font-size:.86rem;font-weight:700}.login-form,.node-form{gap:14px;margin-top:24px;display:grid}.login-form label,.node-form label{gap:8px;display:grid}input,select{background:#ffffffe6;border:1px solid #d0d8e8;border-radius:14px;padding:12px 14px}.primary-button,.secondary-button,.danger-button,.text-button{border:0;border-radius:999px;padding:11px 18px;transition:transform .15s,opacity .15s}.primary-button:hover,.secondary-button:hover,.danger-button:hover,.text-button:hover{transform:translateY(-1px)}.primary-button{color:#fff;background:linear-gradient(135deg,#dc6803 0%,#b42318 100%)}.secondary-button{color:#344054;background:#eef2ff}.danger-button{color:#b42318;background:#fee4e2}.text-button{color:#344054;background:0 0}.app-shell{padding:28px}.hero{border-radius:32px;justify-content:space-between;align-items:flex-start;gap:18px;padding:28px;display:flex}.hero p{color:#475467;max-width:760px;margin:0}.hero-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.message-banner{border-radius:18px;margin-top:18px;padding:14px 18px}.error-banner{color:#b42318;background:#fff1f3;border-radius:14px;padding:12px 14px}.group-grid{gap:18px;margin-top:20px;display:grid}.country-card{border-radius:28px;padding:20px}.country-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.country-header h2{margin:0;font-size:1.5rem}.node-list{gap:14px;display:grid}.node-card{background:linear-gradient(135deg,#fffffff5,#f7f9fcf0);border:1px solid #d0d8e8e6;border-radius:22px;padding:18px}.node-topline{justify-content:space-between;align-items:center;gap:16px;display:flex}.node-title{gap:6px;display:grid}.node-title span{color:#667085}.badge{border-radius:999px;padding:8px 12px;font-size:.86rem;font-weight:700}.badge-online{color:#067647;background:#dcfae6}.badge-offline{color:#b42318;background:#fee4e2}.badge-warning,.badge-unknown{color:#b54708;background:#fff4cc}.meta-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0;display:grid}.meta-grid div{background:#f0f4f8cc;border-radius:16px;padding:12px}.meta-grid dt{color:#667085;margin-bottom:6px}.meta-grid dd{word-break:break-all;margin:0}.node-actions{flex-wrap:wrap;gap:10px;display:flex}.modal-backdrop{background:#0f172a75;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-card{border-radius:28px;width:min(760px,100%);padding:22px}.modal-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.modal-header h2{margin:0}.node-form{grid-template-columns:repeat(2,minmax(0,1fr))}.node-form .wide{grid-column:span 2}.modal-actions{grid-column:span 2;justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.qr-card{text-align:center;width:min(420px,100%)}.qr-image{aspect-ratio:1;object-fit:contain;background:#fff;border-radius:24px;width:min(100%,320px);padding:16px}.qr-caption{color:#475467;margin-top:14px}@media (width<=900px){.hero{flex-direction:column}.meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.app-shell{padding:16px}.hero,.country-card,.modal-card,.login-card{border-radius:22px;padding:18px}.meta-grid,.node-form{grid-template-columns:1fr}.node-form .wide,.modal-actions{grid-column:span 1}.node-topline,.country-header,.modal-header{flex-direction:column;align-items:flex-start}}
