:root{--primary:#177863;--ink:#263730;--muted:#82918a;--line:#e7ece8}body{background:#f6f8f5;color:var(--ink)}aside{background:#172f29;border:0;width:236px;padding-top:34px}.brand{color:#fff;letter-spacing:1px}.brand b,.login-brand{background:#b4e4c5;color:#163d2f;border-radius:12px}.brand-sub{color:#8aaca0;letter-spacing:2px;margin-top:3px}.nav-label{color:#759589;margin-top:9px;margin-bottom:7px}nav{gap:8px}nav a{color:#b4c9bf;padding:13px 16px}nav a:hover{background:#254238}nav a.active{background:#c3e6cb;color:#173c2d}.nav-icon{display:flex;align-items:center;justify-content:center}.nav-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sidebar-foot{border-color:#2b443a;color:#d0dfd6}.sidebar-foot small{color:#719686}.sidebar-foot button{color:#b8cfc4}.avatar{background:#e4efe6;color:#285a45}.main-area{margin-left:236px}header{height:77px;background:#fff;padding:0 40px}.header-label{font-size:12px;color:#8b9a91;letter-spacing:2px}main{padding:34px 40px;max-width:1600px}.page-heading{margin-bottom:28px}h1{font-size:27px;letter-spacing:-.8px}.eyebrow{color:#8fa295;letter-spacing:2px;font-size:10px}.page-heading .muted{margin-top:8px}.hero-banner{position:relative;overflow:hidden;background:#e3ede4;border:1px solid #d8e5da;padding:33px 37px;border-radius:16px;min-height:219px;margin-bottom:25px;display:flex;align-items:center}.hero-banner h2{font-size:24px;letter-spacing:-.6px;font-weight:600;color:#244c39;margin:0 0 9px}.hero-banner p{font-size:13px;color:#6d8b78;max-width:480px}.hero-banner .eyebrow{color:#6e937b;margin-bottom:12px}.primary-link{display:inline-flex;align-items:center;gap:30px;padding:10px 17px;color:white;background:#245c45;border-radius:7px;font-size:12px;margin-top:21px}.hero-art{position:absolute;right:20px;top:0;bottom:0;width:280px;pointer-events:none}.hero-art>span{position:absolute;right:53px;top:22px;font:italic 180px/1 Georgia,serif;color:#56806438;transform:rotate(-13deg)}.orb{position:absolute;border:1px solid #a7c6af80;border-radius:50%;width:230px;height:230px;top:40px;right:-20px}.orb-two{width:170px;height:170px;right:40px;top:-70px;border-width:35px;border-color:#aacbb333}.metrics{gap:18px}.metric{border-radius:12px;padding:21px 23px;background:#fff;box-shadow:0 3px 10px #263f2a02}.metric strong{font-weight:600;font-size:29px;color:#284537}.metric-icon{background:#edf5ee;color:#4c8862}.metric-top{color:#8a988e}.metric small{color:#98a59b}.card{border-radius:13px;box-shadow:0 3px 12px #263f2a02;margin-bottom:22px;padding:27px}.overview-grid .card{margin:0}.card-heading h2{font-size:16px}.quick{padding:20px 0;color:#40614e}.quick span{color:#99a49b}.info-strip{background:#eef3ec;border-color:#e1e9de;color:#82907f}th{background:#f5f8f4;color:#8e9c92;padding:14px 16px}td{padding:20px 16px;color:#65786a;border-bottom-color:#edf1ec}td:first-child{color:#2c4a36}td small{max-width:240px;color:#9ca99f}.badge{border-radius:30px;padding:4px 11px;font-size:11px;background:#f0f2ed;color:#8a9687}.badge.green{background:#e9f4eb;color:#4a8e5e}.badge.amber{background:#faf1df;color:#ac843f}.badge.red{background:#faeae7;color:#b77265}.empty{min-height:180px;flex-direction:column;gap:12px;color:#9ba79d}.empty:before{content:'—';display:grid;place-items:center;width:47px;height:47px;background:#f3f6ef;border:1px solid #e6ece0;border-radius:14px;font-size:22px;color:#b8c7ad}.secondary{border-color:#dfe8de;color:#647e68;background:#fff}button{background:#267354;border-radius:7px}input:focus,select:focus,textarea:focus{outline:3px solid #dfede2;border-color:#83b394}input,textarea,select{border-color:#dae5da;background:#fdfefd}form{max-width:900px}label{color:#607365}.editor{border-color:#e7eee4;background:#fbfcf9;padding:20px;border-radius:9px}summary{font-weight:500}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.steps>a{padding:10px 10px;color:#557460}.steps b{display:block;font:italic 28px Georgia,serif;color:#94b49a}.steps h3{font-size:14px;font-weight:500;color:#3a5844}.steps p{font-size:12px;color:#9aa69c}.welcome{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#fff}.welcome-story{background:#19392e;color:white;padding:60px 12%;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.welcome-story:after{content:'';position:absolute;right:-250px;bottom:-250px;width:650px;height:650px;border:1px solid #486c5670;border-radius:50%;pointer-events:none}.wordmark{font-weight:600;font-size:30px;letter-spacing:3px;margin-bottom:80px}.wordmark span{display:block;font-size:9px;color:#8cab98;letter-spacing:2px;margin-top:5px}.welcome-story h1{font-size:clamp(38px,4vw,61px);line-height:1.45;letter-spacing:-2px;margin:16px 0 24px;font-weight:500}.welcome-story em{font-style:normal;color:#bdddba}.welcome-story p{color:#8ead99;font-size:13px}.journey{display:flex;gap:24px;margin-top:60px;color:#8fac99;font-size:11px}.welcome-form{max-width:450px;width:100%;margin:auto;padding:40px}.welcome-form h2{font-size:26px;margin-bottom:28px}.welcome-form label{margin:23px 0}.welcome-form button{min-width:105px;margin-right:10px}.welcome-form small{display:block;margin-top:25px;color:#9aa799;font-size:11px}#loginScreen{margin:12vh auto}.login-card{border-radius:16px;padding:38px;border-color:#e2e9df}.login-brand span{color:#617b66}.customer .metrics{grid-template-columns:repeat(3,1fr)}.item{display:flex;align-items:center;gap:15px;padding:20px 0;border-bottom:1px solid var(--line)}.item>button{margin-left:auto}.item .muted{font-size:12px}.record-title{font-weight:500;color:#3c5744}.plan-card{border:1px solid #e3ebdf;border-radius:12px;padding:25px;background:#fbfcf9}.plan-card h2{margin-bottom:5px}.plan-card strong{font-size:30px;display:block;margin:20px 0}.plan-card p{color:#849580;font-size:13px;margin:8px 0}.plan-card a{display:inline-block;margin-top:18px;font-size:12px}.article-view{border:1px solid #e1eade;margin:20px 0;border-radius:10px;padding:24px}.article-view h3{font-size:19px}.article-view p{white-space:pre-wrap;font-size:14px;line-height:1.9;color:#60705e}.status-line{font-size:12px;color:#91a18c;margin:12px 0}.searchbar{margin:0 0 18px;display:flex;gap:10px}.searchbar input{max-width:340px;margin:0;background:#f9fbf7;padding:9px 13px}.filter-count{align-self:center;color:#9aa797;font-size:11px}footer{color:#a3b09f}#message{border-color:#d8e9da;border-left-color:#408759}@media(max-width:1150px){.hero-art{opacity:.5;right:-65px}.hero-banner>div:first-child{position:relative;z-index:1}.welcome-story{padding:50px 8%}main{padding:27px}.steps{gap:12px}.hero-banner h2{font-size:21px}}@media(max-width:800px){aside{width:190px}.main-area{margin-left:190px}.hero-art{display:none}.steps{grid-template-columns:1fr}.customer .metrics{grid-template-columns:1fr}.welcome{grid-template-columns:1fr}.welcome-story{display:none}.welcome-form{padding:35px}.hero-banner{padding:25px}}@media(max-width:640px){aside{width:100%;padding:18px}.main-area{margin:0}nav a{padding:10px 13px}main{padding:18px}.hero-banner{min-height:auto}.hero-banner h2{font-size:20px}.hero-banner p{font-size:12px}.card{padding:20px}.header-label{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.customer .metrics{grid-template-columns:1fr}.metric{padding:17px}.page-heading .muted{max-width:220px}.brand{font-size:18px}.item{flex-wrap:wrap}.grid{grid-template-columns:1fr}.steps{gap:0}.welcome-form{margin-top:10vh}}

/* Midnight & champagne — shared product theme. */
:root{--primary:#283d5a;--ink:#202b3c;--muted:#7d8798;--line:#e5e8ed;--gold:#c9ad7d;--gold-light:#eadbc0}
body{background:#f5f6f8;color:var(--ink)}aside{background:linear-gradient(165deg,#19263a 0%,#101b2c 100%)}.brand{color:#f8f6f1}.brand b,.login-brand{background:linear-gradient(145deg,#efdfbf,#bd9c64);color:#253147;box-shadow:0 3px 14px #00000010}.brand-sub{color:#8f9aac}.nav-label{color:#788397}nav a{color:#acb6c6}nav a:hover{background:#ffffff08;color:#e7eaf0}nav a.active{background:#c9ad7d15;color:#e5cea6;box-shadow:inset 2px 0 #c9ad7d}.sidebar-foot{border-color:#ffffff0f;color:#dae0e8}.sidebar-foot small{color:#758196}.sidebar-foot button{color:#b8c0d0}.avatar{background:#f1ebe1;color:#816640}header{background:#ffffffeb;border-color:#e7e9ef}.breadcrumb,.header-actions a{color:#8d96a6}.breadcrumb #breadcrumb{color:#546178}.header-label{color:#9b8a6d}.eyebrow{color:#a58a60}.muted{color:#8290a1}h1{color:#243147}.hero-banner{background:linear-gradient(112deg,#263750 0%,#1c2b42 66%,#17263c 100%);border-color:#26374f;box-shadow:0 9px 25px #17273c0b}.hero-banner h2{color:#f5f3ee}.hero-banner p{color:#a5b3c8}.hero-banner .eyebrow{color:#c8b189}.primary-link{background:linear-gradient(120deg,#e6d2ab,#c9ad7d);color:#28364b;font-weight:600;box-shadow:0 3px 10px #0000000c}.hero-art>span{color:#d0b68c2b}.orb{border-color:#cfb78f30}.orb-two{border-color:#cfb78f0d}.metric{border-color:#e7e9ed;box-shadow:0 4px 16px #1a2d4503}.metric strong{color:#263750}.metric-icon{background:#f4efe6;color:#a38859}.metric-top{color:#8590a0}.metric small{color:#98a1ad}.card{border-color:#e5e8ed;box-shadow:0 5px 20px #1b2e4903}.quick{color:#485973;border-color:#edf0f4}.quick span{color:#96a0ae}.info-strip{background:#f4f0e9;border-color:#eae2d5;color:#8c7b61}th{background:#f6f7fa;color:#8792a3}td{color:#627087;border-color:#edf0f4}td:first-child{color:#34445d}td small{color:#929dab}.badge{background:#eff1f5;color:#7a879b}.badge.green{background:#ecf2ef;color:#507e69}.badge.amber{background:#f6f0e5;color:#967646}.badge.red{background:#f8eded;color:#aa6970}.empty{color:#98a1ad}.empty:before{background:#f5f3ee;border-color:#eae4d9;color:#c4b393}.secondary{background:#fff;color:#617086;border-color:#dce2e9}button{background:#293f5e;color:#fff;box-shadow:0 2px 5px #17263c08}button:hover{background:#354f72;filter:none}button.secondary:hover{background:#f6f7fa;color:#354862}.primary-link:hover{filter:brightness(1.04)}input,textarea,select{border-color:#dce1e8;background:#fdfdfe;color:#263750}input:focus,select:focus,textarea:focus{outline:3px solid #c9ad7d22;border-color:#bda477}label{color:#647086}.editor{background:#fafbfc;border-color:#e7eaf0}.steps>a{color:#6d7f96}.steps b{color:#b69a6e}.steps h3{color:#41536e}.steps p{color:#929ead}.welcome-story{background:radial-gradient(ellipse at 5% 0%,#344763 0%,transparent 65%),linear-gradient(150deg,#1c2c43,#101c2d);color:#f6f4ee}.welcome-story:after{border-color:#c9ad7d22;box-shadow:0 0 0 60px #c9ad7d03,0 0 0 120px #c9ad7d02}.welcome-story h1{color:#f6f4ee}.welcome-story em{color:#dcc59c}.welcome-story .eyebrow{color:#b9a483}.welcome-story p{color:#9aaabe}.wordmark{color:#f8f4ec}.wordmark span{color:#bba988}.journey{color:#b4a58b}.welcome-form h2{color:#263750}.welcome-form small{color:#97a0ac}.welcome-form button[value=register]{background:transparent;box-shadow:none;color:#8d7553;border:1px solid #d8c6a8}.welcome-form button[value=register]:hover{background:#f8f4ed}.login-card{border-color:#e6e9ee;box-shadow:0 15px 50px #15223806}.login-brand span{color:#9a825e}.record-title{color:#43536c}.plan-card{background:#fcfcfd;border-color:#e3e7ed}.plan-card p{color:#8591a2}.plan-card strong{color:#314561}.article-view{border-color:#e2e6ec}.article-view p{color:#66758a}.status-line{color:#8998aa}.version{border-color:#e6e9ee}.searchbar input{background:#f9fafc}.filter-count{color:#93a0b1}footer{color:#9da5b2}#message{border-color:#e5dbca;border-left-color:#b99b6b}pre{background:#f6f7fa;color:#64738a}.item{border-color:#e6e9ef}
/* Quiet motion and contextual feedback. */
html{scroll-behavior:smooth}button,a,input,textarea,select{transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}button:active,.primary-link:active{transform:translateY(1px) scale(.985)}button:disabled{cursor:wait}.card,.metric,.plan-card{background:linear-gradient(145deg,#fff,#fafbfe);transition:box-shadow .25s ease,transform .25s ease}.metric:hover,.plan-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #20344e09}nav a:hover{transform:translateX(2px)}[data-page]:not([hidden]),[data-user-page]:not([hidden]){animation:page-enter .28s ease-out}.hero-banner{background:radial-gradient(ellipse at 100% 20%,#55678250,transparent 55%),linear-gradient(115deg,#293c58,#162339)}.hero-art{animation:float-art 8s ease-in-out infinite}.primary-link{background:linear-gradient(110deg,#edddbf,#c8a978);transition:box-shadow .25s,transform .25s}.primary-link:hover{box-shadow:0 5px 18px #c9ad7d33;transform:translateY(-2px)}.welcome-story{background:radial-gradient(ellipse at 0 0,#40577780,transparent 65%),linear-gradient(155deg,#24374f,#101b2d)}#message{position:static;max-width:none;right:auto;top:auto;border:1px solid #d9e3da;border-left:3px solid #809b87;background:linear-gradient(120deg,#f5f9f5,#fff);box-shadow:none;padding:16px 20px;margin:0 0 22px;border-radius:9px;animation:page-enter .2s ease-out}#message[data-kind=error]{background:linear-gradient(120deg,#fcf4ef,#fff);border-color:#e9d6c8;border-left-color:#b98664;color:#765039}#message strong{font-size:14px}#message p{margin-top:6px;font-size:13px;line-height:1.8;white-space:pre-wrap}#message button{background:transparent;box-shadow:none;color:inherit;padding:4px 0;font-size:12px;margin-top:8px;text-decoration:underline}.inline-error{padding:12px 16px;background:#faf1ea;border-radius:7px;color:#895e43!important;font-size:13px!important}@keyframes page-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes float-art{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* 多选组件(推广城市/分类、创建推广选商家) */
.field{margin:14px 0}
.field-label{display:block;margin-bottom:6px;color:#394960;font-weight:600;font-size:14px}
.ms-search{margin-bottom:8px}
.multiselect{max-height:220px;overflow:auto;border:1px solid #bac6d4;border-radius:8px;padding:6px;background:#fff;display:flex;flex-direction:column;gap:2px}
.multiselect .ms-item{display:flex;align-items:center;gap:8px;margin:0;padding:6px 8px;border-radius:6px;cursor:pointer;color:#263750}
.multiselect .ms-item:hover{background:#f2f6fc}
.multiselect .ms-item input{width:auto;margin:0;flex:none}
.multiselect .ms-item span{flex:1}
.multiselect .ms-empty{color:#8a97a8;padding:8px;font-size:13px}

/* Shared form system: consistent sizing, readable contrast and keyboard states. */
:root{--muted:#66758a;--control-border:#cbd3df;--focus-ring:#b7996533}
.muted,.metric-top,.metric small,.steps p,.quick span,.welcome-form small,.plan-card p,.filter-count{color:#66758a}
form{width:100%;max-width:960px}
form label{margin:0;color:#40516a;font-size:13px;font-weight:550;line-height:1.6}
form>label,form>.field{margin:20px 0}
input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-width:0;min-height:46px;margin-top:8px;padding:11px 14px;border:1px solid var(--control-border);border-radius:10px;background:#fff;color:#263750;box-shadow:0 1px 2px #1c2c4210;line-height:1.5;font-weight:400;transition:border-color .18s,box-shadow .18s,background-color .18s}
input::placeholder,textarea::placeholder{color:#78859a;opacity:1}
input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:#96a5ba;background:#fefeff}
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:#a48a5d;box-shadow:0 0 0 4px var(--focus-ring);background:#fff}
select{appearance:none;padding-right:44px;cursor:pointer;background-image:url("/chevron-down.svg");background-repeat:no-repeat;background-position:right 14px center}
select:hover,select:focus{background-image:url("/chevron-down.svg");background-repeat:no-repeat;background-position:right 14px center}
textarea{min-height:220px;resize:vertical;line-height:1.85;padding:16px}
input[type=checkbox],input[type=radio]{appearance:auto;accent-color:#344b69;width:18px;height:18px;min-height:18px;flex:0 0 18px;vertical-align:middle;cursor:pointer;box-shadow:none;outline-offset:3px}
label:has(>input[type=checkbox]){display:flex;align-items:center;gap:10px;min-height:44px;font-weight:400}
label>input[type=checkbox]{margin:0}
input:disabled,select:disabled,textarea:disabled{background-color:#f0f2f6!important;border-color:#dce1e8!important;color:#7c8798;cursor:not-allowed;box-shadow:none!important}
input[readonly],textarea[readonly]{background:#f5f7fa}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:#b96052!important;background-color:#fffaf8;box-shadow:0 0 0 3px #b9605212}
button{min-height:42px;padding:10px 20px;border:1px solid transparent;border-radius:10px;font-weight:550;background:linear-gradient(140deg,#344d70,#263b58);box-shadow:0 3px 7px #1d314518}
button:hover{background:linear-gradient(140deg,#405c80,#304869);box-shadow:0 4px 10px #1d314523}
button:disabled{opacity:.55;box-shadow:none;transform:none}
a:focus-visible,button:focus-visible,summary:focus-visible,input[type=checkbox]:focus-visible{outline:3px solid #b69b70;outline-offset:4px}
button.secondary{background:#fff;border-color:#cdd5e0;color:#475b76;box-shadow:0 1px 3px #20344e08}
form>.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin:22px 0}
form .grid>label{margin:0;min-width:0}
form>.grid>label:last-child:nth-child(odd){grid-column:1/-1}
.form-section{border:0;padding:0;margin:28px 0;min-width:0}
.form-section legend{width:100%;padding:0 0 12px;border-bottom:1px solid #e7ebf1;color:#283c57;font-size:14px;font-weight:650}
.form-section .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin-top:20px}
.form-section .grid>label:last-child:nth-child(odd){grid-column:1/-1}
.form-section .grid>label{margin:0}
.form-section>.muted{margin:12px 0 18px}
.form-section>label{display:block;margin-top:20px}
.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;border-top:1px solid #e7ebf1;padding-top:22px;margin-top:28px}
.form-actions button{min-width:136px}
.form-hint{display:block;margin-top:8px;color:#69788c;font-size:12px;font-weight:400;line-height:1.7}
.required-mark{color:#a06a40;margin-left:4px}
.field-label{font-size:13px;color:#40516a;font-weight:550}
.field{min-width:0}
.ms-search{margin:10px 0!important;background-color:#f9fafc!important}
.multiselect{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:8px;padding:12px;max-height:240px;overflow:auto;scrollbar-width:thin;scrollbar-color:#bbc5d2 #f5f7fa;border:1px solid #d7dfea;border-radius:12px;background:#f8fafc;align-content:start}
.multiselect .ms-item{display:flex;align-items:center;gap:10px;margin:0;padding:10px 12px;min-height:44px;border:1px solid #e1e6ed;border-radius:8px;background:#fff;color:#52627a;font-size:13px;font-weight:400;transition:border-color .18s,background-color .18s,box-shadow .18s}
.multiselect .ms-item:hover{background:#f1f5fa;border-color:#aebed1}
.multiselect .ms-item:has(input:checked){background:#edf2f8;border-color:#8ca2bd;color:#253d5d;box-shadow:inset 0 0 0 1px #8ca2bd25}
.multiselect .ms-item:focus-within{outline:3px solid var(--focus-ring);outline-offset:1px;border-color:#ac9063}
.multiselect .ms-item input{width:18px;height:18px;margin:0;flex:0 0 18px}
.multiselect .ms-item span{overflow-wrap:anywhere;min-width:0}
.multiselect .ms-empty{grid-column:1/-1;padding:20px 12px;text-align:center;color:#68778c}
#campaignBrands{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
#campaignForm>label{max-width:280px}
#campaignHint{padding:12px 16px;background:#f1f4f8;border:1px solid #e0e6ee;border-radius:9px;color:#4d607b}
#brandForm{margin-top:26px}
#brands:not(:empty){margin-bottom:30px}
.card>p:not(.muted){color:#627087;font-size:13px;line-height:1.85}
.editor{padding:22px;border:1px solid #e0e5ed;border-radius:12px}
.editor summary{font-weight:600;min-height:24px}
.editor[open] summary{padding-bottom:16px;margin-bottom:8px;border-bottom:1px solid #e4e9f0}
#prompt textarea{min-height:310px;margin-bottom:20px}
#promptVersions .version pre{line-height:1.85;border:1px solid #e7ebf1;padding:18px}
#message button{min-height:32px;border:0}
.welcome-form{max-width:480px}.welcome-form label{margin:22px 0}.welcome-form button{min-width:128px}
.sidebar-foot button{min-height:36px;padding:4px 8px;background:transparent;border:0;box-shadow:none}
td button{min-height:34px;background:transparent;border:1px solid #dce3ed;color:#344b69;box-shadow:none;margin:3px}
td button:hover{background:#edf2f8;color:#263d5b}
.item{overflow-wrap:anywhere}.item>div{min-width:0}.item>button{flex-shrink:0}
@media(max-width:900px){.form-section .grid,form>.grid{gap:18px}.card{padding:24px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){form>.grid,.form-section .grid{grid-template-columns:minmax(0,1fr)}.form-section .grid>label,.grid>label{grid-column:auto!important}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}.card{padding:20px 16px}.form-section{margin:24px 0}.form-actions>button{width:100%}.multiselect{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px;gap:6px}.multiselect .ms-item{padding:9px 8px}#campaignBrands{grid-template-columns:minmax(0,1fr)}.welcome-form{padding:28px}.page-heading{gap:12px}aside{overflow:hidden}nav{scrollbar-width:thin}.login-card{padding:24px}.login-card #message button{width:auto}.overview-grid{grid-template-columns:minmax(0,1fr)}header{gap:12px}.header-actions{gap:10px}form{max-width:100%}.searchbar{flex-wrap:wrap}.searchbar input{max-width:100%}td small{max-width:160px}.form-actions{margin-top:22px}}
@media(min-width:641px){aside{overflow-y:auto}.sidebar-foot>div{min-width:0}.sidebar-foot small{white-space:nowrap;font-size:9px}}
@media(max-width:640px){nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible}nav a{justify-content:center;gap:6px;padding:10px 4px;font-size:12px}nav .nav-icon{display:none}nav a:hover{transform:none}.brand{padding-left:10px}.sidebar-foot{display:flex;padding:12px 8px 0;margin-top:14px}.sidebar-foot small{display:none}}
/* Dialog editing and top-layer feedback. */
body.modal-open{overflow:hidden}
.form-dialog{width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 64px);margin:auto;padding:28px;border:1px solid #dce3ed;border-radius:18px;background:#fff;color:#263750;box-shadow:0 28px 100px #101b2c44;overflow:auto}
.form-dialog::backdrop{background:#13243c80;backdrop-filter:blur(4px)}
.form-dialog[open]{animation:page-enter .2s ease-out}
.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid #e5eaf1;margin-bottom:22px}
.dialog-heading h2{margin:0;font-size:20px}
.dialog-close{background:#f1f4f8;color:#53647c;box-shadow:none;font-size:24px;padding:0;width:38px;min-height:38px;flex-shrink:0}
.dialog-launch{margin:22px 0 4px}
.form-dialog #brandForm{margin-top:0}.form-dialog form{max-width:none}
#message[popover]{position:fixed;inset:22px auto auto 50%;transform:translateX(-50%);width:min(600px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 44px);overflow:auto;margin:0;padding:20px 24px;border-radius:14px;border:1px solid #b8d2c3;border-left:5px solid #4d8666;background:#f5fcf7;color:#315f45;box-shadow:0 12px 48px #172b4430;z-index:9999;animation:none}
#message[popover][data-kind=error]{border-color:#e4b9ab;border-left-color:#ba6247;background:#fff7f3;color:#85442e}
#message[popover] strong{font-size:16px}#message[popover] p{font-size:14px;line-height:1.8}#message[popover] button{width:auto;margin-top:10px;color:inherit}
@media(max-width:640px){.form-dialog{padding:20px;max-height:calc(100dvh - 24px);width:calc(100vw - 20px)}#message[popover]{top:12px}.dialog-heading h2{font-size:18px}}

.customer #account.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.customer #account .metric strong{font-size:26px}.customer #account .metric small{overflow-wrap:anywhere}@media(max-width:1100px){.customer #account.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.customer #account.metrics{grid-template-columns:1fr}}

.badge.green{background:#e4f3e9;color:#246342;border:1px solid #b8ddc5}.badge.red{background:#fcebea;color:#a73232;border:1px solid #ecc1bd}.badge.blue{background:#e8f0fd;color:#285ea5;border:1px solid #bfd2ee}.badge.amber{background:#fff3d9;color:#885c0e;border:1px solid #e8d399}.badge.gray{background:#eef1f5;color:#536174;border:1px solid #d5dce5}.status-line.badge{display:inline-block;font-size:13px;margin:12px 0}

.merchant-heading{align-items:center;gap:16px;margin-bottom:12px}.merchant-heading h2{margin:0}.merchant-heading .dialog-launch{margin:0}.merchant-rules{margin:12px 0 20px;color:#66758a;font-size:12px}.merchant-rules p{margin-top:10px;max-width:780px;line-height:1.8}.merchant-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 180px;gap:24px;padding:24px 0}.merchant-row>.badge{justify-self:start}.merchant-actions{display:flex;gap:10px;justify-content:flex-end}.merchant-actions button{margin:0;min-height:36px;padding:7px 16px;font-size:13px}.merchant-actions .archive-action{background:transparent;color:#785951;border:1px solid #dfd4ce;box-shadow:none}.merchant-actions .archive-action:hover{background:#fcf1eb}.merchant-row .record-title{font-size:16px;font-weight:600}.merchant-info .muted{line-height:1.8}.merchant-row:last-child{border-bottom:0}@media(max-width:640px){.merchant-row{grid-template-columns:minmax(0,1fr) auto;gap:14px}.merchant-actions{grid-column:1/-1;justify-content:flex-start}.merchant-info .muted{font-size:12px}.merchant-heading .dialog-launch button{padding:9px 12px}}
.publication-detail-dialog{width:min(920px,calc(100vw - 32px))}
.publication-detail-body{overflow-wrap:anywhere;line-height:1.8}
.publication-detail-body pre{white-space:pre-wrap;overflow-wrap:anywhere}
.publication-detail-body .article-view:first-child{margin-top:0}
@media(prefers-reduced-motion:reduce){.publication-detail-dialog[open]{animation:none}}
.publication-steps-card+.publication-steps-card{border-top:1px solid #e5eaf1;margin-top:28px;padding-top:24px}
.publication-step-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}
.publication-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;background:#f1f5f9!important;color:#64748b!important;border:1px solid #dce3ed!important;padding:14px 6px!important;box-shadow:none!important;border-radius:12px;min-width:0}
.publication-step:not(:last-child)::after{content:'→';position:absolute;right:-15px;top:38%;color:#94a3b8}
.publication-step.done{background:#ecfdf5!important;color:#047857!important;border-color:#a7f3d0!important}
.publication-step.running{background:#eff6ff!important;color:#1d4ed8!important;border-color:#93c5fd!important}
.publication-step.failed{background:#fff1f2!important;color:#be123c!important;border-color:#fda4af!important}
.publication-step.waiting,.publication-step.unknown{background:#fffbeb!important;color:#a16207!important}
.publication-step[aria-pressed=true]{outline:2px solid currentColor;outline-offset:2px}
.step-number{border:1px solid currentColor;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-size:12px}
.publication-step small{font-size:11px;color:inherit}.publication-step-output{padding:20px;background:#f8fafc;border:1px solid #e5eaf1;border-radius:12px}.publication-step-output h4{margin-top:0}
.publication-plan{display:grid;grid-template-columns:100px 1fr;gap:12px}.publication-plan dt{color:#64748b}.publication-plan dd{margin:0}.publication-article-body{white-space:pre-wrap;line-height:1.9}
@media(max-width:540px){.publication-step-nav{gap:10px}.publication-step:not(:last-child)::after{right:-10px;font-size:10px}.publication-step small{font-size:10px}.publication-step-output{padding:14px}.publication-plan{grid-template-columns:1fr;gap:6px}.publication-plan dd{margin-bottom:10px}}
#merchantPublishFields>fieldset{margin:20px 0 0;padding:20px;border:1px solid #e0e7f0;border-radius:14px;background:#f9fbfe}
#merchantPublishFields>fieldset>legend{padding:0 8px;font-size:14px;font-weight:600;color:#344b70}
#merchantPublishFields .publish-fields-grid{align-items:start;gap:18px 20px}
#merchantPublishFields .publish-multichoice{grid-column:1/-1;display:grid;gap:10px}
#merchantPublishFields .publish-choice-list{display:flex;flex-wrap:wrap;gap:8px}
#merchantPublishFields label.publish-choice{display:inline-flex;align-items:center;gap:8px;width:auto;margin:0;padding:9px 13px;min-height:40px;border:1px solid #dce4ef;border-radius:9px;background:#fff;color:#53637d;font-size:13px;font-weight:400;cursor:pointer;transition:background .15s,border-color .15s,color .15s;box-sizing:border-box}
#merchantPublishFields label.publish-choice:hover{border-color:#96abc9;background:#f1f5fb}
#merchantPublishFields label.publish-choice:has(input:checked){background:#eaf0fa;border-color:#6d87ad;color:#213f6b}
#merchantPublishFields label.publish-choice:focus-within{outline:2px solid #6585b2;outline-offset:2px}
#merchantPublishFields label.publish-choice input{appearance:auto;position:static;opacity:1;flex:0 0 15px;width:15px;height:15px;min-height:0;margin:0;padding:0;accent-color:#345b8d;box-shadow:none}
#merchantPublishFields label.publish-choice span{white-space:nowrap;line-height:1.3}
@media(max-width:640px){#merchantPublishFields>fieldset{padding:14px}#merchantPublishFields .publish-fields-grid{grid-template-columns:1fr;gap:16px}#merchantPublishFields label.publish-choice{padding:8px 11px}}
@media(prefers-reduced-motion:reduce){#merchantPublishFields label.publish-choice{transition:none}}

/* Promotion hierarchy */
.batch-card { border:1px solid #dfe5ee; border-radius:14px; margin:14px 0; overflow:hidden; background:#fff; transition:border-color .18s,box-shadow .18s; }
.batch-card[open] { border-color:#cbd6e6; box-shadow:0 4px 18px #20395606; }
.batch-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 20px; cursor:pointer; list-style:none; }
.batch-heading::-webkit-details-marker { display:none; }
.batch-heading::before { content:''; width:7px; height:7px; flex:0 0 7px; border-right:2px solid #7b8ba3; border-bottom:2px solid #7b8ba3; transform:rotate(-45deg); transition:transform .18s ease; margin-right:3px; }
.batch-card[open]>.batch-heading::before,.batch-merchant[open]>.batch-heading::before { transform:rotate(45deg); }
.batch-heading>div { flex:1; min-width:0; }
.batch-heading:focus-visible { outline:2px solid #7894bb; outline-offset:-3px; border-radius:12px; }
.batch-title-line { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.batch-title-line>strong { font-size:14px; }
.batch-owner { display:inline-block; padding:3px 9px; border:1px solid #e6eaf1; border-radius:6px; background:#f6f8fb; color:#5c6e88; font-size:12px; font-weight:400; overflow-wrap:anywhere; }
.batch-heading small,.task-full-id { display:block; margin-top:6px; font-weight:400; }
.batch-heading small { font-size:12px; }
.batch-stats { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; padding:0 20px 14px 44px; color:#77859b; font-size:12px; }
.batch-stat-total { color:#52647e; font-weight:600; }
.batch-stat { display:inline-flex; align-items:center; gap:6px; }
.batch-stat::before { content:''; width:5px; height:5px; background:currentColor; border-radius:50%; }
.batch-stat.green { color:#328768; }.batch-stat.red { color:#ba5358; }.batch-stat.blue { color:#477bb6; }.batch-stat.amber { color:#ab7a32; }
.batch-totals { padding:0 18px; margin:10px 0; font-size:12px; }
.batch-merchant { margin:0 18px 16px 42px; border:1px solid #e5e9f1; border-radius:10px; overflow:hidden; }
.batch-merchant>.batch-heading { padding:13px 16px; background:linear-gradient(110deg,#f3f6fb,#faf9f6); }
.batch-merchant>.batch-heading strong { font-size:13px; }
.merchant-task-count { margin-left:12px; color:#8190a5; font-size:12px; font-weight:400; }
.batch-merchant table { font-size:13px; margin:0; }
.batch-merchant th { padding:11px 16px; font-size:12px; background:#fafbfd; }
.batch-merchant td { padding:16px; }
.batch-merchant td:first-child { min-width:260px; max-width:440px; white-space:normal; }
.batch-merchant td:first-child strong { font-weight:600; line-height:1.65; }
.task-full-id { font-size:11px; color:#8491a5; overflow-wrap:anywhere; }
.batch-merchant td:last-child button { white-space:nowrap; }
.batch-pagination { display:flex; align-items:center; justify-content:flex-end; gap:16px; margin:18px 0; }
@media(max-width:640px){.batch-merchant{margin:0 10px 12px}.batch-heading{padding:14px;gap:10px}.batch-stats{padding:0 14px 12px}.batch-totals{padding:0 14px}.batch-owner{font-size:11px}.batch-title-line{gap:6px}.batch-merchant td:first-child{min-width:220px}}
@media(prefers-reduced-motion:reduce){.batch-card,.batch-heading::before{transition:none}}

#campaignForm .campaign-notes { margin:12px 0 20px; color:#77869d; font-size:12px; line-height:1.8; }
#campaignForm .campaign-notes p { margin:4px 0; }

.ops-alert {display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;padding:14px 18px;margin-bottom:18px;border:1px solid #e8c999;background:#fff9ed;color:#8b6225;border-radius:12px;font-size:13px}.ops-alert[hidden]{display:none}.ops-prompt-preview{white-space:pre-wrap;overflow-wrap:anywhere;max-height:65vh;overflow:auto;background:#f7f8fb;padding:16px;font:13px/1.8 inherit}[data-page=platformCosts] td,[data-page=reviews] td,[data-page=delivery] td,[data-user-page=delivery] td{white-space:normal;min-width:100px}[data-page=rules] p,[data-user-page=rules] p{line-height:1.9;color:#66758c}[data-page=platformCosts] button,[data-page=reviews] button{margin:8px 8px 8px 0}
.publication-step.review{background:#fff7e7;border-color:#e7c78f;color:#997123}

/* Promotion overview shares one hierarchy, filters and detail dialog. */
.promotion-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:4px 0 20px}
.promotion-metric{padding:16px 18px;border:1px solid var(--border,#dce3ec);border-radius:14px;background:linear-gradient(145deg,#fff,#f5f7fc);display:flex;flex-direction:column;gap:8px}
.promotion-metric span{font-size:13px;color:#64748b}.promotion-metric strong{font-size:28px;line-height:1.15;font-variant-numeric:tabular-nums}
.promotion-metric.status-success strong{color:#147d57}.promotion-metric.status-running strong{color:#4564d9}.promotion-metric.status-failed strong{color:#bc394d}.promotion-metric.status-waiting strong{color:#a56a09}.promotion-metric.status-pending strong{color:#64748b}
.promotion-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:20px}.promotion-filters label{flex:1 1 170px;display:flex;flex-direction:column;gap:6px;margin:0}.promotion-filters select{width:100%;min-height:42px}.promotion-filters small{flex-basis:100%;color:#64748b}.promotion-filters button{min-height:42px}
@media(max-width:600px){.promotion-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.promotion-filters label{flex-basis:100%}}
.service-rule-body{white-space:pre-wrap;line-height:1.85;overflow-wrap:anywhere}.service-rule-editor{border:1px solid #e2e6ee;border-radius:12px;padding:16px;margin:0 0 14px;min-width:0}.service-rule-editor label{display:flex;flex-direction:column;gap:7px}.service-rule-editor textarea{width:100%;resize:vertical;min-height:110px}
