@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-color:#0f1115;--panel-bg:#ffffff08;--panel-border:#ffffff14;--text-main:#f3f4f6;--text-muted:#9ca3af;--accent:#6366f1;--accent-hover:#4f46e5;--success:#10b981;--danger:#ef4444}body{background-color:var(--bg-color);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Inter,sans-serif}*{box-sizing:border-box}.dashboard{max-width:1400px;margin:0 auto;padding:2rem}.header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.header h1{background:linear-gradient(90deg,#fff,#a5b4fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:2.5rem;font-weight:700}.section-title{border-bottom:1px solid var(--panel-border);color:#e5e7eb;margin-bottom:1.5rem;padding-bottom:.5rem;font-size:1.5rem;font-weight:600}.service-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.service-card{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;flex-direction:column;gap:1.5rem;padding:1.5rem;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.service-card:hover{border-color:#ffffff26;transform:translateY(-2px);box-shadow:0 10px 25px -5px #00000080}.service-header{justify-content:space-between;align-items:flex-start;display:flex}.service-title{margin:0;font-size:1.25rem;font-weight:600;line-height:1.3}.status-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:9999px;align-items:center;gap:.375rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.status-badge.running{color:var(--success);background:#10b9811a;border:1px solid #10b98133}.status-badge.running .status-dot{background:var(--success);box-shadow:0 0 8px var(--success);animation:2s infinite pulse}.status-badge.stopped{color:var(--text-muted);background:#9ca3af1a;border:1px solid #9ca3af33}.status-badge.stopped .status-dot{background:var(--text-muted)}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.service-controls{gap:.75rem;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;padding:.625rem 1rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-secondary{color:#fff;background:#ffffff1a}.btn-secondary:hover{background:#ffffff26}.pipeline-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;display:grid}.pipeline-card{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:12px;padding:1.5rem}.pipeline-title{text-transform:capitalize;align-items:center;gap:.5rem;margin-top:0;margin-bottom:1rem;font-size:1.125rem;font-weight:600;display:flex}.item-count{color:var(--text-muted);background:#ffffff0d;border-radius:999px;margin-left:auto;padding:.125rem .5rem;font-size:.75rem;font-weight:400}.file-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.file-item{cursor:pointer;background:#0003;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem;transition:background .2s;display:flex}.file-item:hover{background:#ffffff0d}.file-name{white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:.875rem;overflow:hidden}.file-meta{color:var(--text-muted);font-size:.75rem}.folder-groups{flex-direction:column;gap:1rem;display:flex}.folder-group{flex-direction:column;gap:.5rem;display:flex}.folder-name{color:#a5b4fc;word-break:break-all;align-items:center;gap:.35rem;padding-left:.25rem;font-size:.85rem;font-weight:600;display:flex}.gallery-container{background:var(--surface);border-radius:12px;gap:2rem;min-height:60vh;margin-top:1rem;padding:1.5rem;display:flex}.gallery-sidebar{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.5rem;width:250px;padding-right:1.5rem;display:flex}.folder-btn{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.95rem;transition:all .2s;display:flex}.folder-btn:hover{background:var(--surface-light);color:#fff}.folder-btn.active{color:#a5b4fc;background:#6366f126;border-color:#6366f14d}.media-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));align-content:start;gap:1.5rem;display:grid}.media-card{background:var(--surface-light);cursor:pointer;border:1px solid var(--border);border-radius:12px;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.media-card:hover{border-color:var(--primary);transform:translateY(-4px);box-shadow:0 8px 16px #0006}.media-thumb{object-fit:cover;background:#0f172a;width:100%;height:200px}.video-thumb{background:#0f172a;justify-content:center;align-items:center;width:100%;height:200px;font-size:3rem;display:flex}.media-info{padding:.75rem}.media-info p{white-space:nowrap;text-overflow:ellipsis;color:#fff;margin:0 0 .25rem;font-size:.85rem;overflow:hidden}.media-info span{color:var(--text-muted);font-size:.75rem}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#000000d9;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-color);border:1px solid var(--panel-border);border-radius:16px;flex-direction:column;width:100%;padding:1.5rem;display:flex;box-shadow:0 25px 50px -12px #00000080}.media-modal{max-width:1000px;max-height:90vh}.terminal-modal{max-width:900px;height:80vh}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.5rem;transition:color .2s}.modal-close:hover{color:#fff}.media-container{background:#000;border-radius:8px;flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}video,img.media-preview{object-fit:contain;max-width:100%;max-height:70vh}.terminal-container{background:#050505;border:1px solid #333;border-radius:8px;flex:1;padding:1rem;position:relative;overflow-y:auto}.terminal-output{color:#a3e635;white-space:pre-wrap;word-wrap:break-word;margin:0;font-family:Consolas,Monaco,monospace;font-size:.875rem;line-height:1.5}.loader{border:3px solid #ffffff1a;border-top:3px solid var(--accent);border-radius:50%;width:24px;height:24px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-files{color:var(--text-muted);text-align:center;padding:1rem 0;font-size:.875rem}.auth-screen{background:var(--bg-color);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.auth-card{background:var(--panel-bg);border:1px solid var(--panel-border);text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;width:100%;max-width:500px;padding:3rem;box-shadow:0 25px 50px -12px #00000080}.auth-card h2{color:#fff;margin-top:0;font-size:1.5rem}.auth-card p{color:var(--text-muted);line-height:1.6}.device-id-box{border:1px dashed var(--accent);background:#0000004d;border-radius:8px;flex-direction:column;gap:.5rem;margin:2rem 0;padding:1.5rem;display:flex}.device-id-box .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}.device-id-box .code{color:#fff;letter-spacing:.1em;font-family:monospace;font-size:2rem}.instructions{text-align:left;background:#ffffff0d;border-radius:8px;margin-bottom:2rem;padding:1rem}.instructions p{color:#d1d5db;margin:.5rem 0}.polling{color:var(--accent);justify-content:center;align-items:center;gap:.75rem;font-weight:500;display:flex}@media (width<=768px){.service-grid{grid-template-columns:1fr}.gallery-container{flex-direction:column;gap:1rem;padding:1rem}.gallery-sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:.5rem;width:100%;padding-bottom:.75rem;padding-right:0;overflow-x:auto}.gallery-sidebar h3{display:none}.folder-btn{white-space:nowrap;border:1px solid var(--panel-border);flex-shrink:0;margin:0;padding:.5rem .75rem}.media-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.media-thumb,.video-thumb{height:120px}.media-info{padding:.5rem}}
