@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Nunito:wght@400;600;700;800;900&display=swap');
:root{--ink:#302644;--muted:#7e728e;--paper:#fffaf4;--card:#fff;--line:#eedfea;--pink:#ff6f9e;--violet:#8368f2;--yellow:#ffd45f;--mint:#68d6bd;--shadow:0 18px 45px rgba(109,71,123,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:Nunito,system-ui,sans-serif}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 8% 15%,#ffe4ee 0,transparent 20%),radial-gradient(circle at 88% 12%,#e9e2ff 0,transparent 24%),radial-gradient(circle at 76% 76%,#fff0bb 0,transparent 22%);opacity:.55;z-index:-2}.sparkles i{position:fixed;color:var(--pink);z-index:-1;font-style:normal}.sparkles i:after{content:'✦'}.sparkles i:nth-child(1){left:8%;top:34%;font-size:30px}.sparkles i:nth-child(2){right:8%;top:44%;font-size:20px;color:var(--violet)}.sparkles i:nth-child(3){left:46%;top:8%;font-size:18px;color:var(--yellow)}.sparkles i:nth-child(4){right:23%;top:82%;font-size:26px;color:var(--mint)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.hidden{display:none!important}.topbar{height:78px;display:flex;align-items:center;max-width:1200px;margin:auto;padding:0 26px;gap:44px;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:8px;flex-shrink:0}.brand:focus-visible{outline:3px solid var(--violet);outline-offset:6px;border-radius:8px}.brand-mark{display:block;width:48px;height:48px;flex:none;object-fit:contain}.brand b{display:block;font-size:24px;line-height:1.15;letter-spacing:2px;font-weight:900}.brand small{display:block;color:var(--muted);font:9px 'DM Mono',monospace;letter-spacing:1.25px;margin-top:4px}.topbar nav{display:flex;gap:28px;margin-right:auto;color:var(--muted);font-size:14px;font-weight:800}.topbar nav a:hover{color:var(--pink)}.account-area{display:flex;gap:8px;align-items:center}.outline-btn,.admin-btn,.user-chip{border:1px solid var(--line);border-radius:13px;background:#fff;padding:10px 15px;color:var(--ink);font-weight:800;cursor:pointer}.admin-btn{background:var(--ink);color:#fff}.user-chip{background:#fff0f5;border-color:#ffd1e1;color:#d64e7a}.hero{max-width:1200px;margin:0 auto;padding:80px 34px 85px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:50px}.eyebrow{font:11px 'DM Mono',monospace;letter-spacing:1.5px;color:var(--pink);font-weight:500}.hero h1{font-size:clamp(42px,5.7vw,72px);line-height:1.1;letter-spacing:-3px;margin:22px 0;color:var(--ink);font-weight:900}.hero h1 em{font-style:normal;color:var(--violet)}.hero-copy p{max-width:600px;color:var(--muted);font-size:17px;line-height:1.85;margin:0}.hero-actions{display:flex;align-items:center;gap:20px;margin-top:33px}.primary-btn{border:0;border-radius:14px;background:linear-gradient(110deg,var(--pink),#f88bb5);box-shadow:0 8px 0 #db587f;color:#fff;font-weight:900;padding:14px 20px;cursor:pointer;transition:.18s;display:inline-flex;gap:16px;align-items:center}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 10px 0 #db587f}.primary-btn b{font-size:18px}.hero-note{font-size:12px;color:var(--muted);font-family:'DM Mono'}.hero-art{height:370px;position:relative;display:grid;place-items:center}.halo{position:absolute;width:350px;height:310px;border-radius:48% 52% 44% 56%;background:linear-gradient(135deg,#ffe2ef,#e2dcff);transform:rotate(-12deg)}.mascot{position:relative;width:210px;height:260px;z-index:2;filter:drop-shadow(9px 12px 0 #e8cae2)}.face{position:absolute;top:38px;left:17px;width:176px;height:171px;border-radius:48% 52% 48% 50%;background:#fff5df;border:5px solid var(--ink)}.ear{position:absolute;top:0;width:75px;height:90px;background:var(--pink);border:5px solid var(--ink);border-radius:75% 16% 70% 20%;z-index:1}.e1{left:5px;transform:rotate(-17deg)}.e2{right:4px;transform:scaleX(-1) rotate(-17deg)}.eye{position:absolute;top:75px;width:12px;height:20px;border-radius:50%;background:var(--ink)}.eye:first-child{left:47px}.eye:nth-child(2){right:47px}.blush{position:absolute;top:112px;width:28px;height:12px;border-radius:50%;background:#ffafbb;opacity:.8}.b1{left:23px}.b2{right:23px}.mouth{position:absolute;top:113px;left:77px;font-size:27px}.scarf{position:absolute;bottom:15px;left:8px;width:195px;height:64px;border:5px solid var(--ink);border-radius:22px 22px 33px 33px;background:var(--violet);color:#fff;text-align:center;padding-top:13px;font-weight:900;font-size:22px}.floating-card{position:absolute;background:#fff;border:2px solid var(--ink);border-radius:12px;padding:9px 13px;box-shadow:4px 5px 0 var(--ink);font:11px 'DM Mono';font-weight:500;z-index:3}.card-a{left:3%;top:38px;transform:rotate(-9deg)}.card-b{right:3%;top:80px;transform:rotate(8deg);background:#fff3b9}.card-c{right:1%;bottom:40px;transform:rotate(-8deg);background:#dcf8ef}.create-section,.runs-section{max-width:1200px;margin:0 auto;padding:35px 34px 85px}.section-title{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:22px}.section-title h2{font-size:34px;margin:8px 0 0;letter-spacing:-1px}.section-title>p{color:var(--muted);font-size:13px;max-width:340px;line-height:1.7;text-align:right}.quota-pill{font:11px 'DM Mono';background:#fff0f5;color:#d64e7a;border:1px solid #ffd1e1;padding:9px 13px;border-radius:30px}.create-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:22px}.card,.side-note{border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.82);box-shadow:var(--shadow)}.composer{padding:27px}.dropzone{min-height:116px;border:2px dashed #e8c8dc;border-radius:18px;background:linear-gradient(120deg,#fff7fb,#fff);padding:25px;display:flex;align-items:center;gap:16px;cursor:pointer;transition:.18s}.dropzone:hover,.dropzone.dragover{border-color:var(--pink);background:#fff3f8}.dropzone strong{display:block;font-size:16px}.dropzone small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.upload-sticker{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:var(--yellow);border:2px solid var(--ink);font:13px 'DM Mono';font-weight:700;transform:rotate(-9deg)}.drop-arrow{font-size:26px;margin-left:auto;color:var(--pink)}.field-grid{display:grid;grid-template-columns:1.35fr .8fr;gap:14px}.composer label:not(.dropzone),.modal-card label{display:block;margin-top:18px}.composer label span,.modal-card label span{display:block;font-size:12px;font-weight:900;margin-bottom:7px}.composer label i{font-style:normal;color:#bdafbf;font:10px 'DM Mono';margin-left:6px}.composer input,.composer select,.composer textarea,.modal-card input{width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;color:var(--ink);padding:11px 13px;outline:none}.composer textarea{resize:vertical}.composer input:focus,.composer select:focus,.composer textarea:focus,.modal-card input:focus{border-color:var(--pink);box-shadow:0 0 0 3px #ffe5ef}.field-help{color:var(--muted);font-size:11px;display:block;margin-top:6px}.form-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px}.privacy-note{color:var(--muted);font-size:11px}.upload-feedback{border-radius:10px;padding:11px 13px;margin-top:14px;font-size:13px;background:#e7faf2;color:#18795b}.upload-feedback.error{background:#fff0f2;color:#be3f60}.side-note{padding:28px;position:relative;background:#fffaf0;border-color:#f1dbb5}.sticker{display:inline-block;background:var(--yellow);border:2px solid var(--ink);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:900;transform:rotate(-4deg);box-shadow:3px 3px 0 var(--ink)}.side-note h3{font-size:23px;line-height:1.25;margin:25px 0 12px}.side-note>p{color:var(--muted);font-size:13px;line-height:1.8}.steps{display:flex;gap:5px;margin:24px 0}.steps span{background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 7px;font-size:11px;flex:1;text-align:center}.steps b{display:block;color:var(--pink);font:10px 'DM Mono';margin-bottom:3px}.model-mini{border-top:1px dashed #e7d6bd;padding-top:17px}.model-mini small{color:var(--muted);font-size:11px}.model-card{margin-top:8px;padding:12px;border-radius:11px;background:#fff;border:1px solid var(--line)}.model-card strong{font-size:13px}.model-card span{display:block;color:var(--muted);font-size:11px;margin-top:4px;line-height:1.4}.runs-section{padding-top:10px}.task-list{display:grid;gap:18px}.empty-state{padding:55px;text-align:center;border:1px dashed #e8c8dc;border-radius:20px;color:var(--muted)}.empty-state span{display:block;color:var(--pink);font-size:30px}.empty-state strong{display:block;color:var(--ink);font-size:18px;margin:7px}.task-card{position:relative;display:grid;grid-template-columns:180px minmax(0,1fr);gap:26px;padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 10px 25px rgba(109,71,123,.08);align-items:center}.task-thumb{width:180px;height:122px;border-radius:12px;overflow:hidden;background:#f7e9f2;position:relative}.task-thumb img{width:100%;height:100%;object-fit:cover}.task-thumb:after{content:'会途预览';position:absolute;bottom:5px;right:7px;background:#ff6f9e;color:#fff;border-radius:5px;padding:2px 5px;font:9px 'DM Mono'}.task-title{min-width:0;font-size:19px;font-weight:900;line-height:1.45;overflow-wrap:anywhere}.task-meta{color:var(--muted);font-size:11px;margin-top:7px;line-height:1.5}.task-status{color:var(--violet);font:12px 'DM Mono';font-weight:700}.task-status.done{color:#159875}.task-status.error{color:#d65070}.task-activity{font-size:13px;margin:9px 0;color:var(--muted);line-height:1.5}.progress-track{height:9px;border-radius:8px;background:#f2e6ef;overflow:hidden}.progress-fill{height:100%;border-radius:8px;background:linear-gradient(90deg,var(--pink),var(--violet));transition:width .45s}.task-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;min-width:0}.small-btn{border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 10px;text-align:center;color:var(--ink);font-size:12px;font-weight:800;cursor:pointer}.small-btn:hover{border-color:var(--pink);color:var(--pink)}.small-btn.primary{background:#fff0f5;border-color:#ffd1e1;color:#cf4e7b}.about-section{max-width:1200px;margin:0 auto;padding:25px 34px 95px}footer{max-width:1200px;margin:auto;padding:25px 34px 40px;display:flex;justify-content:space-between;color:var(--muted);font:10px 'DM Mono';border-top:1px solid var(--line)}.toast{position:fixed;right:24px;bottom:25px;background:var(--ink);color:#fff;border-radius:12px;padding:13px 17px;box-shadow:var(--shadow);transform:translateY(20px);opacity:0;pointer-events:none;transition:.25s;z-index:20;font-size:13px}.toast.show{transform:translateY(0);opacity:1}.modal{position:fixed;inset:0;background:rgba(48,38,68,.32);backdrop-filter:blur(5px);z-index:10;display:grid;place-items:center;padding:20px}.modal-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:30px;width:min(420px,100%);box-shadow:0 22px 70px rgba(48,38,68,.24);position:relative}.modal-card h2{font-size:28px;margin:13px 0 5px}.modal-card p{color:var(--muted);font-size:13px}.modal-close{position:absolute;right:15px;top:12px;border:0;background:none;color:var(--muted);font-size:25px;cursor:pointer}.wide{width:100%;justify-content:center;margin-top:24px}.switch-auth{border:0;background:none;color:var(--pink);font-weight:800;cursor:pointer;display:block;margin:17px auto 0}.admin-card{width:min(920px,100%);max-height:88vh;overflow:auto}.admin-tabs{display:flex;gap:6px;margin:25px 0 16px;border-bottom:1px solid var(--line);padding-bottom:8px}.admin-tab{border:0;background:none;padding:9px 12px;border-radius:8px;cursor:pointer;font-weight:800;color:var(--muted)}.admin-tab.active{background:#ffe7ef;color:#ce4d78}.admin-row{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;align-items:center;gap:10px;margin:8px 0}.admin-row>div{margin-right:auto}.admin-row strong,.admin-row small{display:block}.admin-row small{color:var(--muted);font-size:11px;margin-top:4px}.admin-row input{width:110px;border:1px solid var(--line);padding:8px;border-radius:8px}.admin-note{padding:12px;border-radius:10px;background:#fff3d2;color:#806722;font-size:12px;line-height:1.6;margin-bottom:12px}.admin-task-card{border:1px solid var(--line);border-radius:12px;padding:14px;margin:9px 0}.admin-task-card h4{margin:0 0 7px}.admin-task-card p{font-size:12px;color:var(--muted);margin:6px 0}.admin-task-links{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.token-pill{font:10px 'DM Mono';color:var(--violet)}
@media(max-width:800px){.topbar{padding:0 16px;gap:12px}.topbar nav{display:none}.hero{grid-template-columns:1fr;padding:50px 20px 45px}.hero-art{height:290px;order:-1}.hero h1{font-size:44px}.hero-copy p{font-size:15px}.create-section,.runs-section,.about-section{padding-left:16px;padding-right:16px}.create-grid{grid-template-columns:1fr}.section-title{align-items:start;flex-direction:column;gap:12px}.section-title>p{text-align:left}.task-card{grid-template-columns:1fr}.task-thumb{width:100%;height:160px}.form-foot{align-items:flex-start;flex-direction:column}.field-grid{grid-template-columns:1fr}footer{padding-left:16px;padding-right:16px;display:block}footer span{display:block;margin:5px 0}.brand small{display:none}.account-area{margin-left:auto}.outline-btn{padding:8px 9px;font-size:12px}.admin-btn{font-size:11px;padding:8px}}
.hero-art{height:auto;min-height:370px;overflow:visible}.hero-illustration{position:relative;z-index:4;width:100%;max-width:620px;height:auto;display:block;border-radius:0;filter:none;mix-blend-mode:normal}.hero-art>.halo,.hero-art>.mascot,.hero-art>.floating-card{display:none}
@media(max-width:800px){.hero-art{min-height:0;height:auto}.hero-illustration{width:100%;max-width:560px;border-radius:0}}
.settings-btn{border:1px solid #dfd4ef;border-radius:13px;background:#f7f2ff;color:#66519d;padding:10px 13px;font-size:12px;font-weight:800;cursor:pointer}.settings-card{width:min(680px,100%)}.settings-card .field-grid{margin-top:0}.settings-card label{margin-top:14px}.settings-card textarea{resize:vertical}.settings-actions{display:flex;align-items:center;gap:10px;margin-top:22px}.settings-actions .primary-btn{margin-right:auto}
@media(max-width:800px){.settings-btn{padding:8px 9px;font-size:11px}.settings-card .field-grid{display:block}.settings-actions{align-items:stretch;flex-direction:column}.settings-actions .primary-btn{width:100%;justify-content:center}.settings-actions .small-btn{width:100%}}
.admin-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:20px 0 10px}.admin-section-title h3{margin:0;font-size:17px}.admin-section-title span{font:10px 'DM Mono';color:var(--muted)}.admin-resource-list{display:grid;gap:12px}.admin-resource-card{border:1px solid var(--line);border-radius:15px;padding:16px;background:#fff;margin:9px 0}.resource-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.resource-heading strong{display:block;font-size:15px}.resource-heading small{display:block;color:var(--muted);font:10px 'DM Mono';margin-top:5px;word-break:break-all}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font:10px 'DM Mono';white-space:nowrap;background:#f2edf4;color:var(--muted)}.status-badge.on{background:#e1f8ef;color:#167e60}.status-badge.off{background:#fff0f2;color:#bd3e60}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:13px}.admin-form-grid label{display:block;margin:0}.admin-form-grid label span,.default-quota label span{display:block;font-size:11px;font-weight:900;margin-bottom:6px}.admin-form-grid label i{font-style:normal;color:var(--muted);font:10px 'DM Mono';margin-left:5px}.admin-form-grid input,.admin-form-grid select,.default-quota input{width:100%;border:1px solid var(--line);background:#fff;border-radius:9px;color:var(--ink);padding:9px 10px;outline:none}.admin-form-grid input:focus,.admin-form-grid select:focus,.default-quota input:focus{border-color:var(--pink);box-shadow:0 0 0 3px #ffe5ef}.wide-field{grid-column:1/-1}.resource-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:13px}.resource-description{font-size:12px;color:var(--muted);line-height:1.6;margin:12px 0 0}.default-quota{display:flex;align-items:end;gap:12px}.default-quota label{flex:1}.role-chip{font:9px 'DM Mono';background:#f2edf4;color:var(--muted);border-radius:5px;padding:3px 5px;margin-left:4px}.task-admin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.task-admin-heading>div{flex:1;min-width:0;overflow-wrap:anywhere}
.task-admin-heading>.status-badge{flex-shrink:0}
.task-admin-heading h4{margin:0 0 5px;white-space:normal;overflow-wrap:anywhere}.owner-line{font-size:12px!important;color:var(--ink)!important;font-weight:800;margin:0!important}.task-admin-meta{display:flex;gap:7px 15px;flex-wrap:wrap;margin:12px 0;color:var(--muted);font:10px 'DM Mono'}.token-summary{border:1px solid #eee4ef;border-radius:10px;background:#fffafd;padding:11px;margin-top:10px}.token-summary>strong{font-size:12px}.token-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px;margin-top:9px}.token-grid span{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px}.token-grid b{font-weight:600}.token-grid em{font:11px 'DM Mono';font-style:normal;color:var(--violet);white-space:nowrap}.log-card{width:min(1050px,100%);max-height:92vh}.log-card h2{margin-bottom:4px}.log-card p{margin:0 0 14px}.log-viewer{height:min(62vh,620px);overflow:auto;margin:0;border:1px solid var(--line);border-radius:11px;background:#251d35;color:#f7eefa;padding:15px;font:11px/1.6 'DM Mono',monospace;white-space:pre-wrap;word-break:break-word}@media(max-width:650px){.admin-form-grid{grid-template-columns:1fr}.wide-field{grid-column:auto}.admin-tabs{overflow:auto}.admin-tab{white-space:nowrap}.default-quota{align-items:stretch;flex-direction:column}.token-grid{grid-template-columns:1fr}}
/* Poster composer: selectable intensity cards and a compact quota summary. */
.compose-layout{grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:24px}.compose-layout .composer{padding:30px;background:#fffdfd}.compose-step{display:flex;align-items:center;gap:12px;margin:26px 0 15px}.compose-step:first-child{margin-top:0}.step-number{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border-radius:9px;background:#fff0f5;color:#d9477b;font:700 11px 'DM Mono',monospace}.compose-step h3{margin:0;font-size:17px;letter-spacing:-.3px}.compose-step p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.compose-layout .dropzone{margin:0;min-height:112px;padding:22px;border:1.5px dashed #ecaec6;border-radius:15px;background:#fff7fa;gap:15px}.compose-layout .dropzone span{margin:0}.compose-layout .dropzone .pdf-file-icon{display:grid;place-items:center;flex-shrink:0;width:46px;height:56px;border-radius:7px 15px 7px 7px;background:#fff;border:1px solid #f0c7d7;box-shadow:3px 4px 0 #fbe1eb;font:700 12px 'DM Mono',monospace;color:#d9477b}.drop-copy{min-width:0;flex:1}.drop-copy strong{overflow-wrap:anywhere}.compose-layout .dropzone strong{font-size:14px}.compose-layout .dropzone small{font-size:11px;font-weight:400}.compose-layout .dropzone .upload-arrow{font-size:25px;color:#dc668d;font-weight:400}.strength-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.composer .strength-options .strength-choice{position:relative;display:flex;cursor:pointer;margin:0;min-width:0}.strength-choice>input{position:absolute;width:1px;height:1px;opacity:0;padding:0;pointer-events:none}.composer .strength-card{display:flex;flex:1;min-width:0;flex-direction:column;gap:11px;min-height:138px;padding:16px 13px;border:1.5px solid #eee4ee;border-radius:14px;background:#fff;transition:border-color .18s,box-shadow .18s,background .18s}.composer .strength-choice span{margin:0}.composer .strength-top{display:flex;align-items:center;justify-content:space-between;font-size:16px}.strength-top strong{font-size:17px}.composer .choice-check{display:grid;place-items:center;width:18px;height:18px;border:1px solid #dfd6e3;border-radius:50%;font-size:11px;color:transparent}.composer .strength-description{font-size:11px;font-weight:400;color:var(--muted);line-height:1.6;min-height:18px}.composer .strength-choice .strength-cost{margin-top:auto;font-size:11px;font-weight:500;color:#675773}.strength-cost b{font-size:23px;font-weight:800;color:var(--ink)}.strength-cost small{font-size:10px;color:#95849c;font-weight:400;white-space:nowrap}.strength-choice:hover .strength-card{border-color:#eab2c7}.strength-choice.is-selected .strength-card{border-color:#e978a0;background:#fff4f8;box-shadow:0 0 0 3px #fff0f6}.strength-choice.is-selected .choice-check{background:#df5c8b;color:white;border-color:#df5c8b}.strength-choice>input:focus-visible+.strength-card{outline:3px solid #8e74be;outline-offset:3px}.composer .skill-picker{margin:0}.skill-picker select{min-height:48px;font-size:14px;cursor:pointer;padding-right:35px!important;background:#fff!important}.skill-help{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.6}.compose-footer{display:flex;flex-direction:column;gap:7px;border-top:1px solid #f0e7ef;margin-top:24px;padding-top:16px}.saved-note{font-size:11px;color:#9988a1}.generation-summary{padding:27px 24px;border:1px solid #eadcec;border-radius:24px;background:linear-gradient(155deg,#fff6f9 0%,#fbf7ff 60%,#fffaf0 100%);box-shadow:0 12px 30px #65427009}.summary-eyebrow{font:10px 'DM Mono',monospace;letter-spacing:1.2px;color:#b9678a}.generation-summary h3{font-size:26px;line-height:1.4;letter-spacing:-.6px;margin:13px 0 23px}.summary-selection,.credit-balance{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.summary-selection+.summary-selection{margin-top:14px}.summary-selection strong{padding:5px 12px;background:#fff;border:1px solid #ebd5e4;border-radius:8px;font-size:12px;color:#9e4d73}.credit-total{margin-top:18px;padding:20px 0 18px;border-top:1px solid #e9dfeb;border-bottom:1px solid #e9dfeb}.credit-total>span{color:var(--muted);font-size:12px}.credit-total>div{display:flex;align-items:baseline;gap:9px;margin-top:5px}.credit-total strong{font-size:52px;line-height:1.1;letter-spacing:-3px;color:#382b48}.credit-total div>span{font-size:12px;color:#81718e}.credit-balance{margin-top:16px}.credit-balance strong{color:var(--ink);font-size:13px}.quota-hint{font-size:11px;line-height:1.6;color:#8a6a87;min-height:34px;margin:10px 0 15px}.quota-hint.insufficient{color:#bd3e60}.generate-button{width:100%;justify-content:space-between;border-radius:12px;padding:15px 16px;font-size:14px;box-shadow:0 5px 0 #d75282}.generate-button:disabled{cursor:not-allowed;opacity:.45;box-shadow:none;transform:none}.summary-login{display:block;width:100%;padding:12px 0 0;border:0;background:none;color:#b34e7c;font-size:11px;cursor:pointer}.credit-policy{font-size:10px;color:#98869b;line-height:1.7;margin:14px 0 0}.summary-divider{border-top:1px dashed #dfd1e4;margin:22px 0}.summary-tip{display:flex;gap:10px}.summary-tip>span{font-size:24px;color:#d6ac48}.summary-tip p{margin:0;font-size:11px;line-height:1.8;color:var(--muted)}.summary-tip strong{display:block;font-size:12px;color:var(--ink);margin-bottom:4px}.summary-steps{display:flex;justify-content:space-between;margin-top:17px;font-size:10px;color:#82718f}.summary-steps i{font-style:normal;color:#c6b5ce}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1000px){.compose-layout{grid-template-columns:minmax(0,1fr) 270px;gap:17px}.compose-layout .composer{padding:22px}.generation-summary{padding:24px 20px}.composer .strength-card{padding:13px 10px}.composer .strength-description{min-height:35px}}
@media(max-width:800px){.compose-layout{grid-template-columns:1fr}.generation-summary{padding:24px}.generation-summary h3 br{display:none}.generation-summary h3{font-size:23px;margin-bottom:18px}.credit-total{padding:15px 0}.credit-total strong{font-size:44px}.quota-hint{min-height:0}.summary-divider{margin:20px 0}.compose-step p{font-size:11px}.composer .strength-description{min-height:18px}}
@media(max-width:420px){.compose-layout .composer{padding:19px 15px}.strength-options{gap:7px}.composer .strength-card{padding:13px 9px;gap:10px}.strength-top strong{font-size:15px}.composer .strength-description{font-size:10px;min-height:32px}.strength-cost b{font-size:21px}.strength-cost small{display:none}.compose-layout .dropzone{padding:18px 12px;gap:12px}.compose-layout .dropzone strong{font-size:12px}.upload-arrow{display:none!important}.generation-summary{border-radius:20px}}

.generation-notice{margin:0 0 18px;line-height:1.7}.toast{max-width:min(440px,calc(100vw - 48px));line-height:1.6}

.quota-user-row{gap:18px;padding:16px}.quota-user-info{min-width:0;flex:1}.quota-user-info small{overflow-wrap:anywhere;line-height:1.7}.quota-available{display:block;font-size:13px;color:#8c4269;margin:9px 0 5px}.quota-available b{font-size:17px}.quota-editor{display:flex;align-items:flex-end;gap:10px;flex-shrink:0}.quota-editor label{margin:0}.quota-editor label span{font-size:11px;color:var(--muted);margin-bottom:6px}.quota-editor input{width:110px}.quota-editor button{white-space:nowrap;min-height:39px}.quota-unlimited{font-size:12px;color:var(--muted);white-space:nowrap}@media(max-width:650px){.quota-user-row{align-items:stretch;flex-direction:column}.quota-editor input{width:100%}.quota-editor label{flex:1}.quota-user-row>div{margin-right:0}}

/* Task ownership groups and live server overview. */
.small-btn.danger{color:#b93650;border-color:#edc6cd;background:#fff6f7}
.admin-task-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.admin-task-filters label{flex:1;font-size:12px;min-width:140px}.admin-task-filters input,.admin-task-filters select{display:block;width:100%;padding:10px;margin-top:6px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink)}
.task-user-group{border:1px solid var(--line);border-radius:14px;background:white;margin:12px 0;overflow:hidden}.task-user-group>summary{cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding:18px;background:#fff6fa;list-style:none}.task-user-group>summary strong,.task-user-group>summary small{display:block;overflow-wrap:anywhere}.task-user-group>summary small{margin-top:7px;color:var(--muted);font-size:12px}.group-toggle{font-size:11px;white-space:nowrap;color:var(--pink)}.task-user-content{padding:4px 14px 12px}.task-admin-meta{overflow-wrap:anywhere}
.server-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:18px 0}.server-heading h3{margin:0}.server-heading p{margin:7px 0 0}.server-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.server-metric{background:white;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:10px}.server-metric>span{color:var(--muted);font-size:12px}.server-metric>strong{font-size:30px;line-height:1.2;color:var(--ink)}.server-metric>small{color:var(--muted);font-size:11px;line-height:1.6}.server-detail{padding:12px 0;line-height:1.8}.server-detail b{color:var(--ink)}
@media(max-width:650px){.server-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.server-metric{padding:12px}.server-metric>strong{font-size:25px}.task-user-group>summary{padding:14px}.task-user-content{padding:4px 8px 8px}.admin-card{padding:22px 16px}}

/* Full poster preview: fit the whole image first, then allow native-size scrolling. */
.task-preview-trigger{padding:0;border:0;cursor:zoom-in;display:block;font:inherit;transition:box-shadow .18s}
.task-preview-trigger:hover{box-shadow:0 0 0 3px #ffc5da}
.task-preview-trigger:focus-visible,.poster-preview button:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.task-preview-trigger:after{content:'点击放大';pointer-events:none}
.task-thumb img{display:block}
.task-thumb-status{position:absolute;inset:10px 12px 24px;display:grid;place-items:center;text-align:center;font-size:12px;line-height:1.5;color:var(--muted);pointer-events:none}
.task-thumb:not(.is-loaded) img{opacity:0}
.task-thumb.is-loaded .task-thumb-status{display:none}
.task-thumb.is-error:after{content:'点击重试'}
/* Compact poster records: preview on the image, quiet secondary actions. */
.task-content{min-width:0;padding-right:24px}
.task-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.task-heading .task-status{display:inline-flex;flex-shrink:0;padding:4px 8px;border-radius:7px;background:#f4efff;font-size:10px;line-height:1.4}
.task-heading .task-status.done{background:#ecf8f2;color:#288164}
.task-heading .task-status.error{background:#fff0f3;color:#bc4562}
.task-card .task-meta{overflow-wrap:anywhere}
.task-card .task-thumb{width:100%;height:132px;background:#faf5f9}
.task-card .task-thumb img{object-fit:contain}
.task-thumb-placeholder{display:grid;place-items:center}.task-thumb-placeholder:after{display:none}
.task-card .task-preview-trigger:after{content:'点击预览';padding:3px 7px;font-family:inherit;font-size:10px}
.task-card .task-thumb.is-error:after{content:'点击重试'}
.task-footer{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px}
.task-card .task-actions .small-btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:40px;padding:9px 14px;font-size:12px;font-weight:800}
.task-edit>span{font-size:17px;line-height:1}
.task-card .task-actions .task-print{gap:7px;border-color:#dbcae8;background:#f7f0fc;color:#87649d}.task-print svg{flex:none}.task-card .task-actions .task-print:hover:not(:disabled){border-color:#b68acb;background:#f0e3f9}.task-card .task-actions .task-print:disabled{opacity:.5;cursor:not-allowed}
.task-downloads{display:flex;align-items:center;min-height:40px;max-width:100%;border:1px solid var(--line);border-radius:10px;background:#fff}
.task-download-label{display:inline-flex;align-items:center;gap:5px;padding-left:11px;padding-right:4px;font-size:11px;color:var(--muted)}
.task-download-label svg{width:15px;height:15px;flex-shrink:0}
.task-format{display:inline-flex;align-items:center;justify-content:center;min-height:38px;min-width:50px;border:0;padding:8px 10px;background:transparent;color:#69557f;cursor:pointer;font-size:11px;font-weight:800;white-space:nowrap}
.task-format+.task-format{border-left:1px solid #f1e7f0}
.task-format:last-child{border-radius:0 9px 9px 0}
.task-format:hover{color:#c64e7c;background:#fff3f8}
.task-format:disabled{color:var(--muted);background:#faf6fa;cursor:wait}
.task-feedback{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;margin-left:auto;padding:8px 2px;border:0;background:transparent;color:var(--muted);font-size:11px;cursor:pointer}
.task-feedback svg{width:17px;height:17px;flex-shrink:0}
.task-feedback:hover{color:#c64e7c}
.task-delete{position:absolute;z-index:1;right:8px;top:8px;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:#ad9fb4;cursor:pointer;transition:background .15s,color .15s}
.task-delete svg{width:17px;height:17px;pointer-events:none}
.task-delete:hover{color:#c64a68;background:#fff0f3}
.task-delete:focus-visible,.task-feedback:focus-visible,.task-actions a:focus-visible,.task-actions button:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
@media(max-width:800px){.task-card{grid-template-columns:160px minmax(0,1fr);gap:20px;padding:20px}.task-title{font-size:17px}.task-footer{gap:8px}.task-content{padding-right:16px}.task-actions{gap:8px}}
@media(max-width:600px){.task-card{grid-template-columns:minmax(0,1fr);gap:18px;padding:20px}.task-content{padding-right:0}.task-card .task-thumb{height:180px}.task-delete{background:#ffffffeb;right:6px;top:6px;width:40px;height:40px}.task-footer{margin-top:16px}.task-heading{gap:8px}.task-heading .task-status{font-size:10px}.task-card .task-actions .small-btn{gap:10px;padding:9px 12px}}
@media(max-width:380px){.task-card{padding:18px 16px}.task-card .task-thumb{height:150px}.task-card .task-actions .small-btn{padding:9px 10px;gap:7px;font-size:11px}.task-download-label{padding-left:8px;padding-right:0;gap:3px;font-size:10px}.task-format{min-width:42px;padding:8px;font-size:10px}.task-actions{gap:8px}.task-card .task-title{font-size:16px}}

.poster-preview{width:min(1160px,calc(100vw - 40px));height:min(92vh,1000px);height:min(92dvh,1000px);max-width:none;max-height:none;margin:auto;padding:0;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px #24182e55;overflow:hidden}
.poster-preview[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.poster-preview::backdrop{background:rgba(32,24,43,.72);backdrop-filter:blur(5px)}
.poster-preview-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;border-bottom:1px solid var(--line)}
.poster-preview-header>div:first-child{min-width:0}.poster-preview-header h2{font-size:17px;margin:6px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.poster-preview-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.poster-preview-actions .small-btn{white-space:nowrap}.poster-preview-actions .small-btn:disabled{opacity:.5;cursor:wait}
.poster-preview-close{width:36px;height:36px;border:0;border-radius:50%;background:#f2e9f2;color:var(--ink);font-size:26px;line-height:1;cursor:pointer}
.poster-preview-viewport{min-height:0;min-width:0;padding:16px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);place-items:center;overflow:auto;overscroll-behavior:contain;background:#eee9ef}
.poster-preview-viewport img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 3px 18px #30264422}
.poster-preview-viewport.is-zoomed{display:block}.poster-preview-viewport.is-zoomed img{max-width:none;max-height:none;margin:auto}
#posterPreviewStatus{color:var(--muted);text-align:center;padding:20px;font-size:14px;line-height:1.8}
.poster-preview-hint{margin:0;padding:10px 20px;font-size:12px;color:var(--muted);line-height:1.5;border-top:1px solid var(--line)}
@media(max-width:650px){.poster-preview{width:calc(100vw - 16px);height:94vh;height:94dvh;border-radius:14px}.poster-preview-header{padding:12px;gap:8px}.poster-preview-header h2{font-size:14px}.poster-preview-header .eyebrow{font-size:9px}.poster-preview-actions{gap:7px}.poster-preview-viewport{padding:8px}.poster-preview-hint{padding:8px 12px;font-size:11px}}

/* Consistent account controls and aligned form fields. */
.account-area>button{font-family:inherit;font-size:13px;font-weight:800;line-height:20px;height:40px;padding:9px 14px;border:1px solid var(--line);border-radius:13px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;cursor:pointer}
.account-area .user-chip{max-width:180px;display:block;overflow:hidden;text-overflow:ellipsis;border-color:#ffd1e1}
.account-area .logout-btn{background:#fff;color:var(--muted)}.account-area .logout-btn:hover{border-color:var(--pink);color:#bd3e60}
.account-area>button:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.modal-card input,.modal-card select,.modal-card textarea{font-family:inherit;font-size:14px;line-height:20px;box-sizing:border-box;width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;color:var(--ink);padding:11px 13px;outline:none}
.modal-card input:not([type="checkbox"]):not([type="radio"]),.modal-card select{min-height:44px}
.modal-card input:focus,.modal-card select:focus,.modal-card textarea:focus{border-color:var(--pink);box-shadow:0 0 0 3px #ffe5ef}
.settings-card{max-height:90vh;max-height:90dvh;overflow:auto}
.settings-card .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.settings-card textarea{display:block;min-height:108px;resize:vertical}
.admin-task-filters{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;align-items:end;gap:12px;margin:16px 0}
.admin-task-filters label{min-width:0;margin:0;display:block}
.admin-task-filters label>span{font-size:12px;line-height:18px;font-weight:800;display:block;margin:0 0 7px}
.admin-task-filters input,.admin-task-filters select{margin:0;height:44px;min-height:44px;padding:10px 12px;font-size:14px;line-height:22px;display:block}
.admin-task-filters>button{height:44px;margin:0;white-space:nowrap}
@media(max-width:800px){.topbar{height:auto;min-height:72px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px;row-gap:12px}.account-area{flex-wrap:wrap;max-width:100%}.account-area>button{font-size:12px;height:38px;padding:8px 10px}.account-area .user-chip{max-width:140px}}
@media(max-width:650px){.admin-task-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.admin-task-filters>button{grid-column:1/-1;justify-self:end}.settings-card .field-grid{display:grid;grid-template-columns:1fr;gap:0}}
@media(max-width:480px){.account-area{gap:6px;justify-content:flex-end}.account-area>button{padding-left:9px;padding-right:9px}.account-area .user-chip{max-width:100px}.settings-card{padding:22px 16px}}

/* Personal balance and per-user reasoning permissions. */
.profile-credits{border:1px solid #f5cee0;border-radius:14px;background:#fff4f8;padding:16px;margin:18px 0}
.profile-credit-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.profile-credit-summary>div>span{font-size:12px;color:var(--muted);display:block}.profile-credit-summary strong{display:block;font-size:27px;margin-top:7px;line-height:1.2;color:#cf4e7b}.recharge-coming{font-size:12px;color:var(--muted);background:#fff;border:1px dashed #e8c9d6;padding:8px 10px;border-radius:9px}.profile-credits #profileStrengthAccess{font-size:12px;margin:12px 0 0;line-height:1.5}
.strength-choice.is-locked{cursor:not-allowed}.strength-choice.is-locked .strength-card{opacity:.58;box-shadow:none;transform:none;border-color:var(--line)}.strength-access{display:block;font-size:11px;color:#a33b65;margin:8px 0 0}
.admin-account-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;margin:12px 0}.admin-account-card .quota-user-row{border:0;padding:0;margin:0}.admin-strength-editor{display:flex;align-items:end;gap:12px;border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.admin-strength-editor fieldset{flex:1;min-width:0;padding:0;margin:0;border:0}.admin-strength-editor legend{padding:0;font-size:12px;font-weight:800;margin-bottom:10px}.admin-strength-options{display:flex;gap:12px;flex-wrap:wrap}.admin-strength-options label{display:inline-flex;align-items:center;gap:7px;margin:0!important;cursor:pointer}.admin-strength-options input[type="checkbox"]{width:17px;height:17px;min-height:0;padding:0;margin:0;accent-color:#dd5988}.admin-strength-options label span{margin:0;font-size:12px;line-height:20px;font-weight:500}.admin-strength-editor>button{white-space:nowrap}.admin-strength-unlimited{margin:12px 0 0;font-size:12px;color:var(--muted)}
.registration-defaults-fields{grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:24px;align-items:start;margin-top:18px}.registration-defaults-fields fieldset{min-width:0;border:0;padding:0;margin:0}.registration-defaults-fields legend{font-size:11px;font-weight:900;padding:0;margin-bottom:12px}.registration-defaults .resource-heading small{font-family:inherit;font-size:12px;line-height:1.6;word-break:normal}.registration-defaults-hint{font-size:12px;color:var(--muted);line-height:1.6;margin:12px 0 0}.registration-defaults .resource-actions{margin-top:12px}.registration-defaults .upload-feedback{margin-bottom:0}.registration-defaults input:disabled+span{color:var(--muted)}
@media(max-width:650px){.registration-defaults-fields{grid-template-columns:1fr;gap:16px}}
@media(max-width:650px){.admin-strength-editor{align-items:stretch;flex-direction:column}.admin-strength-editor>button{align-self:flex-end}.profile-credit-summary strong{font-size:24px}}

.admin-profile-editor{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.admin-profile-editor summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--violet)}.admin-profile-editor summary:focus-visible{outline:2px solid var(--pink);outline-offset:4px}.admin-profile-editor .admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-profile-editor label{min-width:0}.admin-profile-editor textarea{width:100%;resize:vertical}.admin-profile-hint{font-size:12px!important;line-height:1.7;color:var(--muted);margin:12px 0!important}@media(max-width:650px){.admin-profile-editor .admin-form-grid{grid-template-columns:minmax(0,1fr)}}

.activation-card{width:min(760px,100%);max-height:88vh;overflow:auto}.activation-balance{padding:12px 14px;border-radius:10px;background:#fff0f6;color:#ad4670;font-size:13px;font-weight:700;line-height:1.7}.activation-tip{font-size:12px!important;line-height:1.8;color:var(--muted)}#activationForm{display:flex;gap:10px;align-items:end;margin:18px 0}#activationForm label{flex:1;min-width:0;margin:0}#activationForm input{font-family:monospace;font-size:13px}#activationForm button{flex-shrink:0;min-height:42px}.activation-preview{background:#fff5f9;border:1px solid #f0cbdc;border-radius:12px;padding:16px;margin:14px 0}.activation-preview p,.activation-record p{font-size:12px;margin:8px 0;line-height:1.7}.activation-actions,.activation-filters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.activation-filters .active{background:#fce3ee;color:#bf4577;border-color:#eeb5cc}.activation-history-title{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.activation-history-title h3{font-size:16px}.activation-record{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px;margin:12px 0}.activation-record-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:9px}.activation-record-head strong{font-size:13px;overflow-wrap:anywhere}.activation-record small{display:block;font-size:11px;line-height:1.8;color:var(--muted);overflow-wrap:anywhere}.activation-record code{font-size:12px;overflow-wrap:anywhere;color:#655378}.activation-status{font-size:11px;white-space:nowrap;border-radius:6px;padding:4px 7px;background:#f2edf5;color:#80708e}.activation-status.used{background:#e6f8ef;color:#208468}.activation-status.bound{background:#fff3d6;color:#91681b}.activation-status.revoked,.activation-status.expired{background:#f9e9ef;color:#a15f77}.activation-receipt{background:#f7f4fa;padding:9px;border-radius:7px}.activation-empty{padding:24px 12px;text-align:center;color:var(--muted);font-size:13px}.activation-pager{display:flex;align-items:center;justify-content:center;gap:12px;font-size:12px;margin:18px 0}.code-strength-field{border:0;padding:0;margin:14px 0}.code-strength-field legend{font-size:12px;font-weight:800;margin-bottom:12px}.code-list-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 160px auto;gap:10px;margin-top:24px}.code-list-toolbar input,.code-list-toolbar select{margin:0!important;min-height:42px}.code-value-row{display:flex;align-items:center;gap:12px;justify-content:space-between}.code-batch-text{width:100%;font:12px/1.7 monospace;margin:12px 0}.modal-card .code-select{width:16px;height:16px;min-height:0;margin:0 8px 0 0;padding:0;vertical-align:middle;accent-color:#df5c8b}@media(max-width:600px){#activationForm{align-items:stretch;flex-direction:column}.code-list-toolbar{grid-template-columns:minmax(0,1fr) 120px}.code-list-toolbar>button{grid-column:1/-1}.activation-record-head{align-items:flex-start}.code-value-row{align-items:flex-start}.profile-credit-summary{flex-wrap:wrap;gap:12px}}

.summary-activate{display:block;width:100%;border:1px solid #edbfd1;border-radius:9px;background:#fff5f9;color:#b64c78;font:inherit;font-size:12px;font-weight:700;padding:11px 8px;margin-top:15px;cursor:pointer}.summary-activate:hover{background:#ffeaf2}.strength-choice.is-locked{cursor:pointer}.strength-choice.is-locked .strength-card{opacity:.78}.strength-choice.is-locked:hover .strength-card{border-color:#df7da1;background:#fff6f9}.strength-choice.is-locked:focus-visible{outline:3px solid #9b7bc4;outline-offset:4px;border-radius:14px}.strength-access{color:#b34070;text-decoration:underline;text-underline-offset:3px}.activation-context{border:1px solid #f0cbb0;background:#fff5e7;border-radius:12px;padding:14px;margin:14px 0}.activation-context strong{font-size:15px;color:#98651e}.activation-context p{font-size:13px!important;line-height:1.7;margin:8px 0!important}.activation-context small{font-size:11px;color:var(--muted);line-height:1.7;display:block}.activation-context.ready{border-color:#bde6d3;background:#edf9f2}.activation-context.ready strong{color:#247e60}#activationContinue{margin:12px 0 0;width:100%}.activation-pending{display:block;width:100%;text-align:left;padding:12px;border:1px dashed #d6c3e9;border-radius:9px;background:#f7f1ff;color:#795495;font-size:12px;line-height:1.6;cursor:pointer;margin-top:12px}.generate-button.needs-activation{opacity:1}

/* Product behavior: bounded text and wrapping counters on desktop/mobile. */
.task-behavior{margin:14px 0;padding:12px;border-radius:10px;background:#fff6fa;font-size:12px}
.behavior-counts{display:flex;flex-wrap:wrap;gap:8px 16px;margin:10px 0;color:var(--muted);font-size:12px}
.behavior-counts b{color:var(--ink);margin-left:4px}
.behavior-user,.behavior-event{min-width:0;overflow-wrap:anywhere}
.behavior-user .resource-heading>div{flex:1;min-width:0}
.behavior-user .resource-heading>button{flex-shrink:0}
.behavior-admin-toggle{display:flex;align-items:center;gap:8px;font-size:12px}
.behavior-admin-toggle input{width:auto;margin:0}
.behavior-event{border:1px solid var(--line);border-radius:12px;background:white;padding:14px;margin:10px 0}
.behavior-event>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}
.behavior-event time,.behavior-event small{font-size:11px;color:var(--muted)}
.behavior-event p{margin:6px 0;font-size:12px}
.auth-card .email-code-row{display:flex;gap:10px;align-items:center}.auth-card .email-code-row input{min-width:0;flex:1}.auth-card .email-code-row button{flex:0 0 120px;min-height:44px;padding:10px 8px;font-size:13px;white-space:nowrap}.auth-card .auth-code-help{font-size:12px;line-height:1.6;color:var(--muted);margin:8px 0 14px}.auth-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.auth-card button:disabled{opacity:.6;cursor:not-allowed}.auth-card #authFeedback{font-size:12px;line-height:1.7;margin:12px 0}.auth-card #emailCodeField>label{display:block;font-size:13px;font-weight:800;margin-bottom:8px}.auth-card .primary-btn{justify-content:space-between}
.auth-card{max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain}
.login-options{margin:14px 0 20px}
.login-options-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.auth-card .remember-login{display:inline-flex;align-items:center;gap:8px;min-height:36px;margin:0;font-size:12px;font-weight:700;color:#685772;cursor:pointer}
.auth-card .remember-login input{appearance:auto;flex:none;width:16px;height:16px;min-height:0;margin:0;padding:0;accent-color:#d66599;cursor:pointer}
.auth-card .remember-login input:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
.auth-card .remember-login small{padding:3px 7px;border-radius:7px;background:#f5effc;color:#8c73a8;font-size:10px;font-weight:500;white-space:nowrap}
.login-options .switch-auth{margin:0;padding:8px 0;font-size:12px;font-weight:600;color:#a96f94;min-height:36px}
.login-options .switch-auth:hover{color:#cf4e7b}
.login-options .switch-auth:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
.auth-card #rememberLoginHelp{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.6}
@media(max-width:380px){.auth-card .remember-login{gap:6px;font-size:11px}.auth-card .remember-login small{padding:3px 5px;font-size:9px}.login-options .switch-auth{font-size:11px}}

.auth-password-input{position:relative}.auth-card .auth-password-input.has-password-toggle input{padding-right:48px}.auth-password-input .password-toggle{position:absolute;right:3px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:40px;height:40px;min-height:0;padding:0;border:0;border-radius:8px;background:transparent;color:#928599;cursor:pointer;transition:color .15s}.auth-password-input .password-toggle:hover,.auth-password-input .password-toggle[aria-pressed="true"]{color:var(--ink)}.auth-password-input .password-toggle:focus-visible{outline:2px solid var(--violet);outline-offset:-3px}.password-toggle svg{display:block;width:20px;height:20px;pointer-events:none}.password-toggle .password-eye-open,.password-toggle[aria-pressed="true"] .password-eye-closed{display:none}.password-toggle[aria-pressed="true"] .password-eye-open{display:inline}

/* Keep account actions accessible when the wider order navigation wraps. */
@media(min-width:801px){.topbar{height:auto;min-height:78px;flex-wrap:wrap;gap:12px 24px;padding-top:12px;padding-bottom:12px}.topbar nav{flex-shrink:0}.account-area{margin-left:auto;flex-wrap:wrap;max-width:100%}}

/* Optional WeChat Mini Program entry, enabled only with real destination details. */
.account-area .mini-program-entry{gap:7px;color:#34775e;background:#f5fbf7;border-color:#d6e8dc}
.account-area .mini-program-entry:hover{background:#eaf6ee;border-color:#91c7a6}
.mini-program-entry svg{flex-shrink:0}
.mini-program-dialog{position:fixed;width:min(400px,calc(100vw - 32px));max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);margin:auto;padding:36px 28px 24px;border:1px solid var(--line);border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px #24182e44;text-align:center;overflow-y:auto;overscroll-behavior:contain}
.mini-program-dialog::backdrop{background:rgba(32,24,43,.5);backdrop-filter:blur(4px)}
.mini-program-dialog .eyebrow{font-size:10px;color:#478568}
.mini-program-dialog h2{font-size:26px;margin:14px 0 8px;overflow-wrap:anywhere}
.mini-program-dialog>p{font-size:13px;line-height:1.7;color:var(--muted)}
.mini-program-close{position:absolute;right:10px;top:10px;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:25px;cursor:pointer}
.mini-program-close:hover{background:#f0e9ef;color:var(--ink)}
.mini-program-code{display:grid;place-items:center;width:min(100%,264px);min-height:264px;margin:18px auto 12px;padding:12px;border:0;background:var(--paper);isolation:isolate}
.mini-program-code img{display:block;width:100%;max-width:240px;height:auto;aspect-ratio:1;object-fit:contain;mix-blend-mode:multiply}
.mini-program-code-status{font-size:13px;color:var(--muted);line-height:1.7;margin:12px}
.mini-program-launch{display:flex;align-items:center;justify-content:center;gap:16px;min-height:46px;margin:20px 0 12px;padding:12px 18px;border-radius:12px;background:#16834f;color:white;font-size:14px;font-weight:800;text-decoration:none}
.mini-program-launch:hover{background:#106d40}
.mini-program-dialog .mini-program-hint{margin:14px 0 0;font-size:12px}
.mini-program-dialog button:focus-visible,.mini-program-launch:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
@media(max-width:420px){.account-area .mini-program-entry{width:38px;padding:8px}.mini-program-entry>span{display:none}.mini-program-dialog{padding:34px 22px 22px}.mini-program-dialog h2{font-size:24px}}

/* Printing rewards appear when a user asks for access or needs more credits. */
.print-reward-nudge{margin:16px 0 0;padding:13px 14px;border:1px solid #dce8de;border-radius:12px;background:#f5f9f4}
.print-reward-nudge p{margin:0;color:#416d57;font-size:12px;line-height:1.8;font-weight:800}
.print-reward-nudge p>span{font-weight:400;color:#687c6e}
.print-reward-nudge button{padding:7px 0 0;border:0;background:none;color:#34775e;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.print-reward-nudge button span{margin-left:6px}
.print-reward-benefits{margin:18px 0 0}
.print-reward-perks{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e7e0d5;border-radius:14px;padding:14px 0;background:#f8f4eb}
.print-reward-perks>div{display:flex;flex-direction:column;gap:5px;padding:0 8px}
.print-reward-perks>div+div{border-left:1px solid #e7e0d5}
.print-reward-perks strong{color:#34775e;font-size:26px;line-height:1.25}
.print-reward-perks strong>span{font-size:12px;font-weight:700}
.print-reward-perks>div>span{font-size:11px;color:#7b766e}
.print-reward-benefits>p{margin:12px 0 0;font-size:12px;line-height:1.8;color:var(--muted)}
.mini-program-redeem{margin:16px auto 0;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:#805e76;font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.mini-program-redeem:hover{background:#f5edf1;color:var(--ink)}
.print-reward-nudge button:focus-visible{outline:2px solid var(--violet);outline-offset:4px}
.generation-summary .summary-activate{border-color:transparent;background:transparent;color:var(--muted);padding:8px;margin-top:9px;font-weight:600}
.generation-summary .summary-activate:hover{color:#805e76;text-decoration:underline;text-underline-offset:4px}

/* Put the creation workspace directly below the site navigation. */
.create-workspace{padding-top:24px;padding-bottom:56px;scroll-margin-top:20px}
.workspace-heading{align-items:center;margin-bottom:24px}
.workspace-heading h1{font-size:clamp(26px,3vw,36px);line-height:1.3;letter-spacing:-1px;margin:0;font-weight:900}
.workspace-heading h1 em{font-style:normal;color:var(--violet)}
.workspace-heading p{font-size:13px;line-height:1.6;color:var(--muted);margin:8px 0 0}
.workspace-heading .quota-pill{flex-shrink:0}
.create-workspace .composer{padding:24px}
.create-workspace .compose-step{margin:20px 0 12px}
.create-workspace .compose-step:first-child{margin-top:0}
.create-workspace .compose-step h3{font-size:16px}
.create-workspace .dropzone{min-height:96px;padding:18px 20px}
.create-workspace .compose-footer{margin-top:18px;padding-top:13px}
.create-workspace .generation-summary{padding:24px}
.create-workspace .generation-summary h3{font-size:20px;line-height:1.4;margin:0 0 22px;letter-spacing:0}
.workspace-generation-note{font-size:11px;line-height:1.7;color:var(--muted);border-top:1px solid var(--line);margin:18px 0 0;padding-top:14px}
/* Match both desktop card edges; keep actions and footnotes near the bottom. */
@media(min-width:801px){
 .create-workspace .compose-layout{align-items:stretch}
 .create-workspace .composer,.create-workspace .generation-summary{display:flex;flex-direction:column}
 .create-workspace #generateForm{display:flex;flex:1;flex-direction:column;min-width:0}
 .create-workspace .skill-help{margin-bottom:18px}
 .create-workspace .compose-footer{margin-top:auto;padding-top:14px;line-height:1.7}
 .create-workspace .generation-summary>*{flex-shrink:0}
 .create-workspace .generate-button{margin-top:auto}
}

@media(max-width:800px){.create-workspace{padding-top:20px;padding-bottom:40px}.workspace-heading{align-items:flex-start;gap:12px;margin-bottom:18px}.workspace-heading h1{font-size:28px}.workspace-heading p{font-size:12px}.create-workspace .composer,.create-workspace .generation-summary{padding:20px}.create-workspace .compose-layout{gap:16px}}
@media(max-width:420px){.workspace-heading h1{font-size:26px}.create-workspace .composer{padding:18px 15px}.create-workspace .dropzone{padding:16px 12px;gap:12px}.create-workspace .generation-summary{padding:20px}.create-workspace .compose-step{margin-top:18px}}

/* The acceptance puppy inherits the original Huitu palette. */
.create-workspace .summary-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:72px;margin:-12px 0 16px}
.summary-kicker{display:block;font:9px/1.4 'DM Mono',monospace;letter-spacing:1px;color:#b9678a}
.create-workspace .summary-heading h3{margin:6px 0 0;font-size:20px}
.accept-puppy{display:block;width:80px;height:80px;object-fit:contain;flex-shrink:0}
@media(max-width:800px){.create-workspace .summary-heading{margin-top:-10px}}

/* Private poster feedback and the administrator inbox. */
.poster-feedback-dialog{position:fixed;width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - 40px);margin:auto;padding:32px;border:1px solid var(--line);border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px #24182e44;overflow-y:auto;overscroll-behavior:contain}
.poster-feedback-dialog::backdrop{background:rgba(32,24,43,.5);backdrop-filter:blur(4px)}
.poster-feedback-dialog h2{margin:12px 0 6px;font-size:28px}
.feedback-poster-name{color:var(--muted);font-size:13px;line-height:1.7;overflow-wrap:anywhere;margin:0 0 24px}
#posterFeedbackForm label{display:block;font-size:13px;font-weight:800;margin-bottom:9px}
#posterFeedbackMessage{display:block;width:100%;min-height:145px;resize:vertical;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);font:inherit;font-size:14px;line-height:1.7}
#posterFeedbackMessage:focus{outline:2px solid #ffc9dc;outline-offset:1px;border-color:var(--pink)}
.feedback-input-meta{display:flex;justify-content:space-between;gap:14px;font-size:11px;color:var(--muted);margin:9px 0;line-height:1.7}
#posterFeedbackCounter{white-space:nowrap;flex-shrink:0}
.feedback-form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
.feedback-form-actions button{min-height:42px;padding:10px 20px}
.feedback-form-actions button:disabled{opacity:.65;cursor:wait}
.feedback-history{font-size:12px;color:var(--muted);margin-top:22px}
.feedback-history:empty{display:none}
.feedback-history summary{cursor:pointer;color:#805e76;padding:10px 0;border-top:1px solid var(--line)}
.feedback-history article{padding:14px 0;border-bottom:1px solid var(--line)}
.feedback-history article>div{display:flex;justify-content:space-between;gap:10px;align-items:center}
.feedback-history article p,.feedback-message{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;color:var(--ink)}
.feedback-status{display:inline-block;flex-shrink:0;font-size:11px;font-weight:700;line-height:1.5;padding:4px 9px;border-radius:8px;white-space:nowrap}
.feedback-status.pending{background:#fff0d8;color:#916224}.feedback-status.resolved{background:#e8f6ed;color:#34755a}
.feedback-count{display:inline-block;padding:1px 6px;margin-left:3px;border-radius:12px;background:#ffe0eb;color:#bd3e60;font-size:11px}
.admin-feedback-notice{display:block;width:100%;padding:13px 16px;border:1px solid #eed7bc;border-radius:12px;background:#fff6e8;color:#97621d;font:inherit;font-size:13px;text-align:left;cursor:pointer;margin:14px 0}
.feedback-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 20px}
.feedback-stats>div{padding:15px 18px;border:1px solid var(--line);border-radius:14px;background:white}
.feedback-stats span{display:block;font-size:12px;color:var(--muted)}.feedback-stats strong{display:block;font-size:28px;margin-top:6px}.feedback-stats .pending strong{color:#b66b32}
.feedback-filters{display:flex;gap:12px;align-items:end;margin:18px 0}.feedback-filters label{margin:0!important;min-width:0}.feedback-filters label:nth-child(2){flex:1}
.feedback-filters input,.feedback-filters select{display:block;width:100%;min-height:42px;padding:10px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);font:inherit;font-size:13px}.feedback-filters button{min-height:42px;flex-shrink:0}
.feedback-list{display:grid;gap:14px}.admin-feedback-card{display:grid;grid-template-columns:145px minmax(0,1fr);gap:20px;border:1px solid var(--line);border-radius:16px;padding:20px;background:white}
.feedback-poster-preview{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;min-height:130px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f7f1f7;color:#805e76;font:inherit;font-size:11px;cursor:zoom-in}
.feedback-poster-preview img{display:block;width:100%;height:120px;object-fit:contain}.feedback-poster-preview span{margin-top:auto}
.feedback-poster-unavailable{padding:25px 10px;text-align:center;color:var(--muted);font-size:12px;line-height:1.8;background:#f7f3f7;border-radius:12px}.feedback-poster-unavailable small{display:block}
.feedback-detail{min-width:0}.feedback-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.feedback-card-heading h4{margin:0;font-size:16px;overflow-wrap:anywhere}
.feedback-detail .feedback-user{margin:8px 0 4px;font-size:12px;overflow-wrap:anywhere}.feedback-detail .feedback-meta{margin:0;color:var(--muted);font-size:11px;line-height:1.7;overflow-wrap:anywhere}.feedback-detail .feedback-message{font-size:14px;margin:16px 0;padding:14px;background:#fffaf5;border-radius:10px}
.feedback-card-footer{display:flex;justify-content:space-between;align-items:center;gap:14px}.feedback-card-footer small{color:var(--muted);font-size:10px;line-height:1.7;overflow-wrap:anywhere}.feedback-card-footer button{flex-shrink:0}
.feedback-empty{padding:48px 20px;text-align:center;color:var(--muted);font-size:13px;border:1px dashed var(--line);border-radius:14px;background:#fff}
.poster-feedback-dialog button:focus-visible,.feedback-poster-preview:focus-visible,.admin-feedback-notice:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
@media(max-width:650px){.poster-feedback-dialog{padding:28px 20px}.poster-feedback-dialog .eyebrow{font-size:10px}.feedback-input-meta{font-size:10px;gap:8px}.feedback-stats{gap:8px}.feedback-stats>div{padding:12px}.feedback-stats strong{font-size:24px}.feedback-filters{flex-wrap:wrap}.feedback-filters label:first-child{flex:1}.feedback-filters label:nth-child(2){flex:2}.feedback-filters button{width:100%}.admin-feedback-card{grid-template-columns:minmax(0,1fr);gap:14px;padding:16px}.feedback-poster-preview{width:100%;flex-direction:row;min-height:0;justify-content:flex-start}.feedback-poster-preview img{width:72px;height:80px}.feedback-poster-preview span{margin:0}.feedback-card-footer{align-items:flex-start;flex-direction:column}.feedback-card-heading h4{font-size:14px}}
/* A pastel print studio with a shared price and a choice of order channels. */
.print-service{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 364px;align-items:center;gap:42px;padding:44px;border:1px solid #e8d8ef;border-radius:32px;background:radial-gradient(ellipse at 0 0,#ffe7f1,transparent 54%),radial-gradient(ellipse at 64% 100%,#e9dffc,transparent 63%),#fffbf6;color:var(--ink);box-shadow:0 8px 0 #ede2f0,0 22px 50px #95739910}
.print-service:before{content:'';position:absolute;inset:10px;z-index:-1;border:1px solid #ffffffb3;border-radius:24px;pointer-events:none}
.print-service-copy{position:relative;min-width:0}
.print-service .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:1.3px;font-weight:500;color:#ad6487}
.print-service .eyebrow>span{display:grid;place-items:center;width:26px;height:26px;border:1px solid #f1cce0;border-radius:9px;background:#fff7fc;font-size:18px;color:#d779a1;transform:rotate(-8deg)}
.print-service h2{position:relative;margin:18px 0 16px;font-size:clamp(36px,4vw,50px);line-height:1.24;letter-spacing:-1.4px;font-weight:900}
.print-service h2 em{position:relative;display:inline-block;font-style:normal;color:#8b66c5;z-index:0}
.print-service h2 em:after{content:'';position:absolute;left:0;right:8px;bottom:1px;height:10px;background:#e2d3f4;border-radius:60% 30% 50% 30%;transform:rotate(-1deg);z-index:-1}
.print-service-intro{margin:0;color:#7e6b89;font-size:13px;line-height:1.9}
.print-mobile-break{display:none}
.print-studio-scene{position:relative;margin:20px -16px 0}
.print-studio-scene img{display:block;width:100%;height:auto}
.print-scene-label{position:absolute;left:13px;top:17px;padding:8px 11px;border:1px solid #e2cee8;border-radius:9px;background:#fffcf8;box-shadow:2px 3px 0 #e7d9ef;font-size:10px;font-weight:800;letter-spacing:.6px;color:#94769f;transform:rotate(-7deg)}
.print-scene-label>span{margin-right:5px;color:#dbac52}
.print-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0 0;padding:0;list-style:none}
.print-features li{display:grid;grid-template-columns:32px 1fr;column-gap:6px;align-content:center;align-items:center;padding:12px 9px;border:1px solid #e7dbed;border-radius:14px;background:#fffdfbcc}
.print-feature-icon{grid-row:1/3;display:grid;place-items:center;width:32px;height:38px;transform:rotate(-6deg)}
.print-features li:nth-child(2) .print-feature-icon{transform:rotate(5deg)}
.print-feature-icon svg{width:32px;height:32px}
.print-features strong{font-size:11px;line-height:1.7;font-weight:800;color:#705d81;white-space:nowrap}
.print-features li>span:last-child{color:#8b7895;font-size:9px;line-height:1.7;white-space:nowrap}
.print-order-card{position:relative;min-width:0;border:2px solid #e5d5ed;border-radius:25px;padding:28px 25px 24px;background:#fffefd;color:var(--ink);box-shadow:7px 8px 0 #d9c9e64d,0 15px 25px #9a7daa0a}
.print-order-card:before{content:'';position:absolute;top:-12px;left:calc(50% - 40px);width:80px;height:24px;border:1px solid #e8cfe1aa;background:repeating-linear-gradient(90deg,#f8d9e9e6 0 5px,#fce8f2e6 5px 9px);transform:rotate(-6deg);border-radius:2px}
.print-order-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;font-weight:800;color:#6d587b}
.print-shipping-tag{flex-shrink:0;border:1px solid #cce5d8;background:#eef9f1;border-radius:9px;padding:5px 8px;color:#508269;font-size:10px;font-weight:700;transform:rotate(4deg)}
.print-product{position:relative;display:flex;align-items:center;gap:8px;padding:18px 0 21px}
.print-price{position:relative;z-index:1;min-width:0}
.print-price>div{display:flex;align-items:baseline;gap:3px;white-space:nowrap}
.print-currency{color:#d35f8a;font-size:22px;font-weight:800}
.print-price strong{color:#d35f8a;font-size:52px;font-weight:900;line-height:1.15;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}
.print-price.is-long strong{font-size:34px;letter-spacing:-.5px}
.print-price-unit{margin-left:8px;color:#927b9c;font-size:13px}
.print-price-caption{display:block;margin-top:8px;font-size:11px;color:#8a7493;line-height:1.7}
.print-invoice-note .print-quality-stamp{position:static;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:48px;height:48px;margin-left:auto;border:1px dashed #d3bb9b;border-radius:50%;background:#fff9ed;color:#a98454;transform:rotate(10deg);text-align:center;font-size:8px;line-height:1.4;letter-spacing:.5px}
.print-quality-stamp>span{font-size:15px;line-height:1.2}
.print-invoice-note{display:flex;align-items:center;gap:12px;margin:0 0 19px;padding:13px 14px;border:1px solid #cfe5d9;border-radius:14px;background:linear-gradient(115deg,#edf8f1,#f7fbef);color:#518168}
.print-invoice-note>svg{display:block;flex:none;width:34px;height:38px;transform:rotate(-5deg)}
.print-invoice-note>div{min-width:0}
.print-invoice-note span{display:block;color:#6b8978;font-size:10px;line-height:1.5}
.print-invoice-note strong{display:block;margin-top:3px;font-size:17px;line-height:1.5;font-weight:900;letter-spacing:.3px;color:#447358}
.print-order-actions{border-top:1px dashed #e3d4ec;padding-top:20px}
.print-order-button{width:100%;min-height:53px;justify-content:center;gap:10px;border-radius:14px;font-size:15px;box-shadow:0 5px 0 #d96796;background:linear-gradient(110deg,#f567a2,#f589b8)}
.print-order-button>svg{flex-shrink:0}
.print-order-button>span:last-child{margin-left:auto;font-size:19px}
.print-order-button:hover{box-shadow:0 7px 0 #d96796}
.print-order-button:focus-visible{outline:3px solid var(--violet);outline-offset:5px}
.print-web-soon{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:18px;color:#92829d;font-size:11px;line-height:1.8}
.print-web-soon>span:last-child{padding:2px 6px;border-radius:5px;background:#f0e9f7;color:#80638f;font-size:9px}
.print-order-gift{display:flex;align-items:center;justify-content:center;gap:8px;margin:20px 0 0;padding:12px 6px;border:1px solid #f2e6d4;border-radius:12px;background:#fffbf1;color:#85677a;font-size:10px;line-height:1.8}
.print-order-gift>span:first-child{color:#d3ad69;font-size:21px;line-height:1.3}
.print-order-gift strong{font-weight:800;color:#976b8e}
.print-order-gift small{display:block;font-size:10px;color:#846e7b}
@media(max-width:1100px){.print-service{gap:28px;padding:34px;grid-template-columns:minmax(0,1fr) 330px}.print-service h2{font-size:40px}.print-order-card{padding:26px 21px 22px}.print-features li{grid-template-columns:1fr;justify-items:center;padding:10px 4px}.print-feature-icon{grid-row:auto;width:34px;height:34px;margin-bottom:3px}.print-features strong{font-size:11px}.print-service-intro{font-size:12px}.print-mobile-break{display:block}.print-quality-stamp{width:58px;height:58px;top:26px;font-size:9px}}
@media(max-width:800px){.print-service{grid-template-columns:1fr;gap:30px;padding:34px}.print-service-copy{width:100%;max-width:580px;justify-self:center}.print-service h2{font-size:46px}.print-studio-scene{max-width:540px;margin:12px auto 0}.print-mobile-break{display:none}.print-service-intro{font-size:13px}.print-features li{grid-template-columns:35px 1fr;justify-items:start;column-gap:8px;padding:11px}.print-feature-icon{grid-row:1/3;margin:0}.print-order-card{width:100%;max-width:400px;justify-self:center;padding:28px;transform:none}.print-quality-stamp{width:66px;height:66px;right:5px;top:30px;font-size:10px}}
@media(max-width:480px){.print-service{border-radius:26px;padding:28px 18px;gap:28px}.print-service:before{inset:7px;border-radius:20px}.print-service .eyebrow{font-size:9px;letter-spacing:.5px;gap:7px}.print-service h2{font-size:36px;letter-spacing:-1px;margin:16px 0 12px}.print-service h2 em:after{height:8px}.print-service-intro{font-size:12px}.print-mobile-break{display:block}.print-studio-scene{margin:16px -8px 0}.print-scene-label{left:0;top:0;padding:5px 7px;font-size:8px;letter-spacing:0}.print-features{gap:6px;margin-top:14px}.print-features li{grid-template-columns:1fr;justify-items:center;padding:9px 3px;border-radius:12px}.print-feature-icon{grid-row:auto;width:30px;height:30px;margin-bottom:3px}.print-feature-icon svg{width:28px;height:28px}.print-features strong{font-size:11px}.print-features li>span:last-child{font-size:9px}.print-order-card{padding:26px 18px 20px;border-radius:20px;box-shadow:4px 5px 0 #d9c9e64d}.print-order-heading{font-size:13px;gap:5px}.print-shipping-tag{padding:4px 6px;font-size:9px}.print-product{padding:14px 0 20px}.print-price-unit{font-size:12px;margin-left:6px}.print-price-caption{font-size:10px}.print-quality-stamp{width:58px;height:58px;right:0;top:27px;font-size:9px}.print-invoice-note{gap:10px;padding:11px 12px}.print-invoice-note>svg{width:30px;height:34px}.print-invoice-note strong{font-size:16px}.print-order-button{min-height:50px;font-size:14px;padding:12px;gap:8px}.print-order-gift{gap:6px}.print-order-gift small{font-size:9px}}
@media(max-width:360px){.print-service{padding:24px 14px}.print-service h2{font-size:31px}.print-service .eyebrow{font-size:8px}.print-features{gap:5px}.print-features strong{font-size:10px}.print-features li>span:last-child{font-size:8px}.print-order-card{padding:25px 13px 18px}.print-order-heading{font-size:12px}.print-quality-stamp{width:49px;height:49px;font-size:8px;letter-spacing:.5px}.print-quality-stamp>span{font-size:11px}.print-invoice-note strong{font-size:15px}.print-order-button{font-size:12px}.print-order-gift{font-size:9px}}
@media(prefers-reduced-motion:reduce){.print-order-button{transition:none;transform:none}}


/* Account removal keeps poster history; file cleanup is an explicit admin action. */
.admin-account-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:12px;margin-top:14px;border-top:1px dashed var(--line);color:var(--muted);font-size:11px}
.admin-delete-user{flex-shrink:0;min-height:36px;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:#b95972;font-size:12px;font-weight:700;cursor:pointer}
.admin-delete-user:hover{background:#fff0f4;color:#b93650}
.admin-delete-user:disabled{opacity:.6;cursor:wait}
.admin-delete-user:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
.retained-task-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;margin:12px 0;border:1px solid #eddfcc;border-radius:10px;background:#fffbf3;color:#8d7255;font-size:11px;line-height:1.6}
.deleted-user-badge{display:inline-flex;padding:3px 7px;border-radius:6px;background:#f4e8d7;color:#926546;font-size:10px;font-weight:700;white-space:nowrap}
.admin-file-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#fcf8fd;margin:14px 0;color:var(--muted);font-size:11px}
.admin-file-toolbar>button{margin-left:auto}
.admin-card .task-file-select{display:inline-flex;align-items:center;gap:7px;min-height:32px;margin:0;font-size:11px;cursor:pointer}
.admin-card .task-file-select input{flex:none;width:16px;height:16px;min-height:0;margin:0;padding:0;accent-color:#d66599}
.admin-card .task-file-select span{margin:0;font-size:11px;line-height:1.5}
.retained-task-note .task-file-select{margin-left:auto}
.admin-card .task-file-select input:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
.admin-file-toolbar button:disabled{opacity:.55;cursor:not-allowed}
#adminFilesFeedback{font-size:12px;line-height:1.7;overflow-wrap:anywhere}
#adminTasks .admin-task-filters{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr)) auto}
@media(max-width:650px){.admin-account-footer{align-items:flex-start}.admin-file-toolbar{gap:8px}.admin-file-toolbar>button{margin-left:0}.retained-task-note{padding:10px;gap:7px}.retained-task-note .task-file-select{margin-left:0}#adminTasks .admin-task-filters{grid-template-columns:repeat(2,minmax(0,1fr))}#adminTasks .admin-task-filters label{min-width:0}#adminTasks .admin-task-filters label:first-child{grid-column:1/-1}}

/* Per-generation email choice; website downloads are always available. */
.generation-confirm-dialog{box-sizing:border-box;width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:30px;border:1px solid #e4e3f1;border-radius:24px;background:#fff;color:#292a40;box-shadow:0 24px 90px #25234230;overflow:auto}
.generation-confirm-dialog::backdrop{background:rgba(28,27,48,.38);backdrop-filter:blur(4px)}
.generation-confirm-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.generation-confirm-close{border:0;background:transparent;color:#858299;font-size:26px;width:40px;height:40px;cursor:pointer}
.generation-confirm-dialog h2{font-size:25px;line-height:1.4;margin:12px 0}.generation-confirm-dialog p{font-size:14px;line-height:1.8;margin:12px 0;color:#727087}
.generation-confirm-email{padding:16px 18px;background:#f5f4fb;border-radius:12px;margin-top:20px}.generation-confirm-email span{display:block;font-size:12px;color:#8b879e;margin-bottom:4px}.generation-confirm-email strong{font-size:16px;overflow-wrap:anywhere}
.generation-confirm-dialog .generation-download-hint{color:#5650a4;font-weight:600;margin:12px 0 22px}.generation-confirm-details{border-top:1px solid #eeedf4;border-bottom:1px solid #eeedf4;padding:10px 0;margin:0}.generation-confirm-details div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:6px 0;font-size:13px}.generation-confirm-details dt{color:#858098;flex-shrink:0}.generation-confirm-details dd{margin:0;text-align:right;overflow-wrap:anywhere;font-weight:600}
.generation-confirm-dialog .generation-confirm-notice,.generation-confirm-dialog .generation-confirm-disclosure{font-size:12px}.generation-confirm-dialog .generation-confirm-disclosure{color:#928da2;margin-bottom:22px}
.generation-confirm-actions{display:flex;gap:10px}.generation-confirm-actions .small-btn{flex:1;justify-content:center;min-height:46px;font-size:14px;white-space:normal;text-align:center;padding:10px}.generation-confirm-back{display:block;background:none;border:0;color:#858098;margin:12px auto 0;min-height:36px;cursor:pointer;font-size:13px}
.task-email{font-size:12px;line-height:1.7;color:#79758a;margin-top:12px;overflow-wrap:anywhere;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px}.task-email.is-warning{color:#946b3e}.task-email-retry{padding:3px 0;border:0;background:none;color:#6254b6;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit;min-height:28px}.task-email-retry:disabled{opacity:.5;cursor:wait}
@media(max-width:480px){.generation-confirm-dialog{padding:22px}.generation-confirm-dialog h2{font-size:22px}.generation-confirm-actions{flex-direction:column}.generation-confirm-details div{font-size:12px;gap:10px}}

/* Activation credit deadlines and per-user redemption history. */
.credit-expiry-note{margin:12px 0;padding:12px 14px;border:1px solid #e7daf1;border-radius:12px;background:#faf6ff;color:#746080;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.credit-expiry-note>strong,.credit-expiry-note>span,.credit-expiry-note>small{display:block}.credit-expiry-note>strong{color:#805daf;font-size:13px}.credit-expiry-note>b{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:7px;background:#ede3fa;color:#805daf;font-size:12px}.credit-expiry-note small{font-size:11px;color:#8b7a95}.credit-expiry-note.is-expired{background:#faf6f3;border-color:#e9dfd4;color:#927959}.credit-expiry-note.is-expired>strong{color:#927959}
.admin-user-codes{margin:12px 0;border:1px solid var(--line);border-radius:12px;background:#fff}.admin-user-codes>summary{cursor:pointer;padding:13px 15px;font-size:13px;font-weight:800;color:#75617f}.admin-user-codes>summary>span{font-weight:600;margin-left:8px;background:#f2eaf8;padding:2px 8px;border-radius:12px;color:#9875b1}.admin-user-codes>[data-user-code-content]{padding:0 15px 12px;font-size:12px}.admin-user-code{padding:13px 0;border-top:1px dashed var(--line);overflow-wrap:anywhere}.admin-user-code>div:first-child{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.admin-user-code>code{display:block;white-space:normal;overflow-wrap:anywhere;margin:7px 0;color:#9b6488;font-size:12px}.admin-user-code>small{color:var(--muted);line-height:1.7}.admin-user-code .credit-expiry-note{margin-bottom:0}.admin-user-codes>summary:focus-visible{outline:2px solid var(--violet);outline-offset:2px}

.credit-expiry-note .credit-validity-duration{display:inline-block;white-space:nowrap}
#createCodesForm label>small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.6}

/* Logged-in users' mini-program code openings. */
.admin-mini-program-stats{margin:12px 0;padding:12px 14px;border:1px solid #dfebe4;border-radius:12px;background:#f6fbf8;font-size:12px;color:#668273}.admin-mini-program-stats>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.admin-mini-program-stats strong{color:#46866b;font-size:21px}.admin-mini-program-stats strong small{font-size:11px;font-weight:500}.mini-program-last-open{margin-left:auto;font-size:11px;color:#819288}.admin-mini-program-stats p{display:flex;gap:8px 15px;flex-wrap:wrap;margin:8px 0 0;padding-top:8px;border-top:1px dashed #dce9e1;font-size:11px}.admin-mini-program-stats p b{font-weight:800;color:#568570}@media(max-width:480px){.mini-program-last-open{width:100%;margin-left:0}.admin-mini-program-stats{padding:11px 12px}}

/* Shared list pagination, keeping native keyboard-friendly page-size selectors. */
.list-pagination{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px 18px;margin:18px 0 6px;padding:12px 0;color:var(--muted);font-size:12px}.list-pagination .page-total{margin-right:auto;white-space:nowrap}.list-pagination .page-size{display:flex;align-items:center;gap:7px;margin:0;font-size:12px;color:var(--muted);white-space:nowrap}.list-pagination .page-size select{display:inline-block;width:auto;min-width:72px;margin:0;padding:7px 26px 7px 10px;min-height:36px;border:1px solid var(--line);border-radius:10px;background-color:#fff;color:var(--ink);font-size:12px}.page-navigation{display:flex;align-items:center;gap:10px;white-space:nowrap}.list-pagination .small-btn{min-height:36px;padding:7px 12px;white-space:nowrap}.list-pagination button:disabled,.list-pagination select:disabled{opacity:.45;cursor:not-allowed}.list-pagination button:focus-visible,.list-pagination select:focus-visible{outline:2px solid var(--violet);outline-offset:3px}.admin-user-codes .list-pagination{gap:8px 12px;font-size:11px;margin:8px 0 0;padding:8px 0 0}.admin-user-codes .list-pagination .page-size{font-size:11px}@media(max-width:560px){.list-pagination{gap:10px 12px}.list-pagination .page-navigation{width:100%;justify-content:flex-end}.list-pagination .page-total{font-size:11px}.list-pagination .small-btn{padding:7px 11px}}

/* Maintenance pauses admission while existing work remains available. */
.maintenance-notice{display:flex;flex-direction:column;gap:6px;padding:16px 20px;margin:0 0 20px;border:1px solid #eddbc0;border-radius:16px;background:#fff8e9;color:#806038;font-size:13px;line-height:1.6}.maintenance-notice strong{font-size:15px}.admin-maintenance{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.admin-maintenance.is-on{background:#fff8ee;border-color:#ebd7b8}.admin-maintenance h3{font-size:16px;margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-maintenance h3 span{font-size:11px;font-weight:600;color:var(--muted);padding:4px 8px;background:#f4f0f8;border-radius:6px}.admin-maintenance.is-on h3 span{background:#fae6c6;color:#855e30}.admin-maintenance p{line-height:1.7;margin:8px 0 0;max-width:560px}.maintenance-toggle{display:flex;align-items:center;gap:9px;flex-shrink:0;cursor:pointer;border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:800;padding:8px;border-radius:10px}.maintenance-switch-track{display:block;position:relative;width:40px;height:24px;border-radius:20px;background:#d7cfdf;transition:background .15s}.maintenance-switch-track i{position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:white;box-shadow:0 1px 3px #30264426;transition:transform .15s}.maintenance-toggle[aria-checked="true"] .maintenance-switch-track{background:var(--violet)}.maintenance-toggle[aria-checked="true"] .maintenance-switch-track i{transform:translateX(16px)}.maintenance-toggle:focus-visible{outline:2px solid var(--violet);outline-offset:3px}.maintenance-toggle:disabled{opacity:.55;cursor:wait}@media(max-width:560px){.admin-maintenance{align-items:flex-start;flex-direction:column;gap:10px}.maintenance-toggle{align-self:flex-end}}

.server-resources{margin-top:24px;padding:18px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.45)}.server-resource-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.server-resource-heading h4{margin:0;font-size:18px}.server-resource-heading p{margin:7px 0 0;font-size:12px;color:var(--muted);line-height:1.6}.server-resources .server-detail{font-size:12px;padding-bottom:0}.server-resources .server-metric>strong{font-size:clamp(19px,2.3vw,28px);overflow-wrap:anywhere}@media(max-width:650px){.server-resources{padding:12px}.server-resource-heading{align-items:flex-start}.server-resource-heading h4{font-size:16px}}

/* Admin task records: stable, chronological poster cards. */
.admin-poster-list{display:grid;gap:16px}.admin-poster-card{position:relative;display:grid;grid-template-columns:145px minmax(0,1fr);gap:22px;padding:24px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 7px 22px #65427005}.admin-poster-card .admin-task-thumb{width:145px;height:110px;margin:8px 0 0;align-self:start;border-radius:13px}.admin-task-thumb.task-thumb-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--violet)}.admin-task-thumb.task-thumb-placeholder>span{font-size:30px}.admin-task-thumb small{font-size:11px}.admin-poster-content{min-width:0}.admin-poster-content .task-heading{padding-right:24px;align-items:flex-start}.admin-poster-content h4{margin:0;font-size:16px;line-height:1.5;overflow-wrap:anywhere}.admin-poster-owner{font-size:12px!important;color:var(--ink)!important;margin:7px 0!important;overflow-wrap:anywhere}.admin-poster-meta{font-size:11px!important;margin:7px 0!important;line-height:1.6;overflow-wrap:anywhere}.admin-poster-activity{font-size:12px!important;margin:9px 0!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.admin-poster-activity.is-error{color:#ad4464!important}.admin-poster-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:14px 0 3px}.admin-downloads{display:flex;gap:11px;align-items:center;font-size:12px}.admin-downloads>span{font-size:11px;color:var(--muted)}.admin-downloads a{color:var(--pink);text-decoration:none;font-weight:700}.admin-task-details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.admin-task-details>summary{font-size:11px;color:var(--muted);cursor:pointer;width:max-content}.admin-task-details .token-summary{margin-top:6px}.admin-poster-storage{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:11px;color:var(--muted)}.admin-poster-card .task-delete{top:11px;right:11px}.admin-poster-card .progress-track{margin-top:10px}@media(max-width:650px){.admin-poster-card{padding:18px 15px;gap:13px;grid-template-columns:80px minmax(0,1fr)}.admin-poster-card .admin-task-thumb{width:80px;height:86px}.admin-poster-content h4{font-size:14px}.admin-poster-content .task-heading{flex-direction:column;gap:5px}.admin-poster-actions .small-btn{font-size:11px;padding:8px 9px}.admin-poster-storage{align-items:flex-start;flex-direction:column}}

.admin-poster-card .task-thumb img{object-fit:contain}.admin-poster-card .task-thumb:after{content:"点击预览"}.admin-poster-card .task-thumb.is-error:after{content:"点击重试"}.admin-poster-card .task-thumb-placeholder:after{display:none}

/* Keep the email opt-in separate from its delivery result on admin records. */
.admin-task-email{display:flex;align-items:center;flex-wrap:wrap;gap:5px 9px;margin:9px 0 0;min-width:0;font-size:11px;line-height:1.6;color:var(--muted)}
.admin-email-choice{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 8px;border:1px solid transparent;border-radius:7px;background:#f5f3f6;font-weight:600}
.admin-email-choice svg{flex:none}
.admin-email-choice.is-selected{background:#f2ebfa;color:#795b98}
.admin-email-choice.is-legacy{background:transparent;border:1px dashed #e7deeb;color:#97869f}
.admin-email-state{overflow-wrap:anywhere}
.admin-email-state.is-sent{color:#38836b}
.admin-email-state.is-warning{color:#a5753f}
@media(max-width:650px){.admin-email-choice{padding:3px 6px;gap:4px}.admin-email-choice svg{width:12px;height:12px}}

/* Render text first; media and expanded metadata follow independently. */
.admin-task-list-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;min-height:44px}.admin-task-list-status p{margin:10px 0}.admin-task-list-status [role=status],.admin-detail-message{font-size:12px;color:var(--muted);line-height:1.6}.admin-task-skeleton{height:185px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(100deg,#fff 20%,#faf3f8 45%,#fff 70%);background-size:200% 100%;animation:task-skeleton 1.4s ease-in-out infinite}.admin-poster-content h4{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.admin-task-details [data-admin-detail-body]{min-width:0;overflow-wrap:anywhere}@keyframes task-skeleton{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.admin-task-skeleton{animation:none}}
/* Long PDF filenames must not determine a dialog's intrinsic width. */
.poster-preview[open]{grid-template-columns:minmax(0,1fr)}.poster-preview-header{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto}.poster-preview-header>div:first-child{min-width:0;overflow:hidden}.poster-preview-header h2{white-space:normal;overflow-wrap:anywhere;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.5;max-width:100%}.poster-preview-actions{justify-self:end}.log-card{min-width:0;max-width:100%;display:flex;flex-direction:column;overflow:hidden;max-height:92vh;max-height:92dvh}.log-card h2{min-width:0;max-width:100%;padding-right:32px;font-size:clamp(17px,2vw,23px);line-height:1.5;overflow-wrap:anywhere;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;flex-shrink:0}.log-card .eyebrow{padding-right:32px;flex-shrink:0}#logMeta{overflow-wrap:anywhere;line-height:1.5;flex-shrink:0}.log-viewer{min-width:0;min-height:0;max-width:100%;flex-shrink:1}@media(max-width:650px){.log-card{padding:24px 18px}.log-card h2{font-size:17px}.poster-preview-header{gap:10px}.poster-preview-header h2{font-size:14px}.poster-preview-actions .small-btn{padding:8px}.admin-task-list-status{font-size:12px}}

/* Compact management lists and first-party analytics. */
.compact-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0 14px}.compact-section-head h3,.compact-section-head h4{margin:0;font-size:18px}.compact-section-head p,.compact-help{font-size:12px;line-height:1.7;color:var(--muted);margin:6px 0}.compact-section-head input[type=search]{width:240px;max-width:45%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);font:inherit;font-size:13px}.admin-disclosure{border:1px solid var(--line);border-radius:14px;background:#fffafc;margin:14px 0}.admin-disclosure>summary{cursor:pointer;padding:16px;font-size:14px;font-weight:800;line-height:1.5}.admin-disclosure>summary span{color:var(--muted);font-size:12px;font-weight:400;margin-left:10px}.admin-disclosure>form{padding:0 16px 16px}.registration-disclosure>.registration-defaults{border:0;margin:0;background:transparent}.compact-skill-list{display:grid;gap:9px}.compact-skill{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:start;gap:14px;border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff}.skill-tile{width:40px;height:44px;display:grid;place-items:center;border:1px solid #e6dcf5;border-radius:12px;background:#f5effe;color:#9474c4;font:700 21px 'DM Mono',monospace}.compact-skill-info{min-width:0}.compact-skill-info>strong{display:block;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.compact-skill-info>p{font-size:12px;color:var(--muted);margin:5px 0;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.skill-location{font-size:11px;color:var(--muted)}.skill-location summary{cursor:pointer;width:fit-content}.skill-location small{display:block;margin-top:6px;overflow-wrap:anywhere}.compact-skill-controls{display:grid;grid-template-columns:130px auto;align-items:center;gap:5px 8px}.compact-skill-controls select{margin:0;min-height:36px;border:1px solid var(--line);border-radius:9px;padding:6px 8px;font-size:12px;background:white;color:var(--ink)}.compact-skill-controls .small-btn{min-height:36px;padding:7px 12px}.compact-skill-controls small{grid-column:1/-1;font-size:10px;color:var(--muted);min-height:14px;text-align:right}.compact-skill-controls button:disabled{opacity:.45;cursor:default}
.compact-account.admin-account-card{padding:0;margin:9px 0;overflow:hidden;border-radius:14px}.compact-user-summary{display:grid;grid-template-columns:38px minmax(0,1fr) auto 16px;gap:12px;align-items:center;padding:17px 18px;cursor:pointer;list-style:none}.compact-user-summary::-webkit-details-marker{display:none}.compact-user-summary:hover{background:#fcf8ff}.user-avatar{height:38px;width:38px;display:grid;place-items:center;border:1px solid #ecdff1;border-radius:13px;background:linear-gradient(135deg,#fbedf4,#ede9ff);color:#9778ae;font-weight:800;font-size:17px}.compact-user-identity{min-width:0}.compact-user-identity strong{font-size:14px;display:block;overflow-wrap:anywhere}.compact-user-identity>small{display:block;color:var(--muted);font-size:12px;margin-top:5px;overflow-wrap:anywhere}.compact-user-metrics{display:grid;grid-template-columns:80px 115px 100px;gap:12px;align-items:center;text-align:right;font-size:12px;color:var(--muted)}.user-credit{color:#8565b6;font-size:17px;font-weight:800}.user-credit small{font-size:11px;font-weight:500}.user-strength-summary{font-size:11px}.user-expand{font-size:20px;color:#a394b1}.compact-account[open] .user-expand{transform:rotate(180deg)}.compact-user-body{padding:16px 20px;border-top:1px solid var(--line);background:#fffcff}.user-detail-heading{font-size:12px;color:var(--muted);margin-bottom:14px;overflow-wrap:anywhere}.compact-user-body .quota-editor{justify-content:flex-start;max-width:360px}.compact-user-body .admin-strength-editor{margin-top:16px}.compact-user-body .admin-profile-editor{margin-top:12px}.compact-user-body .admin-account-footer{margin-bottom:0}.compact-user-summary:focus-visible,.admin-disclosure>summary:focus-visible{outline:2px solid var(--violet);outline-offset:-3px}
#adminFeedbackFilters{display:grid;grid-template-columns:160px minmax(0,1fr) auto;align-items:end;gap:12px}#adminFeedbackFilters label{display:grid;grid-template-rows:18px 44px;gap:8px;min-width:0}#adminFeedbackFilters label>span{display:block;margin:0;font-size:12px;line-height:18px;font-weight:800}#adminFeedbackFilters input,#adminFeedbackFilters select,#adminFeedbackFilters button{height:44px;min-height:44px;margin:0;box-sizing:border-box;font-size:13px;line-height:20px}#adminFeedbackFilters button{white-space:nowrap}
.online-metric{font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}.online-metric:hover,.online-metric[aria-expanded=true]{border-color:#c5afe5;background:#faf5ff}.online-metric>span{display:flex;justify-content:space-between;gap:12px}.online-metric:focus-visible{outline:2px solid var(--violet);outline-offset:3px}.online-people{border:1px solid var(--line);border-radius:16px;padding:0 18px 12px;margin-top:12px;background:white}.online-person{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #f2ecf4}.online-person>div{min-width:0;flex:1}.online-person strong{font-size:13px;overflow-wrap:anywhere}.online-person small{display:block;font-size:12px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.online-person time{font-size:11px;color:var(--muted);white-space:nowrap}.online-dot{width:7px;height:7px;background:#54b79b;border-radius:50%;flex-shrink:0}.online-people .list-pagination{margin-top:6px}
.analytics-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:20px 0}.analytics-controls>label{margin:0}.analytics-controls>label>span{display:block;font-size:12px;font-weight:800;margin-bottom:7px}.analytics-controls select{min-height:40px;margin:0;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);font:inherit;font-size:13px}.chart-zoom{display:flex;gap:5px}.chart-zoom button{height:40px;min-width:40px;padding:6px;font-size:20px}.chart-zoom button:disabled{opacity:.35;cursor:default}.analytics-controls .analytics-admins{display:flex;align-items:center;gap:7px;font-size:12px;min-height:40px;margin-left:auto}.analytics-admins input,.analytics-legend input{accent-color:#9474c4;width:15px;height:15px;margin:0}.analytics-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.analytics-totals>div{padding:18px;border:1px solid var(--line);border-radius:15px;background:#fff}.analytics-totals span,.analytics-totals small{display:block;font-size:12px;color:var(--muted)}.analytics-totals strong{display:block;font-size:30px;line-height:1.2;color:var(--series-color);margin:10px 0 8px}.analytics-totals small{font-size:11px}.analytics-chart-card{padding:20px;border:1px solid var(--line);border-radius:18px;background:white;min-width:0}.analytics-legend{display:flex;gap:12px 18px;flex-wrap:wrap}.analytics-legend label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:0;cursor:pointer}.analytics-legend i{width:16px;height:3px;background:var(--series-color);border-radius:2px}.analytics-chart{overflow-x:auto;position:relative;margin:18px 0 0;min-height:190px}.analytics-chart svg{display:block;width:100%;min-width:560px;height:auto}.analytics-chart text{font-family:inherit;fill:#978aa4;font-size:11px}.chart-hit{fill:transparent;cursor:crosshair;outline:none}.chart-hit:hover,.chart-hit:focus{fill:#9270c512}.analytics-point{font-size:12px;line-height:1.8;min-height:42px;color:#766785;margin:14px 0 0;border-top:1px solid #f0eaf4;padding-top:12px}.chart-empty{padding:60px 20px;text-align:center;font-size:13px;color:var(--muted)}.chart-zero{font-size:12px;text-align:center;color:var(--muted)}
@media(max-width:760px){.compact-user-metrics{grid-template-columns:65px 90px;gap:8px}.user-code-summary{display:none}.compact-skill{grid-template-columns:34px minmax(0,1fr);gap:10px}.skill-tile{width:34px;height:38px}.compact-skill-controls{grid-column:2;grid-template-columns:minmax(0,150px) auto;justify-content:start}.compact-skill-controls small{text-align:left}.analytics-chart-card{padding:14px}}
@media(max-width:560px){.compact-section-head{align-items:flex-start;flex-wrap:wrap}.compact-section-head input[type=search]{max-width:100%;width:100%}.compact-section-head p{font-size:11px}.compact-user-summary{grid-template-columns:30px minmax(0,1fr) 16px;padding:14px 12px;gap:10px}.user-avatar{width:30px;height:34px;border-radius:10px;font-size:15px}.compact-user-metrics{grid-column:2;grid-row:2;display:flex;flex-wrap:wrap;text-align:left;gap:8px 12px}.user-credit{font-size:14px}.user-code-summary{display:inline;font-size:11px}.user-expand{grid-column:3;grid-row:1/3}.compact-user-identity strong{font-size:13px}.compact-user-identity>small{font-size:11px}.compact-user-body{padding:14px 12px}.admin-disclosure>summary span{display:block;margin:6px 0 0;font-size:11px}#adminFeedbackFilters{grid-template-columns:minmax(0,1fr)}#adminFeedbackFilters button{justify-self:end;width:auto}.analytics-controls{gap:10px}.analytics-controls select{max-width:150px}.analytics-controls .analytics-admins{margin-left:0;width:100%}.analytics-totals{gap:8px}.analytics-totals>div{padding:12px 9px}.analytics-totals span{font-size:11px}.analytics-totals strong{font-size:25px}.analytics-totals small{font-size:10px}.analytics-legend{gap:10px}.analytics-legend label{font-size:11px}.online-people{padding:0 12px 10px}}
.admin-tabs{overflow-x:auto;scrollbar-width:thin}.admin-tab{white-space:nowrap;flex:0 0 auto;font-size:13px;padding:9px 10px}

/* Quiet chart controls; keep pinch gestures scoped to the plotted area. */
.analytics-controls select{-webkit-appearance:none;appearance:none;height:40px;min-height:40px;line-height:20px;padding:9px 34px 9px 12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%239384a7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px}
.analytics-chart-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 9px}.chart-gesture-hint{font-size:11px;color:#a496af;line-height:1.6}.analytics-chart-tools .chart-zoom{display:flex;align-items:center;gap:0;border:1px solid #e9e1ef;border-radius:10px;background:#fcf9ff;padding:2px;flex-shrink:0}.analytics-chart-tools .chart-zoom button{display:grid;place-items:center;width:30px;min-width:30px;height:30px;padding:0;border:0;border-radius:7px;background:transparent;box-shadow:none;color:#9583ad;font:500 18px/1 system-ui;cursor:pointer}.analytics-chart-tools .chart-zoom button:hover:not(:disabled){background:#efe6f8;color:#80619d}.analytics-chart-tools .chart-zoom button:focus-visible{outline:2px solid var(--violet);outline-offset:1px}.analytics-chart-tools .chart-zoom>span{min-width:55px;padding:0 6px;text-align:center;font-size:11px;color:#857491}.compact-user-identity .user-last-visit{display:block;margin-top:5px;color:#9d8ca9;font-size:10px;line-height:1.5}.user-last-visit time{font-variant-numeric:tabular-nums;color:#8b7b99}.compact-user-summary{padding-top:14px;padding-bottom:14px}
@media(max-width:560px){.analytics-chart-tools{align-items:flex-start;gap:8px}.chart-gesture-hint{max-width:160px;font-size:10px}.compact-user-identity .user-last-visit{font-size:10px}.analytics-chart-tools .chart-zoom>span{min-width:48px}.analytics-chart-tools .chart-zoom button{min-width:27px;width:27px;height:29px}}

/* A quiet, persistent inbox with the same soft palette as the poster workspace. */
.account-area .message-entry{position:relative;gap:6px;background:#fff8fc;color:#a85583;border-color:#f0d7e7}.message-entry:hover{background:#ffedf6}.message-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#e66b9b;color:#fff;font:700 10px/1 system-ui}.message-dialog{box-sizing:border-box;width:min(660px,calc(100% - 32px));max-height:86vh;max-height:86dvh;overflow-y:auto;padding:28px;border:1px solid var(--line);border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 22px 70px #30264433}.message-dialog::backdrop{background:#30264455;backdrop-filter:blur(5px)}.message-dialog h2{margin:10px 0 5px;font-size:26px}.message-subtitle{font-size:12px;color:var(--muted);margin:0 0 22px}.message-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.message-toolbar-actions{display:flex;gap:12px}.message-filters{display:flex;gap:3px;background:#f3edf6;padding:4px;border-radius:10px}.message-filters button,.message-audience button{border:0;background:none;color:var(--muted);font-family:inherit;font-size:12px;font-weight:700;line-height:1.5;padding:7px 12px;border-radius:7px;cursor:pointer}.message-filters button.active{background:#fff;box-shadow:0 2px 5px #3026440a;color:#b45483}.message-text-button{border:0;background:none;padding:5px 0;font:inherit;font-size:12px;color:#aa5d88;cursor:pointer}.message-text-button:hover{text-decoration:underline}.message-text-button:disabled{opacity:.4;cursor:default;text-decoration:none}.message-row{display:flex;align-items:flex-start;gap:10px;width:100%;padding:16px 12px;margin:8px 0;border:1px solid #eee5f1;border-radius:13px;background:#fff;text-align:left;color:inherit;font:inherit;cursor:pointer}.message-row.is-unread{background:#fff7fb;border-color:#f3d7e5}.message-row:hover{border-color:#d6b5dc}.message-status-dot{flex:0 0 6px;height:6px;margin-top:6px;border-radius:50%;background:#ded5e4}.message-row.is-unread .message-status-dot{background:#e36a9c}.message-row-content{flex:1;min-width:0}.message-row-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.message-row-heading strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.message-row-heading time{font-size:10px;color:#a192ac;white-space:nowrap}.message-preview{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:#8c7c9c;font-size:12px;line-height:1.7;margin:6px 0}.message-row-source{font-size:10px;color:#ac9bb6}.message-row-arrow{color:#beaaca;font-size:20px;line-height:20px}.message-empty{text-align:center;padding:40px 16px;color:var(--muted)}.message-empty>span{display:block;color:#c3a6d9;font-size:35px;margin-bottom:12px}.message-empty strong{display:block;font-size:14px;font-weight:600}.message-empty p{font-size:12px}.message-new-notice{width:100%;border:1px solid #e4d5ef;border-radius:9px;background:#f6edfc;color:#9770b3;padding:10px;font:inherit;font-size:12px;cursor:pointer}.message-error{color:#b44868!important;font-size:12px;overflow-wrap:anywhere}.message-dialog h3{font-size:22px;line-height:1.5;overflow-wrap:anywhere;margin:22px 0 8px}.message-detail-date{font-size:11px;color:var(--muted);margin:0 0 22px}.message-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;font-size:14px;color:#63536f}.message-dialog button:focus-visible{outline:2px solid var(--violet);outline-offset:3px}.message-channel-label{font-size:11px;background:#f3edf8;color:#9477ad;border-radius:8px;padding:7px 10px}.message-compose{background:#fff;border:1px solid #ece1f1;padding:20px;border-radius:17px}.message-compose-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.message-compose-heading strong{font-size:15px}.message-compose-heading small,.message-compose-footer small{font-size:11px;color:#aa96b4}.message-audience{display:flex;gap:8px;margin:14px 0}.message-audience button{border:1px solid var(--line);font-family:inherit;font-size:12px}.message-audience button.active{background:#fff0f6;color:#be5585;border-color:#ecc1d5}.message-audience button span{font-size:10px;margin-left:5px}.message-recipient{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:12px}.message-compose label{display:block;margin:14px 0 0}.message-compose label>span{display:flex;justify-content:space-between;font-size:12px;font-weight:700;margin-bottom:8px}.message-compose label small{font-weight:400;font-size:10px;color:#a08baa}.message-compose input,.message-compose select{min-width:0}.message-compose textarea{resize:vertical;min-height:140px;max-height:400px}.message-compose-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px}.message-compose-footer button{padding:10px 17px}.message-send-feedback{padding:10px 12px;background:#eff9f3;color:#46765f!important;border-radius:8px;font-size:12px!important;margin:14px 0 0}.message-send-feedback.is-error{background:#fff1f4;color:#b14d6b!important}.message-history-heading{margin-top:28px}.message-sent-row{border:1px solid var(--line);border-radius:12px;margin:9px 0;background:#fff}.message-sent-row>summary{display:flex;align-items:center;gap:12px;padding:15px;cursor:pointer;list-style:none}.message-sent-row>summary::-webkit-details-marker{display:none}.message-sent-icon{width:30px;height:33px;border-radius:9px;display:grid;place-items:center;background:#f5effb;color:#b093c6;flex-shrink:0;font-size:19px}.message-sent-info{flex:1;min-width:0}.message-sent-info strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-sent-info small{display:block;font-size:10px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}.message-delivery-count{text-align:right;flex-shrink:0}.message-delivery-count strong{display:block;font-size:13px;color:#9174a3}.message-delivery-count small{display:block;font-size:10px;color:#ad9bb7;margin-top:4px}.message-sent-body{padding:15px;border-top:1px solid var(--line)}.message-sent-body>small{color:var(--muted);font-size:11px;display:block;margin-bottom:10px}.user-message-action{display:flex;justify-content:flex-end;margin:8px 0 12px}
@media(max-width:560px){.message-entry-label{display:none}.account-area .message-entry{padding:8px 10px}.message-dialog{padding:25px 16px;width:calc(100% - 24px);border-radius:20px}.message-row{padding:13px 10px}.message-row-heading{flex-direction:column;gap:5px;align-items:stretch}.message-row-heading strong{font-size:13px}.message-toolbar-actions{gap:10px}.message-toolbar{gap:7px}.message-filters button{padding:6px 10px}.message-compose{padding:15px}.message-recipient{grid-template-columns:minmax(0,1fr);gap:0}.message-compose-heading small{font-size:10px}.message-compose-footer{align-items:flex-start;flex-direction:column}.message-compose-footer button{align-self:flex-end}.message-sent-row>summary{padding:12px 10px;gap:8px}.message-sent-icon{display:none}.message-sent-info strong{font-size:12px}.message-delivery-count strong{font-size:12px}.message-dialog .list-pager{flex-wrap:wrap}}

/* Separate intentional mini-program interest from access/credit prompts. */
.compact-user-metrics{grid-template-columns:75px 125px 160px}.user-code-summary{font-size:10px;line-height:1.6;white-space:normal}.admin-mini-program-stats .mini-program-stats-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.mini-program-stats-heading>span>small{font-size:11px;color:var(--muted);margin-left:5px}.admin-mini-program-stats .mini-program-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.mini-program-mode{border:1px solid #dceee5;background:#f4fbf7;border-radius:10px;padding:12px}.mini-program-mode.passive{border-color:#efe3d4;background:#fffaf3}.admin-mini-program-stats .mini-program-mode>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.mini-program-mode>div>span{font-size:12px;color:#5d917c}.mini-program-mode.passive>div>span{color:#a0865d}.admin-mini-program-stats .mini-program-mode strong{font-size:23px;color:#4e9980}.admin-mini-program-stats .mini-program-mode.passive strong{color:#b18b52}.admin-mini-program-stats .mini-program-mode p{display:block;font-size:10px;line-height:1.7;margin:7px 0 0;color:var(--muted)}.analytics-totals{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:760px){.compact-user-metrics{grid-template-columns:65px 90px}.admin-mini-program-stats .mini-program-mode-grid{gap:8px}.mini-program-mode{padding:10px}.analytics-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.compact-user-metrics{display:flex}.admin-mini-program-stats .mini-program-mode-grid{grid-template-columns:minmax(0,1fr)}.admin-mini-program-stats .mini-program-last-open{font-size:10px}.user-code-summary{font-size:10px}}

/* Generation history stays compact and unloaded until explicitly expanded. */
.user-generation-history{margin:12px 0 18px;border:1px solid #e8ddef;border-radius:12px;background:#fff}.user-generation-history>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 15px;cursor:pointer;list-style:none;font-size:13px;font-weight:700;color:#76608e}.user-generation-history>summary::-webkit-details-marker{display:none}.user-generation-history>summary>span{display:flex;align-items:center;gap:9px}.user-generation-history>summary b{font-size:10px;font-weight:500;padding:3px 7px;border-radius:7px;background:#f2ebf8;color:#a08ab0}.history-expand-hint{font-size:10px;font-weight:400;color:#a795b6}.user-generation-history>summary:focus-visible{outline:2px solid var(--violet);outline-offset:-3px;border-radius:12px}.user-generation-history[open]>summary{border-bottom:1px solid #eee5f4}.user-history-content{padding:0 14px 14px}.user-history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0 3px}.user-history-toolbar>span{font-size:10px;color:#a18fb0;line-height:1.6}.user-history-toolbar button{font-size:10px;padding:6px 9px;white-space:nowrap;font-weight:600}.user-history-status{font-size:11px!important;color:#9a86ad!important;margin:7px 0!important;overflow-wrap:anywhere}.user-history-status:empty{display:none}.user-history-status.is-error{color:#b55473!important}.user-history-task{padding:15px 0;border-bottom:1px solid #f0eaf4;min-width:0}.user-history-task-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.user-history-task h4{margin:0;font-size:13px;font-weight:700;line-height:1.6;overflow-wrap:anywhere;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.user-history-task .status-badge{flex-shrink:0;font-size:10px;white-space:nowrap;margin-top:2px}.user-history-meta{color:#a18bb1!important;font-size:10px!important;line-height:1.7;overflow-wrap:anywhere;margin:7px 0!important}.user-history-error,.user-history-note{font-size:11px!important;color:#ab6680!important;line-height:1.7;margin:8px 0!important;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.user-history-note{color:#a18bb1!important}.user-history-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.history-link{font:inherit;font-size:11px;font-weight:600;border:0;padding:3px 0;background:none;color:#a06391;cursor:pointer}.history-link:hover{text-decoration:underline}.history-link:disabled{opacity:.45;cursor:default}.history-link:focus-visible{outline:2px solid var(--violet);outline-offset:3px}.history-manage{margin-left:auto;color:#9e87b2}.user-history-downloads{display:inline-flex;align-items:center;gap:7px;color:#b09abb;font-size:10px}.user-history-downloads a{font-size:11px;color:#a06391;text-decoration:none}.user-history-downloads a:hover{text-decoration:underline}.user-history-empty{text-align:center;padding:22px 10px;color:var(--muted);font-size:12px!important}.user-history-content .list-pagination{font-size:10px;gap:8px;margin-top:12px}.user-history-content .list-pagination .small-btn{font-size:10px;padding:6px 9px;min-height:32px}.user-history-content .page-size select{font-size:11px;min-height:32px}.user-history-content .page-navigation{gap:7px}
@media(max-width:560px){.user-generation-history>summary{padding:12px 10px;font-size:12px}.history-expand-hint{font-size:9px}.user-history-content{padding:0 10px 12px}.user-history-toolbar{align-items:flex-start}.user-history-task-heading{gap:8px}.user-history-task h4{font-size:12px}.user-history-actions{gap:8px 12px}.history-manage{margin-left:0}.user-history-content .list-pagination{justify-content:flex-start}.user-history-content .page-total{width:100%}}

/* User Skill filters, batch credit grants and shared credit receipts. */
.admin-user-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,1fr);gap:14px;margin:12px 0 18px}.admin-user-filters label{min-width:0;margin:0}.admin-user-filters input,.admin-user-filters select{width:100%;min-width:0}.admin-grant-form{border:1px solid #e8dbef;border-radius:14px;background:#fbf7ff;padding:16px;margin-bottom:18px}.admin-grant-form fieldset{border:0;padding:0;margin:0;min-width:0}.credit-selection-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px}.credit-selection-bar label{display:flex;align-items:center;gap:7px;margin:0}.credit-selection-bar input[type=checkbox],.credit-user-checkbox{width:17px;height:17px;min-height:0;margin:0;accent-color:var(--violet);cursor:pointer}.credit-selection-bar>span{color:var(--muted)}.credit-selection-bar .small-btn{margin-left:auto}.credit-grant-inputs{display:grid;grid-template-columns:minmax(135px,.55fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:14px}.credit-grant-inputs label{min-width:0;margin:0}.credit-grant-inputs input{width:100%;min-width:0}.credit-grant-inputs button{margin-bottom:0;white-space:nowrap;min-height:42px}.admin-grant-form .compact-help{margin:10px 0 0;line-height:1.7}.compact-user-summary.credit-selectable{grid-template-columns:17px 38px minmax(0,1fr) auto 16px}.profile-credit-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.credit-record{padding:15px;margin:10px 0;border:1px solid var(--line);border-radius:12px;background:#fff;overflow-wrap:anywhere}.credit-record-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px}.credit-record-heading>b{white-space:nowrap;font-size:17px}.credit-increase{color:#8063a8}.credit-decrease{color:#ab6176}.credit-record>p{font-size:12px;color:var(--muted);margin:8px 0;line-height:1.7}.credit-record .credit-record-note{color:var(--ink);white-space:pre-wrap}.credit-record>small{display:block;font-size:11px;color:var(--muted);line-height:1.8}.credit-record-batch{opacity:.85}.credit-user-checkbox:focus-visible{outline:2px solid var(--violet);outline-offset:3px}#creditsModal .modal-card{max-width:640px}
@media(max-width:700px){.credit-grant-inputs{grid-template-columns:minmax(0,1fr)}.credit-grant-inputs button{justify-self:end}.admin-user-filters{grid-template-columns:minmax(0,1fr)}.profile-credit-actions{justify-content:flex-start}.compact-user-summary.credit-selectable{grid-template-columns:17px 30px minmax(0,1fr) 16px;gap:9px;padding:14px 12px}.credit-selectable .user-avatar{width:30px;height:34px}.credit-selectable .compact-user-identity{grid-column:3}.credit-selectable .compact-user-metrics{grid-column:3;grid-row:2;display:flex;flex-wrap:wrap;text-align:left;gap:8px 12px}.credit-selectable .user-expand{grid-column:4;grid-row:1/3}.credit-selectable .credit-user-checkbox,.credit-selectable .credit-checkbox-spacer{grid-column:1;grid-row:1/3}.credit-selectable .user-avatar{grid-column:2;grid-row:1}.admin-grant-form{padding:12px}}

/* Batch actions share the filtered user selection. */
.admin-user-selection{padding:14px 16px;margin:0 0 14px;border:1px solid #e8dbef;border-radius:14px;background:#fbf7ff}.admin-user-selection .compact-help{margin:10px 0 0;line-height:1.7}.user-batch-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.user-batch-actions .small-btn{margin-left:0}.user-batch-title{font-size:13px}.user-message-compose{margin:0 0 14px}.user-message-compose .message-compose{border:0;border-top:1px solid var(--line);border-radius:0 0 14px 14px}.message-selected-recipients{margin:10px 0;color:var(--muted);font-size:12px}.message-selected-recipients>summary{cursor:pointer}.message-selected-recipients ul{max-height:180px;overflow:auto;margin:8px 0 0;padding:0;list-style:none}.message-selected-recipients li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;overflow-wrap:anywhere}.message-selected-recipients li strong{color:var(--ink);font-weight:500}.message-selected-recipients li span{text-align:right;min-width:0}.user-message-history{margin:20px 0 0}.user-message-history #adminMessages{padding:0 14px 14px}.user-message-history .message-history-heading{margin-top:14px}.user-message-history .compact-section-head h3{font-size:14px}
@media(max-width:560px){.admin-user-selection{padding:12px}.user-batch-actions{width:100%;justify-content:flex-end;margin:0}.message-selected-recipients li{flex-direction:column;gap:3px}.message-selected-recipients li span{text-align:left}.user-message-history #adminMessages{padding:0 10px 10px}.user-message-compose .message-compose{padding:12px}}

/* The native picker keeps keyboard and mobile selection behavior. */
.composer .skill-picker{display:block;position:relative;margin:0!important}
#skillSelect{display:block;width:100%;height:54px;min-height:54px;margin:0;appearance:none;-webkit-appearance:none;border:1px solid #dcd0ec;border-radius:14px;padding:13px 46px 13px 46px!important;font-size:14px;font-weight:700;line-height:24px;color:var(--ink);box-shadow:0 3px 12px #80669b08;transition:border-color .18s,box-shadow .18s;background-color:#fff!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%239079b0' stroke-width='1.6' viewBox='0 0 24 24'%3E%3Crect x='4' y='3' width='16' height='18' rx='3'/%3E%3Cpath d='M8 8h8M8 12h3v5H8zM14 12h2M14 16h2'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%239079b0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 7 5 5 5-5'/%3E%3C/svg%3E")!important;background-position:16px center,right 16px center!important;background-repeat:no-repeat!important;background-size:20px 20px,18px 18px!important}
#skillSelect:invalid{color:#95859f;font-weight:500}#skillSelect:hover{border-color:#bda6d8;background-color:#fefbff!important}#skillSelect:focus{border-color:#aa88d0;box-shadow:0 0 0 4px #eee5fa;outline:none}#skillSelect[aria-invalid=true]{border-color:#db6388;box-shadow:0 0 0 3px #ffe5ef}#skillSelect option{color:var(--ink);background:#fff;font-weight:500}.skill-help{padding-left:3px}
/* Align both control rectangles, not their native inline baselines. */
#adminModels .admin-form-grid,.admin-user-filters{align-items:end}
#adminModels .admin-form-grid>label,.admin-user-filters>label{display:flex;flex-direction:column;gap:7px;margin:0;min-width:0}
#adminModels .admin-form-grid>label>span,.admin-user-filters>label>span{display:block;margin:0;min-height:18px;line-height:18px}
#adminModels .admin-form-grid input,#adminModels .admin-form-grid select,.admin-user-filters input,.admin-user-filters select{display:block;box-sizing:border-box;width:100%;height:44px;min-height:44px;line-height:20px;margin:0;padding:11px 13px;vertical-align:top}
#adminModels .admin-form-grid select,.admin-user-filters select{appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%239079b0' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}
.modal-card .message-compose .message-email-option{display:flex;align-items:center;gap:14px;position:relative;padding:13px 14px;margin-top:18px;border:1px solid #eadff1;border-radius:12px;background:#fbf8ff;cursor:pointer}.modal-card .message-email-option .message-email-copy{display:block;flex:1;min-width:0;margin:0}.message-email-copy strong{display:block;font-size:12px}.message-email-copy small{display:block;margin-top:5px;font-size:11px;line-height:1.6;color:var(--muted);font-weight:400}.modal-card .message-email-option input{position:absolute;right:14px;width:40px;height:24px;min-height:0;margin:0;padding:0;opacity:0;cursor:pointer}.modal-card .message-email-option .message-email-switch{display:block;flex:0 0 40px;width:40px;height:24px;margin:0;border-radius:20px;background:#dcd5e5;pointer-events:none;transition:background .18s}.message-email-switch:after{content:'';display:block;height:18px;width:18px;border-radius:50%;background:white;box-shadow:0 1px 3px #45335622;margin:3px;transition:transform .18s}.message-email-option input:checked+.message-email-switch{background:#9473bc}.message-email-option input:checked+.message-email-switch:after{transform:translateX(16px)}.message-email-option input:focus-visible+.message-email-switch{outline:2px solid var(--violet);outline-offset:3px}.message-email-option:has(input:disabled){opacity:.65;cursor:default}.notification-email-status{padding:12px;margin:16px 0 0;border-radius:10px;background:#f7f2fc;font-size:12px;color:var(--muted);line-height:1.7}.notification-email-status>strong{font-size:12px;color:var(--ink)}.notification-email-status>p{margin:5px 0;font-size:12px}.notification-email-status>small{display:block}.notification-email-status>button{margin-top:8px}
@media(max-width:560px){#skillSelect{font-size:13px}.modal-card .message-compose .message-email-option{padding:12px;gap:10px}.message-email-copy small{font-size:10px}}

/* Four generation modes, including the upcoming custom-content mode. */
.composer .strength-options{grid-template-columns:repeat(4,minmax(0,1fr))}
.composer .strength-choice.is-coming-soon{cursor:default}
.composer .is-coming-soon .strength-card{background:#f8f5fb;border:1.5px dashed #d7cbe4;box-shadow:none}
.composer .is-coming-soon:hover .strength-card{border-color:#d7cbe4;background:#f8f5fb}
.composer .coming-soon-icon{font-size:19px;color:#a391bb}
.composer .strength-choice .strength-coming-label{margin-top:auto;font-size:12px;font-weight:600;color:#89749e}
.composer .strength-promotion-badge{align-self:flex-start;background:#eee5fa;color:#765292;border-radius:6px;padding:3px 6px;font-size:10px;line-height:1.5;font-weight:600}
.composer .strength-promotion-note{margin:12px 0 0;padding:11px 13px;border-radius:10px;background:#f6f0fc;color:#74558d;font-size:12px;line-height:1.8}
.ultra-unlock-form{margin-bottom:22px}
#adminModels .ultra-unlock-toggle{display:flex;align-items:center;gap:9px;margin:15px 0 18px;cursor:pointer}
#adminModels .ultra-unlock-toggle input{width:17px;height:17px;min-height:0;padding:0;margin:0;accent-color:#9473bc}
#adminModels .ultra-unlock-toggle span{margin:0;font-size:13px;line-height:20px}
#adminModels .ultra-unlock-form .resource-heading{flex-wrap:wrap;gap:10px}
#adminModels .ultra-unlock-form input[type="datetime-local"]{width:100%;min-width:0;max-width:100%;font-size:13px}
@media(max-width:1100px){.composer .strength-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
.admin-code-batch{margin:12px 0;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.admin-code-batch>summary{display:flex;align-items:center;gap:16px;padding:17px 18px;cursor:pointer;list-style:none;background:linear-gradient(105deg,#fff9fc,#fcfaff)}
.admin-code-batch>summary::-webkit-details-marker{display:none}
.admin-code-batch>summary:hover{background:#faf3fc}
.admin-code-batch>summary:focus-visible{outline:2px solid var(--violet);outline-offset:-3px}
.code-batch-title{flex:1;min-width:0}.code-batch-title strong{display:block;font-size:14px;overflow-wrap:anywhere}
.code-batch-title small{display:block;margin-top:6px;font-size:11px;line-height:1.7;color:var(--muted);font-weight:400}
.code-batch-stats{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:5px;max-width:36%}
.code-batch-count{font-size:14px;font-weight:800;color:#826299;white-space:nowrap;text-align:right}
.code-batch-count small{display:block;font-size:10px;font-weight:400;margin-top:4px}
.code-batch-chevron{color:#a18ab8;font-size:20px;transition:transform .15s}.admin-code-batch[open]>summary .code-batch-chevron{transform:rotate(180deg)}
.code-batch-body{padding:0 18px 16px;border-top:1px solid var(--line)}
.code-batch-description{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:14px;color:var(--muted);font-size:11px;line-height:1.7;overflow-wrap:anywhere}
.code-batch-actions{padding-bottom:10px;border-bottom:1px solid var(--line)}
.code-batch-body .activation-record{border-radius:10px}.code-batch-body .list-pagination{flex-wrap:wrap}
@media(max-width:650px){.admin-code-batch>summary{display:grid;grid-template-columns:minmax(0,1fr) auto 14px;gap:9px;padding:14px 12px}.code-batch-title{grid-column:1;grid-row:1}.code-batch-stats{grid-column:1/-1;grid-row:2;justify-content:flex-start;max-width:none}.code-batch-count{grid-column:2;grid-row:1}.code-batch-chevron{grid-column:3;grid-row:1}.code-batch-body{padding:0 12px 12px}.code-batch-actions .small-btn{font-size:11px;padding:8px}.code-batch-body .activation-record-head{flex-wrap:wrap}}

/* Print checkout and fulfillment, shared with the existing pastel studio. */
.print-my-orders,.print-text-button{display:block;margin:18px auto 0;padding:6px;border:0;background:none;color:#80638f;font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.print-orders-dialog{width:min(760px,calc(100vw - 32px));max-height:90dvh;box-sizing:border-box;border:1px solid #e4d7ed;border-radius:24px;padding:28px;background:#fffdfa;color:var(--ink);box-shadow:0 30px 100px #32214333;overflow-y:auto}
.print-orders-dialog::backdrop{background:#241d3d77;backdrop-filter:blur(4px)}
.print-dialog-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.print-dialog-top h2{margin:6px 0 0;font-size:26px}.print-dialog-close{border:1px solid #e5dceb;border-radius:50%;width:34px;height:34px;background:#fff;font-size:24px;color:#776381;cursor:pointer;flex-shrink:0}.print-dialog-nav{display:flex;gap:10px;padding:20px 0;border-bottom:1px solid #eee5f1;margin-bottom:20px}
.print-checkout{text-align:center;padding:12px 10px}.print-checkout h3{font-size:24px;margin:22px 0 8px}.print-checkout-price{font-size:64px;color:#cf608b;font-weight:900}.print-checkout-price>span{font-size:28px}.print-checkout-price small{font-size:14px;color:#8c7b98;font-weight:400}.print-checkout p{font-size:13px;line-height:1.9;color:#7e6b89}.print-checkout-gift{display:grid;gap:9px;margin:20px 0;padding:20px;border:1px solid #e5d6ee;border-radius:16px;background:#f6f0fb;color:#75578b}.print-checkout-gift span{font-size:12px}.print-checkout>.primary-btn{margin:auto;min-width:240px;justify-content:center}.print-orders-dialog button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.print-order-row{display:flex;justify-content:space-between;gap:16px;width:100%;padding:18px;margin:0 0 10px;border:1px solid #e6dceb;border-radius:14px;background:#fff;text-align:left;color:var(--ink);cursor:pointer;font:inherit}.print-order-row:hover{border-color:#bb93d1;background:#fcf8ff}.print-order-row>span{display:grid;gap:7px;min-width:0}.print-order-row>span:last-child{text-align:right;flex-shrink:0}.print-order-row strong{font-size:14px}.print-order-row small{font-size:11px;color:#8b7895;overflow-wrap:anywhere}.print-order-row b{font-size:12px;color:#88629e}
.print-order-meta{display:grid;gap:10px}.print-order-meta>strong{display:flex;justify-content:space-between;gap:14px;font-size:17px}.print-order-meta>strong span{color:#c65e87;white-space:nowrap}.print-order-meta small{font-size:11px;color:#877892;overflow-wrap:anywhere}.print-status-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.print-reward-receipt{padding:13px 16px;border-radius:12px;background:#eef8f0;border:1px solid #cce2d1;font-size:12px;line-height:1.8;color:#497458;margin:18px 0}.print-detail-hint{font-size:13px;padding:14px;border-radius:12px;background:#fff5df;color:#906f34;line-height:1.8}
.print-payment-box{display:flex;align-items:center;flex-direction:column;padding:24px 16px;border:1px solid #e6d9ec;border-radius:16px;margin:20px 0;background:#fff}.print-payment-qr{display:block;max-width:100%;background:#fff;border:1px solid #eee;border-radius:8px;margin:0 auto 16px}.print-payment-box p,.print-payment-box small{font-size:12px;color:#8b7895;line-height:1.8;text-align:center}.print-payment-box .resource-actions{margin-top:16px}
.print-details-form{border-top:1px solid #e9e1ed;padding-top:20px;margin-top:24px}.print-details-form h3{font-size:17px;margin:0 0 14px}.print-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}.print-wide{grid-column:1/-1}.print-details-form label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#82708c}.print-details-form input,.print-details-form select,.print-details-form textarea,.wechat-import-card input,.wechat-import-card textarea{box-sizing:border-box;width:100%;border:1px solid #ded3e4;border-radius:9px;padding:10px 12px;font:inherit;background:#fff;color:var(--ink);min-width:0}.print-details-form>form{display:grid;gap:12px;margin:16px 0 20px}.print-details-form>form>button{justify-self:start}.print-address-summary,.print-shipping-summary,.print-file-summary{padding:15px 0;border-bottom:1px dashed #e4daea;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.print-address-summary p,.print-shipping-summary p{margin:6px 0;color:#81728c}.print-file-summary{display:grid;gap:8px}.print-file-summary>span{font-size:12px;color:#81728c}.print-file-summary>a{justify-self:start;text-decoration:none}.print-order-note{white-space:pre-wrap;font-size:12px;color:#81728c;overflow-wrap:anywhere}.print-timeline{padding:18px 0;font-size:12px;color:#82708c}.print-timeline summary{cursor:pointer}.print-timeline p{display:flex;gap:15px;line-height:1.8}.print-timeline time{flex-shrink:0;color:#aaa0b1}.print-timeline span{overflow-wrap:anywhere}.admin-print-detail{border:1px solid #d9c8e5;border-radius:18px;padding:22px;margin-top:25px;background:#fffdf9}.admin-print-detail>.resource-heading h3{margin:0}
.print-payment-settings{margin-bottom:22px}.print-payment-settings>summary{cursor:pointer}.print-payment-settings>summary>span{font-size:12px;color:#8a729d;margin-left:12px}.wechat-import-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:18px 0}.wechat-import-card{padding:16px;border:1px solid #e5d9ec;border-radius:12px;background:#fff;min-width:0}.wechat-import-card>div{display:flex;gap:8px;justify-content:space-between;align-items:center;font-size:12px}.wechat-import-card p{font-size:11px;line-height:1.8;color:#8b7895}.wechat-import-card textarea{font-family:monospace;font-size:11px;resize:vertical;min-height:90px}.wechat-file-picker{display:grid;gap:8px;font-size:11px;color:#8b7895;margin:10px 0}.wechat-enable{display:flex;align-items:center;gap:10px;font-size:12px;color:#6f597e;margin:18px 0}.wechat-enable input{width:auto}#wechatSettingsBody>.compact-help{line-height:1.9}
@media(max-width:640px){.print-orders-dialog{padding:20px;width:calc(100vw - 16px);max-height:94dvh;border-radius:18px}.print-fields,.wechat-import-grid{grid-template-columns:1fr}.print-order-row{padding:14px;gap:8px}.print-order-row strong{font-size:12px}.print-order-row small{font-size:10px}.print-dialog-top h2{font-size:23px}.print-order-meta>strong{font-size:14px}.print-timeline p{display:grid;gap:2px}.admin-print-detail{padding:14px}.print-payment-box .resource-actions{flex-wrap:wrap;justify-content:center}}
.admin-card label.wechat-enable{display:flex;flex-direction:row;align-items:center;gap:10px}.admin-card label.wechat-enable>input{width:16px;height:16px;margin:0;flex-shrink:0}.admin-card label.wechat-enable>span{margin:0;line-height:1.8}

.admin-print-price-form{padding:18px;margin-bottom:22px;border:1px solid #e5d9ec;border-radius:14px;background:#fffdf9}.admin-print-price-form h4{margin:0 0 8px}.admin-print-price-controls{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-top:14px}.admin-print-price-controls label{max-width:240px;flex:1;min-width:160px}.admin-print-price-controls button{margin-bottom:2px}

/* Align the order filters independently from the other admin forms. */
.admin-print-filters{display:grid;grid-template-columns:minmax(145px,180px) minmax(0,1fr) auto;align-items:end;gap:12px;margin:20px 0}
.admin-card .admin-print-filters label{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0}
.admin-card .admin-print-filters label>span{font-size:12px;line-height:18px;margin:0}
.admin-card .admin-print-filters input,.admin-card .admin-print-filters select{display:block;width:100%;height:44px;min-height:44px;margin:0;padding:10px 12px;font:inherit;font-size:13px;line-height:22px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink)}
.admin-print-filters>button{height:44px;margin:0;white-space:nowrap}
@media(max-width:650px){.admin-print-filters{grid-template-columns:1fr}.admin-print-filters>button{width:100%}}

/* Equally sized purchase options keep all channels easy to compare. */
.print-purchase-options{display:grid;gap:9px}
.print-purchase-option{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:65px;padding:11px 12px;border:1px solid;border-radius:13px;text-align:left;font:inherit;cursor:pointer;transition:background .15s,border-color .15s}
.print-channel-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;font-size:16px;font-weight:900;background:#ffffffb3}
.print-channel-copy{display:grid;gap:4px;min-width:0}.print-channel-copy strong{font-size:13px;line-height:1.5}.print-channel-copy small{font-size:10px;line-height:1.5;font-weight:400}
.print-channel-arrow{font-size:20px}.print-channel-wechat{border-color:#cce5d9;background:#f0faf4;color:#39795a}.print-channel-wechat:hover{border-color:#8dbda3;background:#e7f6ed}
.print-channel-mini{border-color:#dfd3ef;background:#f7f1fd;color:#8260a2}.print-channel-mini:hover{border-color:#b99bd5;background:#f0e6fa}
.print-channel-alipay{border-color:#d9e7f1;background:#f4f8fb;color:#6a859a;cursor:not-allowed}.print-channel-soon{font-size:9px;white-space:nowrap;padding:4px 5px;border-radius:6px;background:#e4edf5;color:#55788f}
.print-purchase-option:focus-visible,.print-top-promo:focus-visible,.print-promotion-continue:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.print-order-actions{padding-top:18px}.print-order-gift{font-size:10px}.print-order-gift small{line-height:1.8}.print-order-gift>span:last-child{min-width:0}
.print-invoice-note{gap:9px;padding:12px}.print-invoice-note>svg{width:27px;height:32px}.print-invoice-note strong{font-size:16px}.print-invoice-note>div>span{font-size:9px}
.print-invoice-note .print-invoice-available{display:inline-block;margin-top:6px;padding:3px 8px;border-radius:6px;background:#dff1e6;color:#39795a;font-size:11px;font-weight:800}.print-invoice-badge{display:inline-block;padding:5px 8px;border:1px solid #d5c4e4;border-radius:8px;background:#f7f0fc;color:#87649d;font-size:11px;font-weight:800}
.print-selected-poster{padding:18px;margin:0 0 22px;border:1px solid #d8c2e8;border-radius:16px;background:#f8f0ff}.print-selected-label{font-size:11px;font-weight:800;color:#8c67a0}.print-selected-poster h3{margin:9px 0;font-size:18px;line-height:1.5;overflow-wrap:anywhere}.print-selected-poster p{font-size:12px;line-height:1.8;color:#8a7594;margin:0 0 14px}.print-selected-actions{display:flex;flex-wrap:wrap;gap:10px}.print-selected-actions .small-btn{font-size:12px;line-height:1.7;text-align:center}.print-selected-actions a{text-decoration:none}
.print-checkout-selection{display:grid;gap:8px;padding:14px 16px;border:1px solid #e4d5ee;border-radius:12px;background:#fbf5ff;text-align:left}.print-checkout-selection>span,.print-checkout-selection>small{font-size:11px;color:#8a7594;line-height:1.7}.print-checkout-selection>strong{font-size:14px;color:#7b5a91;overflow-wrap:anywhere}
@media(max-width:480px){.print-selected-poster{padding:15px}.print-selected-actions>*{width:100%}.print-selected-poster h3{font-size:16px}}

/* A cheerful print-shop sticker above the workspace, with size and shipping up front. */
.print-top-promo{position:relative;isolation:isolate;display:grid;grid-template-columns:136px minmax(0,1fr) auto auto;align-items:center;gap:22px;max-width:1148px;margin:16px auto 0;padding:22px 26px;border:2px solid #f2cddd;border-radius:28px;background:radial-gradient(ellipse at 6% 0,#fff6d8,transparent 48%),linear-gradient(110deg,#fff1f3,#ffe9f2 57%,#f1e9ff);color:var(--ink);text-decoration:none;box-shadow:0 5px 0 #eddaea}
.print-top-promo:before{content:'';position:absolute;inset:6px;border:1px dashed #fffef5;border-radius:21px;pointer-events:none;z-index:-1}
.print-top-art{display:grid;justify-items:center;gap:3px;padding:6px 4px 8px;border:2px solid #fff;border-radius:22px;background:#fffdf6;box-shadow:3px 4px 0 #eccfe17a;transform:rotate(-5deg)}
.print-top-art img{display:block;width:100%;height:70px;object-fit:contain}.print-top-art>span{font-size:10px;font-weight:800;letter-spacing:.5px;color:#b07b92}
.print-top-copy{display:grid;gap:9px;min-width:0}.print-top-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:11px;font-weight:800;color:#b67593}.print-top-kicker>span{font-size:17px;color:#de82a5}.print-top-kicker>b{margin-left:3px;padding:4px 8px;border:1px solid #dccbf0;border-radius:8px;background:#f5edff;color:#8565a2;font-size:11px;transform:rotate(-3deg)}
.print-top-copy>strong{font-size:23px;font-weight:900;line-height:1.5;letter-spacing:-.6px;color:#765774}.print-top-copy em{font-style:normal;color:#d15c90;white-space:nowrap}.print-top-gift{font-size:11px;color:#a47b93;line-height:1.7}.print-top-gift b{color:#c45e8b;font-weight:800}
.print-top-kicker>b.print-top-invoice{border-color:#e2d4ad;background:#fff9de;color:#a08147;transform:rotate(2deg)}
.print-top-deal{display:grid;justify-items:center;gap:7px;padding:13px 17px;border:2px solid #fff8ed;border-radius:20px;background:#fffdf5;box-shadow:3px 4px 0 #efd6df80;transform:rotate(2deg)}
.print-top-price{display:flex;align-items:baseline;gap:3px;color:#d4588a;font-weight:900;white-space:nowrap}.print-top-price>span{font-size:20px}.print-top-price strong{font-size:44px;line-height:1;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.print-top-price>b{align-self:center;padding:5px 7px;margin-left:6px;border-radius:9px;background:#ffe3ed;color:#c25181;font-size:15px;line-height:1.2;transform:rotate(-5deg)}
.print-top-size{font-size:10px;color:#b28691;line-height:1.6;white-space:nowrap}.print-top-deal.is-long .print-top-price strong{font-size:30px;letter-spacing:-1px}
.print-top-action{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 17px;border:2px solid #fff1f7;border-radius:25px;background:#df83ac;box-shadow:0 4px 0 #c96c95;color:#fff;font-size:13px;font-weight:900;white-space:nowrap}.print-top-action>span{font-size:19px;line-height:1}.print-top-promo:hover .print-top-action{background:#d96e9f;box-shadow:0 4px 0 #b85d87}
@media(max-width:1200px){.print-top-promo{margin-left:26px;margin-right:26px;gap:18px;grid-template-columns:112px minmax(0,1fr) auto auto;padding:20px}.print-top-copy>strong{font-size:21px}.print-top-art img{height:62px}.print-top-deal{padding:12px}.print-top-price strong{font-size:38px}.print-top-action{padding:12px 14px}}
@media(max-width:1000px){.print-top-promo{grid-template-columns:110px minmax(0,1fr) auto;gap:12px 20px}.print-top-art{grid-row:1/3}.print-top-copy{grid-row:1/3}.print-top-action{grid-column:3;padding:9px 14px}.print-top-copy>strong{font-size:23px}.print-top-price strong{font-size:36px}}
@media(max-width:650px){.print-top-promo{grid-template-columns:78px minmax(0,1fr);gap:14px 13px;margin:12px 16px 0;padding:18px 16px;border-radius:24px}.print-top-art{grid-row:auto;padding:3px 2px 6px;border-radius:18px}.print-top-art img{height:45px}.print-top-art>span{font-size:7px;letter-spacing:0}.print-top-copy{grid-row:auto;gap:7px}.print-top-kicker{gap:3px;font-size:9px}.print-top-kicker>b{padding:3px 5px;font-size:9px;margin:0}.print-top-kicker>span{font-size:13px}.print-top-copy>strong{font-size:18px;line-height:1.45;letter-spacing:-.4px}.print-top-gift{font-size:9px}.print-top-deal{grid-column:1/3;grid-row:2;justify-self:start;max-width:calc(100% - 105px);padding:10px 12px;gap:5px;border-radius:16px}.print-top-price strong{font-size:32px}.print-top-price>span{font-size:16px}.print-top-price>b{font-size:12px;padding:4px 5px;margin-left:3px}.print-top-size{font-size:8px}.print-top-action{grid-column:1/3;grid-row:2;justify-self:end;padding:11px 12px;font-size:12px;gap:6px;max-width:100px}.print-top-deal.is-long .print-top-price strong{font-size:23px}}
@media(max-width:360px){.print-top-promo{padding:16px 12px;gap:12px 10px;grid-template-columns:64px minmax(0,1fr)}.print-top-copy>strong{font-size:16px}.print-top-kicker{font-size:8px}.print-top-kicker>b{font-size:8px}.print-top-art img{height:39px}.print-top-art>span{font-size:6px}.print-top-deal{padding:9px;max-width:calc(100% - 94px)}.print-top-price strong{font-size:28px}.print-top-price>b{font-size:11px;margin-left:1px}.print-top-size{font-size:7px}.print-top-action{font-size:11px;padding:10px;max-width:90px}.print-top-deal.is-long .print-top-price strong{font-size:20px}}
@media(max-width:480px){.print-channel-copy strong{font-size:12px}.print-purchase-option{padding:10px;gap:8px}.print-channel-copy small{font-size:9px}}

/* Optional print promotion before a completed poster's first view/download. */
.print-promotion-dialog{position:fixed;width:min(450px,calc(100vw - 24px));max-height:calc(100dvh - 32px);margin:auto;padding:24px;border:1px solid #e5d7ec;border-radius:24px;background:radial-gradient(ellipse at 0 0,#ffecf4,transparent 55%),#fffdfa;color:var(--ink);box-shadow:0 30px 100px #32214333;overflow-y:auto;overscroll-behavior:contain}
.print-promotion-dialog::backdrop{background:#241d3d77;backdrop-filter:blur(4px)}
.print-promotion-close{position:absolute;right:14px;top:14px}.print-promotion-dialog>.eyebrow{font-size:10px;color:#a87494;letter-spacing:1px}
.print-promotion-art{display:block;width:190px;height:96px;object-fit:contain;margin:4px auto 0}
.print-promotion-dialog h2{font-size:22px;line-height:1.4;letter-spacing:-.5px;text-align:center;margin:6px 0 8px}
.print-promotion-dialog>p{font-size:12px;line-height:1.6;text-align:center;color:#8a7594;margin:0 0 15px}
.print-promotion-offer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:14px 0;margin-bottom:14px;border-top:1px dashed #e5d7e9;border-bottom:1px dashed #e5d7e9}
.print-promotion-price{display:flex;align-items:baseline;gap:3px;color:#ce638e;white-space:nowrap;font-size:18px;font-weight:800}.print-promotion-price strong{font-size:34px;line-height:1;letter-spacing:-1px;font-variant-numeric:tabular-nums}.print-promotion-price small{font-size:11px;font-weight:400;color:#8a7594;margin-left:3px}
.print-promotion-offer>span:last-child{font-size:11px;line-height:1.8;color:#977199}.print-promotion-offer b{font-weight:800}
.print-promotion-continue{display:block;width:100%;min-height:42px;padding:10px 14px;margin-top:18px;border:1px solid #e4d9ec;border-radius:11px;background:#fff;color:#796286;font:inherit;font-size:12px;cursor:pointer}.print-promotion-continue:hover{background:#f8f3fb;border-color:#cbb6d8}
@media(max-width:480px){.print-promotion-dialog{padding:20px 18px;border-radius:20px}.print-promotion-dialog h2{font-size:19px}.print-promotion-art{height:82px;width:170px}.print-promotion-offer{padding:12px 0}.print-promotion-price strong{font-size:30px}.print-promotion-offer>span:last-child{font-size:10px}}
@media(prefers-reduced-motion:reduce){.print-purchase-option{transition:none}}
