:root{--yellow:#f5b800;--yellow2:#ffd74a;--ink:#151713;--muted:#666b62;--paper:#f6f5ef;--white:#fff;--line:#dcded6;--green:#145c42;--red:#9b2c2c;--shadow:0 22px 70px rgba(30,32,26,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.topbar{height:76px;background:#11130f;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,28px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;font-weight:760;letter-spacing:-.02em;text-decoration:none;color:inherit}.brand-mark{background:var(--yellow);color:#11130f;padding:8px 10px;font-weight:950;letter-spacing:-.07em;border-radius:2px}.privacy-pill{font-size:13px;color:#c8cdc3;border:1px solid #3a3d36;border-radius:99px;padding:8px 12px}.privacy-pill span{display:inline-block;width:7px;height:7px;background:#61d093;border-radius:50%;margin-right:7px}.hero{max-width:1240px;margin:auto;min-height:580px;padding:84px 36px;display:grid;grid-template-columns:1.05fr .95fr;gap:76px;align-items:center}.eyebrow,.kicker{color:#957000;font-weight:850;font-size:12px;letter-spacing:.18em}.hero h1{font-size:clamp(48px,6vw,82px);line-height:.96;letter-spacing:-.055em;margin:18px 0 25px}.hero h1 em{font-style:normal;color:#a77c00}.hero-copy{font-size:18px;line-height:1.65;color:var(--muted);max-width:620px}.hero-actions{display:flex;gap:12px;margin-top:34px}.button{appearance:none;border:0;border-radius:5px;padding:14px 21px;font-weight:800;font-size:14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:.2s transform,.2s background}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--yellow);color:#17170f}.button.primary:hover{background:var(--yellow2)}.button.ghost{background:white;color:var(--ink);border:1px solid var(--line)}.preview-card{background:#171914;color:white;border-radius:9px;padding:26px;box-shadow:var(--shadow);transform:rotate(1.2deg);min-height:410px}.preview-head{display:flex;justify-content:space-between;border-bottom:1px solid #383b33;padding-bottom:18px;font-size:12px;letter-spacing:.12em}.preview-head span{color:#c8cabc}.preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:21px 0}.preview-grid div{background:#252820;padding:17px 13px;border-radius:4px}.preview-grid .yellow{background:var(--yellow);color:#17170f}.preview-grid small,.preview-grid span{display:block;font-size:9px;letter-spacing:.08em;opacity:.7}.preview-grid strong{display:block;font-size:27px;margin:9px 0}.bars{height:175px;display:flex;gap:11px;align-items:end;padding:20px 8px 0;border-bottom:1px solid #45483e}.bars i{display:block;flex:1;background:var(--yellow);border-radius:2px 2px 0 0}.preview-foot{display:grid;grid-template-columns:repeat(4,1fr);font-size:8px;color:#989d91;text-align:center;padding-top:15px}.workspace{background:white;padding:82px max(4vw,24px) 100px}.section-heading{max-width:1120px;margin:0 auto 32px}.section-heading h2{font-size:38px;letter-spacing:-.04em;margin:8px 0}.steps{max-width:1120px;margin:0 auto 22px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.step{border:0;background:#efefe9;color:#767a70;padding:14px;text-align:left;font-weight:750;cursor:pointer;border-radius:4px}.step span{display:inline-grid;place-items:center;width:25px;height:25px;background:#d9dbd3;border-radius:50%;margin-right:8px}.step.active{background:#171914;color:white}.step.active span{background:var(--yellow);color:#171914}.panel{display:none;max-width:1120px;margin:auto;background:#fbfbf8;border:1px solid var(--line);border-radius:8px;padding:34px;box-shadow:0 15px 40px rgba(25,27,22,.06)}.panel.active{display:block}.panel-title{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:28px}.panel-title h3{font-size:28px;letter-spacing:-.035em;margin:7px 0}.panel-title p{color:var(--muted);margin:0}.calendar-icon,.input-icon{width:56px;height:56px;background:var(--yellow);display:grid;place-items:center;font-weight:900;font-size:18px;border-radius:5px}.date-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:end;max-width:760px;margin:10px auto 30px}.arrow{font-size:26px;padding-bottom:13px;color:#8c9087}label{display:grid;gap:8px;font-size:12px;font-weight:800;color:#555b51;text-transform:uppercase;letter-spacing:.06em}input,select{width:100%;border:1px solid #cfd2c8;background:white;border-radius:4px;padding:13px 12px;font:inherit;color:var(--ink);outline:none}input:focus,select:focus{border-color:#ae8100;box-shadow:0 0 0 3px rgba(245,184,0,.15)}.notice,.placeholder-note{background:#fff8db;border-left:4px solid var(--yellow);padding:16px 18px;display:flex;gap:8px;flex-direction:column;margin:20px 0}.notice span,.placeholder-note span{color:#6a685f;font-size:13px}details{margin-top:22px}summary{cursor:pointer;font-weight:750}.field-grid{display:grid;gap:14px;margin-top:18px}.field-grid.four{grid-template-columns:repeat(4,1fr)}.panel-actions{display:flex;justify-content:space-between;margin-top:30px}.file-count{text-align:center;background:#191b16;color:white;padding:11px 18px;border-radius:5px}.file-count b{font-size:25px;display:block;color:var(--yellow)}.file-count span{font-size:10px}.upload-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.upload-card{position:relative;background:white;border:1px dashed #b9bdb2;padding:20px;border-radius:6px;display:flex;gap:14px;align-items:center;cursor:pointer;min-height:92px}.upload-card:hover{border-color:#b48600;background:#fffdf5}.upload-card.ready{border-style:solid;border-color:#54a27e}.upload-card input{position:absolute;inset:0;opacity:0;cursor:pointer}.platform-dot{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#20221d;color:white;font-size:13px;font-weight:900}.upload-card strong,.upload-card small{display:block}.upload-card small{color:var(--muted);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}.mapping-area{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}.mapping-platform{margin:14px 0;background:white;padding:16px;border:1px solid var(--line);border-radius:5px}.mapping-platform h4{margin:0 0 14px}.mapping-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.mapping-grid label{font-size:9px}.manual-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.manual-card{background:white;border:1px solid var(--line);padding:20px;border-radius:6px}.manual-card h4{margin:0 0 17px;font-size:18px}.manual-card .field-grid{grid-template-columns:repeat(2,1fr)}.readiness{background:#eceee8;color:#62675e;padding:10px 14px;border-radius:99px;font-size:12px;font-weight:800}.readiness.ready{background:#dff4e8;color:var(--green)}#alerts .alert{padding:13px 15px;border-radius:4px;margin:9px 0;background:#fff3d0;color:#705800;font-size:13px}.summary-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:6px}.summary-table{width:100%;border-collapse:collapse;background:white;min-width:760px}.summary-table th{background:#1b1d18;color:white;text-align:left;padding:14px;font-size:12px}.summary-table th:not(:first-child){text-align:right}.summary-table td{padding:14px;border-bottom:1px solid #e6e7e1;font-size:13px}.summary-table td:not(:first-child){text-align:right;font-weight:760}.winner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.winner-card{background:white;border:1px solid var(--line);border-top:4px solid var(--yellow);padding:16px;border-radius:4px}.winner-card small{color:#777c71;text-transform:uppercase;font-size:9px;letter-spacing:.08em}.winner-card h4{font-size:14px;margin:9px 0}.winner-card p{font-size:12px;color:var(--muted);margin:0}footer{background:#11130f;color:white;padding:28px max(5vw,28px);display:flex;justify-content:space-between;align-items:center}footer p{color:#9ea397;font-size:12px}#toast{position:fixed;right:24px;bottom:24px;background:#171914;color:white;padding:13px 18px;border-radius:4px;box-shadow:var(--shadow);transform:translateY(120px);opacity:0;transition:.25s;z-index:50}#toast.show{transform:none;opacity:1}
.map-status{float:right;font-size:10px;padding:5px 8px;border-radius:99px}.map-status.mapped{background:#dff4e8;color:var(--green)}.map-status.needs-map{background:#fff0c0;color:#745800}.missing-select{border-color:#c78e00;background:#fffaf0}.data-problem{display:flex;flex-direction:column;gap:5px;background:#fde8e4;border-left:4px solid #b74735;color:#742b20;padding:15px;margin-bottom:18px}.data-problem span{font-size:13px}
.platform-date-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.platform-date-card{background:white;border:1px solid var(--line);border-radius:6px;padding:18px}.platform-date-card h4{display:flex;align-items:center;gap:10px;margin:0 0 16px;font-size:17px}.platform-date-card .platform-dot{width:34px;height:34px;font-size:10px}.range-fields{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:10px}.range-fields>span{padding-bottom:13px;color:#8c9087}.platform-date-card>small{display:block;color:var(--muted);font-size:11px;margin-top:12px}
.sync-option{display:flex;grid-template-columns:none;align-items:center;gap:8px;margin:-7px 0 14px;text-transform:none;letter-spacing:0;font-size:12px}.sync-option input{width:16px;height:16px;accent-color:var(--yellow)}input:disabled{background:#f0f1ec;color:#73776e}
@media(max-width:850px){.hero{grid-template-columns:1fr;padding-top:55px}.preview-card{transform:none}.steps{grid-template-columns:repeat(2,1fr)}.upload-grid,.manual-grid,.platform-date-grid{grid-template-columns:1fr}.field-grid.four,.mapping-grid{grid-template-columns:repeat(2,1fr)}.winner-grid{grid-template-columns:1fr}.panel{padding:23px}.topbar .privacy-pill{display:none}}

/* Required-month and immediate upload-validation states. */
.button:disabled{cursor:not-allowed;opacity:.48;transform:none}
label small{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:0;text-transform:none}
.month-pick{align-items:start}.month-pick>label{align-content:start;grid-auto-rows:max-content}.month-pick>label>input{height:48px}
.upload-slot{min-width:0}
.upload-card.invalid{border-style:solid;border-color:#c8463a;background:#fff8f7}
.upload-error{display:none;margin:7px 4px 0;color:#a12d24;font-size:12px;line-height:1.35}
.upload-error.visible,.upload-error.warning{display:block}
.upload-error.warning{color:#7a5c00}
@media(max-width:520px){.hero{padding:45px 20px}.hero h1{font-size:48px}.workspace{padding-left:14px;padding-right:14px}.steps{grid-template-columns:1fr}.date-grid,.range-fields{grid-template-columns:1fr}.arrow,.range-fields>span{display:none}.field-grid.four,.manual-card .field-grid,.mapping-grid{grid-template-columns:1fr}.panel-title{gap:12px}.panel-title h3{font-size:23px}.preview-grid{grid-template-columns:1fr}.preview-card{min-height:auto}footer{align-items:flex-start;gap:18px;flex-direction:column}}
footer .legal{text-align:right}footer .legal p{margin:4px 0}footer .developer-credit{color:#7f857b}
.color-card{grid-column:1/-1}.color-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.color-head h4{margin-bottom:6px}.color-head small{display:block;color:var(--muted);font-size:12px}.color-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:20px}.color-field{background:#f7f8f4;border:1px solid var(--line);border-radius:5px;padding:12px;text-transform:none;letter-spacing:0}.color-field span{font-size:12px}.color-field input[type=color]{height:42px;padding:3px;cursor:pointer;border-radius:5px}
@media(max-width:520px){footer .legal{text-align:left}}
@media(max-width:850px){.color-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.color-grid{grid-template-columns:1fr}.color-head{flex-direction:column}}
.confidence{display:inline-block;padding:3px 8px;border-radius:999px;background:#fff2cc;color:#7a5400;font-size:.7rem;font-weight:800;margin-bottom:5px}.confidence.high,.confidence.confirmed{background:#dff5e5;color:#176b35}.confidence.review{background:#fff2cc;color:#7a5400}.classification-table small{display:block;max-width:190px;color:#6b7280;line-height:1.35}.manual-card>small{display:block;color:#667085;line-height:1.45;margin:-7px 0 12px}.classification-table td:nth-child(5){min-width:190px;text-align:left;font-weight:500}.classification-table input[type="url"]{min-width:190px;width:100%;box-sizing:border-box}
.creative-upload{margin-top:20px;background:#171914;color:white;border-radius:7px;padding:22px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 22px;align-items:center}.creative-upload h3{margin:5px 0 6px;font-size:20px}.creative-upload p{margin:0;color:#c7cbc2;font-size:13px;line-height:1.45}.creative-file{position:relative;min-width:170px}.creative-file input{position:absolute;inset:0;opacity:0;cursor:pointer}.creative-status{grid-column:1/-1;border-top:1px solid #383b33;padding-top:13px;color:#c7cbc2;font-size:12px}.creative-status.ready{color:#75d5a4}.creative-status.error{color:#ff9d91}.creative-review{margin-top:28px}.creative-review-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.creative-review-head h3{margin-bottom:5px}.creative-review-head p{margin:0 0 14px;color:var(--muted);font-size:13px}.creative-match-summary{margin-bottom:14px;background:#171914;color:white;padding:10px 14px;border-radius:4px;font-size:12px;font-weight:800;white-space:nowrap}.creative-match-table{min-width:980px}.creative-match-table th:not(:first-child),.creative-match-table td:not(:first-child){text-align:left}.creative-match-table td{vertical-align:middle;font-weight:500}.creative-post-copy{display:block;max-width:340px;line-height:1.4}.creative-post-copy small{display:block;color:#697066;margin-top:5px}.creative-select{min-width:290px}.creative-preview{width:88px;height:110px;object-fit:contain;background:#eff1ed;border:1px solid #d9ddd4;border-radius:3px;display:block}.creative-preview.landscape{width:150px;height:84px}.creative-status-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850}.creative-status-pill.matched,.creative-status-pill.manual{background:#dff5e5;color:#176b35}.creative-status-pill.review{background:#fff2cc;color:#7a5400}.creative-status-pill.unmatched{background:#fce5e2;color:#912f25}.creative-score{display:block;color:#687067;font-size:11px;margin-top:5px}.carousel-choice{margin-top:7px;padding:8px;font-size:11px;min-width:120px}
.creative-review-toggle{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;padding:4px 6px 4px 0;display:inline-flex;align-items:center;gap:9px;cursor:pointer;text-align:left}.creative-review-toggle:hover{color:#8a6700}.creative-review-toggle:focus-visible{outline:3px solid rgba(174,129,0,.35);outline-offset:3px;border-radius:3px}.creative-review-chevron{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#f5b800;color:#171914;font-size:25px;line-height:1;transition:transform .18s ease}.creative-review-toggle[aria-expanded="true"] .creative-review-chevron{transform:rotate(90deg)}#creativeMatchContent[hidden]{display:none}
@media(max-width:850px){.creative-upload{grid-template-columns:1fr}.creative-file{justify-self:start}.creative-review-head{align-items:flex-start;flex-direction:column}.creative-match-summary{white-space:normal}}

/* Optional on-device X screenshot OCR and verification. */
.twitter-ocr-card{grid-column:1/-1}.twitter-ocr-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.twitter-ocr-head h4 span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#766118;background:#fff2bd;border-radius:99px;padding:4px 7px;margin-left:7px;vertical-align:middle}.twitter-ocr-head>label{min-width:220px}.twitter-ocr-drop{margin-top:18px;min-height:150px;border:2px dashed #b8bdb2;border-radius:7px;background:#fbfcf8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;padding:24px;cursor:pointer}.twitter-ocr-drop:hover,.twitter-ocr-drop.over,.twitter-ocr-drop:focus{border-color:#a97d00;background:#fff9df;outline:none}.twitter-ocr-drop>span{font-size:12px;color:var(--muted)}.twitter-ocr-file{position:relative;margin-top:8px}.twitter-ocr-file input{position:absolute;inset:0;opacity:0}.twitter-ocr-progress{margin-top:16px;padding:15px;background:#171914;color:white;border-radius:6px}.twitter-ocr-progress>div{display:flex;justify-content:space-between;gap:14px}.twitter-ocr-progress progress{width:100%;height:12px;margin:10px 0 5px;accent-color:var(--yellow)}.twitter-ocr-progress small{color:#cbd0c6}.twitter-ocr-list{display:grid;gap:14px;margin-top:16px}.twitter-ocr-item{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;border:1px solid var(--line);border-radius:6px;padding:14px;background:white}.twitter-ocr-item.uncertain{border-color:#d2a51f;background:#fffdf4}.twitter-ocr-item>img{width:100%;height:190px;object-fit:contain;background:#111;border-radius:4px}.twitter-ocr-fields textarea{min-height:86px}.twitter-ocr-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.twitter-ocr-item-foot{display:flex;align-items:center;gap:12px;margin-top:12px}.twitter-ocr-item-foot .button{margin-left:auto;padding:9px 13px}.twitter-verified{display:flex;grid-template-columns:auto 1fr;align-items:center;text-transform:none;letter-spacing:0}.twitter-verified input{width:auto}
.twitter-ocr-local{margin-top:16px;border-left:4px solid var(--yellow);background:#fff8db;padding:13px 15px;display:flex;flex-direction:column;gap:4px}.twitter-ocr-local[hidden]{display:none}.twitter-ocr-local span{color:#655f4c;font-size:12px;line-height:1.4}.twitter-ocr-local code{font-size:11px}
@media(max-width:850px){.twitter-ocr-head{flex-direction:column}.twitter-ocr-head>label{width:100%;min-width:0}.twitter-ocr-item{grid-template-columns:130px minmax(0,1fr)}.twitter-ocr-numbers{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.twitter-ocr-item{grid-template-columns:1fr}.twitter-ocr-item>img{height:220px}.twitter-ocr-numbers{grid-template-columns:1fr}.twitter-ocr-item-foot{align-items:flex-start;flex-wrap:wrap}.twitter-ocr-item-foot .button{margin-left:0}}
.creative-deck-copy{display:block;max-width:420px;margin-top:7px;color:#6b7168;line-height:1.35}
.button.optional-export{background:#fff8db;color:#5f4800;border:1px solid #d7a900}.button.optional-export:hover{background:#ffefaa}
.notice.meta-exclusions{display:block;border-left:4px solid #d49600;background:#fffaf0;padding:20px;color:#33392e}
.meta-exclusions h3{font-size:18px;margin:0 0 8px}.meta-exclusions p,.meta-exclusions li,.meta-exclusions summary{font-size:14px;line-height:1.5}.meta-exclusions p{margin:8px 0}.meta-exclusions ul{margin:12px 0;padding-left:22px}.meta-exclusions summary{cursor:pointer;font-weight:700;padding:12px 0;color:#624600}.meta-exclusions summary:focus-visible,.meta-exclusion-scroll:focus-visible{outline:2px solid #624600;outline-offset:3px}.meta-exclusion-scroll{overflow:auto;max-height:420px;margin:8px 0}.meta-exclusions table{min-width:900px;width:100%;border-collapse:collapse;background:white}.meta-exclusions caption{text-align:left;font-size:14px;padding:10px;font-weight:700}.meta-exclusions table th,.meta-exclusions table td{text-align:left;vertical-align:top;font-size:14px;font-weight:400;padding:12px;border-bottom:1px solid #e3dfd3;white-space:normal;overflow-wrap:anywhere}.meta-exclusions table th{font-weight:700;background:#f1ebda;position:sticky;top:0}.meta-exclusions table td:nth-child(4){min-width:220px;max-width:360px}.meta-exclusions .meta-exclusion-note{color:#64695d;margin-top:14px}
