/* OTPOR v1.2 — visual language aligned with the legal assistant pages.
   Shared tokens: warm grey #f3f2ed, near-black #171817, orange #f2660d,
   soft off-white #fbfaf7, large organic corners and Inter/system typography.
   Overrides visuals only; behaviour/API and map layouts remain intact. */
:root {
  --op-bg:#f3f2ed;
  --op-paper:#fbfaf7;
  --op-ink:#171817;
  --op-muted:#6d6e69;
  --op-line:#d9d8d1;
  --op-orange:#f2660d;
  --op-dark:#171817;
  --op-radius:24px;
  --op-radius-sm:16px;
  --op-shadow:0 18px 55px rgba(24,24,20,.07);
  --op-accent-dark:#c65209;
}
/* Overall canvas / typography */
body.op-body, body.ma-body {
  background:var(--op-bg); color:var(--op-ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:15px; line-height:1.55; -webkit-font-smoothing:antialiased;
}
.op-body h1,.op-body h2,.op-body h3,.ma-body h1,.ma-body h2,.ma-body h3 {
  font-family:inherit;color:var(--op-ink);font-weight:760;letter-spacing:-.055em;
}
.op-body h1 {font-size:clamp(44px,5vw,78px);line-height:1.02}
.op-body h2 {font-size:clamp(30px,3.6vw,48px);line-height:1.06}
.op-body h3 {font-size:clamp(20px,2vw,28px);line-height:1.2}
.op-wrap {max-width:1460px;width:calc(100% - 84px)}
.op-body a,.ma-body a {transition:color .16s ease}
.op-body :focus-visible,.ma-body :focus-visible {outline:3px solid var(--op-orange);outline-offset:3px}
/* Navigation */
.op-header{background:rgba(243,242,237,.93);border-bottom:1px solid rgba(217,216,209,.85);backdrop-filter:blur(18px)}
.op-nav{min-height:84px}
.op-brand img{border-radius:14px;width:43px;height:43px}
.op-brand b{font-family:inherit;letter-spacing:-.055em;font-weight:850}
.op-brand b span{letter-spacing:.13em;color:var(--op-muted);font-weight:700}
.op-links>a{font-weight:650}
.op-links a[aria-current=page]:after{height:3px;background:var(--op-orange);border-radius:5px}
.op-links a:hover{color:var(--op-accent-dark)}
.op-button,.op-body .op-button {
  background:var(--op-orange);color:#fff!important;border-color:var(--op-orange);
  border-radius:15px;font-weight:760;min-height:50px;box-shadow:none;
}
.op-button:hover,.op-body .op-button:hover {background:var(--op-accent-dark);border-color:var(--op-accent-dark);color:#fff!important}
.op-button-outline,.op-body .op-button-outline {background:var(--op-paper);border:1px solid var(--op-line);color:var(--op-ink)!important}
.op-button-outline:hover,.op-body .op-button-outline:hover {background:#fff1e7;border-color:#efad80;color:var(--op-ink)!important}
.op-button-dark,.op-body .op-button-dark{background:var(--op-ink);border-color:var(--op-ink);color:#fff!important}
.op-button-dark:hover,.op-body .op-button-dark:hover{background:#33312d;border-color:#33312d;color:#fff!important}
.op-button-ghost,.op-body .op-button-ghost{background:var(--op-paper);color:var(--op-ink)!important;border:1px solid var(--op-line)}
.op-button-ghost:hover,.op-body .op-button-ghost:hover{background:white;color:var(--op-ink)!important}
.op-eyebrow,.ma-eyebrow {color:var(--op-accent-dark);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.op-eyebrow:before{content:"";width:28px;height:2px;display:inline-block;background:var(--op-orange);flex-shrink:0}
.op-dot{background:var(--op-orange)}
/* Main hero, built on the exact pale image/gradient language of legal.html */
.op-home-hero{
  position:relative;overflow:hidden;color:var(--op-ink);
  border-bottom:1px solid var(--op-line);
  padding:88px 0 56px;
  background:linear-gradient(90deg,rgba(243,242,237,.985) 0%,rgba(243,242,237,.95) 43%,rgba(243,242,237,.77) 69%,rgba(243,242,237,.22) 100%),url('../assets/home-hero.jpg') center/cover no-repeat;
}
.op-home-hero .op-eyebrow{color:var(--op-accent-dark)}
.op-hero-grid{grid-template-columns:minmax(0,1.28fr) minmax(360px,.77fr);align-items:center;gap:clamp(24px,5vw,72px);padding:24px 0 34px}
.op-home-hero h1{color:var(--op-ink);font-family:inherit;font-weight:820;font-size:clamp(47px,5.6vw,88px);line-height:1.02;letter-spacing:-.064em;max-width:980px}
.op-home-hero h1 em{font-family:inherit;font-style:normal;font-size:1em;color:var(--op-ink);font-weight:820}
.op-hero-intro{max-width:850px}
.op-hero-intro>p{color:#555752;font-size:clamp(17px,1.3vw,20px);line-height:1.7;margin:22px 0 28px;max-width:720px}
.op-hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.op-info-card{background:rgba(251,250,247,.9);border:1px solid rgba(217,216,209,.85);border-radius:40px;padding:34px 38px;box-shadow:var(--op-shadow);backdrop-filter:blur(16px)}
.op-info-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--op-line);font-size:14px}
.op-info-head b{font-weight:800}
.op-info-head>span{color:var(--op-muted);font-size:12px}
.op-info-row{display:block;padding:20px 0;border-bottom:1px solid var(--op-line);text-decoration:none}
.op-info-row:last-child{border:0;padding-bottom:0}
.op-info-row strong{font-size:16px;font-weight:780;display:block;color:var(--op-ink)}
.op-info-row small{font-size:13px;color:var(--op-muted);display:block;margin-top:4px;line-height:1.5}
.op-info-row:hover strong{color:var(--op-accent-dark)}
.op-hero-bottom{border-top:1px solid var(--op-line);color:var(--op-muted);font-size:11px;letter-spacing:.01em}
/* Three platform destinations: soft large cards */
.op-directions{padding-top:32px;gap:16px}
.op-direction{border-radius:30px;border:1px solid var(--op-line);padding:30px;min-height:350px;box-shadow:0 12px 38px rgba(24,24,20,.035)}
.op-direction:hover{border-color:#e8b08b;transform:translateY(-4px);box-shadow:0 20px 45px rgba(24,24,20,.08)}
.op-direction-news{background:#fbfaf7}
.op-direction-legal{background:#edece6}
.op-direction-map{background:#f4e9df}
.op-direction-top{font-weight:800;font-size:10px;color:#a94b12;letter-spacing:.12em}
.op-direction-top svg{color:var(--op-orange);stroke-width:1.65}
.op-direction h2{font-size:clamp(28px,2.8vw,42px);font-weight:800;letter-spacing:-.055em;line-height:1.07}
.op-direction p{color:#5e5f5a;font-size:14px;line-height:1.65}
.op-direction-bottom{font-size:13px;border-top-color:var(--op-line)}
.op-direction-bottom svg{color:var(--op-orange)}
/* Latest posts and general cards */
.op-section{padding-top:76px;padding-bottom:66px}
.op-news-grid{gap:18px}
.op-news-card{padding:16px 16px 22px;border-radius:26px;border:1px solid var(--op-line);background:var(--op-paper);box-shadow:0 8px 30px rgba(24,24,20,.035);overflow:hidden;gap:14px}
.op-news-cover,.op-news-placeholder{border-radius:18px}
.op-news-meta b{color:var(--op-accent-dark);font-weight:750}
.op-news-card h3{font-weight:780;line-height:1.2;letter-spacing:-.045em}
.op-news-read{color:var(--op-accent-dark);font-weight:750}
.op-empty{background:var(--op-paper);border:1px solid var(--op-line);border-radius:24px}
.op-contribute{background:#ece9e2;color:var(--op-ink);border:1px solid var(--op-line);border-radius:32px;padding:38px 42px}
.op-contribute h2{color:var(--op-ink);font-weight:800}
.op-contribute p,.op-contribute .op-eyebrow{color:var(--op-muted)}
.op-contribute-icon{border:1px solid #e1b08b;background:#f9eee3;border-radius:24px}
.op-contribute-icon svg{stroke:var(--op-orange)}
.op-method>div:not(:first-child){border-top-color:var(--op-line)}
.op-footer{background:#eeede8;border-top:1px solid var(--op-line);font-family:inherit}
/* Subpage introduction panels */
.op-page-hero{margin-top:30px;margin-bottom:12px;padding:46px 48px;border-radius:34px;border:1px solid var(--op-line);background:linear-gradient(95deg,rgba(243,242,237,.98),rgba(243,242,237,.87) 60%,rgba(243,242,237,.56)),url('../assets/home-hero.jpg') 75% 40%/cover no-repeat}
.op-page-hero h1{font-weight:820;max-width:1000px;letter-spacing:-.06em}
.op-page-hero .op-eyebrow{color:var(--op-accent-dark)}
.op-breadcrumb{color:var(--op-muted);font-size:12px}
.op-lead{font-size:18px;line-height:1.7;color:#555752;max-width:760px}
.op-filters{background:#eae8e2;border:1px solid var(--op-line);border-radius:24px;padding:18px}
.op-body input,.op-body select,.op-body textarea{background:var(--op-paper);color:var(--op-ink);border:1px solid var(--op-line);border-radius:14px;padding:13px 15px;font-family:inherit}
.op-body input:focus,.op-body select:focus,.op-body textarea:focus{outline:2px solid #f4ab7b;outline-offset:1px;border-color:var(--op-orange)}
.op-pagination button,.op-pagination a{border-radius:12px}
.op-article-cover{border-radius:28px}
.op-article h1{font-weight:820}
.op-prose blockquote{border-left:4px solid var(--op-orange);background:#f3eee8;border-radius:0 18px 18px 0;padding:16px 22px}
/* If the fallback platform legal layout is loaded, theme it too */
.op-legal-hero{background:linear-gradient(90deg,rgba(243,242,237,.98),rgba(243,242,237,.86) 65%,rgba(243,242,237,.4)),url('../assets/home-hero.jpg') center/cover;color:var(--op-ink)}
.op-legal-hero h1,.op-legal-hero h1 em{color:var(--op-ink);font-family:inherit;font-style:normal;font-weight:820}
.op-legal-hero p{color:var(--op-muted)}
.op-legal-hero .op-eyebrow{color:var(--op-accent-dark)}
.op-legal-hero .op-breadcrumb{color:var(--op-muted)}
.op-topic{border-radius:24px;background:var(--op-paper)}
.op-topic:hover{background:#fff0e4}
.op-topic>span{color:var(--op-accent-dark)}
.op-legal .ai-help-shell{background:#edeae3;border-radius:30px}
.op-legal .ai-chat-card{border-radius:24px}
/* User report / form */
.op-form-card{border-radius:32px;background:var(--op-paper);padding:clamp(22px,3vw,42px);box-shadow:var(--op-shadow)}
.op-form-heading>span{background:#ffeadb;color:var(--op-accent-dark);border-radius:11px;padding:7px 10px;font-weight:800}
.op-report-aside{border-radius:30px}
.op-location-details,.op-picker-map{border-radius:20px;overflow:hidden}
.op-report-tip{border-radius:17px}
.op-success{border-radius:30px}
.op-toast{border-radius:16px}
/* Legacy/map overlays */
.op-map-layout{border-radius:28px}
.op-event-item,.op-event-detail,.op-map-legend,.op-map-note{border-radius:22px}
.op-event-item:hover,.op-event-item[aria-pressed=true]{border-color:#efad80;background:#fff4eb}
.op-map-status{border-radius:16px}
/* Workspace map: keep its grid / scroll interaction, recolour and soften */
.ma-body{
  --ma-accent:#f2660d;--ma-border:#d9d8d1;--ma-muted:#6d6e69;
  color:var(--op-ink);background:var(--op-bg)
}
.ma-body h1,.ma-body h2,.ma-body h3{font-family:inherit;color:var(--op-ink);letter-spacing:-.035em;font-weight:780}
.ma-header{background:rgba(243,242,237,.97);border-bottom:1px solid var(--op-line);font-family:inherit}
.ma-brand strong{font-weight:850;color:var(--op-ink)}
.ma-brand img{border-radius:14px}
.ma-heading{color:var(--op-muted);border-color:var(--op-line)}
.ma-tabs button{border-radius:14px;font-weight:650;color:var(--op-ink)}
.ma-tabs .is-active,.ma-tabs button[aria-pressed=true]{background:var(--op-orange);color:#fff;font-weight:800}
.ma-tabs button:hover{background:#fff0e6}
.ma-tabs .is-active:hover,.ma-tabs button[aria-pressed=true]:hover{background:var(--op-accent-dark);color:#fff}
.ma-select{border:1px solid var(--op-line);border-radius:14px;background:var(--op-paper)}
.ma-select>span{color:var(--op-muted)}
.ma-body .ma-select select{color:var(--op-ink)}
.ma-action{border-color:var(--op-line);color:var(--op-ink);background:var(--op-paper);border-radius:14px;font-weight:750}
.ma-report{background:var(--op-orange);border-color:var(--op-orange);color:white!important}
.ma-report:hover{background:var(--op-accent-dark)}
.ma-layout{gap:12px;padding:12px;background:var(--op-bg)}
.ma-feed,.ma-analytics,.ma-timeline{background:var(--op-paper);border:1px solid var(--op-line);border-radius:26px;min-height:0;overflow:hidden}
.ma-feed{border-right:1px solid var(--op-line)}
.ma-feed>.ma-panel-title,.ma-analytics{background:var(--op-paper)}
.ma-panel-title h1,.ma-panel-title h2{font-weight:800;font-size:13px;letter-spacing:-.025em;text-transform:none}
.ma-panel-title>span{background:#f4e9df;color:var(--op-accent-dark);border-radius:12px}
.ma-event{border:1px solid var(--op-line);background:#fffefa;border-radius:16px;padding:13px;gap:10px}
.ma-event:hover,.ma-event[aria-pressed=true]{border-color:#efaa79;background:#fff3e9}
.ma-event-image,.ma-event-symbol{border-radius:12px}
.ma-event h3{font-weight:700;color:var(--op-ink)}
.ma-event-location i{background:var(--op-orange)}
.ma-feed-bottom{border-color:var(--op-line);color:var(--op-muted)}
.ma-feed-more{background:var(--op-paper);color:var(--op-accent-dark);font-weight:760}
.ma-map-area{border:1px solid var(--op-line);border-radius:26px;overflow:hidden}
.ma-search>svg{color:var(--op-muted)}
.ma-body .ma-search input,.ma-floating{border:1px solid var(--op-line);background:var(--op-paper);color:var(--op-ink);border-radius:14px}
.ma-suggestions{background:var(--op-paper);border-radius:18px;border:1px solid var(--op-line)}
.ma-suggestions button{border-radius:10px}
.ma-suggestions button:hover{background:#ffebdc}
.ma-floating:hover{background:#fff0e5;border-color:#e7b28d}
.ma-floating[aria-pressed=true]{background:#ffe5d3}
.ma-map-area .maplibregl-ctrl-group{border-radius:14px;overflow:hidden}
.ma-region-chip{background:#fff0e4;color:#965024;border:1px solid #eebf9f;border-radius:14px}
.ma-legend{background:rgba(251,250,247,.97);border:1px solid var(--op-line);border-radius:20px;padding:16px}
.ma-map-status{background:rgba(251,250,247,.94);border-radius:14px;color:var(--op-muted)}
.ma-case-card{background:var(--op-paper);border:1px solid var(--op-line);border-radius:24px;box-shadow:var(--op-shadow)}
.ma-case-photo{border-radius:16px}
.ma-mode{background:#ffeadb;color:#93501d;border-bottom:1px solid #efd1bd}
.ma-analytics .ma-metrics>div,.ma-metrics>div{border-radius:16px}
.ma-analytic-block{border-radius:19px}
.ma-periods button,.ma-block-title>button,.ma-period-counts button,.ma-date-inputs button{border-radius:12px}
.ma-periods .is-active{background:var(--op-orange);color:white}
.ma-dialog{background:var(--op-paper);border:1px solid var(--op-line);border-radius:26px}
.ma-body .ma-date-inputs input{border-radius:12px}
/* Editor dashboard */
.admin-body{background:var(--op-bg)}
.ad-sidebar{background:#eeece6;border-right:1px solid var(--op-line);color:var(--op-ink)}
.ad-sidebar .op-brand{color:var(--op-ink)}
.ad-sidebar .op-brand b{font-weight:850}
.ad-sidebar-caption{color:var(--op-accent-dark);font-size:10px;font-weight:800}
.ad-sidebar nav button,.ad-sidebar nav a{color:#4d4e4a;border-radius:14px;font-size:13px;font-weight:680}
.ad-sidebar nav span{color:var(--op-accent-dark)}
.ad-sidebar nav button:hover,.ad-sidebar nav a:hover{background:#ffeadb;color:var(--op-ink)}
.ad-sidebar nav .is-active{background:var(--op-orange);color:white;font-weight:800}
.ad-sidebar nav .is-active span{color:white}
.ad-sidebar nav b{background:var(--op-orange);color:#fff;border-radius:10px}
.ad-sidebar-bottom{border-top:1px solid var(--op-line);color:var(--op-muted)}
.ad-sidebar-bottom p{color:var(--op-muted)}
.ad-sidebar-bottom a{color:var(--op-accent-dark)}
.ad-top .op-eyebrow{color:var(--op-accent-dark)}
.ad-top h1{font-size:clamp(38px,3.6vw,62px);font-weight:830}
.ad-stats{gap:14px}
.ad-stats button{background:var(--op-paper);border:1px solid var(--op-line);border-radius:24px;padding:22px}
.ad-stats button:hover{border-color:#ebad82;background:#fff9f5}
.ad-stats strong{font-weight:800;letter-spacing:-.06em}
.ad-stats small{color:var(--op-muted)}
.ad-stats .ad-stat-accent{background:#f9e7d9;border-color:#edc7ac}
.ad-stat-accent span,.ad-stat-accent small{color:#8c4c28}
.ad-panel{background:var(--op-paper);border:1px solid var(--op-line);border-radius:30px;padding:clamp(18px,2.5vw,34px)}
.ad-panel-heading h2{font-weight:800}
.ad-table tbody tr:hover{background:#fff2e8}
.ad-state{border-radius:999px}
.ad-dialog{background:var(--op-bg);border:1px solid var(--op-line);border-radius:30px}
.ad-dialog::backdrop{background:#17181799}
.ad-dialog-head{background:var(--op-paper)}
.ad-toolbar button{border-radius:10px}
.ad-editor-side,.ad-preview,.ad-report-original,.ad-private{border-radius:19px}
.ad-cover-preview{border-radius:18px}
.ad-close{border-radius:50%;background:var(--op-paper)}
/* Consistent link and focus behaviour */
@media(hover:hover){.op-news-card:hover{border-color:#ebad83;box-shadow:0 16px 38px rgba(24,24,20,.075)}}
@media(max-width:1100px){
  .op-hero-grid{grid-template-columns:minmax(0,1fr) minmax(300px,.9fr);gap:24px}
  .op-home-hero h1{font-size:clamp(44px,5vw,68px)}
  .op-info-card{padding:28px}
}
@media(max-width:900px){
  .op-wrap{width:calc(100% - 40px)}
  .op-home-hero{padding:62px 0 38px}
  .op-hero-grid{grid-template-columns:1fr;gap:24px;padding:22px 0 30px}
  .op-hero-aside{padding-top:0}
  .op-info-card{max-width:none}
  .op-directions{grid-template-columns:1fr 1fr}
  .op-direction{min-height:300px}
  .op-page-hero{padding:34px}
}
@media(max-width:650px){
  .op-wrap{width:calc(100% - 30px)}
  .op-home-hero{padding:42px 0 22px;background:linear-gradient(95deg,rgba(243,242,237,.96),rgba(243,242,237,.85)),url('../assets/home-hero.jpg') center/cover}
  .op-home-hero h1{font-size:clamp(38px,10vw,55px)}
  .op-hero-intro>p{font-size:16px}
  .op-info-card{padding:23px;border-radius:28px}
  .op-info-row{padding:16px 0}
  .op-hero-bottom{gap:10px;flex-wrap:wrap}
  .op-directions{grid-template-columns:1fr;gap:12px}
  .op-direction{border-radius:24px;min-height:270px;padding:25px}
  .op-news-card{border-radius:24px}
  .op-page-hero{margin-top:15px;padding:28px 22px;border-radius:26px}
  .op-page-hero h1{font-size:clamp(35px,9vw,48px)}
  .op-filters{border-radius:19px}
  .op-contribute{padding:28px;border-radius:26px}
  .ma-header{background:var(--op-bg)}
  .ma-layout{gap:7px;padding:7px}
  .ma-feed,.ma-analytics,.ma-timeline,.ma-map-area{border-radius:17px}
  .ma-case-card{border-radius:18px}
  .ad-panel,.ad-dialog{border-radius:22px}
  .ad-stats button{border-radius:18px}
}
@media(prefers-reduced-motion:reduce){.op-direction,.op-button,.op-news-card{transition:none}}
