*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:#070b14;color:#d8e1f4;font:13px/1.5 "Segoe UI","Microsoft YaHei",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid rgba(148,163,184,.16);border-radius:6px;background:rgba(255,255,255,.05);color:#d8e1f4;padding:8px 12px}button:hover{border-color:rgba(129,140,248,.55);background:rgba(99,102,241,.12);color:#fff}button.primary{border-color:rgba(129,140,248,.7);background:linear-gradient(135deg,#8b5cf6,#2563eb);color:#fff}.big{min-height:42px;padding-inline:22px}input,select,textarea{width:100%;border:1px solid rgba(148,163,184,.18);border-radius:6px;background:rgba(6,10,21,.78);color:#e5edf9;outline:0;padding:9px 10px}textarea{min-height:170px;resize:vertical}label{display:grid;gap:6px;color:#9aa7bd}.hidden{display:none!important}.shell{display:grid;grid-template-columns:204px minmax(0,1fr);min-height:100%;background:radial-gradient(circle at 20% -10%,rgba(91,92,255,.22),transparent 34%),radial-gradient(circle at 95% 0%,rgba(37,99,235,.14),transparent 32%),#070b14}.side{display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.08);background:#0a1020;padding:16px 10px}.brand{display:flex;gap:10px;align-items:center;padding:0 6px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.logo{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:rgba(139,92,246,.22);color:#ddd6fe}.brand b{display:block;color:#fff}.brand small,.profile small{display:block;color:#64748b;font-size:11px}.nav{display:grid;align-content:start;gap:6px;padding:16px 0;flex:1}.nav button{text-align:left;border-color:transparent;background:transparent;color:#94a3b8}.nav button.active{background:linear-gradient(135deg,#6d5dfc,#2563eb);color:#fff;border-color:rgba(167,139,250,.36);box-shadow:0 10px 24px rgba(79,70,229,.24)}.profile{display:flex;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.05);padding:10px}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#fed7aa,#f97316);color:#111827;font-weight:700}.main{min-width:0;padding:18px}.top{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.model-select{display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.05);padding:8px 12px;color:#64748b}.model-select select{width:220px;border:0;background:transparent;padding:0;color:#e2e8f0}.metrics{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.metric{min-width:92px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.05);padding:8px 12px}.metric span,.metric-row span{display:block;color:#64748b;font-size:11px}.metric b{color:#e2e8f0}.metric.hot b{color:#fbbf24}.metric.ok b{color:#34d399}.card{border:1px solid rgba(148,163,184,.13);border-radius:8px;background:linear-gradient(180deg,rgba(18,27,48,.94),rgba(13,20,37,.98));box-shadow:0 18px 50px rgba(0,0,0,.22)}.card h1,.card h2,.toolbar h1{margin:0;color:#f8fafc}.card p,.toolbar span,.message{color:#7f8da7}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(148,163,184,.12);padding:13px 16px}.card-head p{margin:2px 0 0}.tab{display:none}.tab.active{display:block}.auth{max-width:820px;margin:80px auto;padding:24px}.auth-grid,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.actions,.upload-row,.submit-row,.chips,.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.generate-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px}.compose{padding:0}.compose textarea{border:0;border-bottom:1px solid rgba(148,163,184,.12);border-radius:0;background:rgba(2,6,23,.55)}.compose .form-grid,.compose .upload-row,.compose .submit-row,.compose .chips{padding:0 16px 14px}.chip,.chips button{border-color:rgba(129,140,248,.22);background:rgba(99,102,241,.12);color:#c7d2fe}.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px}.template,.image-card{overflow:hidden;border:1px solid rgba(148,163,184,.12);border-radius:8px;background:rgba(15,23,42,.76)}.template{padding:12px}.template h3,.image-card h3{margin:0;color:#f8fafc;font-size:13px}.template p,.image-card p{color:#94a3b8;font-size:12px}.result-strip{margin-top:14px}.image-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.image-grid.compact{padding:14px}.image-card img,.image-preview{width:100%;height:170px;object-fit:cover;background:linear-gradient(135deg,#0f172a,#1d4ed8 48%,#111827)}.image-preview.thumb{width:80px;height:70px;border-radius:6px}.image-card .body{padding:12px}.toolbar{justify-content:space-between;margin-bottom:14px}.work-list{display:grid;gap:10px}.work{display:grid;grid-template-columns:80px 1fr auto;gap:14px;align-items:center;border:1px solid rgba(148,163,184,.12);border-radius:8px;background:rgba(15,23,42,.76);padding:12px}.work img{width:80px;height:70px;border-radius:6px;object-fit:cover;background:#111827}.billing-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:14px}.recharge-card{padding:18px}.recharge-card h2{margin-bottom:16px}.quote{display:flex;align-items:center;justify-content:space-between;margin:16px 0;padding:16px;border:1px solid rgba(52,211,153,.22);border-radius:8px;background:rgba(5,150,105,.08)}.quote span{color:#94a3b8}.quote b{font-size:28px;color:#34d399}.orders-card{overflow:auto}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid rgba(148,163,184,.1);padding:10px;text-align:left;color:#cbd5e1;vertical-align:middle}th{color:#64748b;background:rgba(255,255,255,.03)}.admin-grid,.pool-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.admin-grid .card,.pool-grid .card,.users-card{padding:16px}.admin-grid label,.pool-grid label{margin-top:10px}pre{overflow:auto;max-height:240px;color:#94a3b8;background:rgba(2,6,23,.45);border-radius:6px;padding:10px}.income{color:#34d399}.expense{color:#fb7185}.empty{grid-column:1/-1;border:1px dashed rgba(148,163,184,.22);border-radius:8px;padding:40px;text-align:center;color:#7f8da7}.empty-cell{text-align:center;color:#7f8da7}.status-cards,.status-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.metric-row{border:1px solid rgba(148,163,184,.12);border-radius:8px;background:rgba(255,255,255,.04);padding:10px}.metric-row b{display:block;margin-top:2px;color:#e2e8f0;font-size:18px}@media(max-width:1100px){.generate-grid,.billing-grid,.admin-grid,.pool-grid{grid-template-columns:1fr}.image-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:960px){.shell{grid-template-columns:1fr}.side{position:sticky;top:0;z-index:3}.nav{grid-template-columns:repeat(4,1fr)}.top,.metrics{align-items:stretch;flex-direction:column;height:auto}.auth-grid,.form-grid{grid-template-columns:1fr}.image-grid{grid-template-columns:repeat(2,1fr)}.main{padding:12px}.users-card{overflow:auto}.status-cards,.status-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.nav{grid-template-columns:repeat(2,1fr)}.model-select{align-items:stretch;flex-direction:column}.model-select select{width:100%}.image-grid{grid-template-columns:1fr}.template-grid{grid-template-columns:1fr}.work{grid-template-columns:64px 1fr}.work .actions{grid-column:1/-1}.metrics .metric{width:100%}.status-cards,.status-list{grid-template-columns:1fr}th,td{white-space:nowrap}}
.pool-toolbar{align-items:flex-start}
.pool-toolbar>div:first-child{min-width:0}
.pool-toolbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pool-summary{grid-template-columns:repeat(6,minmax(120px,1fr));margin:0 0 14px}
.pool-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(440px,1.1fr);gap:14px;margin-bottom:14px;align-items:start}
.pool-auto-card,.pool-side-card,.pool-log-card{padding:0;overflow:hidden}
.pool-side-stack{display:grid;gap:14px;min-width:0}
.card-head.flat{align-items:flex-start;border-bottom:1px solid rgba(148,163,184,.12);padding:14px 16px}
.card-head.flat p{max-width:620px;color:#7f8da7}
.pool-form{display:grid;grid-template-columns:1fr;gap:12px;padding:14px 16px}
.pool-actions{border-top:1px solid rgba(148,163,184,.1);padding:14px 16px}
.pool-actions button,.pool-filter button,.row-actions button{min-height:36px}
.pool-filter{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;padding:16px}
.pool-debug{border-top:1px solid rgba(148,163,184,.1);padding:0 16px 16px}
.pool-debug.compact{padding-bottom:12px}
.pool-debug summary{cursor:pointer;color:#94a3b8;padding:12px 0;user-select:none}
.pool-debug summary:hover{color:#e2e8f0}
.pool-debug pre{margin:0;max-height:190px}
.pool-log-list{display:grid;gap:8px;max-height:260px;overflow:auto;padding:12px 16px}
.pool-log-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;border:1px solid rgba(148,163,184,.1);border-radius:8px;background:rgba(2,6,23,.32);padding:9px 10px}
.pool-log-item time{grid-column:1/-1;color:#64748b;font-size:11px}
.pool-log-level{display:inline-flex;align-items:center;height:22px;border:1px solid rgba(148,163,184,.18);border-radius:999px;padding:0 7px;font-size:11px;color:#cbd5e1;background:rgba(148,163,184,.08)}
.pool-log-level.info{border-color:rgba(56,189,248,.24);background:rgba(14,116,144,.12);color:#bae6fd}
.pool-log-level.warn{border-color:rgba(251,191,36,.28);background:rgba(180,83,9,.12);color:#fde68a}
.pool-log-level.error{border-color:rgba(248,113,113,.28);background:rgba(185,28,28,.12);color:#fecaca}
.pool-log-text{min-width:0;color:#cbd5e1;word-break:break-word}
.pool-log-meta{color:#7f8da7;font-size:12px}
.pool-table-card{padding:0;overflow:hidden}
.pool-table-card .card-head p{margin:2px 0 0;color:#7f8da7;font-size:12px}
.table-scroll{overflow:auto;max-width:100%}
.pool-table{min-width:980px}
.pool-table th:first-child,.pool-table td:first-child{width:64px}
.pool-table th:nth-child(3),.pool-table td:nth-child(3){width:96px}
.pool-table th:nth-child(4),.pool-table td:nth-child(4){width:96px}
.pool-table th:last-child,.pool-table td:last-child{width:240px}
.mono-cell{font-family:Consolas,"SFMono-Regular",Menlo,monospace;font-size:12px;color:#dbeafe;word-break:break-all;white-space:normal;min-width:220px}
.notes-cell{max-width:260px;white-space:normal;color:#94a3b8}
.row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-start}
.row-actions button{padding:6px 9px;white-space:nowrap}
.danger-action{border-color:rgba(248,113,113,.24);color:#fecaca}
.danger-action:hover{border-color:rgba(248,113,113,.55);background:rgba(248,113,113,.1);color:#fff}
.status-pill{display:inline-flex;align-items:center;min-height:24px;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:rgba(148,163,184,.08);padding:2px 8px;font-size:12px;color:#cbd5e1}
.status-pill.status-danger{border-color:rgba(248,113,113,.35);background:rgba(127,29,29,.28);color:#fecaca}
.status-pill.status-warn{border-color:rgba(251,191,36,.32);background:rgba(120,53,15,.22);color:#fde68a}
.status-valid{border-color:rgba(52,211,153,.28);background:rgba(5,150,105,.12);color:#86efac}
.status-invalid{border-color:rgba(248,113,113,.28);background:rgba(185,28,28,.12);color:#fecaca}
.status-disabled{border-color:rgba(148,163,184,.2);background:rgba(71,85,105,.14);color:#cbd5e1}
.status-cooldown{border-color:rgba(251,191,36,.28);background:rgba(180,83,9,.12);color:#fde68a}
.status-rate_limited{border-color:rgba(251,146,60,.28);background:rgba(154,52,18,.14);color:#fed7aa}
.status-deleted{border-color:rgba(248,113,113,.28);background:rgba(185,28,28,.12);color:#fecaca}
.pool-invalid-count{display:block;margin-top:4px;color:#fca5a5;font-size:11px}
.pool-metric{min-height:74px}
.pool-metric.ok b{color:#34d399}
.pool-metric.warn b{color:#fbbf24}
.pool-metric.danger b{color:#fb7185}
.pool-refresh-progress{border:1px solid rgba(129,140,248,.22);border-radius:8px;background:rgba(15,23,42,.76);padding:14px 16px;margin:0 0 14px}
.pool-refresh-title,.pool-refresh-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pool-refresh-title b{color:#f8fafc}
.pool-refresh-title span,.pool-refresh-meta{color:#94a3b8;font-size:12px}
.progress-bar{height:8px;border-radius:999px;background:rgba(148,163,184,.14);overflow:hidden;margin:10px 0}
.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#8b5cf6,#2563eb,#22c55e);transition:width .25s ease}
.pool-refresh-errors{margin:10px 0 0;padding-left:18px;color:#fca5a5;font-size:12px}
.pool-refresh-status{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.danger-text{color:#fb7185}
@media(max-width:1180px){.pool-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.pool-layout{grid-template-columns:1fr}.pool-form{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.pool-toolbar{gap:12px}.pool-toolbar-actions{width:100%}.pool-toolbar-actions button{flex:1}.pool-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.pool-form,.pool-filter{grid-template-columns:1fr}.pool-actions button{flex:1}}
@media(max-width:480px){.pool-summary{grid-template-columns:1fr}.pool-toolbar-actions,.pool-actions{flex-direction:column;align-items:stretch}}
.profile{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center}
.profile-main{min-width:0}
.profile-main b,.profile-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-actions{grid-column:1/-1;display:flex;gap:8px}
.profile-actions button{flex:1;min-height:34px;padding:6px 10px}
.pool-auto-state{display:grid;gap:8px;border-bottom:1px solid rgba(148,163,184,.1);padding:14px 16px;background:rgba(2,6,23,.22)}
.pool-auto-state-main{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pool-auto-phase{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(56,189,248,.24);border-radius:999px;background:rgba(14,116,144,.12);padding:6px 10px;color:#bae6fd;font-weight:700}
.pool-auto-phase::before{content:"";width:8px;height:8px;border-radius:999px;background:#38bdf8;box-shadow:0 0 0 4px rgba(56,189,248,.12)}
.pool-auto-phase.registering{border-color:rgba(52,211,153,.3);background:rgba(5,150,105,.12);color:#86efac}
.pool-auto-phase.registering::before{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12)}
.pool-auto-phase.satisfied{border-color:rgba(52,211,153,.3);background:rgba(5,150,105,.12);color:#86efac}
.pool-auto-phase.satisfied::before{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12)}
.pool-auto-phase.waiting{border-color:rgba(251,191,36,.28);background:rgba(180,83,9,.12);color:#fde68a}
.pool-auto-phase.waiting::before{background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.12)}
.pool-auto-phase.disabled{border-color:rgba(148,163,184,.2);background:rgba(71,85,105,.14);color:#cbd5e1}
.pool-auto-phase.disabled::before{background:#64748b;box-shadow:0 0 0 4px rgba(100,116,139,.12)}
.pool-auto-message{color:#cbd5e1}
.pool-auto-sub{display:flex;gap:10px;flex-wrap:wrap;color:#7f8da7;font-size:12px}
.toolbar-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.users-bulk-actions{max-width:min(760px,100%);display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto auto}
.works-bulk-actions button,.users-bulk-actions button{min-height:36px}
.select-check{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(148,163,184,.2);border-radius:6px;background:rgba(15,23,42,.6)}
.select-check input,.users-table input[type="checkbox"]{width:16px;height:16px;margin:0;accent-color:#38bdf8}
tr.selected,.work.selected{border-color:rgba(56,189,248,.55);background:rgba(14,165,233,.1)}
.work{grid-template-columns:34px 80px 1fr auto}
.work-select{align-self:center}
.image-missing{display:grid;place-items:center;color:#94a3b8;border:1px dashed rgba(148,163,184,.24);background:rgba(15,23,42,.72);font-size:12px;text-align:center}
.admin-toolbar,.users-toolbar{align-items:flex-start}
.admin-toolbar>div,.users-toolbar>div{min-width:0}
.admin-summary{grid-template-columns:repeat(3,minmax(140px,1fr));margin:0 0 14px}
.admin-layout{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr);gap:14px;align-items:start}
.admin-card{padding:0;overflow:hidden}
.admin-card-wide{grid-column:1/-1}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}
.settings-grid.compact{grid-template-columns:minmax(180px,320px)}
.payment-settings{grid-template-columns:repeat(3,minmax(0,1fr))}
.smtp-settings{grid-template-columns:repeat(3,minmax(0,1fr))}
.settings-test-row{display:grid;grid-template-columns:minmax(220px,360px) auto minmax(0,1fr);gap:12px;align-items:end;border-top:1px solid rgba(148,163,184,.1);padding:0 16px 16px}
.settings-test-row button{min-height:38px}
.settings-test-row span{align-self:center;color:#94a3b8}
.users-table-card,.ledger-table-card{padding:0;overflow:hidden}
.users-table{min-width:980px}
.users-table th:first-child,.users-table td:first-child{width:58px}
.users-table th:nth-child(2),.users-table td:nth-child(2){width:64px}
.users-table th:nth-child(4),.users-table td:nth-child(4),.users-table th:nth-child(5),.users-table td:nth-child(5){width:100px}
.users-table th:nth-child(6),.users-table td:nth-child(6){width:100px}
.users-table th:last-child,.users-table td:last-child{width:310px}
.user-row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.credit-adjust-input{width:82px;min-width:82px;padding:7px 9px}
.role-admin{border-color:rgba(129,140,248,.34);background:rgba(79,70,229,.14);color:#c7d2fe}
.role-user{border-color:rgba(34,211,238,.24);background:rgba(8,145,178,.12);color:#a5f3fc}
.status-active{border-color:rgba(52,211,153,.28);background:rgba(5,150,105,.12);color:#86efac}
.ledger-table{min-width:900px}
.ledger-table th:first-child,.ledger-table td:first-child{width:64px}
.ledger-table th:nth-child(2),.ledger-table td:nth-child(2){width:84px}
.ledger-table th:nth-child(4),.ledger-table td:nth-child(4),.ledger-table th:nth-child(5),.ledger-table td:nth-child(5){width:110px}
.ledger-table th:last-child,.ledger-table td:last-child{width:170px}
.ledger-thumb-button{display:inline-grid;place-items:center;width:54px;height:54px;border:1px solid rgba(148,163,184,.16);border-radius:8px;background:rgba(15,23,42,.76);padding:0;overflow:hidden}
.ledger-thumb-button:hover{border-color:rgba(96,165,250,.55);background:rgba(37,99,235,.12)}
.ledger-thumb{width:54px;height:54px;object-fit:cover;display:block}
.ledger-empty-thumb{display:grid;place-items:center;width:54px;height:54px;border:1px dashed rgba(148,163,184,.18);border-radius:8px;background:rgba(15,23,42,.46);color:#64748b;font-size:12px}
.ledger-meta{margin-top:2px;color:#64748b;font-size:12px;line-height:1.35}
.upstream-layout{align-items:start;grid-template-columns:minmax(0,1fr) clamp(320px,28vw,420px);gap:14px}
.upstream-layout .admin-card-wide{grid-column:auto}
.upstream-base-row{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,260px);gap:12px;padding:16px 16px 0}
.upstream-endpoints{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 16px 4px}
.upstream-endpoint{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"method path" "title title" "desc desc";gap:5px 8px;align-items:center;padding:10px 11px;border:1px solid rgba(148,163,184,.14);border-radius:8px;background:rgba(15,23,42,.58)}
.upstream-endpoint span{grid-area:method;display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:22px;border:1px solid rgba(96,165,250,.22);border-radius:6px;background:rgba(37,99,235,.13);color:#bfdbfe;font-size:11px;font-weight:800}
.upstream-endpoint code{grid-area:path;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e2e8f0;font-size:12px}
.upstream-endpoint b{grid-area:title;color:#f8fafc;font-size:13px}
.upstream-endpoint small{grid-area:desc;color:#94a3b8;font-size:12px;line-height:1.35}
.upstream-secret{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:12px;padding:10px;border:1px solid rgba(52,211,153,.22);border-radius:8px;background:rgba(5,150,105,.08)}
.upstream-secret code{overflow:auto;white-space:nowrap;color:#bbf7d0}
.upstream-local{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.upstream-local-head{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}
.upstream-local-head span{font-size:12px;color:var(--muted)}
.upstream-local-key{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.035);padding:10px;margin-top:8px}
.upstream-local-key small{display:block;color:var(--muted);margin:3px 0 6px}
.upstream-local-key code{display:block;overflow:auto;white-space:nowrap;color:#bbf7d0;font-family:Consolas,"SFMono-Regular",Menlo,monospace;font-size:12px}
.upstream-local-actions{display:flex;gap:6px;align-items:center}
.upstream-table-card{margin-top:14px}
.upstream-models{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 16px}
.upstream-models h3{margin:0 0 8px;color:#cbd5e1;font-size:13px;font-weight:700}
.upstream-model-list{display:grid;gap:8px}
.upstream-model-card{display:grid;gap:4px;padding:10px;border:1px solid rgba(148,163,184,.14);border-radius:8px;background:rgba(15,23,42,.62)}
.upstream-model-card b{color:#f8fafc;font-size:13px}
.upstream-model-card code{color:#93c5fd;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upstream-model-card span{color:#94a3b8;font-size:12px;line-height:1.35}
@media(max-width:1180px){.admin-layout{grid-template-columns:1fr}.payment-settings,.smtp-settings{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.upstream-endpoints{grid-template-columns:1fr}.upstream-base-row{grid-template-columns:1fr}}
@media(max-width:760px){.admin-toolbar button,.users-toolbar button{width:100%}.admin-summary{grid-template-columns:1fr}.settings-grid,.settings-grid.compact,.payment-settings,.smtp-settings,.settings-test-row,.upstream-models{grid-template-columns:1fr}.user-row-actions button{flex:1}}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(96,165,250,.78);outline-offset:2px}
.generate-toolbar{align-items:flex-start;margin-bottom:14px}
.generate-toolbar>div{min-width:0}
.generate-workbench{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:14px;align-items:stretch}
.generate-compose{display:flex;min-height:430px;flex-direction:column;overflow:hidden}
.generate-compose textarea{flex:1;min-height:300px;border:0;border-bottom:1px solid rgba(148,163,184,.12);border-radius:0;background:linear-gradient(180deg,rgba(3,7,18,.62),rgba(8,13,26,.88));font-size:15px;line-height:1.7;padding:18px}
.prompt-chip-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;align-items:start;padding:14px 16px}
.prompt-chip-row>span{color:#64748b;font-size:12px;line-height:34px;white-space:nowrap}
.prompt-chip-row .chips{padding:0}
.prompt-chip-row .chip{min-height:34px}
.generate-settings{display:flex;flex-direction:column;overflow:hidden;padding:0}
.generate-form-grid{display:grid;grid-template-columns:1fr;gap:12px;padding:16px}
.generate-upload{display:grid;grid-template-columns:1fr auto;gap:10px;border-top:1px solid rgba(148,163,184,.1);padding:16px}
.generate-upload input{min-width:0}
.generate-upload #assetInfo{grid-column:1/-1;min-height:18px;color:#7f8da7}
.generate-submit{display:grid;grid-template-columns:1fr;align-items:stretch;border-top:1px solid rgba(148,163,184,.1);margin-top:auto;padding:16px}
.generate-submit .big{width:100%;min-height:46px}
.generate-submit #genMsg{min-height:20px;color:#94a3b8}
.generate-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:14px;margin-top:14px;align-items:start}
#tab-generate .result-strip{margin-top:0;overflow:hidden}
#tab-generate .prompt-panel{overflow:hidden}
#tab-generate .prompt-panel .template-grid{grid-template-columns:1fr;max-height:520px;overflow:auto}
#tab-generate .template{display:grid;gap:8px}
#tab-generate .template p{display:-webkit-box;min-height:36px;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}
#tab-generate .template .actions{margin-top:2px}
#tab-generate .image-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr));min-height:230px}
#tab-generate .image-card img,#tab-generate .image-preview{height:210px}
#tab-generate .empty{align-self:stretch;display:grid;min-height:210px;place-items:center}
@media(max-width:1180px){.generate-workbench,.generate-bottom{grid-template-columns:1fr}.generate-compose{min-height:360px}#tab-generate .prompt-panel .template-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}}
@media(max-width:760px){.generate-toolbar button{width:100%}.generate-compose textarea{min-height:240px}.prompt-chip-row{grid-template-columns:1fr}.prompt-chip-row>span{line-height:1.4}.generate-upload{grid-template-columns:1fr}.generate-upload button{width:100%}#tab-generate .image-grid.compact,#tab-generate .prompt-panel .template-grid{grid-template-columns:1fr}#tab-generate .image-card img,#tab-generate .image-preview{height:220px}}
.generate-workbench{grid-template-columns:minmax(0,1.15fr) minmax(300px,340px)}
.generate-compose{min-height:360px}
.generate-compose textarea{min-height:210px}
.generate-form-grid{gap:10px;padding:14px}
.generate-upload,.generate-submit{padding:14px}
.generate-bottom{grid-template-columns:minmax(0,1.35fr) minmax(280px,340px)}
#tab-generate .image-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:0}
#tab-generate .image-card img,#tab-generate .image-preview{height:156px}
#tab-generate .template-grid{padding:12px}
.gen-card{position:relative}
.gen-delete-floating{position:absolute;top:10px;right:10px;z-index:2;min-height:30px;border-color:rgba(248,113,113,.42);background:rgba(15,23,42,.84);color:#fecaca;padding:5px 10px;backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(0,0,0,.28)}
.gen-delete-floating:hover{border-color:rgba(248,113,113,.75);background:rgba(127,29,29,.8);color:#fff}
.gen-card .body{display:grid;gap:7px}
.gen-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.gen-card-title h3{min-width:0;line-height:1.35}
.gen-card-title span{display:inline-flex;align-items:center;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:rgba(148,163,184,.08);padding:2px 8px;color:#cbd5e1;font-size:11px;white-space:nowrap}
.gen-card p{margin:0;color:#94a3b8;font-size:12px}
.gen-progress{height:6px;margin:0}
.gen-skeleton{display:grid;place-items:center;position:relative;overflow:hidden}
.gen-skeleton::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.08) 42%,transparent 72%);transform:translateX(-100%);animation:gen-shimmer 1.4s ease-out infinite}
.gen-skeleton span{position:relative;z-index:1;color:#c7d2fe;font-weight:700}
.gen-status-succeeded .gen-card-title span{border-color:rgba(52,211,153,.28);background:rgba(5,150,105,.12);color:#86efac}
.gen-status-running .gen-card-title span,.gen-status-pending .gen-card-title span{border-color:rgba(96,165,250,.28);background:rgba(37,99,235,.12);color:#bfdbfe}
.gen-status-failed .gen-card-title span{border-color:rgba(248,113,113,.28);background:rgba(185,28,28,.12);color:#fecaca}
.gen-status-failed .progress-fill{background:linear-gradient(90deg,#fb7185,#ef4444)}
.gen-error{color:#fecaca!important;word-break:break-word}
.retention-note{display:block;margin:6px 0;color:#94a3b8;font-size:11px}
@keyframes gen-shimmer{to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.gen-skeleton::before{animation:none}}
@media(max-height:820px) and (min-width:1181px){.main{padding:14px}.generate-toolbar{margin-bottom:10px}.generate-compose{min-height:320px}.generate-compose textarea{min-height:180px}.prompt-chip-row{padding:10px 14px}.generate-bottom{margin-top:10px}#tab-generate .image-card img,#tab-generate .image-preview{height:134px}#tab-generate .prompt-panel .template-grid{max-height:390px}}
@media(max-width:1180px){.generate-workbench,.generate-bottom{grid-template-columns:1fr}.generate-compose{min-height:340px}#tab-generate .image-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
#tab-generate.active{
  display:grid;
  grid-template-columns:minmax(360px,.62fr) minmax(620px,1.38fr);
  grid-template-rows:auto minmax(0,1fr);
  grid-template-areas:
    "toolbar toolbar"
    "left results";
  gap:12px;
  height:calc(100vh - 36px);
  min-height:620px;
  overflow:hidden;
}
#tab-generate .generate-toolbar{grid-area:toolbar;margin-bottom:0;min-height:38px}
#tab-generate .generate-workbench,
#tab-generate .generate-bottom{display:contents}
#tab-generate .generate-left{grid-area:left;display:grid;grid-template-rows:auto auto;gap:10px;min-height:0}
#tab-generate .generate-compose{min-height:0;height:100%}
#tab-generate .result-strip{grid-area:results;display:flex;min-height:0;flex-direction:column}
#tab-generate .generate-settings{min-height:0}
#tab-generate .prompt-panel{min-height:0}
#tab-generate .card-head{padding:10px 12px}
#tab-generate .card-head h2{font-size:15px}
#tab-generate .card-head p{font-size:12px}
#tab-generate .generate-compose textarea{min-height:92px;flex:0 0 auto;padding:12px 14px;font-size:14px;line-height:1.45}
#tab-generate .generate-settings-inline{border-top:1px solid rgba(148,163,184,.1);padding:10px 12px 0}
#tab-generate .inline-section-title{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:8px}
#tab-generate .inline-section-title b{color:#f8fafc;font-size:14px}
#tab-generate .inline-section-title span{color:#64748b;font-size:12px}
#tab-generate .generate-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0}
#tab-generate .generate-form-grid label{gap:4px}
#tab-generate input,#tab-generate select,#tab-generate textarea{padding:8px 9px}
#tab-generate .generate-upload{grid-template-columns:1fr;gap:8px;padding:10px 12px}
#tab-generate .dropzone{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px dashed rgba(148,163,184,.28);border-radius:8px;background:rgba(2,6,23,.42);padding:12px}
#tab-generate .dropzone.dragover{border-color:rgba(96,165,250,.7);background:rgba(37,99,235,.14)}
#tab-generate .dropzone-copy{display:grid;gap:2px;min-width:0}
#tab-generate .dropzone-copy strong{color:#e2e8f0;font-size:13px}
#tab-generate .dropzone-copy small{color:#7f8da7;font-size:11px}
#tab-generate .generate-submit{grid-template-columns:minmax(160px,220px) minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px}
#tab-generate .generate-submit .big{min-height:38px}
#tab-generate .generate-settings{overflow:hidden}
#tab-generate .prompt-panel{overflow:hidden}
#tab-generate .template-picker{display:grid;min-height:0;padding:0 12px 10px}
#tab-generate .template-picker summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;color:#cbd5e1;padding:9px 0;font-weight:600}
#tab-generate .template-picker summary::after{content:"展开";border:1px solid rgba(148,163,184,.18);border-radius:999px;background:rgba(148,163,184,.08);padding:2px 8px;color:#94a3b8;font-size:11px;font-weight:500}
#tab-generate .template-picker[open] summary::after{content:"收起"}
#tab-generate .template-picker summary::-webkit-details-marker{display:none}
#tab-generate .template-grid{grid-template-columns:1fr;gap:8px;padding:0;max-height:220px;overflow:auto}
#tab-generate .template-choice{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:start;padding:10px}
#tab-generate .template-thumb{width:64px;height:64px;border-radius:8px;object-fit:cover;background:linear-gradient(135deg,#111827,#1d4ed8 50%,#0f172a)}
#tab-generate .template-thumb-empty{border:1px dashed rgba(148,163,184,.18)}
#tab-generate .template-main{display:grid;gap:6px;min-width:0}
#tab-generate .template-main h3{font-size:12px}
#tab-generate .template-main p{margin:0;font-size:11px;line-height:1.45;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}
#tab-generate .template-main .actions{gap:6px}
#tab-generate .template-main .actions button{padding:5px 8px;min-height:28px}
#tab-generate .image-grid.compact{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-height:0;overflow:auto;padding:12px}
#tab-generate .image-card img,#tab-generate .image-preview{height:150px}
#tab-generate .image-card .body{padding:9px}
#tab-generate .image-card .actions{gap:5px}
#tab-generate .image-card .actions button{min-height:28px;padding:5px 8px;font-size:12px}
#tab-generate .gen-preview-button{display:block;width:100%;border:0;border-radius:0;background:transparent;padding:0;overflow:hidden}
#tab-generate .gen-preview-button:hover{background:transparent}
#tab-generate .gen-preview-button img{display:block}
#tab-generate .empty{min-height:120px;padding:20px}
@media(max-height:800px) and (min-width:1181px){
  #tab-generate.active{height:calc(100vh - 28px);min-height:560px;gap:10px}
  #tab-generate .generate-toolbar{min-height:32px}
  #tab-generate .generate-toolbar h1{font-size:22px}
  #tab-generate .generate-toolbar span{display:none}
  #tab-generate .card-head{padding:8px 10px}
  #tab-generate .generate-compose textarea{padding:10px 12px;font-size:13px;line-height:1.42;min-height:74px}
  #tab-generate .generate-settings-inline{padding:8px 10px 0}
  #tab-generate .generate-upload,#tab-generate .generate-submit{padding:7px 10px}
  #tab-generate .dropzone{padding:9px 10px}
  #tab-generate .template-picker{padding:0 10px 10px}
  #tab-generate .template-grid{max-height:180px}
  #tab-generate .image-grid.compact{padding:10px}
  #tab-generate .image-card img,#tab-generate .image-preview{height:116px}
}
@media(max-width:1180px){
  #tab-generate.active{display:block;height:auto;min-height:0;overflow:visible}
  #tab-generate .generate-workbench,#tab-generate .generate-bottom{display:grid}
  #tab-generate .generate-workbench,#tab-generate .generate-bottom{grid-template-columns:1fr}
  #tab-generate .generate-toolbar{margin-bottom:14px}
  #tab-generate .generate-compose{height:auto;min-height:340px}
  #tab-generate .generate-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #tab-generate .prompt-panel .template-grid{height:auto;max-height:none}
}
@media(max-width:760px){
  #tab-generate .generate-form-grid{grid-template-columns:1fr}
  #tab-generate .generate-submit{grid-template-columns:1fr}
  #tab-generate .dropzone{align-items:stretch;flex-direction:column}
}
@media(min-width:1560px){
  #tab-generate .image-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1320px) and (min-width:1181px){
  #tab-generate.active{grid-template-columns:minmax(330px,.7fr) minmax(520px,1.3fr)}
  #tab-generate .image-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.work-thumb-button{display:block;width:80px;height:70px;border:0;border-radius:6px;background:transparent;padding:0;overflow:hidden}
.work-thumb-button img{width:80px;height:70px;border-radius:6px;object-fit:cover;background:#111827}
.preview-modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px}
.preview-modal.hidden{display:none!important}
.preview-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.82);backdrop-filter:blur(10px)}
.preview-dialog{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(1120px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:hidden;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:#080d19;box-shadow:0 30px 90px rgba(0,0,0,.55)}
.preview-head,.preview-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(148,163,184,.12);padding:12px 14px}
.preview-head b{display:block;color:#f8fafc}
.preview-head span{display:block;color:#64748b;font-size:12px}
.preview-dialog img{display:block;width:100%;height:100%;max-height:calc(100vh - 170px);object-fit:contain;background:linear-gradient(45deg,rgba(148,163,184,.08) 25%,transparent 25%,transparent 75%,rgba(148,163,184,.08) 75%),linear-gradient(45deg,rgba(148,163,184,.08) 25%,transparent 25%,transparent 75%,rgba(148,163,184,.08) 75%);background-position:0 0,12px 12px;background-size:24px 24px}
.preview-actions{justify-content:flex-end;border-top:1px solid rgba(148,163,184,.12);border-bottom:0;background:rgba(15,23,42,.72)}
body.modal-open{overflow:hidden}
.template-admin-layout{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);gap:14px;padding:16px}
.template-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}
.template-form .checkbox-label{display:flex;align-items:center;gap:8px;color:#cbd5e1}
.template-form .checkbox-label input{width:auto}
.template-prompt-field,.template-form-actions,.template-image-field,.template-helper-row,.template-batch-field{grid-column:1/-1}
.template-form textarea{min-height:150px;resize:vertical}
.template-form-actions{align-items:center}
.template-form-actions #templateMsg{color:#94a3b8}
.template-helper-row{display:flex;align-items:center;gap:10px;color:#94a3b8;font-size:12px;flex-wrap:wrap}
.template-helper-row button{padding:8px 12px;font-size:12px}
.template-batch-field textarea{min-height:120px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.template-image-drop{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;align-items:center;border:1px dashed rgba(148,163,184,.22);border-radius:8px;background:rgba(2,6,23,.32);padding:10px}
.template-image-drop:hover,.template-image-drop.dragover{border-color:rgba(129,140,248,.58);background:rgba(99,102,241,.1)}
.template-image-preview{display:grid;place-items:center;width:100%;aspect-ratio:16/10;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#111827,#1d4ed8 50%,#0f172a);color:#64748b}
.template-image-preview img{display:block;width:100%;height:100%;object-fit:cover}
.template-image-copy{display:grid;gap:6px;min-width:0}
.template-image-copy b{color:#f8fafc}
.template-image-copy small{color:#94a3b8}
.template-admin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;max-height:620px;overflow:auto}
.admin-template-item{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(148,163,184,.12);border-radius:8px;background:rgba(2,6,23,.28)}
.admin-template-cover{width:100%;aspect-ratio:16/10;background:linear-gradient(135deg,#111827,#1d4ed8 50%,#0f172a)}
.admin-template-cover img{display:block;width:100%;height:100%;object-fit:cover}
.admin-template-cover.empty{display:grid;place-items:center;min-height:0;padding:0;border:0;border-radius:0;color:#64748b}
.admin-template-body{display:grid;gap:7px;min-width:0;padding:12px}
.admin-template-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin-template-title b{color:#f8fafc}
.admin-template-item p{display:-webkit-box;margin:7px 0;color:#94a3b8;font-size:12px;line-height:1.5;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.admin-template-item small{color:#64748b}
.admin-template-item .actions{justify-content:flex-end;padding:0 12px 12px}
@media(max-width:760px){
  .preview-modal{padding:10px}
  .preview-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}
  .preview-head,.preview-actions{align-items:stretch;flex-direction:column}
  .preview-actions button{width:100%}
  .template-admin-layout,.template-form,.template-image-drop,.template-admin-list{grid-template-columns:1fr}
  .template-admin-list{max-height:none}
}

body[data-theme="obsidian"]{
  --app-bg:#080c12;
  --app-bg-2:#101820;
  --side-bg:rgba(9,13,19,.96);
  --surface:linear-gradient(180deg,rgba(22,29,38,.94),rgba(13,18,26,.98));
  --surface-flat:rgba(20,27,36,.82);
  --surface-soft:rgba(255,255,255,.045);
  --control:rgba(255,255,255,.055);
  --control-hover:rgba(49,196,219,.12);
  --input-bg:rgba(6,10,16,.82);
  --border:rgba(167,185,205,.15);
  --border-strong:rgba(89,214,232,.46);
  --text:#e7edf4;
  --muted:#9aa8b8;
  --subtle:#6f7e8f;
  --accent:#31c4db;
  --accent-2:#417dff;
  --accent-soft:rgba(49,196,219,.14);
  --accent-text:#bff7ff;
  --success:#3ddc97;
  --warn:#f3bf4f;
  --danger:#ff6b83;
  --shadow:0 20px 54px rgba(0,0,0,.32);
  --app-glow-1:rgba(49,196,219,.18);
  --app-glow-2:rgba(65,125,255,.14);
}
body[data-theme="neon"]{
  --app-bg:#080712;
  --app-bg-2:#141026;
  --side-bg:rgba(11,9,24,.96);
  --surface:linear-gradient(180deg,rgba(27,22,48,.94),rgba(15,12,31,.98));
  --surface-flat:rgba(25,20,44,.84);
  --surface-soft:rgba(255,255,255,.055);
  --control:rgba(255,255,255,.065);
  --control-hover:rgba(80,255,214,.12);
  --input-bg:rgba(8,7,20,.84);
  --border:rgba(188,178,255,.16);
  --border-strong:rgba(80,255,214,.5);
  --text:#f1efff;
  --muted:#aaa7c5;
  --subtle:#7d789a;
  --accent:#50ffd6;
  --accent-2:#7c5cff;
  --accent-soft:rgba(80,255,214,.13);
  --accent-text:#c9fff5;
  --success:#47e6a1;
  --warn:#ffd166;
  --danger:#ff5d9e;
  --shadow:0 22px 64px rgba(0,0,0,.38);
  --app-glow-1:rgba(80,255,214,.18);
  --app-glow-2:rgba(124,92,255,.2);
}
body[data-theme="clear"]{
  --app-bg:#eef5f8;
  --app-bg-2:#dfeaf0;
  --side-bg:rgba(247,251,253,.92);
  --surface:linear-gradient(180deg,rgba(255,255,255,.92),rgba(234,242,247,.94));
  --surface-flat:rgba(255,255,255,.78);
  --surface-soft:rgba(12,28,42,.045);
  --control:rgba(9,30,45,.055);
  --control-hover:rgba(0,137,167,.12);
  --input-bg:rgba(255,255,255,.88);
  --border:rgba(35,62,82,.16);
  --border-strong:rgba(0,137,167,.44);
  --text:#172331;
  --muted:#5a6b7b;
  --subtle:#7c8b98;
  --accent:#0089a7;
  --accent-2:#4f73ff;
  --accent-soft:rgba(0,137,167,.12);
  --accent-text:#003f50;
  --success:#0d946b;
  --warn:#a76500;
  --danger:#d9365b;
  --shadow:0 18px 50px rgba(34,64,86,.16);
  --app-glow-1:rgba(0,137,167,.14);
  --app-glow-2:rgba(79,115,255,.12);
}
body[data-theme="pink"]{
  --app-bg:#100a12;
  --app-bg-2:#211521;
  --side-bg:rgba(20,11,21,.96);
  --surface:linear-gradient(180deg,rgba(41,27,44,.94),rgba(25,15,29,.98));
  --surface-flat:rgba(42,28,47,.82);
  --surface-soft:rgba(255,255,255,.06);
  --control:rgba(255,255,255,.065);
  --control-hover:rgba(255,126,172,.13);
  --input-bg:rgba(15,9,18,.84);
  --border:rgba(255,205,226,.16);
  --border-strong:rgba(255,126,172,.5);
  --text:#fff1f7;
  --muted:#c8a8b8;
  --subtle:#9f788d;
  --accent:#ff7eac;
  --accent-2:#9d8cff;
  --accent-soft:rgba(255,126,172,.14);
  --accent-text:#ffe1ec;
  --success:#55dda1;
  --warn:#ffd166;
  --danger:#ff6f91;
  --shadow:0 22px 62px rgba(0,0,0,.34);
  --app-glow-1:rgba(255,126,172,.18);
  --app-glow-2:rgba(157,140,255,.16);
}

body[data-theme]{
  background:var(--app-bg);
  color:var(--text);
}
body[data-theme] .shell{
  background:
    radial-gradient(circle at 18% -8%,var(--app-glow-1),transparent 34%),
    radial-gradient(circle at 94% 0%,var(--app-glow-2),transparent 32%),
    linear-gradient(135deg,var(--app-bg),var(--app-bg-2));
}
body[data-theme] .side{
  min-height:0;
  border-right-color:var(--border);
  background:var(--side-bg);
  backdrop-filter:blur(18px);
}
body[data-theme] .nav{
  min-height:0;
  overflow:auto;
}
body[data-theme] .brand{
  border-bottom-color:var(--border);
}
body[data-theme] .brand b,
body[data-theme] .card h1,
body[data-theme] .card h2,
body[data-theme] .toolbar h1,
body[data-theme] .template h3,
body[data-theme] .image-card h3,
body[data-theme] .admin-template-title b,
body[data-theme] .preview-head b,
body[data-theme] .theme-switcher-head b{
  color:var(--text);
}
body[data-theme] .brand small,
body[data-theme] .profile small,
body[data-theme] .card p,
body[data-theme] .toolbar span,
body[data-theme] .message,
body[data-theme] label,
body[data-theme] .template p,
body[data-theme] .image-card p,
body[data-theme] .ledger-meta,
body[data-theme] .pool-log-meta,
body[data-theme] .theme-switcher-head span{
  color:var(--muted);
}
body[data-theme] .logo{
  background:var(--accent-soft);
  color:var(--accent-text);
  box-shadow:inset 0 0 0 1px var(--border-strong);
}
body[data-theme] button{
  border-color:var(--border);
  background:var(--control);
  color:var(--text);
}
body[data-theme] button:hover{
  border-color:var(--border-strong);
  background:var(--control-hover);
  color:var(--text);
}
body[data-theme] button.primary,
body[data-theme] .nav button.active{
  border-color:var(--border-strong);
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:#fff;
  box-shadow:0 12px 30px color-mix(in srgb,var(--accent) 24%,transparent);
}
body[data-theme="clear"] button.primary,
body[data-theme="clear"] .nav button.active{
  color:#fff;
}
body[data-theme] .nav button{
  color:var(--muted);
}
body[data-theme] input,
body[data-theme] select,
body[data-theme] textarea{
  border-color:var(--border);
  background:var(--input-bg);
  color:var(--text);
}
body[data-theme] input::placeholder,
body[data-theme] textarea::placeholder{
  color:color-mix(in srgb,var(--muted) 72%,transparent);
}
body[data-theme] button:focus-visible,
body[data-theme] input:focus-visible,
body[data-theme] select:focus-visible,
body[data-theme] textarea:focus-visible{
  outline-color:var(--accent);
}
body[data-theme] .card,
body[data-theme] .profile,
body[data-theme] .metric,
body[data-theme] .model-select,
body[data-theme] .theme-switcher,
body[data-theme] .template,
body[data-theme] .image-card,
body[data-theme] .work,
body[data-theme] .metric-row,
body[data-theme] .pool-log-item,
body[data-theme] .pool-refresh-progress,
body[data-theme] .admin-template-item,
body[data-theme] .template-image-drop,
body[data-theme] #tab-generate .dropzone,
body[data-theme] .preview-dialog,
body[data-theme] .quote,
body[data-theme] .ledger-thumb-button,
body[data-theme] .ledger-empty-thumb,
body[data-theme] .status-pill{
  border-color:var(--border);
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--shadow);
}
body[data-theme] .card-head,
body[data-theme] .card-head.flat,
body[data-theme] .brand,
body[data-theme] .pool-actions,
body[data-theme] .pool-auto-state,
body[data-theme] .generate-settings-inline,
body[data-theme] #tab-generate .generate-compose textarea,
body[data-theme] #tab-generate .generate-upload,
body[data-theme] #tab-generate .generate-submit,
body[data-theme] .preview-head,
body[data-theme] .preview-actions,
body[data-theme] th,
body[data-theme] td{
  border-color:var(--border);
}
body[data-theme] .compose textarea,
body[data-theme] #tab-generate .generate-compose textarea{
  background:var(--input-bg);
  color:var(--text);
}
body[data-theme] .chip,
body[data-theme] .chips button{
  border-color:var(--border-strong);
  background:var(--accent-soft);
  color:var(--accent-text);
}
body[data-theme] th{
  background:var(--surface-soft);
  color:var(--subtle);
}
body[data-theme] td{
  color:var(--text);
}
body[data-theme] pre{
  background:var(--input-bg);
  color:var(--muted);
}
body[data-theme] .empty,
body[data-theme] .empty-cell,
body[data-theme] .admin-template-cover.empty{
  border-color:var(--border);
  background:var(--surface-soft);
  color:var(--muted);
}
body[data-theme] .image-card img,
body[data-theme] .image-preview,
body[data-theme] .template-thumb,
body[data-theme] .admin-template-cover,
body[data-theme] .template-image-preview{
  background:linear-gradient(135deg,var(--surface-flat),var(--accent-soft) 52%,var(--app-bg-2));
}
body[data-theme] .progress-fill{
  background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--success));
}
body[data-theme] .income,
body[data-theme] .metric.ok b,
body[data-theme] .pool-metric.ok b,
body[data-theme] .quote b{
  color:var(--success);
}
body[data-theme] .expense,
body[data-theme] .danger-text,
body[data-theme] .gen-error{
  color:var(--danger)!important;
}
body[data-theme] .metric.hot b,
body[data-theme] .pool-metric.warn b{
  color:var(--warn);
}
body[data-theme] .preview-backdrop{
  background:color-mix(in srgb,var(--app-bg) 86%,transparent);
}
body[data-theme] .avatar{
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:#fff;
}
body[data-theme="clear"] .avatar{
  color:#fff;
}

.theme-switcher{
  display:grid;
  gap:10px;
  margin:0 0 10px;
  padding:10px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
  background:rgba(255,255,255,.05);
}
.theme-switcher-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  font-size:12px;
}
.theme-switcher-head span{
  color:#64748b;
}
.theme-switcher-head b{
  color:#f8fafc;
  font-size:12px;
}
.theme-options{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.theme-pill{
  display:flex;
  min-height:32px;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  padding:6px 7px;
  font-size:12px;
}
.theme-pill.active{
  border-color:var(--border-strong);
  background:var(--accent-soft);
  color:var(--accent-text);
}
.theme-dot{
  width:12px;
  height:12px;
  flex:0 0 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  box-shadow:0 0 0 3px rgba(255,255,255,.05);
}
.theme-dot-obsidian{background:linear-gradient(135deg,#141b24,#31c4db)}
.theme-dot-neon{background:linear-gradient(135deg,#7c5cff,#50ffd6)}
.theme-dot-clear{background:linear-gradient(135deg,#ffffff,#0089a7)}
.theme-dot-pink{background:linear-gradient(135deg,#ff7eac,#9d8cff)}

@media(max-width:960px){
  .theme-switcher{
    margin-top:8px;
  }
  .theme-options{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .theme-pill{
    justify-content:center;
  }
}
@media(max-width:560px){
  .theme-options{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Cockpit layout aligned to the latest reference image. */
body[data-theme]{
  overflow:hidden;
  font-size:14px;
}
body[data-theme] .shell{
  grid-template-columns:132px minmax(0,1fr);
  height:100dvh;
  min-height:0;
  overflow:hidden;
}
body[data-theme] .side{
  padding:22px 10px 14px;
}
body[data-theme] .brand{
  justify-content:center;
  padding:0 4px 28px;
}
body[data-theme] .brand .logo{
  display:none;
}
body[data-theme] .brand b{
  font-size:26px;
  line-height:1;
  letter-spacing:0;
}
body[data-theme] .brand small{
  display:none;
}
body[data-theme] .nav{
  gap:10px;
  padding:12px 0;
  overflow:auto;
  scrollbar-width:none;
}
body[data-theme] .nav::-webkit-scrollbar{display:none}
body[data-theme] .nav button{
  min-height:44px;
  border-radius:12px;
  padding:10px 12px;
  text-align:center;
  white-space:nowrap;
}
body[data-theme] .nav button.active{
  box-shadow:inset 0 0 0 1px var(--border-strong),0 12px 28px color-mix(in srgb,var(--accent) 28%,transparent);
}
body[data-theme] .profile{
  gap:8px;
  border-radius:14px;
  padding:10px;
  box-shadow:none;
}
body[data-theme] .profile-actions{
  gap:6px;
}
body[data-theme] .profile-actions button{
  min-height:32px;
  padding:6px 8px;
}
body[data-theme] .theme-switcher{
  display:none;
}
body[data-theme] .main{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:14px;
  min-height:0;
  overflow:hidden;
  padding:20px 22px 18px;
}
.app-topbar{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  min-height:46px;
}
.app-status-pill,
.balance-pill,
.skin-trigger{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:38px;
  border:1px solid var(--border);
  border-radius:999px;
  background:color-mix(in srgb,var(--surface-flat) 80%,transparent);
  color:var(--muted);
  padding:8px 14px;
  box-shadow:none;
  white-space:nowrap;
}
.app-status-pill b,
.balance-pill b,
.skin-trigger b{
  color:var(--text);
  font-weight:700;
}
.live-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--success);
  box-shadow:0 0 0 5px color-mix(in srgb,var(--success) 16%,transparent);
}
.topbar-spacer{flex:1;min-width:8px}
.balance-pill{
  cursor:pointer;
}
.plus-dot{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent-text);
  font-weight:800;
}
.skin-menu{
  position:relative;
  z-index:12;
}
.skin-trigger{
  min-width:134px;
  justify-content:space-between;
  border-color:var(--border-strong);
}
.skin-popover{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  display:grid;
  gap:6px;
  min-width:132px;
  padding:8px;
  border:1px solid var(--border);
  border-radius:14px;
  background:color-mix(in srgb,var(--side-bg) 96%,transparent);
  box-shadow:0 18px 46px rgba(0,0,0,.35);
  opacity:0;
  transform:translateY(-6px);
  pointer-events:none;
  transition:opacity .16s ease,transform .16s ease;
}
.skin-menu:hover .skin-popover,
.skin-menu:focus-within .skin-popover{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.skin-choice{
  justify-content:flex-start;
  min-height:36px;
  border-radius:10px;
  box-shadow:none!important;
}
.skin-choice.active{
  border-color:var(--border-strong);
  background:var(--accent-soft);
  color:var(--accent-text);
}
.auth{
  align-self:start;
}
.auth[data-auth-mode="login"]{
  width:min(520px,calc(100vw - 32px)) !important;
}
.auth[data-auth-mode="register"]{
  width:min(620px,calc(100vw - 32px)) !important;
}
.auth[data-auth-mode="login"] .auth-register-only,
.auth[data-auth-mode="login"] #register,
.auth[data-auth-mode="login"] #showLogin{
  display:none!important;
}
.auth[data-auth-mode="register"] #login,
.auth[data-auth-mode="register"] #showRegister{
  display:none!important;
}
.auth[data-auth-mode="login"] .auth-grid{
  grid-template-columns:1fr;
}
.auth[data-auth-mode="register"] .auth-grid{
  grid-template-columns:1fr;
}
.auth-code-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
}
.auth-code-row button{
  white-space:nowrap;
}
.auth-actions{
  justify-content:flex-start;
}
#authBox{
  position:fixed;
  left:50%;
  top:50%;
  z-index:70;
  width:min(820px,calc(100vw - 32px));
  max-height:calc(100dvh - 32px);
  margin:0;
  overflow:auto;
  transform:translate(-50%,-50%);
}
.tab{
  min-height:0;
  overflow:auto;
  scrollbar-width:thin;
}
.toolbar{
  min-height:46px;
  margin-bottom:14px;
}
.toolbar h1{
  font-size:24px;
  line-height:1.1;
}
.toolbar span{
  font-size:13px;
}
body[data-theme] .card,
body[data-theme] .assist-card{
  border-radius:14px;
  box-shadow:0 18px 60px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.04);
}

#tab-generate.active{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  grid-template-rows:auto minmax(0,1fr) auto;
  grid-template-areas:
    "toolbar assist"
    "canvas assist"
    "composer assist";
  gap:14px 18px;
  height:100%;
  min-height:0;
  overflow:hidden;
}
#tab-generate .generate-toolbar{
  grid-area:toolbar;
  margin:0;
}
#tab-generate .generate-toolbar button{
  display:none;
}
#tab-generate .generate-workbench{
  display:contents;
}
#tab-generate .generate-left{
  display:contents;
}
#tab-generate .result-strip{
  grid-area:canvas;
  display:flex;
  min-height:0;
  overflow:hidden;
}
#tab-generate .result-strip .card-head{
  display:none;
}
#tab-generate .result-strip .card-head div{
  display:none;
}
#tab-generate .result-strip .card-head button{
  min-height:32px;
  border-radius:999px;
  padding:6px 10px;
}
#tab-generate .image-grid.compact{
  display:grid;
  grid-template-columns:1fr;
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
  padding:0;
}
#tab-generate .gen-card{
  min-height:0;
  border:0;
  border-radius:14px;
  background:linear-gradient(135deg,rgba(12,20,30,.96),rgba(20,36,54,.88));
}
#tab-generate .gen-card.selected{
  outline:1px solid color-mix(in srgb,var(--accent) 46%,transparent);
  outline-offset:-1px;
}
#tab-generate .gen-card:first-child{
  display:grid;
  height:100%;
}
#tab-generate .gen-card:not(:first-child){
  display:none;
}
#tab-generate .gen-card:first-child .gen-preview-button,
#tab-generate .gen-card:first-child>img,
#tab-generate .gen-card:first-child .image-preview{
  height:100%;
}
#tab-generate .gen-card:first-child .gen-preview-button img,
#tab-generate .gen-card:first-child .image-preview{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:contain;
  background:
    radial-gradient(circle at 22% 12%,var(--app-glow-1),transparent 32%),
    linear-gradient(135deg,var(--surface-flat),var(--app-bg-2));
}
#tab-generate .gen-card:first-child .body{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(0,0,0,.32);
  backdrop-filter:blur(12px);
}
#tab-generate .gen-card:first-child .body .actions,
#tab-generate .gen-card:first-child .retention-note,
#tab-generate .gen-card:first-child .gen-error{
  display:none;
}
#tab-generate .empty{
  display:grid;
  place-items:center;
  min-height:100%;
  border:1px dashed var(--border);
  background:
    radial-gradient(circle at 24% 18%,var(--app-glow-1),transparent 30%),
    linear-gradient(135deg,var(--surface-flat),var(--app-bg-2));
  color:var(--muted);
}
#tab-generate .generate-compose{
  grid-area:composer;
  min-height:0;
  height:auto;
  display:grid;
  grid-template-columns:minmax(300px,1fr) minmax(170px,.45fr) minmax(300px,.85fr) auto;
  grid-template-areas:
    "head head head head"
    "prompt upload settings submit";
  gap:12px;
  padding:14px;
}
#tab-generate .generate-compose>.card-head{
  grid-area:head;
  min-height:28px;
  border:0;
  padding:0;
}
#tab-generate .generate-compose textarea{
  grid-area:prompt;
  min-height:116px;
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px 14px;
}
#tab-generate .generate-settings-inline{
  grid-area:settings;
  border:0;
  padding:0;
}
#tab-generate .generate-form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
#tab-generate .generate-upload{
  grid-area:upload;
  border:0;
  padding:0;
}
#tab-generate .dropzone{
  min-height:74px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  text-align:center;
}
#tab-generate .generate-submit{
  grid-area:submit;
  display:grid;
  grid-template-columns:1fr;
  align-content:end;
  border:0;
  margin:0;
  padding:0;
}
#tab-generate .generate-submit .big{
  justify-self:end;
  width:132px;
  min-height:40px;
  border-radius:10px;
  padding-inline:14px;
}
#tab-generate .prompt-panel{
  display:none;
}
.generate-assist{
  grid-area:assist;
  display:grid;
  grid-template-rows:minmax(190px,.92fr) minmax(220px,1fr) auto auto;
  gap:14px;
  min-height:0;
}
.assist-card{
  min-height:0;
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--surface);
}
.queue-card,
.recent-card{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
}
.assist-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
}
.assist-head b{
  color:var(--text);
}
.assist-head button{
  min-height:28px;
  border:0;
  background:transparent;
  color:var(--muted);
  padding:4px 6px;
  box-shadow:none!important;
}
.queue-list{
  display:grid;
  align-content:start;
  gap:10px;
  min-height:0;
  padding:12px;
  overflow:auto;
  max-height:100%;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
.queue-item{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-soft);
  padding:10px;
}
.queue-item.active{
  border-color:color-mix(in srgb,var(--accent) 64%,var(--border));
  background:color-mix(in srgb,var(--accent-soft) 44%,var(--surface-soft));
}
.queue-item img,
.queue-thumb{
  width:72px;
  height:58px;
  object-fit:cover;
  border-radius:8px;
  background:linear-gradient(135deg,var(--surface-flat),var(--accent-soft));
}
.queue-body{
  display:grid;
  gap:4px;
  min-width:0;
}
.queue-body b,
.queue-body span,
.queue-body small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.queue-body b{color:var(--text)}
.queue-body span{color:var(--accent-text);font-size:12px}
.queue-body small{color:var(--muted);font-size:11px}
.queue-body .progress-bar{
  height:6px;
  margin:0;
}
.queue-delete{
  min-height:30px;
  padding:5px 8px;
}
.recent-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:82px;
  align-content:start;
  gap:10px;
  min-height:0;
  padding:12px;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
.recent-work{
  display:block;
  width:100%;
  height:82px;
  min-height:0;
  overflow:hidden;
  border-radius:10px;
  padding:0;
  line-height:0;
}
.recent-work.active{
  border-color:color-mix(in srgb,var(--accent) 72%,var(--border));
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 36%,transparent);
}
.recent-work img{
  display:block;
  width:100%;
  height:82px;
  max-width:none;
  object-fit:cover;
  object-position:center;
}
#tab-generate .recent-grid .recent-work,
body[data-theme] #tab-generate .recent-grid .recent-work{
  height:82px;
  min-height:0;
  max-height:82px;
}
#tab-generate .recent-grid .recent-work img,
body[data-theme] #tab-generate .recent-grid .recent-work img{
  display:block;
  width:100%;
  height:82px;
  min-height:0;
  max-height:82px;
  object-fit:cover;
}
.assist-empty{
  display:grid;
  min-height:96px;
  place-items:center;
  color:var(--muted);
}
.quick-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:12px;
}
.quick-actions button{
  min-height:40px;
  border-radius:10px;
}
.recharge-mini{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px;
}
.recharge-mini div{
  display:grid;
  gap:2px;
}
.recharge-mini b{
  color:var(--accent-text);
}
.recharge-mini span{
  color:var(--muted);
  font-size:12px;
}
.asset-preview{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  min-height:54px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-soft);
  padding:7px;
}
.asset-preview img{
  width:54px;
  height:54px;
  object-fit:cover;
  border-radius:8px;
  background:var(--surface-flat);
}
.asset-preview b,
.asset-preview small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.asset-preview b{color:var(--text)}
.asset-preview small{color:var(--muted);font-size:12px}
.asset-preview button{
  min-height:30px;
  padding:5px 8px;
}
.prompt-assist-modal{
  position:fixed;
  inset:0;
  z-index:55;
  display:grid;
  place-items:center;
  padding:24px;
}
.prompt-assist-modal.hidden{display:none!important}
.prompt-assist-dialog{
  position:relative;
  z-index:1;
  display:grid;
  gap:12px;
  width:min(720px,calc(100vw - 32px));
  max-height:calc(100dvh - 48px);
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  box-shadow:0 24px 80px rgba(0,0,0,.42);
  overflow:hidden;
}
.prompt-assist-dialog textarea{
  min-height:120px;
  margin:0 14px;
  resize:vertical;
}
.prompt-assist-actions{
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 14px;
}
.prompt-assist-actions span{
  color:var(--muted);
  min-width:0;
}
.prompt-assist-result{
  margin:0 14px 14px;
  max-height:220px;
  overflow:auto;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--input-bg);
  color:var(--text);
  padding:12px;
  white-space:pre-wrap;
}

.tab:not(#tab-generate).active{
  padding-right:2px;
}
#tab-inspiration.active .image-grid,
#tab-favorites.active .image-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
#tab-works.active .work-list{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
#tab-admin.active .admin-layout,
#tab-templates.active .template-admin-layout,
#tab-pool.active .pool-layout,
#tab-billing.active .billing-grid{
  gap:14px;
}

@media(max-width:1440px){
  #tab-generate.active{
    grid-template-columns:minmax(0,1fr) 320px;
    gap:12px;
  }
  #tab-generate .generate-compose{
    grid-template-columns:minmax(240px,1fr) minmax(150px,.42fr) minmax(280px,.82fr) auto;
  }
  .recent-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:1180px){
  body[data-theme]{
    overflow:auto;
  }
  body[data-theme] .shell{
    grid-template-columns:1fr;
    height:auto;
    min-height:100dvh;
    overflow:visible;
  }
  body[data-theme] .main{
    overflow:visible;
  }
  body[data-theme] .side{
    position:sticky;
    top:0;
    z-index:20;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    padding:10px 12px;
  }
  body[data-theme] .brand{
    padding:0;
  }
  body[data-theme] .brand b{
    font-size:20px;
  }
  body[data-theme] .nav{
    display:flex;
    gap:8px;
    padding:0;
    overflow:auto;
  }
  body[data-theme] .nav button{
    min-height:38px;
    padding:8px 10px;
  }
  body[data-theme] .profile{
    display:none;
  }
  .app-topbar{
    overflow:auto;
    padding-bottom:2px;
  }
  #tab-generate.active{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:auto minmax(320px,48vh) auto auto;
    grid-template-areas:"toolbar" "canvas" "composer" "assist";
    height:auto;
    overflow:visible;
  }
  #tab-generate .generate-compose{
    grid-template-columns:1fr;
    grid-template-areas:"head" "prompt" "upload" "settings" "submit";
  }
  .generate-assist{
    grid-template-rows:auto;
  }
}
@media(max-width:760px){
  body[data-theme] .main{
    padding:12px;
  }
  .app-status-pill{
    display:none;
  }
  .balance-pill,.skin-trigger{
    min-height:36px;
  }
  #tab-generate .generate-form-grid,
  .quick-actions,
  #tab-works.active .work-list,
  #tab-inspiration.active .image-grid,
  #tab-favorites.active .image-grid{
    grid-template-columns:1fr;
  }
  .queue-item{
    grid-template-columns:58px minmax(0,1fr);
  }
  .queue-delete{
    grid-column:1/-1;
  }
  #tab-generate .generate-submit .big{
    width:100%;
  }
  .prompt-assist-actions{
    align-items:stretch;
    flex-direction:column;
  }
}

@media(min-width:1181px){
  #tab-generate.active{
    grid-template-rows:40px minmax(320px,1fr) minmax(210px,238px);
  }
  #tab-generate .generate-toolbar{
    min-height:40px;
  }
  #tab-generate .generate-toolbar h1{
    font-size:23px;
  }
  #tab-generate .generate-compose{
    grid-template-rows:auto minmax(0,1fr) auto;
    align-items:stretch;
    padding:12px;
  }
  #tab-generate .generate-compose>.card-head{
    min-height:24px;
  }
  #tab-generate .generate-compose>.card-head h2{
    font-size:14px;
  }
  #tab-generate .generate-compose>.card-head p{
    display:none;
  }
  #tab-generate .generate-compose textarea{
    min-height:0;
    height:100%;
    font-size:13px;
    line-height:1.45;
  }
  #tab-generate .dropzone{
    min-height:0;
    height:100%;
    padding:10px;
  }
  #tab-generate .dropzone-copy small{
    display:block;
    max-width:150px;
  }
  #tab-generate .inline-section-title{
    margin-bottom:6px;
  }
  #tab-generate .inline-section-title span{
    display:none;
  }
  #tab-generate .generate-form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  #tab-generate .generate-form-grid label{
    font-size:11px;
  }
  #tab-generate input,
  #tab-generate select,
  #tab-generate textarea{
    min-height:32px;
    padding:6px 8px;
  }
  #tab-generate .generate-submit .big{
    min-height:42px;
  }
}

/* Final generate workspace polish */
@media(min-width:1181px){
  #tab-generate.active{
    grid-template-columns:minmax(0,1fr) 360px;
    grid-template-rows:40px minmax(320px,1fr) minmax(200px,224px);
    gap:12px 18px;
  }
  #tab-generate .generate-compose{
    display:grid;
    grid-template-columns:minmax(360px,1.08fr) minmax(220px,.62fr) minmax(380px,1fr) 124px;
    grid-template-rows:24px minmax(0,1fr);
    grid-template-areas:
      "head head head head"
      "prompt upload settings submit";
    gap:10px 12px;
    padding:12px;
    overflow:hidden;
  }
  #tab-generate .generate-compose>.card-head{
    grid-area:head;
    align-items:center;
    min-height:24px;
  }
  #tab-generate .generate-compose textarea{
    grid-area:prompt;
    height:100%;
    min-height:0;
    max-height:174px;
    overflow:auto;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--input-bg);
    padding:12px 14px;
    resize:none;
  }
  #tab-generate .generate-upload{
    grid-area:upload;
    display:grid;
    grid-template-rows:minmax(0,1fr) auto;
    gap:8px;
    min-width:0;
  }
  #tab-generate .dropzone{
    height:100%;
    min-height:0;
    padding:12px;
  }
  #assetInfo{
    min-width:0;
  }
  .asset-preview{
    grid-template-columns:48px minmax(0,1fr) auto;
    padding:6px;
  }
  .asset-preview img{
    width:48px;
    height:42px;
  }
  #tab-generate .generate-settings-inline{
    grid-area:settings;
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    min-width:0;
    padding:10px;
    border:1px solid var(--border);
    border-radius:12px;
    background:color-mix(in srgb,var(--surface-flat) 70%,transparent);
  }
  #tab-generate .inline-section-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0 0 8px;
  }
  #tab-generate .inline-section-title b{
    color:var(--text);
    font-size:14px;
  }
  #tab-generate .inline-section-title span{
    display:block;
    overflow:hidden;
    max-width:160px;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  #tab-generate .generate-form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-content:start;
    gap:8px;
  }
  #tab-generate .generate-form-grid label{
    min-width:0;
    gap:4px;
  }
  #tab-generate .generate-form-grid select,
  #tab-generate .generate-form-grid input{
    min-width:0;
    height:36px;
  }
  #tab-generate .generate-submit{
    grid-area:submit;
    align-content:stretch;
    gap:8px;
  }
  #tab-generate .generate-submit .big{
    align-self:end;
    width:124px;
    min-height:38px;
    border-radius:12px;
  }
  #genMsg{
    align-self:start;
    max-width:124px;
    overflow:hidden;
    color:var(--muted);
    text-overflow:ellipsis;
    white-space:normal;
  }
}

