:root{color-scheme:light;--bg:#f4f7fe;--bg-grad-1:#eef3ff;--bg-grad-2:#fef6f9;--surface:#ffffff;--surface-2:#f7f9fd;--bg-input:#ffffff;--border:#e3e8f2;--border-strong:#cdd6e8;--text:#1f2a44;--text-dim:#55617d;--text-faint:#8a93a8;--accent:#4f6ef7;--accent-hover:#3f5be0;--accent-soft:#e8edff;--accent-2:#ff7eb6;--danger:#e23b54;--danger-soft:#ffe7eb;--ok:#15a06b;--ok-soft:#dcf6ea;--warn:#d98a09;--warn-soft:#fdf0d3;--radius:18px;--radius-sm:12px;--shadow-sm:0 1px 2px rgba(31,42,68,0.06),0 1px 3px rgba(31,42,68,0.06);--shadow:0 6px 22px rgba(57,78,140,0.1);--shadow-lg:0 18px 50px rgba(57,78,140,0.18);font-family:ui-rounded,SF Pro Rounded,Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;font-size:16.5px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--text)}code{background:var(--accent-soft);color:var(--accent-hover);padding:1px 6px;border-radius:6px;font-size:.88em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:999px;border:2px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:650;transition:transform .08s,background .15s,border-color .15s,box-shadow .15s,opacity .15s}.btn:hover{background:var(--surface-2);border-color:var(--accent)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 4px 14px rgba(79,110,247,.35)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{color:var(--danger);border-color:transparent;background:var(--danger-soft)}.btn-danger:hover{background:#ffd7de;border-color:transparent}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--accent-soft);border-color:transparent}.btn-sm{padding:7px 13px;font-size:14px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.field label{font-size:15px;font-weight:700;color:var(--text)}.field .help{font-size:13.5px;color:var(--text-faint);line-height:1.4}.input,.select,.textarea{width:100%;padding:12px 14px;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.textarea{resize:vertical;min-height:96px;line-height:1.55}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 500px at 15% -5%,var(--bg-grad-1),transparent),radial-gradient(900px 500px at 90% 10%,var(--bg-grad-2),transparent)}.auth-card{width:100%;max-width:400px;padding:36px;box-shadow:var(--shadow-lg)}.auth-card h1{margin:0 0 4px;font-size:28px}.auth-card .sub{margin:0 0 26px;color:var(--text-dim);font-size:15px}.error-banner{background:var(--danger-soft);border:1px solid #f7c3cc;color:#b21f37;padding:11px 14px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px}.shell{display:grid;grid-template-columns:380px 1fr;height:100vh}.sidebar{border-right:1px solid var(--border);flex-direction:column;overflow:hidden}.sidebar,.topbar{background:var(--surface);display:flex}.topbar{align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}.brand{font-size:19px;letter-spacing:-.01em;background:linear-gradient(95deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.brand,.tag{font-weight:800}.tag{font-size:12px;padding:3px 11px;border-radius:999px;background:var(--accent-soft);color:var(--accent-hover);text-transform:uppercase;letter-spacing:.03em}.sidebar-body{padding:22px;overflow-y:auto}.main{overflow-y:auto;padding:32px;background:radial-gradient(700px 400px at 100% -10%,var(--bg-grad-2),transparent),var(--bg)}.feed{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:22px}.gen{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}.gen-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border);font-size:14px}.gen-body{padding:18px}.gen-body img,.gen-body video{width:100%;border-radius:var(--radius-sm);display:block;background:#eef1f7}.prompt-text{color:var(--text-dim);font-size:15px;line-height:1.6;margin:0 0 14px}.status-pill{font-size:12.5px;padding:3px 11px;border-radius:999px;font-weight:800;text-transform:capitalize}.status-pill.processing,.status-pill.starting{background:var(--warn-soft);color:var(--warn)}.status-pill.succeeded{background:var(--ok-soft);color:var(--ok)}.status-pill.canceled,.status-pill.failed{background:var(--danger-soft);color:var(--danger)}.spinner{width:18px;height:18px;border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.empty,.muted{color:var(--text-faint)}.empty{text-align:center;padding:90px 20px;font-size:16px}.empty p:first-child{font-size:19px;font-weight:700;color:var(--text-dim)}.row{display:flex;gap:10px;align-items:center}.spacer{flex:1 1}.admin-wrap{max-width:1080px;margin:0 auto;padding:30px 24px 90px}.tabs{display:flex;gap:6px;margin-bottom:26px}.tab{padding:10px 20px;border:2px solid transparent;background:var(--surface);color:var(--text-dim);border-radius:999px;font-weight:700;box-shadow:var(--shadow-sm)}.tab.active{color:#fff;background:var(--accent);box-shadow:0 4px 14px rgba(79,110,247,.35)}table{width:100%;border-collapse:collapse;font-size:15px}td,th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border)}th{color:var(--text-faint);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em}tbody tr:last-child td{border-bottom:none}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.section-title{font-size:21px;font-weight:800;margin:0 0 4px}.section-sub{color:var(--text-faint);font-size:14px;margin:0 0 22px}.cred-box{border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13.5px;max-height:280px;overflow-y:auto;white-space:pre;color:var(--text)}.cred-box,.pill-static{background:var(--surface-2)}.pill-static{font-size:12.5px;padding:3px 11px;border-radius:999px;border:1px solid var(--border);font-weight:600}.expired{color:var(--danger);font-weight:700}.modal-backdrop{position:fixed;inset:0;background:rgba(31,42,68,.4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:24px;z-index:50}.modal{width:100%;max-width:660px;max-height:88vh;overflow-y:auto;padding:28px;box-shadow:var(--shadow-lg)}.schema-row{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;grid-gap:8px;gap:8px;align-items:center;margin-bottom:8px}.uploader{border-radius:var(--radius-sm);transition:box-shadow .15s}.uploader.drag{box-shadow:0 0 0 4px var(--accent-soft);border-radius:16px}.dropzone-empty{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:26px 16px;border-radius:16px;border:2px dashed var(--border-strong);background:var(--surface-2);color:var(--text-dim);text-align:center;transition:border-color .15s,background .15s,color .15s}.dropzone-empty:hover,.uploader.drag .dropzone-empty{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-hover)}.dropzone-empty .big{font-size:30px}.thumb-grid{display:flex;flex-wrap:wrap;gap:10px}.thumb{position:relative;width:88px;height:88px;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:var(--surface-2);box-shadow:var(--shadow-sm)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:none;background:rgba(31,42,68,.62);color:#fff;font-size:17px;line-height:1;display:grid;place-items:center;padding:0}.thumb-remove:hover{background:var(--danger)}.add-tile{width:88px;height:88px;border-radius:14px;border:2px dashed var(--border-strong);background:var(--surface-2);color:var(--text-faint);font-size:30px;font-weight:700;display:grid;place-items:center;transition:border-color .15s,color .15s,background .15s}.add-tile:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}