:root{
  --p:#664e81;--ink:#3f3155;--olive:#8d9235;--bg:#f7f6fa;--line:#ddd7e4;
  --green:#27854a;--blue:#2877b8;--amber:#b98a19;--red:#d43a43;--gray:#737786;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.btn,button{background:var(--p);color:#fff;border:1px solid var(--p);padding:14px 20px;font-weight:700;cursor:pointer;appearance:none;border-radius:0;box-shadow:none}
.btn.ghost{background:#fff;color:var(--p);border:1px solid var(--p)}
.text-link{color:var(--p);font-weight:700}

.cm-header{min-height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 2vw;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:20}
.brand{display:grid;gap:4px}
.brand b{font:800 34px/1 Arial,sans-serif;letter-spacing:-2px;color:var(--p)}
.brand small{font:12px/1.4 Arial,sans-serif;letter-spacing:2px;text-transform:none}
.cm-header nav{display:flex;gap:20px;align-items:center;font:500 13px/1 Arial,sans-serif}

section{padding:28px 2vw}
.landing-main{overflow:hidden}
.hero.hero-full{min-height:560px;width:100%;background-size:cover;background-position:center right;display:grid;grid-template-columns:minmax(420px, 54%) 1fr;align-items:stretch;border-bottom:1px solid var(--line)}
.hero-copy{padding:72px 4vw 58px 4vw;display:flex;flex-direction:column;justify-content:center;max-width:860px}
.hero-copy>span{font:700 12px Arial,sans-serif;letter-spacing:5px;color:var(--p)}
.hero-copy h1{font:800 74px/0.98 Arial,sans-serif;letter-spacing:-2px;margin:16px 0;color:#4f3b67}
.hero-copy h1 em{font-style:normal;color:#7b58a2}
.hero-copy p{font:400 20px/1.5 Arial,sans-serif;max-width:610px;margin:0 0 26px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-quote{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-end;padding:46px 3vw;color:#fff;text-align:right}
.hero-quote small{font:700 13px/1.5 Arial,sans-serif;letter-spacing:3px;margin-top:8px;color:#f4f0f8}
.hero-quote p{max-width:240px;font:500 18px/1.45 Arial,sans-serif;margin-top:auto;margin-bottom:10px;color:#fff}

.countries{display:grid;grid-template-columns:1.8fr repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:0 2vw 10px}
.countries>*{background:#fff;padding:18px 14px;text-align:center;min-height:96px}
.country-intro{text-align:left !important;display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center}
.country-intro b{font-size:24px;line-height:1.15}
.country-intro small{grid-column:2;font-size:13px;line-height:1.45;color:#6c607b}
.country-badge{font-size:32px;color:var(--p)}
.countries a{display:grid;gap:7px;justify-items:center;align-content:center;font-family:Arial,sans-serif}
.countries a span{font-size:28px}
.countries a b{font-size:18px}

section>h2{font:800 42px/1.1 Arial,sans-serif;letter-spacing:-1px;margin:0 0 22px}
.roles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.roles article,.feature-grid article,.security>div,.visual-card{border:1px solid var(--line);background:#fff;padding:16px}
.role-head{display:flex;gap:12px;align-items:center;font-family:Arial,sans-serif;margin-bottom:14px}
.role-head i{width:46px;height:46px;display:grid;place-items:center;background:#eee7f7;font-style:normal;font-size:24px;color:var(--p)}
.role-head div{display:grid;gap:2px}
.role-head b{font-size:22px;line-height:1.1}
.role-head small{font-size:15px;color:#6b5f7a}
.roles img,.feature-grid img{width:100%;height:210px;object-fit:cover;margin:0 0 14px;border:1px solid var(--line)}
.roles ul,.feature-grid ul{padding-left:18px;min-height:104px;margin:0 0 16px;display:grid;gap:8px}
.roles li,.feature-grid li{line-height:1.35}
.roles a,.feature-grid a{color:var(--p);font-weight:700}

.pillars{display:grid;grid-template-columns:1.45fr repeat(6,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 2vw;margin-top:6px}
.pillars>div{padding:24px 16px;border-right:1px solid var(--line);display:grid;gap:6px;align-content:center}
.pillars>div:first-child{font:700 22px/1.25 Arial,sans-serif;letter-spacing:.3px}
.pillars>div:not(:first-child){text-align:center;font-size:28px}
.pillars b{font:700 14px Arial,sans-serif}
.pillars small{font:400 12px/1.35 Arial,sans-serif;color:#6f667b}

.states{background:#fbfafc;display:grid;grid-template-columns:1fr 280px;gap:18px;align-items:end}
.section-head h3{font:800 16px Arial,sans-serif;letter-spacing:1px;margin:0 0 4px}
.section-head p{margin:0 0 14px;font-size:14px;color:#6f667b}
.state-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.state-grid span{padding:18px 16px;display:grid;gap:4px;font-family:Arial,sans-serif;border:1px solid transparent}
.states-aside{border-left:1px solid var(--line);padding-left:18px;font:500 20px/1.45 Georgia,serif;color:var(--p)}
.verified{background:#e9f7ed;color:var(--green)}
.review{background:#eaf4ff;color:var(--blue)}
.pending{background:#fff6d9;color:var(--amber)}
.expired{background:#ffe9eb;color:var(--red)}
.unknown{background:#eef0f3;color:var(--gray)}

.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.feature-grid h3,.security h3{font:800 28px/1.15 Arial,sans-serif;letter-spacing:-.4px;margin:4px 0 10px}
.feature-grid p,.security p{font-size:15px;line-height:1.55;color:#5b5069;margin:0 0 12px}

.security{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.micro{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 18px}
.micro span{padding:10px 12px;border:1px solid var(--line);background:#faf8fd;font-size:14px}
.security ul{padding-left:18px;display:grid;gap:8px;margin:0 0 14px}

.cta{min-height:200px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:space-between;color:#fff;padding:42px 6vw;border-top:1px solid var(--line)}
.cta h2{font:800 42px/1.1 Arial,sans-serif;letter-spacing:-1px;margin:0 0 8px;color:#fff}
.cta p{margin:0;font-size:18px;opacity:.92}

.cm-footer{padding:24px 2vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center;font:500 13px/1.4 Arial,sans-serif;background:#fff}
.cm-footer strong{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cm-footer a{color:var(--p)}

.admin-shell{display:grid;grid-template-columns:210px 1fr;min-height:100vh;background:var(--bg);font-family:Arial,sans-serif}
.admin-shell aside{background:#fff;border-right:1px solid var(--line);padding:25px 14px;display:grid;align-content:start;gap:8px}
.admin-shell aside>b{font-size:40px;color:var(--p);margin-bottom:20px}
.admin-shell aside a{padding:12px;border:1px solid transparent}
.admin-shell aside .active{background:#eee8f6;color:var(--p);font-weight:700;border-color:#dfd0ef}
.registry,.visual-admin{padding:28px}
.registry>header,.visual-admin>header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.registry h1,.visual-admin h1{font:800 40px Arial,sans-serif;margin:6px 0;letter-spacing:-1px}
.header-actions{display:flex;gap:8px}
.country-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:20px 0}
.country-tabs button{background:#fff;color:var(--ink);border:1px solid var(--line)}
.policy{background:#eef6ff;border:1px solid #cfe4ff;padding:16px;display:grid;grid-template-columns:auto 1fr;gap:18px;margin-bottom:18px;align-items:start}
.registry-grid{display:grid;grid-template-columns:230px 1fr;gap:16px}
.filters{background:#fff;border:1px solid var(--line);padding:16px;height:max-content}
.filters label{display:grid;gap:6px;margin:14px 0}
.filters select,.filters input,.visual-card input,.modal input,.modal select,.modal textarea{padding:11px;border:1px solid var(--line);background:#fff;border-radius:0;box-shadow:none}
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}
.kpis span{background:#fff;border:1px solid var(--line);padding:12px;display:grid;gap:4px}
.registry table{width:100%;background:#fff;border-collapse:collapse;font-size:13px;border:1px solid var(--line)}
.registry th,.registry td{border-bottom:1px solid var(--line);padding:11px;text-align:left;vertical-align:top}
.badge{display:inline-block;padding:6px 9px;font-weight:700;font-size:11px;border-radius:0}
.badge.VERIFIED{background:#e9f7ed;color:var(--green)}
.badge.UNDER_REVIEW{background:#eaf4ff;color:var(--blue)}
.badge.PENDING_EVIDENCE{background:#fff6d9;color:var(--amber)}
.badge.EXPIRED{background:#ffe9eb;color:var(--red)}
.badge.UNKNOWN,.badge.ARCHIVED{background:#eef0f3;color:var(--gray)}
.actions{display:flex;gap:5px;flex-wrap:wrap}
.actions button{padding:7px 9px;font-size:11px}
.actions .revoke{background:#fff0f0;color:#bd2e36;border:1px solid #f2c4c7}
.modal{position:fixed;inset:0;background:#1e1628aa;display:grid;place-items:center;z-index:50}
.modal.hidden{display:none}
.modal form{background:#fff;padding:24px;width:min(520px,90vw);display:grid;gap:10px;border:1px solid var(--line)}

.visual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.visual-card{display:grid;gap:10px;align-content:start}
.visual-card span{font-weight:700}
.visual-card img{width:100%;height:210px;object-fit:cover;border:1px solid var(--line);background:#f6f3fa}
.visual-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.visual-help{font-size:14px;color:#6a6078}

@media(max-width:1200px){
  .countries{grid-template-columns:1fr repeat(4,1fr)}
  .hero.hero-full{grid-template-columns:minmax(320px, 1fr) 220px}
  .hero-copy h1{font-size:58px}
  .roles,.feature-grid,.visual-grid{grid-template-columns:repeat(2,1fr)}
  .pillars{grid-template-columns:repeat(3,1fr)}
  .states{grid-template-columns:1fr}
  .states-aside{border-left:0;border-top:1px solid var(--line);padding:16px 0 0}
}
@media(max-width:900px){
  .cm-header{padding:14px 16px;display:grid;gap:10px}
  .cm-header nav{flex-wrap:wrap;gap:12px}
  .cm-header nav a:not(.btn){display:none}
  .hero.hero-full{grid-template-columns:1fr;min-height:560px;background-position:center}
  .hero-copy{padding:48px 18px 20px}
  .hero-copy h1{font-size:44px}
  .hero-copy p{font-size:18px}
  .hero-quote{padding:18px 18px 26px;align-items:flex-start;text-align:left}
  .countries{grid-template-columns:1fr 1fr;margin:0 16px 10px}
  .country-intro{grid-column:1/-1}
  section{padding:24px 16px}
  .roles,.feature-grid,.security,.visual-grid{grid-template-columns:1fr}
  .pillars{grid-template-columns:repeat(2,1fr)}
  .state-grid{grid-template-columns:1fr}
  .cta{display:grid;gap:16px;padding:30px 18px}
  .admin-shell{grid-template-columns:1fr}
  .admin-shell aside{display:none}
  .registry-grid{grid-template-columns:1fr}
  .country-tabs{grid-template-columns:repeat(2,1fr)}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .registry,.visual-admin{padding:14px;overflow:auto}
  .registry>header,.visual-admin>header{display:grid}
  .cm-footer{display:grid;justify-content:start}
}
.visual-picker-actions{display:grid;grid-template-columns:1fr auto;gap:8px}
.visual-picker-actions .media-pick{background:var(--p);color:#fff;border:1px solid var(--p)}
.visual-picker-actions .media-clear{background:#fff;color:var(--red);border:1px solid #efc6ca}

/* CANNAMED visual invariants — no rounded geometry */
button,.btn,input,select,textarea,.visual-card,.roles article,.feature-grid article,.security>div,.badge,.modal form,.policy,.countries,.state-grid span,.file-upload-btn{border-radius:0!important}
.file-upload-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--p);color:#fff;border:1px solid var(--p);padding:10px 12px;font-weight:700;cursor:pointer}
.file-upload-btn input{display:none}
.visual-picker-actions{display:flex;gap:8px;flex-wrap:wrap}
.upload-status{min-height:18px;font-size:12px;color:#6f667b}
.countries a[aria-current="true"]{box-shadow:inset 0 -4px 0 var(--olive)}
