
:root{
/* OADS brand */
--oads-orange:#FF5A1F;--oads-orange-hover:#E8490F;--oads-orange-light:#FFF0E8;
/* Orange used as text on white: #FF5A1F is only 3.1:1 on white, so text uses a deeper shade (5.2:1, WCAG AA) */
--oads-orange-text:#C43D0C;
/* Public (dark creative) palette, used by the login / sign-up / reset pages */
--brand-orange:#F15A2B;--brand-orange-hover:#D94A1E;--brand-orange-soft:#FDE6DD;--brand-black:#000000;--brand-surface:#141414;--brand-border:#2A2A2A;--brand-muted:#A3A3A3;--brand-white:#FFFFFF;
/* Portal (light operational) semantic tokens */
--bg:#F5F6F8;--surface:#FFFFFF;--surface-2:#FAFAFA;--surface-3:#F2F3F5;
--text:#171717;--ink:#171717;--text-2:#404040;/* spec secondary #737373 is 4.4:1 on #F5F6F8; #6B6B6B keeps the look and passes AA (4.8:1+) */--muted:#6B6B6B;
--line:#E8E8E8;--line-strong:#D9D9D9;--placeholder:#A3A3A3;
--accent:var(--oads-orange);--accent-hover:var(--oads-orange-hover);--accent-soft:var(--oads-orange-light);--accent-line:#FFC9B3;--accent-text:var(--oads-orange-text);
/* Text on an orange fill: black is 6.7:1 (WCAG AA); white on #FF5A1F is only 3.1:1 */
--on-accent:#000000;
--success:#15803D;--success-bg:#EAF7EF;--success-line:#BFE6CD;
--warning:#A16207;--warning-bg:#FEF7E0;--warning-bg-strong:#FEF3C7;--warning-line:#F5DFA0;
--danger:#B91C1C;--danger-bg:#FDECEC;--danger-line:#F6C6C6;
--info:#1D4ED8;--info-bg:#EAF1FE;--info-line:#C7D7FB;
--neutral:#525252;--neutral-bg:#F2F3F5;
--chart-1:var(--oads-orange);--chart-2:#3B82F6;--chart-3:#22C55E;--chart-4:#8B5CF6;--chart-5:#EAB308;
--green:var(--success);--red:var(--danger);
--backdrop:rgba(23,23,23,.45);--toast-bg:#171717;--on-dark:#FFFFFF;--danger-hover:#FBDADA;
--shadow-color:rgba(16,24,40,.06);--shadow-color-soft:rgba(16,24,40,.03);--shadow-color-strong:rgba(16,24,40,.12);
--radius:15px;--sidebar:245px;--shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.03);
color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px/1.6 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;padding:10px 16px;background:var(--accent);color:var(--on-dark);cursor:pointer;font-weight:600;white-space:nowrap;line-height:1.5}button:hover,.button:hover{filter:brightness(.96);text-decoration:none}button:disabled{opacity:.5;cursor:wait}button.secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}button.danger{background:var(--danger-bg);color:var(--red)}button.icon-button{background:transparent;color:var(--ink);display:none;padding:5px 10px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;line-height:1.25;margin-bottom:10px}h2{font-size:17px;letter-spacing:-.3px;margin-bottom:14px}h3{font-size:15px}small{font-size:12px}td small{display:block;color:var(--muted);margin-top:3px}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:var(--muted);display:block;margin-bottom:10px}.brand{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:21px;font-weight:750;letter-spacing:-1px;white-space:nowrap}.brand .muted{font-size:15px;font-weight:400;letter-spacing:-.5px}.brand:hover{text-decoration:none}.brand-mark{display:inline-grid;place-items:center;background:var(--accent);color:var(--on-dark);width:33px;height:33px;border-radius:10px;font-style:italic;font-size:27px;font-family:Georgia,serif;margin-right:3px}
#sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--surface);border-right:1px solid var(--line);padding:29px 21px;display:flex;flex-direction:column;z-index:20}.workspace{margin:38px 13px 12px}#navigation{overflow-y:auto;flex:1}#navigation a{display:flex;align-items:center;gap:13px;margin:3px 0;padding:11px 14px;color:var(--text-2);border-radius:8px;font-size:13px;font-weight:550}#navigation a:hover{background:var(--bg);text-decoration:none}#navigation a.active{background:var(--accent-soft);color:var(--accent-text)}.nav-symbol{width:18px;font-size:19px;line-height:1}label[hidden]{display:none}/* 费用明细: summary card + accordion cards (finance-app style). Amounts always nowrap. */
.pay-list{max-width:760px;width:100%}
/* Transfer method choice + USDT panel */
.method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.method-option{display:flex;align-items:center;gap:12px;padding:16px 18px;border:2px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;flex-direction:row;font-weight:400}.method-option:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.method-option.disabled{opacity:.55;cursor:not-allowed}
.method-option input{width:18px;height:18px;flex-shrink:0}.method-option span{display:flex;flex-direction:column;gap:2px}.method-option strong{font-size:15px;display:flex;align-items:center;gap:8px}.method-option small{color:var(--muted);font-size:12px}
.usdt-badge{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--success);color:var(--on-dark);font-size:11px;font-weight:700;font-style:normal;letter-spacing:.5px}
.usdt-box{padding:16px;border:1px dashed var(--success-line);border-radius:14px;background:var(--success-bg);display:flex;flex-direction:column;gap:10px}.usdt-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.usdt-address{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;font-weight:600;word-break:break-all;padding:12px 14px;background:var(--surface);border:1px solid var(--success-line);border-radius:10px;user-select:all}
.usdt-box .copy-btn{align-self:flex-start}.usdt-note{margin:12px 0 0}
.usdt-due{display:flex;flex-direction:column;gap:3px;padding:16px 18px;margin-bottom:14px;border-radius:14px;background:var(--success);color:var(--on-dark)}
.usdt-due>small:first-child{font-size:11px;font-weight:650;letter-spacing:.5px;text-transform:uppercase;color:var(--text-2)}
.usdt-due strong{font-size:27px;font-weight:700;letter-spacing:-.6px;line-height:1.2;overflow-wrap:anywhere}
.usdt-due .muted{font-size:11px;line-height:1.6;color:var(--text-2)}
.rate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.quote-usdt dt{color:var(--success)}.quote-usdt dd{color:var(--success);font-weight:650}
.fx-aside{display:inline-block;margin-left:8px;font-size:11px;font-weight:500;color:var(--muted);white-space:nowrap}
.fx-aside.strong{font-size:13px;font-weight:650;color:var(--text-2)}
.quote-total .fx-aside{color:var(--text-2)}
.usdt-first .quote-total dd{font-size:26px;letter-spacing:-.6px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.usdt-first .quote-total .fx-aside{font-size:12px;margin-left:0}
.usdt-first .quote-formula>:first-child{font-weight:650}
.usdt-first .quote-lines dd{font-weight:650}
.amount-shown{display:block;font-size:24px;font-weight:700;letter-spacing:-.5px;color:var(--ink);padding:6px 0 2px;overflow-wrap:anywhere}
label>.amount-shown+small{font-weight:400;line-height:1.6}
.quote-formula .fx-aside{margin-left:6px}
/* Campaigns: status tabs, spend window, one card per campaign */
.camp-filters{margin:-6px 0 18px}.camp-stats{margin-bottom:22px}
.camp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.camp-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px 22px;display:flex;flex-direction:column;gap:14px;box-shadow:0 2px 8px var(--shadow-color-soft);border-left:4px solid var(--line-strong)}
.camp-card.active{border-left-color:var(--green)}.camp-card.review{border-left-color:var(--warning)}.camp-card.paused{border-left-color:var(--muted)}.camp-card.banned,.camp-card.rejected{border-left-color:var(--red)}.camp-card.completed,.camp-card.cancelled{opacity:.85}
.camp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.camp-title{display:flex;flex-direction:column;gap:3px;min-width:0}.camp-title strong{font-size:16px;font-weight:600}.camp-title small{font-size:12px;color:var(--muted)}
.camp-status{flex-shrink:0;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:var(--surface-3);color:var(--text-2)}
.camp-status.active{background:var(--success-bg);color:var(--success)}.camp-status.review{background:var(--warning-bg);color:var(--warning)}.camp-status.paused{background:var(--surface-3);color:var(--text-2)}.camp-status.banned,.camp-status.rejected{background:var(--danger-bg);color:var(--red)}
.camp-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px}
.camp-metrics>div{padding:13px 15px}
.camp-days{display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:var(--surface-2);border-radius:14px}
.camp-days small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.camp-days strong{font-size:21px;font-weight:700;letter-spacing:-.4px;white-space:nowrap;color:var(--info)}
.camp-days strong span{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:0}
.camp-days small:last-child{text-transform:none;letter-spacing:0;font-size:11px}
.camp-days-bar{height:5px;border-radius:999px;background:var(--line);overflow:hidden;margin:7px 0 6px}
.camp-days-bar i{display:block;height:100%;border-radius:999px;background:var(--info);transition:width 300ms ease}
.camp-days.low{background:var(--warning-bg)}.camp-days.low strong{color:var(--warning)}.camp-days.low .camp-days-bar{background:var(--warning-bg)}.camp-days.low .camp-days-bar i{background:var(--warning)}
.camp-days.none{background:var(--danger-bg)}.camp-days.none strong{color:var(--red)}.camp-days.none .camp-days-bar{background:var(--danger-bg)}.camp-days.none .camp-days-bar i{background:var(--red)}
.camp-facts{display:flex;gap:22px;flex-wrap:wrap}.camp-facts span{display:flex;flex-direction:column;gap:2px}.camp-facts small{font-size:11px;color:var(--muted)}.camp-facts b{font-size:13px;font-weight:600;white-space:nowrap}
.camp-pay{font-size:13px;font-weight:600}
.camp-stats{grid-template-columns:repeat(auto-fit,minmax(138px,1fr))}
.camp-stat{text-align:left;align-items:stretch;border-radius:var(--radius);cursor:pointer;font-weight:400;transition:border-color 160ms ease,box-shadow 160ms ease,background 160ms ease}
.camp-stat:hover{filter:none;background:var(--surface-2);border-color:var(--line-strong)}
.camp-stat:first-child{border-top:1px solid var(--line);padding-top:23px}
.camp-stat strong{color:var(--ink)}
.camp-stat.is-on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-soft)}
.camp-stat::before{content:'';display:block;height:3px;width:26px;border-radius:999px;background:var(--line);margin-bottom:9px}
.camp-stat.all::before{background:var(--accent)}.camp-stat.active::before{background:var(--green)}
.camp-stat.scheduling::before{background:var(--info)}.camp-stat.review::before{background:var(--warning)}
.camp-stat.paused::before{background:var(--muted)}.camp-stat.banned::before,.camp-stat.rejected::before{background:var(--red)}
.camp-stat.completed::before{background:var(--success)}
.camp-status.pay-due{background:var(--warning-bg);color:var(--warning)}.camp-status.pay-check{background:var(--info-bg);color:var(--info)}
.camp-card.pay-due{border-left-color:var(--warning)}.camp-card.pay-check{border-left-color:var(--info)}
select.camp-status-select{width:auto;min-width:0;border:0;padding:6px 30px 6px 12px;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' width='14' height='14'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;font-size:12px;font-weight:700;line-height:1.4}
select.camp-status-select:disabled{opacity:.6;cursor:wait}.camp-done{font-size:13px;color:var(--green);font-weight:600;display:inline-flex;align-items:center}.camp-card .row-actions{margin-top:auto;padding-top:4px}
.badge.red{background:var(--danger-bg);color:var(--red)}
.camp-company{margin-bottom:18px}.camp-company-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;cursor:pointer;user-select:none}.camp-company-head:hover{background:var(--surface-2)}.camp-company-head:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.camp-company-head h2{margin:0;font-size:16px}.camp-company-head small{color:var(--muted);font-size:12px}.camp-company-head .pay-chevron{margin-left:auto}.camp-company.open .camp-company-head{border-bottom-left-radius:0;border-bottom-right-radius:0}.camp-company.open .pay-chevron{transform:rotate(180deg)}.camp-company .camp-grid{padding:14px 0 4px}
.camp-status.scheduling{background:var(--info-bg);color:var(--info)}.camp-card.scheduling{border-left-color:var(--info)}
.camp-tally{display:flex;gap:6px;flex-wrap:wrap}.camp-tally .camp-status{padding:4px 10px;font-size:11px}
.shot-gallery{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.shot-gallery h3{display:flex;align-items:center;gap:8px}.shot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.shot{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2)}.shot img{width:100%;height:110px;object-fit:cover;display:block;background:var(--surface)}.shot span{font-size:11px;color:var(--muted);padding:0 8px 6px}.shot:hover{text-decoration:none;border-color:var(--accent)}
@media(max-width:640px){.camp-grid{grid-template-columns:1fr}.camp-card{padding:16px 18px}}
/* Reports: filters, period stats, client sections, day accordions */
.rep-filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px}.rep-filters select{width:auto;min-width:220px;max-width:100%}
.chips{display:inline-flex;gap:4px;padding:4px;background:var(--surface-3);border-radius:12px;max-width:100%;overflow-x:auto}
.chip{background:transparent;color:var(--text-2);border:0;border-radius:9px;padding:8px 14px;font-size:13px;font-weight:600;white-space:nowrap;transition:background 180ms ease,color 180ms ease,box-shadow 180ms ease}.chip:hover{filter:none;color:var(--ink)}.chip.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px var(--shadow-color)}
.rep-custom{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rep-custom input{width:auto}.rep-custom span{color:var(--muted)}
.rep-stats{margin-bottom:22px}
.rep-client{padding:0;overflow:hidden}
.rep-client-head{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:20px 24px;background:var(--surface-2);border-bottom:1px solid var(--line)}.rep-client-head h2{margin:0;font-size:17px}.rep-client-head small{color:var(--muted);font-size:12px}
.rep-client-totals{display:flex;gap:26px}.rep-client-totals span{display:flex;flex-direction:column;gap:2px;text-align:right}.rep-client-totals small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.rep-client-totals b{font-size:15px;white-space:nowrap}
.rep-day{border-bottom:1px solid var(--line)}.rep-day:last-child{border-bottom:0}
.rep-day-head{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(5,minmax(0,1fr)) 24px;align-items:center;gap:12px;width:100%;padding:16px 24px;background:none;border:0;border-radius:0;color:var(--ink);text-align:left;font-weight:400;cursor:pointer;white-space:normal;line-height:1.3}
.rep-day-head:hover{filter:none;background:var(--surface-2)}.rep-day.open .rep-day-head{background:var(--surface-2)}.rep-day.open .pay-chevron{transform:rotate(180deg)}
.rep-day-date{display:flex;flex-direction:column;gap:2px;min-width:0}.rep-day-date strong{font-size:15px;font-weight:600}.rep-day-date small{font-size:12px;color:var(--muted)}
.rep-cell{display:flex;flex-direction:column;gap:2px;min-width:0}.rep-cell small{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.rep-cell b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rep-day-body{padding:6px 24px 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;background:var(--surface-2)}
.rep-item{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}.rep-item.cancelled{opacity:.6}
.rep-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.rep-item-head strong{font-size:14px}.rep-item-head small{display:block;color:var(--muted);font-size:12px}.rep-item-head b{font-size:16px;white-space:nowrap}
.rep-item .metrics{margin:0}.rep-item .notes{margin:0;font-size:13px;color:var(--text-2)}.rep-item .row-actions{padding-top:4px}
.rep-empty{border:1px dashed var(--line);border-radius:18px;padding:34px 20px;text-align:center}
@media(max-width:820px){.rep-day-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 24px;grid-template-areas:"d d c" "s r c";row-gap:8px;padding:14px 18px}.rep-day-date{grid-area:d}.rep-day-date strong{white-space:nowrap}.rep-cell:nth-of-type(2){grid-area:s}.rep-cell:nth-of-type(3){grid-area:r}.rep-day-head .pay-chevron{grid-area:c}.rep-cell:nth-of-type(4),.rep-cell:nth-of-type(5),.rep-cell:nth-of-type(6){display:none}.rep-day-body{padding:6px 14px 16px;grid-template-columns:1fr}.rep-client-head{padding:16px 18px}.rep-client-totals{gap:16px;width:100%;justify-content:space-between}.rep-client-totals span{text-align:left}}
.segmented{display:inline-flex;gap:4px;padding:4px;background:var(--surface-3);border-radius:12px;margin-bottom:18px;max-width:100%;overflow-x:auto}
.pay-tab{background:transparent;color:var(--text-2);border:0;border-radius:9px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;transition:background 180ms ease,color 180ms ease,box-shadow 180ms ease}
.pay-tab:hover{filter:none;color:var(--ink)}.pay-tab.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px var(--shadow-color)}
.pay-tab .count{min-width:20px;padding:1px 7px;border-radius:999px;background:var(--line);color:var(--text-2);font-size:11px;line-height:18px;text-align:center}.pay-tab.active .count{background:var(--surface-3)}.pay-tab .count.hot{background:var(--red);color:var(--on-dark)}
.pay-summary.muted-card{background:var(--surface-3);box-shadow:none}.pay-dates{margin:-6px 0 18px}.pay-dates-note{font-size:12px}
.pay-empty{border:1px dashed var(--line);border-radius:18px;padding:34px 20px;text-align:center}.pay-empty h3{margin-bottom:6px}
.pay-summary{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;background:var(--surface-2);color:var(--on-dark);border-radius:22px;padding:24px 26px;margin-bottom:18px;box-shadow:0 10px 30px var(--shadow-color)}
.pay-summary>div{display:flex;flex-direction:column;gap:6px;min-width:0}.pay-summary span{font-size:13px;color:var(--text-2)}.pay-summary strong{font-size:30px;font-weight:600;letter-spacing:-.6px;line-height:1.15;white-space:nowrap}
.pay-summary-facts{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:10px}
.pay-summary-facts span{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--text-2);white-space:nowrap}
.pay-summary-facts b{font-weight:650;color:var(--on-dark)}
.pay-summary-facts .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.pay-summary-facts .dot.ok{background:var(--success)}.pay-summary-facts .dot.wait{background:var(--warning)}
.pay-summary-side{align-items:flex-end;text-align:right}.pay-summary-side strong{font-size:16px;font-weight:600;letter-spacing:0}.pay-summary-side span{white-space:nowrap}
.pay-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 2px 8px var(--shadow-color-soft);margin-bottom:16px;overflow:hidden;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1)}
.pay-card.open{box-shadow:0 6px 18px var(--shadow-color)}
.pay-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t a" "s a" "m a";align-items:center;column-gap:16px;row-gap:3px;width:100%;padding:18px 22px;background:none;border:0;border-radius:0;color:var(--ink);text-align:left;font-weight:400;line-height:1.35;cursor:pointer;white-space:normal}
.pay-card-head:hover{filter:none;background:var(--surface-2)}.pay-card-head:focus-visible{outline-offset:-4px}
.pay-card-title{grid-area:t;font-size:18px;font-weight:600;min-width:0}.pay-card-sub{grid-area:s;font-size:14px;color:var(--muted);min-width:0}.pay-card-meta{grid-area:m;font-size:12px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pay-card-amount{grid-area:a;display:flex;align-items:center;justify-self:end;gap:10px;font-size:20px;font-weight:600;white-space:nowrap;color:var(--text)}
.pay-chevron{color:var(--muted);flex-shrink:0;transition:transform 280ms cubic-bezier(.4,0,.2,1)}.pay-card.open .pay-chevron{transform:rotate(180deg)}
.accordion-content{display:grid;grid-template-rows:0fr;opacity:0;transform:translateY(-6px);visibility:hidden;transition:grid-template-rows 320ms cubic-bezier(.4,0,.2,1),opacity 220ms ease,transform 320ms cubic-bezier(.4,0,.2,1),visibility 0s linear 320ms}
.accordion-content.open{grid-template-rows:1fr;opacity:1;transform:translateY(0);visibility:visible;transition:grid-template-rows 320ms cubic-bezier(.4,0,.2,1),opacity 220ms ease 60ms,transform 320ms cubic-bezier(.4,0,.2,1),visibility 0s}
.accordion-inner{overflow:hidden;min-height:0}
.pay-card-body{border-top:1px solid var(--line);padding:22px 24px;display:flex;flex-direction:column;gap:18px}
.pay-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.pay-row span{color:var(--text-2);font-size:14px}.pay-row b{color:var(--text);font-weight:500;font-size:15px;white-space:nowrap}
.pay-credit{border-radius:14px;padding:15px 16px;font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pay-credit b{font-weight:700;white-space:nowrap}
.pay-credit.ok{background:var(--success-bg);color:var(--success)}.pay-credit.wait{background:var(--surface-2);color:var(--text-2)}.pay-credit.no{background:var(--danger-bg);color:var(--red)}.pay-credit.no span{margin-left:auto;font-size:12px}
.pay-flag{background:var(--warning-bg);color:var(--warning);border-radius:12px;padding:12px 14px;font-size:13px}
.pay-note{display:flex;flex-direction:column;gap:4px;font-size:14px}.pay-note span{color:var(--text-2);font-size:12px}.pay-note b{font-weight:500;color:var(--text)}.pay-note.reject b{color:var(--red)}.pay-note small{color:var(--muted)}
.pay-card-actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:4px}
@media(max-width:640px){.pay-summary{padding:20px 20px;border-radius:20px;align-items:flex-start;flex-direction:column}.pay-summary-side{align-items:flex-start;text-align:left;flex-direction:row;gap:12px;align-items:baseline}.pay-summary>div:first-child strong{font-size:26px}.pay-card-head{padding:16px 18px;column-gap:12px;row-gap:6px;grid-template-areas:"t t" "a a" "s s" "m m"}.pay-card-title{font-size:16px}.pay-card-sub{font-size:13px}.pay-card-amount{font-size:19px;justify-self:stretch;justify-content:space-between}.pay-card-body{padding:18px 20px;gap:16px}}
@media(prefers-reduced-motion:reduce){.accordion-content,.pay-chevron,.pay-card{transition:none}}.region-tools{align-items:center;margin-bottom:16px}.region-tools .muted{margin-left:auto;font-size:12px}.region-group{padding:0}.region-group>summary{display:flex;align-items:center;gap:12px;padding:16px 22px;cursor:pointer;list-style:none;font-size:15px}.region-group>summary::-webkit-details-marker{display:none}.region-group>summary::before{content:'▸';color:var(--muted);font-size:12px;transition:transform .15s}.region-group[open]>summary::before{transform:rotate(90deg)}.region-group>summary .badge{margin-left:auto}.region-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 14px;padding:4px 22px 14px;border-top:1px solid var(--line)}.region-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px}.region-row small{flex:1;font-size:11px}.region-row button{padding:4px 10px;font-size:11px}.region-row.inactive>span{color:var(--muted);text-decoration:line-through}.region-group>.row-actions{padding:0 22px 18px}.form-actions .delete-country{margin-right:auto}.channel-add{margin-top:12px;padding:12px 14px;border:1px dashed var(--line);border-radius:10px}.channel-add-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.channel-add-row input,.channel-add-row select{flex:1;min-width:160px;width:auto}#package-channels .check small{font-weight:400}.wizard-subheading{margin:22px 0 10px;font-size:14px}.region-picker{margin:6px 0 4px}.region-picker .section-title{margin-bottom:8px}.region-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px 16px;max-height:260px;overflow:auto;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.region-option{flex-direction:row;align-items:center;gap:8px;font-weight:500;color:var(--ink)}.region-option input{width:16px;height:16px;padding:0}.spend-convert{display:block;margin-top:4px;font-weight:500}.spend-source{display:block;margin:-4px 0 10px}.nav-badge{margin-left:auto;min-width:20px;padding:1px 7px;border-radius:999px;background:var(--red);color:var(--on-dark);font-size:11px;font-weight:700;line-height:18px;text-align:center}.sidebar-foot{border-top:1px solid var(--line);padding:20px 7px 0;font-size:10px;color:var(--muted)}.sidebar-foot a{display:block;font-size:13px;margin-top:15px;color:var(--ink)}.status-dot{display:inline-block;background:var(--success);border-radius:50%;width:6px;height:6px;margin-right:5px}.shell{margin-left:var(--sidebar)}.topbar{height:77px;padding:0 35px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:var(--surface)}.top-user{display:flex;align-items:center;gap:9px;font-size:12px}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-weight:700;margin-left:8px}#breadcrumb{font-size:13px;color:var(--muted)}main#main{max-width:1700px;margin:auto;padding:35px;min-height:calc(100vh - 150px)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading p{margin-bottom:0;font-size:13px}.date-pill{font-size:12px;padding:8px 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:20px}.stat{padding:23px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.stat>span{font-size:12px;font-weight:600;color:var(--muted)}.stat strong{font-size:26px;line-height:1.3;letter-spacing:-.7px;overflow-wrap:anywhere}.stat:first-child{border-top:3px solid var(--accent);padding-top:21px}.stat small{color:var(--muted);font-size:10px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 15px}.section-title h2{margin:0}.section-title .muted{font-size:11px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:23px;margin-bottom:22px;box-shadow:var(--shadow)}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:22px}.chart{width:100%}.chart svg{display:block;width:100%;min-height:145px}.chart-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.chart-controls{display:flex;gap:7px}.chart-controls select{font-size:11px;padding:6px;width:auto}.distribution{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.distribution:last-child{border:0}.distribution p{margin:0}.distribution small{color:var(--muted)}.notice{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:10px;padding:16px 20px;margin-bottom:22px;font-size:13px}.notice strong{margin-right:10px}.notice.warning{background:var(--warning-bg);border-color:var(--warning-line);color:var(--warning)}.notice.error,.form-error:not(:empty){background:var(--danger-bg);color:var(--red);padding:14px;border-radius:8px;margin:10px 0 18px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{background:var(--surface-2);color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px;padding:15px 18px;white-space:nowrap}td{padding:18px;border-top:1px solid var(--line);font-size:12px;vertical-align:middle}td strong{font-weight:650}td pre{max-width:300px;white-space:pre-wrap;overflow-wrap:anywhere}.row-actions{display:flex;gap:7px;flex-wrap:wrap}.row-actions button{font-size:11px;padding:7px 11px}.badge{display:inline-flex;font-size:10px;font-weight:650;background:var(--surface-2);color:var(--text-2);padding:4px 9px;border-radius:6px;white-space:nowrap}.badge.green{background:var(--success-bg);color:var(--success)}.badge.amber{background:var(--warning-bg);color:var(--warning)}.debit{color:var(--red)}.credit{color:var(--green)}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:18px;font-size:12px;margin:22px 0}.empty,.loading{padding:55px 20px;text-align:center;color:var(--muted)}.empty h3{color:var(--ink)}footer{padding:20px 35px;color:var(--muted);font-size:10px;display:flex;justify-content:space-between;border-top:1px solid var(--line)}
label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;color:var(--text-2)}input,select,textarea{display:block;width:100%;border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:10px 12px;color:var(--ink);font-size:13px;min-width:0}textarea{resize:vertical}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}input[type=file]{font-size:12px}.check{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:400}.required{color:var(--accent-text)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.form-wide,.form-actions{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;border-top:1px solid var(--line);padding-top:18px}.filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:20px}.filters label{flex:1;min-width:110px;font-size:10px}.filters input,.filters select{font-size:12px}.filters button{font-size:12px}.reports-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.report-card{margin:0}.report-spend{font-size:28px;letter-spacing:-.8px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px 0}.metrics div{display:flex;flex-direction:column}.metrics small{font-size:9px;color:var(--muted)}.metrics strong{font-size:17px}.notes{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.screenshots{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.screenshots a{font-size:12px;background:var(--accent-soft);padding:8px 10px;border-radius:6px}.summary{display:grid;grid-template-columns:minmax(110px,1fr) 2fr;gap:10px 20px;font-size:12px;margin-bottom:25px}.summary dt{text-transform:capitalize;color:var(--muted);padding:6px;border-bottom:1px solid var(--line)}.summary dd{margin:0;padding:6px;overflow-wrap:anywhere;border-bottom:1px solid var(--line)}dialog{border:1px solid var(--line);border-radius:18px;max-width:820px;width:calc(100% - 36px);max-height:90vh;padding:30px;color:var(--ink);box-shadow:0 30px 100px var(--shadow-color-strong)}dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(3px)}#close-modal{margin-top:18px}#toast{position:fixed;bottom:25px;right:25px;max-width:400px;background:var(--surface-3);color:var(--on-dark);padding:15px 20px;border-radius:10px;box-shadow:0 6px 20px var(--shadow-color-strong);z-index:100;display:none;font-size:13px}#toast.show{display:block}#toast.error{background:var(--red)}
.wizard-progress{display:flex;list-style:none;padding:0;margin:30px 0;justify-content:space-between;gap:6px}.wizard-progress li{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.wizard-progress span{display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:28px;height:28px;background:var(--surface);font-size:11px}.wizard-progress li.active{color:var(--accent-text);font-weight:650}.wizard-progress li.active span{background:var(--accent);color:var(--on-dark);border-color:var(--accent)}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-size:23px;font-weight:700;padding:0;margin-bottom:15px;letter-spacing:-.5px}fieldset>label{max-width:500px}.wizard-panel{padding:32px}.wizard-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:25px;margin-top:35px}.wizard-actions span{font-size:11px;color:var(--muted)}[hidden]{display:none!important}.package-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-top:25px}.package-option{cursor:pointer;position:relative}.package-option input{position:absolute;top:20px;right:15px}.package-option>span{height:100%;border:2px solid var(--line);border-radius:12px;padding:22px;display:block;font-weight:400}.package-option input:checked+span{border-color:var(--accent);background:var(--accent-soft)}.package-option .package-description{white-space:pre-line;line-height:1.85}.package-option .notes{line-height:1.9;color:var(--text-2)}.package-option strong{font-size:19px;display:block;padding-right:16px}.package-option b{font-size:25px;display:block;letter-spacing:-.8px;color:var(--ink)}.package-option small{color:var(--muted);font-size:10px}.package-option p{font-size:12px;margin:15px 0;color:var(--muted)}.checkboxes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}
.login{background:var(--surface)}.login-grid{min-height:100vh;display:grid;grid-template-columns:1.15fr 1fr}.login-intro{background:var(--accent-soft);padding:55px 65px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.login-intro h1{font-size:48px;letter-spacing:-2px;line-height:1.16;margin:23px 0}.login-intro p{max-width:390px;color:var(--muted);font-size:15px}.login-intro small{color:var(--muted);font-size:11px}.login-intro .eyebrow{color:var(--accent-text)}.login-card{max-width:390px;width:calc(100% - 60px);margin:auto;padding:40px 0}.login-card h2{font-size:30px;margin:12px 0}.login-card form{display:flex;flex-direction:column;gap:20px;margin:30px 0 18px}.login-card>p{font-size:12px}.login-switch{border-top:1px solid var(--line);display:flex;gap:22px;margin-top:32px;padding-top:22px;font-size:12px}.login-switch a{color:var(--muted)}
@media(min-width:1500px){.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
@media(max-width:1150px){:root{--sidebar:215px}#sidebar{padding:26px 14px}main#main{padding:25px}.topbar{padding:0 25px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.wizard-progress li{flex-direction:column}.package-grid{grid-template-columns:1fr}.login-intro{padding:45px 35px}.login-intro h1{font-size:38px}.reports-grid{grid-template-columns:1fr}.brand{font-size:19px}.brand .muted{font-size:13px}}
@media(max-width:760px){.shell{margin-left:0}#sidebar{transform:translateX(-100%);width:245px;box-shadow:10px 0 40px var(--shadow-color)}.menu-open #sidebar{transform:translateX(0)}button.icon-button{display:inline-flex}.topbar{height:65px;padding:0 16px;gap:12px}.top-user{margin-left:auto}.top-user .status-dot{display:none}main#main{padding:23px 16px}.page-heading{align-items:flex-start;flex-wrap:wrap;gap:15px}h1{font-size:25px}.stats{gap:10px}.stat{padding:17px 13px;border-radius:11px}.stat:first-child{padding-top:15px}.stat strong{font-size:21px}.stat>span{font-size:10px}.stat small{font-size:9px}.panel{padding:18px}.section-title{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.wizard-progress li{font-size:0;gap:0}.wizard-progress span{font-size:11px}.wizard-panel{padding:20px}.wizard-actions span{display:none}.metrics{grid-template-columns:repeat(3,1fr)}.filters{padding:13px;gap:10px}.filters label{min-width:120px}.filters button{flex:1}.summary{grid-template-columns:1fr 1.5fr;gap:7px}dialog{padding:20px}footer{padding:20px 16px}footer span{display:none}.login-grid{display:block}.login-intro{min-height:unset;padding:28px 30px}.login-intro>div,.login-intro>small{display:none}.login-card{margin:25px auto;padding:25px 0}.checkboxes{grid-template-columns:1fr}}
@media(max-width:760px){#menu-close{position:absolute;right:17px;top:68px;font-size:24px;padding:0 7px}.workspace{margin-top:40px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.todo-block{margin-bottom:22px}.todo-block .section-title{margin-bottom:12px}
.todo-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
.todo{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow);color:var(--ink)}
a.todo:hover{text-decoration:none;background:var(--surface-2);border-color:var(--line-strong)}
.todo-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;flex-shrink:0;background:var(--surface-3);color:var(--text-2);font-weight:700}
.todo-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.todo-body strong{font-size:14px;font-weight:650;line-height:1.35}
.todo-body small{font-size:11px;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}
.todo-go{font-size:12px;font-weight:650;color:var(--accent-text);white-space:nowrap;flex-shrink:0}
.todo.urgent{border-left-color:var(--red)}.todo.urgent .todo-icon{background:var(--danger-bg);color:var(--red)}
.todo.warn{border-left-color:var(--warning)}.todo.warn .todo-icon{background:var(--warning-bg);color:var(--warning)}
.todo.info{border-left-color:var(--accent)}.todo.info .todo-icon{background:var(--accent-soft);color:var(--accent-text)}
.todo.done{border-left-color:var(--green)}.todo.done .todo-icon{background:var(--success-bg);color:var(--green);font-size:17px}
.distribution .camp-status{font-size:11px;padding:4px 10px}
.distribution small{font-weight:400;font-size:11px}
@media(max-width:640px){.todo-list{grid-template-columns:1fr}.todo{padding:14px 15px;gap:11px}.todo-go{font-size:11px}}
.bal-hero{background:var(--surface-2);color:var(--on-dark);border-radius:22px;padding:26px 28px;margin-bottom:18px;box-shadow:0 10px 30px var(--shadow-color);max-width:760px}
.bal-hero.low{background:var(--warning-bg-strong);box-shadow:0 10px 30px var(--shadow-color)}
.bal-hero.empty{background:var(--surface-3);box-shadow:none}
.bal-label{display:block;font-size:13px;color:var(--text-2)}
.bal-amount{display:block;font-size:38px;font-weight:600;letter-spacing:-1px;line-height:1.15;margin:6px 0 15px;overflow-wrap:anywhere}
.bal-facts{display:flex;flex-wrap:wrap;gap:8px 22px}
.bal-facts span{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-2);white-space:nowrap}
.bal-facts b{font-weight:650;color:var(--on-dark)}
.bal-facts .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.bal-facts .dot.in{background:var(--success)}.bal-facts .dot.out{background:var(--warning)}.bal-facts .dot.other{background:var(--muted)}
.bal-run{margin:16px 0 0;font-size:12px;line-height:1.75;color:var(--text-2)}.bal-run b{color:var(--on-dark)}
.bal-warn{margin:9px 0 0;font-size:12px;font-weight:650;color:var(--warning)}
.bal-panel{max-width:760px}.bal-chips{margin-bottom:16px}.chip-count{font-size:11px;opacity:.72;font-weight:600}
.bal-list{display:flex;flex-direction:column}
.bal-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:15px 2px;border-bottom:1px solid var(--line)}
.bal-row:last-child{border-bottom:0}
.bal-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;flex-shrink:0}
.bal-row.in .bal-icon{background:var(--success-bg);color:var(--success)}.bal-row.out .bal-icon{background:var(--danger-bg);color:var(--red)}
.bal-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.bal-main strong{font-size:14px;font-weight:650}
.bal-main small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.bal-desc{color:var(--muted)}
.bal-delta{font-size:16px;font-weight:700;white-space:nowrap}
.bal-row.in .bal-delta{color:var(--green)}.bal-row.out .bal-delta{color:var(--red)}
@media(max-width:640px){.bal-hero{padding:20px;border-radius:18px}.bal-amount{font-size:30px}.bal-row{grid-template-columns:auto minmax(0,1fr);row-gap:7px}.bal-delta{grid-column:2;justify-self:end}}
.cancel-section{padding-bottom:0}.cancel-section.open{padding-bottom:23px}
.cancel-section .acc-head{margin:0;cursor:pointer;user-select:none}
.cancel-section .acc-head h2{font-size:17px}
.cancel-section .acc-head .muted{font-size:12px;white-space:nowrap;margin-left:auto}
.cancel-section .acc-head .pay-chevron{color:var(--muted);transition:transform 260ms cubic-bezier(.4,0,.2,1)}
.cancel-section.open .acc-head .pay-chevron{transform:rotate(180deg)}
.cancel-intro{font-size:12px;line-height:1.75;margin:14px 0 16px;max-width:760px}
.cancel-list{display:flex;flex-direction:column;gap:10px;max-width:760px}
.cancel-card{border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:12px;background:var(--surface-2);padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.cancel-head{display:flex;align-items:flex-start;gap:11px}
.cancel-head svg{flex-shrink:0;color:var(--muted);margin-top:1px}
.cancel-head .badge{flex-shrink:0;margin-top:2px}
.cancel-title{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.cancel-title strong{font-size:15px;font-weight:600;color:var(--text-2);line-height:1.35;overflow-wrap:anywhere}
.cancel-title small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.cancel-body{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;padding-top:11px;border-top:1px dashed var(--line)}
.cancel-times{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px 18px;margin:0;flex:1 1 250px;min-width:0}
.cancel-times>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.cancel-times dt{font-size:10px;font-weight:650;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.cancel-times dd{margin:0;font-size:13px;font-weight:600;color:var(--text-2);overflow-wrap:anywhere}
.cancel-again{font-size:12px;font-weight:650;white-space:nowrap;flex-shrink:0;margin-left:auto;padding-bottom:1px}
.bank-picker{margin:2px 0 16px;font-size:11px;font-weight:650;letter-spacing:.4px;color:var(--muted)}
.bank-box{border:1px solid var(--accent-line);border-radius:14px;background:linear-gradient(180deg,var(--accent-soft) 0%,var(--surface) 60%);padding:18px;display:flex;flex-direction:column;gap:16px}
.bank-box-head{display:flex;align-items:center;gap:11px;padding-bottom:15px;border-bottom:1px dashed var(--accent-line)}
.bank-box-head svg{flex-shrink:0;color:var(--accent-text)}
.bank-name{font-size:17px;line-height:1.3;letter-spacing:-.3px;overflow-wrap:anywhere}
.bank-line{display:flex;flex-direction:column;gap:7px}
.bank-line>small{font-size:10px;font-weight:650;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.bank-line>span{font-size:15px;font-weight:600;line-height:1.45}
.bank-no-row{display:flex;align-items:stretch;gap:9px;flex-wrap:wrap}
.bank-no-row .bank-account-no{flex:1 1 150px}
.bank-no-row .copy-btn{flex-shrink:0;padding-left:16px;padding-right:16px}
.bank-account-no{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:19px;font-weight:700;letter-spacing:1.5px;padding:12px 14px;background:var(--surface);border:1px solid var(--accent-line);border-radius:10px;user-select:all}
.bank-note{margin:16px 0 0;font-size:12px;line-height:1.7;white-space:pre-wrap}
.bank-company{margin:18px 0 0;font-size:11px;grid-template-columns:minmax(88px,1fr) 1.6fr;gap:0 16px}
.bank-company dt,.bank-company dd{padding:7px 0}
.bank-company dd{font-weight:600}
.bank-list{display:flex;flex-direction:column;gap:12px}.bank-row{padding:15px 16px;border:1px dashed var(--line);border-radius:10px;background:var(--surface-2)}.bank-row-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:13px}.bank-row-head .badge{font-size:9px}.bank-row-head button{margin-left:auto;font-size:11px;padding:6px 11px}.bank-row-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.bank-empty{margin:0;font-size:12px}
@media(max-width:900px){.bank-row-grid{grid-template-columns:1fr}}

/* Channel-first onboarding and server-calculated cost breakdown. */
.channel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:25px 0}
.channel-option{cursor:pointer;position:relative}
.channel-option input{position:absolute;right:20px;top:20px}
.channel-option>span{display:flex;flex-direction:column;gap:12px;padding:32px;border:2px solid var(--line);border-radius:14px;background:var(--surface)}
.channel-option strong{font-size:26px;color:var(--ink)}
.channel-option small{color:var(--muted)}
.channel-option input:checked+span{border-color:var(--accent);background:var(--accent-soft)}
#budget-quote{margin-top:24px}
.quote-panel{padding:24px;border:1px solid var(--accent-line);border-radius:13px;background:var(--accent-soft);margin:20px 0}
.quote-formula{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:18px 0;font-size:19px;color:var(--ink)}
.quote-formula span{color:var(--muted)}
.quote-lines{margin:0 0 15px}
.quote-lines>div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;font-size:14px}
.quote-lines dd{margin:0;font-weight:650;text-align:right;white-space:nowrap}
.quote-subtotal{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.quote-lines .quote-total{margin-top:12px;padding:18px;background:var(--accent);border-radius:10px;color:var(--on-dark)}
.quote-total dd{font-size:26px;letter-spacing:-.5px}
@media(max-width:760px){.channel-grid{grid-template-columns:1fr}.channel-option>span{padding:24px}.quote-panel{padding:16px}.quote-formula{font-size:16px}.quote-lines>div{font-size:12px}.quote-total dd{font-size:23px}.quote-lines .quote-total{padding:14px}}

/* Compact package-specific campaign intake. */
#campaign-intake label{display:block}
#campaign-intake label>input,#campaign-intake label>select,#campaign-intake label>textarea{margin-top:8px}
#campaign-intake input[readonly]{background:var(--surface-2);color:var(--text-2);border-color:var(--line);cursor:default}
.dashboard-grid.payment-layout{grid-template-columns:minmax(270px,1fr) minmax(0,1.6fr);align-items:start}
.payment-layout .bank-value{overflow-wrap:anywhere;white-space:pre-wrap}
#payment-form label,#bank-settings label{display:block}
#payment-form label>input,#payment-form label>select,#payment-form label>textarea,#bank-settings label>input{margin-top:8px;width:100%}
#payment-form label:first-child,#payment-form label:has(textarea),#payment-form label:has([type=file]){grid-column:1/-1}
#payment-form input[readonly]{background:var(--bg);font-weight:600}
.payment-review{margin:6px}
.report-import{padding:16px;border:1px solid var(--line,var(--line));border-radius:12px}
#report-photo-preview{display:block;max-width:100%;max-height:260px;object-fit:contain;margin:12px 0}
#report-photo-preview[hidden],#report-photo-remove[hidden]{display:none}
#report-ocr-status{overflow-wrap:anywhere;margin-top:10px}
.ocr-uncertain{border-color:var(--warning)!important;background:var(--warning-bg)!important}
.ocr-field-warning{color:var(--warning);font-size:12px;line-height:1.5}
.ocr-debug{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:8px}
.ocr-debug img{display:block;max-width:100%;height:auto;margin:8px 0}
.ocr-debug figure{margin:8px 0;padding:8px;background:var(--surface-2);border-radius:6px}
.ocr-debug pre,.ocr-debug figcaption{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
.ocr-debug-field{border-top:1px solid var(--line);padding:10px 0}
#copy-account-number{margin-left:12px;padding:6px 12px;font-size:12px}
@media(max-width:1000px){.dashboard-grid.payment-layout{grid-template-columns:1fr}}
/* Shared pagination (assets/components/pagination.js): range on the left, pages on the right. */
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px 18px;flex-wrap:wrap;margin:18px 0 4px;font-size:13px}
.pager-info{color:var(--muted)}
.pager-pages{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.pager-btn{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:6px 11px;min-width:34px;font-size:13px;font-weight:600;line-height:1.4}
.pager-btn:hover{filter:none;border-color:var(--line-strong)}
.pager-btn.active{background:var(--accent);border-color:var(--accent);color:var(--on-dark);cursor:default}
.pager-btn:disabled{opacity:1;color:var(--muted);background:var(--surface-2);border-color:var(--line);cursor:not-allowed}
.pager-gap{padding:0 4px;color:var(--muted)}
.panel>.pager:last-child,.pay-section>.pager:last-child{margin-bottom:0}
@media(max-width:640px){.pager{justify-content:center}.pager-info{width:100%;text-align:center}.pager-btn{padding:6px 9px;min-width:30px}}

/* Notifications: one panel, grouped by local day; colour and icon say what kind of event it is */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.notif-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;max-width:820px;margin-bottom:16px}.notif-toolbar .segmented{margin-bottom:0}
.notif-all{font-size:13px;padding:8px 14px}
.notif-panel{max-width:820px;padding:4px 0;overflow:hidden}
.notif-day+.notif-day{border-top:1px solid var(--line)}
.notif-day-head{margin:0;padding:16px 24px 6px;font-size:12px;font-weight:700;letter-spacing:.4px;color:var(--muted)}
.notif-item{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;padding:14px 24px;transition:background 160ms ease}
.notif-item+.notif-item{border-top:1px solid var(--line)}
.notif-item.unread{background:var(--accent-soft)}
.notif-item.unread::before{content:'';position:absolute;left:10px;top:31px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.notif-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface-3);color:var(--text-2);flex-shrink:0}
.k-pay .notif-icon,.notif-icon.k-pay{background:var(--warning-bg);color:var(--warning)}
.k-ok .notif-icon,.notif-icon.k-ok{background:var(--success-bg);color:var(--success)}
.k-bad .notif-icon{background:var(--danger-bg);color:var(--red)}
.k-campaign .notif-icon{background:var(--info-bg);color:var(--info)}
.k-report .notif-icon,.k-renew .notif-icon{background:var(--accent-soft);color:var(--accent-text)}
.k-balance .notif-icon{background:var(--warning-bg);color:var(--warning)}
.notif-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.notif-top strong{font-size:14px;font-weight:650;color:var(--ink)}
.notif-item:not(.unread) .notif-top strong{font-weight:600;color:var(--text-2)}
.notif-top time{flex-shrink:0;font-size:12px;color:var(--muted);white-space:nowrap}
.notif-body{min-width:0}
.notif-body p{margin:3px 0 0;font-size:13px;line-height:1.65;color:var(--text-2);overflow-wrap:anywhere}
.notif-item:not(.unread) .notif-body p{color:var(--muted)}
.notif-actions{display:flex;align-items:center;gap:16px;margin-top:8px}
.notif-link{font-size:12px;font-weight:600}
button.notif-mark{background:none;border:0;padding:0;color:var(--muted);font-size:12px;font-weight:600}
button.notif-mark:hover{color:var(--accent-text);filter:none}
.notif-empty{max-width:820px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:48px 20px}.notif-empty h3{margin:10px 0 0}.notif-empty p{margin:0}
@media(max-width:640px){.notif-day-head{padding:14px 16px 4px}.notif-item{grid-template-columns:34px minmax(0,1fr);gap:12px;padding:13px 16px 13px 18px}.notif-icon{width:34px;height:34px;border-radius:10px}.notif-icon svg{width:17px;height:17px}.notif-item.unread::before{left:6px;top:27px;width:6px;height:6px}.notif-toolbar{margin-bottom:12px}}.notif-panel~.pager,.notif-empty~.pager{max-width:820px}

/* Create campaign: channels Admin has closed stay visible but cannot be picked */
.channel-option.disabled{cursor:not-allowed}
.channel-option.disabled>span{background:var(--surface-2);border-style:dashed}
.channel-option.disabled strong{color:var(--muted)}.channel-option.disabled small{color:var(--muted)}
.channel-closed{display:inline-block;margin-left:10px;padding:3px 10px;border-radius:999px;background:var(--surface-3);color:var(--text-2);font-size:12px;font-style:normal;font-weight:700;letter-spacing:0;vertical-align:middle}
/* Settings: one switch per channel */
.channel-switches{padding-top:18px;border-top:1px solid var(--line)}
.channel-switches h3{margin:0 0 4px;font-size:15px}
.channel-switches>p{margin:0 0 14px;font-size:12px}
.switch-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
label.switch-row{flex-direction:row;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;transition:background 160ms ease}
label.switch-row:has(.switch:not(:checked)){background:var(--surface-2)}
.switch-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.switch-text strong{font-size:14px;color:var(--ink)}.switch-text small{font-weight:400;color:var(--muted)}
.switch-row:has(.switch:not(:checked)) .switch-text strong{color:var(--muted)}
.switch-state::after{content:attr(data-on);font-size:12px;font-weight:600;color:var(--green)}
.switch-row:has(.switch:not(:checked)) .switch-state::after{content:attr(data-off);color:var(--muted)}
input.switch{appearance:none;-webkit-appearance:none;position:relative;width:40px;height:22px;padding:0;border:0;border-radius:999px;background:var(--line);cursor:pointer;flex-shrink:0;transition:background 160ms ease}
input.switch::before{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px var(--shadow-color-strong);transition:transform 160ms ease}
input.switch:checked{background:var(--green)}
input.switch:checked::before{transform:translateX(18px)}
input.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Settings: channel management panel */
.channel-panel{margin-top:22px}
.channel-panel-head{align-items:flex-start;gap:16px;flex-wrap:wrap}.channel-panel-head h2{margin:0 0 4px}.channel-panel-head p{margin:0;font-size:12px;max-width:620px}
.channel-rows{display:flex;flex-direction:column;margin-top:14px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.channel-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:14px 18px;background:var(--surface)}
.channel-row+.channel-row{border-top:1px solid var(--line)}
.channel-row.is-closed{background:var(--surface-2)}
.channel-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.channel-row-main strong{font-size:15px;color:var(--ink)}.channel-row.is-closed .channel-row-main strong{color:var(--muted)}
.channel-row-main small{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.channel-row .channel-closed{font-size:11px;padding:2px 8px}
label.channel-switch{padding:0;border:0;background:none;gap:10px}
label.channel-switch:has(.switch:not(:checked)){background:none}
.channel-row .row-actions{flex-wrap:nowrap}.channel-row .row-actions button{padding:7px 12px;font-size:12px}
@media(max-width:640px){.channel-row{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:13px 14px}.channel-row .row-actions{grid-column:1/-1}}
.channel-hint{display:block;margin-top:10px}

/* Login: client sign-up link and the anti-bot field people never see */
.login-hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.login-alt{margin-top:6px;font-size:13px;color:var(--muted)}
.login-card form label small{font-weight:400;font-size:11px}

/* Sign-up: phone number or Telegram ID */
.contact-choice{display:flex;flex-direction:column;gap:10px;margin:0}
.contact-choice legend{font-size:12px;font-weight:600;color:var(--text-2);letter-spacing:0;margin-bottom:7px}
.contact-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--surface-3);border-radius:10px}
.contact-tabs label{display:block;cursor:pointer;margin:0}
.contact-tabs input{position:absolute;opacity:0;width:1px;height:1px}
.contact-tabs span{display:block;text-align:center;padding:8px 10px;border-radius:7px;font-size:13px;font-weight:600;color:var(--text-2);transition:background 160ms ease,color 160ms ease}
.contact-tabs input:checked+span{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px var(--shadow-color)}
.contact-tabs input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}
.contact-field[hidden]{display:none}
/* Profile: identity card on the left, contact and password cards on the right */
.profile-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:22px;align-items:start;max-width:1080px}
.profile-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 24px;position:sticky;top:20px}
.profile-avatar{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent-hover));color:var(--on-dark);font-size:34px;font-weight:700;box-shadow:0 8px 22px var(--shadow-color);margin-bottom:14px}
.profile-card h2{margin:0;font-size:19px;overflow-wrap:anywhere}
.profile-role{margin-top:8px;padding:3px 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:12px;font-weight:700}
.profile-facts{width:100%;margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px;text-align:left}
.profile-facts div{display:flex;flex-direction:column;gap:2px}
.profile-facts dt{font-size:11px;color:var(--muted);letter-spacing:.3px}
.profile-facts dd{margin:0;font-size:13px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.profile-main{display:flex;flex-direction:column;min-width:0}
.profile-section{padding:26px 28px}
.profile-section-head{margin-bottom:18px}.profile-section-head h2{margin:0 0 4px;font-size:17px}.profile-section-head p{margin:0;font-size:12px}
.profile-section .form-error:empty{display:none}
.pw-field{position:relative;display:block}
.pw-field input{padding-right:64px}
button.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);padding:4px 10px;font-size:12px;background:transparent;color:var(--muted);border:0;box-shadow:none}
button.pw-toggle:hover{color:var(--accent-text);filter:none}
@media(max-width:900px){.profile-layout{grid-template-columns:1fr}.profile-card{position:static}}
@media(max-width:640px){.profile-section{padding:20px 18px}}
.notice.success{background:var(--success-bg);border-color:var(--success-line);color:var(--success)}

