:root {
  --bg:#f5f7fb; --surface:#fff; --surface-2:#f8fafc; --text:#162033; --muted:#6d7789;
  --line:#e5e9f0; --primary:#16385f; --primary-2:#235a91; --accent:#ef3f3f; --accent-soft:#fff0f0;
  --success:#1c8b58; --warning:#b7791f; --danger:#c53030; --shadow:0 16px 44px rgba(22,32,51,.08);
  --radius:18px; --radius-sm:12px;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}
body{font-size:15px;line-height:1.45} button,input,textarea,select{font:inherit} button{cursor:pointer}
a{color:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.danger-text{color:var(--danger)}
.boot-screen,.login-wrap{min-height:100vh;display:grid;place-items:center;align-content:center;gap:12px;padding:24px}
.brand-mark{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:800;font-size:22px;box-shadow:0 10px 24px rgba(22,56,95,.2)}
.brand-logo{width:48px;height:42px;object-fit:contain;display:block}.boot-logo{width:74px;height:64px}
.login-card{width:min(430px,100%);background:var(--surface);padding:30px;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-card h1{font-size:25px;margin:0}.login-card p{margin:5px 0 22px;color:var(--muted)}
.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;height:68px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:20px}
.brand{display:flex;align-items:center;gap:11px;font-weight:800;white-space:nowrap}.brand .brand-mark{width:36px;height:36px;border-radius:10px;font-size:18px}.brand .brand-logo{width:42px;height:36px}.brand small{display:block;color:var(--muted);font-weight:500;font-size:11px}
.nav{display:flex;gap:6px;margin-left:20px;flex:1}.nav button{border:0;background:transparent;padding:9px 11px;border-radius:10px;color:var(--muted);font-weight:650}.nav button:hover,.nav button.active{background:var(--surface-2);color:var(--primary)}
.user-chip{display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:50%;background:#e8eef6;color:var(--primary);display:grid;place-items:center;font-weight:800}.user-chip-text{line-height:1.2}.user-chip-text small{display:block;color:var(--muted);margin-top:3px}
.mobile-menu{display:none;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px}
.main{width:min(1180px,calc(100% - 40px));margin:30px auto 60px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head h1{font-size:27px;margin:0 0 3px}.page-head p{margin:0;color:var(--muted)}
.grid{display:grid;gap:18px}.grid.cards{grid-template-columns:repeat(4,1fr)}.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 2px 8px rgba(22,32,51,.025)}.card h2,.card h3{margin-top:0}.metric{padding:19px}.metric .label{color:var(--muted);font-size:13px}.metric strong{display:block;font-size:27px;margin-top:7px}.metric small{color:var(--muted)}
.btn{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:11px;padding:10px 14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px}.btn:hover{background:#f9fafb}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-2)}.btn.danger{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost-danger{background:var(--accent-soft);border-color:#ffd5d5;color:var(--danger)}.btn.small{padding:7px 10px;min-height:34px;font-size:13px}.btn:disabled{opacity:.55;cursor:not-allowed}
.actions{display:flex;gap:10px;flex-wrap:wrap}.field{display:grid;gap:7px;margin-bottom:15px}.field label{font-weight:700;font-size:13px}.field .help{color:var(--muted);font-size:12px}.input,.textarea,.select{width:100%;border:1px solid #d7dce5;background:#fff;color:var(--text);border-radius:11px;padding:11px 12px;outline:none;transition:.15s}.input:focus,.textarea:focus,.select:focus{border-color:#8fa9c4;box-shadow:0 0 0 3px rgba(35,90,145,.10)}.textarea{min-height:120px;resize:vertical}
.notice{border-radius:13px;padding:13px 15px;background:#eef5fb;color:#214b74;border:1px solid #d8e7f5}.notice.warning{background:#fff8e9;color:#76551b;border-color:#f3dfb8}.notice.danger{background:var(--accent-soft);color:#8d2626;border-color:#ffd2d2}.notice.success{background:#edf9f3;color:#176940;border-color:#ccebdc}
.quota-wrap{display:flex;align-items:center;gap:14px}.quota-bar{height:9px;background:#edf0f4;border-radius:999px;overflow:hidden;flex:1}.quota-bar span{height:100%;display:block;background:var(--primary);border-radius:inherit}.quota-text{font-weight:800;white-space:nowrap}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.table{width:100%;border-collapse:collapse;min-width:720px}.table th,.table td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafbfc}.table tr:last-child td{border-bottom:0}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:750;background:#eef2f7;color:#4b5b70}.badge.success{background:#e8f7ef;color:#167348}.badge.error{background:#fff0f0;color:#ad2e2e}.badge.working{background:#eef5ff;color:#2c5e99}.badge.warning{background:#fff7e6;color:#94641d}
.job-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid var(--line)}.job-row:last-child{border-bottom:0}.job-title{font-weight:750}.job-meta{font-size:12px;color:var(--muted);margin-top:4px}
.dropzone{border:2px dashed #cbd3df;background:#fafbfd;border-radius:18px;padding:40px 20px;text-align:center;transition:.15s}.dropzone.drag{border-color:var(--primary-2);background:#f2f7fc}.dropzone strong{display:block;font-size:18px;margin-bottom:6px}.dropzone input{display:none}.preview-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:16px}.preview{position:relative;aspect-ratio:4/3;border-radius:11px;overflow:hidden;background:#eef1f5;border:1px solid var(--line)}.preview img{width:100%;height:100%;object-fit:cover}.preview button{position:absolute;right:6px;top:6px;width:27px;height:27px;border-radius:50%;border:0;background:rgba(0,0,0,.62);color:#fff}
.options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.check-card{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:12px;padding:13px;background:#fff}.check-card input{margin-top:3px}.check-card strong{display:block}.check-card small{display:block;color:var(--muted);margin-top:2px}
.intensity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.intensity-card{border:1px solid var(--line);border-radius:13px;padding:15px;cursor:pointer;background:#fff}.intensity-card.selected{border-color:var(--primary-2);box-shadow:0 0 0 2px rgba(35,90,145,.12)}.intensity-card input{display:none}.intensity-card strong{font-size:16px}.intensity-card small{display:block;color:var(--muted);margin-top:4px}
.advanced-box{margin-top:14px}.advanced-editor{margin-top:10px}.advanced-editor .textarea{border-color:#e59b9b;background:#fffafa;min-height:150px}
.progress-shell{height:12px;background:#edf0f4;border-radius:999px;overflow:hidden}.progress-shell span{height:100%;display:block;background:var(--primary);transition:width .3s}
.image-list{display:grid;gap:18px}.image-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.image-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line)}.image-card-head .file-name{font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}.image-body{padding:16px}.compare{position:relative;overflow:hidden;border-radius:13px;background:#e9edf2;aspect-ratio:4/3;max-height:610px}.compare>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#e9edf2}.compare .edited{clip-path:inset(0 50% 0 0)}.compare .range{position:absolute;left:15px;right:15px;bottom:14px;width:calc(100% - 30px);z-index:4}.compare-label{position:absolute;top:12px;z-index:3;background:rgba(20,28,40,.72);color:#fff;border-radius:999px;padding:5px 8px;font-size:11px}.compare-label.before{left:12px}.compare-label.after{right:12px}.single-photo{width:100%;max-height:600px;object-fit:contain;border-radius:12px;background:#eef1f5}
.empty{padding:35px;text-align:center;color:var(--muted)}.spinner{width:17px;height:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.modal-backdrop{position:fixed;inset:0;background:rgba(13,20,31,.45);z-index:50;display:grid;place-items:center;padding:20px}.modal{width:min(540px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.25)}.modal h2{margin-top:0}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}
.toast-root{position:fixed;right:18px;bottom:18px;z-index:100;display:grid;gap:8px}.toast{background:#172236;color:#fff;border-radius:12px;padding:12px 14px;box-shadow:0 12px 30px rgba(0,0,0,.2);max-width:380px}.toast.error{background:#9f2d2d}.toast.success{background:#196846}
.config-error{width:min(650px,calc(100% - 30px));margin:12vh auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:var(--shadow)}.config-error code{display:block;background:#f5f6f8;border-radius:8px;padding:4px 8px;margin:4px 0}
@media(max-width:900px){.grid.cards{grid-template-columns:repeat(2,1fr)}.grid.two,.grid.three{grid-template-columns:1fr}.preview-grid{grid-template-columns:repeat(4,1fr)}.topbar{padding:0 16px}.nav{position:fixed;left:12px;right:12px;top:62px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:var(--shadow);display:none;flex-direction:column;margin:0}.nav.open{display:flex}.mobile-menu{display:block;margin-left:auto}.user-chip-text{display:none}.main{width:min(100% - 24px,1180px);margin-top:20px}}
@media(max-width:600px){.grid.cards{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:14px}.metric strong{font-size:21px}.page-head{align-items:flex-start;flex-direction:column}.options-grid,.intensity-grid{grid-template-columns:1fr}.preview-grid{grid-template-columns:repeat(3,1fr)}.login-card{padding:22px}.image-card-head{align-items:flex-start;flex-direction:column}.image-card-head .file-name{max-width:85vw}.topbar{height:62px}.brand small{display:none}.main{margin-bottom:30px}.card{padding:16px}.dropzone{padding:28px 16px}}

/* v2 */
.free-prompt{min-height:260px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5}
.favorite-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.prompt-history{margin-bottom:18px}.prompt-history pre{white-space:pre-wrap;word-break:break-word;margin:0;background:#f7f8fa;border:1px solid var(--line);border-radius:12px;padding:14px;max-height:280px;overflow:auto;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.model-spec{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.model-spec>div{border:1px solid var(--line);border-radius:11px;padding:10px;background:#fafbfc}.model-spec span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.model-spec strong{display:block;margin-top:4px;font-size:13px}
.free-warning{border-color:#f1d5d5}
@media(max-width:600px){.favorite-row,.model-spec{grid-template-columns:1fr}}
