@charset "UTF-8";
:root{--bg:#17191c;--surface:#202327;--surface-raised:#282c31;--line:#383d43;--muted:#a6acb6;--text:#f5f2ed;--coral:#ff8172;--coral-dark:#e96658;--mint:#b4d7c5;--radius:22px;--font:"PingFang SC","Microsoft YaHei UI","Microsoft YaHei",sans-serif;--mono:"Cascadia Code","SFMono-Regular",Consolas,monospace}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.6}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button,a{touch-action:manipulation}a{color:var(--coral);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.35;font-weight:650;letter-spacing:-.035em}h1{font-size:clamp(32px,4.6vw,56px);max-width:780px}h2{font-size:25px}h3{font-size:18px}p{margin-bottom:12px}small{font-size:12px}button:focus-visible,a:focus-visible{outline:3px solid var(--coral);outline-offset:4px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--coral);outline-offset:2px}input,textarea,select{width:100%;color:var(--text);background:#191c20;border:1px solid #48505a;border-radius:12px;padding:13px 14px;min-height:48px}textarea{resize:vertical;line-height:1.8;min-height:145px;font-family:var(--mono);font-size:14px;overflow-wrap:anywhere}input::placeholder,textarea::placeholder{color:#8b939f}select{appearance:auto}label,.field-label{display:block;font-size:14px;font-weight:600;margin-bottom:9px}label small{font-weight:400;color:var(--muted);margin-left:8px}fieldset{border:0;margin:0;padding:0}legend{margin-bottom:10px}.field{margin-bottom:21px}.hint{font-size:13px;color:var(--muted);margin:8px 0 0}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:13px;overflow-wrap:anywhere}.eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--coral);margin-bottom:15px;text-transform:uppercase}.skip-link{position:fixed;left:20px;top:-60px;z-index:100;background:var(--text);color:var(--bg);padding:10px}.skip-link:focus{top:10px}.shell{max-width:1240px;margin:auto;padding:0 38px 60px}.header{height:99px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:inline-flex;align-items:center;gap:12px;color:var(--text);font-size:23px;font-weight:700;letter-spacing:.04em;text-decoration:none!important}.brand-mark{width:37px;height:37px;background:var(--coral);color:var(--bg);border-radius:11px;font-size:30px;line-height:34px;display:inline-grid;place-items:center;font-weight:500}.brand small{font-size:11px;font-weight:400;letter-spacing:.12em;color:var(--muted);margin-left:8px}.header-right{display:flex;align-items:center;gap:17px}.balance-pill{border:1px solid #4a423f;background:#272321;padding:7px 13px;border-radius:30px;font-size:12px;white-space:nowrap}.balance-pill strong{font-family:var(--mono);color:var(--coral);font-size:17px;margin-right:5px}.account-name{color:var(--muted);font-size:13px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-button{background:none;border:0;color:var(--muted);padding:8px 0;font-size:13px}.text-button:hover{color:var(--text)}.nav{display:flex;gap:29px;align-items:center;height:69px;border-bottom:1px solid var(--line);margin-bottom:40px}.nav button{height:100%;border:0;border-bottom:2px solid transparent;color:var(--muted);background:none;padding:0 3px;font-size:14px;font-weight:600}.nav button.active{color:var(--coral);border-bottom-color:var(--coral)}.nav .nav-icon{font-size:17px;margin-right:7px}.nav-spacer{flex:1}.nav-note{font-size:11px;color:var(--muted);letter-spacing:.06em}.hero{display:flex;justify-content:space-between;gap:25px;margin-bottom:36px;align-items:flex-end}.hero h1{margin:0 0 15px}.hero p{color:var(--muted);font-size:15px;margin:0}.hero p strong{color:var(--text);font-weight:500}.free-stamp{flex:none;width:115px;height:115px;border:1px solid #45534c;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(9deg);color:var(--mint)}.free-stamp b{font-size:24px;font-family:Georgia,serif;letter-spacing:-.02em}.free-stamp span{font-size:11px;letter-spacing:.08em}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px}.panel-title{display:flex;gap:15px;justify-content:space-between;align-items:center;margin-bottom:23px}.panel-title h2,.panel-title h3{margin:0}.step{font-family:var(--mono);font-size:12px;color:var(--muted)}.fields-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.position-control{display:flex;gap:9px}.position-control label{margin:0;flex:1;text-align:center;cursor:pointer}.position-control input{position:absolute;width:1px;height:1px;opacity:0;min-height:0}.position-control span{display:block;border:1px solid #454d57;border-radius:11px;background:#191c20;padding:9px 0;font-family:var(--mono)}.position-control input:checked+span{border-color:var(--coral);background:#3a2928;color:#ff9b8f}.position-control input:focus-visible+span{outline:2px solid var(--coral);outline-offset:3px}.summary-panel{background:#e7e0d4;color:#252629;border-color:#e7e0d4;position:sticky;top:20px;overflow:hidden}.summary-panel .eyebrow{color:#656258}.summary-panel h3{font-size:17px}.price{display:flex;align-items:baseline;gap:9px;margin:16px 0 24px}.price strong{font-size:66px;font-weight:500;font-family:Georgia,"Times New Roman",serif;line-height:1}.price span{font-size:13px;color:#6a655d}.summary-line{display:flex;justify-content:space-between;font-size:13px;padding:10px 0;border-bottom:1px solid #c8c2b8}.summary-line:last-of-type{margin-bottom:23px}.summary-line b{font-family:var(--mono);font-size:13px}.summary-panel .hint{color:#6a655d;margin-top:13px;line-height:1.7;font-size:12px}.summary-panel .button.primary{background:#232628;color:var(--text);border-color:#232628}.summary-panel .button.primary:hover{background:#3b3e41}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border-radius:11px;border:1px solid var(--line);padding:11px 18px;font-size:14px;font-weight:600;text-align:center;text-decoration:none!important}.button.primary{background:var(--coral);color:#261c1b;border-color:var(--coral)}.button.primary:hover{background:#ff9a8e}.button.secondary{background:var(--surface-raised);color:var(--text);border-color:#49515b}.button.ghost{background:transparent;color:var(--text);border-color:#525a64}.button.small{min-height:37px;padding:7px 12px;font-size:12px}.button.full{width:100%}.button.danger{color:#ffada2;border-color:#80574f;background:#362524}.callout{display:flex;gap:12px;align-items:flex-start;background:#272d2a;border:1px solid #415347;border-radius:14px;padding:15px;margin-bottom:22px;font-size:13px;color:#c4ddce}.callout .symbol{font-size:20px}.callout p{margin:0}.callout b{display:block;color:#d9efdf;margin-bottom:4px}.subtle-divider{border:0;border-top:1px solid var(--line);margin:25px 0}.parse-box{border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.parse-box summary{cursor:pointer;color:var(--muted);font-size:13px;min-height:28px}.parse-box[open] summary{margin-bottom:18px;color:var(--text)}.parse-box textarea{font-family:var(--font);min-height:110px}.parse-result{font-size:13px;margin-top:16px;line-height:1.8}.parse-result ol{padding-left:23px}.parse-result li{margin-bottom:9px;overflow-wrap:anywhere}.error{color:#ffb2a7;font-size:13px;margin:12px 0;padding:12px 14px;background:#382828;border:1px solid #754740;border-radius:11px;white-space:pre-line;overflow-wrap:anywhere}.error:empty{display:none}.success-note{color:var(--mint);font-size:13px;line-height:1.8}.error-summary{margin-top:12px}.summary-panel .error{color:#78291e;background:#f7c9ba;border-color:#ba7862}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:27px}.section-heading h1{font-size:34px;margin:0 0 9px}.section-heading p{color:var(--muted);margin:0;font-size:14px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.link-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:22px;min-width:0}.link-card.inactive{opacity:.65}.qr-wrap{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;aspect-ratio:1;max-width:220px;margin:15px auto 23px;padding:14px}.qr-wrap canvas{display:block;width:100%;height:auto;image-rendering:pixelated}.card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.badge{border-radius:50px;padding:3px 9px;background:#2c3a32;color:var(--mint);font-size:11px;white-space:nowrap}.badge.off{background:#3b3030;color:#e0b3aa}.link-card h3{font-size:11px;color:var(--muted);font-weight:400;letter-spacing:.06em;margin-bottom:6px}.link-card .video-id{font:14px var(--mono);overflow-wrap:anywhere}.card-meta{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin:11px 0 18px}.card-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.card-url{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:12px 0 0}.empty-state{text-align:center;padding:65px 20px;background:var(--surface);border:1px dashed #4a515b;border-radius:20px;color:var(--muted)}.empty-state .empty-mark{font-size:35px;display:block;color:var(--coral);margin-bottom:16px}.empty-state h3{color:var(--text)}.ledger-total{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:25px}.wallet-amount{font-family:Georgia,serif;font-size:66px;line-height:1;margin:16px 0}.wallet-amount small{font-family:var(--font);font-size:14px;margin-left:10px;color:var(--muted)}.ledger-table{width:100%;border-collapse:collapse;font-size:13px}.table-scroll{overflow-x:auto}.ledger-table th{font-size:11px;text-align:left;color:var(--muted);font-weight:400;padding:15px 13px;border-bottom:1px solid var(--line);white-space:nowrap}.ledger-table td{padding:17px 13px;border-bottom:1px solid var(--line);vertical-align:top}.ledger-table td.note{max-width:280px;overflow-wrap:anywhere;min-width:125px}.delta{font-family:var(--mono);white-space:nowrap;font-weight:bold}.delta.positive{color:var(--mint)}.delta.negative{color:var(--coral)}.table-empty{color:var(--muted);text-align:center;padding:30px}.auth-layout{display:grid;grid-template-columns:1fr 430px;gap:80px;align-items:center;padding:62px 0 45px}.auth-pitch h1{font-size:56px;letter-spacing:-.06em;line-height:1.3;margin-bottom:22px}.auth-pitch h1 em{font-style:normal;color:var(--coral)}.auth-pitch p{color:var(--muted);max-width:390px;font-size:15px;line-height:1.9}.auth-points{margin-top:38px;display:flex;gap:26px}.auth-points strong{display:block;font-family:Georgia,serif;font-size:27px;color:var(--text)}.auth-points span{font-size:12px;color:var(--muted)}.auth-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:25px}.auth-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:0 0 13px;margin-right:24px;color:var(--muted);font-size:21px;font-weight:600}.auth-tabs button.active{color:var(--text);border-color:var(--coral)}.auth-help{color:var(--muted);font-size:12px;margin:15px 0 0}.footer{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);color:#959da8;font-size:11px;display:flex;justify-content:space-between;gap:15px}.boot{min-height:75vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted)}.boot .brand-mark{margin-bottom:15px}.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);background:#efeae1;border:1px solid white;color:#252629;padding:12px 22px;border-radius:12px;z-index:99;max-width:calc(100vw - 34px);width:max-content;box-shadow:0 8px 35px #0004;font-size:13px}.toast[hidden]{display:none}dialog{width:min(480px,calc(100vw - 30px));border:1px solid #5b514c;border-radius:22px;background:var(--surface);color:var(--text);padding:0;box-shadow:0 25px 80px #0009}dialog::backdrop{background:#0d0f12b8;backdrop-filter:blur(5px)}.confirm-content{padding:30px}.confirm-content h2{font-size:25px;margin-bottom:16px}.confirm-content>p{color:var(--muted);line-height:1.9}.confirm-detail{border-top:1px solid var(--line);padding-top:16px;margin:19px 0 24px;font-size:13px;white-space:pre-line;max-height:200px;overflow:auto;overflow-wrap:anywhere}.dialog-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:12px}.admin-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.admin-tabs button.active{border-color:var(--coral);color:var(--coral)}.search-row{display:flex;gap:10px;margin-bottom:24px}.search-row input{flex:1;min-width:0}.admin-user{display:grid;grid-template-columns:minmax(130px,1fr) 130px auto;gap:18px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.admin-user .name{font-size:16px;overflow-wrap:anywhere}.admin-user .balance{font-family:var(--mono)}.admin-user .balance small{font-family:var(--font);color:var(--muted)}.credit-form{margin-top:22px;padding:24px;border:1px solid #73604f;border-radius:15px;background:#2b2926}.credit-form h3{margin-bottom:6px}.credit-form p{color:var(--muted);font-size:12px;margin-bottom:22px}.landing{max-width:490px;margin:0 auto;padding:40px 23px;min-height:100vh;display:flex;flex-direction:column;justify-content:center;text-align:center}.landing>.brand{justify-content:center;margin-bottom:40px}.landing-card{padding:36px 24px;background:var(--surface);border:1px solid var(--line);border-radius:26px}.landing-icon{width:76px;height:76px;margin:0 auto 25px;background:var(--coral);color:var(--bg);border-radius:22px;font-size:54px;line-height:70px}.landing h1{font-size:29px;margin-bottom:13px}.landing-card>p{color:var(--muted);font-size:14px;line-height:1.9}.landing .button{margin:23px 0 15px;width:100%;min-height:53px}.landing .landing-free{font-size:12px;color:var(--mint)}.landing-help{text-align:left;margin-top:28px;color:var(--muted);font-size:12px;line-height:1.9}.landing-help strong{display:block;color:var(--text);margin-bottom:7px;font-weight:500}.landing-help p{margin-bottom:6px}.landing-footer{color:#8f97a1;font-size:11px;margin-top:24px}.landing .error{text-align:left}.landing #landing-open[aria-disabled=true]{pointer-events:none;opacity:.4}.result-banner{padding:22px 25px;border:1px solid #546d5c;background:#26332c;border-radius:18px;margin-bottom:27px;display:flex;justify-content:space-between;align-items:center;gap:20px}.result-banner h3{margin:0 0 6px;color:#d7eddd}.result-banner p{margin:0;font-size:13px;color:#b7cdbc}.cost-note{font-size:12px;color:var(--muted);text-align:right;margin-top:14px}.load-state{color:var(--muted);padding:50px 20px;text-align:center}.hidden{display:none!important}[hidden]{display:none!important}@media(min-width:761px){.hero,.workspace-grid,.section-heading,.auth-layout{animation:arrive .4s ease both}.workspace-grid{animation-delay:.05s}}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1020px){.shell{padding-left:25px;padding-right:25px}.workspace-grid{grid-template-columns:minmax(0,1fr) 260px;gap:19px}.panel{padding:23px}.list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-layout{gap:40px;grid-template-columns:1fr 390px}.auth-pitch h1{font-size:43px}.brand small{display:none}.nav-note{display:none}}@media(max-width:760px){body{font-size:14px}.shell{padding:0 18px 100px}.header{height:77px;gap:10px}.brand{font-size:22px;gap:9px}.brand-mark{width:32px;height:32px;border-radius:9px;font-size:27px;line-height:30px}.header-right{gap:12px}.account-name{display:none}.balance-pill{padding:5px 10px}.balance-pill strong{font-size:15px}.nav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:#202327f5;backdrop-filter:blur(14px);height:calc(66px + env(safe-area-inset-bottom));padding:0 10px env(safe-area-inset-bottom);margin:0;border-top:1px solid #454a52;border-bottom:0;gap:0;justify-content:space-around}.nav button{flex:1;height:60px;padding:7px 3px 3px;border:0;font-size:11px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px}.nav button.active{border-bottom:0}.nav .nav-icon{margin:0;font-size:22px;line-height:1.1}.nav-spacer{display:none}.hero{margin:30px 0 24px;gap:12px;align-items:center}.hero .eyebrow{font-size:10px;letter-spacing:.11em;margin-bottom:12px}.hero h1{font-size:31px;line-height:1.38;letter-spacing:-.05em;margin-bottom:12px}.hero p{font-size:12px;line-height:1.9}.free-stamp{width:78px;height:78px;align-self:flex-start;margin-top:29px}.free-stamp b{font-size:19px}.free-stamp span{font-size:9px;letter-spacing:0}.workspace-grid{display:flex;flex-direction:column;gap:18px}.workspace-grid>.panel{width:100%}.panel{padding:21px 18px;border-radius:18px}.panel-title{margin-bottom:22px}.panel-title h2{font-size:21px}.summary-panel{position:static;display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.summary-panel .eyebrow{grid-column:1/-1;margin-bottom:10px}.summary-panel h3{margin-bottom:10px}.price{grid-row:2 / 5;grid-column:1;display:block;margin:0}.price strong{font-size:59px;display:block;margin-bottom:10px}.price span{font-size:12px}.summary-line{grid-column:2;font-size:12px;padding:7px 0}.summary-line:last-of-type{margin-bottom:15px}.summary-panel .button,.summary-panel .hint,.summary-panel .error{grid-column:1/-1}.summary-panel h3{display:none}.fields-two{grid-template-columns:1fr;gap:0}.field{margin-bottom:22px}textarea{font-size:13px;min-height:148px}.hint{font-size:12px}.list-grid{gap:13px}.link-card{padding:15px 12px;border-radius:15px}.qr-wrap{padding:7px;margin:12px auto 16px;border-radius:6px}.link-card .video-id{font-size:11px}.card-meta{font-size:10px;flex-wrap:wrap;gap:2px;margin:9px 0 14px}.card-top small{font-size:10px}.badge{font-size:9px;padding:2px 6px}.card-actions{grid-template-columns:1fr;gap:7px}.card-actions .button{font-size:11px;min-height:35px;padding:6px}.card-url{font-size:10px}.section-heading{align-items:flex-start;flex-direction:column;margin-top:31px;gap:19px}.section-heading h1{font-size:29px}.section-heading p{font-size:12px}.section-heading .actions{width:100%}.section-heading .actions button{flex:1;font-size:12px}.result-banner{padding:18px;flex-direction:column;align-items:flex-start}.result-banner .actions{width:100%}.result-banner .button{flex:1}.footer{font-size:10px;line-height:1.7}.auth-layout{display:flex;flex-direction:column;gap:29px;padding:35px 0 15px;align-items:stretch}.auth-pitch h1{font-size:37px;line-height:1.35;letter-spacing:-.06em;margin-bottom:14px}.auth-pitch h1 br{display:none}.auth-pitch p{font-size:13px;max-width:none;margin-bottom:0}.auth-points{margin-top:22px;gap:32px}.auth-points strong{font-size:22px}.auth-points span{font-size:11px}.auth-panel{padding:25px 21px}.auth-tabs button{font-size:20px}.toast{bottom:calc(81px + env(safe-area-inset-bottom))}.ledger-table td{font-size:12px;padding:15px 10px}.ledger-table th{padding:13px 10px}.ledger-total{align-items:flex-start;flex-direction:column}.wallet-amount{font-size:57px}.admin-user{grid-template-columns:minmax(0,1fr) auto;gap:13px}.admin-user .balance{grid-column:2;grid-row:1}.admin-user .actions{grid-column:1/-1}.credit-form{padding:20px 15px}.admin-tabs button{flex:1;font-size:12px;padding:9px}.search-row{gap:8px}.search-row .button{font-size:12px;padding:10px 13px}.confirm-content{padding:26px 22px}.landing{padding:25px 20px}.landing>.brand{margin-bottom:29px}.cost-note{text-align:left;font-size:11px}.summary-panel .hint{margin-top:13px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
.tagline{font-size:12px}.short-textarea{min-height:90px}.full-span{grid-column:1/-1}.nowrap{white-space:nowrap}.wallet-callout{max-width:390px;margin:0}.record-note{margin-top:18px}#parse-submit{margin-top:13px}
/* Keep the generator close to its navigation after removing the introduction. */
@media(min-width:761px){.create-workspace{margin-top:-16px}}
@media(max-width:760px){.create-workspace{margin-top:20px}}

/* Keep the authentication form immediately below the brand. */
.auth-layout.auth-layout-simple{display:block;max-width:460px;margin:0 auto;padding:32px 0 16px}.auth-layout-simple .auth-panel{width:100%}@media(max-width:760px){.auth-layout.auth-layout-simple{padding-top:24px}}
/* App design system — light, mobile-first workspaces. */
:root{color-scheme:light;--bg:#f5f7fc;--surface:#fff;--surface-raised:#f0f5ff;--line:#dfe6f1;--muted:#7b8596;--text:#182237;--coral:#3478f6;--coral-dark:#2565dc;--mint:#159981;--radius:24px;--shadow:0 12px 28px -16px #466eaf30}
body{background:radial-gradient(ellipse at 90% 0,#eaf2ff80,transparent 42%),var(--bg);font-size:15px;line-height:1.65}
h1,h2,h3{font-weight:750;letter-spacing:-.025em}h2{font-size:23px}h1{font-size:32px}input,textarea,select{background:#f7f9fd;border-color:var(--line);border-radius:16px;padding:15px 17px;min-height:52px;font-size:15px}textarea{font-size:14px}input::placeholder,textarea::placeholder{color:#9aa5b6}label,.field-label{font-size:15px;font-weight:700}label small{font-size:12px}.shell{max-width:1176px;padding:0 32px 60px}.header{height:115px;border:0;gap:15px}.brand{gap:13px;font-size:25px;letter-spacing:0}.brand-mark{width:46px;height:46px;border-radius:15px;background:linear-gradient(135deg,#20bba2,#3478f6);color:#fff;font-size:25px;line-height:1;font-weight:750;box-shadow:0 12px 22px -9px #3284d96b}.brand small{display:block;font-size:12px;color:var(--muted);letter-spacing:0;margin:2px 0 0;font-weight:400}.header-right{gap:12px}.text-button{color:var(--coral);font-size:14px;font-weight:650;padding:10px 5px}.text-button:hover{color:#235bc0}.balance-pill{border:0;background:#e8f0ff;color:#5270a0;padding:8px 12px;font-size:12px}.balance-pill strong{font-family:inherit;color:var(--coral);font-size:18px}.account-name{color:var(--muted)}.nav{margin:0 0 28px;height:62px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow);border-radius:20px;padding:6px;gap:6px}.nav button,.nav>a{flex:1;height:100%;border:0;border-radius:14px;padding:10px;color:var(--muted);font-size:15px;font-weight:700;text-align:center;text-decoration:none;display:flex;align-items:center;justify-content:center}.nav button.active{color:var(--coral);background:#edf4ff;border:0}.nav button:hover{background:#f5f8fe}.panel{padding:28px;border-color:var(--line);box-shadow:var(--shadow);border-radius:var(--radius)}.panel-title{margin-bottom:23px}.workspace-grid{grid-template-columns:minmax(0,1fr) 310px;gap:24px}.create-workspace{margin:0}.position-control{gap:10px}.position-control span{background:#f7f9fd;border:1px solid var(--line);border-radius:14px;padding:12px;font-family:inherit;font-size:15px}.position-control input:checked+span{background:#3478f6;color:#fff;border-color:#3478f6;box-shadow:0 6px 12px #3478f622}.summary-panel{background:#fff;border-color:var(--line);color:var(--text)}.summary-panel .eyebrow{color:var(--muted);letter-spacing:.05em}.price strong,.wallet-amount{font-family:inherit;font-weight:750;letter-spacing:-.05em}.price strong{font-size:62px;color:var(--coral)}.price span,.summary-panel .hint{color:var(--muted)}.summary-line{border-color:var(--line);font-size:13px}.summary-line b{font-family:inherit}.button{border-radius:14px;min-height:48px;padding:12px 18px;font-size:14px}.button.primary,.summary-panel .button.primary{background:var(--coral);border-color:var(--coral);color:#fff;box-shadow:0 6px 14px #3478f61a}.button.primary:hover,.summary-panel .button.primary:hover{background:#2467e1;border-color:#2467e1}.button.secondary,.button.ghost{background:#fff;color:var(--coral);border-color:var(--line)}.button.secondary:hover,.button.ghost:hover{background:#eff5ff}.button.small{min-height:40px;padding:8px 13px;font-size:13px}.button.danger{background:#fff1f1;color:#c54851;border-color:#f2d8dc}.button:disabled{box-shadow:none;opacity:.45}.error,.summary-panel .error{background:#fff1ed;border-color:#f2cdc2;color:#b24a35;border-radius:14px}.success-note{color:#188f7c}.callout{background:#eef9f6;border-color:#d4ece5;color:#477c70}.callout b{color:#16866f}.section-heading{margin:0 0 24px}.section-heading h1{font-size:29px;margin-bottom:6px}.section-heading p{font-size:14px}.section-heading .eyebrow{display:none}.eyebrow{color:var(--muted)}.list-grid{gap:20px}.link-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.badge{background:#eaf8f3;color:#158b72;padding:5px 10px;font-size:11px;font-weight:600}.badge.off{background:#fff0ed;color:#b05843}.qr-wrap{background:#fff;border:1px solid #eef1f7;border-radius:18px}.empty-state{border:1px solid var(--line);background:#fff;box-shadow:var(--shadow);padding:50px 20px;border-radius:24px;grid-column:1/-1}.empty-state p{margin:0}.result-banner{background:#edf9f5;border-color:#d5eee3}.result-banner h3{color:#177b61}.result-banner p{color:#5a8475}.wallet-amount{color:var(--coral)}.auth-layout.auth-layout-simple{max-width:460px;padding-top:26px}.auth-panel{padding:32px}.auth-tabs{gap:26px;margin-bottom:28px}.auth-tabs button{margin:0;font-size:23px;padding-bottom:15px}.auth-tabs button.active{color:var(--coral);border-color:var(--coral)}.auth-help{line-height:1.9}.auth-panel .button{margin-top:8px}.footer{display:none}.toast{background:#1d2b45;color:#fff;border:0;box-shadow:0 8px 30px #26385830}.confirm-content{padding:30px}dialog{background:#fff;border:1px solid var(--line);box-shadow:0 24px 90px #263b6738;border-radius:24px}dialog::backdrop{background:#14233c60;backdrop-filter:blur(4px)}.confirm-detail{background:#f5f7fb;padding:16px;border:0;border-radius:14px}.admin-tabs button.active{color:var(--coral);background:#eaf2ff}.credit-form{background:#edf4ff;border:1px solid #cddffc;border-radius:24px;padding:24px;margin:0 0 20px}.search-row{background:transparent;margin-bottom:22px}.search-row input{background:#fff;box-shadow:var(--shadow);border-radius:18px;min-height:56px}.search-row .button{border-radius:18px}.admin-user{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px 14px;padding:22px;border:1px solid var(--line);border-radius:24px;background:#fff;margin-bottom:16px;box-shadow:var(--shadow)}.user-avatar{display:grid;place-items:center;width:48px;height:48px;background:#ecf8f4;color:#169b83;border-radius:17px;font-weight:750;font-size:21px}.user-info{min-width:0}.admin-user .name{font-size:17px;font-weight:750}.admin-user .balance{grid-column:3;grid-row:1;font-family:inherit;font-weight:700;color:var(--coral);font-size:20px}.admin-user .balance small{font-weight:400;font-size:11px}.admin-user .actions{grid-column:2/-1;grid-row:2}.user-detail{grid-column:1/-1;background:#f6f8fc;padding:11px 14px;border-radius:14px;font-size:12px;color:var(--muted)}.manage-mode .shell{max-width:960px}.dashboard-hero{background:linear-gradient(115deg,#1fb89c,#3478f6);border-radius:28px;padding:30px;color:#fff;box-shadow:0 18px 34px -18px #3478f666}.dashboard-hero>p{opacity:.85;font-size:16px;margin-bottom:8px}.hero-number{display:block;font-size:58px;line-height:1.25;font-weight:750;letter-spacing:-.04em}.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:26px}.hero-stats>div{background:#ffffff25;border:1px solid #ffffff24;border-radius:19px;padding:15px}.hero-stats span{display:block;font-size:13px;opacity:.9}.hero-stats b{display:block;font-size:26px;line-height:1.4;overflow-wrap:anywhere}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.stat-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow);min-width:0}.stat-card>span{color:var(--muted);font-size:14px}.stat-card>strong{display:block;font-size:37px;line-height:1.4;margin:8px 0;font-weight:750;overflow-wrap:anywhere}.stat-card>small{color:#159981;font-size:12px;font-weight:600}.status-card{display:flex;align-items:center;gap:15px;padding:20px 24px;border-radius:24px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}.status-card>span{color:var(--muted)}.status-card>strong{font-size:26px;color:var(--coral)}.status-card>button{margin-left:auto}.section-row{display:flex;align-items:center;justify-content:space-between;margin:28px 0 16px}.section-row h2{margin:0;font-size:21px}.ledger-list{display:flex;flex-direction:column;gap:16px}.ledger-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.record-icon{height:42px;display:grid;place-items:center;background:#edf5ff;color:var(--coral);border-radius:15px;font-size:23px;font-weight:650}.record-main{min-width:0}.record-main h3{margin:0;font-size:16px;overflow-wrap:anywhere}.record-main>.muted{font-size:12px}.record-detail{grid-column:1/-1;background:#f7f9fd;padding:13px 15px;border-radius:14px;font-size:13px;color:#6d7890;overflow-wrap:anywhere}.record-detail span{display:block;margin-top:4px;font-size:12px}.delta{font-family:inherit;font-size:21px}.delta.positive{color:#159981}.delta.negative{color:#3973c5}.update-time{text-align:center;margin-top:20px}.access-denied{margin-top:24px}.boot{color:var(--muted)}
@media(max-width:760px){body{font-size:14px}.shell,.manage-mode .shell{padding:0 16px 110px}.header{height:96px;gap:10px}.brand{font-size:21px;gap:10px}.brand-mark{width:41px;height:41px;border-radius:14px;font-size:23px}.brand small{font-size:11px}.header-right{gap:8px}.header-right .button.small{min-height:37px;padding:8px 12px;font-size:12px}.text-button{font-size:13px}.header .text-button{padding:8px}.balance-pill{padding:6px 9px}.nav{position:fixed;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom));height:64px;padding:6px;margin:0;z-index:30;border-radius:24px;border:1px solid #dae3f0;background:#fffffff5;box-shadow:0 12px 36px #243a6925;backdrop-filter:blur(16px);gap:4px}.nav button,.nav>a{height:50px;flex-direction:row;padding:6px 3px;font-size:15px;border-radius:18px}.nav button.active{background:#edf4ff}.panel{border-radius:24px;padding:23px 20px}.panel-title h2{font-size:22px}.workspace-grid{gap:18px}.create-workspace{margin:4px 0 0}.field{margin-bottom:22px}.hint{font-size:12px;line-height:1.8}label small{display:inline;font-size:11px;margin-left:5px}.short-textarea{min-height:98px}.position-control{gap:8px}.position-control span{padding:10px 0}.summary-panel{column-gap:15px}.summary-panel .eyebrow{margin-bottom:16px}.price strong{font-size:54px}.price span{font-size:12px}.summary-line{padding:8px 0}.summary-line b{font-size:13px}.summary-panel .button{margin-top:12px;min-height:48px}.auth-layout.auth-layout-simple{padding:14px 0 20px}.auth-panel{padding:27px 23px}.auth-tabs button{font-size:22px}.section-heading{margin:5px 0 22px;gap:12px}.section-heading h1{font-size:25px}.section-heading p{font-size:13px}.list-grid{grid-template-columns:1fr;gap:18px}.link-card{padding:22px}.qr-wrap{max-width:216px;padding:14px}.link-card .video-id{font-size:15px}.link-card h3{font-size:12px}.card-meta{font-size:12px;gap:8px;margin:12px 0 18px}.card-top small{font-size:13px}.badge{font-size:11px;padding:4px 10px}.card-actions{grid-template-columns:1fr 1fr;gap:10px}.card-actions .button{min-height:42px;font-size:13px}.card-url{font-size:11px}.wallet-amount{font-size:54px}.wallet-callout{max-width:none}.ledger-total{gap:16px}.dashboard-hero{padding:24px 20px;border-radius:26px}.dashboard-hero>p{font-size:14px}.hero-number{font-size:49px}.hero-stats{gap:8px;margin-top:22px}.hero-stats>div{padding:12px 10px;border-radius:16px}.hero-stats span{font-size:11px}.hero-stats b{font-size:23px}.stats-grid{gap:12px;margin:14px 0}.stat-card{padding:19px 16px;border-radius:22px}.stat-card>span{font-size:13px}.stat-card>strong{font-size:32px}.stat-card>small{font-size:11px}.status-card{padding:16px 20px;border-radius:22px}.section-row{margin:25px 0 15px}.section-row h2{font-size:19px}.admin-user{grid-template-columns:43px minmax(0,1fr) auto;padding:19px 16px;gap:12px 10px;border-radius:23px}.user-avatar{width:43px;height:43px;font-size:19px;border-radius:15px}.admin-user .name{font-size:16px}.admin-user .balance{font-size:21px;grid-column:3;grid-row:1}.admin-user .balance small{display:block;font-size:10px;text-align:right}.admin-user .actions{grid-column:1/-1;grid-row:2;gap:8px}.admin-user .actions button{flex:1}.user-info small{font-size:11px}.user-detail{font-size:11px}.ledger-card{padding:19px 16px;border-radius:23px;grid-template-columns:38px minmax(0,1fr) auto;gap:10px}.record-icon{height:38px;border-radius:13px}.record-main h3{font-size:15px}.record-main>.muted{font-size:11px}.delta{font-size:21px}.record-detail{font-size:12px;padding:12px}.credit-form{padding:22px 17px}.search-row input{font-size:14px}.toast{bottom:calc(94px + env(safe-area-inset-bottom))}.confirm-content{padding:25px 22px}.dialog-actions{grid-template-columns:1fr;gap:10px}.dialog-actions .button.primary{grid-row:1}.footer{display:none}}
@media(min-width:761px){.manage-mode .header{height:115px}.manage-mode .nav{margin-bottom:30px}.manage-mode .ledger-card{padding:23px}.stats-grid{gap:20px}.dashboard-hero{padding:32px}.hero-stats>div{padding:18px 20px}.hero-number{font-size:64px}}

/* Share-link extraction is visible above the video-ID fields. */
.share-parser{margin:0 0 25px;padding:18px;background:#f4f8ff;border:1px solid #dce8fc;border-radius:18px}.share-parser summary{font-weight:700;font-size:15px;color:#2866ce;cursor:pointer}.share-parser[open] summary{margin-bottom:17px}.share-parser label{font-weight:500;font-size:13px}.share-parser textarea{min-height:94px;background:#fff;font-family:var(--font);font-size:13px}.parse-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;flex-wrap:wrap}.parse-toolbar .hint{margin:0;font-size:11px}.parse-success{margin-top:16px;border-top:1px solid var(--line);padding-top:15px}.parse-success strong{font-size:13px;color:#14866c}.parse-success pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.9 var(--mono);background:#fff;border:1px solid var(--line);padding:12px;border-radius:12px;max-height:180px;overflow:auto}.parse-failures{font-size:12px;color:#a24435;overflow-wrap:anywhere;margin-top:14px}.parse-failures ul{padding-left:18px;margin-bottom:0}@media(max-width:760px){.share-parser{padding:15px}.parse-toolbar{align-items:flex-start}.parse-toolbar .button{width:100%}.parse-success .actions .button{flex:1}}

.parse-id-list { display: grid; gap: 10px; margin: 14px 0; }
.parse-id-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px; border-radius: 12px; background: #fff; }
.parse-id-row code { flex: 1 1 180px; overflow-wrap: anywhere; font-size: 14px; }
.parse-id-row select { flex: 0 1 140px; width: 140px; min-width: 0; padding: 9px; font-size: 14px; }

/* Mobile generator: clear hierarchy, generous touch targets and separated actions. */
.input-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
.input-heading label { margin:0; min-width:0; }
.input-heading label small { display:block; margin:3px 0 0; }
.clear-input { flex:0 0 auto; border:0; border-radius:10px; padding:8px 12px; min-height:44px; color:#567396; background:#edf3fb; font-size:13px; }
.clear-input:hover { background:#e0eaf8; }
.parse-assign { width:100%; min-height:48px; margin:4px 0 12px; }
.parse-success .parse-shortcuts { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0 0 14px; }
.parse-shortcuts .button { min-width:0; min-height:46px; padding:10px 8px; white-space:normal; }
.parse-id-row { padding:14px; gap:12px; }
.parse-id-row code { font-family:var(--mono); line-height:1.6; }
.parse-success > .hint { line-height:1.7; }
@media(max-width:760px) {
 body:not(.share-page) .shell { width:100%; padding-left:12px; padding-right:12px; }
 .create-workspace > .panel { padding:18px 14px; border-radius:22px; min-width:0; }
 .create-workspace .panel-title { margin-bottom:18px; }
 .create-workspace .share-parser { padding:14px 12px; border-radius:16px; margin-bottom:26px; }
 .share-parser[open] summary { margin-bottom:14px; }
 .share-parser textarea { min-height:116px; font-size:15px; line-height:1.65; padding:12px; }
 .share-parser .parse-toolbar { gap:12px; margin-top:12px; }
 .parse-toolbar .hint { font-size:12px; }
 .parse-toolbar .button { min-height:46px; }
 .parse-id-list { gap:12px; margin:16px 0; }
 .parse-id-row { display:grid; grid-template-columns:minmax(0,1fr); padding:12px; }
 .parse-id-row code { font-size:15px; }
 .parse-id-row select { width:100%; min-height:44px; font-size:14px; padding:10px 12px; }
 .parse-success .parse-shortcuts .button { font-size:13px; }
 .create-workspace .input-heading label { font-size:14px; }
 .create-workspace .input-heading small { font-size:11px; line-height:1.6; }
 .create-workspace #targets,.create-workspace #fillers { font-size:15px; padding:13px; line-height:1.75; }
 .create-workspace .field { margin-bottom:26px; }
 .create-workspace { padding-bottom:20px; }
 .create-workspace .summary-panel { display:block; }
 .create-workspace .summary-panel .price { margin:16px 0; }
}
@media(max-width:350px) { .parse-success .parse-shortcuts { grid-template-columns:1fr; gap:10px; } }

.library-heading { align-items:center; gap:16px; }
.library-heading h1 { margin-bottom:8px; }
.library-heading p { margin:0; }
.library-heading > .button { flex-shrink:0; }
.batch-panel { max-width:640px; margin:0 0 24px; padding:24px; background:linear-gradient(125deg,#f0faf8,#edf4ff); }
.batch-label { font-size:13px; font-weight:700; color:#228776; margin-bottom:8px; }
.batch-panel h2 { margin-bottom:8px; }
.batch-panel p { color:var(--muted); font-size:13px; }
.batch-panel .batch-copy { display:block; margin:14px auto 0; min-height:36px; }
.library-tabs { display:flex; padding:5px; gap:6px; border:1px solid var(--line); border-radius:16px; background:white; margin-bottom:20px; max-width:640px; }
.library-tabs button { flex:1; border:0; border-radius:12px; background:transparent; color:var(--muted); min-height:44px; padding:9px; font-weight:600; }
.library-tabs button.active { color:var(--coral); background:#edf4ff; }
@media(max-width:760px) {
 .library-heading { display:flex; align-items:flex-start; margin-bottom:20px; }
 .library-heading h1 { font-size:23px; }
 .library-heading p { font-size:12px; line-height:1.7; }
 .library-heading > .button { padding:10px; font-size:12px; min-height:44px; }
 .batch-panel { padding:22px 18px; margin-bottom:18px; }
 .batch-panel h2 { font-size:27px; }
 .batch-panel .button { min-height:50px; font-size:15px; }
 .library-tabs button { font-size:13px; }
}

@media(max-width:760px){.admin-user .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-user .actions [data-user-delete]{grid-column:1/-1}}

/* Compact mobile management layout; keep normal text and usable tap targets. */
@media (max-width:760px) {
 .manage-mode .shell { padding:0 12px calc(88px + env(safe-area-inset-bottom)); }
 .manage-mode .header { height:76px; gap:8px; }
 .manage-mode .brand { font-size:18px; gap:9px; }
 .manage-mode .brand-mark { width:34px; height:34px; border-radius:11px; font-size:21px; }
 .manage-mode .brand small { font-size:11px; margin-top:2px; }
 .manage-mode .header-right { gap:4px; }
 .manage-mode .header-right .button.small { min-height:40px; padding:8px 11px; }
 .manage-mode .header-right .text-button { min-height:40px; }
 .manage-mode .section-heading { margin:2px 0 16px; gap:8px; }
 .manage-mode .section-heading h1 { font-size:21px; line-height:1.35; }
 .manage-mode .section-heading p { font-size:12px; margin-top:5px; }
 .manage-mode .dashboard-hero { padding:18px 16px; border-radius:20px; }
 .manage-mode .dashboard-hero > p { font-size:13px; }
 .manage-mode .hero-number { font-size:36px; }
 .manage-mode .hero-stats { gap:8px; margin-top:14px; }
 .manage-mode .hero-stats > div { padding:10px 9px; border-radius:13px; }
 .manage-mode .hero-stats span { font-size:11px; }
 .manage-mode .hero-stats b { font-size:20px; }
 .manage-mode .stats-grid { gap:10px; margin:12px 0; }
 .manage-mode .stat-card { padding:14px 13px; border-radius:18px; }
 .manage-mode .stat-card > span { font-size:12px; }
 .manage-mode .stat-card strong { font-size:26px; margin:5px 0; overflow-wrap:anywhere; }
 .manage-mode .stat-card small { font-size:11px; }
 .manage-mode .status-card { padding:10px 14px; border-radius:18px; gap:10px; }
 .manage-mode .status-card > strong { font-size:25px; }
 .manage-mode .status-card .text-button { min-height:44px; }
 .manage-mode .section-row { margin:20px 0 10px; }
 .manage-mode .section-row h2 { font-size:17px; }
 .manage-mode .section-row .text-button { min-height:44px; }
 .manage-mode .panel { padding:18px 16px; border-radius:20px; }
 .manage-mode .admin-user { padding:14px; border-radius:18px; gap:10px; grid-template-columns:36px minmax(0,1fr) auto; }
 .manage-mode .user-avatar { width:36px; height:36px; font-size:17px; border-radius:12px; }
 .manage-mode .user-info .name { font-size:15px; }
 .manage-mode .balance { font-size:20px; }
 .manage-mode .admin-user .actions { gap:8px; }
 .manage-mode .admin-user .actions .button { min-height:44px; }
 .manage-mode .ledger-card { padding:14px; border-radius:18px; grid-template-columns:34px minmax(0,1fr) auto; gap:9px; }
 .manage-mode .record-icon { width:34px; height:34px; border-radius:11px; }
 .manage-mode .record-main h3 { font-size:14px; }
 .manage-mode .record-detail { padding:10px; font-size:12px; }
 .manage-mode .credit-form { padding:18px 15px; }
 .manage-mode .confirm-content { padding:20px 18px; }
 .manage-mode .nav { left:12px; right:12px; bottom:calc(8px + env(safe-area-inset-bottom)); height:58px; padding:6px; gap:2px; border-radius:20px; }
 .manage-mode .nav button, .manage-mode .nav > a { height:44px; font-size:13px; border-radius:15px; }
 .manage-mode .toast { bottom:calc(82px + env(safe-area-inset-bottom)); }
}

/* Credit adjustment: compact fields with optional details. */
.manage-mode .credit-form{padding:16px;border-radius:18px}
.credit-form-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:16px}
.credit-form-heading h3{margin:0;min-width:0;font-size:17px;overflow-wrap:anywhere;letter-spacing:0}
.credit-form-heading>span{color:var(--muted);font-size:12px;flex-shrink:0}
.credit-calculator{padding:0;margin:0 0 14px;background:none;border:0}
.credit-calculator-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.manage-mode .credit-form .field{min-width:0;margin:0}
.manage-mode .credit-form label{font-size:13px;margin-bottom:6px}
.manage-mode .credit-form input{min-height:44px;border-radius:12px;padding:10px 12px;font-size:16px;background:#fff}
.manage-mode .credit-form .credit-conversion-result{margin:10px 0 0;font-weight:600;color:#128571;overflow-wrap:anywhere;font-size:13px;line-height:1.5}
.credit-conversion-result:empty{display:none}
.manage-mode .credit-form .credit-conversion-result[data-invalid="true"]{color:#bd4938}
.credit-note-section{margin:8px 0 10px}
.credit-note-section summary{min-height:44px;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;cursor:pointer;list-style:none}
.credit-note-section summary::-webkit-details-marker{display:none}
.credit-note-section summary::before{content:'+';font-size:18px}
.credit-note-section[open] summary::before{content:'−'}
.credit-note-section summary:focus-visible{outline:2px solid var(--coral);outline-offset:2px;border-radius:6px}
.credit-note-section input{margin-bottom:10px}
.manage-mode .credit-form>.actions{display:grid;grid-template-columns:1fr auto;gap:10px;margin:0}
.manage-mode .credit-form>.actions .button{min-height:44px;padding:10px 20px;border-radius:12px;font-size:14px}
@media(max-width:400px){.credit-form-heading h3{font-size:15px}.credit-form-heading>span{font-size:11px}.credit-calculator-fields{gap:10px}}
/* Compact user list: rare actions live behind the avatar disclosure. */
.manage-mode .admin-user{row-gap:12px;margin-bottom:12px}
.manage-mode .user-avatar-toggle{position:relative;border:0;min-width:44px;min-height:44px;padding:0;align-self:center;box-shadow:none}
.manage-mode .user-avatar-toggle:hover,.manage-mode .user-avatar-toggle[aria-expanded="true"]{background:#daf1e9;color:#087d69}
.avatar-chevron{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#fff;border:1px solid #dce8e4;font-size:13px;line-height:1}
.user-avatar-toggle[aria-expanded="true"] .avatar-chevron{transform:rotate(180deg)}
.user-extra{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.user-extra[hidden]{display:none}
.manage-mode .user-extra .user-detail{padding:0;background:none;border-radius:0;font-size:11px;min-width:0}
.manage-mode .user-extra .button{flex:none;min-height:44px;padding:8px 12px;font-size:12px;white-space:nowrap}
@media(max-width:760px){.manage-mode .admin-user{grid-template-columns:44px minmax(0,1fr) auto;padding:12px;gap:10px}.manage-mode .admin-user .actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.manage-mode .admin-user .actions .button{padding:8px 10px}.manage-mode .user-info .name{line-height:1.4}.manage-mode .user-info small{font-size:11px}.manage-mode .admin-user .balance{font-size:20px}.manage-mode .user-extra{gap:8px}}

.generation-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.generation-heading h2{min-width:0}.generation-heading #platform-switch{flex-shrink:0;white-space:nowrap}@media(max-width:480px){.generation-heading h2{font-size:20px}.generation-heading #platform-switch{padding:10px 12px;font-size:13px}}
.qr-stats { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 10px 0; font-size: 13px; color: #64748b; }
.qr-stats b { color: #3275ed; font-variant-numeric: tabular-nums; }

.site-contact { margin-top: 28px; padding: 18px 12px; text-align: center; color: var(--muted); font-size: 14px; }
.site-contact span { color: var(--text); font-weight: 600; white-space: nowrap; user-select: all; -webkit-user-select: all; }

.generation-contact { padding: 12px 10px; margin-bottom: 20px; border: 1px solid #d7e5ff; border-radius: 12px; background: #edf4ff; color: #2467d5; text-align: center; font-size: 14px; line-height: 1.6; }
.generation-contact span { font-weight: 700; white-space: nowrap; user-select: all; -webkit-user-select: all; }
.generation-contact-mobile { display: none; }
@media(max-width:760px) { .generation-contact-mobile { display: block; margin-bottom: 16px; } .generation-contact-desktop { display: none; } }

/* Approved generator workbench. Scope layout changes to the generation view. */
[hidden] { display: none !important; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
body:has(.workbench) { background: #f5f8fc; }
body:has(.workbench) .site-contact { display: none; }
.workbench { margin: 0; }
.workbench-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 28px 0 24px; }
.workbench-heading h2 { font-size: 29px; margin: 0; letter-spacing: -.025em; }
.platform-tabs { display: flex; border: 1px solid #dce5f2; border-radius: 10px; background: #f2f5fa; overflow: hidden; }
.platform-tabs button { min-width: 108px; min-height: 44px; border: 0; padding: 10px 18px; color: #52627b; background: transparent; font-weight: 600; }
.platform-tabs button.active { color: #fff; background: #3478f6; border-radius: 9px; }
.workbench-grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(300px,1fr); gap: 20px; align-items: stretch; }
.workbench .panel { padding: 24px; border-radius: 12px; background: #fff; box-shadow: 0 3px 16px #27476a04; min-width: 0; }
.workbench-panel-title { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.workbench-panel-title h3 { margin: 0; font-size: 21px; }
.count-badge { border-radius: 20px; padding: 2px 11px; background: #edf4ff; color: #3478f6; font-size: 12px; }
.workbench .import-row { display: flex; align-items: stretch; gap: 12px; }
.workbench .import-row textarea { flex: 1; width: 0; min-width: 0; min-height: 64px; height: 64px; max-height: 180px; resize: vertical; font: 14px/1.5 var(--font); padding: 11px 14px; background: #fff; border-radius: 9px; }
.workbench .import-row .button { flex: 0 0 88px; border-radius: 9px; min-height: 44px; }
.workbench #parse-submit { margin: 0; }
.workbench .target-undo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 2px 12px; margin-top: 10px; background: #edf4ff; color: #46638e; font-size: 13px; border-radius: 9px; }
.workbench .target-undo .text-button { min-height: 44px; padding: 8px; }
.workbench .fix-fillers { min-height: 44px; width: 100%; margin-top: 8px; }
.workbench .import-hint { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #748299; font-size: 12px; }
.workbench .import-hint .text-button { flex: 0 0 auto; min-height: 44px; font-size: 12px; font-weight: 400; }
.target-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 14px; border-top: 1px solid #e5ebf4; margin: 14px 0 10px; }
.target-list-heading h4 { margin: 0; font-size: 16px; }
.target-list-heading .text-button { min-height: 44px; }
.target-list { display: grid; gap: 10px; max-height: 330px; overflow-y: auto; padding: 2px; scrollbar-width: thin; }
.target-row { display: flex; align-items: center; min-width: 0; gap: 14px; border: 1px solid #e1e8f3; border-radius: 9px; padding: 7px 8px 7px 12px; min-height: 60px; }
.target-index { flex: 0 0 34px; display: grid; place-items: center; height: 36px; background: #edf4ff; color: #3478f6; font-size: 13px; border-radius: 7px; font-variant-numeric: tabular-nums; }
.target-id { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: 14px; font-variant-numeric: tabular-nums; }
.remove-target { flex: 0 0 44px; width: 44px; min-height: 44px; border: 0; border-radius: 8px; background: transparent; color: #66758b; font-size: 23px; }
.remove-target:hover { background: #fff1ed; color: #b24a35; }
.target-empty { display: grid; place-items: center; min-height: 184px; color: #8692a5; font-size: 13px; background: #fafbfd; border: 1px dashed #dfe6f0; border-radius: 10px; padding: 24px; text-align: center; }
.workbench .success-note:empty { display: none; }
.workbench .success-note { font-size: 12px; margin: 10px 0 0; }
.workbench #targets, .workbench #fillers { width: 100%; font: 14px/1.7 var(--mono); min-height: 160px; background: #fff; padding: 12px; }
.workbench .input-heading { margin-bottom: 8px; }
.workbench .input-heading label { font-size: 13px; }
.workbench .input-heading small { display: inline; margin-left: 8px; }
.workbench .clear-input { background: transparent; min-height: 44px; }
.workbench .field { margin: 0 0 20px; }
.workbench label { margin-bottom: 8px; }
.workbench select { min-height: 48px; border-radius: 9px; padding: 10px 13px; background: #fff; font-size: 15px; }
.workbench .hint { font-size: 12px; color: #7e8aa0; line-height: 1.7; margin: 8px 0 0; }
.workbench .filler-editor { margin-bottom: 22px; }
.filler-editor > summary { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 8px; background: #f4f6fa; border-radius: 9px; padding: 10px 15px; cursor: pointer; list-style: none; color: #5c6b83; font-size: 14px; }
.filler-editor > summary::-webkit-details-marker { display: none; }
.filler-editor > summary b { color: #243653; font-weight: 500; }
.filler-editor .edit-caption { display: grid; place-items: center; min-height: 44px; min-width: 64px; border: 1px solid #d5e2fa; border-radius: 7px; color: #3478f6; background: #fff; font-weight: 600; }
.filler-editor[open] > summary .edit-caption { font-size: 0; }
.filler-editor[open] > summary .edit-caption::after { content: '收起'; font-size: 14px; }
.filler-editor > summary:focus-visible, .workbench-help > summary:focus-visible { outline: 2px solid #3478f6; outline-offset: 3px; }
.filler-editor-body { padding: 16px 0 0; }
.filler-editor-body #filler-parse-form { margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid #e5ebf4; }
.filler-editor-body #filler-share-text { min-height: 76px; font: 14px/1.6 var(--font); background: #fff; }
.filler-editor-body #parse-fillers-submit { width: 100%; min-height: 44px; margin-top: 8px; }
.workbench-help { margin-top: 22px; border-top: 1px solid #e5ebf4; padding-top: 14px; }
.workbench-help > summary { cursor: pointer; padding: 12px; background: #f5f7fb; border-radius: 8px; font-size: 13px; min-height: 44px; }
.workbench #generate-form { display: none; }
.workbench > .workbench-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; margin-top: 20px; padding: 16px 20px; position: static; overflow: visible; }
.workbench-actions .generation-contact { margin: 0 auto 0 0; padding: 10px 14px; border: 0; border-radius: 8px; text-align: left; }
.workbench-actions .action-count { white-space: nowrap; font-size: 14px; }
.workbench-actions .action-count b { font-weight: 500; }
.workbench-actions .action-cost { white-space: nowrap; font-size: 13px; color: #67758b; }
.workbench-actions #generate-submit { min-width: 142px; min-height: 48px; border-radius: 9px; margin: 0; }
.workbench-actions > .error { flex: 1 0 100%; margin: 0; }
.workbench .parse-added { margin: 2px 0 12px; color: #198777; font-size: 12px; }
@media(min-width:761px) {
 body:has(.workbench) .shell { max-width: 1420px; padding: 0 36px 40px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; column-gap: 32px; }
 body:has(.workbench) .header { display: contents; }
 body:has(.workbench) .brand { grid-column: 1; grid-row: 1; font-size: 23px; }
 body:has(.workbench) .brand-mark { width: 38px; height: 38px; border-radius: 10px; font-size: 24px; box-shadow: none; background: #3478f6; }
 body:has(.workbench) .header-right { grid-column: 3; grid-row: 1; }
 body:has(.workbench) .nav { grid-column: 2; grid-row: 1; height: 82px; margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; justify-content: flex-start; gap: 22px; }
 body:has(.workbench) .nav button, body:has(.workbench) .nav > a { flex: 0 0 auto; padding: 0 4px; border-radius: 0; border-bottom: 2px solid transparent; font-size: 14px; }
 body:has(.workbench) .nav button.active { background: transparent; border-bottom-color: #3478f6; }
 body:has(.workbench) #main { grid-column: 1 / -1; border-top: 1px solid #e1e8f3; }
 body:has(.workbench) .balance-pill { background: transparent; padding: 6px 0; }
 body:has(.workbench) .account-name { max-width: 120px; }
}
@media(min-width:761px) and (max-width:1024px) {
 body:has(.workbench) .shell { padding-left: 22px; padding-right: 22px; column-gap: 20px; }
 body:has(.workbench) .nav { gap: 12px; }
 body:has(.workbench) .account-name { max-width: 80px; }
 .workbench-grid { grid-template-columns: minmax(0,1.3fr) minmax(280px,1fr); gap: 16px; }
 .workbench .panel { padding: 18px; }
 .target-row { gap: 8px; padding-left: 8px; }
 .target-index { flex-basis: 28px; }
}
@media(max-width:760px) {
 body:has(.workbench) .header { height: 74px; }
 .workbench { animation: none; padding-bottom: 108px; }
 .workbench .generation-contact-mobile { display: block; margin: 0; padding: 8px 12px; font-size: 13px; }
 .workbench-heading { margin: 18px 0 14px; gap: 10px; }
 .workbench-heading h2 { font-size: 21px; }
 .platform-tabs button { min-width: 68px; min-height: 44px; padding: 9px 10px; font-size: 13px; }
 .workbench-grid { grid-template-columns: minmax(0,1fr); gap: 14px; }
 .workbench .panel { padding: 18px 14px; border-radius: 12px; }
 .workbench-panel-title { margin-bottom: 16px; }
 .workbench-panel-title h3 { font-size: 18px; }
 .workbench .import-row { gap: 8px; }
 .workbench .import-row .button { flex-basis: 68px; padding: 10px; }
 .workbench .import-row textarea, .workbench #targets, .workbench #fillers, .workbench #filler-share-text, .workbench select { font-size: 16px; }
 .workbench .import-row textarea { min-height: 76px; height: 76px; padding: 10px; }
 .workbench .import-hint { font-size: 11px; line-height: 1.5; }
 .target-list { max-height: 265px; }
 .target-row { gap: 8px; padding-left: 8px; }
 .target-index { flex-basis: 28px; height: 32px; font-size: 12px; }
 .target-id { font-size: 13px; }
 .target-empty { min-height: 100px; padding: 18px; }
 .workbench .field { margin-bottom: 16px; }
 .workbench-help { margin-top: 16px; padding-top: 12px; }
 .workbench input, .workbench textarea, .workbench select, .workbench summary { scroll-margin-bottom: 240px; }
 .workbench > .workbench-actions { position: fixed; bottom: calc(88px + env(safe-area-inset-bottom)); top: auto; right: 12px; left: auto; z-index: 29; width: max-content; max-width: calc(100% - 24px); display: flex; flex-direction: column; align-items: flex-end; gap: 8px; padding: 0; margin: 0; border: 0; background: transparent; box-shadow: none; pointer-events: none; }
 .workbench-actions .generation-contact, .workbench-actions .action-count, .workbench-actions .action-cost { display: none; }
 .workbench-actions #generate-submit { order: 2; min-width: 112px; min-height: 48px; padding: 12px 20px; border-radius: 24px; font-size: 15px; box-shadow: 0 6px 18px #3478f63d; pointer-events: auto; }
 .workbench-actions > .error { order: 1; flex: initial; max-width: min(320px,calc(100vw - 24px)); max-height: 25vh; overflow: auto; pointer-events: auto; font-size: 12px; }
}
/* Mobile image save sheet: real image preserves the native long-press menu. */
#qr-save-dialog{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;overflow:auto} .qr-save-content{padding:20px}.qr-save-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.qr-save-heading h2{margin:0;font-size:20px}#qr-save-hint{font-size:15px;line-height:1.6;color:#334155}#qr-save-image{display:block;width:100%;max-width:320px;height:auto;margin:16px auto;image-rendering:pixelated;-webkit-touch-callout:default;user-select:auto}.qr-save-note,#qr-save-status{font-size:13px;line-height:1.6;color:#64748b}.qr-save-actions{display:flex;flex-wrap:wrap;gap:10px}.qr-save-actions .button{flex:1;min-height:44px}.qr-save-heading .button{min-height:44px}#qr-save-status:empty{display:none}
/* Optional remarks remain part of the exported image, outside the QR quiet zone. */
.library-selection{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:20px}.library-check{display:flex;align-items:center;gap:9px;min-height:44px;font-size:14px}.library-selection input,.qr-batch-shell input{width:20px;height:20px;min-height:20px;padding:0;margin:0;accent-color:#3478f6;flex-shrink:0}.selection-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.selection-actions button{min-height:44px}#selection-count{font-size:13px;color:#64748b}.qr-batch-shell{position:relative;border:1px solid #e2e8f0;border-radius:12px;background:#fff;margin-bottom:14px;overflow:hidden}.batch-check{position:absolute;left:10px;top:7px;display:grid;place-items:center;width:44px;height:44px;z-index:1}.qr-batch>summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;min-height:58px;padding:12px 16px 12px 60px;background:#f8fafc}.qr-batch>summary::-webkit-details-marker,.qr-item>summary::-webkit-details-marker{display:none}.batch-summary-title{flex:1;min-width:0;font-size:13px;line-height:1.7}.batch-summary-title b{font-size:14px;color:#334155}.batch-summary-count{white-space:nowrap;font-size:13px;color:#64748b}.qr-batch>summary:after{content:'⌄';color:#64748b;font-size:18px}.qr-batch[open]>summary:after{transform:rotate(180deg)}.qr-list-row{display:flex;align-items:flex-start;border-top:1px solid #edf1f6}.row-check{display:grid;place-items:center;flex:0 0 54px;height:72px}.qr-item{min-width:0;flex:1}.qr-item>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;min-height:72px;padding:12px 16px 12px 6px}.qr-row-text{display:flex;flex-direction:column;gap:5px;min-width:0}.qr-row-title{font-size:14px;font-weight:600;overflow-wrap:anywhere}.qr-row-meta{font-size:12px;color:#64748b;overflow-wrap:anywhere}.qr-row-toggle{flex-shrink:0;font-size:12px;color:#3478f6}.qr-row-toggle:after{content:'查看码'}.qr-item[open] .qr-row-toggle:after{content:'收起'}.qr-row-content{display:flex;align-items:center;gap:24px;padding:4px 20px 20px 6px}.qr-row-content .qr-wrap{width:220px;max-width:100%;flex-shrink:0;margin:0}.qr-row-content .qr-wrap canvas{max-width:100%;height:auto}.qr-row-actions{min-width:0;max-width:400px;flex:1}.qr-row-actions .qr-remark-edit{margin:0 0 8px;padding-left:0}.qr-row-actions .card-url{overflow-wrap:anywhere}.qr-list-row.inactive{opacity:.65}.qr-batch summary:focus-visible,.qr-item summary:focus-visible{outline:2px solid #3478f6;outline-offset:-3px}#library-error:empty{display:none}#load-batches{margin:12px 0;min-height:44px}#load-batches[hidden]{display:none}
@media(max-width:760px){.library-selection{padding:12px;gap:4px 14px}.selection-actions{width:100%;margin:4px 0 0;gap:8px}.selection-actions .button{flex:1;padding-left:10px;padding-right:10px}.selection-actions .text-button{font-size:12px;padding:8px 4px}.batch-summary-title{font-size:12px}.qr-batch>summary{padding-right:12px;gap:7px}.qr-item>summary{padding-right:12px}.qr-row-content{display:block;padding-right:14px}.qr-row-content .qr-wrap{width:220px;margin:4px auto 10px}.qr-row-actions{max-width:none}.qr-row-actions .qr-remark-edit{margin:0 auto 4px;padding:8px 12px}.qr-row-actions .card-actions{gap:6px}.qr-row-actions .card-actions .button{padding:10px 6px;font-size:12px}.qr-row-actions .qr-stats{font-size:11px}.qr-row-toggle{font-size:11px}.qr-row-title{font-size:14px}}
.workbench .batch-remark-field{margin:20px 0 0}.batch-remark-field label small{font-size:12px;font-weight:400;color:#64748b;margin-left:6px}.batch-remark-field input,#remark-input{font-size:16px;min-height:44px}.qr-wrap canvas{height:auto}.qr-remark-edit{display:block;min-height:44px;margin:-8px auto 8px;padding:8px 12px}#remark-dialog{max-height:calc(100dvh - 24px);overflow:auto}#remark-dialog .field{margin:18px 0 8px}#remark-hint{font-size:13px;line-height:1.65}#remark-error:empty{display:none}

@media(max-width:760px){.library-heading{flex-direction:row;align-items:center;justify-content:space-between}.library-heading>div{min-width:0}}
