:root { --red:#d92d28; --red-soft:#fff0ef; --navy:#162334; --ink:#243243; --muted:#687586; --line:#dfe4ea; --green:#16885d; --green-soft:#eaf8f2; --canvas:#f4f6f8; font-family:"Segoe UI",Arial,sans-serif; color:var(--ink); background:var(--canvas); }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; min-width:320px; }
button,input { font:inherit; }
.admin-header { position:sticky; z-index:10; top:0; min-height:70px; display:flex; align-items:center; justify-content:space-between; padding:0 28px; color:#fff; background:linear-gradient(100deg,#b71f1c,var(--red)); box-shadow:0 3px 12px rgba(95,19,17,.2); }
.admin-brand { display:flex; align-items:center; gap:11px; color:#fff; text-decoration:none; }
.admin-brand > span { display:grid; place-items:center; width:50px; height:50px; overflow:hidden; border-radius:8px; background:#fff; }
.admin-brand img { width:50px; height:50px; object-fit:contain; transform:scale(1.55); }
.admin-brand strong,.admin-brand small { display:block; }.admin-brand strong { font-size:16px; }.admin-brand small { margin-top:2px; font-size:10px; opacity:.82; }
.admin-header-actions { display:flex; align-items:center; gap:9px; }.header-link,.header-button { padding:8px 11px; border:1px solid rgba(255,255,255,.3); border-radius:8px; color:#fff; background:rgba(255,255,255,.1); text-decoration:none; font-size:11px; cursor:pointer; }
main { max-width:1180px; margin:0 auto; padding:34px 24px 60px; }
.eyebrow { display:block; margin-bottom:6px; color:var(--red); font-size:10px; font-weight:800; letter-spacing:.1em; }
.login-panel { min-height:calc(100vh - 138px); display:grid; place-items:center; }.login-card { width:min(430px,100%); padding:34px; border:1px solid var(--line); border-radius:18px; text-align:center; background:#fff; box-shadow:0 18px 45px rgba(21,35,52,.1); }
.login-icon { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 16px; border-radius:15px; color:#fff; background:var(--green); font-size:24px; font-weight:800; }.login-card h1 { margin:0; color:var(--navy); font-size:25px; }.login-card > p { margin:8px 0 23px; color:var(--muted); font-size:12px; }
.login-card label { display:block; text-align:left; }.login-card label span { display:block; margin-bottom:6px; font-size:11px; font-weight:700; }
.login-card label + label { margin-top:11px; }
input { width:100%; min-height:43px; padding:10px 12px; border:1px solid #ccd4dd; border-radius:9px; outline:none; color:var(--navy); background:#fff; }.login-card input:focus,.search-field input:focus { border-color:#d86d68; box-shadow:0 0 0 3px rgba(217,45,40,.09); }
.primary-button,.secondary-button { min-height:40px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:8px 14px; border-radius:9px; font-size:11px; font-weight:700; cursor:pointer; }.primary-button { width:100%; border:1px solid var(--red); color:#fff; background:var(--red); }.secondary-button { border:1px solid #cdd4dc; color:#425162; background:#fff; }
.form-error { display:none; margin:8px 0 !important; color:var(--red) !important; text-align:left; font-size:10px !important; font-weight:700; }.form-error.visible { display:block; }
.dashboard-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:24px; }.dashboard-heading h1 { margin:0; color:var(--navy); font-size:31px; }.dashboard-heading p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:18px; }.stats-grid article { padding:18px 20px; border:1px solid var(--line); border-radius:14px; background:#fff; }.stats-grid span { display:block; color:var(--muted); font-size:10px; }.stats-grid strong { display:block; margin-top:5px; color:var(--navy); font-size:22px; }
.archive-card { overflow:hidden; border:1px solid var(--line); border-radius:15px; background:#fff; }.archive-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:15px; border-bottom:1px solid var(--line); }.search-field { position:relative; flex:1; max-width:520px; }.search-field > span { position:absolute; left:12px; top:10px; color:var(--muted); }.search-field input { padding-left:34px; }
.table-wrap { overflow-x:auto; }table { width:100%; border-collapse:collapse; }th,td { padding:13px 15px; border-bottom:1px solid #edf0f3; text-align:left; vertical-align:middle; }th { color:var(--muted); background:#fafbfc; font-size:9px; text-transform:uppercase; letter-spacing:.06em; }td { color:#3f4d5c; font-size:11px; }td strong { color:var(--navy); }.scenario-cell { max-width:250px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.view-button { border:1px solid #b8ddce; border-radius:7px; padding:6px 9px; color:#08704a; background:var(--green-soft); font-size:10px; font-weight:700; cursor:pointer; }
.empty-state { padding:50px 20px; text-align:center; }.empty-state > span { display:block; color:#a0aab4; font-size:28px; }.empty-state strong { display:block; margin-top:8px; color:var(--navy); }.empty-state p { margin:4px 0 0; color:var(--muted); font-size:11px; }
dialog { width:min(980px,calc(100vw - 24px)); max-height:calc(100vh - 24px); padding:0; border:0; border-radius:16px; box-shadow:0 25px 70px rgba(18,31,46,.28); }dialog::backdrop { background:rgba(22,35,52,.58); backdrop-filter:blur(2px); }.detail-sheet { background:#fff; }.detail-header { position:sticky; z-index:2; top:0; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:18px 22px; border-bottom:1px solid var(--line); background:#fff; }.detail-header h2 { margin:0; color:var(--navy); font-size:20px; }.detail-actions { display:flex; gap:7px; }.icon-button { width:38px; height:38px; border:0; border-radius:9px; color:#fff; background:var(--red); font-size:22px; cursor:pointer; }
#detail-content { padding:22px; }.detail-section { margin-bottom:17px; padding:17px; border:1px solid var(--line); border-radius:12px; break-inside:avoid; }.detail-section h3 { margin:0 0 12px; color:var(--red); font-size:13px; }.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 20px; }.detail-item span { display:block; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.04em; }.detail-item strong,.detail-item p { display:block; margin:3px 0 0; color:var(--navy); font-size:11px; white-space:pre-wrap; }.tag-list { display:flex; flex-wrap:wrap; gap:7px; }.tag { display:inline-flex; padding:5px 8px; border-radius:99px; color:#096743; background:var(--green-soft); font-size:10px; font-weight:700; }.scenario-block { border-color:#f0c68e; background:#fff8ec; }.scenario-block p { margin:0; color:#654513; font-size:12px; line-height:1.5; white-space:pre-wrap; }.signature-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.signature-box { min-height:130px; padding:10px; border:1px dashed #aeb8c3; border-radius:9px; text-align:center; }.signature-box img { max-width:100%; height:100px; object-fit:contain; }.signature-box strong { display:block; margin-top:5px; font-size:10px; }
.toast-region { position:fixed; z-index:50; right:20px; bottom:20px; }.toast { padding:12px 15px; border-radius:9px; color:#fff; background:var(--navy); box-shadow:0 8px 24px rgba(0,0,0,.2); font-size:11px; }
.users-dialog { width:min(900px,calc(100vw - 24px)); }.users-sheet { background:#fff; }.users-content { padding:22px; }.user-create-form { margin-bottom:18px; padding:17px; border:1px solid #bddfcf; border-radius:12px; background:var(--green-soft); }.user-create-form h3 { margin:0 0 13px; color:#096743; font-size:13px; }.user-form-grid { display:grid; grid-template-columns:1.2fr 1fr 1fr auto; gap:10px; align-items:end; }.user-form-grid label span { display:block; margin-bottom:5px; color:#476858; font-size:9.5px; font-weight:700; }.user-form-grid .primary-button { width:auto; white-space:nowrap; }.users-list-card { overflow-x:auto; border:1px solid var(--line); border-radius:11px; }.status-pill { display:inline-flex; padding:4px 7px; border-radius:99px; color:#096743; background:var(--green-soft); font-size:9px; font-weight:700; }.status-pill.inactive { color:#8a312d; background:var(--red-soft); }.user-action { padding:5px 8px; border:1px solid #cdd4dc; border-radius:7px; color:#4f5e6e; background:#fff; font-size:9px; font-weight:700; cursor:pointer; }
@media(max-width:700px){.admin-header{padding:0 14px}.admin-brand div{display:none}.header-link{display:none}main{padding:22px 12px}.dashboard-heading{align-items:flex-start}.stats-grid{grid-template-columns:1fr}.archive-toolbar{align-items:stretch;flex-direction:column}.search-field{max-width:none}.detail-grid,.signature-grid{grid-template-columns:1fr}.detail-header{align-items:flex-start}.detail-actions .secondary-button{font-size:0;width:38px;padding:0}.detail-actions .secondary-button::first-letter{font-size:12px}.user-form-grid{grid-template-columns:1fr}.user-form-grid .primary-button{width:100%}}
@media print{body{background:#fff}.admin-header,main,.detail-actions{display:none!important}dialog{position:static!important;width:auto!important;max-height:none!important;display:block!important;box-shadow:none!important}.detail-header{position:static}.detail-sheet{display:block}#detail-content{padding:10px}.detail-section{break-inside:avoid}}
.user-inline-input { width:100%; min-width:105px; padding:7px 8px; border:1px solid #cdd4dc; border-radius:8px; font-size:10px; background:#fff; }
.user-actions { display:flex; gap:6px; flex-wrap:wrap; min-width:250px; }
.user-action.danger { color:#8a312d; border-color:#e0b0aa; background:#fff7f6; }
.user-action:disabled { opacity:.45; cursor:not-allowed; }
.user-form-grid select { min-height:38px; padding:8px 10px; border:1px solid #bddfcf; border-radius:9px; background:#fff; }

.cert-actions{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}
.delete-button{border:0;border-radius:999px;padding:.58rem .8rem;background:#fee2e2;color:#991b1b;font-weight:800;cursor:pointer}
.delete-button:hover{filter:brightness(.97)}

/* v5 */
.result-good { color:#166534; font-weight:800; }
.result-bad { color:#991b1b; font-weight:800; }
#sites-dialog .users-sheet { max-width:920px; }
.site-form-grid { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:end; }
.site-form-grid label span { display:block; margin-bottom:5px; color:#476858; font-size:9.5px; font-weight:700; }
.site-form-grid .primary-button { width:auto; white-space:nowrap; }
@media (max-width:650px){ .site-form-grid { grid-template-columns:1fr; } .site-form-grid .primary-button { width:100%; } }

.app-footer { padding:13px 18px; color:rgba(255,255,255,.75); background:var(--navy); text-align:center; font-size:10.5px; letter-spacing:.02em; }
.account-dialog-card { padding:22px; background:#fff; }
.account-dialog-card > p { margin:4px 0 18px; color:var(--muted); font-size:11px; }
.form-grid.one-column { display:grid; grid-template-columns:1fr; gap:12px; }
.form-grid.one-column label span,.form-grid.one-column label small { display:block; margin-bottom:5px; color:#526273; font-size:10px; font-weight:700; }
.form-grid.one-column label small { margin:5px 0 0; color:var(--muted); font-weight:400; }
.account-dialog-card .dialog-actions { display:flex; justify-content:flex-end; margin-top:16px; }
.account-dialog-card .dialog-actions .primary-button { width:auto; }
@media(max-width:700px){.admin-header{min-height:72px;height:auto;padding:9px 12px}.admin-header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.header-button{padding:7px 9px;font-size:9px}.app-footer{font-size:9.5px}.account-dialog-card .dialog-actions .primary-button{width:100%}}
@media print{.app-footer{display:none!important}}