/* ===== OADS portal (light operational) ===== */
body{background:var(--bg);color:var(--text)}
#sidebar,.topbar{background:var(--surface)}
#sidebar{border-right-color:var(--line)}.topbar{border-bottom-color:var(--line)}footer{border-top-color:var(--line);background:transparent}
a{color:var(--accent-text)}a:hover{color:var(--accent-hover)}
/* Buttons: primary = orange (the main use of orange); secondary = quiet white */
button,.button{background:var(--accent);color:var(--on-accent);box-shadow:none}
button:hover,.button:hover{background:var(--accent-hover);filter:none}
button.secondary,.button.secondary{background:var(--surface);color:var(--text);border-color:var(--line-strong)}
button.secondary:hover,.button.secondary:hover{background:var(--surface-2);border-color:var(--muted);color:var(--text)}
button.danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-line)}
button.danger:hover{background:var(--danger-hover)}
button.icon-button{background:transparent;color:var(--text)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Text on an orange fill */
.quote-total,.quote-total dt,.quote-total dd,.quote-total .fx-aside,.brand-mark{color:var(--on-accent)}
.pay-tab .count.hot{background:var(--danger);color:var(--on-dark)}
/* Forms */
input,select,textarea{background:var(--surface);color:var(--text);border-color:var(--line-strong)}
input::placeholder,textarea::placeholder{color:var(--placeholder)}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
label{color:var(--text-2)}
dialog{background:var(--surface);color:var(--text);box-shadow:0 20px 50px var(--shadow-color-strong)}
dialog::backdrop{background:var(--backdrop);backdrop-filter:none}
#toast{background:var(--toast-bg);border:0;color:var(--on-dark)}#toast.error{background:var(--danger);color:var(--on-dark)}
/* Navigation: active item = light orange with a thin orange marker */
#navigation a.active{background:var(--accent-soft);color:var(--text);box-shadow:inset 3px 0 0 var(--accent)}
#navigation a.active .nav-symbol{color:var(--accent-text)}
/* Cards: white, subtle border, very light shadow; no thick orange borders, no gradients */
.panel,.stat,.camp-card,.table-wrap{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}
.stat:first-child{border-top:1px solid var(--line);padding-top:23px}
.bank-box{background:var(--surface-2);border-color:var(--line)}
.method-option,.package-option>span,.channel-option>span{border-width:1px}
.method-option:has(input:checked),.package-option input:checked+span,.channel-option input:checked+span{border-color:var(--accent);background:var(--accent-soft);box-shadow:none}
/* Tables: white body, light grey header, subtle dividers, light orange hover */
th{background:var(--surface-3);color:var(--muted)}
td{border-top-color:var(--line)}
tbody tr:hover>td{background:var(--accent-soft)}
/* Row actions stay quiet so orange is not repeated on every row; page-level primary buttons keep the orange */
.table-wrap .row-actions button:not(.secondary):not(.danger){background:var(--surface);color:var(--text);border-color:var(--line-strong)}
.table-wrap .row-actions button:not(.secondary):not(.danger):hover{background:var(--accent-soft);border-color:var(--accent-line);color:var(--text)}
/* Status badges: green success, yellow pending, red error, blue info, grey neutral */
.badge{border:1px solid transparent}
.badge.green{background:var(--success-bg);color:var(--success);border-color:var(--success-line)}
.badge.amber{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-line)}
.badge.red{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-line)}
.camp-status.paused,.camp-status.completed,.camp-status.cancelled{background:var(--neutral-bg);color:var(--neutral)}
/* Progress / management days: neutral box, orange progress */
.camp-days{background:var(--surface-2);border:1px solid var(--line)}.camp-days strong{color:var(--text)}.camp-days-bar{background:var(--line)}.camp-days-bar i{background:var(--accent)}
/* Charts: orange is the primary series */
.chart rect{fill:var(--chart-1)}
/* Avatars: flat orange, the logo's dot colour */
.avatar,.profile-avatar{background:var(--accent);color:var(--on-accent);box-shadow:none}
.status-dot{background:var(--success)}
.brand-logo{width:40px;height:40px;border-radius:10px;display:block;margin-right:2px;flex-shrink:0}
.brand .muted{color:var(--muted)}
.notice{background:var(--surface-2);border-color:var(--line);color:var(--text-2)}
.notice.warning{background:var(--warning-bg);border-color:var(--warning-line);color:var(--warning)}
.notice.error,.form-error:not(:empty){background:var(--danger-bg);color:var(--danger)}
.notice.success{background:var(--success-bg);border-color:var(--success-line);color:var(--success)}
.wizard-progress li.active span,.pager-btn.active{color:var(--on-accent)}
.usdt-badge{background:var(--success-bg);color:var(--success);border:1px solid var(--success-line)}
.pay-summary,.bal-hero{background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow)}
.bal-hero.low{background:var(--warning-bg);border-color:var(--warning-line)}.bal-hero.empty{background:var(--surface-3)}
.pay-summary-facts b,.bal-facts b,.bal-run b{color:var(--text)}
.usdt-due{background:var(--success-bg);border:1px solid var(--success-line);color:var(--text)}
.usdt-due strong{color:var(--success)}.usdt-due>small:first-child,.usdt-due .muted{color:var(--text-2)}
input.switch:checked{background:var(--accent)}
.switch-state::after{color:var(--accent-text)}
.contact-tabs{background:var(--surface-3)}

