@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-dark:#0f111a;--bg-card:#181b28;--bg-card-hover:#1e2133;--text-main:#f1f5f9;--text-muted:#94a3b8;--accent-red:#ef4444;--accent-green:#10b981;--accent-blue:#3b82f6;--accent-purple:#8b5cf6;--border-color:#272a3d;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-glow:0 0 20px -5px #3b82f64d;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5}.app-container{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2rem}.navbar{background-color:var(--bg-card);border-bottom:1px solid var(--border-color);z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#181b28cc;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0}.logo{align-items:center;gap:.75rem;display:flex}.logo .icon{color:var(--accent-blue);width:28px;height:28px}.logo h1{letter-spacing:-.025em;background:linear-gradient(to right, var(--text-main), var(--accent-blue));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.25rem;font-weight:700}.dashboard-header{margin-bottom:2rem}.dashboard-header h2{margin-bottom:.5rem;font-size:1.875rem;font-weight:700}.dashboard-header p{color:var(--text-muted)}.btn{border-radius:var(--radius-md);cursor:pointer;color:var(--text-main);background:0 0;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--accent-blue);box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow-glow);background-color:#2563eb;transform:translateY(-1px)}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:#ffffff0d;border:1px solid #0000;justify-content:center;align-items:center;transition:all .2s;display:flex}.icon-btn:hover{background:var(--bg-card-hover);color:var(--text-main);border-color:var(--border-color)}.icon-btn.start:hover{color:var(--accent-green);border-color:#10b9814d}.icon-btn.stop:hover{color:var(--accent-red);border-color:#ef44444d}.icon-sm{width:16px;height:16px}.icon{width:20px;height:20px}.icon-lg{width:48px;height:48px}.containers-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.section-title{color:var(--text-main);border-bottom:1px solid var(--border-color);align-items:center;gap:.5rem;margin:2rem 0 1rem;padding-bottom:.5rem;font-size:1.25rem;font-weight:600;display:flex}.swarm-section{margin-bottom:2rem}.container-card{background-color:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border-color);flex-direction:column;padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.container-card:before{content:"";background:var(--border-color);height:4px;position:absolute;top:0;left:0;right:0}.container-card.running:before{background:var(--accent-green)}.container-card.stopped:before{background:var(--accent-red)}.container-card:hover{box-shadow:var(--shadow-md);background-color:var(--bg-card-hover);border-color:#ffffff1a;transform:translateY(-4px)}.card-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.card-header h3{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:1.125rem;font-weight:600;overflow:hidden}.card-header .icon{color:var(--accent-blue);border-radius:var(--radius-sm);background:#3b82f61a;width:28px;height:28px;padding:4px}.status-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:9999px;padding:.25rem .6rem;font-size:.75rem;font-weight:600}.status-badge.running{color:var(--accent-green);background-color:#10b9811a;border:1px solid #10b98133}.status-badge.exited,.status-badge.stopped{color:var(--accent-red);background-color:#ef44441a;border:1px solid #ef444433}.status-badge.created{color:var(--accent-blue);background-color:#3b82f61a;border:1px solid #3b82f633}.card-body{flex:1;margin-bottom:1.5rem}.image-name{color:var(--text-muted);border-radius:var(--radius-sm);word-break:break-all;background:#0003;margin-bottom:.75rem;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem;display:inline-block}.status-text{color:var(--text-muted);font-size:.875rem}.card-footer{border-top:1px solid var(--border-color);justify-content:flex-end;padding-top:1rem;display:flex}.loading-state,.error-state,.empty-state{text-align:center;background:var(--bg-card);border-radius:var(--radius-xl);border:1px dashed var(--border-color);flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.loading-state p,.empty-state p{color:var(--text-muted);margin-top:1rem;font-weight:500}.error-state{background:#ef44440d;border-color:#ef44444d}.error-state p{color:var(--accent-red);max-width:400px;margin-top:1rem;font-weight:500}.error-icon{color:var(--accent-red)}.spinner{color:var(--accent-blue);animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=768px){.main-content{padding:1rem}.containers-grid{grid-template-columns:1fr}}@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}.w-tc-editor[data-color-mode*=dark],[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}.w-tc-editor[data-color-mode*=light],[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-text,.w-tc-editor-preview{min-height:16px}.w-tc-editor-preview pre{white-space:inherit;font-family:inherit;font-size:inherit;margin:0;padding:0}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.property-access .token.method,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.keyword{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-value,.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-name{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.selector .class,.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.class-name{color:var(--color-prettylights-syntax-entity)}
