
.admin-page { background:#f3f7f6; min-height:100vh; }
.admin-shell { width:min(1160px, calc(100% - 32px)); margin:0 auto; padding:22px 0 48px; }
.admin-topbar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:28px; }
.admin-brand { text-decoration:none; color:inherit; }
.admin-brand h1 { font-size:1.25rem; margin:0; }
.admin-back { color:#315956; text-decoration:none; font-size:.92rem; font-weight:700; white-space:nowrap; }
.admin-panel { padding:clamp(18px, 3vw, 28px); margin-bottom:18px; background:#fff; border:1px solid #dce7e4; border-radius:20px; box-shadow:0 8px 25px rgba(24,57,53,.045); }
.login-panel { max-width:520px; margin:8vh auto 0; }
.admin-page h2 { margin:5px 0 9px; font-size:clamp(1.2rem, 2.7vw, 1.65rem); }
.admin-page .muted { color:#687a77; line-height:1.5; }
.admin-form { display:grid; gap:9px; margin-top:22px; }
.admin-page label { font-size:.9rem; font-weight:700; }
.admin-page input { width:100%; min-width:0; border:1px solid #cedbd8; border-radius:11px; background:#fff; color:#17332f; padding:12px 13px; font:inherit; outline:none; }
.admin-page input:focus { border-color:#39766e; box-shadow:0 0 0 3px rgba(57,118,110,.12); }
.admin-page button { font:inherit; cursor:pointer; }
.admin-page button:disabled { opacity:.55; cursor:wait; }
.admin-page .button { min-height:43px; border:0; border-radius:11px; padding:10px 16px; font-weight:750; }
.admin-page .button.primary { background:#1c4d46; color:#fff; }
.admin-page .button.secondary { background:#e8f0ee; color:#254d47; }
.admin-page .button.ghost { background:transparent; color:#506763; border:1px solid #d4e0dd; }
.admin-welcome { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin:0 0 20px; }
.admin-welcome h2 { font-size:clamp(1.5rem, 3vw, 2rem); }
.admin-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.admin-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:17px; }
.admin-section-head h2 { margin-bottom:0; }
.count-badge { background:#edf4f2; border:1px solid #dae7e3; color:#42635d; padding:7px 10px; border-radius:999px; font-size:.8rem; white-space:nowrap; font-weight:750; }
.add-device-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px; }
.form-field { display:grid; gap:8px; }
.form-hint { color:#71817e; font-size:.84rem; line-height:1.5; margin:12px 0 0; }
.admin-list { margin-top:17px; }
.admin-table-wrap { width:100%; overflow-x:auto; border:1px solid #e0e9e6; border-radius:14px; }
.admin-table { width:100%; border-collapse:collapse; font-size:.89rem; min-width:730px; }
.admin-table th, .admin-table td { text-align:left; padding:13px 14px; border-bottom:1px solid #e8eeec; vertical-align:middle; }
.admin-table th { color:#657975; background:#f7faf9; font-weight:750; font-size:.77rem; text-transform:uppercase; letter-spacing:.045em; }
.admin-table tr:last-child td { border-bottom:0; }
.admin-table td:first-child { font-weight:750; color:#193c36; }
.status-pill { display:inline-flex; align-items:center; gap:6px; background:#eef4f2; border-radius:999px; padding:5px 9px; font-size:.77rem; font-weight:750; color:#48625d; white-space:nowrap; }
.status-pill.online { background:#e0f5e9; color:#187346; }
.status-pill.offline { background:#fff0e8; color:#9b4a1a; }
.status-pill.pending { background:#edf1f0; color:#657975; }
.delete-button { background:#fff2ef; color:#a43c2f; border:1px solid #f1d8d3; border-radius:9px; padding:8px 10px; font-weight:750; white-space:nowrap; }
.delete-button:hover { background:#ffe4dd; }
.created-device { margin-top:16px; padding:16px; border:1px solid #bddfd0; background:#f3fbf6; border-radius:14px; }
.created-title { font-weight:800; color:#1a6b49; margin-bottom:10px; }
.created-row { display:grid; grid-template-columns:minmax(120px, 1fr) minmax(0, 2fr) auto; align-items:center; gap:10px; padding:8px 0; border-top:1px solid #dbece2; }
.created-row span { color:#61756c; font-size:.84rem; }
.created-row strong { overflow-wrap:anywhere; font-family:ui-monospace, SFMono-Regular, Consolas, monospace; }
.secret-value { user-select:all; }
.copy-button { background:#e4f2e9; color:#23563d; border:1px solid #d1e6d9; border-radius:8px; padding:7px 9px; font-size:.8rem; font-weight:750; }
.created-device details { margin-top:11px; }
.created-device summary { cursor:pointer; font-size:.86rem; font-weight:700; color:#3e6252; }
.admin-error { margin:2px 0 0; color:#ab3427; font-size:.87rem; }
.admin-footnote { color:#7a8b87; font-size:.81rem; text-align:center; padding:12px; }
.admin-toast { position:fixed; left:50%; bottom:22px; transform:translate(-50%, 20px); opacity:0; pointer-events:none; background:#183d37; color:#fff; padding:12px 16px; border-radius:12px; box-shadow:0 10px 24px rgba(0,0,0,.18); transition:opacity .18s, transform .18s; max-width:calc(100% - 32px); z-index:10; }
.admin-toast.show { opacity:1; transform:translate(-50%,0); }
@media (max-width:650px) { .admin-shell { width:min(100% - 20px, 1160px); padding-top:14px; } .admin-welcome { flex-direction:column; } .admin-actions { justify-content:flex-start; } .admin-section-head { align-items:flex-start; } .add-device-form { grid-template-columns:1fr; } .add-device-form .button { width:100%; } .created-row { grid-template-columns:1fr auto; } .created-row span { grid-column:1 / -1; } .admin-table { min-width:650px; } }

.admin-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0 0 18px; }
.admin-stat { display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:18px 20px; background:linear-gradient(145deg,#ffffff,#f7faf9); border:1px solid #dce7e4; border-radius:17px; box-shadow:0 6px 20px rgba(24,57,53,.035); }
.admin-stat span { color:#667a75; font-size:.82rem; font-weight:750; }
.admin-stat strong { color:#1c4d46; font-size:2rem; line-height:1.1; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
.admin-stat small { color:#879690; font-size:.76rem; }
.admin-filter { display:grid; grid-template-columns:auto minmax(0, 340px); align-items:center; justify-content:space-between; gap:12px; margin-top:17px; }
.admin-filter label { color:#536b65; font-size:.82rem; }
.admin-filter input { padding:10px 12px; }
@media(max-width:650px){ .admin-stat-grid{grid-template-columns:1fr;gap:8px}.admin-stat{padding:14px 16px}.admin-stat strong{font-size:1.65rem}.admin-filter{grid-template-columns:1fr;gap:7px} }