#tab-generate .gen-card:first-child{
  grid-template-rows:minmax(0,1fr) auto;
  overflow:hidden;
}
#tab-generate .gen-card:first-child .gen-preview-button,
#tab-generate .gen-card:first-child>img,
#tab-generate .gen-card:first-child .image-preview{
  min-height:0;
  height:100%;
}
#tab-generate .gen-card:first-child .gen-preview-button img,
#tab-generate .gen-card:first-child .image-preview{
  min-height:0;
}
#tab-generate .gen-card:first-child .body{
  position:static;
  left:auto;
  right:auto;
  bottom:auto;
  display:grid;
  gap:8px;
  max-height:136px;
  overflow:hidden;
  border:0;
  border-top:1px solid var(--border);
  border-radius:0;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:none;
  padding:12px 14px;
}
#tab-generate .gen-card:first-child .gen-card-title h3{
  display:-webkit-box;
  overflow:hidden;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
#tab-generate .gen-card:first-child .gen-progress{
  position:relative;
  height:7px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(148,163,184,.16);
}
#tab-generate .gen-card:first-child.gen-status-succeeded .gen-progress{
  opacity:.7;
}

.prompt-assist-modal{
  place-items:stretch end;
  padding:0;
}
.prompt-assist-modal .preview-backdrop{
  background:rgba(5,8,18,.38);
}
.prompt-assist-dialog{
  position:fixed;
  top:86px;
  right:22px;
  bottom:172px;
  z-index:1;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  width:360px;
  max-width:calc(100vw - 44px);
  max-height:none;
  min-height:360px;
  transform:translateX(18px);
  animation:promptAssistSlideIn .18s ease forwards;
}
@keyframes promptAssistSlideIn{
  from{opacity:0;transform:translateX(28px)}
  to{opacity:1;transform:translateX(0)}
}
.prompt-assist-thread{
  display:grid;
  align-content:start;
  gap:10px;
  min-height:0;
  overflow:auto;
  padding:14px;
}
.assist-bubble{
  max-width:92%;
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px 12px;
  color:var(--text);
  white-space:pre-wrap;
  word-break:break-word;
}
.assist-bubble.user{
  justify-self:end;
  border-color:color-mix(in srgb,var(--accent) 34%,var(--border));
  background:var(--accent-soft);
  color:var(--accent-text);
}
.assist-bubble.assistant{
  justify-self:start;
  background:var(--input-bg);
}
.prompt-assist-result{
  margin:0;
  max-height:none;
  overflow:visible;
}
.prompt-assist-inputbar{
  display:grid;
  gap:8px;
  border-top:1px solid var(--border);
  padding:12px;
}
.prompt-assist-inputbar textarea{
  min-height:76px;
  max-height:132px;
  margin:0;
  resize:none;
}
.prompt-assist-actions{
  justify-content:space-between;
  padding:0;
}
.prompt-assist-actions button{
  min-height:36px;
}
#assistMsg{
  min-height:18px;
  color:var(--muted);
  font-size:12px;
}