/* ===== Public pages (login / sign-up / reset): dark creative, same OADS brand ===== */
.login{
 --bg:var(--brand-black);--surface:var(--brand-surface);--surface-2:#1B1B1B;--surface-3:#222222;
 --text:var(--brand-white);--ink:var(--brand-white);--text-2:#D4D4D4;--muted:var(--brand-muted);
 --line:var(--brand-border);--line-strong:#3A3A3A;--placeholder:#6B6B6B;
 --accent:var(--brand-orange);--accent-hover:var(--brand-orange-hover);--accent-soft:rgba(241,90,43,.14);--accent-line:rgba(241,90,43,.45);--accent-text:var(--brand-orange);
 --success:#34D399;--success-bg:rgba(52,211,153,.12);--success-line:rgba(52,211,153,.35);
 --danger:#F87171;--danger-bg:rgba(248,113,113,.12);--danger-line:rgba(248,113,113,.35);
 color-scheme:dark;background:var(--brand-black);color:var(--text)}
.login-intro{background:var(--brand-black);border-right:1px solid var(--line)}.login-intro h1{color:var(--text)}
.login-intro .eyebrow{color:var(--accent)}
.login-card{background:transparent}
.login input,.login select,.login textarea{background:var(--brand-black);border-color:var(--line)}
.login input:focus{box-shadow:none}
.login .contact-tabs input:checked+span{background:var(--brand-black);color:var(--text);box-shadow:inset 0 0 0 1px var(--accent)}
/* Language switch (EN / 中文): a small segmented pill in the top bar and on the login pages */
.lang-switch{display:inline-flex;gap:2px;padding:3px;margin-right:14px;background:var(--surface-3);border:1px solid var(--line);border-radius:999px;color:var(--muted);box-shadow:none;cursor:pointer;font-size:12px;font-weight:600;line-height:1}
.lang-switch:hover{background:var(--surface-3);filter:none}
.lang-switch span{padding:5px 10px;border-radius:999px}
.lang-switch span.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px var(--shadow-color)}
.topbar .lang-switch{margin-left:auto}
.login .lang-switch{position:absolute;top:22px;right:24px;margin:0}
.login-grid{position:relative}
/* Intro panel: larger logo, slogan centred and sized to the screen so small laptops still show all of it */
.login-intro{align-items:center;text-align:left;padding:48px clamp(28px,5vw,72px)}
/* Logo, slogan and footnote share one left edge, in a column centred in the panel */
.login-intro>*{width:100%;max-width:520px}
.login-intro h1{font-size:clamp(32px,3.4vw,52px);letter-spacing:-1.5px}
.login-intro p{margin:0}
.login-brand{display:inline-block;line-height:0}
.login-logo{width:120px;height:120px;border-radius:26px;display:block;margin-left:-14px} /* the image's own padding; lines the O up with the text */
.login-card h2{margin-top:0}
@media(max-width:760px){.login-intro{padding:28px 20px}.login-logo{width:80px;height:80px;border-radius:18px;margin-left:-9px}}
/* Top bar on small screens: the language switch needs room, so long user names are shortened and hidden on phones */
.top-user{min-width:0}#user-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar{gap:10px}#breadcrumb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){#user-name{display:none}.topbar .lang-switch{margin-right:4px}}
/* Catalog forms (packages, industries, countries): titled sections instead of one long grid */
.form-section{border:1px solid var(--line);border-radius:12px;padding:14px 18px 18px;margin:0;background:var(--surface)}
.form-section+.form-section{margin-top:2px}
.form-section legend{font-size:13px;font-weight:700;letter-spacing:0;color:var(--text);padding:0 6px;margin:0 0 4px -6px}
.form-section .form-grid{gap:14px 16px}
.form-section-note{margin:0 0 12px;font-size:12px}
.form-section .lang-field textarea{min-height:84px}
.field-label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:8px}
.channel-checks{display:flex;flex-wrap:wrap;gap:8px 18px}
dialog .form-grid>.form-actions{margin-top:4px}
/* Package list: state label with the open / closed switch */
.pkg-state{display:flex;align-items:center;gap:10px}
label.pkg-switch{padding:0;border:0;background:none}
/* Wizard: a closed package stays visible but cannot be chosen */
.package-option.disabled{cursor:not-allowed}
.package-option.disabled>span{background:var(--surface-2);border-style:dashed;opacity:.75}
.package-option.disabled .channel-closed{margin-left:8px}/* Required mark on the same line as its label */
.label-text{display:block}.label-text .required{color:var(--danger)}

