.login-container[data-v-80a39f92]{min-height:100dvh;display:grid;place-items:center;padding:16px;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460)}.login-card[data-v-80a39f92]{background:#ffffff08;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:48px 40px;width:100%;max-width:400px;box-shadow:0 25px 50px -12px #00000080}.login-logo[data-v-80a39f92]{text-align:center;margin-bottom:32px}.login-title[data-v-80a39f92]{font-size:28px;font-weight:700;color:#fff;letter-spacing:-.5px}.login-accent[data-v-80a39f92]{color:var(--accent)}.login-subtitle[data-v-80a39f92]{color:#ffffff80;font-size:14px;margin-top:8px}.form-group[data-v-80a39f92]{margin-bottom:20px}.form-label[data-v-80a39f92]{display:block;color:#ffffffb3;font-size:13px;font-weight:500;margin-bottom:8px}.btn-block[data-v-80a39f92]{width:100%;padding:14px;font-size:15px;font-weight:600}.btn-block[data-v-80a39f92]:disabled{opacity:.6;cursor:not-allowed;transform:none}.card[data-v-f9f2b20e]{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:all .2s;break-inside:avoid}.card[data-v-f9f2b20e]:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px #0000004d}.card-image[data-v-f9f2b20e]{width:100%;height:auto;display:block;cursor:pointer}.card-info[data-v-f9f2b20e]{padding:12px}.card-path[data-v-f9f2b20e]{font-size:12px;color:var(--text-secondary);word-break:break-all;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-actions[data-v-f9f2b20e]{display:flex;gap:8px}.card-actions .btn[data-v-f9f2b20e]{flex:1}@media(max-width:768px){.card-info[data-v-f9f2b20e]{padding:8px}.card-actions[data-v-f9f2b20e]{flex-direction:column;gap:4px}}.preview-overlay[data-v-c8aedffe]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10001;padding:40px}.preview-image[data-v-c8aedffe]{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px #00000080}.preview-close[data-v-c8aedffe]{position:fixed;top:20px;right:24px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;font-size:24px;cursor:pointer;transition:all .2s;z-index:10002}.preview-close[data-v-c8aedffe]:hover{background:#fff3;transform:scale(1.1)}.preview-enter-active[data-v-c8aedffe]{animation:fadeIn-c8aedffe .2s ease-out}.preview-leave-active[data-v-c8aedffe]{animation:fadeOut-c8aedffe .15s ease-in}.preview-enter-active .preview-image[data-v-c8aedffe]{animation:scaleIn-c8aedffe .25s cubic-bezier(.16,1,.3,1)}@keyframes fadeIn-c8aedffe{0%{opacity:0}to{opacity:1}}@keyframes fadeOut-c8aedffe{0%{opacity:1}to{opacity:0}}@keyframes scaleIn-c8aedffe{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.upload-zone[data-v-8116f4b1]{background:var(--bg-card);border:2px dashed var(--border);border-radius:16px;padding:48px;text-align:center;cursor:pointer;transition:all .3s;margin-bottom:32px}.upload-zone[data-v-8116f4b1]:hover,.upload-zone.dragover[data-v-8116f4b1]{border-color:var(--accent);background:#f973160d}.upload-zone.uploading[data-v-8116f4b1]{pointer-events:none;opacity:.7}.upload-icon[data-v-8116f4b1]{width:48px;height:48px;margin-bottom:16px;color:var(--text-secondary)}.upload-title[data-v-8116f4b1]{font-size:18px;margin-bottom:8px}.upload-hint[data-v-8116f4b1]{color:var(--text-secondary);font-size:14px}.upload-stats[data-v-8116f4b1]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.stat-card[data-v-8116f4b1]{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px}.stat-label[data-v-8116f4b1]{color:var(--text-secondary);font-size:13px;font-weight:500;margin-bottom:8px}.stat-value[data-v-8116f4b1]{font-size:28px;font-weight:700;color:var(--accent)}.section-title[data-v-8116f4b1]{margin-bottom:16px;font-size:16px;color:var(--text-secondary)}.image-grid[data-v-8116f4b1]{columns:4;column-gap:16px}.image-grid[data-v-8116f4b1]>*{margin-bottom:16px}.empty-text[data-v-8116f4b1]{color:var(--text-secondary)}@media(max-width:768px){.upload-zone[data-v-8116f4b1]{padding:32px 20px}.upload-icon[data-v-8116f4b1]{width:36px;height:36px}.upload-title[data-v-8116f4b1]{font-size:16px}.upload-stats[data-v-8116f4b1]{grid-template-columns:1fr 1fr}.image-grid[data-v-8116f4b1]{columns:2}}.source-tabs[data-v-7097d013]{display:flex;gap:8px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px}.source-tab[data-v-7097d013]{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-secondary);font-size:13px;cursor:pointer;white-space:nowrap;transition:all .2s}.source-tab[data-v-7097d013]:hover{background:#ffffff0d;color:var(--text-primary)}.source-tab.active[data-v-7097d013]{background:var(--accent);border-color:var(--accent);color:#fff}.source-badge[data-v-7097d013]{background:#fff3;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:600}.source-tab:not(.active) .source-badge[data-v-7097d013]{background:#ffffff14}.panel-toolbar[data-v-7097d013]{margin-bottom:20px}.search-bar[data-v-7097d013]{display:flex;gap:12px;margin-bottom:12px}.search-input[data-v-7097d013]{width:250px}.quick-filters[data-v-7097d013]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-label[data-v-7097d013]{color:var(--text-secondary);font-size:13px}.btn-sm[data-v-7097d013]{padding:6px 12px;font-size:12px}.btn-ghost[data-v-7097d013]{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.btn-ghost[data-v-7097d013]:hover{background:#ffffff0d;color:var(--text-primary)}.btn-accent[data-v-7097d013]{background:var(--accent);border:1px solid var(--accent);color:#fff}.batch-actions[data-v-7097d013]{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding:16px;background:#ef44440d;border:1px solid rgba(239,68,68,.15);border-radius:12px;flex-wrap:wrap}.btn-batch-danger[data-v-7097d013]{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;color:#fff;padding:10px 16px;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.btn-batch-danger[data-v-7097d013]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}.btn-batch-danger[data-v-7097d013]:disabled{opacity:.5;cursor:not-allowed}.btn-batch-outline[data-v-7097d013]{background:transparent;border:1px solid rgba(239,68,68,.5);color:#ef4444;padding:10px 16px;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.btn-batch-outline[data-v-7097d013]:hover:not(:disabled){background:#ef44441a;border-color:#ef4444}.btn-batch-outline[data-v-7097d013]:disabled{opacity:.5;cursor:not-allowed}.count-hint[data-v-7097d013]{margin-left:auto;color:var(--text-secondary);font-size:13px}.image-grid[data-v-7097d013]{columns:4;column-gap:16px}.image-grid[data-v-7097d013]>*{margin-bottom:16px}.empty-text[data-v-7097d013]{color:var(--text-secondary)}.load-more[data-v-7097d013]{text-align:center;margin-top:24px}@media(max-width:768px){.source-tabs[data-v-7097d013]{gap:6px}.source-tab[data-v-7097d013]{padding:6px 12px;font-size:12px}.search-bar[data-v-7097d013]{flex-direction:column}.search-input[data-v-7097d013]{width:100%}.batch-actions[data-v-7097d013]{padding:12px;gap:8px}.count-hint[data-v-7097d013]{margin-left:0;width:100%}.image-grid[data-v-7097d013]{columns:2}}.settings-panel[data-v-845e5fee]{display:grid;grid-template-columns:3fr 2fr;gap:24px;align-items:start}.col-left[data-v-845e5fee],.col-right[data-v-845e5fee]{display:flex;flex-direction:column;gap:24px}@media(max-width:900px){.settings-panel[data-v-845e5fee]{grid-template-columns:1fr}}.settings-form[data-v-845e5fee]{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.form-title[data-v-845e5fee]{margin-bottom:20px;font-size:16px}.form-group[data-v-845e5fee]{margin-bottom:16px}.form-label[data-v-845e5fee]{display:block;color:var(--text-secondary);font-size:13px;margin-bottom:8px}.api-desc[data-v-845e5fee]{color:var(--text-secondary);font-size:14px;margin-bottom:16px}.code-block[data-v-845e5fee]{background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;overflow:hidden}.code-header[data-v-845e5fee]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#ffffff05;border-bottom:1px solid var(--border)}.code-lang[data-v-845e5fee]{font-size:12px;color:var(--text-secondary);font-weight:500}.btn-copy[data-v-845e5fee]{padding:4px 10px;font-size:11px;background:var(--accent);color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-copy[data-v-845e5fee]:hover{opacity:.9}.code-body[data-v-845e5fee]{margin:0;padding:12px;overflow-x:auto}.code-text[data-v-845e5fee]{font-family:Consolas,Monaco,monospace;font-size:13px;color:#e5e5e5;white-space:pre}.api-table[data-v-845e5fee]{margin-top:20px}.api-table-title[data-v-845e5fee]{font-size:14px;margin-bottom:12px;color:var(--text-secondary)}.api-table-content[data-v-845e5fee]{width:100%;border-collapse:collapse;font-size:13px}.table-cell[data-v-845e5fee]{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}.table-header[data-v-845e5fee]{color:var(--text-secondary);font-weight:500}.method[data-v-845e5fee]{padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}.method-post[data-v-845e5fee]{background:#22c55e33;color:#22c55e}.method-get[data-v-845e5fee]{background:#3b82f633;color:#3b82f6}.method-delete[data-v-845e5fee]{background:#ef444433;color:#ef4444}.api-note[data-v-845e5fee]{margin-top:16px;padding:12px;background:#f973161a;border:1px solid rgba(249,115,22,.2);border-radius:8px;font-size:13px;color:#fdba74}.api-note code[data-v-845e5fee]{background:#ffffff14;padding:2px 6px;border-radius:4px;font-family:Consolas,Monaco,monospace;font-size:12px}.key-create-form[data-v-845e5fee]{display:flex;gap:8px;margin-bottom:16px}.key-create-form input[data-v-845e5fee]{flex:1}.key-list[data-v-845e5fee]{display:flex;flex-direction:column;gap:8px}.key-item[data-v-845e5fee]{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;gap:12px}.key-info[data-v-845e5fee]{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}.key-header[data-v-845e5fee]{display:flex;align-items:center;justify-content:space-between;gap:12px}.key-name[data-v-845e5fee]{font-size:14px;font-weight:500}.key-id[data-v-845e5fee]{font-family:Consolas,Monaco,monospace;font-size:11px;color:var(--text-secondary);background:#ffffff0d;padding:2px 8px;border-radius:4px}.key-stats[data-v-845e5fee]{display:flex;align-items:center;gap:12px;flex-shrink:0}.key-value[data-v-845e5fee]{display:flex;align-items:center;gap:8px;background:#0000004d;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .2s}.key-value[data-v-845e5fee]:hover{background:#00000080}.key-value code[data-v-845e5fee]{font-family:Consolas,Monaco,monospace;font-size:13px;color:#e5e5e5;word-break:break-all;flex:1}.key-copy-hint[data-v-845e5fee]{font-size:11px;color:var(--accent);flex-shrink:0;opacity:0;transition:opacity .2s}.key-value:hover .key-copy-hint[data-v-845e5fee]{opacity:1}.key-stat[data-v-845e5fee]{font-size:12px;color:var(--accent);font-weight:500}.key-date[data-v-845e5fee]{font-size:12px;color:var(--text-secondary);flex-shrink:0}.empty-hint[data-v-845e5fee]{text-align:center;color:var(--text-secondary);font-size:13px;padding:20px 0}.dashboard[data-v-8031fbc5]{min-height:100dvh}.dashboard-header[data-v-8031fbc5]{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:16px 32px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.dashboard-title[data-v-8031fbc5]{font-size:20px;font-weight:600}.accent[data-v-8031fbc5]{color:var(--accent)}.dashboard-container[data-v-8031fbc5]{max-width:1400px;margin:0 auto;padding:32px}.dashboard-tabs[data-v-8031fbc5]{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--border);padding-bottom:16px}.dashboard-tab[data-v-8031fbc5]{padding:10px 20px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.dashboard-tab.active[data-v-8031fbc5]{background:var(--accent);color:#fff}.dashboard-tab[data-v-8031fbc5]:not(.active):hover{background:var(--bg-card);color:var(--text-primary)}@media(max-width:768px){.dashboard-header[data-v-8031fbc5]{padding:12px 16px}.dashboard-title[data-v-8031fbc5]{font-size:18px}.dashboard-container[data-v-8031fbc5]{padding:16px}.dashboard-tabs[data-v-8031fbc5]{gap:4px;margin-bottom:16px;padding-bottom:12px;overflow-x:auto}.dashboard-tab[data-v-8031fbc5]{padding:8px 14px;font-size:13px;white-space:nowrap}}.toast-container[data-v-d0ba36df]{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast-card[data-v-d0ba36df]{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;min-width:320px;max-width:420px;background:linear-gradient(135deg,#1e1e32f2,#141423fa);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;box-shadow:0 20px 40px -10px #00000080,0 0 0 1px #ffffff14,inset 0 1px #ffffff1a;pointer-events:auto;overflow:hidden}.toast-card[data-v-d0ba36df]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px}.toast-card.success[data-v-d0ba36df]:before{background:linear-gradient(180deg,#22c55e,#16a34a)}.toast-card.error[data-v-d0ba36df]:before{background:linear-gradient(180deg,#ef4444,#dc2626)}.toast-card.info[data-v-d0ba36df]:before{background:linear-gradient(180deg,#3b82f6,#2563eb)}.toast-card.progress[data-v-d0ba36df]:before{background:linear-gradient(180deg,#f97316,#ea580c)}.toast-icon[data-v-d0ba36df]{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;font-weight:700}.success .toast-icon[data-v-d0ba36df]{background:linear-gradient(135deg,#22c55e33,#16a34a4d);color:#22c55e;box-shadow:0 0 20px #22c55e4d}.error .toast-icon[data-v-d0ba36df]{background:linear-gradient(135deg,#ef444433,#dc26264d);color:#ef4444;box-shadow:0 0 20px #ef44444d}.info .toast-icon[data-v-d0ba36df]{background:linear-gradient(135deg,#3b82f633,#2563eb4d);color:#3b82f6;box-shadow:0 0 20px #3b82f64d}.progress .toast-icon[data-v-d0ba36df]{background:linear-gradient(135deg,#f9731633,#ea580c4d);color:#f97316;box-shadow:0 0 20px #f973164d}.upload-spinner[data-v-d0ba36df]{width:18px;height:18px;border:2px solid rgba(249,115,22,.3);border-top-color:#f97316;border-radius:50%;animation:spin-d0ba36df .8s linear infinite}@keyframes spin-d0ba36df{to{transform:rotate(360deg)}}.toast-content[data-v-d0ba36df]{flex:1;min-width:0}.toast-message[data-v-d0ba36df]{font-size:14px;font-weight:500;color:#fff;line-height:1.5}.toast-progress[data-v-d0ba36df]{display:flex;align-items:center;gap:10px;margin-top:10px}.progress-bar[data-v-d0ba36df]{flex:1;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.progress-fill[data-v-d0ba36df]{height:100%;background:linear-gradient(90deg,#f97316,#fb923c);border-radius:3px;transition:width .15s ease;box-shadow:0 0 10px #f9731680}.progress-text[data-v-d0ba36df]{font-size:12px;font-weight:600;color:#f97316;min-width:40px;text-align:right}.toast-close[data-v-d0ba36df]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:none;border-radius:6px;color:#ffffff80;font-size:18px;cursor:pointer;transition:all .2s;flex-shrink:0}.toast-close[data-v-d0ba36df]:hover{background:#ffffff1a;color:#fff}.toast-enter-active[data-v-d0ba36df]{animation:slideIn-d0ba36df .4s cubic-bezier(.16,1,.3,1)}.toast-leave-active[data-v-d0ba36df]{animation:slideOut-d0ba36df .3s cubic-bezier(.7,0,.84,0)}@keyframes slideIn-d0ba36df{0%{transform:translate(120%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut-d0ba36df{0%{transform:translate(0);opacity:1}to{transform:translate(120%);opacity:0}}.confirm-overlay[data-v-0b388eb0]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000}.confirm-dialog[data-v-0b388eb0]{background:linear-gradient(135deg,#1e1e32fa,#141423);border-radius:20px;padding:28px;min-width:360px;max-width:420px;box-shadow:0 25px 50px -12px #0009,0 0 0 1px #ffffff14,inset 0 1px #ffffff1a;text-align:center}.confirm-icon[data-v-0b388eb0]{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:24px;font-weight:700}.danger .confirm-icon[data-v-0b388eb0]{background:linear-gradient(135deg,#ef444433,#dc26264d);color:#ef4444;box-shadow:0 0 30px #ef44444d}.warning .confirm-icon[data-v-0b388eb0]{background:linear-gradient(135deg,#f59e0b33,#d977064d);color:#f59e0b;box-shadow:0 0 30px #f59e0b4d}.info .confirm-icon[data-v-0b388eb0]{background:linear-gradient(135deg,#3b82f633,#2563eb4d);color:#3b82f6;box-shadow:0 0 30px #3b82f64d}.confirm-content[data-v-0b388eb0]{margin-bottom:24px}.confirm-title[data-v-0b388eb0]{font-size:18px;font-weight:600;color:#fff;margin-bottom:8px}.confirm-message[data-v-0b388eb0]{font-size:14px;color:#ffffffb3;line-height:1.6;white-space:pre-line}.confirm-actions[data-v-0b388eb0]{display:flex;gap:12px}.confirm-actions .btn[data-v-0b388eb0]{flex:1;padding:12px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-cancel[data-v-0b388eb0]{background:#ffffff14;color:#fffc;border:1px solid rgba(255,255,255,.1)!important}.btn-cancel[data-v-0b388eb0]:hover{background:#ffffff1f;color:#fff}.btn-confirm.danger[data-v-0b388eb0]{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 15px #ef444466}.btn-confirm.danger[data-v-0b388eb0]:hover{transform:translateY(-1px);box-shadow:0 6px 20px #ef444480}.btn-confirm.warning[data-v-0b388eb0]{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 4px 15px #f59e0b66}.btn-confirm.warning[data-v-0b388eb0]:hover{transform:translateY(-1px);box-shadow:0 6px 20px #f59e0b80}.btn-confirm.info[data-v-0b388eb0]{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 15px #3b82f666}.btn-confirm.info[data-v-0b388eb0]:hover{transform:translateY(-1px);box-shadow:0 6px 20px #3b82f680}.confirm-enter-active[data-v-0b388eb0]{animation:fadeIn-0b388eb0 .2s ease-out}.confirm-leave-active[data-v-0b388eb0]{animation:fadeOut-0b388eb0 .15s ease-in}.confirm-enter-active .confirm-dialog[data-v-0b388eb0]{animation:scaleIn-0b388eb0 .25s cubic-bezier(.16,1,.3,1)}.confirm-leave-active .confirm-dialog[data-v-0b388eb0]{animation:scaleOut-0b388eb0 .15s ease-in}@keyframes fadeIn-0b388eb0{0%{opacity:0}to{opacity:1}}@keyframes fadeOut-0b388eb0{0%{opacity:1}to{opacity:0}}@keyframes scaleIn-0b388eb0{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut-0b388eb0{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0f0f23;--bg-secondary: #1a1a35;--bg-card: rgba(255, 255, 255, .03);--border: rgba(255, 255, 255, .08);--text-primary: #fff;--text-secondary: rgba(255, 255, 255, .6);--accent: #f97316;--accent-hover: #ea580c;--success: #22c55e;--danger: #ef4444}html,body,#app{height:100%;min-height:100dvh}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-primary);color:var(--text-primary)}.btn{padding:10px 20px;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-hover) 100%);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 16px -4px #f9731666}.btn-secondary{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary)}.btn-secondary:hover{background:#ffffff14;color:var(--text-primary)}.btn-danger{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.btn-danger:hover{background:#ef444433}.btn-sm{padding:8px 12px;font-size:12px}input[type=text],input[type=password]{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;transition:all .2s}input:focus{outline:none;border-color:var(--accent);background:#f973160d}input::placeholder{color:#ffffff4d}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;color:var(--text-secondary);gap:16px}@media(max-width:768px){.btn{padding:8px 16px;font-size:13px}.loading{padding:32px}}