@media(max-width:1440px) and (min-width:1181px){
  #tab-generate.active{
    grid-template-columns:minmax(0,1fr) 320px;
  }
  .prompt-assist-dialog{
    width:320px;
  }
  #tab-generate .generate-compose{
    grid-template-columns:minmax(300px,1fr) minmax(180px,.55fr) minmax(320px,.95fr) 116px;
  }
}

@media(max-width:1180px){
  .prompt-assist-dialog{
    top:74px;
    right:12px;
    bottom:12px;
    width:min(420px,calc(100vw - 24px));
  }
}

@media(max-width:760px){
  .prompt-assist-dialog{
    inset:0;
    width:100vw;
    max-width:none;
    min-height:100dvh;
    border-radius:0;
  }
}

/* Generate page cleanup: prompt layout, non-overlaid progress, measured chat drawer */
@media(min-width:1181px){
  #tab-generate .generate-compose{
    grid-template-columns:minmax(0,1fr) minmax(320px,.82fr) 122px !important;
    grid-template-rows:24px minmax(78px,1fr) minmax(72px,auto) !important;
    grid-template-areas:
      "head head head"
      "prompt settings submit"
      "upload settings submit" !important;
    gap:10px 12px !important;
    padding:12px !important;
  }
  #tab-generate .generate-compose>.card-head{
    padding:0 !important;
  }
  #tab-generate .generate-compose>.card-head p{
    display:none;
  }
  #tab-generate .generate-compose textarea{
    min-height:0 !important;
    max-height:none !important;
    height:100% !important;
    border-radius:12px !important;
  }
  #tab-generate .generate-settings-inline{
    min-height:0 !important;
    height:100% !important;
    grid-template-rows:auto minmax(0,1fr) !important;
    padding:10px !important;
  }
  #tab-generate .generate-form-grid{
    align-content:start !important;
    gap:7px 8px !important;
  }
  #tab-generate .generate-form-grid select,
  #tab-generate .generate-form-grid input{
    height:34px !important;
    padding-block:7px !important;
  }
  #tab-generate .generate-upload{
    min-height:0 !important;
    border:1px solid var(--border) !important;
    border-radius:12px !important;
    background:color-mix(in srgb,var(--surface-flat) 62%,transparent) !important;
    padding:8px !important;
  }
  #tab-generate .dropzone{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    min-height:54px !important;
    padding:8px 10px !important;
  }
  #tab-generate .dropzone-copy strong{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  #tab-generate .generate-submit{
    align-content:end !important;
    border:1px solid var(--border) !important;
    border-radius:12px !important;
    background:color-mix(in srgb,var(--surface-flat) 62%,transparent) !important;
    padding:10px !important;
  }
  #tab-generate .generate-submit .big{
    width:100% !important;
    min-height:38px !important;
    padding-inline:12px !important;
  }
}

