/* Lab · Experiment 01 — media planner.
   Re-skinned from GT_Digital_Agentic_Media_Lab_v2.html into the site system. Everything is scoped
   under .mp so it cannot leak into the site shell. The variable NAMES below are read by
   /assets/js/media-planner.js (charts, findings, tooltips) — rename none of them. */

.mp{
  /* the planner's own token names, mapped onto the site tokens */
  --bg:var(--c-ground); --panel:var(--c-raised); --panel-2:#0E1013; --sunken:var(--c-sunken);
  --line:#1F2329; --line-2:var(--c-rule);
  --ink:var(--c-text); --ink-2:var(--c-soft); --muted:var(--c-muted); --faint:#868C94;
  --accent:var(--c-signal); --accent-ink:var(--c-signal-ink); --accent-dim:var(--c-signal-dim); --accent-wash:rgba(183,255,67,.10);
  --s1:#3987e5; --s2:#d95926; --s3:#199e70;
  --good:#0ca30c; --warn:#fab219; --serious:#ec835a; --crit:#d03b3b;
  --grid:#1f2329; --axis:#333a42;
  --display:var(--f-sans); --body:var(--f-sans); --mono:var(--f-mono);
  --r:3px;
  font-size:15px;line-height:1.5;color:var(--ink)
}
.mp h2,.mp h3,.mp h4{font-family:var(--display);text-wrap:balance;margin:0}
.mp .num{font-variant-numeric:tabular-nums}
.mp svg{display:block;max-width:100%}
.mp svg.ico{display:inline-block}

/* buttons inside the tool */
.mp .btn{font-family:var(--body);background:var(--accent);color:var(--accent-ink);padding:10px 16px;border-radius:2px;font-weight:600;font-size:14px;border:0;cursor:pointer;white-space:nowrap;min-height:44px;transition:background-color var(--d-fast)}
.mp .btn:hover{background:var(--c-signal-hover)}
.mp .btn[disabled]{opacity:.5;cursor:default}
.mp .ghost{font-family:var(--body);border:1px solid var(--line-2);padding:10px 16px;border-radius:2px;background:transparent;color:var(--ink);cursor:pointer;font-size:14px;font-weight:600;min-height:44px;transition:border-color var(--d-fast)}
.mp .ghost:hover{border-color:var(--ink)}
.mp .ghost.sm,.mp .btn.sm{padding:7px 12px;font-size:13px;min-height:36px}

/* sections */
.mp section{border-top:1px solid var(--c-rule);padding-block:clamp(56px,7vw,96px)}
.mp .sec-head{margin-bottom:36px;max-width:46rem}
.mp .eyebrow{font:500 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);margin-bottom:var(--s-4)}
.mp h2{font-size:var(--t-2xl);line-height:1.03;letter-spacing:-.03em;font-weight:600;margin-bottom:16px}
.mp .sub{max-width:62ch;color:var(--ink-2);font-size:var(--t-base);line-height:1.6}

/* planner shell */
.mp .planner{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:16px;align-items:start}
@media(max-width:1000px){.mp .planner{grid-template-columns:1fr}}
.mp .panel{border:1px solid var(--line-2);border-radius:var(--r);background:var(--panel);padding:22px;min-width:0}
.mp .panel.flat{background:var(--panel-2)}
.mp .panel h3{font-size:19px;letter-spacing:-.02em;font-weight:600}
.mp .panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.mp .hint{color:var(--faint);font-size:12.5px;line-height:1.5;margin:6px 0 0}

/* form */
.mp .field{margin-top:15px}
.mp label,.mp .lbl{display:block;color:var(--ink-2);font:500 11px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.mp input,.mp select,.mp textarea{width:100%;background:var(--sunken);border:1px solid var(--line-2);color:var(--ink);border-radius:2px;padding:10px 11px;font:inherit;font-size:14px;outline:none;min-height:42px}
.mp input:focus,.mp select:focus,.mp textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.mp textarea{min-height:76px;resize:vertical;line-height:1.5}
.mp select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 17px) 18px,calc(100% - 12px) 18px;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}
.mp .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mp .modes{display:grid;gap:7px}
.mp .mode{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line-2);border-radius:2px;padding:10px 12px;cursor:pointer;background:var(--sunken);text-transform:none;letter-spacing:0;font:inherit;color:var(--ink);margin:0}
.mp .mode:hover{border-color:var(--faint)}
.mp .mode input{width:auto;min-height:0;margin:3px 0 0;accent-color:var(--accent);flex:none}
.mp .mode b{display:block;font-size:13.5px;font-weight:600;color:var(--ink)}
.mp .mode small{color:var(--muted);font-size:12px;line-height:1.4;display:block}
.mp .mode:has(input:checked){border-color:var(--accent-dim);background:#0f1309}
.mp .form-actions{display:flex;gap:9px;margin-top:20px;flex-wrap:wrap}

/* agent output */
.mp .agent{display:grid;gap:16px;min-width:0}
.mp .status{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:16px}
.mp .status strong{font-size:14px;font-weight:600}
.mp .status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block;margin-right:8px;vertical-align:middle}
.mp .status-dot.busy{animation:mp-pulse 1s ease-in-out infinite}
@keyframes mp-pulse{50%{opacity:.25}}
.mp .small{color:var(--faint);font:500 11px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em}
.mp .log{background:var(--sunken);border:1px solid var(--line);border-radius:2px;padding:14px;font-family:var(--mono);font-size:12px;color:#A3AAB2;line-height:1.75;min-height:150px;max-height:270px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}
.mp .log b{color:var(--ink);font-weight:500}
.mp .log .ok{color:var(--accent)}
.mp .log .dim{color:var(--faint)}

/* stat tiles */
.mp .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:9px}
.mp .tile{border:1px solid var(--line);border-radius:2px;padding:13px 14px;background:var(--panel-2);min-width:0}
.mp .tile .k{font:500 10px/1.3 var(--mono);color:var(--faint);text-transform:uppercase;letter-spacing:.08em}
.mp .tile .v{font-family:var(--display);font-size:25px;font-weight:600;letter-spacing:-.03em;margin-top:6px;font-variant-numeric:tabular-nums;line-height:1.1;color:var(--ink)}
.mp .tile .v small{font-size:13px;font-weight:500;color:var(--ink-2);letter-spacing:0}
.mp .tile .d{font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.35}

