:root { --fg:#1d2433; --muted:#5b6475; --bg:#f6f7f9; --card:#fff; --line:#e3e6ec; --accent:#0b5cad; --ok:#1d7a3a; --warn:#a15c00; --bad:#b42318; }
* { box-sizing: border-box; }
body { margin:0; font-family: "Segoe UI", system-ui, sans-serif; color:var(--fg); background:var(--bg); }
a { color:var(--accent); }
.inline { display:inline; margin:0; }
button:not([class*="mud-"]) { font:inherit; padding:.4rem .9rem; border:1px solid var(--accent); background:var(--accent); color:#fff; border-radius:6px; cursor:pointer; }
button:not([class*="mud-"])[disabled] { opacity:.5; cursor:default; }
button.link { background:none; border:none; color:var(--accent); padding:0; }
input:not([class*="mud-"]), select:not([class*="mud-"]) { font:inherit; padding:.4rem .6rem; border:1px solid var(--line); border-radius:6px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:1rem 1.25rem; }
.row { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem; }
.table { width:100%; border-collapse:collapse; background:var(--card); }
.table th, .table td { padding:.5rem .6rem; border-bottom:1px solid var(--line); text-align:left; }
.table th { color:var(--muted); font-weight:600; }
.num { text-align:right !important; font-variant-numeric: tabular-nums; }
.grid { display:grid; grid-template-columns: max-content 1fr; gap:.4rem 1rem; }
.grid dt { color:var(--muted); }
.grid dd { margin:0; }
.pager { display:flex; gap:1rem; align-items:center; margin-top:1rem; }
.alert { color:var(--bad); }
.badge { font-size:.8rem; padding:.15rem .5rem; border-radius:999px; border:1px solid currentColor; }
.badge.ok { color:var(--ok); }
.badge.warn { color:var(--warn); }
.footer { text-align:center; color:var(--muted); font-size:.85rem; padding:2rem 0; }
#blazor-error-ui { display:none; position:fixed; bottom:0; left:0; right:0; padding:.75rem 1.25rem; background:#fff4e5; border-top:1px solid var(--warn); }
#blazor-error-ui .dismiss { float:right; cursor:pointer; }
/* Programmatic focus after navigation (FocusOnNavigate) - no visible box on the heading. */
h1:focus { outline:none; }

/* --- Sign-in page --------------------------------------------------------------------------- */
.public-main { min-height:calc(100vh - 5rem); display:flex; align-items:center; justify-content:center; padding:2rem 1rem;
  background:radial-gradient(1200px 500px at 50% -10%, #dce8f6 0%, var(--bg) 60%); }
.signin-card { width:100%; max-width:420px; background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:2rem 2rem 1.5rem; box-shadow:0 1px 2px rgba(16,24,40,.04), 0 12px 32px rgba(16,24,40,.08); }
.signin-brand { display:flex; align-items:center; gap:.75rem; margin-bottom:1.75rem; }
.signin-logo { width:40px; height:40px; border-radius:10px; background:var(--accent); color:#fff; display:grid; place-items:center;
  font-weight:700; letter-spacing:.02em; }
.signin-product { font-weight:600; font-size:1.05rem; }
.signin-sub { color:var(--muted); font-size:.85rem; }
.signin-card h1 { font-size:1.5rem; margin:0 0 .35rem; }
.access-denied-dialog { position:relative; margin:auto; color:var(--fg); max-width:480px; }
.access-denied-dialog .signin-lead { margin-top:1rem; }
.signin-lead { color:var(--muted); margin:0 0 1.5rem; line-height:1.45; }
.signin-form { display:flex; flex-direction:column; }
.field-label { font-weight:600; font-size:.9rem; margin-bottom:.4rem; }
.select-wrap { position:relative; }
.select-wrap .select-icon { position:absolute; left:.7rem; top:50%; width:18px; height:18px; transform:translateY(-50%); fill:var(--muted); pointer-events:none; }
.select-wrap select { width:100%; appearance:none; font:inherit; font-variant-numeric:tabular-nums; padding:.65rem 2.4rem .65rem 2.4rem;
  border:1px solid #c9ced8; border-radius:8px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%235b6475' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right .6rem center / 22px;
  color:var(--fg); cursor:pointer; }
.select-wrap select:hover { border-color:#9aa3b2; }
.select-wrap select:focus-visible { outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }
.field-hint { color:var(--muted); font-size:.8rem; margin:.4rem 0 1.5rem; }
button.ms-button { display:flex; align-items:center; justify-content:center; gap:.75rem; width:100%; padding:.7rem 1rem; font-weight:600;
  border:1px solid var(--accent); background:var(--accent); color:#fff; border-radius:8px; cursor:pointer; }
button.ms-button svg { width:20px; height:20px; background:#fff; padding:2px; border-radius:3px; }
button.ms-button:hover { background:#094c8f; }
button.ms-button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.signin-note { display:flex; align-items:center; justify-content:center; gap:.4rem; color:var(--muted); font-size:.82rem;
  margin:1.25rem 0 0; padding-top:1rem; border-top:1px solid var(--line); }
.signin-note svg { width:16px; height:16px; fill:var(--ok); flex:none; }
@media (max-width:480px) { .signin-card { padding:1.5rem 1.25rem 1.25rem; } }
