/* Keep the MOYO palette. Bound icons and clarify task hierarchy. */
button svg,.btn svg{width:18px;height:18px;flex:0 0 18px;display:block}
.btn{font-size:14px;white-space:nowrap;min-height:42px;font-weight:650}
.btn.small{font-size:13px;min-height:34px}.icon-btn{display:inline-grid;place-items:center}
h1{font-size:clamp(28px,3vw,40px);line-height:1.15;letter-spacing:-.04em}h2{font-size:22px}h3{font-size:16px}
.small,.crumb,.card-head p,.field label,.field input,.field select,.field textarea{font-size:14px}
.pill{font-size:12px}.eyebrow{font-size:11px}.muted{color:#5c7480}
.shell{grid-template-columns:218px minmax(0,1fr)}.nav button{font-size:14px;height:45px}.side-status p{font-size:12px}.side-status strong{font-size:13px}
main{max-width:1380px;padding:30px 32px 70px}.page-head{align-items:center}.page-head p{font-size:15px;max-width:670px}
.brand-sub{display:none}.topbar{padding:0 30px}.top-actions{flex-wrap:wrap}.page-head h1{margin:7px 0 10px}
.welcome{padding:28px;margin-bottom:24px;background:linear-gradient(110deg,#072433,#134557);color:white;display:flex;align-items:center;gap:30px;border-radius:18px}.welcome p{color:#c1d8e0;max-width:630px;margin-bottom:20px}.welcome h1{font-size:35px}.welcome .eyebrow{color:#67d7ec}.welcome-art{margin-left:auto;min-width:200px;padding:20px;border:1px solid #467082;border-radius:14px}.welcome-art strong{display:block;font-size:34px}.welcome-art span{color:#bfdae4;font-size:13px}
.button-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.section-gap{margin-top:24px}.stack{display:grid;gap:16px}.card{padding:23px}.card-head{align-items:center}.card-head p{max-width:640px}.card p:last-child{margin-bottom:0}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}.summary-grid .stat strong{font-size:25px}.stat span,.stat small{font-size:13px}.stat{padding:18px}
.campaign-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;border:1px solid var(--line);padding:23px;border-radius:14px;background:white}.campaign-card h3{font-size:19px;margin:0 0 5px}.campaign-card p{font-size:14px;margin:0}.campaign-meta{display:flex;gap:20px;margin:17px 0 0;flex-wrap:wrap}.campaign-meta span{font-size:13px;color:var(--muted)}.campaign-meta strong{color:var(--ink);display:block;font-weight:650;margin-top:3px}
.flowbar button{font-size:13px;min-width:135px;display:flex;align-items:center;gap:8px;justify-content:center}.step-num{width:23px;height:23px;border:1px solid #c6d5dc;border-radius:50%;display:grid;place-items:center;font-size:12px}.active .step-num{background:var(--navy);color:white;border-color:var(--navy)}
.notice{padding:14px 16px;border-radius:10px;background:#eaf7fa;border:1px solid #c5e5ed;font-size:14px;color:#245769}.notice.amber{background:#fff7e7;border-color:#f0d8af;color:#83531c}.notice.green{background:#eff9f4;border-color:#c5e8da;color:#21654c}.notice p{color:inherit;margin:5px 0 0;font-size:14px}
.muted-link{border:0;background:none;color:#087e99;padding:0;cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:3px}
.upload{min-height:220px;gap:9px}.upload h3{font-size:18px;margin:0}.upload p{font-size:14px;max-width:500px;margin:0 0 8px}.upload input{max-width:100%}.file strong{font-size:14px;overflow-wrap:anywhere}.file small{font-size:12px}.file-icon{font-size:11px}.files{gap:10px}
.split{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,.85fr);gap:20px;align-items:start}.source-summary{display:grid;gap:15px}.source-summary strong{font-size:14px}.source-summary p{font-size:13px;margin:3px 0 0}
th,td{font-size:14px;padding:12px 14px}th{font-size:11px;white-space:nowrap}.data-scroll{max-height:370px;overflow:auto;border:1px solid var(--line);border-radius:11px;overscroll-behavior:contain}.data-scroll table{min-width:580px}.data-scroll thead{position:sticky;top:0;z-index:2}.data-scroll th{background:#f2f7f8}.data-scroll tr:last-child td{border-bottom:0}.data-scroll tbody tr:hover{background:#f5fbfc}.table-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px;font-size:13px;color:var(--muted)}
.mapping-table{overflow:auto}.mapping-table select{border:1px solid #c7d5dc;border-radius:7px;padding:7px;background:white;max-width:230px}.mapping-table td small{display:block;color:var(--muted);margin-top:3px}.check strong{font-size:14px}.check p{font-size:13px}.check{padding:13px}.checks{margin:18px 0}
.field label{font-weight:650}.field small{color:var(--muted);font-size:12px}.fields-two{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.modal{width:min(730px,100%);padding:28px}.modal h2{font-size:26px}.modal-head p{font-size:14px}.modal-footer{position:sticky;bottom:-28px;background:white;padding:18px 0 0;margin-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}.modal .icon-btn{min-width:32px}.source-row{background:#f7fafb;padding:17px;border:1px solid var(--line);border-radius:12px;margin:12px 0}.source-row .field{margin:0}.source-row header{display:flex;justify-content:space-between;margin-bottom:12px}.source-row .btn{min-height:32px}details{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}summary{cursor:pointer;font-size:14px;color:var(--muted)}details .fields-two{margin-top:15px}
.studio{grid-template-columns:310px minmax(0,1fr);gap:22px}.studio-side{top:88px}.studio-side h3{margin-bottom:15px}.section-toggle{display:flex;gap:9px;align-items:center;margin:12px 0;font-size:14px}.section-toggle input{width:17px;height:17px;accent-color:#087e99}.canvas-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 12px}.report-hero{min-height:auto;padding:26px}.report-hero h2{font-size:29px;line-height:1.1}.report-hero p{font-size:14px;margin-bottom:0}.kpi span{font-size:13px}.kpi strong{font-size:24px}.kpi small{font-size:12px}.kpis{grid-template-columns:repeat(3,1fr)}.kpi{padding:20px}.report-canvas .kpis .kpi{padding:13px}.report-canvas .kpi strong{font-size:21px}
.public{max-width:1130px}.public-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:15px}.public-top p{font-size:13px;margin:0}.public-mast{padding:34px 38px}.public-brand{margin-bottom:34px}.public-mast h1{font-size:clamp(32px,4.5vw,56px);max-width:800px}.public-mast p{font-size:16px}.freshness span{font-size:13px}.public-section{padding:28px 0}.public-section>.card{padding:26px}.report-foot{font-size:12px;color:var(--muted);padding:22px 0}.client-logo-img{max-width:130px;max-height:55px;object-fit:contain}.public-brand .client-logo-img{width:auto}.client-wordmark{font-size:14px;letter-spacing:.08em;font-weight:700;border-left:1px solid #68828d;padding-left:18px}
.compact-field label{font-size:10px}.compact-field select{font-size:13px;height:38px}.chart{height:275px}.chart text{font-size:12px}.chart-tooltip{font-size:13px;min-width:180px;transform:translate(-50%,-105%)}.chart-tooltip strong{font-size:14px}.chart-hit{fill:transparent;cursor:crosshair;outline:none}.chart-hit:focus{stroke:#0c7289;stroke-width:2;fill:#18b8dc12}.chart-grid{stroke:#dce8ec}.chart-caption{font-size:12px;color:var(--muted);margin-top:8px}
.bar-list{display:grid;gap:18px;margin:22px 0 10px}.bar-label{display:flex;justify-content:space-between;font-size:14px;margin-bottom:8px}.bar-track{height:10px;background:#e8f1f3;border-radius:10px;overflow:hidden}.bar-track i{display:block;height:100%;background:#17afca;border-radius:10px}.insight-note{padding:20px;background:#ecf8fa;border-radius:12px;white-space:pre-wrap}.insight-note p{color:#264f5e;margin:0}
.journey-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.journey-grid .card{padding:26px}.journey-list{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:0}.journey-list li{display:flex;gap:13px;align-items:flex-start;padding:15px 0;border-bottom:1px solid var(--line);font-size:15px}.journey-list li:last-child{border:0}.journey-list b{color:#1192ad;font-size:13px;min-width:20px}.journey-list small{display:block;color:var(--muted);font-size:13px;margin-top:3px}
.chapter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:18px}.chapter{border:1px solid var(--line);background:white;padding:18px;text-align:left;border-radius:12px;cursor:pointer}.chapter:hover{border-color:#3bbcd5}.chapter span{display:block;font-size:12px;color:#118ca7;margin-bottom:14px}.chapter strong{display:block;font-size:15px}.chapter small{display:block;color:var(--muted);margin-top:5px;font-size:12px}
.tour-note{border:1px solid #8bccda;background:#edfafd;border-radius:14px;padding:17px 20px;margin-bottom:23px;display:flex;gap:20px;justify-content:space-between;align-items:center}.tour-note strong{font-size:16px}.tour-note p{font-size:14px;color:#476d7a;margin:5px 0 0;max-width:720px}.tour-note .eyebrow{margin-bottom:5px}.tour-step{color:#c7e0e9!important;height:auto!important;min-height:50px!important;text-align:left!important;align-items:flex-start!important;padding:9px!important}.tour-step b{display:grid;place-items:center;border:1px solid #376275;border-radius:50%;font-size:11px;min-width:22px;height:22px}.tour-step span{font-size:12px;line-height:1.5}.tour-target{box-shadow:0 0 0 3px #47bdd447,0 8px 25px #0b2b3c08}.prototype-tag{font-size:11px;background:#e6f4f7;color:#356472;padding:5px 8px;border-radius:6px}.empty{padding:45px 24px;text-align:center}.empty p{max-width:440px;margin:10px auto 20px}.error-text{color:#b13737;font-size:14px}.release-diff .diff span,.release-diff .diff strong{font-size:14px}.audit-list{font-size:13px;max-height:200px;overflow:auto;padding-left:20px}.audit-list li{margin-bottom:8px}
@media(max-width:1100px){.shell{grid-template-columns:185px minmax(0,1fr)}.brand img{width:110px;object-fit:contain}.nav button span,.side-label,.side-status{display:block}.nav button{justify-content:flex-start}.studio{grid-template-columns:265px minmax(0,1fr)}main{padding:24px}.chapter-grid{grid-template-columns:1fr 1fr}.welcome-art{display:none}.kpi strong{font-size:22px}}
@media(max-width:800px){.shell{display:block}.sidebar{height:auto;position:static;padding:14px}.sidebar .brand{height:40px}.sidebar .side-label,.sidebar .side-status{display:none}.nav{display:flex;margin-top:12px;overflow:auto}.nav button{width:auto;min-width:max-content}.nav .tour-step span{display:none}.topbar{height:auto;min-height:62px;padding:10px 15px}.top-actions .btn{display:inline-flex;font-size:12px;padding:0 9px}.top-actions .prototype-tag{display:none}main{padding:22px 15px}.page-head{align-items:flex-start}.welcome{padding:23px}.welcome h1{font-size:29px}.split,.studio,.journey-grid{grid-template-columns:1fr}.studio-side{position:static}.summary-grid{grid-template-columns:1fr 1fr}.summary-grid .stat:last-child{grid-column:1/-1}.campaign-card{grid-template-columns:1fr}.campaign-card>.button-row{justify-content:flex-start}.fields-two{grid-template-columns:1fr}.public-mast{padding:25px}.public-brand{align-items:flex-start}.brand-lockup{flex-direction:row;align-items:center}.client-wordmark{font-size:10px}.kpis{gap:6px}.kpi{padding:12px}.kpi strong{font-size:19px}.kpi span{font-size:11px}.kpi small{font-size:10px}.tour-note{display:block}.tour-note .button-row{margin-top:13px}.public-top{align-items:flex-start}.public-section>.card{padding:18px}.chart{height:230px}.chart text{font-size:14px}.modal{padding:21px}.modal-footer{bottom:-21px}.chart-tooltip{min-width:150px}.topbar .crumb{display:none}}
.client-view{max-width:1220px;padding:26px 36px 50px}.client-view .public{max-width:none}
@media(max-width:800px){.client-view{padding:18px 14px 40px}}
@media print{.sidebar,.topbar,.public-top,.controls,.table-footer button,.tour-note,.button-row{display:none!important}.shell{display:block}main{padding:0}.data-scroll{max-height:none;overflow:visible}.public-mast{print-color-adjust:exact}.public-section{break-inside:avoid}}
.kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.metric-picker{padding:18px 0;border-top:1px solid var(--line);margin-top:18px}.metric-picker h3{margin:0 0 5px}
.capability-summary{display:grid;gap:7px;margin:0 0 18px}.capability-summary span{display:block;padding:9px 10px;border-radius:8px;background:#f1f7f8;color:#4f6b76;font-size:12px}.capability-summary b{color:var(--ink);display:block;margin-bottom:2px}.custom-builder{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.custom-section p{white-space:pre-wrap;color:#395866}.custom-section a{display:inline-block;color:#087e99;font-weight:650;margin-top:5px}.custom-section small{display:block;color:var(--muted);margin-top:14px}
.login-screen{min-height:100vh;max-width:none;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 80% 15%,#14536a,#062433 52%)}
.login-card{width:min(520px,100%);padding:44px;border-radius:20px;background:white;box-shadow:0 28px 80px #001b2870}.login-card>img{width:120px;background:#082b3a;padding:14px;border-radius:10px;margin-bottom:35px}.login-card h1{font-size:42px;margin:10px 0 14px}.login-card p{color:var(--muted);font-size:17px}.login-user{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:14px;border-radius:12px;margin:28px 0}.login-user small{display:block;color:var(--muted);margin-top:2px}.login-card>.btn{width:100%}
.authority-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 18px}.authority-grid>div{border:1px solid var(--line);border-radius:10px;padding:13px;background:#f8fbfc}.authority-grid span,.authority-grid strong{display:block}.authority-grid span{font-size:12px;color:var(--muted);margin-bottom:4px}.authority-grid strong{font-size:14px}
.validation-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.validation-summary>div{padding:14px;border-radius:10px;background:#f3f8f9}.validation-summary span,.validation-summary strong,.validation-summary small{display:block}.validation-summary span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.validation-summary strong{font-size:24px;margin:5px 0}.validation-summary small{font-size:12px;color:var(--muted)}
.report-provenance{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:4px 0 20px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.report-provenance>div{padding:14px 16px;background:#f8fbfc}.report-provenance span,.report-provenance strong{display:block}.report-provenance span{font-size:11px;color:var(--muted);margin-bottom:4px}.report-provenance strong{font-size:13px}
.demo-option{display:flex;gap:12px;align-items:flex-start;border:1px solid #b9dce4;background:#f0fbfd;padding:16px;border-radius:12px;margin-top:16px}.demo-option input{width:18px;height:18px;accent-color:#087e99}.demo-option small{display:block;color:var(--muted);margin-top:3px}
.date-range{display:flex;justify-content:flex-end;gap:12px;margin:12px 0}.date-range label{font-size:12px;color:var(--muted)}.date-range input{display:block;margin-top:4px;border:1px solid #c7d5dc;border-radius:7px;padding:7px;color:var(--ink)}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.settings-wide{grid-column:1/-1}.settings-grid>.card>p{font-size:14px}.member-list{display:grid}.member-list>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.member-list p{margin:0}.member-list strong,.member-list small{display:block}.member-list small{font-size:13px;color:var(--muted);margin-top:2px}.quiet-avatar{background:#dce9ed;color:var(--ink)}
@media(max-width:800px){.authority-grid,.validation-summary,.report-provenance{grid-template-columns:1fr 1fr}.kpis{grid-template-columns:1fr 1fr}.login-card{padding:28px}.login-card h1{font-size:34px}.date-range{justify-content:flex-start;flex-wrap:wrap}}
body:not(.walkthrough) .public-top>p{display:none}

/* Final product polish: calmer surfaces, stronger hierarchy, and consistent interaction feedback. */
:root{
  --shadow:0 10px 28px rgba(6,29,43,.08);
  --shadow-sm:0 4px 12px rgba(6,29,43,.07);
  --r:12px;
  --r-lg:16px;
}
html{font-family:"Avenir Next",Avenir,"Segoe UI",ui-sans-serif,system-ui,sans-serif;font-size:16px}
body{letter-spacing:-.005em}
h1,h2,h3{letter-spacing:-.03em;text-wrap:balance}
h1{font-size:clamp(30px,3vw,42px);line-height:1.08}
h2{font-size:21px;line-height:1.25}
h3{font-size:16px;line-height:1.35}
p{line-height:1.6}
.small,.muted{line-height:1.5}
.eyebrow{letter-spacing:.09em;font-size:12px}
.card,.campaign-card,.report-block{box-shadow:none}
.card{border-color:#d5e1e6}
.btn{border-radius:8px;transition:background-color .14s ease,border-color .14s ease,color .14s ease}
.btn:hover{box-shadow:none;background:#f4f8f9;border-color:#a8bbc4}
.btn.primary:hover{background:#0e3445;border-color:#0e3445}
.btn.cyan:hover{background:#47cae5;border-color:#47cae5}
.btn:active{transform:none}
.nav button{border-radius:7px;transition:background-color .14s ease,color .14s ease}
.nav button.active{background:#183444}
.avatar{border-radius:8px;background:#0d566e}
.view{animation:fade-in .16s ease both}
@keyframes fade-in{from{opacity:.65}to{opacity:1}}
.welcome{border-radius:14px;background:#0b3041}
.welcome-art{border-radius:10px;background:rgba(255,255,255,.025)}
.campaign-card{border-radius:11px}
.campaign-card:hover{border-color:#a9c0c9;background:#fbfdfe}
.flowbar{border-radius:9px;background:#e6ecef}
.flowbar button{border-radius:7px}
.flowbar button.active{box-shadow:0 1px 3px rgba(6,29,43,.08)}
.upload{border-radius:10px;background:#f8fbfc}
.file,.check,.contract,.source-row,.chapter,.picker-item{border-radius:9px}
.file-icon,.check-mark,.job-icon{border-radius:7px}
.notice,.decision,.objective,.tour-note{border-radius:9px}
.notice{border-color:#c9e0e6;background:#f0f8fa}
.data-scroll{border-radius:9px}
th{letter-spacing:.045em}
tbody tr{transition:background-color .12s ease}
tbody tr:hover{background:#f5fafb}
.validation-summary{gap:0;border-block:1px solid var(--line);margin:18px 0 20px}
.validation-summary>div{padding:15px 16px;border-right:1px solid var(--line);border-radius:0;background:transparent}
.validation-summary>div:last-child{border-right:0}
.validation-summary span{font-size:12px;letter-spacing:.035em}
.validation-summary strong{font-size:25px;line-height:1.1}
.validation-summary small{font-size:13px}
.authority-grid{gap:0;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.authority-grid>div{border:0;border-right:1px solid var(--line);border-radius:0;background:#fbfdfe}
.authority-grid>div:nth-child(3n){border-right:0}
.capability-summary{gap:0;border-block:1px solid var(--line)}
.capability-summary span{padding:11px 2px;border-radius:0;border-bottom:1px solid var(--line);background:transparent}
.capability-summary span:last-child{border-bottom:0}
.source-row{background:#fbfdfe}
.studio{gap:18px}
.studio-side .card{padding:20px}
.report-hero{border-radius:13px;background:#0b3041}
.report-hero:after{display:none}
.report-block{border-radius:10px}
.block-head{background:#f6f9fa}
.kpi{border-radius:9px;background:#fff}
.public-mast{border-radius:16px;background:#082c3c}
.public-mast h1{font-size:clamp(34px,4vw,54px);line-height:1.04;letter-spacing:-.045em}
.public-kicker{letter-spacing:.1em}
.freshness span{border-radius:7px;background:rgba(255,255,255,.045)}
.report-provenance{border-radius:9px;background:transparent;gap:0}
.report-provenance>div{background:#f8fbfc;border-right:1px solid var(--line)}
.report-provenance>div:last-child{border-right:0}
.report-provenance span{font-size:12px}
.report-provenance strong{font-size:14px}
.client-note{border-left-width:3px;border-radius:0 9px 9px 0}
.info{border-radius:8px}
.chart-tooltip{border-radius:7px;box-shadow:0 5px 16px rgba(6,29,43,.16)}
.bar-track{border-radius:4px}.bar-track i{border-radius:4px}
.modal{border-radius:14px;box-shadow:0 20px 55px rgba(0,0,0,.22)}
.modal-wrap{backdrop-filter:blur(3px)}
.login-screen{background:#082c3c}
.login-card{border-radius:14px;box-shadow:0 18px 52px rgba(0,16,24,.28)}
.login-card>img{border-radius:7px}
.demo-option{border-radius:9px;background:#f2fafb}
.pill{border-radius:7px}
.pill:before{width:5px;height:5px}
.chapter:hover{background:#f6fbfc;box-shadow:none}
.tour-target{box-shadow:0 0 0 2px #47bdd45c}
@media(max-width:800px){
  html{font-size:16px}
  .validation-summary,.report-provenance{grid-template-columns:1fr 1fr}
  .validation-summary>div:nth-child(2){border-right:0}
  .validation-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .report-provenance>div:nth-child(2){border-right:0}
  .report-provenance>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .public-mast h1{font-size:clamp(32px,10vw,46px)}
  .page-head p,.card-head p,.upload p,.notice p{font-size:14px}
  .settings-grid{grid-template-columns:1fr}.settings-wide{grid-column:auto}
}