#tab-generate .gen-card:first-child{
  position:relative !important;
  display:grid !important;
  grid-template-rows:minmax(0,1fr) auto !important;
  align-content:stretch !important;
  gap:0 !important;
  overflow:hidden !important;
}
#tab-generate .gen-card:first-child .gen-preview-button,
#tab-generate .gen-card:first-child>img,
#tab-generate .gen-card:first-child .image-preview{
  grid-row:1 !important;
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
}
#tab-generate .gen-card:first-child .gen-preview-button img,
#tab-generate .gen-card:first-child .image-preview{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  object-fit:contain !important;
}
#tab-generate .gen-card:first-child .body{
  grid-row:2 !important;
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  z-index:0 !important;
  max-height:98px !important;
  border:0 !important;
  border-top:1px solid var(--border) !important;
  border-radius:0 !important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,transparent),color-mix(in srgb,var(--surface-flat) 96%,transparent)) !important;
  backdrop-filter:none !important;
  box-shadow:none !important;
  padding:10px 14px 12px !important;
}
#tab-generate .gen-card:first-child .gen-card-title{
  align-items:center !important;
}
#tab-generate .gen-card:first-child .gen-card-title h3{
  -webkit-line-clamp:1 !important;
  font-size:13px !important;
}
#tab-generate .gen-card:first-child .body p{
  margin:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
