/* RI Civic OS V4 Button System
   Reusable interaction layer. Existing routes and handlers remain unchanged. */
:root{
  --brand-900:#061d31;
  --brand-800:#082f4d;
  --brand-700:#0d456c;
  --brand-600:#176189;
  --accent-600:#a96d12;
  --accent-500:#d2a34a;
  --accent-300:#eed397;
  --surface-0:#ffffff;
  --surface-1:#fffdf8;
  --surface-2:#f3eee3;
  --surface-3:#e7edf0;
  --text-900:#15212b;
  --text-700:#485964;
  --border-strong:#aebdc5;
  --border-soft:#d7dfe3;
  --focus-ring:#f5bd4f;
  --danger-700:#8d3028;
  --success-700:#286447;
  --media-700:#5a3c78;
  --culture-700:#8d3d4c;
  --neighborhood-700:#2d665e;
  --transport-700:#185b82;
  --community-700:#79541e;
  --radius-control:14px;
  --radius-card:22px;
  --radius-pill:999px;
  --control-h:52px;
  --control-h-compact:44px;
  --shadow-control:0 6px 16px rgba(6,29,49,.12);
  --shadow-control-hover:0 12px 28px rgba(6,29,49,.18);
  --shadow-card:0 10px 28px rgba(6,29,49,.12);
  --shadow-card-hover:0 18px 42px rgba(6,29,49,.2);
  --motion-fast:160ms;
  --motion-standard:220ms;
  --ease-out:cubic-bezier(.2,.75,.25,1);
}

.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}
.ui-icon{width:1.15em;height:1.15em;display:inline-block;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.16em}
.ui-icon.large{width:1.45em;height:1.45em}
.text-icon{display:grid;place-items:center;min-width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.12);font-weight:900;letter-spacing:-.05em}

button,a,[role="button"]{
  -webkit-tap-highlight-color:transparent;
}
button:not(:disabled),a[href],[role="button"]{cursor:pointer}
button,
.btn,
.utility-button,
.command-action,
.assistant-launch,
.install-card,
.urgent-card,
.intent-card,
.experience-card,
.region-card,
.task-starter,
.task-guide-card,
.compact-resource,
.neighborhood-image,
.neighborhood-actions button,
.media-actions a,
.media-actions button,
.resource-body footer button,
.region-actions button,
.media-filter-chips button,
.explore-tabs button,
.saved-tabs button,
.official-tool,
.mini-item,
.support-app-banner button,
.assistant-quick button,
.assistant-form button,
.assistant-result,
.modal-close{
  transition:transform var(--motion-fast) var(--ease-out),box-shadow var(--motion-standard) var(--ease-out),background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,filter var(--motion-standard) ease,opacity var(--motion-fast) ease;
}
button:active:not(:disabled),
.btn:active:not(:disabled),
a[role="button"]:active{
  transform:translateY(1px) scale(.985);
}
button:disabled,[aria-disabled="true"]{cursor:not-allowed;opacity:.55;filter:saturate(.45);box-shadow:none!important}
button[aria-busy="true"],.btn[aria-busy="true"]{position:relative;pointer-events:none;color:transparent!important}
button[aria-busy="true"]::after,.btn[aria-busy="true"]::after{content:"";position:absolute;width:18px;height:18px;left:50%;top:50%;margin:-9px 0 0 -9px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:button-spin .7s linear infinite;color:var(--surface-0)}
@keyframes button-spin{to{transform:rotate(360deg)}}

:focus-visible{outline:3px solid var(--focus-ring)!important;outline-offset:3px!important}

