@import"https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--surface-0: #0c0c0e;--surface-1: #121215;--surface-2: #18181c;--surface-3: #1f1f24;--surface-4: #27272e;--surface-glass: rgba(18, 18, 21, .82);--edge-1: rgba(255,255,255,.06);--edge-2: rgba(255,255,255,.1);--edge-3: rgba(255,255,255,.16);--edge-glow: rgba(207, 160, 96, .2);--ink-1: #f0ede8;--ink-2: #a09d96;--ink-3: #6b6862;--ink-4: #454340;--copper: #cf9f60;--copper-bright: #e4b978;--copper-dim: rgba(207, 160, 96, .12);--copper-mid: rgba(207, 160, 96, .25);--mint: #5ec99e;--mint-dim: rgba(94, 201, 158, .12);--coral: #e8655a;--coral-dim: rgba(232, 101, 90, .12);--amber: #e0a84b;--amber-dim: rgba(224, 168, 75, .12);--sky: #5b9fd4;--sky-dim: rgba(91, 159, 212, .12);--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--font-ui: "Instrument Sans", -apple-system, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", monospace;--shadow-sm: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow-md: 0 4px 16px rgba(0,0,0,.35);--shadow-lg: 0 12px 40px rgba(0,0,0,.45);--shadow-inner: inset 0 1px 3px rgba(0,0,0,.3);--shadow-glow: 0 0 20px rgba(207, 160, 96, .15);--bg-primary: var(--surface-0);--bg-secondary: var(--surface-1);--bg-tertiary: var(--surface-2);--bg-elevated: var(--surface-3);--border: var(--edge-1);--border-hover: var(--edge-3);--text-primary: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--accent: var(--copper);--accent-hover: var(--copper-bright);--accent-muted: var(--copper-dim);--success: var(--mint);--success-muted: var(--mint-dim);--warning: var(--amber);--warning-muted: var(--amber-dim);--danger: var(--coral);--danger-muted: var(--coral-dim);--radius: var(--r-sm);--radius-lg: var(--r-lg);--font-sans: var(--font-ui)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-ui);background:var(--surface-0);color:var(--ink-1);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:128px 128px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--edge-2);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--edge-3)}::selection{background:var(--copper-mid);color:var(--ink-1)}.btn{display:inline-flex;align-items:center;gap:7px;padding:7px 15px;border:none;border-radius:var(--r-sm);font-family:var(--font-ui);font-size:12.5px;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:all .18s cubic-bezier(.4,0,.2,1);white-space:nowrap;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,transparent 100%);transition:opacity .18s}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-primary{background:linear-gradient(180deg,var(--copper-bright) 0%,var(--copper) 100%);color:#1a1410;box-shadow:0 1px 4px #cfa0604d,inset 0 1px #fff3}.btn-primary:hover{box-shadow:var(--shadow-glow),0 2px 8px #cfa06059}.btn-secondary{background:var(--surface-3);color:var(--ink-2);border:1px solid var(--edge-2);box-shadow:var(--shadow-sm)}.btn-secondary:hover{border-color:var(--edge-3);color:var(--ink-1)}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:hover{color:var(--ink-1);background:var(--surface-3)}.btn-danger{background:var(--coral-dim);color:var(--coral);border:1px solid rgba(232,101,90,.2)}.btn-danger:hover{background:var(--coral);color:#fff;border-color:var(--coral)}.btn-sm{padding:4px 10px;font-size:11.5px}.btn-lg{padding:9px 22px;font-size:13.5px}.input,.select,.textarea{width:100%;padding:7px 11px;background:var(--surface-0);border:1px solid var(--edge-2);border-radius:var(--r-sm);color:var(--ink-1);font-family:var(--font-ui);font-size:12.5px;transition:border-color .15s,box-shadow .15s;outline:none;box-shadow:var(--shadow-inner)}.input:focus,.select:focus,.textarea:focus{border-color:var(--copper);box-shadow:var(--shadow-inner),0 0 0 2px var(--copper-dim)}.input::placeholder,.textarea::placeholder{color:var(--ink-4)}.textarea{resize:vertical;min-height:72px;font-family:var(--font-mono);font-size:12px;line-height:1.6}.select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6862' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.card{background:var(--surface-1);border:1px solid var(--edge-1);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-sm)}.glass-panel{background:var(--surface-glass);backdrop-filter:blur(20px) saturate(1.3);-webkit-backdrop-filter:blur(20px) saturate(1.3);border:1px solid var(--edge-1);border-radius:var(--r-lg)}.section-title{font-size:10px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;display:flex;align-items:center;gap:8px}.section-title:after{content:"";flex:1;height:1px;background:var(--edge-1)}.tabs{display:inline-flex;gap:1px;padding:3px;background:var(--surface-2);border-radius:var(--r-sm);border:1px solid var(--edge-1)}.tab{padding:5px 13px;border:none;border-radius:4px;background:transparent;color:var(--ink-3);font-family:var(--font-ui);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.tab:hover{color:var(--ink-2)}.tab.active{background:linear-gradient(180deg,var(--copper-bright) 0%,var(--copper) 100%);color:#1a1410;box-shadow:0 1px 4px #cfa06040}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:100px;font-size:10.5px;font-weight:700;letter-spacing:.02em}.badge-accent{background:var(--copper-dim);color:var(--copper)}.badge-success{background:var(--mint-dim);color:var(--mint)}.badge-warning{background:var(--amber-dim);color:var(--amber)}.badge-danger{background:var(--coral-dim);color:var(--coral)}.badge-info{background:var(--sky-dim);color:var(--sky)}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.status-dot.online{background:var(--mint);box-shadow:0 0 6px var(--mint),0 0 12px #5ec99e4d;animation:pulse-glow 2s ease-in-out infinite}.status-dot.offline{background:var(--coral)}@keyframes pulse-glow{0%,to{box-shadow:0 0 6px var(--mint),0 0 12px #5ec99e4d}50%{box-shadow:0 0 8px var(--mint),0 0 20px #5ec99e66}}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12.5px}th{text-align:left;padding:10px 12px;color:var(--ink-3);font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--edge-2)}td{padding:10px 12px;border-bottom:1px solid var(--edge-1)}tr{transition:background .1s}tr:hover td{background:var(--surface-2)}.page-header{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--edge-1)}.page-title{font-size:16px;font-weight:700;letter-spacing:-.02em}.page-body{padding:28px}.spinner{width:18px;height:18px;border:2px solid var(--edge-2);border-top-color:var(--copper);border-radius:50%;animation:spin .55s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{padding:10px 16px;border-radius:var(--r-md);font-size:12.5px;font-weight:500;animation:toast-in .25s cubic-bezier(.16,1,.3,1);max-width:360px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toast-success{background:#5ec99e26;color:var(--mint);border:1px solid rgba(94,201,158,.25)}.toast-error{background:#e8655a26;color:var(--coral);border:1px solid rgba(232,101,90,.25)}@keyframes toast-in{0%{transform:translate(30px) scale(.95);opacity:0}to{transform:translate(0) scale(1);opacity:1}}.img-card{border-radius:var(--r-md);overflow:hidden;border:2px solid transparent;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative}.img-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.img-card.selected{border-color:var(--copper);box-shadow:0 0 0 1px var(--copper),var(--shadow-glow)}.img-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.gen-slot{background:var(--surface-2);border:1px solid var(--edge-1);border-radius:var(--r-lg);overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;transition:all .2s}.gen-slot:hover{border-color:var(--edge-2)}.gen-slot img{width:100%;height:100%;object-fit:cover;display:block}.gen-slot .label{position:absolute;bottom:0;left:0;right:0;padding:4px 10px;background:linear-gradient(transparent,#000000b3);font-size:10px;font-weight:600;color:#ffffffb3;text-align:center}.fade-in{animation:fade-in .35s cubic-bezier(.16,1,.3,1) both}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.delay-1{animation-delay:.05s}.delay-2{animation-delay:.1s}.delay-3{animation-delay:.15s}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.w-full{width:100%}.text-sm{font-size:11.5px}.text-muted{color:var(--ink-2)}.text-dim{color:var(--ink-3)}.text-right{text-align:right}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.ml-auto{margin-left:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