#tab-generate .gen-card:first-child .gen-progress{
  position:relative !important;
  margin:6px 0 0 !important;
  height:6px !important;
}

.prompt-assist-dialog{
  top:var(--assist-drawer-top,86px) !important;
  right:var(--assist-drawer-right,22px) !important;
  bottom:auto !important;
  width:var(--assist-drawer-width,360px) !important;
  height:var(--assist-drawer-height,560px) !important;
  min-height:360px !important;
  max-height:calc(100vh - 96px) !important;
}
.prompt-assist-dialog>.card-head{
  grid-row:1 !important;
}
.prompt-assist-thread{
  grid-row:2 !important;
  padding:12px !important;
}
.prompt-assist-inputbar{
  grid-row:3 !important;
  padding:10px 12px 12px !important;
}
.prompt-assist-inputbar textarea{
  min-height:68px !important;
  max-height:104px !important;
}

@media(max-width:1440px) and (min-width:1181px){
  #tab-generate .generate-compose{
    grid-template-columns:minmax(0,1fr) minmax(292px,.78fr) 112px !important;
  }
}

@media(max-width:760px){
  .prompt-assist-dialog{
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    max-height:none !important;
  }
}

/* Library and template browser: cards stay concise; details live in the right rail. */
.inspiration-toolbar{
  align-items:flex-start;
  gap:12px;
}
.inspiration-toolbar h1{
  flex:0 0 auto;
  min-height:36px;
  display:flex;
  align-items:center;
}
.inspiration-toolbar #inspirationFilters{
  flex:1 1 520px;
  justify-content:flex-end;
  max-width:100%;
}
.library-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(300px,18vw,360px);
  gap:16px;
  align-items:start;
}
#tab-inspiration.active .library-card-grid{
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  align-items:start;
}
#tab-inspiration .library-card img,
#tab-inspiration .library-card .image-preview,
#tab-inspiration .library-card .image-missing{
  height:auto;
  min-height:150px;
  max-height:220px;
  aspect-ratio:16/9;
}
#tab-inspiration .library-card .image-preview::after{
  content:"未上传封面";
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  color:var(--muted);
  font-size:12px;
}
.library-card{
  cursor:pointer;
  transition:border-color .16s ease, transform .16s ease, background .16s ease;
}
.library-card:hover,
.library-card.selected,
.admin-template-item.selected{
  border-color:rgba(56,189,248,.58);
  background:rgba(14,165,233,.1);
}
.library-card:hover{
  transform:translateY(-1px);
}
.library-card .body{
  display:grid;
  gap:6px;
}
.library-card small,
#tab-generate .template-main small{
  color:var(--muted);
  font-size:12px;
}
.library-detail{
  position:sticky;
  top:14px;
  overflow:hidden;
}
.library-detail-cover{
  display:grid;
  place-items:center;
  width:100%;
  aspect-ratio:16/10;
  max-height:260px;
  overflow:hidden;
  border-bottom:1px solid var(--border);
  background:var(--soft);
}
.library-detail-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#050914;
}
.library-detail-empty{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  color:var(--muted);
}
.library-detail-body{
  display:grid;
  gap:12px;
  padding:14px;
}
.library-detail-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.library-detail-title h2{
  margin:0;
  color:var(--text);
  font-size:18px;
}
.library-detail-body small{
  color:var(--muted);
}
.library-detail-body pre{
  max-height:260px;
  margin:0;
  white-space:pre-wrap;
  line-height:1.65;
}
#inspirationFilters .chip.active{
  border-color:rgba(56,189,248,.6);
  background:rgba(14,165,233,.14);
  color:var(--text);
}
.template-admin-browser{
  display:grid;
  grid-template-rows:minmax(260px,320px) minmax(0,1fr);
  gap:12px;
  min-width:0;
}
.template-admin-browser .template-admin-list{
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-height:680px;
  min-height:0;
}
.template-detail{
  position:relative;
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
  top:14px;
  min-height:0;
}
.template-detail .library-detail-cover{
  height:100%;
  aspect-ratio:auto;
  border-right:1px solid var(--border);
  border-bottom:0;
}
.template-detail .library-detail-body{
  min-height:0;
}
.template-detail .library-detail-body pre{
  max-height:126px;
}
.admin-template-item{
  cursor:pointer;
}
.admin-template-item .actions button{
  position:relative;
  z-index:1;
}

