@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --ink:#000000; --ink-light:#333333; --paper:#FFFFFF; --paper-line:#CCCCCC;
  --amber:#333333; --amber-bg:#F0F0F0; --danger:#000000; --danger-bg:#CCCCCC;
  --verified:#000000; --verified-bg:#F0F0F0; --card:#FFFFFF;
}
*{box-sizing:border-box;}
body{ margin:0; background:var(--paper); color:var(--ink); font-family:'IBM Plex Sans',sans-serif; font-size:19px; line-height:1.65; overflow-wrap:break-word; word-break:break-word; overflow-x:hidden; }
h1,h2,h3,.display{ font-family:'Fraunces',serif; letter-spacing:-0.01em; }
.mono{ font-family:'IBM Plex Mono',monospace; }
button{ font-family:'IBM Plex Sans'; }
a{ color:inherit; }

.app-shell{ background:var(--paper); min-height:100vh; }
.page-content{ max-width:1400px; margin:0 auto; }
.page-content:has(.admin-shell){ max-width:none; margin:0; }

.crumb{
  background:#F0F0F0; padding:12px 20px; font-size:13px; color:#333; display:flex; gap:6px; align-items:center;
  border-bottom:1px solid var(--paper-line);
}
.crumb a{ color:var(--ink); font-weight:600; text-decoration:none; }
.crumb .sep{ color:#999; }

.topbar{ background:var(--ink); padding:16px 32px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.topbar-logo{ font-family:'Fraunces',serif; font-size:24px; font-weight:700; }
.topbar-logo a{ color:#fff; text-decoration:none; }
.topbar-nav{ display:flex; gap:24px; font-size:16px; flex-wrap:wrap; }
.topbar-nav a{ color:#CCCCCC; text-decoration:none; font-weight:500; }
.topbar-nav a.current{ color:#fff; font-weight:700; border-bottom:2px solid #fff; padding-bottom:2px; }

.hero-search-section{ background:#F0F0F0; padding:44px 32px; text-align:center; border-bottom:2px solid #CCCCCC; }
.hero-search-section .eyebrow{ font-family:'IBM Plex Mono'; font-size:14px; letter-spacing:.14em; text-transform:uppercase; color:#333333; margin-bottom:10px; }
.hero-search-section h2{ font-size:32px; color:var(--ink); margin:0 0 8px; }
.hero-search-section p{ color:#333333; font-size:17px; margin:0 0 24px; }
.hero-search-light{ display:flex; max-width:680px; margin:0 auto; border-radius:6px; overflow:hidden; box-shadow:0 0 0 2.5px var(--ink); }
.hero-search-light input{ flex:1; border:none; padding:19px 22px; font-size:20px; outline:none; background:#fff; color:var(--ink); }
.hero-search-light button{ background:var(--ink); color:#fff; border:none; padding:0 34px; font-weight:600; font-size:17px; cursor:pointer; }
.hero-search-wrap{ position:relative; max-width:680px; margin:0 auto; }
.hero-search-wrap .hero-search-light{ max-width:none; }
.city-suggest{ display:none; position:absolute; top:100%; left:0; right:0; background:#fff; border:1px solid var(--paper-line); border-top:none; max-height:230px; overflow-y:auto; text-align:left; z-index:50; box-shadow:0 10px 24px rgba(0,0,0,.15); border-radius:0 0 8px 8px; }
.city-suggest.active{ display:block; }
.city-suggest .item{ padding:9px 16px; font-size:14.5px; color:var(--ink); cursor:pointer; }
.city-suggest .item:hover{ background:#F0F0F0; }
.city-suggest-wrap{ position:relative; }

.search-block{ padding:28px 24px 12px; text-align:center; }
.search-block h2{ font-size:29px; margin:0 0 20px; }
.search-bar{ display:flex; max-width:680px; margin:0 auto; border:2.5px solid var(--ink); background:#fff; }
.search-bar input{ flex:1; border:none; padding:19px 22px; font-size:20px; outline:none; background:transparent; }
.search-bar button{ background:var(--ink); color:#fff; border:none; padding:0 34px; font-weight:600; font-size:17px; cursor:pointer; }
.search-sub{ font-size:15px; color:#555; margin-top:10px; }

.section{ padding:36px 32px; }
.section-title{ display:flex; align-items:baseline; gap:12px; margin-bottom:18px; }
.section-title h2{ font-size:27px; margin:0; }
.section-title .rule{ flex:1; border-top:1px solid var(--paper-line); }

.cat-grid{ display:grid; grid-template-columns:1fr; gap:26px; }
.cat-card{ background:#fff; border-radius:16px; border:1px solid var(--paper-line); box-shadow:0 2px 10px rgba(0,0,0,.07); padding:36px 32px; text-decoration:none; color:inherit; display:block; transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease; }
.cat-card:hover{ transform:translateY(-8px); box-shadow:0 20px 36px rgba(0,0,0,.16); }
.cat-top-row{ display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; }
.cat-icon{ width:68px; height:68px; border-radius:50%; background:radial-gradient(circle at 32% 28%, #fff, #ececec 70%); box-shadow:inset 0 0 0 1.5px #dcdcdc, 0 6px 14px rgba(0,0,0,.1); display:flex; align-items:center; justify-content:center; color:var(--ink); transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; }
.cat-icon svg{ width:30px; height:30px; }
.cat-card:hover .cat-icon{ transform:scale(1.12) rotate(-8deg); box-shadow:inset 0 0 0 1.5px var(--ink), 0 8px 18px rgba(0,0,0,.18); }
.cat-arrow{ font-size:24px; color:#777777; display:inline-block; transition:transform .3s ease; }
.cat-card:hover .cat-arrow{ transform:translateX(6px); color:var(--ink); }
.cat-card .name{ font-family:'Fraunces',serif; font-weight:600; font-size:24px; margin-bottom:6px; }
.cat-card .count{ font-family:'IBM Plex Mono'; font-size:15px; color:#555; }

.case{ background:#fff; border:1px solid var(--paper-line); border-radius:14px; overflow:hidden; margin-bottom:20px; text-decoration:none; color:inherit; display:block; box-shadow:0 2px 10px rgba(0,0,0,.07); transition:transform .18s ease, box-shadow .18s ease; }
.case:hover{ transform:translateY(-4px); box-shadow:0 16px 30px rgba(0,0,0,.15); }
.case-top{ display:flex; justify-content:space-between; align-items:flex-start; padding:18px 24px; background:#FFFFFF; border-bottom:1px solid var(--paper-line); }
.case-id{ font-family:'IBM Plex Mono'; font-size:15px; color:#555; }
.stamp{ font-family:'IBM Plex Mono'; font-size:14px; font-weight:800; letter-spacing:.06em; padding:6px 14px; border:2px solid var(--ink); border-radius:6px; text-transform:uppercase; display:inline-block; color:var(--ink); background:#fff; margin-top:14px; }
.stamp.verified{ background:var(--ink); color:#fff; }
.stamp.disputed{ background:#fff; color:var(--ink); }
.stamp.reported{ background:#FFFFFF; color:var(--ink); }
.case-body{ padding:20px 24px; }
.case-body .party{ font-size:26px; font-weight:700; font-family:'Fraunces',serif; margin:0 0 4px; }
.case-body .meta{ font-size:17px; color:#444; margin-bottom:10px; }
.case-body .meta b{ color:var(--ink); }
.case-body .amount{ font-family:'IBM Plex Mono'; font-size:18px; font-weight:600; }
.filed-by{ font-size:15.5px; color:#444; background:#FFFFFF; border:1px solid var(--paper-line); padding:8px 12px; margin-top:10px; }
.case-actions{ display:flex; gap:10px; margin-top:12px; }
.btn-sm{ font-size:15px; font-weight:600; padding:9px 12px; border:1.5px solid var(--ink); background:#fff; color:var(--ink); cursor:pointer; text-decoration:none; display:inline-block; }
.btn-sm.primary{ background:var(--ink); color:#fff; }

.city-grid{ display:flex; flex-wrap:wrap; gap:10px; }
.city-chip{ font-size:16px; padding:9px 14px; background:#fff; border:1.5px solid var(--paper-line); text-decoration:none; color:inherit; }

.disclaimer-strip{ background:#F0F0F0; border:1.5px solid var(--ink); padding:20px 24px; font-size:16px; color:#222; margin:8px 24px 24px; }
footer{ background:var(--ink); color:#CCCCCC; padding:32px 24px; font-size:15px; text-align:center; }
footer .links{ display:flex; justify-content:center; gap:18px; flex-wrap:wrap; margin-bottom:12px; }
footer .links a{ color:#fff; text-decoration:none; }

.detail-head{ padding:32px; background:#fff; border-bottom:1px solid var(--paper-line); }
.detail-head .case-id{ display:block; margin-bottom:10px; }
.detail-head h2{ font-size:38px; font-weight:700; margin:0 0 12px; }
.detail-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:24px; }
.detail-field{ background:#FFFFFF; border:1px solid var(--paper-line); border-radius:10px; padding:16px 18px; }
.detail-field .l{ color:#666; text-transform:uppercase; letter-spacing:.05em; font-size:12px; font-weight:600; margin-bottom:4px; }
.detail-field .v{ font-weight:700; font-size:19px; }
.desc-box{ background:#FFFFFF; border:1px solid var(--paper-line); border-radius:10px; padding:24px; font-size:17.5px; margin:24px 0; line-height:1.7; }
.evidence-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.evidence-card{ position:relative; background:#CCCCCC; border:1px solid var(--paper-line); border-radius:10px; height:120px; overflow:hidden; display:flex; align-items:flex-end; }
.evidence-card .redacted{ position:absolute; top:40px; left:12px; right:12px; height:14px; background:var(--ink); }
.evidence-card .lbl{ position:relative; z-index:1; background:rgba(0,0,0,.88); color:#fff; font-size:12.5px; padding:6px 10px; width:100%; }
.evidence-card .wm{ position:absolute; top:6px; right:8px; font-family:'IBM Plex Mono'; font-size:9px; color:#fff; background:rgba(0,0,0,.7); padding:2px 5px; }
.action-bar{ display:flex; gap:12px; padding:24px 32px; background:#fff; border-top:1px solid var(--paper-line); }
.action-bar button, .action-bar a{ flex:1; padding:18px; font-size:16px; font-weight:700; border:1.5px solid var(--ink); border-radius:8px; cursor:pointer; text-align:center; text-decoration:none; }
.action-bar .dispute-btn{ background:var(--ink); color:#fff; }
.action-bar .back-btn{ background:#fff; color:var(--ink); }

.form-wrap{ max-width:900px; margin:0 auto; padding:32px 24px 40px; }
.step-block{ background:#fff; border:1px solid var(--paper-line); border-radius:14px; padding:36px; margin-bottom:20px; box-shadow:0 2px 10px rgba(0,0,0,.06); }
.step-num{ font-family:'IBM Plex Mono'; font-size:14px; color:#555; font-weight:700; letter-spacing:.08em; }
.step-block h3{ font-size:27px; margin:8px 0 22px; }
label{ display:block; font-size:17px; font-weight:600; margin:18px 0 6px; }
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],select,textarea{
  width:100%; padding:15px 16px; border:1.5px solid var(--paper-line); border-radius:8px; font-family:'IBM Plex Sans'; font-size:19px; background:#FFFFFF;
}
textarea{ min-height:120px; resize:vertical; }
input[type=file]{ width:100%; font-size:15px; padding:12px 0; }
.upload-box{ border:2px dashed #777777; border-radius:10px; padding:28px; text-align:center; font-size:15.5px; color:#444; margin-top:10px; }
.upload-box b{ color:var(--ink); }

.wizard-progress{ display:flex; gap:6px; padding:20px 24px 0; max-width:900px; margin:0 auto; }
.wizard-progress .dot{ flex:1; height:6px; border-radius:3px; background:var(--paper-line); }
.wizard-progress .dot.done{ background:var(--ink); }
.wizard-progress .dot.current{ background:#777; }
.wizard-label{ max-width:900px; margin:10px auto 0; padding:0 24px; font-size:14.5px; color:#555; font-family:'IBM Plex Mono'; }

.radio-row{ display:flex; gap:14px; flex-wrap:wrap; }
.radio-opt{ border:1.5px solid var(--paper-line); border-radius:8px; padding:13px 18px; font-size:16px; font-weight:500; cursor:pointer; }
.radio-opt input{ display:none; }
.radio-opt.selected{ border-color:var(--ink); border-width:2px; background:#F0F0F0; font-weight:700; }

.declaration{ font-size:15px; color:#333; background:#FFFFFF; border:1px solid var(--paper-line); border-radius:8px; padding:16px 18px; display:flex; gap:12px; }
.fee-box{ display:flex; justify-content:space-between; align-items:center; background:var(--ink); color:#fff; border-radius:10px; padding:24px 28px; margin-top:22px; }
.fee-box .amt{ font-family:'IBM Plex Mono'; font-size:36px; font-weight:600; }
.fee-box .lbl{ font-size:14px; color:#CCCCCC; }
.wizard-nav{ display:flex; gap:14px; max-width:900px; margin:22px auto 0; padding:0 24px 40px; }
.wizard-nav button{ flex:1; padding:20px; font-size:18px; font-weight:700; border-radius:8px; border:1.5px solid var(--ink); cursor:pointer; }
.wizard-nav .next-btn{ background:var(--ink); color:#fff; }
.wizard-nav .back-btn{ background:#fff; color:var(--ink); }

.confirm-wrap{ max-width:520px; margin:70px auto; text-align:center; padding:0 24px; }
.confirm-stamp{ width:100px; height:100px; margin:0 auto 22px; border:3.5px solid var(--ink); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:44px; color:var(--ink); }
.confirm-wrap h2{ font-size:32px; margin:0 0 10px; }
.confirm-wrap p{ font-size:15px; color:#333; margin:0 0 20px; }
.ref-box{ background:#fff; border:2px dashed var(--ink); padding:18px; font-family:'IBM Plex Mono'; font-size:22px; font-weight:700; margin-bottom:22px; }

.admin-login-wrap{ max-width:480px; margin:0 auto; padding:24px; min-height:100vh; display:flex; align-items:center; box-sizing:border-box; }
.admin-login-card{ width:100%; background:#fff; border:1.5px solid var(--paper-line); border-radius:14px; box-shadow:0 4px 20px rgba(0,0,0,.08); padding:44px; }
.admin-login-card h2{ font-size:28px; margin:0 0 8px; }
.admin-login-card p{ font-size:15.5px; color:#555; margin:0 0 24px; }
.admin-top{ background:var(--ink); color:#fff; padding:18px 32px; display:flex; justify-content:space-between; align-items:center; }
.admin-top .logo{ font-family:'IBM Plex Mono'; font-weight:700; font-size:16px; letter-spacing:.05em; }
.admin-top .user{ font-size:14.5px; color:#CCCCCC; text-decoration:none; }
.admin-main{ max-width:1100px; margin:0 auto; padding:44px 24px 60px; }
.admin-h1{ font-size:32px; margin:0 0 6px; }
.admin-sub{ font-size:16px; color:#555; margin:0 0 30px; }
.stat-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-bottom:30px; }
.stat-card{ background:#fff; border:1px solid var(--paper-line); border-radius:14px; box-shadow:0 2px 10px rgba(0,0,0,.06); padding:22px 24px; text-decoration:none; color:inherit; display:block; transition:transform .15s ease, box-shadow .15s ease; }
.stat-card:hover{ transform:translateY(-3px); box-shadow:0 12px 24px rgba(0,0,0,.13); }
.stat-card .n{ font-family:'IBM Plex Mono'; font-size:38px; font-weight:600; }
.stat-card .l{ font-size:14.5px; color:#555; margin-top:4px; }
.stat-card.pending .n{ text-decoration:underline; }
.stat-card.disputed .n{ text-decoration:underline wavy; }
.admin-tabs{ display:flex; gap:10px; margin-bottom:24px; overflow-x:auto; }
.admin-tab{ font-size:15px; padding:11px 20px; border-radius:8px; border:1.5px solid var(--paper-line); background:#fff; white-space:nowrap; text-decoration:none; color:inherit; }
.admin-tab.active{ background:var(--ink); color:#fff; border-color:var(--ink); }
.app-row{ background:#fff; border:1px solid var(--paper-line); border-radius:12px; box-shadow:0 2px 10px rgba(0,0,0,.05); padding:20px 24px; margin-bottom:14px; text-decoration:none; color:inherit; display:block; transition:transform .15s ease, box-shadow .15s ease; }
.app-row:hover{ transform:translateY(-3px); box-shadow:0 12px 22px rgba(0,0,0,.12); }
.app-row-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.app-row-top .aid{ font-family:'IBM Plex Mono'; font-size:14px; color:#555; }
.status-pill{ font-size:13px; font-weight:700; padding:5px 12px; border-radius:10px; border:1.5px solid var(--ink); text-transform:uppercase; letter-spacing:.03em; }
.status-pill.pending{ background:#fff; color:var(--ink); }
.status-pill.approved{ background:var(--ink); color:#fff; }
.status-pill.disputed{ background:#fff; color:var(--ink); border-style:double; border-width:4px; }
.app-row .party{ font-weight:700; font-size:22px; margin-bottom:4px; }
.app-row .details{ font-size:16px; color:#555; }

.admin-detail-body{ padding:44px 24px 24px; max-width:900px; margin:0 auto; }
.admin-detail-body .doc-note{ background:#F0F0F0; border:1.5px solid var(--ink); border-radius:10px; padding:14px 16px; font-size:14.5px; color:#222; margin:20px 0; }
.admin-action-bar{ display:flex; gap:14px; padding:24px; background:#fff; border-top:1px solid var(--paper-line); max-width:900px; margin:0 auto; }
.admin-action-bar button{ flex:1; padding:18px; font-size:16px; font-weight:700; border-radius:8px; border:1.5px solid var(--ink); cursor:pointer; }
.admin-action-bar .approve-btn{ background:var(--ink); color:#fff; }
.admin-action-bar .reject-btn{ background:#fff; color:var(--ink); }

.admin-shell{ display:flex; min-height:100vh; }
.admin-sidebar{ width:260px; flex-shrink:0; background:var(--ink); color:#fff; display:flex; flex-direction:column; padding:28px 20px; position:sticky; top:0; height:100vh; box-sizing:border-box; }
.admin-sidebar-logo{ font-family:'Fraunces',serif; font-size:20px; font-weight:700; line-height:1.3; margin-bottom:8px; }
.admin-sidebar-sub{ font-family:'IBM Plex Mono'; font-size:11px; color:#AAAAAA; letter-spacing:.08em; text-transform:uppercase; margin-bottom:30px; }
.admin-sidebar-nav{ display:flex; flex-direction:column; gap:4px; flex:1; }
.admin-sidebar-nav a{ color:#CCCCCC; text-decoration:none; font-size:15.5px; padding:12px 14px; border-radius:8px; font-weight:500; }
.admin-sidebar-nav a:hover{ background:rgba(255,255,255,.08); color:#fff; }
.admin-sidebar-nav a.active{ background:#fff; color:var(--ink); font-weight:700; }
.admin-sidebar-bottom{ display:flex; flex-direction:column; gap:2px; border-top:1px solid rgba(255,255,255,.15); padding-top:16px; margin-top:16px; }
.admin-sidebar-bottom a{ color:#CCCCCC; text-decoration:none; font-size:14px; padding:10px 14px; border-radius:8px; }
.admin-sidebar-bottom a:hover{ background:rgba(255,255,255,.08); color:#fff; }
.admin-page{ flex:1; min-width:0; padding:40px 40px 60px; }
.admin-revenue-banner{ display:flex; justify-content:space-between; align-items:center; background:linear-gradient(135deg,var(--ink),var(--ink-light)); color:#fff; border-radius:14px; padding:24px 28px; margin-bottom:26px; }
.admin-revenue-banner .amt{ font-family:'IBM Plex Mono'; font-size:34px; font-weight:600; }
.admin-revenue-banner .lbl{ font-size:13.5px; color:#CCCCCC; letter-spacing:.03em; }
.admin-activity{ background:#fff; border:1px solid var(--paper-line); border-radius:14px; box-shadow:0 2px 10px rgba(0,0,0,.05); padding:8px 0; margin-bottom:30px; }
.admin-activity-row{ display:flex; justify-content:space-between; align-items:center; padding:14px 22px; border-bottom:1px solid var(--paper-line); text-decoration:none; color:inherit; }
.admin-activity-row:last-child{ border-bottom:none; }
.admin-activity-row:hover{ background:#FFFFFF; }
.admin-activity-row .who{ font-size:15px; font-weight:600; }
.admin-activity-row .when{ font-size:13px; color:#888; font-family:'IBM Plex Mono'; }
.admin-mobile-top{ display:none; }
.admin-mobile-logo{ font-family:'Fraunces',serif; font-size:17px; font-weight:700; color:#fff; }

@media(max-width:900px){
  .admin-shell{ flex-direction:column; }
  .admin-sidebar{ display:none; }
  .admin-mobile-top{ display:flex; justify-content:space-between; align-items:center; background:#000; padding:14px 18px; }
}

.admin-drawer-backdrop{ display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:299; }
.admin-drawer-backdrop.active{ display:block; }
.admin-drawer{ position:fixed; top:0; right:0; height:100vh; width:280px; max-width:85vw; background:#000; z-index:300; transform:translateX(100%); transition:transform .25s ease; display:flex; flex-direction:column; box-shadow:-8px 0 24px rgba(0,0,0,.4); }
.admin-drawer.active{ transform:translateX(0); }
.admin-drawer-header{ display:flex; justify-content:space-between; align-items:center; padding:20px; border-bottom:1px solid rgba(255,255,255,.15); }
.admin-drawer-header .title{ font-family:'Fraunces',serif; font-weight:700; font-size:18px; color:#fff; }
.admin-drawer-close{ width:32px; height:32px; border:1.5px solid #fff; border-radius:6px; display:flex; align-items:center; justify-content:center; background:transparent; cursor:pointer; font-size:16px; padding:0; color:#fff; }
.admin-drawer-list{ flex:1; overflow-y:auto; padding:10px 0; }
.admin-drawer-list a, .admin-drawer-footer a{ display:flex; align-items:center; gap:14px; padding:14px 20px; text-decoration:none; color:#ccc; font-size:16px; font-weight:500; border-bottom:1px solid rgba(255,255,255,.08); }
.admin-drawer-list a .icon, .admin-drawer-footer a .icon{ width:34px; height:34px; border-radius:50%; background:#222; color:#fff; display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; }
.admin-drawer-list a.current{ font-weight:700; color:#fff; }
.admin-drawer-list a.current .icon{ background:#fff; color:#000; }
.admin-drawer-footer{ border-top:1px solid rgba(255,255,255,.15); padding:10px 0; }

.modal-overlay{ display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:200; align-items:flex-end; justify-content:center; }
.modal-overlay.active{ display:flex; }
.modal-box{ background:#fff; width:100%; max-width:520px; padding:26px 22px; border-radius:8px 8px 0 0; border:1.5px solid var(--ink); border-bottom:none; }
.modal-box h3{ font-size:19px; margin:0 0 10px; }
.modal-box p{ font-size:14px; color:#333; margin:0 0 16px; }
.modal-btns{ display:flex; gap:12px; }
.modal-btns button{ flex:1; padding:14px; font-size:15px; font-weight:700; border:1.5px solid var(--ink); cursor:pointer; }
.modal-btns .confirm{ background:var(--ink); color:#fff; }
.modal-btns .cancel{ background:#CCCCCC; color:#000; }

.notice{ background:#F0F0F0; border:1.5px solid var(--ink); padding:12px 16px; font-size:14px; color:#222; margin-bottom:16px; }
.notice.danger{ background:#CCCCCC; border-color:var(--ink); color:var(--ink); }

@media(min-width:640px){
  .cat-grid{ grid-template-columns:repeat(3,1fr); }
  .stat-row{ grid-template-columns:repeat(4,1fr); }
}
@media(min-width:900px){
  .evidence-grid, .detail-grid{ grid-template-columns:repeat(3,1fr); }
}

.mobile-menu-btn{ display:none; width:38px; height:38px; border:1.5px solid #fff; border-radius:6px; align-items:center; justify-content:center; background:transparent; cursor:pointer; color:#fff; font-size:20px; padding:0; }
.mobile-nav-overlay{ display:none; position:fixed; inset:0; background:#000; z-index:300; flex-direction:column; }
.mobile-nav-overlay.active{ display:flex; }
.mobile-nav-overlay-top{ padding:16px 18px; display:flex; justify-content:flex-end; }
.mobile-nav-overlay-close{ width:38px; height:38px; border:1.5px solid #fff; border-radius:6px; display:flex; align-items:center; justify-content:center; background:transparent; cursor:pointer; color:#fff; font-size:20px; padding:0; }
.mobile-nav-links{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:26px; padding:0 36px; }
.mobile-nav-links a{ font-family:'Fraunces',serif; font-size:26px; color:#ccc; text-decoration:none; width:fit-content; }
.mobile-nav-links a.current{ color:#fff; font-weight:700; border-bottom:1px solid #fff; padding-bottom:6px; }

/* ---- Mobile responsiveness ---- */
@media(max-width:640px){
  body{ font-size:16px; }
  .topbar{ padding:14px 18px; }
  .topbar-logo{ font-size:19px; }
  .topbar-nav{ display:none; }
  .mobile-menu-btn{ display:flex; }
  .hero-search-section{ padding:28px 18px; }
  .hero-search-section h2{ font-size:24px; }
  .hero-search-light input{ padding:14px 16px; font-size:16px; }
  .hero-search-light button{ padding:0 20px; font-size:14px; }
  .section{ padding:24px 18px; }
  .section-title h2{ font-size:20px; }
  .cat-card{ padding:20px; }
  .cat-card .name{ font-size:19px; }
  .case-top{ padding:14px 18px; flex-direction:column; align-items:flex-start; gap:8px; }
  .case-body{ padding:16px 18px; }
  .case-body .party{ font-size:20px; }
  .detail-head{ padding:20px 18px; }
  .detail-head h2{ font-size:26px; }
  .detail-grid{ grid-template-columns:1fr; }
  .evidence-grid{ grid-template-columns:1fr; }
  .desc-box{ padding:16px; font-size:15px; }
  .action-bar{ flex-direction:column; padding:16px 18px; }
  .form-wrap{ padding:20px 16px 30px; }
  .step-block{ padding:22px 18px; }
  .step-block h3{ font-size:21px; }
  .wizard-nav{ flex-direction:column; padding-left:16px; padding-right:16px; }
  .wizard-progress, .wizard-label{ padding-left:16px; padding-right:16px; }
  .fee-box{ flex-direction:column; align-items:flex-start; gap:10px; padding:18px; }
  .fee-box .amt{ font-size:28px; }
  .admin-revenue-banner{ flex-direction:column; align-items:flex-start; gap:10px; padding:18px; }
  .admin-revenue-banner .lbl{ text-align:left !important; max-width:none !important; }
  .admin-revenue-banner .amt{ font-size:26px; }
  .admin-h1{ font-size:24px; }
  .admin-page{ padding:20px 16px 40px; }
  .app-row{ padding:16px 18px; }
  .app-row .party{ font-size:18px; }
  .admin-action-bar{ flex-direction:column; }
  .admin-detail-body{ padding:24px 16px 16px; }
  .confirm-wrap{ margin:40px auto; }
  .admin-tabs{ flex-wrap:wrap; }
  .stat-row{ grid-template-columns:1fr 1fr; gap:10px; }
  .stat-card{ padding:16px 18px; }
  .stat-card .n{ font-size:28px; }
}