/* Core button components */
.btn{
  min-height:var(--control-h);
  padding:0 20px;
  border-radius:var(--radius-control);
  border:1px solid transparent;
  font-size:.9rem;
  font-weight:850;
  line-height:1.15;
  letter-spacing:.005em;
  white-space:normal;
  text-align:center;
  box-shadow:var(--shadow-control);
}
.btn.primary{
  background:linear-gradient(135deg,var(--brand-700),var(--brand-900));
  color:#fff;
  border-color:rgba(255,255,255,.08);
}
.btn.primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-control-hover);filter:saturate(1.08)}
.btn.secondary{
  background:var(--surface-0);
  color:var(--brand-900);
  border-color:var(--border-strong);
  box-shadow:0 3px 10px rgba(6,29,49,.07);
}
.btn.secondary:hover{transform:translateY(-2px);border-color:var(--brand-600);box-shadow:var(--shadow-control)}
.btn.light{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.5);box-shadow:none;backdrop-filter:blur(9px)}
.btn.light:hover{background:#fff;color:var(--brand-900);transform:translateY(-2px)}
.btn.small{min-height:var(--control-h-compact);padding:0 15px;font-size:.82rem}
.home-hero .btn.primary{background:linear-gradient(135deg,#f0c66d,#d49d39);color:#182b39;border-color:#f7da99}
.home-hero .btn.secondary{background:rgba(255,255,255,.95);border-color:#fff}

/* Icon and compact utility buttons */
.icon-button,.modal-close,#clearSearch,#assistantCloseBtn{
  min-width:44px;min-height:44px;width:44px;height:44px;padding:0;border-radius:13px;display:inline-grid;place-items:center;border:1px solid transparent;
}
.icon-button:hover,.modal-close:hover,#clearSearch:hover,#assistantCloseBtn:hover{transform:translateY(-1px);box-shadow:var(--shadow-control)}
.utility-button{
  min-height:44px;padding:0 13px;border:1px solid transparent;border-radius:13px;display:inline-flex;align-items:center;gap:8px;font-weight:780;
}
.utility-button:hover,.utility-button[aria-pressed="true"]{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28)}
.utility-button[aria-pressed="true"]::after{content:"On";font-size:.64rem;padding:2px 6px;border-radius:var(--radius-pill);background:var(--accent-300);color:var(--brand-900)}

/* Top command actions */
.command-bar{gap:12px}
.global-search{height:52px;border-radius:16px;background:#f5f7f8;border-color:#bdc9cf;box-shadow:inset 0 1px 0 #fff}
.global-search:focus-within{border-color:var(--brand-600);box-shadow:0 0 0 3px rgba(23,97,137,.14)}
.global-search #clearSearch{width:36px;min-width:36px;height:36px;min-height:36px;border-radius:10px}
.assistant-launch,.command-action{
  min-height:52px;border-radius:15px;padding:0 16px;font-weight:830;box-shadow:0 4px 12px rgba(6,29,49,.1)
}
.assistant-launch{background:linear-gradient(135deg,var(--brand-700),var(--brand-900));border:1px solid rgba(255,255,255,.08)}
.assistant-launch:hover{transform:translateY(-2px);box-shadow:var(--shadow-control-hover)}
.command-action{background:#f3eee2;border:1px solid #ddd2bd}
.command-action:hover{transform:translateY(-2px);background:#fff;border-color:var(--brand-600)}
.command-action b{min-width:24px;height:24px}

/* Navigation */
.side-nav nav{gap:6px}
.side-nav nav button{
  min-height:48px;border-radius:14px;padding:9px 11px;grid-template-columns:30px minmax(0,1fr) auto;position:relative;border:1px solid transparent;
}
.side-nav nav button .ui-icon{width:20px;height:20px;color:#e2c16f}
.side-nav nav button:hover{background:rgba(255,255,255,.11);color:#fff;border-color:rgba(255,255,255,.11);transform:translateX(2px)}
.side-nav nav button.active{background:#fff;color:var(--brand-900);border-color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.16)}
.side-nav nav button.active::before{content:"";position:absolute;left:-5px;top:11px;bottom:11px;width:4px;border-radius:999px;background:var(--accent-500)}
.side-nav nav button.active .ui-icon{color:var(--culture-700)}
.install-card{min-height:76px;border:1px solid #f0d89d;border-radius:16px;background:linear-gradient(135deg,#f2dfad,#e5c576);box-shadow:0 8px 18px rgba(0,0,0,.13)}
.install-card:hover{transform:translateY(-2px);box-shadow:0 13px 25px rgba(0,0,0,.18)}
.install-card .ui-icon{width:24px;height:24px}
.mobile-nav button{min-width:56px;min-height:52px;border-radius:14px;margin:4px 2px;color:#c7d4dc}
.mobile-nav button .ui-icon{width:21px;height:21px}
.mobile-nav button.active{color:#fff;background:rgba(255,255,255,.13);box-shadow:inset 0 -3px 0 var(--accent-500)}

/* Hero metric buttons */
.compass-metrics button{min-height:68px;border:1px solid rgba(255,255,255,.13);border-radius:14px;position:relative}
.compass-metrics button:hover{background:rgba(255,255,255,.15);transform:translateY(-2px)}
.compass-metrics button::after{content:"";position:absolute;left:14px;right:14px;bottom:7px;height:2px;border-radius:999px;background:var(--accent-500);opacity:.8}

/* Launch portal buttons */
.launch-strip{gap:12px}
.urgent-card{
  min-height:104px;border-radius:18px;padding:14px;border:1px solid #cdd7dc;background:linear-gradient(145deg,#fff,#f4f7f8);box-shadow:0 5px 14px rgba(6,29,49,.08);position:relative;overflow:hidden;
}
.urgent-card::after{content:"";position:absolute;right:13px;bottom:13px;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);opacity:.45}
.urgent-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card);border-color:var(--brand-600)}
.urgent-card>span,.urgent-card>.portal-icon{width:46px;height:46px;border-radius:14px;background:#e6eff4;color:var(--transport-700)}
.urgent-card:nth-of-type(3)>span{background:#e4eeeb;color:var(--neighborhood-700)}
.urgent-card:nth-of-type(4)>span{background:#eee8f5;color:var(--media-700)}
.urgent-card:nth-of-type(5)>span{background:#f5e7ea;color:var(--culture-700)}
.urgent-card:nth-of-type(6)>span{background:#f3ead7;color:var(--community-700)}
.urgent-card b{font-size:.9rem}.urgent-card small{font-size:.72rem;line-height:1.35;margin-top:2px}

/* Category photo cards */
.experience-grid{gap:16px}
.experience-card{
  min-height:286px;border-radius:var(--radius-card);border:1px solid rgba(255,255,255,.18);box-shadow:var(--shadow-card);isolation:isolate;overflow:hidden;text-align:left;padding:0;position:relative;color:#fff;background:var(--brand-900)
}
.experience-card:before{transition:transform 450ms var(--ease-out),filter 300ms ease;filter:saturate(.9) contrast(1.02)}
.experience-card:after{background:linear-gradient(180deg,rgba(4,18,30,.06) 12%,rgba(4,18,30,.35) 47%,rgba(4,18,30,.96) 100%)}
.experience-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}
.experience-card:hover:before{transform:scale(1.055);filter:saturate(1.05)}
.experience-card>div{padding:23px 22px 21px;display:flex;flex-direction:column;align-items:flex-start}
.experience-card small{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border-radius:var(--radius-pill);background:rgba(7,28,46,.64);backdrop-filter:blur(8px);font-size:.64rem}
.experience-card h3{font-size:1.5rem;margin:9px 0 7px}
.experience-card p{font-size:.82rem;line-height:1.45;max-width:38rem}
.experience-card div>b{margin-top:14px;min-height:40px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border-radius:12px;background:#fff;color:var(--brand-900);font-size:.76rem;box-shadow:0 5px 15px rgba(0,0,0,.16)}
.experience-icon{position:absolute!important;right:16px;top:16px!important;width:46px;height:46px;display:grid!important;place-items:center;border-radius:14px;background:rgba(7,28,46,.72);backdrop-filter:blur(10px);color:#f2cf7b;z-index:3}
.experience-icon .ui-icon{width:24px;height:24px}

/* Intent cards */
.intent-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.intent-card{
  min-height:178px;border-radius:20px;padding:20px;border:1px solid #d5ddd9;background:linear-gradient(145deg,#fff,#f9faf8);box-shadow:0 5px 15px rgba(6,29,49,.07);position:relative;overflow:hidden;
}
.intent-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--intent-accent,var(--brand-600))}
.intent-card:nth-child(1){--intent-accent:var(--transport-700)}
.intent-card:nth-child(2){--intent-accent:var(--brand-700)}
.intent-card:nth-child(3){--intent-accent:var(--media-700)}
.intent-card:nth-child(4){--intent-accent:var(--neighborhood-700)}
.intent-card:nth-child(5){--intent-accent:var(--community-700)}
.intent-card:nth-child(6){--intent-accent:var(--culture-700)}
.intent-card:hover{transform:translateY(-3px);border-color:var(--intent-accent);box-shadow:var(--shadow-card)}
.intent-card>span{width:46px;height:46px;display:grid;border-radius:14px;place-items:center;background:color-mix(in srgb,var(--intent-accent) 12%,#fff);color:var(--intent-accent);margin-bottom:13px}
.intent-card>span .ui-icon{width:23px;height:23px}
.intent-card b{font-size:1rem}.intent-card small{font-size:.78rem;line-height:1.48;padding-right:12px}
.intent-card::after{content:"";position:absolute;right:17px;top:24px;width:8px;height:8px;border-right:2px solid var(--intent-accent);border-bottom:2px solid var(--intent-accent);transform:rotate(-45deg);opacity:.65}

/* Section text actions */
.section-heading>button,.panel-heading>button,.section-heading>a{
  min-height:44px;padding:0 12px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--culture-700);font-weight:850;display:inline-flex;align-items:center;gap:7px;text-decoration:none;white-space:normal;text-align:left
}
.section-heading>button:hover,.panel-heading>button:hover,.section-heading>a:hover{background:#fff;border-color:#dbc7c5;transform:translateY(-1px)}

/* Compact resource and starter buttons */
.compact-resource,.task-starter,.mini-item{
  min-height:64px;border-radius:15px;border:1px solid var(--border-soft);background:#fff;box-shadow:0 3px 10px rgba(6,29,49,.06)
}
.compact-resource:hover,.task-starter:hover,.mini-item:hover{transform:translateY(-2px);border-color:var(--brand-600);box-shadow:var(--shadow-control)}
.compact-resource i,.task-starter>span:last-child{font-style:normal;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#edf2f5;color:var(--brand-700)}
.task-starter>i{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#e8eff3;color:var(--brand-700);font-style:normal}
.task-starter>i .ui-icon{width:22px;height:22px}

/* Resource cards */
.resource-card{border-radius:20px;border-color:#d1dade;box-shadow:0 5px 16px rgba(6,29,49,.08);overflow:hidden;background:#fff}
.resource-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}
.resource-image{min-height:126px;position:relative;overflow:hidden;background-size:cover;background-position:center}
.resource-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,24,40,.06),rgba(5,24,40,.68))}
.resource-image>span{position:absolute;left:12px;bottom:11px;z-index:1;background:rgba(6,29,49,.78);color:#fff;padding:5px 8px;border-radius:var(--radius-pill);font-size:.65rem;font-weight:850;backdrop-filter:blur(8px)}
.resource-body{padding:16px}.resource-body h3{font-size:1.02rem;line-height:1.25}.resource-body p{font-size:.8rem;line-height:1.47}
.resource-body footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:14px}
.resource-body footer button{
  min-height:46px;border-radius:13px;padding:0 13px;border:1px solid var(--border-strong);background:#fff;color:var(--brand-900);font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:7px
}
.resource-body footer button:first-child{background:var(--brand-900);border-color:var(--brand-900);color:#fff}
.resource-body footer button:hover{transform:translateY(-2px);box-shadow:var(--shadow-control)}
.save-inline.saved,[data-save-resource].saved,[data-save-media].saved{background:#e4f1e9!important;color:var(--success-700)!important;border-color:#8db69f!important;box-shadow:inset 0 0 0 1px rgba(40,100,71,.12)}
.save-inline.saved::after,[data-save-resource].saved::after,[data-save-media].saved::after{content:" ✓";font-weight:950}

/* Civic task cards */
.task-guide-grid{gap:16px}
.task-guide-card{
  min-height:286px;border-radius:var(--radius-card);border:1px solid #cfd9de;background:#fff;box-shadow:var(--shadow-card);overflow:hidden;text-align:left;padding:0;display:grid;grid-template-rows:112px 1fr;position:relative
}
.task-guide-card::before{content:"";grid-row:1;background-image:linear-gradient(90deg,rgba(5,24,40,.72),rgba(5,24,40,.12)),var(--task-image);background-position:center;background-size:cover}
.task-guide-card::after{content:"CIVIC GUIDE";position:absolute;left:15px;top:14px;background:rgba(5,24,40,.76);color:#f2d07c;padding:5px 8px;border-radius:var(--radius-pill);font-size:.62rem;font-weight:900;letter-spacing:.1em;backdrop-filter:blur(8px)}
.task-guide-card .task-icon{position:absolute;right:14px;top:14px;width:44px;height:44px;border-radius:14px;background:#fff;color:var(--brand-800);display:grid;place-items:center;box-shadow:0 5px 15px rgba(0,0,0,.16)}
.task-guide-card .task-icon .ui-icon{width:23px;height:23px}
.task-guide-card .task-copy{padding:17px;display:flex;flex-direction:column;min-width:0}
.task-guide-card h2{font-size:1.06rem;line-height:1.25;margin:0 0 8px}.task-guide-card p{font-size:.79rem;line-height:1.45;margin:0;color:var(--text-700)}
.task-guide-card footer{margin-top:auto;padding-top:13px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e4e9eb}
.task-guide-card footer span:first-child{font-size:.66rem;color:var(--text-700)}
.task-guide-card footer span:last-child{min-height:38px;display:inline-flex;align-items:center;gap:5px;padding:0 10px;border-radius:11px;background:#edf2f5;color:var(--brand-800);font-size:.7rem;font-weight:850}
.task-guide-card:hover{transform:translateY(-4px);border-color:var(--brand-600);box-shadow:var(--shadow-card-hover)}

/* Tabs, chips and selected states */
.explore-tabs,.saved-tabs{gap:8px;padding:6px;background:#e9edef;border:1px solid #d2dade;border-radius:17px;display:flex;overflow:auto}
.explore-tabs button,.saved-tabs button,.media-filter-chips button{
  min-height:44px;border-radius:12px;padding:0 14px;border:1px solid transparent;background:transparent;color:var(--text-700);font-weight:820;white-space:nowrap;display:inline-flex;align-items:center;gap:7px
}
.explore-tabs button:hover,.saved-tabs button:hover,.media-filter-chips button:hover{background:#fff;color:var(--brand-900);border-color:#c5d0d5}
.explore-tabs button.active,.saved-tabs button.active,.media-filter-chips button.active{
  background:#fff;color:var(--brand-900);border-color:var(--brand-600);box-shadow:0 4px 12px rgba(6,29,49,.12),inset 0 -3px 0 var(--accent-500)
}
.explore-tabs button.active::before,.saved-tabs button.active::before,.media-filter-chips button.active::before{content:"✓";font-size:.72rem;font-weight:950;color:var(--success-700)}
.media-filter-chips{gap:7px}
.media-filter-chips button{background:#fff;border-color:#cbd4d8}

/* Regions */
.region-card,.region-page-card{border-radius:var(--radius-card)}
.region-card{min-height:220px;border:1px solid rgba(255,255,255,.18);box-shadow:var(--shadow-card);position:relative;overflow:hidden}
.region-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,18,30,.02),rgba(3,18,30,.9));z-index:0}
.region-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover);filter:saturate(1.06)}
.region-card>*{z-index:1}.region-card b{min-height:38px;padding:0 10px;border-radius:11px;background:rgba(255,255,255,.94);color:var(--brand-900);display:inline-flex;align-items:center}
.region-actions{gap:9px}
.region-actions button{min-height:46px;border-radius:13px;padding:0 14px;font-weight:850;display:inline-flex;align-items:center;gap:7px}
.region-actions button:first-child{background:var(--brand-900);color:#fff;border-color:var(--brand-900)}
.region-actions button+button{background:#fff;color:var(--brand-900);border:1px solid var(--border-strong)}
.region-actions button:hover{transform:translateY(-2px);box-shadow:var(--shadow-control)}

/* Neighborhood cards */
.neighborhood-card{border-radius:var(--radius-card);border:1px solid #cad7d4;background:#fff;box-shadow:var(--shadow-card);overflow:hidden}
.neighborhood-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover)}
.neighborhood-image{min-height:210px;width:100%;border:0;border-radius:0;position:relative;text-align:left;color:#fff;background-size:cover;background-position:center;overflow:hidden}
.neighborhood-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,20,30,.05),rgba(3,20,30,.85))}
.neighborhood-image>span,.neighborhood-image>div{position:absolute;z-index:1}
.neighborhood-image>span{left:14px;top:14px;min-height:28px;display:inline-flex;align-items:center;padding:0 9px;border-radius:var(--radius-pill);background:rgba(6,29,49,.75);backdrop-filter:blur(8px);font-size:.64rem;font-weight:850}
.neighborhood-image>div{left:16px;right:16px;bottom:15px}.neighborhood-image h3{font-size:1.45rem}
.neighborhood-image:hover{filter:saturate(1.06)}
.neighborhood-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;padding:10px}
.neighborhood-actions button{min-height:46px;border-radius:13px;padding:0 12px;border:1px solid var(--border-strong);background:#fff;color:var(--brand-900);font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.neighborhood-actions button:first-child{background:var(--neighborhood-700);border-color:var(--neighborhood-700);color:#fff}
.neighborhood-actions button:hover{transform:translateY(-2px);box-shadow:var(--shadow-control)}

/* Multimedia cards */
.rich-media-card{border-radius:var(--radius-card);border:1px solid #d4d2dc;background:#fff;box-shadow:var(--shadow-card);overflow:hidden}
.rich-media-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover)}
.rich-media-card .media-card-image{min-height:190px;background-position:center;background-size:cover;overflow:hidden}
.media-format{min-height:28px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;border-radius:var(--radius-pill);background:rgba(45,24,63,.82);color:#fff;backdrop-filter:blur(8px);font-size:.65rem;font-weight:900}
.rich-media-card .media-card-image button{min-height:40px;padding:0 11px;border-radius:12px;background:rgba(255,255,255,.94);color:var(--media-700);border:1px solid #fff;font-weight:850;display:inline-flex;align-items:center;gap:6px}
.rich-media-card .media-card-image button:hover{transform:translateY(-2px);background:#fff;box-shadow:var(--shadow-control)}
.media-card-body{padding:16px}.rich-media-card h3{font-size:1.05rem;line-height:1.25}.rich-media-card .media-card-body>p{font-size:.79rem;line-height:1.47}
.media-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:14px}
.media-actions a,.media-actions button{min-height:48px;border-radius:13px;padding:0 13px;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-align:center;text-decoration:none}
.media-actions a{background:linear-gradient(135deg,var(--media-700),#3f2a58);color:#fff;border:1px solid var(--media-700)}
.media-actions button{background:#fff;color:var(--brand-900);border:1px solid var(--border-strong)}
.media-actions a:hover,.media-actions button:hover{transform:translateY(-2px);box-shadow:var(--shadow-control-hover)}
.media-desk-intro>button{min-height:48px;border-radius:14px;padding:0 16px;background:linear-gradient(135deg,var(--media-700),#3f2a58);color:#fff;border:0;font-weight:850;display:inline-flex;align-items:center;gap:7px;box-shadow:var(--shadow-control)}
.media-desk-intro>button:hover{transform:translateY(-2px);box-shadow:var(--shadow-control-hover)}

/* Official tools and external destinations */
.official-tool{min-height:176px;border-radius:20px;border:1px solid #b9c8d0;background:linear-gradient(145deg,#fff,#f2f7f9);padding:20px;position:relative;text-decoration:none}
.official-tool::after{content:"↗";position:absolute;right:16px;top:16px;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--brand-900);color:#fff;font-size:1rem}
.official-tool:hover{transform:translateY(-3px);border-color:var(--brand-600);box-shadow:var(--shadow-card)}

/* Form and destructive actions */
.panel form .btn.primary,.action-form>.btn.primary,.notebook-panel>.btn.primary{width:100%}
#clearCommunityDrafts,#clearActionDrafts,#clearPartnerDrafts,.draft-card button,.assistant-clear{
  min-height:44px;border-radius:12px;padding:0 13px;border:1px solid #d6aaa7;background:#fff7f6;color:var(--danger-700);font-weight:820
}
#clearCommunityDrafts:hover,#clearActionDrafts:hover,#clearPartnerDrafts:hover,.draft-card button:hover,.assistant-clear:hover{background:#f8e3e1;border-color:var(--danger-700);transform:translateY(-1px)}

/* Modals and source actions */
.modal-close{position:sticky;top:10px;float:right;margin:10px 10px 0 0;z-index:5;background:#fff;color:var(--brand-900);border-color:#c6d1d6;box-shadow:var(--shadow-control)}
.resource-modal-actions,.modal-actions{display:flex;flex-wrap:wrap;gap:9px;padding:16px}
.resource-modal-actions .btn,.modal-actions .btn{flex:1 1 160px}
.task-sources a,.neighborhood-tool-row a,.neighborhood-tool-row button,.action-source-list a{
  min-height:62px;border-radius:15px;border:1px solid #c9d5da;background:#fff;text-decoration:none;display:flex;flex-direction:column;justify-content:center;padding:11px 13px;position:relative
}
.task-sources a::after,.neighborhood-tool-row a::after,.action-source-list a::after{content:"↗";position:absolute;right:12px;top:12px;color:var(--brand-600);font-weight:900}
.task-sources a:hover,.neighborhood-tool-row a:hover,.neighborhood-tool-row button:hover,.action-source-list a:hover{transform:translateY(-2px);border-color:var(--brand-600);box-shadow:var(--shadow-control)}

/* Assistant */
.assistant-drawer>header button{min-width:44px;min-height:44px;border-radius:13px}
.assistant-quick button{min-height:44px;border-radius:12px;padding:8px 12px;border:1px solid #cbd6db;background:#fff;color:var(--brand-900);text-align:left}
.assistant-quick button:hover{transform:translateY(-1px);border-color:var(--brand-600);box-shadow:var(--shadow-control)}
.assistant-result{min-height:54px;border-radius:14px;border:1px solid #cbd6db;background:#fff;padding:10px 12px;text-align:left;text-decoration:none}
.assistant-result:hover{transform:translateY(-1px);border-color:var(--brand-600);box-shadow:var(--shadow-control)}
.assistant-form button{min-width:112px;min-height:48px;border-radius:13px;background:var(--brand-900);color:#fff;border:0;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:7px}

/* Support app is deliberately one quiet, separate door */
.support-app-banner{border-top:1px solid #8fb0c1;background:linear-gradient(110deg,#0a334f,#0d4568);color:#fff}
.support-app-banner button{min-height:50px;border-radius:14px;padding:0 18px;background:#fff;color:var(--brand-900);border:1px solid #fff;font-weight:850;display:inline-flex;align-items:center;gap:7px;box-shadow:var(--shadow-control)}
.support-app-banner button:hover{transform:translateY(-2px);box-shadow:var(--shadow-control-hover)}

/* Responsive behavior */
@media(max-width:1180px){.intent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
  .btn{min-height:50px}
  .command-action,.assistant-launch{min-height:48px}
  .experience-card{min-height:270px}
  .task-guide-card{min-height:270px}
}
@media(max-width:620px){
  .hero-actions .btn,.button-row .btn{width:100%}
  .intent-grid{grid-template-columns:1fr}
  .intent-card{min-height:145px}
  .launch-strip{gap:10px}
  .urgent-card{min-height:100px;padding:13px}
  .experience-card,.experience-card.featured{min-height:276px}
  .experience-card>div{padding:20px 18px}
  .experience-card h3{font-size:1.35rem}
  .resource-body footer,.media-actions{grid-template-columns:1fr auto}
  .neighborhood-actions{grid-template-columns:1fr 1fr 1fr}
  .neighborhood-actions button{padding:0 8px;font-size:.75rem}
  .explore-tabs,.saved-tabs{border-radius:15px}
  .explore-tabs button,.saved-tabs button,.media-filter-chips button{min-height:46px}
  .support-app-banner button{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  button:hover,.btn:hover,.experience-card:hover,.resource-card:hover,.rich-media-card:hover,.neighborhood-card:hover,.task-guide-card:hover,.region-card:hover{transform:none!important}
}

/* Progressive fallback for browsers without color-mix */
@supports not (color:color-mix(in srgb,red 50%,white)){
  .intent-card>span{background:#edf2f5}
}

/* Preserve the original responsive menu behavior after icon-button normalization. */
.menu-toggle{display:none}
@media(max-width:900px){.menu-toggle{display:inline-grid}}


/* Final touch-target normalization */
.brand{min-height:44px}
.global-search #clearSearch{width:44px;min-width:44px;height:44px;min-height:44px}
.rich-media-card .media-card-image button{min-height:44px}
.civic-prompt-buttons button,.civic-prompt-result button{min-height:44px;display:inline-flex;align-items:center;gap:7px}
.neighborhood-actions button{min-width:44px}
.site-footer a{min-height:44px;display:inline-flex;align-items:center;padding:0 4px}