@media(max-width:1320px){
  #tab-inspiration.active .library-card-grid{
    grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  }
  .template-admin-browser{
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
  }
  .template-admin-browser .template-admin-list{
    max-height:none;
  }
  .library-detail{
    position:static;
  }
}
@media(max-width:900px){
  .inspiration-toolbar #inspirationFilters{
    justify-content:flex-start;
  }
  .library-layout{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  #tab-inspiration.active .library-card-grid,
  .template-admin-browser .template-admin-list{
    grid-template-columns:1fr;
  }
  .template-detail{
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
  }
  .template-detail .library-detail-cover{
    height:auto;
    aspect-ratio:16/10;
    border-right:0;
    border-bottom:1px solid var(--border);
  }
}

#tab-templates .template-admin-card{
  padding:0;
  overflow:hidden;
}
#tab-templates.active .template-admin-layout{
  grid-template-columns:minmax(360px,420px) minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:14px;
}
#tab-templates .template-form{
  max-height:calc(100dvh - 148px);
  overflow:auto;
  padding-right:4px;
}
#tab-templates .template-admin-browser{
  max-height:calc(100dvh - 148px);
}
#tab-templates .template-admin-list{
  overflow:auto;
}

@media(max-width:1180px){
  #tab-templates.active .template-admin-layout{
    grid-template-columns:1fr;
  }
  #tab-templates .template-form,
  #tab-templates .template-admin-browser{
    max-height:none;
    overflow:visible;
  }
}

