/* Compact workspaces: less chrome, generous touch targets. Print styles stay separate. */
@media screen {
  body { --rail:216px; }
  button,.button { min-height:44px;padding:9px 13px;border-radius:9px;line-height:1.3;font-size:13px; }
  .button { display:inline-flex;align-items:center;justify-content:center;gap:8px; }
  button.primary,.button.primary { box-shadow:0 2px 3px #24361c0b; }
  .sidebar { width:var(--rail);padding:18px 12px 12px;overflow:hidden;gap:0;background:#eeeee4; }
  .sidebar .brand { gap:9px;font-size:30px;margin:0 8px 18px; }
  .sidebar .city-seal { width:46px;height:46px; }
  .sidebar .brand small { font-size:7px;letter-spacing:1.6px; }
  .sidebar>.eyebrow { font-size:9px;letter-spacing:1.5px;margin:0 12px 8px; }
  .sidebar nav { flex:1;min-height:0;overflow:auto;align-content:start;gap:3px;padding:3px;scrollbar-width:thin; }
  .sidebar nav a { min-height:40px;padding:7px 9px;gap:9px;font-size:12px;line-height:1.25;border:1px solid transparent;border-radius:9px; }
  .sidebar nav a>span { display:grid;place-items:center;flex:none;width:27px;height:27px;font-size:17px;border-radius:7px;background:#e0e5d6;color:#506146; }
  .sidebar nav a:hover { background:#e2e7d9;border-color:#cdd7c1; }
  .sidebar nav a.active { background:var(--olive);color:white;box-shadow:0 2px 5px #31402518; }
  .sidebar nav a.active>span { background:#ffffff20;color:white; }
  .sidebar .promise { display:none; }
  .sidebar .identity { margin:12px 6px 0;padding:12px 0 0; }
  .workspace { margin-left:var(--rail);min-width:0; }
  .topbar { min-height:60px;height:60px;padding:0 22px;gap:12px; }
  .topbar:has(.city-heading) { min-height:64px;padding-top:6px;padding-bottom:6px; }
  .topbar .city-seal { width:42px;height:42px; }
  .topbar>span { min-width:0; }
  main { padding:18px 22px 28px; }
  .notice { padding:8px 11px;margin-bottom:14px;font-size:11px; }
  .welcome { min-height:180px;grid-template-columns:1.15fr 1fr; }
  .welcome>div { padding:22px 26px; }
  .welcome h1 { font-size:38px;margin:8px 0; }
  .welcome p { margin-bottom:12px; }
  .welcome img { max-height:235px; }
  .module-hero { grid-template-columns:1fr 180px;margin-bottom:16px; }
  .module-hero>div { padding:17px 22px; }
  .module-hero h1 { font-size:34px;margin:6px 0; }
  .module-hero p { margin:6px 0; }
  .module-hero img { height:124px; }
  .metrics { gap:10px;margin:14px 0 18px; }
  .metric { padding:13px 16px; }
  .metric strong { font-size:30px;line-height:1.25; }
  .module-grid { grid-template-columns:repeat(3,minmax(0,1fr));gap:10px; }
  .module-card { display:flex;align-items:stretch;border-radius:10px;min-width:0; }
  .module-card img { width:70px;min-height:94px;aspect-ratio:auto;flex:none;object-fit:cover; }
  .module-card div { padding:12px;min-width:0;align-self:center; }
  .module-card h3 { font-size:13px;line-height:1.35;margin:0; }
  .module-card h3 span { margin-left:5px; }
  .module-card p { font-size:11px;line-height:1.4;margin:5px 0 0; }
  .module-card:hover { box-shadow:0 3px 12px #3443250d;transform:translateY(-1px); }
  .heading { margin:20px 0 12px; }
  .panel { padding:18px;border-radius:10px;margin-bottom:16px; }
  .toolbar { gap:8px;margin-bottom:14px; }
  .toolbar label { min-width:145px; }
  .toolbar button { align-self:end; }
  input,select,textarea { min-height:44px;padding:9px 11px;margin:5px 0 12px;border-radius:7px; }
  input[type=checkbox],input[type=radio] { min-height:0; }
  .actions { gap:8px;margin-top:14px; }
  td,th { padding:11px 9px; }
  td button { min-height:44px;line-height:1.4; }
  .map-panel { margin:16px 0 20px;padding:16px; }
  .map-layout { grid-template-columns:190px minmax(0,1fr);gap:12px; }
  .map-layout>div { min-width:0; }
  .map-person { padding:8px 10px;margin-bottom:7px; }
  .map-person button { width:100%;min-height:44px;font-size:12px; }
  .map-health { padding:8px;gap:8px;flex-wrap:wrap; }
  .map-health button,.map-controls button { min-height:44px;padding:8px 10px;font-size:12px; }
  .map-controls { gap:6px; }
  .calendar-toolbar { gap:10px;align-items:end; }
  .calendar-toolbar>.actions,.calendar-report-buttons { margin:0 0 12px;gap:6px; }
  .calendar-title { margin:12px 0; }
  .calendar-panel>p { font-size:12px;line-height:1.5;margin:8px 0; }
  .calendar-key { gap:12px;margin:12px 0; }
  .calendar-day,.calendar-pad { min-height:110px;padding:7px;border-radius:0; }
  .calendar-day { justify-content:start;align-items:stretch; }
  .calendar-day.today { background:#f2f5e9; }
  .calendar-week { padding:8px 0; }
  dialog { padding:26px;width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px);border-radius:14px; }
  dialog .close { width:44px;height:44px;padding:0;right:6px;top:6px; }
  dialog .actions,.form-save { bottom:-26px;padding:10px 0; }
  dialog h2 { margin-bottom:18px; }
  footer { padding:16px 22px; }
  #nav-close,.nav-backdrop { display:none; }
  @media (max-width:1200px) { .module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
  @media (max-width:1024px) {
    .sidebar { width:280px;max-width:calc(100vw - 48px);transform:translateX(-100%);visibility:hidden;inset:0 auto 0 0;box-shadow:none;padding-top:20px;z-index:1100; }
    .sidebar.open { transform:none;visibility:visible;box-shadow:10px 0 35px #14201025; }
    .sidebar .brand { margin-right:36px;margin-bottom:20px; }
    .sidebar nav a { min-height:44px;font-size:13px; }
    .workspace { margin-left:0; }
    #menu { display:block;width:44px;flex:none;padding:0;font-size:20px;border:1px solid var(--line);background:var(--paper); }
    #nav-close { display:block;position:absolute;right:8px;top:17px;width:44px;padding:0;font-size:24px;background:transparent;border:0; }
    .nav-backdrop:not([hidden]) { display:block;position:fixed;inset:0;border:0;border-radius:0;background:#14201066;z-index:1090; }
    body.nav-open { overflow:hidden; }
    .topbar { position:sticky;top:0;z-index:1000;background:var(--white); }
    main { padding:16px 20px 24px; }
    .module-hero { grid-template-columns:1fr 160px; }
    .map-layout { grid-template-columns:170px minmax(0,1fr); }
  }
  @media (max-width:650px) {
    .topbar { padding:0 12px;gap:8px; }
    .topbar>span { font-size:11px;line-height:1.25; }
    .topbar:has(#signout) { display:grid;grid-template-columns:1fr auto;gap:0 8px;padding-block:6px; }
    .topbar:has(#signout) .city-heading { grid-column:1;grid-row:1; }
    .topbar:has(#signout)>strong { grid-column:1;grid-row:2;padding:0 0 4px 50px;font-size:11px; }
    .topbar #signout { grid-column:2;grid-row:1/3; }
    #account { padding:8px 10px;white-space:nowrap;font-size:12px; }
    main { padding:12px; }
    .notice { margin-bottom:10px;line-height:1.45; }
    .welcome { grid-template-columns:1fr 100px;min-height:0; }
    .welcome>div { padding:18px; }
    .welcome h1 { font-size:32px; }
    .welcome img { height:100%;max-height:none; }
    .welcome p { font-size:12px; }
    .welcome .eyebrow { font-size:8px;letter-spacing:1px; }
    .module-hero { grid-template-columns:minmax(0,1fr) 76px;margin-bottom:12px; }
    .module-hero>div { padding:14px 16px; }
    .module-hero h1 { font-size:29px; }
    .module-hero p { font-size:12px;line-height:1.4; }
    .module-hero .eyebrow { font-size:8px;letter-spacing:1.3px; }
    .module-hero img { height:100%;grid-row:auto; }
    .metrics { gap:8px;margin:10px 0 12px; }
    .metric { padding:11px 13px; }
    .metric strong { font-size:28px; }
    .metric span { font-size:10px; }
    .module-grid { gap:8px; }
    .module-card { flex-direction:column;position:relative; }
    .module-card img { width:100%;height:64px;min-height:0;object-position:center 40%; }
    .module-card div { padding:11px;width:100%; }
    .module-card h3 { font-size:12px;min-height:32px; }
    .module-card p { display:none; }
    .panel { padding:14px; }
    .toolbar label { flex-basis:calc(50% - 8px);min-width:120px; }
    .toolbar button { flex:1; }
    input,select,textarea { font-size:16px; }
    .map-panel { padding:12px; }
    .map-head { flex-wrap:wrap;gap:5px;margin-bottom:12px; }
    .map-head h2 { font-size:25px; }
    .map-head .eyebrow { margin:0 0 6px; }
    .map-layout { display:flex;flex-direction:column-reverse;gap:12px; }
    .map-canvas { height:300px; }
    .map-health>div { display:flex;gap:6px; }
    .map-controls { display:grid;grid-template-columns:repeat(2,minmax(0,1fr)); }
    .map-controls button:last-child { grid-column:1/-1; }
    .map-list { display:flex;gap:8px;max-height:155px; }
    .map-person { min-width:160px;max-width:200px; }
    .map-expanded { inset:4px;padding:10px; }
    .map-expanded .map-canvas { height:max(240px,calc(100dvh - 370px)); }
    .calendar-toolbar { gap:6px; }
    .calendar-toolbar>label { flex:1;min-width:150px; }
    .calendar-toolbar>.actions { flex:none;gap:4px;padding-bottom:12px; }
    .calendar-toolbar>.actions button { padding:8px;min-width:44px; }
    .calendar-toolbar input[type=month] { font-size:14px;padding-inline:7px; }
    .calendar-panel>p { font-size:11px;line-height:1.5;margin:8px 0; }
    .calendar-toolbar>.actions { margin:0; }
    .calendar-report-buttons { width:100%;display:grid;grid-template-columns:1fr 1fr;margin:0; }
    .calendar-report-buttons button { padding:8px;font-size:12px; }
    .calendar-key { gap:7px;font-size:10px; }
    .calendar-day,.calendar-pad { min-height:76px;padding:5px 3px; }
    .calendar-day { font-size:12px; }
    .calendar-title { font-size:25px; }
    .split,.form-grid { grid-template-columns:1fr; }
    dialog { width:calc(100vw - 16px);padding:24px 16px 16px;max-height:calc(100dvh - 16px); }
    dialog .actions,.form-save { bottom:-16px; }
    dialog .actions>button { flex:1; }
    .case-table thead { display:none; }
    .case-table,.case-table tbody { display:block; }
    .case-table tr { display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;margin-bottom:8px;border:1px solid var(--line);border-radius:10px; }
    .case-table td { display:block;min-width:0;padding:0;border:0;overflow-wrap:anywhere; }
    .case-table td:first-child { grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:6px; }
    .case-table td[data-label]:before { content:attr(data-label);display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;margin-bottom:3px; }
    .case-table td button { width:100%; }
    #toast { left:12px;right:12px;bottom:12px;font-size:13px;padding:12px 16px; }
    footer { padding:14px 12px; }
  }
  @media (pointer:coarse) { .sidebar nav a { min-height:44px; }.leaflet-control-zoom a { width:44px;height:44px;line-height:44px; } }
  @media (prefers-reduced-motion:reduce) { .module-card:hover { transform:none; } }
}

/* Clear, normal-proportion workspace typography. Keep the Silay wordmark separate. */
@media screen {
  h1,h2,.welcome h1,.metric strong { font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;font-weight:600;font-style:normal;letter-spacing:-.02em; }
  h1,.welcome h1 { font-size:32px;line-height:1.2; }
  .module-hero h1 { font-size:28px;line-height:1.2; }
  h2,.map-head h2 { font-size:24px;line-height:1.3; }
  .metric strong { font-size:30px;line-height:1.3;font-variant-numeric:tabular-nums; }
  .eyebrow { letter-spacing:1.3px; }
  @media(max-width:650px) {
    h1,.welcome h1 { font-size:28px; }
    .module-hero h1 { font-size:25px; }
    h2,.map-head h2,.calendar-title { font-size:22px; }
    .metric strong { font-size:28px; }
  }
}