/* charts */
.mp .chart-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:4px}
.mp .chart-title{font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:-.01em}
.mp .panel h3.chart-title{font-size:16px;letter-spacing:-.01em}
.mp .chart-note{color:var(--faint);font-size:12px}
.mp .chart-wrap{position:relative;margin-top:14px;min-width:0}
/* weekly spend: the engine fills bars with the signal colour; a solid row of it overpowers the page */
.mp #flightChart path[data-k]{fill:#5B7631;transition:fill var(--d-fast)}
.mp #flightChart path[data-k]:hover{fill:var(--accent)}

/* allocation bars */
.mp .alloc{display:grid;gap:11px;margin-top:4px}
.mp .arow{display:grid;grid-template-columns:minmax(92px,29%) minmax(0,1fr) 42px;gap:12px;align-items:center;font-size:13px;cursor:default}
.mp .arow .an{color:var(--ink);min-width:0;overflow-wrap:anywhere;line-height:1.3}
.mp .atrack{height:9px;background:#191d23;border-radius:1px;min-width:0}
.mp .afill{display:block;height:100%;border-radius:1px;background:var(--accent);min-width:3px}
.mp .arow .av{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.mp .arow.res .an,.mp .arow.res .av{color:var(--muted)}
.mp .arow.res .afill{background:var(--accent-dim)}
.mp .arow:hover .an{color:var(--accent)}
.mp .tt{position:absolute;pointer-events:none;opacity:0;transform:translate(-50%,-100%);background:#141821;border:1px solid var(--line-2);border-radius:2px;padding:8px 10px;font-size:12px;line-height:1.5;color:var(--ink);box-shadow:0 8px 24px rgba(0,0,0,.6);white-space:nowrap;z-index:5;transition:opacity .1s}
.mp .tt.on{opacity:1}
.mp .tt .tt-k{color:var(--muted)}
.mp .tt b{font-variant-numeric:tabular-nums;color:var(--ink)}
.mp .legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:12.5px;color:var(--ink-2)}
.mp .legend span{display:inline-flex;align-items:center;gap:7px}
.mp .swatch{width:10px;height:10px;border-radius:1px;flex:none}
.mp .swatch.line{height:3px;width:14px;border-radius:1px}

/* tables */
.mp .tbl-scroll{overflow-x:auto;margin-top:14px;min-width:0}
.mp .tbl-scroll:focus-visible,.mp .log:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mp table{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}
.mp th,.mp td{text-align:right;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.mp th:first-child,.mp td:first-child{text-align:left;white-space:normal}
.mp thead th{color:var(--faint);font:500 10px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;border-bottom-color:var(--line-2)}
.mp tbody td{font-variant-numeric:tabular-nums;color:var(--ink-2)}
.mp tbody td:first-child{color:var(--ink)}
.mp tbody tr:hover td{background:#13161B}
.mp tbody tr.sel td{background:#0f1309;color:var(--ink)}
.mp tfoot td{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;border-bottom:0;border-top:1px solid var(--line-2)}
.mp .ch-dot{display:inline-block;width:8px;height:8px;border-radius:1px;background:var(--accent);margin-right:8px}

/* findings */
.mp .findings{display:grid;gap:9px;margin-top:4px}
.mp .finding{display:grid;grid-template-columns:auto 1fr;gap:11px;border:1px solid var(--line);border-left-width:3px;border-radius:2px;padding:12px 14px;background:var(--panel-2);align-items:start}
.mp .finding .ico{width:16px;height:16px;flex:none;margin-top:2px}
.mp .finding h4{font-size:14px;font-weight:600;letter-spacing:-.01em;font-family:var(--body)}
.mp .finding p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.55}
.mp .finding p b{color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}
.mp .f-good{border-left-color:var(--good)}.mp .f-warning{border-left-color:var(--warn)}
.mp .f-serious{border-left-color:var(--serious)}.mp .f-critical{border-left-color:var(--crit)}
.mp .pill{display:inline-flex;align-items:center;gap:6px;border-radius:2px;padding:5px 10px;font:500 12px/1 var(--mono);letter-spacing:.02em;border:1px solid var(--line-2);background:var(--panel-2);color:var(--ink-2)}
.mp .pill .pd{width:7px;height:7px;border-radius:50%;flex:none}
.mp ul.gaps{margin:10px 0 0;padding-left:0;list-style:none;display:grid;gap:8px}
.mp ul.gaps li{color:var(--muted);font-size:13px;line-height:1.5;padding-left:18px;position:relative}
.mp ul.gaps li:before{content:"";position:absolute;left:3px;top:7px;width:5px;height:5px;border-radius:50%;background:var(--accent-dim)}
.mp ul.gaps li b{color:var(--ink-2);font-weight:600}

/* workflow */
.mp .flow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:28px}
.mp .node{border:1px solid var(--line-2);border-radius:2px;padding:9px 14px;color:var(--ink-2);font-size:13px;background:var(--panel)}
.mp .node.live{border-color:var(--accent-dim);color:var(--ink);background:#0f1309}
.mp .node.live::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:middle}
.mp .arrow{color:var(--faint);font-size:12px}
.mp .quote{font-family:var(--f-serif);font-size:var(--t-xl);line-height:1.2;letter-spacing:-.01em;max-width:28ch;margin-top:44px;font-weight:400}

/* model section */
.mp .model-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
@media(max-width:1000px){.mp .model-grid{grid-template-columns:1fr}}
.mp table.edit input{width:82px;min-height:0;padding:5px 7px;font-size:12px;text-align:right;border-radius:2px;font-variant-numeric:tabular-nums;font-family:var(--mono)}
.mp .method{display:grid;gap:14px}
.mp .method h4{font-size:14px;font-family:var(--body);font-weight:600}
.mp .method p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.6}
.mp .method code{font-family:var(--mono);font-size:12px;color:var(--ink-2);background:var(--sunken);border:1px solid var(--line);border-radius:2px;padding:1px 5px}
.mp .disclose{border:1px solid var(--accent-dim);background:#0e1209;border-radius:2px;padding:15px 17px;color:#CDD6C2;font-size:13px;line-height:1.6;margin-top:16px}
.mp .disclose b{color:#E6EEDA}

/* evidence rows below the console */
.mp .grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:16px;margin-top:16px}
.mp .brief-col{position:sticky;top:calc(var(--header-h) + 16px)}
@media(max-width:1000px){.mp .brief-col{position:static}}
.mp .seg{display:inline-flex;border:1px solid var(--line-2);border-radius:2px;padding:2px;gap:2px;background:var(--sunken)}
.mp .seg button{font-family:var(--body);background:transparent;border:0;color:var(--muted);font-size:12px;font-weight:600;padding:6px 11px;border-radius:1px;cursor:pointer;min-height:32px}
.mp .seg button[aria-pressed="true"]{background:var(--line-2);color:var(--ink)}
.mp .exports{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;align-items:center}
.mp .rowspan{grid-column:1/-1}
.mp .toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,14px);background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:14px;padding:11px 18px;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:90;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.mp .toast.on{opacity:1;transform:translate(-50%,0)}

@media(max-width:620px){
  .mp .panel{padding:17px}
  .mp .two{grid-template-columns:1fr}
}

/* masthead facts for this page */
.mp-facts{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin-top:var(--s-6)}
.mp-facts li{font:400 var(--t-xs)/1.5 var(--f-mono);color:var(--c-muted);letter-spacing:.02em}
.mp-facts b{font-weight:500;color:var(--c-text)}
.crumb{display:flex;gap:var(--s-2);list-style:none;font:500 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);margin-bottom:var(--s-5)}
.crumb a{color:var(--c-soft);text-decoration:none}
.crumb a:hover{color:var(--c-text);text-decoration:underline;text-underline-offset:.2em}
.crumb li+li::before{content:"/";margin-right:var(--s-2);color:var(--c-rule-strong)}

/* print: switch the planner to ink on paper so the plan is legible */
@media print{
  .site-header,.masthead,.mp .form-actions,.site-footer,#architecture,.mp .toast,.talk,.pager,.skip{display:none!important}
  .mp{--panel:#fff;--panel-2:#fff;--sunken:#fff;--line:#ccc;--line-2:#bbb;--ink:#000;--ink-2:#222;--muted:#444;--faint:#555;--accent:#3D6B00;--accent-dim:#9DB37A;--grid:#ddd;--axis:#999}
  .mp .panel{break-inside:avoid;border-color:#bbb}
  .mp .log{color:#333}
  .mp .disclose{background:#fff;color:#222}
  .mp section{border-color:#ccc;padding-block:24px}
}
