:root {
  --ink:#121a1f;
  --muted:#66737b;
  --line:#dce2e5;
  --soft:#f4f6f7;
  --red:#df1b22;
  --green:#159570;
}
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--soft); font:14px/1.55 Manrope,Arial,sans-serif; letter-spacing:0; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
img { max-width:100%; }
.eyebrow { margin:0 0 12px; color:var(--red); font-size:10px; font-weight:700; text-transform:uppercase; }
.admin-brand { display:inline-flex; align-items:center; gap:10px; color:inherit; text-decoration:none; }
.admin-brand img { width:54px; height:48px; object-fit:contain; }
.admin-brand span { display:flex; flex-direction:column; line-height:1.1; }
.admin-brand strong { font-size:14px; }
.admin-brand small { margin-top:4px; color:var(--muted); font-size:9px; text-transform:uppercase; }
.admin-auth { min-height:100vh; background:#fff; }
.login-shell { display:grid; min-height:100vh; grid-template-columns:.95fr 1.05fr; }
.login-copy { display:flex; flex-direction:column; justify-content:space-between; padding:46px 5vw; color:#fff; background:linear-gradient(145deg,#10171c,#263844); }
.login-copy h1 { max-width:650px; margin:0; font-size:clamp(42px,5vw,72px); font-weight:600; line-height:1.03; }
.login-copy p:last-child { max-width:540px; color:#b5c0c6; }
.login-panel { display:grid; place-items:center; padding:40px; }
.admin-card { width:min(100%,480px); padding:34px; border:1px solid var(--line); background:#fff; }
.admin-card h2 { margin:0; font-size:32px; }
.admin-card label,.entry-form label,.admin-dialog label { display:flex; flex-direction:column; gap:7px; margin-top:16px; color:#3d474e; font-size:10px; font-weight:700; text-transform:uppercase; }
.admin-card input,.entry-form input,.entry-form select,.entry-form textarea,.admin-dialog input,.admin-dialog select,.admin-dialog textarea { width:100%; min-height:43px; padding:0 12px; border:1px solid #cbd3d7; border-radius:4px; color:var(--ink); background:#fff; outline:none; text-transform:none; }
.entry-form textarea,.admin-dialog textarea { padding:12px; resize:vertical; }
.admin-card button,.entry-form button,.toolbar button,.admin-dialog button[type=submit] { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; margin-top:22px; padding:0 15px; border:0; border-radius:4px; color:#fff; background:var(--red); font-size:10px; font-weight:700; }
.admin-card button svg,.toolbar button svg { width:15px; }
.notice { margin:16px 0; padding:12px 14px; border-left:3px solid var(--red); color:#7d171b; background:#fff0f0; font-size:11px; }
.notice.success { border-color:var(--green); color:#0d6950; background:#edf9f5; }
.admin-sidebar { position:fixed; z-index:30; inset:0 auto 0 0; display:flex; width:248px; flex-direction:column; padding:23px 18px; color:#fff; background:#11181d; }
.admin-sidebar .admin-brand { padding:0 8px 24px; border-bottom:1px solid #2d383e; }
.admin-sidebar .admin-brand small { color:#87949b; }
.admin-sidebar nav { display:grid; gap:4px; margin-top:24px; }
.admin-sidebar nav button,.logout { display:flex; align-items:center; gap:11px; min-height:42px; padding:0 12px; border:0; border-radius:4px; color:#9eabb2; background:transparent; font-size:10px; font-weight:700; text-align:left; }
.admin-sidebar nav button.active,.admin-sidebar nav button:hover,.logout:hover { color:#fff; background:#263138; }
.admin-sidebar svg { width:16px; }
.logout { margin-top:auto; }
.admin-main { min-height:100vh; margin-left:248px; padding:24px 28px 60px; }
.admin-topbar { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:58px; margin-bottom:14px; }
.admin-topbar p,.toolbar p,.dialog-head p { margin:0 0 4px; color:var(--muted); font-size:9px; font-weight:700; text-transform:uppercase; }
.admin-topbar h1,.toolbar h2,.dialog-head h2 { margin:0; font-size:28px; }
.admin-chip { display:flex; align-items:center; gap:10px; padding:8px 10px; border:1px solid var(--line); background:#fff; }
.admin-chip>span { display:grid; width:34px; height:34px; place-items:center; border-radius:50%; color:#fff; background:var(--ink); font-size:9px; font-weight:700; }
.admin-chip strong { display:block; font-size:12px; }
.admin-chip small { display:block; color:var(--muted); font-size:9px; text-transform:uppercase; }
.icon-button { display:grid; width:38px; height:38px; place-items:center; border:1px solid var(--line); border-radius:4px; background:#fff; }
.icon-button svg { width:17px; }
.admin-topbar>.icon-button { display:none; }
.view { display:none; animation:fade .18s ease-out; }
.view.active { display:block; }
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; border:1px solid var(--line); background:var(--line); }
.metric-grid article { min-height:135px; padding:23px; background:#fff; }
.metric-grid span { color:var(--muted); font-size:9px; font-weight:700; text-transform:uppercase; }
.metric-grid strong { display:block; margin-top:16px; font-size:34px; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
.panel,.entry-form,.table-wrap,.record-card { border:1px solid var(--line); background:#fff; }
.panel-head { display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--line); font-size:12px; font-weight:700; }
.activity-list { display:grid; }
.activity-item { display:flex; justify-content:space-between; gap:18px; padding:16px 20px; border-bottom:1px solid var(--line); }
.activity-item:last-child { border-bottom:0; }
.activity-item strong { display:block; font-size:12px; }
.activity-item small,.record-meta,.document-list a,.table-wrap td { color:var(--muted); font-size:10px; }
.toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:12px; }
.filter-bar { display:grid; grid-template-columns:minmax(240px,1fr) 160px 160px auto; gap:10px; align-items:end; margin-bottom:16px; padding:10px; border:1px solid var(--line); background:#fff; }
.filter-bar label { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:9px; font-weight:700; text-transform:uppercase; }
.filter-bar input { width:100%; min-height:38px; padding:0 11px; border:1px solid #cbd3d7; border-radius:4px; color:var(--ink); background:#fff; outline:none; font-size:11px; text-transform:none; }
.filter-bar .secondary { justify-content:center; margin:0; }
.entry-form { margin-bottom:16px; padding:22px; }
.field-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.field-grid .wide { grid-column:1/-1; }
.minutes-block { margin-top:16px; padding:16px; border:1px solid var(--line); background:#fafbfb; }
.minutes-block>div:first-child { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:12px; }
.minutes-block strong { font-size:11px; text-transform:uppercase; }
.minutes-block span { color:var(--muted); font-size:9px; }
.check-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.check-grid label { display:flex!important; min-height:44px; flex-direction:row!important; align-items:center; gap:9px; margin:0!important; padding:9px 10px; border:1px solid var(--line); border-radius:4px; background:#fff; text-transform:none!important; }
.check-grid input { width:auto!important; min-height:auto!important; }
.check-grid label span { display:flex; flex-direction:column; color:var(--ink); font-size:11px; font-weight:700; }
.check-grid small { color:var(--muted); font-size:8px; text-transform:uppercase; }
.record-list { display:grid; gap:12px; }
.record-card { padding:20px; }
.record-card-head { display:flex; justify-content:space-between; gap:16px; }
.badge { display:inline-flex; align-items:center; min-height:22px; padding:0 8px; border-radius:3px; color:#fff; background:var(--ink); font-size:8px; font-weight:700; text-transform:uppercase; }
.badge.red { background:var(--red); }
.badge.muted { background:var(--muted); }
.record-card h3 { margin:9px 0 6px; font-size:18px; }
.record-card p { margin:10px 0; color:#4d5960; }
.record-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.secondary { display:inline-flex; align-items:center; gap:7px; min-height:34px; padding:0 11px; border:1px solid var(--ink); border-radius:4px; color:var(--ink); background:#fff; font-size:9px; font-weight:700; text-decoration:none; }
.secondary.danger { border-color:var(--red); color:var(--red); }
.secondary.danger:hover { background:#fff0f0; }
.secondary svg { width:14px; }
.document-list { display:flex; overflow:hidden; max-height:0; flex-wrap:wrap; gap:8px; margin-top:0; padding-top:0; opacity:0; transform:translateY(-6px); transition:max-height .28s ease, opacity .22s ease, transform .22s ease, margin-top .22s ease, padding-top .22s ease; }
.document-list.open { max-height:260px; margin-top:12px; padding-top:2px; opacity:1; transform:none; }
.document-list.loading { color:var(--muted); }
.document-list a { padding:6px 8px; border:1px solid var(--line); border-radius:4px; text-decoration:none; }
.document-actions { display:inline-flex; flex-wrap:wrap; gap:6px; }
.document-loading { display:inline-flex; align-items:center; gap:8px; min-height:34px; color:var(--muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.document-loading::before { content:""; width:14px; height:14px; border:2px solid #dce2e5; border-top-color:var(--red); border-radius:50%; animation:spin .82s linear infinite; }
table { width:100%; border-collapse:collapse; background:#fff; }
th,td { padding:13px 14px; border-bottom:1px solid var(--line); text-align:left; }
th { color:var(--muted); background:#fafbfb; font-size:8px; text-transform:uppercase; }
.row-actions { display:flex; gap:8px; }
.row-actions input,.row-actions select { height:34px; min-width:130px; padding:0 9px; border:1px solid var(--line); border-radius:4px; background:#fff; font-size:10px; }
.admin-dialog { width:min(94vw,520px); padding:0; border:1px solid var(--line); border-radius:6px; }
.admin-dialog::backdrop { background:rgba(17,24,29,.65); }
.admin-dialog form { padding:24px; }
.dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.preview-dialog { width:min(96vw,980px); }
.preview-shell { padding:24px; }
.preview-body { display:grid; min-height:58vh; margin-top:18px; border:1px solid var(--line); background:#fafbfb; }
.preview-body iframe { width:100%; min-height:58vh; border:0; background:#fff; }
.preview-image-wrap { display:grid; min-height:58vh; place-items:center; padding:18px; }
.preview-image-wrap img { max-height:70vh; object-fit:contain; }
.preview-empty { display:grid; place-items:center; align-content:center; gap:8px; min-height:58vh; padding:34px; text-align:center; }
.preview-empty h3 { margin:0; font-size:22px; }
.preview-empty p { max-width:460px; margin:0; color:var(--muted); }
.preview-empty small { color:var(--muted); }
.preview-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; margin-top:16px; }
.loading-overlay { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:24px; background:rgba(17,24,29,.62); backdrop-filter:blur(2px); }
.loading-overlay[hidden] { display:none; }
.loading-card { display:grid; width:min(92vw,330px); justify-items:center; gap:12px; padding:28px; border:1px solid #e7ecef; background:#fff; text-align:center; box-shadow:0 18px 55px rgba(0,0,0,.18); }
.loading-spinner { width:52px; height:52px; border:4px solid #edf0f2; border-top-color:var(--red); border-radius:50%; animation:spin .82s linear infinite; }
.loading-card strong { font-size:32px; line-height:1; }
.loading-card span { color:var(--muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.loading-track { overflow:hidden; width:100%; height:6px; border-radius:999px; background:#edf0f2; }
.loading-track span { display:block; width:0; height:100%; border-radius:999px; background:var(--red); transition:width .18s ease; }
.hidden-for-role { display:none!important; }
@keyframes fade { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes spin { to { transform:rotate(360deg); } }
@media(max-width:980px) {
  .login-shell { grid-template-columns:1fr; }
  .login-copy { min-height:420px; }
  .admin-sidebar { transform:translateX(-100%); transition:.2s; }
  .menu-open .admin-sidebar { transform:none; }
  .admin-main { margin-left:0; padding:18px; }
  .admin-topbar>.icon-button { display:grid; }
  .metric-grid,.split,.field-grid,.check-grid,.filter-bar { grid-template-columns:1fr; }
  .admin-chip div { display:none; }
}
@media(max-width:560px) {
  .login-panel { padding:22px; }
  .admin-card { padding:26px 20px; }
  .record-card-head,.toolbar { align-items:flex-start; flex-direction:column; }
  .metric-grid article { min-height:110px; }
}