/* Template management correction: cards open a modal, no inline detail rail. */
#tab-templates .template-admin-browser{
  display:block !important;
  max-height:calc(100dvh - 148px);
  min-height:0;
  overflow:auto;
}
#tab-templates .template-admin-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr)) !important;
  gap:14px;
  align-content:start;
  max-height:none !important;
  overflow:visible;
  padding-right:4px;
}
#tab-templates .admin-template-item{
  display:grid;
  grid-template-rows:auto minmax(88px,auto) auto;
  min-height:268px;
  overflow:hidden;
}
#tab-templates .admin-template-cover{
  aspect-ratio:4/3;
  min-height:154px;
}
#tab-templates .admin-template-cover img{
  object-fit:cover;
}
#tab-templates .admin-template-body{
  align-content:start;
  gap:8px;
}
#tab-templates .admin-template-title b{
  display:-webkit-box;
  overflow:hidden;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
#tab-templates .admin-template-item .actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  padding:0 12px 12px;
}
#tab-templates .admin-template-item .actions button{
  min-width:0;
  padding:7px 8px;
}

.template-modal{
  position:fixed;
  inset:0;
  z-index:58;
  display:grid;
  place-items:center;
  padding:24px;
}
.template-modal.hidden{
  display:none!important;
}
.template-dialog{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  width:min(980px,calc(100vw - 48px));
  max-height:calc(100dvh - 48px);
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface-flat);
  box-shadow:0 30px 90px rgba(0,0,0,.55);
}
.template-modal-body{
  display:grid;
  grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);
  min-height:0;
}
.template-modal-cover{
  display:grid;
  place-items:center;
  min-height:360px;
  overflow:hidden;
  border-right:1px solid var(--border);
  background:var(--soft);
}
.template-modal-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#050914;
}
.template-modal-empty{
  color:var(--muted);
}
.template-modal-content{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:10px;
  min-width:0;
  min-height:0;
  padding:16px;
}
.template-modal-content h3{
  margin:0;
  color:var(--text);
  font-size:15px;
}
.template-modal-content pre{
  margin:0;
  max-height:none;
  overflow:auto;
  white-space:pre-wrap;
  line-height:1.65;
}

@media(max-width:1180px){
  #tab-templates .template-admin-browser{
    max-height:none;
    overflow:visible;
  }
}
@media(max-width:760px){
  .template-modal{
    padding:10px;
  }
  .template-dialog{
    width:calc(100vw - 20px);
    max-height:calc(100dvh - 20px);
  }
  .template-modal-body{
    grid-template-columns:1fr;
  }
  .template-modal-cover{
    min-height:220px;
    max-height:38dvh;
    border-right:0;
    border-bottom:1px solid var(--border);
  }
}

/* Final generate form override: prompt first, settings under prompt, actions together. */
#tab-generate .generate-compose{
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:auto auto auto auto auto !important;
  grid-template-areas:
    "head"
    "prompt"
    "settings"
    "upload"
    "submit" !important;
  align-content:start !important;
  gap:10px !important;
  min-height:0 !important;
  height:auto !important;
  overflow:visible !important;
  padding:12px !important;
}
@media(min-width:1181px){
  #tab-generate.active{
    grid-template-rows:40px minmax(250px,300px) minmax(360px,1fr) !important;
  }
}
#tab-generate .generate-compose>.card-head{
  grid-area:head !important;
  min-height:24px !important;
  padding:0 !important;
  border:0 !important;
}
#tab-generate .generate-compose>.card-head p{
  display:none !important;
}
#tab-generate .generate-compose textarea{
  grid-area:prompt !important;
  width:100% !important;
  min-height:112px !important;
  max-height:168px !important;
  height:clamp(112px,16vh,168px) !important;
  overflow:auto !important;
  resize:none !important;
  border:1px solid var(--border) !important;
  border-radius:12px !important;
  background:var(--input-bg) !important;
  padding:12px 14px !important;
  font-size:14px !important;
  line-height:1.5 !important;
}
#tab-generate .generate-settings-inline{
  grid-area:settings !important;
  display:grid !important;
  grid-template-rows:auto auto !important;
  min-height:0 !important;
  height:auto !important;
  padding:10px !important;
  border:1px solid var(--border) !important;
  border-radius:12px !important;
  background:color-mix(in srgb,var(--surface-flat) 70%,transparent) !important;
}
#tab-generate .inline-section-title{
  align-items:center !important;
  margin:0 0 8px !important;
}
#tab-generate .inline-section-title span{
  max-width:none !important;
}
#tab-generate .generate-form-grid{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  align-content:start !important;
  gap:8px !important;
  padding:0 !important;
}
#tab-generate .generate-form-grid label{
  min-width:0 !important;
  gap:4px !important;
}
#tab-generate .generate-form-grid select,
#tab-generate .generate-form-grid input{
  min-width:0 !important;
  height:34px !important;
  padding-block:7px !important;
}
#tab-generate .generate-upload{
  grid-area:upload !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:auto auto !important;
  gap:8px !important;
  min-height:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}
#tab-generate .dropzone{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  min-height:58px !important;
  padding:9px 10px !important;
  text-align:left !important;
}
#tab-generate .dropzone-copy strong,
#tab-generate .dropzone-copy small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#tab-generate .generate-submit{
  grid-area:submit !important;
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr) !important;
  align-items:center !important;
  gap:10px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}
#tab-generate .generate-action-buttons{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
#tab-generate #aiOptimize{
  min-height:38px;
  border-radius:10px;
  padding:8px 14px;
  white-space:nowrap;
}
#tab-generate .generate-submit .big{
  width:auto !important;
  min-width:118px !important;
  min-height:38px !important;
  border-radius:10px !important;
  padding-inline:16px !important;
}
#tab-generate .generate-submit #genMsg{
  min-width:0;
  max-width:none !important;
  overflow:hidden;
  color:var(--muted);
  text-overflow:ellipsis;
  white-space:nowrap;
}

@media(max-width:1280px) and (min-width:1181px){
  #tab-generate .generate-form-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

@media(max-height:760px) and (min-width:1181px){
  #tab-generate .generate-compose{
    gap:8px !important;
    padding:10px !important;
  }
  #tab-generate .generate-compose textarea{
    min-height:82px !important;
    height:clamp(82px,13vh,126px) !important;
    padding:10px 12px !important;
  }
  #tab-generate .generate-settings-inline{
    padding:8px !important;
  }
  #tab-generate .dropzone{
    min-height:48px !important;
    padding:8px 10px !important;
  }
  #tab-generate .generate-form-grid select,
  #tab-generate .generate-form-grid input{
    height:32px !important;
  }
}

@media(max-width:760px){
  #tab-generate .generate-form-grid,
  #tab-generate .generate-submit{
    grid-template-columns:1fr !important;
  }
  #tab-generate .generate-action-buttons{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  #tab-generate .generate-submit .big,
  #tab-generate #aiOptimize{
    width:100% !important;
  }
  #tab-generate .generate-submit #genMsg{
    white-space:normal;
  }
}

/* No-clipping pass for the generate workbench at common desktop zoom levels. */
@media(min-width:1181px){
  #tab-generate.active{
    grid-template-rows:38px minmax(210px,26vh) minmax(0,1fr) !important;
    gap:10px !important;
    height:calc(100vh - 96px) !important;
    min-height:0 !important;
  }
  #tab-generate .generate-toolbar{
    min-height:38px !important;
  }
  #tab-generate .result-strip{
    min-height:0 !important;
    height:100% !important;
  }
  #tab-generate .generate-compose{
    grid-template-rows:auto auto minmax(98px,auto) auto auto !important;
    align-content:start !important;
    gap:8px !important;
    min-height:0 !important;
    height:100% !important;
    padding:10px 12px !important;
    overflow:hidden !important;
  }
  #tab-generate .generate-compose>.card-head{
    min-height:22px !important;
  }
  #tab-generate .generate-compose textarea{
    min-height:90px !important;
    max-height:126px !important;
    height:clamp(90px,11vh,126px) !important;
    padding:10px 12px !important;
  }
  #tab-generate .generate-settings-inline{
    min-height:98px !important;
    padding:8px 10px !important;
    overflow:visible !important;
  }
  #tab-generate .inline-section-title{
    min-height:18px !important;
    margin-bottom:6px !important;
  }
  #tab-generate .inline-section-title b{
    line-height:18px !important;
  }
  #tab-generate .inline-section-title span{
    line-height:18px !important;
  }
  #tab-generate .generate-form-grid{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    gap:6px !important;
  }
  #tab-generate .generate-form-grid label{
    gap:3px !important;
    line-height:16px !important;
  }
  #tab-generate .generate-form-grid select,
  #tab-generate .generate-form-grid input{
    height:34px !important;
    padding:6px 8px !important;
    line-height:20px !important;
  }
  #tab-generate .generate-upload{
    grid-template-rows:auto !important;
    gap:0 !important;
  }
  #tab-generate .dropzone{
    min-height:52px !important;
    padding:7px 10px !important;
  }
  #assetInfo:empty{
    display:none !important;
  }
  #tab-generate .generate-submit{
    min-height:38px !important;
  }
}

@media(max-height:900px) and (min-width:1181px){
  #tab-generate.active{
    grid-template-rows:36px minmax(180px,24vh) minmax(0,1fr) !important;
    gap:8px !important;
  }
  #tab-generate .generate-compose{
    gap:7px !important;
    padding:8px 10px !important;
  }
  #tab-generate .generate-compose textarea{
    min-height:76px !important;
    height:clamp(76px,10vh,108px) !important;
  }
  #tab-generate .generate-settings-inline{
    min-height:92px !important;
    padding:7px 9px !important;
  }
  #tab-generate .dropzone{
    min-height:46px !important;
    padding:6px 9px !important;
  }
  #tab-generate .generate-submit .big,
  #tab-generate #aiOptimize{
    min-height:36px !important;
  }
}

/* Preview-first generate layout: keep controls compact and give the image area priority. */
@media(min-width:1181px){
  #tab-generate.active{
    grid-template-rows:38px minmax(360px,1fr) auto !important;
  }
  #tab-generate .generate-compose{
    grid-template-columns:minmax(0,1fr) auto !important;
    grid-template-rows:auto auto auto auto !important;
    grid-template-areas:
      "head head"
      "prompt prompt"
      "settings settings"
      "upload submit" !important;
    align-self:start !important;
    height:auto !important;
    min-height:0 !important;
    gap:7px 10px !important;
    padding:8px 12px !important;
    overflow:visible !important;
  }
  #tab-generate .generate-compose>.card-head{
    min-height:20px !important;
  }
  #tab-generate .generate-compose textarea{
    min-height:64px !important;
    max-height:92px !important;
    height:clamp(64px,7.5vh,92px) !important;
    padding:9px 12px !important;
    line-height:1.4 !important;
  }
  #tab-generate .generate-settings-inline{
    min-height:78px !important;
    padding:7px 10px !important;
  }
  #tab-generate .inline-section-title{
    min-height:16px !important;
    margin-bottom:5px !important;
  }
  #tab-generate .inline-section-title span{
    font-size:11px !important;
  }
  #tab-generate .generate-form-grid{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    gap:5px 8px !important;
  }
  #tab-generate .generate-form-grid label{
    gap:2px !important;
    font-size:11px !important;
    line-height:14px !important;
  }
  #tab-generate .generate-form-grid select,
  #tab-generate .generate-form-grid input{
    height:32px !important;
    padding:5px 8px !important;
    font-size:12px !important;
  }
  #tab-generate .generate-upload{
    min-width:0 !important;
  }
  #tab-generate .dropzone{
    min-height:40px !important;
    padding:5px 10px !important;
  }
  #tab-generate .dropzone-copy{
    gap:0 !important;
  }
  #tab-generate .dropzone-copy strong{
    font-size:12px !important;
  }
  #tab-generate .dropzone-copy small{
    font-size:11px !important;
  }
  #tab-generate .generate-submit{
    align-self:stretch !important;
    min-width:260px !important;
    min-height:40px !important;
  }
  #tab-generate .generate-action-buttons{
    height:100%;
  }
  #tab-generate .generate-submit .big,
  #tab-generate #aiOptimize{
    min-height:40px !important;
  }
  #tab-generate .result-strip{
    height:100% !important;
  }
  #tab-generate .gen-card:first-child .gen-preview-button img,
  #tab-generate .gen-card:first-child .image-preview{
    max-height:none !important;
  }
}

@media(max-height:900px) and (min-width:1181px){
  #tab-generate.active{
    grid-template-rows:36px minmax(320px,1fr) auto !important;
  }
  #tab-generate .generate-compose textarea{
    min-height:56px !important;
    height:clamp(56px,7vh,78px) !important;
  }
  #tab-generate .generate-settings-inline{
    min-height:72px !important;
  }
  #tab-generate .dropzone{
    min-height:38px !important;
  }
  #tab-generate .generate-submit .big,
  #tab-generate #aiOptimize{
    min-height:38px !important;
  }
}

