/* Admin prototype layer. The current demo state is not an authorization boundary. */
.admin-login-page{padding-bottom:58px}
.admin-auth-icon{background:var(--green);color:#fff}
.admin-demo-note{padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);background:#f2f0eb;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2);align-items:start}
.admin-demo-note>span{padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);background:var(--green-tint);color:var(--green);font-size:var(--font-xs);font-weight:700;line-height:var(--line-tight);letter-spacing:.05em;text-transform:uppercase}
.admin-demo-note p{margin:0;color:var(--muted);font-size:var(--font-xs);line-height:var(--line-normal)}
.admin-login-page .auth-field input[readonly]{background:#f8f7f3;color:#56615c;cursor:default}
.admin-page{padding-top:var(--space-5);padding-bottom:58px}
.admin-hero{position:relative;padding:var(--space-5);display:grid;grid-template-columns:58px minmax(0,1fr);gap:var(--space-4);align-items:start}
.admin-hero__icon{width:var(--icon-box-xl);height:var(--icon-box-xl);border-radius:var(--radius-md);display:grid;place-items:center;background:var(--green);color:#fff;font-size:var(--font-lg)}
.admin-hero__copy small{display:block;margin:2px 0 var(--space-1);color:var(--green);font-size:var(--font-xs);font-weight:700;letter-spacing:.15em}
.admin-hero__copy h1{margin:0;font-family:var(--font-heading-family);font-size:var(--font-xl);font-weight:500;line-height:var(--line-tight);letter-spacing:-.03em}
.admin-hero__copy p{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--font-xs);line-height:var(--line-normal)}
.admin-status-chip{grid-column:2;justify-self:start;margin-top:-2px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);background:var(--green-tint);color:var(--green);font-size:var(--font-xs);font-weight:700;line-height:var(--line-tight);letter-spacing:.04em;text-transform:uppercase}
.admin-section{margin-top:var(--space-5)}
.admin-section>h2{margin:0 var(--space-1) var(--space-3);font-family:var(--font-heading-family);font-size:var(--font-lg);font-weight:500;line-height:var(--line-tight)}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
.admin-card{min-width:0;min-height:168px;padding:var(--space-4);display:flex;flex-direction:column;align-items:flex-start}
.admin-card__icon{width:var(--icon-box-md);height:var(--icon-box-md);border-radius:var(--radius-md);display:grid;place-items:center;background:var(--surface-soft);color:var(--green);font-size:var(--font-md)}
.admin-card__copy{margin-top:var(--space-3)}
.admin-card__copy strong{display:block;font-family:var(--font-heading-family);font-size:var(--font-lg);font-weight:500;line-height:var(--line-tight)}
.admin-card__copy p{margin:var(--space-1) 0 0;color:var(--muted);font-size:var(--font-xs);line-height:var(--line-normal)}
.admin-card>small{margin-top:auto;padding-top:var(--space-3);color:#8d938f;font-size:var(--font-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.admin-logout{width:100%;min-height:var(--icon-box-lg);margin-top:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;color:#69493d;display:flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-size:var(--font-xs);font-weight:700;cursor:pointer}
.admin-logout:active{background:#f5f1ed}
@media(max-width:390px){.admin-grid{grid-template-columns:1fr}.admin-card{min-height:128px}.admin-hero__copy h1{font-size:var(--font-xl)}}

.admin-card--link{color:var(--ink);text-decoration:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.admin-card--link:active{transform:scale(.985)}
.admin-card__meta{display:flex;align-items:center;gap:var(--space-1);color:var(--green)!important}
.admin-card__meta .app-icon{font-size:var(--font-xs)}

.admin-ha-page{padding-top:var(--space-5)}
.admin-ha-hero{padding:var(--space-5);display:grid;grid-template-columns:58px minmax(0,1fr);gap:var(--space-4);align-items:start}
.admin-ha-hero__icon{width:var(--icon-box-xl);height:var(--icon-box-xl);border-radius:var(--radius-md);display:grid;place-items:center;background:var(--green);color:#fff;font-size:var(--font-lg)}
.admin-ha-hero__copy small{display:block;margin:2px 0 var(--space-1);color:var(--green);font-size:var(--font-xs);font-weight:700;letter-spacing:.15em}
.admin-ha-hero__copy h1{margin:0;font-family:var(--font-heading-family);font-size:var(--font-xl);font-weight:500;line-height:var(--line-tight);letter-spacing:-.03em}
.admin-ha-hero__copy p{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--font-xs);line-height:var(--line-normal)}
.admin-ha-hero>.admin-status-chip{grid-column:2;justify-self:start}

.admin-ha-settings{padding:var(--space-1) var(--space-4)}
.admin-ha-setting{min-height:68px;display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--space-3);align-items:center}
.admin-ha-setting+.admin-ha-setting{border-top:1px solid var(--line)}
.admin-ha-setting>.app-icon{width:var(--icon-box-sm);height:var(--icon-box-sm);border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--surface-soft);color:var(--green);font-size:var(--font-xs)}
.admin-ha-setting small{display:block;color:var(--muted);font-size:var(--font-xs);font-weight:600}
.admin-ha-setting strong{display:block;margin-top:2px;font-size:var(--font-xs);line-height:var(--line-normal);overflow-wrap:anywhere}

.admin-ha-connection{padding:var(--space-4)}
.admin-ha-connection>p,.admin-section__intro{margin:0 0 var(--space-3);color:var(--muted)}
.admin-ha-status{min-height:64px;padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);background:var(--surface-muted);display:grid;grid-template-columns:12px minmax(0,1fr);gap:var(--space-3);align-items:center}
.admin-ha-status__dot{width:10px;height:10px;border-radius:var(--radius-round);background:#a0a49f;box-shadow:0 0 0 4px rgba(160,164,159,.12)}
.admin-ha-status[data-state="online"] .admin-ha-status__dot{background:#3e765a;box-shadow:0 0 0 4px rgba(62,118,90,.12)}
.admin-ha-status[data-state="unauthorized"] .admin-ha-status__dot,.admin-ha-status[data-state="http_error"] .admin-ha-status__dot{background:#b87648;box-shadow:0 0 0 4px rgba(184,118,72,.12)}
.admin-ha-status[data-state="offline"] .admin-ha-status__dot,.admin-ha-status[data-state="invalid_configuration"] .admin-ha-status__dot{background:#9a5d45;box-shadow:0 0 0 4px rgba(154,93,69,.12)}
.admin-ha-status small{display:block;color:var(--muted);font-size:var(--font-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.admin-ha-status strong{display:block;margin-top:2px;font-size:var(--font-sm)}
.admin-ha-status span:last-child{display:block;margin-top:2px;color:var(--muted);font-size:var(--font-xs)}
.admin-ha-test{width:100%;margin-top:var(--space-3)}
.admin-ha-test[disabled]{opacity:.62;cursor:wait}

.admin-ha-mappings{display:grid;gap:var(--space-2)}
.admin-ha-mapping{min-height:92px;padding:var(--space-3);display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:var(--space-3);align-items:center}
.admin-ha-mapping__icon{width:var(--icon-box-md);height:var(--icon-box-md);border-radius:var(--radius-md);display:grid;place-items:center;background:var(--surface-soft);color:var(--green);font-size:var(--font-md)}
.admin-ha-mapping__copy strong{display:block;font-size:var(--font-sm)}
.admin-ha-mapping__copy>span{display:block;margin-top:2px;color:var(--muted);font-size:var(--font-xs);line-height:var(--line-normal)}
.admin-ha-mapping__copy code{display:block;margin-top:var(--space-1);color:#68716c;font-size:var(--font-xs);overflow-wrap:anywhere}
.admin-ha-mapping__state{padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-xs);font-weight:700;white-space:nowrap}
.admin-ha-mapping__state.is-mapped{background:var(--green-tint);color:var(--green)}
.admin-ha-mapping__state.is-unmapped{background:#f1eee8;color:#8a8176}
.admin-ha-security{margin-top:var(--space-5)}
.admin-ha-security>span{width:28px;height:28px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--green-tint);color:var(--green)}
.admin-ha-security p strong{display:block;margin-bottom:3px;color:var(--ink)}
@media(max-width:390px){.admin-ha-mapping{grid-template-columns:40px minmax(0,1fr)}.admin-ha-mapping__state{grid-column:2;justify-self:start}.admin-ha-hero__copy h1{font-size:var(--font-xl)}}

.admin-camera-page{padding-top:var(--space-5);padding-bottom:58px}
.admin-camera-grid{margin-top:var(--space-3);display:grid;gap:var(--space-3)}
.admin-camera-card{padding:0;overflow:hidden}
.admin-camera-frame{position:relative;aspect-ratio:16/9;background:#161918;overflow:hidden}
.admin-camera-frame img{width:100%;height:100%;display:block;object-fit:cover}
.admin-camera-meta{padding:var(--space-3) var(--space-3) var(--space-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.admin-camera-meta strong{display:block;font-size:var(--font-sm)}
.admin-camera-meta code{display:block;margin-top:3px;color:var(--muted);font-size:var(--font-xs);overflow-wrap:anywhere}
.admin-camera-state{flex:0 0 auto;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);background:var(--green-tint);color:var(--green);font-size:var(--font-xs);font-weight:700}
.admin-camera-card[data-camera-state="unavailable"] .admin-camera-state{background:#f1eee8;color:#8a8176}
.admin-camera-empty{margin-top:var(--space-3);padding:var(--space-5);display:grid;place-items:center;text-align:center;color:var(--muted)}
.admin-camera-empty>.app-icon{font-size:var(--font-lg);color:var(--green)}
.admin-camera-empty p{margin:var(--space-2) 0 0}
@media(min-width:760px){.admin-camera-grid{grid-template-columns:1fr 1fr}}

.admin-ha-mapping .js-camera-provision{grid-column:2/-1;width:100%;margin-top:2px}
.admin-camera-provision-feedback{grid-column:2/-1;margin:0;color:var(--muted);font-size:var(--font-xs);line-height:var(--line-normal)}

.admin-camera-config-debug{display:grid;gap:var(--space-2)}
.admin-camera-config-debug code{white-space:normal;word-break:break-word;font-size:var(--font-xs);line-height:var(--line-normal)}
