:root{
  --bg:#f4f7f8;--card:#fff;--text:#102a34;--muted:#617780;--line:#d8e1e5;
  --accent:#0b4f6c;--accent2:#e6f1f5;--good:#e6f4ea;--warn:#fff4d6;--bad:#fde8e8;
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font:16px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}
button,select,input,textarea{font:inherit}.app-shell{max-width:760px;margin:0 auto;padding:18px 16px 92px}.topbar,.panel-head,.button-grid,.metric-grid,.bottom-nav{display:flex;gap:12px}
.topbar,.panel-head{align-items:center;justify-content:space-between}.topbar{margin-bottom:18px}h1,h2,h3{margin:.15rem 0}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1rem}
.eyebrow,.muted,small{color:var(--muted);font-size:.82rem}.view{display:none}.view.active{display:block}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0}
.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);margin-bottom:12px}.metric-grid.three{grid-template-columns:repeat(3,1fr)}
.metric{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;min-width:0}.metric span{display:block;color:var(--muted);font-size:.78rem}.metric strong{font-size:1.1rem}
.primary,.secondary,.text-btn{border:0;border-radius:12px;padding:12px 14px}.primary{background:var(--accent);color:white}.secondary{background:#fff;border:1px solid var(--line)}.text-btn{padding:6px 0;background:transparent;color:var(--accent)}.full{width:100%;margin:8px 0}
.list{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.list-row{width:100%;border:0;border-bottom:1px solid var(--line);padding:14px;background:#fff;display:flex;justify-content:space-between;align-items:center;text-align:left}.list-row:last-child{border-bottom:0}
.badge{background:var(--accent2);border-radius:999px;padding:5px 9px;font-size:.78rem}.badge.good{background:var(--good)}.badge.warn{background:var(--warn)}.badge.bad{background:var(--bad)}
.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.field-grid.three{grid-template-columns:repeat(3,1fr)}.field-grid.two{grid-template-columns:repeat(2,1fr)}
label{display:block;font-size:.9rem}input[type=number],input[type=email],input[type=password],textarea,select{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:11px;color:var(--text)}
.picker-stack{display:grid;gap:8px}.picker-row{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:5px 0}.picker-row:last-child{border-bottom:0}.picker-row select{margin:0}
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.check-row{margin-top:10px}.button-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:12px}
.notice{margin-top:12px;padding:12px;border-radius:12px;background:var(--good)}.hidden{display:none!important}
.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);background:rgba(255,255,255,.96);border-top:1px solid var(--line);padding:9px 12px calc(9px + env(safe-area-inset-bottom));z-index:20}
.bottom-nav button{flex:1;border:0;background:transparent;padding:10px 6px;border-radius:10px;color:var(--muted)}.bottom-nav button.active{background:var(--accent2);color:var(--accent);font-weight:600}
@media(min-width:650px){.metric-grid{grid-template-columns:repeat(4,1fr)}.check-grid{grid-template-columns:repeat(4,1fr)}}

.subhead{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.tabs-control{display:grid;grid-template-columns:auto 130px;align-items:center;justify-content:end;gap:10px}
.inline-check{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--muted);white-space:nowrap}
.inline-check input{margin:0}
.button-grid.single{grid-template-columns:1fr}
.route-actions{display:flex;align-items:center;gap:8px}
.secondary.compact{padding:9px 11px}
.exception-check{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--line)}
.exception-check:last-child{border-bottom:0}
@media(max-width:520px){
  .tabs-control{grid-template-columns:auto 110px}
  .inline-check{justify-content:flex-start}
  .route-actions{align-items:flex-end;flex-direction:column}
}

.topbar-status{display:flex;align-items:flex-end;flex-direction:column;gap:4px}
.version-label{font-size:.72rem;color:var(--muted)}

.auth-gate{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;padding:56px 16px}
.auth-panel{width:min(440px,100%);margin:0}
.auth-panel input{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:11px;color:var(--text)}
.full-width-text{width:100%;text-align:center}
body.authenticated .auth-gate{display:none}
body:not(.authenticated) .topbar,
body:not(.authenticated) .view,
body:not(.authenticated) .bottom-nav{visibility:hidden}

.auth-gate{pointer-events:auto}
.auth-panel{position:relative;z-index:101;pointer-events:auto}
.auth-panel button,.auth-panel input{pointer-events:auto}
.auth-link-button{
  width:100%;
  border:0;
  background:transparent;
  color:var(--accent);
  padding:12px 8px;
  margin-top:2px;
  text-align:center;
  cursor:pointer;
  font-weight:600;
}
.auth-link-button:hover{text-decoration:underline}

.auth-notice-error{background:var(--bad)}