/* Agency support contact buttons (WhatsApp / Telegram), set by Admin in Settings */
.contact-buttons{display:flex;flex-wrap:wrap;gap:10px}
.contact-button{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;font-weight:700;font-size:14px;text-decoration:none;color:#fff;line-height:1.2;transition:filter .15s ease,transform .15s ease}
.contact-button:hover{filter:brightness(1.08);transform:translateY(-1px);color:#fff}
.contact-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.contact-button small{font-weight:500;opacity:.9;font-size:12px}
.contact-button.whatsapp{background:#0A7A55}
.contact-button.telegram{background:#1769A8}
.contact-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.contact-panel h2{margin-bottom:4px}.contact-panel p{margin:0}
.sidebar-contact{margin:16px 0 8px;display:grid;gap:8px}
.sidebar-contact .contact-buttons{gap:8px}
.sidebar-contact .contact-button{flex:1 1 0;justify-content:center;padding:8px 10px;font-size:13px}
/* Payment page grid: let panels shrink to the column on phones (long English labels pushed them 9px past the screen) */
.payment-layout>*{min-width:0}
.payment-layout .bank-box,.payment-layout .bank-box *{overflow-wrap:anywhere}
/* Form grids: a long option text (e.g. an application name) must not widen the form past a phone screen */
.form-grid>*{min-width:0}
.form-grid select,.form-grid input{max-width:100%;min-width:0}