/* Extra compact desktop height: keep every generate control visible on compact laptops. */
@media(max-height:800px) and (min-width:1181px){
  #tab-generate.active{
    grid-template-rows:34px minmax(318px,1fr) auto !important;
    gap:6px !important;
    height:calc(100vh - 92px) !important;
  }
  #tab-generate .generate-toolbar{
    min-height:34px !important;
  }
  #tab-generate .generate-compose{
    grid-template-columns:minmax(0,1fr) 246px !important;
    grid-template-rows:24px 48px 70px 38px !important;
    gap:5px 8px !important;
    padding:7px 10px !important;
  }
  #tab-generate .generate-compose>.card-head{
    min-height:24px !important;
    height:24px !important;
    align-items:center !important;
  }
  #tab-generate .generate-compose>.card-head h2,
  #tab-generate .generate-compose>.card-head h3{
    font-size:14px !important;
    line-height:20px !important;
  }
  #tab-generate .generate-compose>.card-head .ghost,
  #tab-generate .generate-compose>.card-head button{
    min-height:28px !important;
    height:28px !important;
    padding:4px 10px !important;
  }
  #tab-generate .generate-compose textarea{
    min-height:48px !important;
    height:48px !important;
    max-height:48px !important;
    padding:7px 10px !important;
    line-height:1.35 !important;
  }
  #tab-generate .generate-settings-inline{
    min-height:70px !important;
    padding:6px 8px !important;
  }
  #tab-generate .inline-section-title{
    min-height:14px !important;
    margin-bottom:3px !important;
  }
  #tab-generate .inline-section-title b,
  #tab-generate .inline-section-title span{
    font-size:10.5px !important;
    line-height:14px !important;
  }
  #tab-generate .generate-form-grid{
    gap:4px 6px !important;
  }
  #tab-generate .generate-form-grid label{
    gap:1px !important;
    font-size:10.5px !important;
    line-height:13px !important;
  }
  #tab-generate .generate-form-grid select,
  #tab-generate .generate-form-grid input{
    height:29px !important;
    padding:4px 7px !important;
    font-size:11.5px !important;
  }
  #tab-generate .dropzone{
    min-height:38px !important;
    padding:4px 8px !important;
  }
  #tab-generate .dropzone-copy strong{
    font-size:11.5px !important;
    line-height:15px !important;
  }
  #tab-generate .dropzone-copy small{
    font-size:10.5px !important;
    line-height:13px !important;
    display:none !important;
  }
  #tab-generate .generate-submit{
    min-width:246px !important;
    min-height:38px !important;
  }
  #tab-generate .generate-submit .big,
  #tab-generate #aiOptimize{
    min-height:38px !important;
    padding:0 12px !important;
  }
}
/* Dora brand mark */
.brand{justify-content:flex-start;min-height:72px}
.brand-logo{display:block;width:58px;height:58px;object-fit:contain}
@media(max-width:960px){.brand{min-height:auto}.brand-logo{width:46px;height:46px}}

/* Generate page prompt-first refinement */
#tab-generate .prompt-input-wrap{
  grid-area:prompt !important;
  position:relative;
  min-width:0;
}
#tab-generate .prompt-input-wrap textarea{
  grid-area:auto !important;
  min-height:118px !important;
  height:clamp(118px,15vh,172px) !important;
  max-height:172px !important;
  padding:14px 118px 48px 14px !important;
}
#tab-generate .prompt-input-wrap #aiOptimize{
  position:absolute;
  right:12px;
  bottom:12px;
  z-index:1;
  min-height:32px !important;
  height:32px !important;
  border-radius:9px !important;
  padding:0 13px !important;
  background:color-mix(in srgb,var(--surface-flat) 72%,transparent);
  box-shadow:0 8px 22px rgba(0,0,0,.18);
}
#tab-generate .generate-settings-inline{
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr) !important;
  align-items:end !important;
  gap:8px 12px !important;
  min-height:56px !important;
  padding:8px 10px !important;
}
#tab-generate .inline-section-title{
  align-self:center !important;
  margin:0 !important;
  min-width:max-content !important;
}
#tab-generate .inline-section-title span{
  display:none !important;
}
#tab-generate .generate-form-grid{
  grid-template-columns:minmax(168px,1.25fr) minmax(150px,1fr) minmax(118px,.8fr) minmax(120px,.8fr) minmax(76px,.5fr) !important;
  gap:6px !important;
}
#tab-generate .generate-form-grid label{
  font-size:10.5px !important;
  line-height:13px !important;
}
#tab-generate .generate-form-grid select,
#tab-generate .generate-form-grid input{
  height:30px !important;
  min-height:30px !important;
  padding:4px 8px !important;
  font-size:12px !important;
}
#tab-generate .generate-submit{
  justify-content:end !important;
}
#tab-generate .generate-action-buttons{
  justify-content:end !important;
}
#tab-generate .generate-submit .big{
  min-height:36px !important;
  height:36px !important;
}
#tab-generate .gen-card:first-child .body.gen-card-body-compact{
  min-height:0 !important;
  padding:0 !important;
}
#tab-generate .gen-card:first-child .body.gen-card-body-compact>p,
#tab-generate .gen-card:first-child .body.gen-card-body-compact .gen-progress{
  display:none !important;
}
#tab-generate .gen-card:first-child .body.gen-card-body-compact .gen-card-title{
  position:absolute;
  top:16px;
  right:20px;
  z-index:3;
  margin:0 !important;
}
#tab-generate .gen-card:first-child .body.gen-card-body-compact .actions{
  padding:8px 12px 10px !important;
}
#tab-generate .gen-card:first-child .body.gen-card-body-compact .retention-note,
#tab-generate .gen-card:first-child .body.gen-card-body-compact .gen-error{
  margin:8px 12px 0 !important;
}

@media(max-width:1320px) and (min-width:1181px){
  #tab-generate .generate-settings-inline{
    grid-template-columns:1fr !important;
  }
  #tab-generate .inline-section-title{
    display:none !important;
  }
}

@media(max-height:820px) and (min-width:1181px){
  #tab-generate .prompt-input-wrap textarea{
    min-height:94px !important;
    height:clamp(94px,13vh,138px) !important;
    max-height:138px !important;
  }
  #tab-generate .generate-settings-inline{
    min-height:50px !important;
    padding:6px 8px !important;
  }
}

@media(max-width:760px){
  #tab-generate .prompt-input-wrap textarea{
    min-height:150px !important;
    padding-right:14px !important;
  }
  #tab-generate .prompt-input-wrap #aiOptimize{
    position:static;
    width:100% !important;
    margin-top:8px;
  }
  #tab-generate .generate-settings-inline,
  #tab-generate .generate-form-grid{
    grid-template-columns:1fr !important;
  }
}

@media(min-width:1181px){
  #tab-generate .generate-compose{
    grid-template-rows:auto auto auto auto !important;
  }
  #tab-generate .prompt-input-wrap{
    min-height:118px !important;
  }
}

@media(max-height:820px) and (min-width:1181px){
  #tab-generate .generate-compose{
    grid-template-rows:auto auto auto auto !important;
  }
  #tab-generate .prompt-input-wrap{
    min-height:94px !important;
  }
}

/* Final generate-page trim: no top status pills and no title row. */
#tab-generate .generate-toolbar,
.app-topbar .app-status-pill{
  display:none !important;
}

.app-topbar{
  min-height:0 !important;
}

@media(min-width:1181px){
  #tab-generate.active{
    grid-template-rows:minmax(240px,30vh) minmax(0,1fr) !important;
    grid-template-areas:
      "canvas assist"
      "composer assist" !important;
    height:calc(100vh - 58px) !important;
  }
}

/* Make the removed header space actually usable on the AI generation page. */
body[data-theme] .main:has(#tab-generate.active){
  position:relative !important;
  grid-template-rows:minmax(0,1fr) !important;
  gap:0 !important;
  padding:14px 22px 18px !important;
}

.main:has(#tab-generate.active) .app-topbar{
  position:absolute !important;
  top:14px !important;
  right:22px !important;
  z-index:15 !important;
  width:auto !important;
  min-height:38px !important;
  justify-content:flex-end !important;
  pointer-events:none;
}

.main:has(#tab-generate.active) .app-topbar .balance-pill,
.main:has(#tab-generate.active) .app-topbar .skin-menu{
  pointer-events:auto;
}

@media(min-width:1181px){
  #tab-generate.active{
    grid-template-rows:minmax(320px,42vh) minmax(0,1fr) !important;
    gap:12px 18px !important;
    height:calc(100vh - 32px) !important;
    min-height:0 !important;
  }

  #tab-generate .result-strip{
    min-height:320px !important;
    height:100% !important;
  }

  #tab-generate .generate-compose{
    height:100% !important;
    min-height:0 !important;
    grid-template-rows:auto minmax(124px,1fr) auto auto auto !important;
    overflow:hidden !important;
  }

  #tab-generate .prompt-input-wrap,
  #tab-generate .prompt-input-wrap textarea{
    height:100% !important;
    min-height:124px !important;
    max-height:none !important;
  }

  #tab-generate .generate-assist{
    padding-top:54px !important;
  }
}

@media(min-width:1600px){
  #tab-generate.active{
    grid-template-rows:minmax(360px,44vh) minmax(0,1fr) !important;
  }

  #tab-generate .result-strip{
    min-height:360px !important;
  }
}

/* Keep the prompt editor compact; give the saved height back to the image canvas. */
@media(min-width:1181px){
  #tab-generate.active{
    grid-template-rows:minmax(360px,48vh) minmax(260px,1fr) !important;
  }

  #tab-generate .generate-compose{
    align-content:start !important;
    grid-template-rows:auto auto auto auto auto !important;
  }

  #tab-generate .prompt-input-wrap{
    height:clamp(112px,15vh,160px) !important;
    min-height:112px !important;
    max-height:160px !important;
  }

  #tab-generate .prompt-input-wrap textarea{
    height:100% !important;
    min-height:112px !important;
    max-height:160px !important;
  }
}

@media(min-width:1600px){
  #tab-generate.active{
    grid-template-rows:minmax(500px,56vh) minmax(300px,1fr) !important;
  }

  #tab-generate .prompt-input-wrap,
  #tab-generate .prompt-input-wrap textarea{
    height:clamp(128px,14vh,176px) !important;
    min-height:128px !important;
    max-height:176px !important;
  }
}

/* Drag-resizable AI generation workspace. */
#tab-generate.active{
  --gen-assist-width:360px;
  --gen-canvas-height:360px;
  --gen-queue-height:210px;
  --gen-recent-height:250px;
  --gen-resizer-size:12px;
}

.layout-resizer{
  display:none;
}

@media(min-width:1181px){
  #tab-generate.active{
    position:relative !important;
    grid-template-columns:minmax(520px,1fr) minmax(300px,var(--gen-assist-width)) !important;
    grid-template-rows:minmax(240px,var(--gen-canvas-height)) minmax(260px,1fr) !important;
    grid-template-areas:
      "canvas assist"
      "composer assist" !important;
    gap:12px 18px !important;
  }

  #tab-generate .result-strip{
    grid-area:canvas !important;
    min-height:0 !important;
    height:100% !important;
    margin:0 9px 0 0 !important;
  }

  #tab-generate .generate-left{
    grid-area:composer !important;
    min-height:0 !important;
    height:100% !important;
    margin:0 9px 0 0 !important;
  }

  #tab-generate .generate-compose{
    height:100% !important;
  }

  #tab-generate .generate-assist{
    grid-area:assist !important;
    position:relative !important;
    display:grid !important;
    grid-template-rows:minmax(130px,var(--gen-queue-height)) minmax(150px,var(--gen-recent-height)) minmax(96px,auto) minmax(72px,auto) !important;
    gap:0 !important;
    min-height:0 !important;
    height:100% !important;
    padding-top:54px !important;
  }

  #tab-generate .queue-card,
  #tab-generate .recent-card,
  #tab-generate .quick-card,
  #tab-generate .recharge-mini{
    min-height:0 !important;
    margin:0 !important;
  }

  #tab-generate .quick-card{
    overflow:auto;
  }

  .layout-resizer{
    display:block;
    position:absolute;
    z-index:9;
    border:0;
    background:transparent;
    touch-action:none;
    user-select:none;
  }

  .layout-resizer::after{
    content:"";
    position:absolute;
    border-radius:999px;
    background:color-mix(in srgb,var(--border-strong) 62%,transparent);
    transition:background .15s ease, box-shadow .15s ease, opacity .15s ease;
    opacity:.68;
  }

  .layout-resizer:hover::after,
  .layout-resizer.dragging::after{
    background:color-mix(in srgb,var(--accent) 72%,var(--border-strong));
    box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);
    opacity:1;
  }

  .layout-resizer-col{
    cursor:col-resize;
  }

  .layout-resizer-col::after{
    top:0;
    bottom:0;
    left:50%;
    width:3px;
    transform:translateX(-50%);
  }

  .layout-resizer-row{
    cursor:row-resize;
  }

  .assist-resizer{
    cursor:row-resize;
  }

  .layout-resizer-row::after,
  .assist-resizer::after{
    left:0;
    right:0;
    top:50%;
    height:3px;
    transform:translateY(-50%);
  }

  body.resizing-layout{
    cursor:grabbing;
    user-select:none;
  }
}

@media(max-width:1180px){
  .layout-resizer{
    display:none !important;
  }
}

/* Bulk management controls. */
#tab-works .work{
  grid-template-columns:34px 80px minmax(0,1fr) auto;
}
#tab-works .work .actions{
  justify-content:flex-end;
}
#tab-works .work h3,
#tab-works .work p{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:760px){
  .users-bulk-actions{
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  .users-bulk-actions input{
    grid-column:1/-1;
  }
  #tab-works .work{
    grid-template-columns:34px 64px minmax(0,1fr);
  }
  #tab-works .work .actions{
    grid-column:1/-1;
  }
  #tab-works .work img,
  #tab-works .work-thumb-button,
  #tab-works .image-preview.thumb{
    width:64px;
    height:58px;
  }
}
