:root{--bg:#0f172a;--panel:#1e293b;--border:#334155;--text:#e2e8f0;--muted:#94a3b8;--primary:#2563eb;--primary-hover:#1d4ed8}
*{box-sizing:border-box}
body{font-family:Arial,sans-serif;margin:0;min-height:100vh;background-color:#0f172a;background-image:radial-gradient(120% 70% at 50% 0,#172554 0,#0f172a 70%);background-repeat:no-repeat;color:var(--text)}
a{color:#93c5fd;text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1100px;margin:0 auto;padding:20px}
.site-nav{position:sticky;top:0;z-index:100;background:rgba(2,6,23,.88);backdrop-filter:blur(6px);border-bottom:1px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:14px;padding-bottom:14px}
.brand{font-size:1.2rem;font-weight:700;color:#fff;display:inline-flex;align-items:center;gap:10px;text-decoration:none}.brand:hover{text-decoration:none}.brand-logo{width:34px;height:34px;display:block;filter:drop-shadow(0 0 8px rgba(56,189,248,.75))}
.nav-links{display:flex;gap:14px;align-items:center}
.nav-links a{display:inline-flex;align-items:center;padding:6px 10px;border-radius:8px;color:#93c5fd;line-height:1.1}
.nav-links a:hover{background:rgba(30,58,138,.28);text-decoration:none}
.menu-toggle{display:none;width:auto;min-width:84px;flex-shrink:0;background:rgba(37,99,235,.18);border:1px solid #3b82f6;color:var(--text);padding:8px 14px;border-radius:10px;font-weight:600}
.menu-toggle:hover{background:rgba(37,99,235,.32)}
.card{background:rgba(30,41,59,.86);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.row{margin-bottom:10px}
input,select,textarea,.form-btn{width:100%;padding:10px;border-radius:8px;border:1px solid #475569;background:#0b1220;color:var(--text)}
button,.btn{cursor:pointer;background:var(--primary);border:none;color:#fff;padding:10px 16px;border-radius:8px;font-weight:600;display:inline-block}
button:hover,.btn:hover{background:var(--primary-hover);text-decoration:none}
.btn-secondary{background:transparent;border:1px solid #475569}
.btn-secondary:hover{background:#1e293b}
.btn-danger{background:#b91c1c}
.btn-danger:hover{background:#991b1b}
.muted{color:var(--muted)}
.banner{background:#7c2d12;padding:10px;border-radius:8px;margin-bottom:14px}
.hero{padding:40px 0 10px}
.hero-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:24px;align-items:center}
.hero h1{font-size:clamp(1.8rem,4vw,3rem);line-height:1.1;margin:.4rem 0}
.pill{display:inline-block;padding:6px 10px;background:#1e3a8a;border:1px solid #2563eb;border-radius:999px;font-size:.85rem}
.hero-copy{font-size:1.02rem;max-width:55ch}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.hero-actions > a{display:inline-block;background:var(--primary);color:#fff;padding:10px 16px;border-radius:8px;font-weight:600;text-decoration:none}
.hero-actions > a:hover{background:var(--primary-hover);text-decoration:none}
.hero-actions > a.btn-secondary{background:transparent;border:1px solid #475569;color:var(--text)}
.hero-actions > a.btn-secondary:hover{background:#1e293b}
.feature-list{margin:0;padding-left:18px;line-height:1.8}
.cards-three{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-bottom:28px}
.showcase-card h3{margin-top:0}
.api-keys-flash{border-color:#1d4ed8;background:rgba(29,78,216,.2)}
.api-key-card{display:flex;flex-direction:column;gap:10px}
.api-key-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.api-key-status{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;border-radius:999px;font-weight:700}
.api-key-status.is-active{background:rgba(22,163,74,.2);color:#86efac;border:1px solid rgba(22,163,74,.4)}
.api-key-status.is-disabled{background:rgba(148,163,184,.2);color:#cbd5e1;border:1px solid rgba(148,163,184,.4)}
.api-key-value-row{display:flex;gap:8px;align-items:center}
.api-key-value-input{font-family:monospace}
.icon-btn{width:42px;height:42px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem}
@media (max-width:850px){
  .grid,.hero-grid,.cards-three{grid-template-columns:1fr}
}
@media (max-width:700px){
  .menu-toggle{display:block}
  .nav-inner{position:relative}
  .nav-links{display:none;position:absolute;left:20px;right:20px;top:calc(100% - 8px);flex-direction:column;gap:4px;align-items:stretch;background:#0b1220;border:1px solid var(--border);padding:12px;border-radius:10px;box-shadow:0 18px 34px rgba(2,6,23,.45)}
  .nav-links.open{display:flex}
  .nav-links a{padding:10px 12px}
}

.gallery-list,#historyBox{display:flex;flex-direction:column;gap:12px}
.gallery-item,.history-item{display:flex;gap:14px;align-items:stretch}
.gallery-preview,.history-thumb{display:flex;align-items:center;justify-content:center;min-width:110px;width:110px;height:110px;border-radius:10px;overflow:hidden;border:1px solid #475569;background:#0b1220;flex-shrink:0}
.gallery-preview img,.gallery-preview video,.history-thumb img,.history-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.gallery-preview-empty,.history-thumb-empty{color:var(--muted);font-size:.8rem;text-align:center;padding:8px}
.gallery-content,.history-content{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.gallery-main-link,.history-main-link{display:flex;flex-direction:column;gap:4px;color:var(--text);text-decoration:none}
.gallery-main-link:hover,.history-main-link:hover{text-decoration:none;color:#bfdbfe}
.gallery-main-link span,.history-main-link span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--text)}
.history-main-link small{overflow-wrap:anywhere;word-break:break-word}
.gallery-actions,.history-actions{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:700px){
  .gallery-item,.history-item{flex-direction:column}
  .gallery-preview,.history-thumb{width:100%;height:180px}
}

.status-pill{display:inline-flex;align-items:center;width:fit-content;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.status-queued,.status-running{background:rgba(217,119,6,.22);border:1px solid rgba(245,158,11,.5);color:#fcd34d}
.status-succeeded{background:rgba(22,163,74,.2);border:1px solid rgba(34,197,94,.4);color:#86efac}
.status-failed{background:rgba(220,38,38,.18);border:1px solid rgba(239,68,68,.45);color:#fca5a5}
.status-unknown{background:rgba(148,163,184,.2);border:1px solid rgba(148,163,184,.4);color:#cbd5e1}

.media-viewer-card{display:flex;flex-direction:column;gap:14px}
.media-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.media-viewer-head h1{margin:0}
.media-viewer-prompt{margin:0}
.media-viewer-stage{background:#020617;border:1px solid #334155;border-radius:12px;padding:12px;display:flex;align-items:center;justify-content:center;min-height:280px}
.media-viewer-stage img,.media-viewer-stage video{max-width:100%;max-height:75vh;border-radius:8px;display:block}
.media-viewer-actions{margin-top:4px}

.generator-tabs{display:flex;gap:8px;margin-bottom:12px}
.generator-tab{flex:1;background:#0b1220;border:1px solid #334155;color:var(--text)}
.generator-tab.is-active{background:#1d4ed8;border-color:#2563eb}
.is-hidden{display:none}
#statusBox{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%}
.model-link-card{display:flex;flex-direction:column;gap:4px;text-decoration:none}
.model-link-card:hover{border-color:#3b82f6;text-decoration:none}
.admin-model-form{display:flex;flex-direction:column;gap:8px}

.models-toolbar{margin:10px 0 18px}
.model-list{display:flex;flex-direction:column;gap:10px}
.model-dialog{width:min(680px,calc(100% - 24px));border:1px solid var(--border);border-radius:12px;padding:0;background:rgba(15,23,42,.97);color:var(--text)}
.model-dialog::backdrop{background:rgba(2,6,23,.72)}
.model-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.model-dialog-head h3{margin:0}
.model-dialog .admin-model-form{padding:16px}
@media (max-width:700px){
  .model-dialog{width:calc(100% - 12px)}
  .model-dialog .admin-model-form{padding:12px}
}

.banner-success{background:#123a1f;border:1px solid #2f8f4e;color:#c9ffd9}

.users-page-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.users-page-head h1{margin:0}
.users-table-card h2{margin-top:0}
.users-table-wrap{overflow-x:auto}
.users-table{width:100%;border-collapse:collapse;min-width:760px}
.users-table th,.users-table td{padding:10px;vertical-align:top;border-bottom:1px solid var(--border);text-align:left}
.users-table th{font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:#cbd5e1}
.users-inline-form{margin:0}
.users-inline-form input{min-width:180px}
.users-actions{display:flex;gap:8px;flex-wrap:wrap}

.status-active{background:rgba(22,163,74,.2);border:1px solid rgba(34,197,94,.4);color:#86efac}
.status-pending{background:rgba(217,119,6,.22);border:1px solid rgba(245,158,11,.5);color:#fcd34d}
.status-rejected{background:rgba(220,38,38,.18);border:1px solid rgba(239,68,68,.45);color:#fca5a5}

@media (max-width:700px){
  .users-page-head .btn,.users-page-head .form-btn,.models-toolbar .form-btn{width:100%}
  .users-table{min-width:640px}
}
