.promoter-login { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(135deg,#eef8f1,#fff5ef); }
.promoter-login-card { width:min(430px,100%); padding:40px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:24px; box-shadow:var(--shadow); }
.promoter-login-card h1 { margin:0; color:var(--ink); font-size:30px; }
.promoter-login-card>p:not(.eyebrow) { margin:8px 0 28px; color:var(--muted); }
.promoter-login-card form { text-align:left; }
.promoter-login-card .button { width:100%; min-height:48px; margin-top:8px; }
.promoter-login-card>small { display:block; margin-top:18px; color:var(--muted); }
.p-field { display:grid; gap:7px; margin-bottom:16px; }
.p-field label { color:var(--ink); font-weight:700; font-size:13px; }
.p-field input,.p-field select { width:100%; min-height:44px; padding:0 12px; border:1px solid #cdd9d1; border-radius:10px; outline:none; }
.p-field input:focus,.p-field select:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(23,140,69,.12); }
.p-field small { color:var(--muted); font-size:12px; line-height:1.5; }
.p-password-control { position:relative; }
.p-password-control input { padding-right:66px; }
.p-password-toggle { position:absolute; top:0; right:0; min-width:58px; height:44px; color:var(--brand-strong); background:var(--brand-soft); border:0; border-radius:9px; font-size:12px; font-weight:700; }
.p-password-form { max-width:480px; margin:0 auto; }
.p-password-form>.button { width:100%; min-height:48px; margin-top:4px; }
.p-password-form>.button:disabled { opacity:.58; cursor:wait; }
.p-password-error { min-height:24px; margin:-4px 0 8px; color:var(--danger); font-size:13px; line-height:1.5; }
.promoter-app { min-height:100vh; }
.p-header { position:sticky; top:0; z-index:50; min-height:72px; display:flex; align-items:center; gap:28px; padding:0 32px; color:#d9e7dd; background:#17251d; box-shadow:0 5px 20px rgba(12,31,19,.12); }
.p-brand { display:flex; align-items:center; gap:11px; margin-right:auto; }
.p-brand .brand-mark { width:40px; height:40px; margin:0; border-radius:12px; font-size:18px; }
.p-brand strong,.p-brand small { display:block; }
.p-brand strong { color:#fff; }
.p-brand small { color:#8fa797; font-size:11px; }
.p-header nav { display:flex; align-self:stretch; }
.p-nav { min-width:86px; padding:0 14px; color:#a8b9ae; background:transparent; border:0; border-bottom:3px solid transparent; }
.p-nav-icon,.p-mobile-nav,.p-mobile-menu-button { display:none; }
.p-nav:hover,.p-nav.active { color:#fff; }
.p-nav.active { border-bottom-color:#29b75f; }
.p-user { display:flex; align-items:center; gap:12px; color:#fff; }
.p-user button { color:#adbbb2; background:transparent; border:0; }
.p-content { width:min(1280px,100%); margin:0 auto; padding:34px 28px 60px; }
.p-page-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:22px; }
.p-page-head h1 { margin:0; color:var(--ink); font-size:28px; letter-spacing:-.03em; }
.p-page-head p { margin:5px 0 0; color:var(--muted); }
.p-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:13px; }
.p-metric { padding:19px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.p-metric span { color:var(--muted); font-size:13px; }
.p-metric strong { display:block; margin-top:10px; color:var(--ink); font-size:25px; font-variant-numeric:tabular-nums; }
.p-metric.money { background:linear-gradient(145deg,#13723b,#229e50); border-color:transparent; }
.p-metric.money span { color:rgba(255,255,255,.7); }
.p-metric.money strong { color:#fff; }
.p-panel { margin-top:18px; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.p-panel-head { min-height:58px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; border-bottom:1px solid var(--line); }
.p-panel-head h2 { margin:0; color:var(--ink); font-size:17px; }
.p-panel-body { padding:21px; }
.p-table { width:100%; overflow-x:auto; }
.p-table table { width:100%; border-collapse:collapse; }
.p-table th,.p-table td { padding:13px 15px; text-align:left; border-bottom:1px solid #edf1ee; white-space:nowrap; }
.p-table th { color:#69756d; background:#f7f9f7; font-size:13px; }
.p-table td { font-size:13px; }
.status { display:inline-flex; align-items:center; min-height:25px; padding:0 9px; border-radius:99px; font-size:12px; font-weight:700; white-space:nowrap; }
.status.completed,.status.settled,.status.available,.status.paid,.status.withdrawn { color:#08723a; background:#e6f6eb; }
.status.pending,.status.estimated,.status.pending_review,.status.pending_settlement,.status.withdrawing,.status.approved { color:#985909; background:#fff3d8; }
.status.refunded,.status.cancelled,.status.rejected { color:#aa312b; background:#ffebe9; }
.qr-layout { display:grid; grid-template-columns:380px minmax(0,1fr); gap:28px; align-items:start; }
.qr-card { padding:24px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:16px; }
.qr-card img { width:280px; max-width:100%; border-radius:12px; }
.qr-card strong { display:block; margin-top:14px; color:var(--ink); font-size:18px; }
.qr-card p { margin:5px 0 17px; color:var(--muted); }
.qr-guide { padding:28px; background:#fff; border:1px solid var(--line); border-radius:16px; }
.qr-guide h2 { margin:0 0 18px; color:var(--ink); }
.qr-step { display:flex; gap:14px; padding:15px 0; border-bottom:1px solid #edf1ee; }
.qr-step:last-child { border:0; }
.qr-step b { width:30px; height:30px; display:grid; place-items:center; color:var(--brand); background:var(--brand-soft); border-radius:50%; }
.jd-link-guide { display:grid; grid-template-columns:36px minmax(0,1fr) 28px 36px minmax(0,1fr) 28px 36px minmax(0,1fr); align-items:center; gap:10px; margin-bottom:18px; padding:18px 20px; color:var(--text); background:linear-gradient(135deg,#edf8f0,#fff); border:1px solid #d9e9dd; border-radius:16px; }
.jd-link-guide>span { width:36px; height:36px; display:grid; place-items:center; color:#fff; background:var(--brand); border-radius:11px; font-weight:900; }
.jd-link-guide>p { min-width:0; margin:0; }
.jd-link-guide strong,.jd-link-guide small { display:block; }
.jd-link-guide small { margin-top:3px; color:var(--muted); font-size:12px; line-height:1.45; }
.jd-link-guide>i { color:#8baa94; text-align:center; font-style:normal; }
.jd-link-workspace { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.jd-link-card { min-width:0; padding:22px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 8px 26px rgba(24,49,31,.045); }
.jd-link-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:13px; }
.jd-link-card-head span,.jd-link-card-head strong { display:block; }
.jd-link-card-head span { margin-bottom:3px; color:var(--brand); font-size:12px; font-weight:800; }
.jd-link-card-head strong { color:var(--ink); font-size:17px; }
.jd-link-card-head>small { color:var(--muted); white-space:nowrap; }
.jd-link-card textarea { width:100%; min-height:300px; padding:15px; resize:vertical; color:var(--text); background:#f8faf8; border:1px solid #cfdbd2; border-radius:12px; outline:none; font:14px/1.75 inherit; }
.jd-link-card textarea:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(23,140,69,.12); }
.jd-link-result textarea { background:#f2faf4; border-color:#bcdcc6; }
.jd-link-note { min-height:38px; margin:10px 0 13px; color:var(--muted); font-size:12px; line-height:1.55; }
.jd-link-card>.button { width:100%; min-height:46px; }
.jd-link-commission-summary { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 16px; align-items:center; margin-bottom:11px; padding:14px 15px; color:#fff; background:linear-gradient(135deg,#0e793b,#20a053); border-radius:12px; }
.jd-link-commission-summary>span { font-size:13px; font-weight:700; }
.jd-link-commission-summary>strong { grid-row:1; grid-column:2; font-size:25px; font-variant-numeric:tabular-nums; }
.jd-link-commission-summary>small { color:rgba(255,255,255,.76); font-size:11px; line-height:1.45; }
.jd-link-commission-list { display:grid; gap:8px; margin-bottom:12px; }
.jd-link-commission-list article { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 12px; background:#f7faf8; border:1px solid #e0e9e2; border-radius:11px; }
.jd-link-commission-list article>div { min-width:0; display:flex; align-items:center; gap:10px; }
.jd-link-commission-list article>div>span { width:28px; height:28px; flex:0 0 28px; display:grid; place-items:center; color:var(--brand-strong); background:#e3f4e8; border-radius:8px; font-size:12px; font-weight:900; }
.jd-link-commission-list p,.jd-link-commission-list strong,.jd-link-commission-list small { display:block; margin:0; }
.jd-link-commission-list article>div p { min-width:0; }
.jd-link-commission-list article>div strong { overflow:hidden; color:var(--ink); font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.jd-link-commission-list small { margin-top:3px; color:var(--muted); font-size:11px; }
.jd-link-commission-list article>p { flex:0 0 auto; text-align:right; }
.jd-link-commission-list article>p strong { color:var(--brand-strong); font-size:17px; font-variant-numeric:tabular-nums; }
.jd-link-commission-list article>p.muted strong { color:#69766d; font-size:12px; }
.promotion-code-selector { min-width:0; margin:0 0 22px; padding:0; border:0; }
.promotion-code-selector legend { margin-bottom:9px; color:var(--ink); font-size:14px; font-weight:800; }
.promotion-code-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.promotion-code-option { position:relative; min-width:0; cursor:pointer; }
.promotion-code-option>input { position:absolute; inset:0; z-index:2; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.promotion-code-option-body { min-height:82px; display:grid; grid-template-columns:48px minmax(0,1fr) auto; align-items:center; gap:13px; padding:14px 15px; background:#fff; border:1px solid var(--line); border-radius:13px; box-shadow:0 5px 17px rgba(24,49,31,.035); transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.promotion-code-option:hover .promotion-code-option-body { border-color:#b8d8c2; box-shadow:0 8px 22px rgba(24,49,31,.07); }
.promotion-code-option.active .promotion-code-option-body { background:#f3fbf5; border-color:var(--brand); box-shadow:0 0 0 3px rgba(23,140,69,.1); }
.promotion-code-option>input:focus-visible+.promotion-code-option-body { outline:3px solid rgba(23,140,69,.28); outline-offset:2px; }
.promotion-code-option-body>i { width:48px; height:48px; display:grid; place-items:center; color:var(--brand-strong); background:var(--brand-soft); border-radius:12px; font-style:normal; }
.promotion-code-option-body svg { width:28px; height:28px; display:block; fill:currentColor; }
.promotion-code-option-body>span { min-width:0; display:grid; gap:3px; }
.promotion-code-option-body strong { color:var(--ink); font-size:15px; }
.promotion-code-option-body small { color:var(--muted); font-size:12px; line-height:1.45; }
.promotion-code-option-body>b { min-width:52px; min-height:28px; display:grid; place-items:center; padding:0 8px; color:var(--muted); background:#f1f4f2; border-radius:99px; font-size:11px; font-weight:800; }
.promotion-code-option.active .promotion-code-option-body>b { color:#fff; background:var(--brand); }
.wallet-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.withdraw-form { max-width:520px; margin:0 auto; }
.withdraw-form>.button { width:100%; min-height:48px; }
.withdraw-form>.button:disabled { opacity:.58; cursor:wait; }
.payment-method-selector { margin:0 0 16px; padding:0; border:0; }
.payment-method-selector legend { margin-bottom:8px; color:var(--ink); font-size:13px; font-weight:700; }
.payment-method-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.payment-method-option { position:relative; min-width:0; cursor:pointer; }
.payment-method-option>input { position:absolute; inset:0; z-index:2; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.payment-method-option-body { min-height:72px; display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:11px; padding:11px 12px; background:#fff; border:1px solid #dbe5de; border-radius:13px; transition:border-color .18s ease,background .18s ease,box-shadow .18s ease; }
.payment-method-option-body>b { width:42px; height:42px; display:grid; place-items:center; color:var(--brand-strong); background:var(--brand-soft); border-radius:12px; font-size:17px; }
.payment-method-option-body>span { min-width:0; display:grid; gap:2px; }
.payment-method-option-body strong { color:var(--ink); font-size:14px; }
.payment-method-option-body small { color:var(--muted); font-size:11px; }
.payment-method-option.active .payment-method-option-body { background:#f3fbf5; border-color:var(--brand); box-shadow:0 0 0 3px rgba(23,140,69,.1); }
.payment-method-option>input:focus-visible+.payment-method-option-body { outline:3px solid rgba(23,140,69,.28); outline-offset:2px; }
.payment-qr-panel { margin-bottom:16px; padding:16px; background:#f6f9f7; border:1px solid #e0e8e2; border-radius:15px; }
.payment-qr-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.payment-qr-heading strong,.payment-qr-heading small { display:block; }
.payment-qr-heading strong { color:var(--ink); font-size:14px; }
.payment-qr-heading small { margin-top:2px; color:var(--brand-strong); font-size:12px; }
.payment-qr-preview { min-height:190px; display:grid; grid-template-columns:180px minmax(0,1fr); align-items:center; gap:16px; margin-bottom:14px; padding:12px; background:#fff; border:1px solid #e1e9e3; border-radius:13px; }
.payment-qr-preview>img { width:180px; height:180px; display:block; object-fit:contain; background:#fff; border-radius:10px; }
.payment-qr-preview>div:not(.payment-qr-empty) { display:grid; gap:5px; }
.payment-qr-preview strong { color:var(--ink); }
.payment-qr-preview small { color:var(--muted); line-height:1.6; }
.payment-qr-empty { grid-column:1/-1; min-height:164px; display:grid; place-items:center; align-content:center; gap:5px; padding:20px; color:var(--muted); text-align:center; border:1px dashed #c9d7cd; border-radius:11px; }
.payment-qr-file { margin-bottom:0; }
.payment-qr-file input { height:auto; min-height:48px; padding:6px; background:#fff; }
.payment-qr-file input::file-selector-button { min-height:36px; margin-right:10px; padding:0 13px; color:var(--brand-strong); background:var(--brand-soft); border:0; border-radius:8px; font-weight:700; cursor:pointer; }
.modal-layer { position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:22px; background:rgba(15,29,20,.52); }
.modal { width:min(620px,100%); max-height:90vh; overflow-y:auto; background:#fff; border-radius:16px; box-shadow:0 24px 80px rgba(0,0,0,.24); }
.modal-head { min-height:62px; display:flex; align-items:center; justify-content:space-between; padding:0 22px; border-bottom:1px solid var(--line); }
.modal-head h2 { margin:0; color:var(--ink); font-size:18px; }
.modal-close { width:38px; height:38px; color:var(--muted); background:#f3f6f4; border:0; border-radius:9px; font-size:22px; }
.modal-body { padding:22px; }
.p-poster-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:22px; }
.p-poster-card { min-width:0; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:17px; box-shadow:0 9px 28px rgba(24,49,31,.055); transition:transform .2s ease,box-shadow .2s ease; }
.p-poster-card:hover { transform:translateY(-3px); box-shadow:0 16px 36px rgba(24,49,31,.1); }
.p-poster-cover { position:relative; width:100%; display:block; overflow:hidden; padding:0; aspect-ratio:3/4; background:#edf3ef; border:0; cursor:pointer; }
.p-poster-cover:focus-visible { outline:3px solid rgba(23,140,69,.4); outline-offset:-3px; }
.p-poster-cover>img:first-child { width:100%; height:100%; display:block; object-fit:contain; transition:transform .25s ease; }
.p-poster-cover:hover>img:first-child { transform:scale(1.015); }
.p-poster-code { position:absolute; aspect-ratio:1; display:block; padding:3px; object-fit:contain; background:#fff; border:1px solid rgba(18,49,29,.16); border-radius:7px; box-shadow:0 4px 13px rgba(13,87,43,.16); }
.p-poster-info { display:grid; gap:15px; padding:18px; }
.poster-template-tags { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:8px; }
.poster-template-tags span,.poster-template-tags b { padding:4px 8px; border-radius:99px; font-size:10px; font-weight:800; line-height:1.2; }
.poster-template-tags span { color:var(--brand-strong); background:var(--brand-soft); }
.poster-template-tags b { color:#8b5a08; background:#fff3d8; }
.poster-filter-bar { display:flex; flex-wrap:wrap; gap:8px; margin:-2px 0 18px; }
.poster-filter-chip { min-height:36px; padding:0 14px; color:#52665a; background:#fff; border:1px solid var(--line); border-radius:99px; font:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.poster-filter-chip:hover { color:var(--brand-strong); border-color:#b8d8c2; }
.poster-filter-chip.active { color:#fff; background:var(--brand); border-color:var(--brand); box-shadow:0 5px 14px rgba(23,140,69,.18); }
.p-poster-card[hidden] { display:none; }
.p-poster-info h2 { margin:0; color:var(--ink); font-size:18px; }
.p-poster-info p { min-height:42px; margin:5px 0 0; color:var(--muted); font-size:13px; line-height:1.6; }
.p-poster-info .button { width:100%; min-height:44px; }
.p-poster-info .button:disabled { opacity:.58; cursor:wait; }
.p-poster-empty { min-height:300px; display:grid; align-content:center; line-height:1.8; }
.poster-result-modal { width:min(760px,100%); }
.poster-canvas-mount { display:grid; place-items:center; padding:12px; background:#edf3ef; border-radius:13px; }
.poster-canvas-mount canvas { width:auto; max-width:100%; max-height:62vh; display:block; border-radius:6px; box-shadow:0 12px 36px rgba(15,48,27,.18); }
.poster-result-actions { display:flex; justify-content:center; gap:10px; margin-top:18px; }
.poster-result-note { margin:12px 0 0; color:var(--muted); text-align:center; font-size:13px; line-height:1.6; }
.ai-poster-studio { position:relative; overflow:hidden; margin-bottom:28px; padding:28px; color:#fff; background:radial-gradient(circle at 88% 8%,rgba(255,210,123,.34),transparent 28%),linear-gradient(135deg,#132c1d 0%,#1c5d36 58%,#178c45 100%); border-radius:22px; box-shadow:0 18px 42px rgba(17,73,38,.18); }
.ai-poster-studio::after { content:""; position:absolute; right:-90px; bottom:-130px; width:280px; height:280px; border:1px solid rgba(255,255,255,.14); border-radius:50%; box-shadow:0 0 0 36px rgba(255,255,255,.035),0 0 0 74px rgba(255,255,255,.025); pointer-events:none; }
.ai-poster-studio-head { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) 104px; gap:25px; align-items:start; }
.ai-poster-studio h2 { max-width:700px; margin:0 0 7px; color:#fff; font-size:27px; line-height:1.28; }
.ai-poster-studio-head p { max-width:720px; margin:0; color:rgba(255,255,255,.74); font-size:14px; line-height:1.7; }
.ai-poster-quota { min-height:96px; display:grid; place-items:center; align-content:center; padding:12px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:18px; text-align:center; backdrop-filter:blur(12px); }
.ai-poster-quota strong { margin-top:5px; color:#fff; font-size:24px; line-height:1; white-space:nowrap; }
.ai-poster-quota span { color:#fff; font-size:12px; font-weight:800; white-space:nowrap; }
.ai-poster-quota small { margin-top:3px; color:rgba(255,255,255,.6); font-size:10px; }
.ai-poster-studio .callout { position:relative; z-index:1; margin:18px 0 0; color:#6b4702; background:#fff4d8; border-color:#f3d797; }
.ai-poster-form { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) 210px; gap:14px; margin-top:22px; }
.ai-poster-prompt { position:relative; }
.ai-poster-prompt label,.ai-poster-options label { display:block; margin-bottom:7px; color:rgba(255,255,255,.82); font-size:12px; font-weight:800; }
.ai-poster-examples { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:0 0 10px; }
.ai-poster-examples>span { width:100%; color:rgba(255,255,255,.72); font-size:11px; }
.ai-poster-examples button { min-height:32px; padding:0 11px; color:#174c2d; background:#e9f8ee; border:1px solid rgba(255,255,255,.5); border-radius:8px; font-size:12px; font-weight:800; cursor:pointer; }
.ai-poster-examples button:hover { color:#fff; background:#2b9e58; }
.ai-poster-examples button:focus-visible { outline:3px solid rgba(255,216,142,.5); outline-offset:2px; }
.ai-poster-examples button:disabled { opacity:.48; cursor:not-allowed; }
.ai-poster-prompt textarea { width:100%; min-height:112px; resize:vertical; padding:15px 16px; color:#1a2b20; background:rgba(255,255,255,.98); border:1px solid rgba(255,255,255,.55); border-radius:15px; font:inherit; line-height:1.6; box-shadow:0 9px 24px rgba(6,35,17,.14); }
.ai-poster-prompt textarea:focus { outline:3px solid rgba(255,216,142,.34); border-color:#ffd88e; }
.ai-poster-prompt>small { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:7px; color:rgba(255,255,255,.68); font-size:11px; }
.ai-poster-prompt>small em { font-style:normal; }
.ai-poster-prompt>small b { color:#fff; font-weight:800; }
.ai-poster-options { display:flex; flex-direction:column; }
.ai-poster-options select { width:100%; min-height:48px; padding:0 12px; color:#1a2b20; background:#fff; border:0; border-radius:12px; font:inherit; }
.ai-poster-options>small { display:block; margin:8px 2px 12px; color:rgba(255,255,255,.72); font-size:11px; line-height:1.55; }
.ai-poster-generate { width:100%; min-height:53px; margin-top:auto; color:#5c3b00!important; background:linear-gradient(135deg,#ffe1a5,#ffc85b)!important; border:0!important; box-shadow:0 10px 24px rgba(0,0,0,.18); }
.ai-poster-generate:disabled { color:rgba(255,255,255,.65)!important; background:rgba(255,255,255,.16)!important; box-shadow:none; }
.poster-library-section { margin-top:30px; }
.poster-section-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; margin:0 2px 16px; }
.poster-section-heading span { color:var(--brand); font-size:10px; font-weight:900; letter-spacing:.16em; }
.poster-section-heading h2 { margin:3px 0 0; color:var(--ink); font-size:23px; }
.poster-section-heading>small { color:var(--muted); font-size:12px; }
.ai-poster-card .p-poster-cover { background:#e9f1eb; }
.ai-poster-ready-badge { position:absolute; right:10px; bottom:10px; padding:7px 10px; color:#fff; background:rgba(17,50,28,.82); border:1px solid rgba(255,255,255,.26); border-radius:99px; font-size:11px; font-weight:800; backdrop-filter:blur(8px); }
.ai-poster-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; }
.ai-poster-meta span { padding:4px 7px; color:var(--brand-strong); background:var(--brand-soft); border-radius:6px; font-size:10px; font-weight:800; }
.ai-poster-meta time { color:var(--muted); font-size:10px; }
.ai-poster-card .p-poster-info p { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.ai-poster-delete { width:100%; min-height:42px; display:flex; align-items:center; justify-content:center; gap:7px; padding:9px 14px; color:#93423b; background:#fffafa; border:0; border-top:1px solid #f0dfdc; font:inherit; font-size:12px; font-weight:800; cursor:pointer; transition:color .16s ease,background .16s ease; }
.ai-poster-delete:hover { color:#7c2f29; background:#fff3f1; }
.ai-poster-delete:focus-visible { outline:3px solid rgba(201,59,50,.22); outline-offset:-3px; }
.ai-poster-delete svg { width:16px; height:16px; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.ai-poster-delete-modal { width:min(480px,100%); }
.ai-poster-delete-modal .modal-body { text-align:center; }
.ai-poster-delete-symbol { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 15px; color:var(--danger); background:#fff2f0; border-radius:17px; }
.ai-poster-delete-symbol svg { width:28px; height:28px; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.ai-poster-delete-copy { margin:0 auto 16px; max-width:360px; color:var(--muted); font-size:14px; line-height:1.7; }
.ai-poster-delete-summary { display:grid; gap:6px; margin-bottom:19px; padding:13px 14px; color:var(--ink); background:#f6f8f6; border-radius:11px; text-align:left; }
.ai-poster-delete-summary span { color:var(--muted); font-size:11px; }
.ai-poster-delete-summary strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.ai-poster-delete-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ai-poster-delete-actions .button { min-height:46px; }
.ai-poster-delete-actions .button:disabled { opacity:.58; cursor:wait; }
.ai-poster-library-note { margin:-5px 2px 16px; color:var(--muted); font-size:13px; line-height:1.6; }
.ai-poster-waiting { width:100%; display:grid; place-items:center; align-content:center; gap:13px; padding:30px; color:#31513c; background:radial-gradient(circle at 20% 14%,#fff 0,transparent 24%),linear-gradient(145deg,#edf7f0,#dbe9df); text-align:center; }
.ai-poster-waiting>strong { font-size:18px; }
.ai-poster-waiting>p { max-width:250px; margin:0; color:#9a443b; font-size:12px; line-height:1.6; }
.ai-poster-waiting>small { color:#68796d; font-size:11px; }
.ai-poster-waiting.failed { color:#6e342f; background:radial-gradient(circle at 20% 14%,#fff 0,transparent 24%),linear-gradient(145deg,#fff5f3,#f3dedb); }
.ai-poster-failed-mark { width:58px; height:58px; display:grid; place-items:center; color:#a33f36; background:#fff; border:1px solid rgba(163,63,54,.22); border-radius:17px; box-shadow:0 9px 22px rgba(94,36,31,.12); }
.ai-poster-failed-mark svg { width:28px; height:28px; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; }
.ai-poster-orbit { position:relative; width:76px; height:76px; display:grid; place-items:center; }
.ai-poster-orbit i { position:absolute; inset:0; border:2px solid rgba(23,140,69,.18); border-top-color:var(--brand); border-radius:50%; animation:ai-poster-spin 1.2s linear infinite; }
.ai-poster-orbit b { width:52px; height:52px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,#24a75b,#106f38); border-radius:16px; font-size:18px; box-shadow:0 9px 20px rgba(23,140,69,.22); }
.ai-poster-progress { width:min(220px,82%); height:7px; overflow:hidden; background:rgba(21,82,43,.11); border-radius:99px; }
.ai-poster-progress i { height:100%; display:block; background:linear-gradient(90deg,#1a914a,#65cf88); border-radius:inherit; }
@keyframes ai-poster-spin { to { transform:rotate(360deg); } }
.ai-poster-editor-modal { width:min(1020px,100%); }
.ai-poster-editor-body { display:grid; grid-template-columns:minmax(320px,1fr) 310px; gap:24px; align-items:start; }
.ai-poster-edit-stage { display:grid; place-items:center; min-width:0; padding:16px; background:#edf3ef; border-radius:16px; }
.ai-poster-edit-stage>p { margin:12px 0 0; color:var(--muted); font-size:12px; text-align:center; }
.ai-poster-frame { position:relative; width:auto; max-width:100%; height:min(62vh,680px); overflow:hidden; background:#dbe4de; border-radius:8px; box-shadow:0 14px 36px rgba(15,48,27,.18); }
.ai-poster-background { width:100%; height:100%; display:block; object-fit:contain; pointer-events:none; user-select:none; }
.ai-poster-qr { position:absolute; z-index:2; aspect-ratio:1; display:block; padding:5px; object-fit:contain; background:#fff; border:2px solid #20a158; border-radius:9px; box-shadow:0 7px 20px rgba(6,38,18,.24); cursor:grab; touch-action:none; user-select:none; }
.ai-poster-qr::selection { background:transparent; }
.ai-poster-qr.dragging { cursor:grabbing; box-shadow:0 0 0 5px rgba(35,165,88,.25),0 12px 28px rgba(6,38,18,.3); }
.ai-poster-controls { display:grid; gap:18px; padding:19px; background:#f5f8f6; border:1px solid #dfe8e1; border-radius:15px; }
.ai-poster-saved-note { display:grid; gap:4px; padding-bottom:15px; border-bottom:1px solid #dce6df; }
.ai-poster-saved-note strong { color:var(--brand-strong); font-size:14px; }
.ai-poster-saved-note span { color:var(--muted); font-size:12px; line-height:1.55; }
.ai-poster-control { display:grid; gap:8px; }
.ai-poster-control label { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--ink); font-size:13px; font-weight:800; }
.ai-poster-control output { color:var(--brand-strong); font-variant-numeric:tabular-nums; }
.ai-poster-control input { width:100%; accent-color:var(--brand); cursor:pointer; }
.ai-poster-editor-actions { display:grid; grid-template-columns:1fr; gap:9px; padding-top:3px; }
.ai-poster-editor-actions .button { width:100%; min-height:46px; }
.ai-poster-controls>small { color:var(--muted); font-size:11px; line-height:1.6; text-align:center; }
.team-rule { display:grid; grid-template-columns:44px minmax(0,1fr); gap:14px; align-items:start; padding:18px 20px; color:#6f4a05; background:#fff8e8; border:1px solid #f0dbac; border-radius:15px; }
.team-rule-mark { width:44px; height:44px; display:grid; place-items:center; color:#fff; background:#d89218; border-radius:13px; font-weight:900; }
.team-rule strong { color:#573a05; font-size:15px; }
.team-rule p { margin:4px 0 0; color:#806126; font-size:13px; line-height:1.65; }
.team-modal { width:min(680px,100%); }
.team-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 15px; }
.team-share-field { grid-column:1/-1; }
.team-share-control { position:relative; }
.team-share-control input { padding-right:48px; font-size:20px; font-weight:800; font-variant-numeric:tabular-nums; }
.team-share-control>span { position:absolute; top:0; right:16px; height:44px; display:grid; place-items:center; color:var(--brand-strong); font-weight:800; }
.team-example { grid-column:1/-1; margin-bottom:17px; padding:16px; color:var(--ink); background:#f1f8f3; border:1px solid #d5e8da; border-radius:13px; }
.team-example>span { display:block; margin-bottom:9px; color:var(--muted); font-size:12px; font-weight:700; }
.team-example>div { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:14px; }
.team-example b { color:var(--ink); }
.team-example strong { color:var(--brand-strong); }
.team-example i { color:#91a197; font-style:normal; }
.team-lock-confirm { display:grid; grid-template-columns:22px minmax(0,1fr); gap:10px; align-items:start; margin:0 0 14px; padding:15px; background:#fff8e8; border:1px solid #efd8a5; border-radius:13px; cursor:pointer; }
.team-lock-confirm input { width:20px; height:20px; margin:1px 0 0; accent-color:var(--brand); }
.team-lock-confirm span,.team-lock-confirm strong,.team-lock-confirm small { display:block; }
.team-lock-confirm strong { color:#634609; font-size:14px; }
.team-lock-confirm small { margin-top:3px; color:#8a6a2c; line-height:1.5; }
.team-submit { width:100%; min-height:48px; }
.team-submit:disabled { opacity:.58; cursor:wait; }
.team-created-modal { width:min(520px,100%); }
.team-created-modal .modal-body { text-align:center; }
.team-created-check { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 13px; color:#fff; background:var(--brand); border-radius:50%; font-size:30px; font-weight:900; }
.team-created-modal p { margin:0 0 17px; color:var(--muted); line-height:1.6; }
.team-created-modal dl { margin:0 0 18px; overflow:hidden; text-align:left; border:1px solid var(--line); border-radius:13px; }
.team-created-modal dl>div { min-height:50px; display:grid; grid-template-columns:120px minmax(0,1fr); align-items:center; gap:12px; padding:9px 14px; border-bottom:1px solid var(--line); }
.team-created-modal dl>div:last-child { border-bottom:0; }
.team-created-modal dt { color:var(--muted); font-size:13px; }
.team-created-modal dd { margin:0; color:var(--ink); font-weight:800; overflow-wrap:anywhere; }
.team-created-modal .button { width:100%; min-height:48px; }
@media (prefers-reduced-motion:reduce){.p-poster-card,.p-poster-cover>img{transition:none}.p-poster-card:hover{transform:none}.p-poster-cover:hover>img{transform:none}.ai-poster-orbit i{animation:none}}
@media(max-width:1000px){.p-metrics{grid-template-columns:repeat(2,1fr)}.wallet-grid{grid-template-columns:repeat(2,1fr)}.qr-layout{grid-template-columns:1fr}.p-header{flex-wrap:wrap;padding:14px 20px}.p-header nav{order:3;width:100%;height:48px}.p-nav{flex:1}.p-user{margin-left:auto}.p-content{padding:26px 16px 50px}}
@media(max-width:1050px){.p-poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.ai-poster-form,.ai-poster-editor-body{grid-template-columns:1fr}.ai-poster-options{display:grid;grid-template-columns:1fr}.ai-poster-generate{margin-top:10px}.ai-poster-frame{height:min(59vh,620px)}}
@media(max-width:840px){.jd-link-guide{grid-template-columns:36px minmax(0,1fr);gap:9px 11px}.jd-link-guide>i{display:none}.jd-link-workspace{grid-template-columns:1fr}.jd-link-card textarea{min-height:240px}}
@media(max-width:620px){.promotion-code-options,.p-poster-grid{grid-template-columns:1fr}.poster-result-actions{flex-direction:column}.poster-result-actions .button{width:100%}.ai-poster-studio{padding:20px 16px;border-radius:19px}.ai-poster-studio-head{grid-template-columns:1fr;gap:13px}.ai-poster-studio h2{font-size:22px}.ai-poster-quota{min-height:0;grid-template-columns:auto auto 1fr;justify-items:start;gap:8px;padding:10px 12px;text-align:left}.ai-poster-quota strong{margin:0;font-size:18px}.ai-poster-quota small{justify-self:end;margin:0}.poster-section-heading h2{font-size:21px}}
@media(max-width:560px){.promoter-login-card{padding:30px 20px}.p-metrics,.wallet-grid{grid-template-columns:1fr}.p-page-head{flex-direction:column}.p-header nav{overflow-x:auto}.p-nav{min-width:84px}}
@media(max-width:960px){
  body { overflow-x:hidden; background:linear-gradient(180deg,#edf7f0 0,#f7f8f7 260px); font-size:15px; }
  .promoter-login { min-height:100dvh; align-items:start; padding:calc(42px + env(safe-area-inset-top)) 18px 28px; background:radial-gradient(circle at 85% 4%,#d4f0dc 0,transparent 34%),linear-gradient(160deg,#eef8f1,#fff5ee); }
  .promoter-login-card { padding:30px 22px; border-radius:24px; box-shadow:0 18px 50px rgba(18,73,39,.13); }
  .promoter-login-card .brand-mark { width:58px; height:58px; margin-bottom:16px; border-radius:18px; font-size:24px; box-shadow:0 9px 24px rgba(23,140,69,.23); }
  .promoter-login-card h1 { font-size:27px; }
  .promoter-login-card>p:not(.eyebrow) { margin-bottom:24px; font-size:14px; }
  .p-field label { font-size:14px; }
  .p-field input,.p-field select { min-height:48px; font-size:16px; border-radius:12px; }
  .promoter-app { min-height:100dvh; padding-bottom:calc(74px + env(safe-area-inset-bottom)); }
  .p-header { min-height:calc(64px + env(safe-area-inset-top)); gap:10px; padding:env(safe-area-inset-top) 13px 0; background:rgba(20,39,28,.97); backdrop-filter:blur(14px); }
  .p-header nav { display:none; }
  .p-brand { gap:9px; margin-right:auto; }
  .p-brand .brand-mark { width:42px; height:42px; border-radius:13px; font-size:18px; }
  .p-brand strong { font-size:15px; line-height:1.25; }
  .p-brand small { font-size:10px; }
  .p-user { min-width:0; gap:8px; }
  .p-user>span { max-width:106px; overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
  .p-user>#logout,.p-user>#changePassword { display:none; }
  .p-mobile-menu-button { width:46px; height:46px; flex:0 0 46px; display:grid; place-items:center; color:#e8f4eb; background:rgba(255,255,255,.09); border:0; border-radius:13px; }
  .p-mobile-menu-button svg { width:23px; height:23px; stroke-width:2; stroke-linecap:round; }
  .p-content { padding:20px 14px 28px; }
  .p-page-head { flex-direction:column; gap:15px; margin-bottom:18px; padding:0 2px; }
  .p-page-head h1 { font-size:25px; line-height:1.25; }
  .p-page-head p { margin-top:7px; font-size:14px; line-height:1.65; }
  .p-page-head>.button { width:100%; min-height:48px; }
  .p-metrics,.wallet-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .p-metric { min-height:106px; padding:16px; border-radius:16px; box-shadow:0 8px 24px rgba(24,49,31,.055); }
  .p-metric strong { margin-top:8px; font-size:22px; }
  .p-panel { margin-top:15px; border-radius:17px; box-shadow:0 8px 24px rgba(24,49,31,.05); }
  .p-panel-head { min-height:56px; flex-wrap:wrap; padding:12px 15px; }
  .p-panel-head h2 { font-size:17px; }
  .p-panel-body { padding:16px; }
  .p-table { overflow:visible; padding:10px; background:#f3f7f4; }
  .p-table table,.p-table thead,.p-table tbody,.p-table tr,.p-table th,.p-table td { display:block; width:100%; }
  .p-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .p-table tbody { display:grid; gap:10px; }
  .p-table tbody tr { overflow:hidden; padding:4px 14px; background:#fff; border:1px solid #e1e9e3; border-radius:14px; box-shadow:0 5px 15px rgba(24,49,31,.045); }
  .p-table td { min-height:44px; display:grid; grid-template-columns:minmax(88px,.72fr) minmax(0,1.28fr); align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid #edf1ee; text-align:right; white-space:normal; overflow-wrap:anywhere; }
  .p-table td:last-child { border-bottom:0; }
  .p-table td::before { content:attr(data-label); color:#738078; font-size:12px; font-weight:700; text-align:left; }
  .qr-layout { gap:14px; }
  .qr-card,.qr-guide { padding:18px; border-radius:18px; box-shadow:0 8px 24px rgba(24,49,31,.05); }
  .qr-card img { width:min(250px,100%); }
  .qr-guide h2 { font-size:19px; }
  .promotion-code-selector { margin-bottom:17px; }
  .promotion-code-options,.p-poster-grid { grid-template-columns:1fr; gap:10px; }
  .promotion-code-option-body { min-height:78px; padding:12px; }
  .p-poster-grid { gap:16px; }
  .p-poster-card { border-radius:18px; }
  .p-poster-card:hover { transform:none; }
  .p-poster-info { padding:16px; }
  .p-poster-info p { min-height:0; }
  .p-poster-info .button { min-height:48px; }
  .modal-layer { align-items:end; padding:0; }
  .modal { width:100%; max-height:92dvh; border-radius:22px 22px 0 0; box-shadow:0 -18px 55px rgba(0,0,0,.22); }
  .modal-head { position:sticky; top:0; z-index:3; min-height:62px; padding:0 16px; background:#fff; }
  .modal-head h2 { max-width:calc(100% - 54px); font-size:18px; line-height:1.35; }
  .modal-close { width:44px; height:44px; }
  .modal-body { padding:18px 16px calc(24px + env(safe-area-inset-bottom)); }
  .poster-canvas-mount { padding:10px; }
  .poster-result-actions { flex-direction:column; }
  .poster-result-actions .button { width:100%; min-height:48px; }
  .payment-method-selector legend { font-size:14px; }
  .payment-method-option-body { min-height:76px; }
  .payment-qr-panel { padding:13px; }
  .payment-qr-preview { min-height:0; grid-template-columns:1fr; justify-items:center; gap:10px; text-align:center; }
  .payment-qr-preview>img { width:min(220px,100%); height:auto; aspect-ratio:1; }
  .payment-qr-empty { min-height:150px; }
  .p-mobile-nav { position:fixed; inset:auto 0 0; z-index:100; height:calc(66px + env(safe-area-inset-bottom)); display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); padding:5px 7px env(safe-area-inset-bottom); background:rgba(255,255,255,.97); border-top:1px solid var(--line); box-shadow:0 -8px 28px rgba(24,49,31,.09); backdrop-filter:blur(14px); }
  .p-mobile-nav-item { min-width:0; min-height:56px; display:grid; place-items:center; align-content:center; gap:2px; padding:3px 2px; color:#738078; background:transparent; border:0; border-radius:11px; font-size:11px; line-height:1.1; }
  .p-mobile-nav-item svg { width:22px; height:22px; stroke-width:1.9; }
  .p-mobile-nav-item.active { color:var(--brand-strong); background:var(--brand-soft); font-weight:800; }
  .p-mobile-menu-layer { position:fixed; inset:0; z-index:190; display:grid; align-items:end; background:rgba(8,25,14,.56); }
  .p-mobile-menu-sheet { padding:18px 16px calc(22px + env(safe-area-inset-bottom)); background:#fff; border-radius:24px 24px 0 0; box-shadow:0 -18px 55px rgba(0,0,0,.24); }
  .p-mobile-menu-head { min-height:54px; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
  .p-mobile-menu-head small { color:var(--brand); font-size:12px; font-weight:800; }
  .p-mobile-menu-head h2 { margin:1px 0 0; color:var(--ink); font-size:22px; }
  .p-mobile-menu-close { width:44px; height:44px; display:grid; place-items:center; color:var(--muted); background:#f1f5f2; border:0; border-radius:13px; font-size:24px; }
  .p-mobile-menu-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
  .p-mobile-menu-grid button { min-height:88px; display:grid; place-items:center; align-content:center; gap:7px; padding:9px 4px; color:var(--text); background:#f5f8f6; border:1px solid #e3ebe5; border-radius:15px; font-size:12px; }
  .p-mobile-menu-grid button svg { width:25px; height:25px; color:var(--brand-strong); stroke-width:1.8; }
  .p-mobile-menu-grid button.active { color:var(--brand-strong); background:var(--brand-soft); border-color:#bcdcc6; font-weight:800; }
  .team-rule { grid-template-columns:40px minmax(0,1fr); padding:15px; }
  .team-rule-mark { width:40px; height:40px; }
  .team-form-grid { grid-template-columns:1fr; }
  .team-share-field,.team-example { grid-column:auto; }
  .team-share-control>span { height:48px; }
  .team-example>div { align-items:flex-start; flex-direction:column; gap:4px; }
  .team-example i { display:none; }
  .team-created-modal dl>div { grid-template-columns:100px minmax(0,1fr); }
  .p-mobile-password,.p-mobile-logout { width:100%; min-height:48px; display:flex; align-items:center; justify-content:center; gap:8px; margin-top:10px; border-radius:13px; font-weight:700; }
  .p-mobile-password { color:var(--brand-strong); background:var(--brand-soft); border:1px solid #cfe5d6; }
  .p-mobile-logout { color:#a43b33; background:#fff4f2; border:1px solid #efd4d0; }
  .p-mobile-password svg,.p-mobile-logout svg { width:20px; height:20px; stroke-width:1.9; }
  .password-modal .callout { margin-bottom:18px; }
  .toast { right:14px; bottom:calc(80px + env(safe-area-inset-bottom)); left:14px; max-width:none; text-align:center; }
}
@media(max-width:380px){.p-content{padding-right:12px;padding-left:12px}.p-user>span{max-width:78px}.p-metric{padding:14px}.p-metric strong{font-size:20px}.p-table td{grid-template-columns:82px minmax(0,1fr)}.p-mobile-menu-grid{gap:7px}}
@media(max-width:960px) and (orientation:landscape){.p-metrics,.wallet-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.p-mobile-menu-sheet{max-height:94dvh;overflow-y:auto}.modal{max-height:94dvh}}
.order-product-title{display:-webkit-box;max-width:280px;margin-top:5px;overflow:hidden;color:#66756e;font-size:12px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}
