@import"https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&family=Montserrat:wght@500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #06121c;--bg-1: #0a1825;--bg-2: #0f2030;--bg-3: #14293c;--bg-hover: #1a334a;--border: #1d3349;--border-strong: #2a4762;--border-glow: rgba(82, 181, 213, .3);--text: #c5d4e1;--text-bright: #f3f8fc;--text-muted: #8aa3b8;--text-dim: #56738a;--primary: #096AAC;--primary-hover: #52B5D5;--primary-deep: #003A5C;--primary-soft: rgba(82, 181, 213, .12);--primary-glow: rgba(82, 181, 213, .35);--accent: #52B5D5;--coral: #FB826F;--sand: #D7C8B1;--success: #0DA724;--success-soft: rgba(13, 167, 36, .14);--warning: #E29911;--warning-soft: rgba(226, 153, 17, .14);--danger: #C42D29;--danger-soft: rgba(196, 45, 41, .14);--info: #52B5D5;--info-soft: rgba(82, 181, 213, .12);--font-sans: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Montserrat", "Public Sans", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .45);--shadow-glow: 0 0 0 1px rgba(82, 181, 213, .4), 0 8px 24px rgba(9, 106, 172, .25)}html,body,#root{height:100%}body{font-family:var(--font-sans);background:radial-gradient(1200px 600px at 80% -10%,rgba(82,181,213,.1),transparent 60%),radial-gradient(900px 500px at -10% 30%,rgba(9,106,172,.08),transparent 60%),var(--bg);color:var(--text);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}a{color:var(--primary-hover);text-decoration:none}a:hover{color:var(--text-bright)}button{font-family:inherit;font-size:.8125rem;font-weight:500;background:var(--bg-2);color:var(--text);border:1px solid var(--border);padding:.45rem .85rem;border-radius:var(--r-sm);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.4rem;line-height:1.2;min-height:32px}button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-bright)}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:linear-gradient(180deg,var(--primary-hover) 0%,var(--primary) 100%);color:#fff;border-color:transparent;box-shadow:0 1px #ffffff26 inset,0 1px 2px #00000040}button.primary:hover:not(:disabled){background:linear-gradient(180deg,#6fc7e1 0%,var(--primary-hover) 100%);color:#fff;box-shadow:var(--shadow-glow)}button.danger{background:linear-gradient(180deg,var(--danger) 0%,#9c211e 100%);color:#fff;border-color:transparent}button.danger:hover:not(:disabled){background:linear-gradient(180deg,#d9433f 0%,var(--danger) 100%);color:#fff}button.ghost{background:transparent;border-color:transparent}button.ghost:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border)}button.icon-only{padding:.4rem;width:32px;justify-content:center}.segmented{display:inline-flex;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px;gap:2px}.segmented button{background:transparent;border:none;padding:.3rem .75rem;min-height:26px;color:var(--text-muted);font-size:.78rem}.segmented button.active{background:var(--bg-hover);color:var(--text-bright);box-shadow:0 1px 2px #0000004d}input,select,textarea{font-family:inherit;font-size:inherit;background:var(--bg-1);color:var(--text);border:1px solid var(--border);padding:.5rem .75rem;border-radius:var(--r-sm);width:100%;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}input::placeholder{color:var(--text-dim)}.input-with-icon{position:relative;flex:1;min-width:200px}.input-with-icon input{padding-left:2.25rem}.input-with-icon .input-icon{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--text-dim);pointer-events:none}.app-shell{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:linear-gradient(180deg,var(--bg-1) 0%,var(--bg) 100%);border-right:1px solid var(--border);padding:1.25rem 0 1rem;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:0 1.25rem 1.25rem;border-bottom:1px solid var(--border);margin-bottom:.75rem}.brand-mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--primary-deep) 0%,var(--primary) 50%,var(--primary-hover) 100%);display:grid;place-items:center;color:#fff;box-shadow:0 4px 14px #096aac73;flex-shrink:0;padding:5px}.brand-mark img{width:100%;height:100%;object-fit:contain}.brand-title{font-weight:700;font-family:var(--font-display);font-size:1rem;color:var(--text-bright);letter-spacing:.02em;text-transform:uppercase}.brand-sub{font-size:.7rem;color:var(--text-dim);letter-spacing:.05em;text-transform:uppercase}.sidebar-section-label{font-size:.65rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;padding:.5rem 1.25rem .35rem}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 .5rem}.sidebar-nav a{display:flex;align-items:center;gap:.7rem;padding:.55rem .75rem;color:var(--text-muted);font-weight:500;font-size:.84rem;border-radius:var(--r-sm);transition:all .15s ease}.sidebar-nav a svg{flex-shrink:0;opacity:.85}.sidebar-nav a:hover{background:var(--bg-2);color:var(--text-bright)}.sidebar-nav a.active{background:var(--primary-soft);color:var(--text-bright);box-shadow:inset 0 0 0 1px var(--border-glow)}.sidebar-nav a.active svg{color:var(--primary-hover);opacity:1}.sidebar-footer{margin-top:auto;padding:1rem .75rem 0;border-top:1px solid var(--border)}.user-chip{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:var(--r-sm);background:var(--bg-2);border:1px solid var(--border)}.user-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--coral),var(--primary));display:grid;place-items:center;font-weight:600;color:#fff;font-size:.75rem;flex-shrink:0}.user-chip-name{font-size:.8rem;color:var(--text-bright);font-weight:500}.user-chip-role{font-size:.68rem;color:var(--text-dim)}.main{flex:1;padding:1.75rem 2rem 3rem;overflow-x:hidden;min-width:0}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.page-title{font-size:1.5rem;font-weight:700;font-family:var(--font-display);color:var(--text-bright);letter-spacing:-.01em;display:flex;align-items:center;gap:.6rem}.page-subtitle{color:var(--text-muted);font-size:.85rem;margin-top:.2rem}.section-title{font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:2rem 0 .75rem}.breadcrumb{display:flex;align-items:center;gap:.4rem;color:var(--text-muted);font-size:.85rem;margin-bottom:.35rem}.breadcrumb a{color:var(--text-muted)}.breadcrumb a:hover{color:var(--text-bright)}.breadcrumb svg{color:var(--text-dim)}.card{background:linear-gradient(180deg,var(--bg-2) 0%,var(--bg-1) 100%);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.1rem 1.2rem;box-shadow:var(--shadow-sm);transition:border-color .2s,transform .2s}.card.padded{padding:1.4rem}.card.compact{padding:.9rem 1rem}.card.flush{padding:0;overflow:hidden}.card.flush>.card-head{padding:1rem 1.2rem;border-bottom:1px solid var(--border)}.card.flush>.card-body{padding:1rem 1.2rem}.card.flush>table{margin:0}.card-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.card-grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card-grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.card h3{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.9rem}.card-head-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}.card-head-row h3{margin-bottom:0}.metric-row{display:flex;justify-content:space-between;align-items:center;padding:.42rem 0;font-size:.85rem;border-bottom:1px dashed transparent}.metric-row+.metric-row{border-top:1px solid rgba(255,255,255,.025)}.metric-label{color:var(--text-muted);font-size:.8rem}.metric-value{font-weight:500;color:var(--text-bright)}.metric-value.mono,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.metric-tile{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.2rem;background:linear-gradient(180deg,var(--bg-2) 0%,var(--bg-1) 100%);border:1px solid var(--border);border-radius:var(--r-lg);position:relative;overflow:hidden}.metric-tile-label{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;display:flex;align-items:center;gap:.4rem}.metric-tile-label svg{color:var(--text-dim)}.metric-tile-value{font-size:1.7rem;font-weight:600;color:var(--text-bright);font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1;transition:color .3s ease}.metric-tile-value.flash{color:var(--primary-hover)}.metric-tile-sub{font-size:.78rem;color:var(--text-muted)}.metric-tile-sub .up{color:var(--success)}.metric-tile-sub .down{color:var(--danger)}.metric-tile-spark-inline{margin-top:.6rem;opacity:.95}.progress{width:100%;height:8px;background:var(--bg);border-radius:999px;overflow:hidden;border:1px solid var(--border);position:relative}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary) 0%,var(--primary-hover) 50%,var(--primary) 100%);background-size:200% 100%;transition:width .6s cubic-bezier(.4,0,.2,1);box-shadow:0 0 8px var(--primary-glow);animation:progress-flow 2.4s linear infinite}@keyframes progress-flow{0%{background-position:200% 0}to{background-position:0 0}}.progress-fill.warning{background:linear-gradient(90deg,var(--warning) 0%,#f5b647 100%);box-shadow:0 0 8px #e2991166}.progress-fill.danger{background:linear-gradient(90deg,var(--danger) 0%,var(--coral) 100%);box-shadow:0 0 8px #c42d2966}.progress-fill.success{background:linear-gradient(90deg,var(--success) 0%,#2dd14a 100%)}.progress-block{display:flex;flex-direction:column;gap:.4rem}.progress-head{display:flex;justify-content:space-between;align-items:baseline;font-size:.8rem}.progress-head .label{color:var(--text-muted);display:flex;align-items:center;gap:.4rem}.progress-head .value{font-family:var(--font-mono);color:var(--text-bright);font-weight:500;font-variant-numeric:tabular-nums}.progress-foot{font-size:.72rem;color:var(--text-dim);font-family:var(--font-mono)}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;line-height:1.2;border:1px solid transparent}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px #ffffff0a}.badge.online{background:var(--success-soft);color:#4be069;border-color:#0da7244d}.badge.errored{background:var(--danger-soft);color:#f06b67;border-color:#c42d294d}.badge.stopped{background:#8aa3b81a;color:var(--text-muted);border-color:#8aa3b833}.badge.unknown{background:var(--warning-soft);color:#f5b647;border-color:#e299114d}.badge.info{background:var(--info-soft);color:var(--primary-hover);border-color:#52b5d54d}.badge.primary{background:var(--primary-soft);color:var(--primary-hover);border-color:var(--border-glow)}.badge.neutral{background:var(--bg-2);color:var(--text-muted);border-color:var(--border)}.badge.online .dot{animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 3px #0da72400}50%{box-shadow:0 0 0 3px #0da7244d}}.app-card{display:flex;flex-direction:column;background:linear-gradient(180deg,var(--bg-2) 0%,var(--bg-1) 100%);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:all .2s ease;text-decoration:none;color:inherit}.app-card:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow-md);text-decoration:none;color:inherit}.app-card-head{padding:1rem 1.2rem .85rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.app-card-title{display:flex;align-items:center;gap:.6rem}.app-card-icon{width:36px;height:36px;border-radius:8px;background:var(--primary-soft);display:grid;place-items:center;color:var(--primary-hover);border:1px solid var(--border-glow)}.app-card-name{font-size:1rem;font-weight:700;font-family:var(--font-display);color:var(--text-bright);letter-spacing:.01em}.app-card-url{font-size:.72rem;color:var(--text-dim);font-family:var(--font-mono)}.app-card-body{padding:.9rem 1.2rem .4rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.app-stat{display:flex;flex-direction:column;gap:.15rem}.app-stat-label{font-size:.66rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.app-stat-value{font-size:.98rem;font-weight:600;color:var(--text-bright);font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.app-card-spark{height:56px;margin:.25rem 0 0;opacity:.95}.app-card-foot{padding:.7rem 1.2rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:#00000026}.commit-chip{display:flex;align-items:center;gap:.45rem;font-size:.74rem;color:var(--text-muted);font-family:var(--font-mono)}.commit-chip .hash{padding:1px 6px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text)}table{width:100%;border-collapse:collapse;font-size:.85rem}th{text-align:left;padding:.65rem 1rem;color:var(--text-muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);background:var(--bg-1);position:sticky;top:0}td{padding:.65rem 1rem;border-bottom:1px solid var(--border);color:var(--text)}tbody tr{transition:background .1s}tbody tr:hover{background:#52b5d50d}tbody tr:last-child td{border-bottom:0}.log-toolbar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:.75rem;padding:.6rem .75rem;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md)}.log-toolbar .spacer{flex:1}.log-toolbar label{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-muted);-webkit-user-select:none;user-select:none;cursor:pointer}.log-toolbar input[type=checkbox]{width:auto;accent-color:var(--primary)}.log-viewer{background:#06070b;border:1px solid var(--border);border-radius:var(--r-md);font-family:var(--font-mono);font-size:.78rem;line-height:1.55;max-height:65vh;overflow-y:auto;white-space:pre-wrap;word-break:break-word;position:relative}.log-viewer::-webkit-scrollbar{width:10px}.log-viewer::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}.log-line{display:grid;grid-template-columns:50px 70px 1fr;gap:.75rem;padding:.2rem .9rem;border-left:2px solid transparent}.log-line:hover{background:#52b5d50d}.log-line-num{color:var(--text-dim);text-align:right;-webkit-user-select:none;user-select:none}.log-line-lvl{text-transform:uppercase;font-size:.68rem;font-weight:600;letter-spacing:.06em;align-self:center}.log-line-body{color:var(--text)}.log-line-body .hl{background:#f59e0b40;border-radius:2px;padding:0 2px;color:#fde68a}.log-line.lvl-error{border-left-color:var(--danger);background:#ef44440a}.log-line.lvl-error .log-line-lvl{color:var(--danger)}.log-line.lvl-error .log-line-body{color:#fca5a5}.log-line.lvl-warn{border-left-color:var(--warning)}.log-line.lvl-warn .log-line-lvl{color:var(--warning)}.log-line.lvl-warn .log-line-body{color:#fcd34d}.log-line.lvl-info .log-line-lvl{color:var(--info)}.log-line.lvl-debug .log-line-lvl{color:var(--text-dim)}.log-line.lvl-debug .log-line-body{color:var(--text-muted)}.log-line.lvl-success .log-line-lvl{color:var(--success)}.log-line.lvl-success .log-line-body{color:#6ee7b7}.log-line.lvl-log .log-line-lvl{color:var(--text-dim)}.log-empty{padding:2rem;text-align:center;color:var(--text-dim);font-style:italic}.trail-grid{display:grid;gap:1rem}.trail-grid.split{grid-template-columns:repeat(2,minmax(0,1fr))}.trail-grid.stacked{grid-template-columns:1fr}@media (max-width: 1100px){.trail-grid.split{grid-template-columns:1fr}}.logstream{display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;min-width:0}.logstream-head{display:flex;align-items:center;justify-content:space-between;padding:.55rem .85rem;border-bottom:1px solid var(--border);background:var(--bg-2);gap:.6rem;flex-wrap:wrap}.logstream-viewer{border:0;border-radius:0;flex:1}.env-table td{padding:.4rem .6rem;vertical-align:top}.env-table th{padding:.6rem}.env-input{background:var(--bg-1);border:1px solid transparent;padding:.4rem .55rem;font-family:var(--font-mono);font-size:.8rem;width:100%;border-radius:var(--r-sm);transition:border-color .15s,box-shadow .15s,background .15s}.env-input:hover{background:var(--bg-2)}.env-input:focus{background:var(--bg-2);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.env-input-err{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.env-value{letter-spacing:.02em}.env-err{font-size:.7rem;color:var(--danger);margin-top:.2rem;padding-left:.1rem}.env-row-dirty td:first-child{border-left:3px solid var(--primary-hover);padding-left:calc(.6rem - 3px)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:100;padding:1rem;animation:fade-in .15s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-lg);width:100%;max-width:520px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;animation:pop-in .18s cubic-bezier(.4,0,.2,1)}@keyframes pop-in{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;border-bottom:1px solid var(--border)}.modal-head h3{font-size:.95rem;font-weight:600;color:var(--text-bright);text-transform:none;letter-spacing:-.01em;margin:0}.modal-body{padding:1.1rem 1.2rem;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:.5rem;padding:.85rem 1.2rem;border-top:1px solid var(--border)}.diff-group{display:flex;flex-direction:column;gap:.9rem}.diff-section{display:flex;flex-direction:column;gap:.45rem}.diff-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.diff-title.diff-success{color:var(--success)}.diff-title.diff-warning{color:var(--warning)}.diff-title.diff-danger{color:var(--danger)}.diff-chips{display:flex;flex-wrap:wrap;gap:.35rem}.diff-chip{font-family:var(--font-mono);font-size:.74rem;padding:2px 8px;border-radius:999px;border:1px solid transparent}.diff-chip.diff-success{background:var(--success-soft);color:#4be069;border-color:#0da7244d}.diff-chip.diff-warning{background:var(--warning-soft);color:#f5b647;border-color:#e299114d}.diff-chip.diff-danger{background:var(--danger-soft);color:#f06b67;border-color:#c42d294d}.activity-list{list-style:none;padding:0;margin:0}.activity-item{display:flex;align-items:center;gap:.7rem;padding:.6rem 1rem;border-bottom:1px solid var(--border);font-size:.85rem}.activity-item:last-child{border-bottom:0}.activity-item:hover{background:#52b5d50a}.activity-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.activity-time{font-size:.74rem;min-width:78px}.activity-message{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-rel{font-size:.72rem}.settings-tabs{display:flex;gap:.25rem;flex-wrap:wrap;padding:.3rem;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:1.25rem}.settings-tabs a{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border-radius:var(--r-sm);color:var(--text-muted);font-size:.85rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.settings-tabs a:hover{background:var(--bg-hover);color:var(--text-bright);text-decoration:none}.settings-tabs a.active{background:var(--primary-soft);color:var(--text-bright);box-shadow:inset 0 0 0 1px var(--border-glow)}.settings-tabs a.active svg{color:var(--primary-hover)}.theme-row{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);cursor:pointer;transition:all .15s}.theme-row:hover{background:var(--bg-2);border-color:var(--border-strong)}.theme-row.is-active{background:var(--primary-soft);border-color:var(--border-glow)}.login-shell{display:grid;place-items:center;min-height:100vh;padding:1rem;background:radial-gradient(800px 400px at 50% 20%,rgba(82,181,213,.22),transparent 60%),radial-gradient(600px 400px at 50% 85%,rgba(9,106,172,.18),transparent 60%),radial-gradient(500px 300px at 90% 10%,rgba(251,130,111,.08),transparent 60%),var(--bg)}.login-card{background:linear-gradient(180deg,var(--bg-2) 0%,var(--bg-1) 100%);border:1px solid var(--border-strong);border-radius:var(--r-xl);padding:2.25rem 2rem;width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.login-mark{width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,var(--primary-deep) 0%,var(--primary) 60%,var(--primary-hover) 100%);display:grid;place-items:center;color:#fff;margin:0 auto 1.1rem;box-shadow:0 10px 32px #096aac8c;padding:8px}.login-mark img{width:100%;height:100%;object-fit:contain}.login-card h1{color:var(--text-bright);font-family:var(--font-display);font-size:1.5rem;font-weight:700;margin-bottom:.3rem;text-align:center;letter-spacing:.02em;text-transform:uppercase}.login-card p{color:var(--text-muted);margin-bottom:1.5rem;font-size:.85rem;text-align:center}.form-group{margin-bottom:.9rem}.form-group label{display:block;margin-bottom:.35rem;font-size:.78rem;color:var(--text-muted);font-weight:500}.error-banner{background:var(--danger-soft);border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:.6rem .8rem;border-radius:var(--r-sm);margin-bottom:1rem;font-size:.82rem;display:flex;align-items:center;gap:.5rem}.success-banner{background:var(--success-soft);border:1px solid rgba(16,185,129,.3);color:#6ee7b7;padding:.6rem .8rem;border-radius:var(--r-sm);margin-bottom:1rem;font-size:.82rem;display:flex;align-items:center;gap:.5rem}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.row.gap-lg{gap:1.25rem}.row.gap-sm{gap:.35rem}.muted{color:var(--text-muted)}.dim{color:var(--text-dim)}.loading{padding:3rem 1rem;color:var(--text-muted);text-align:center;font-size:.9rem}.spacer{height:1rem}.kbd{font-family:var(--font-mono);font-size:.72rem;padding:1px 5px;background:var(--bg);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;color:var(--text-muted)}.skeleton{background:linear-gradient(90deg,var(--bg-2) 0%,var(--bg-3) 50%,var(--bg-2) 100%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--r-sm)}@keyframes shimmer{to{background-position:-200% 0}}.spin{animation:spin 1.1s linear infinite;transform-origin:50% 50%}@keyframes spin{to{transform:rotate(360deg)}}.recharts-tooltip-wrapper{outline:none!important}.chart-tooltip{background:var(--bg-3);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:.5rem .7rem;font-size:.76rem;box-shadow:var(--shadow-md);font-family:var(--font-mono)}.chart-tooltip .tt-label{color:var(--text-dim);margin-bottom:.1rem}.chart-tooltip .tt-value{color:var(--text-bright);font-weight:500}[data-theme=light]{--bg: #f4f7fb;--bg-1: #ffffff;--bg-2: #f7fafd;--bg-3: #eef3f9;--bg-hover: #e7eef7;--border: #d6dde6;--border-strong: #b4c0cf;--border-glow: rgba(9, 106, 172, .25);--text: #1c2a3a;--text-bright: #0a1825;--text-muted: #56738a;--text-dim: #8aa3b8;--primary: #096AAC;--primary-hover: #0a7cc6;--primary-deep: #003A5C;--primary-soft: rgba(9, 106, 172, .08);--primary-glow: rgba(9, 106, 172, .25);--success-soft: rgba(13, 167, 36, .1);--warning-soft: rgba(226, 153, 17, .1);--danger-soft: rgba(196, 45, 41, .1);--info-soft: rgba(82, 181, 213, .1);--shadow-sm: 0 1px 2px rgba(0, 30, 60, .06);--shadow-md: 0 4px 16px rgba(0, 30, 60, .08);--shadow-lg: 0 12px 40px rgba(0, 30, 60, .12);--shadow-glow: 0 0 0 1px rgba(9, 106, 172, .25), 0 8px 24px rgba(9, 106, 172, .12)}[data-theme=light] body{background:radial-gradient(1200px 600px at 80% -10%,rgba(82,181,213,.1),transparent 60%),radial-gradient(900px 500px at -10% 30%,rgba(9,106,172,.06),transparent 60%),var(--bg)}[data-theme=light] .badge.online{color:#0a8a1d}[data-theme=light] .badge.errored{color:#b32420}[data-theme=light] .badge.unknown{color:#b07300}[data-theme=light] .log-viewer{background:#0f1c2a}[data-theme=light] .log-line-body{color:#d8e1ec}[data-theme=light] .log-line-num{color:#6a8198}[data-theme=light] tbody tr:hover{background:#096aac0f}[data-theme=light] th{background:var(--bg-2)}[data-theme=light] .sidebar{background:linear-gradient(180deg,#ffffff 0%,var(--bg-2) 100%)}[data-theme=light] .sidebar-nav a{color:var(--text-muted)}[data-theme=light] .sidebar-nav a:hover{background:var(--bg-3);color:var(--text-bright)}[data-theme=light] .sidebar-nav a.active{background:#096aac14;color:var(--primary)}[data-theme=light] .sidebar-nav a.active svg{color:var(--primary)}[data-theme=light] .brand-title,[data-theme=light] .page-title{color:var(--text-bright)}[data-theme=light] .chart-tooltip,[data-theme=light] .env-input{background:#fff}[data-theme=light] .env-input:hover{background:var(--bg-2)}[data-theme=light] .env-input:focus{background:#fff}[data-theme=light] .login-shell{background:radial-gradient(800px 400px at 50% 20%,rgba(82,181,213,.25),transparent 60%),radial-gradient(600px 400px at 50% 85%,rgba(9,106,172,.18),transparent 60%),var(--bg)}.theme-toggle{display:inline-flex;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px;gap:1px}.theme-toggle button{background:transparent;border:none;padding:.25rem .45rem;min-height:24px;color:var(--text-dim);font-size:.7rem}.theme-toggle button.active{background:var(--bg-hover);color:var(--text-bright)}@media (max-width: 900px){.sidebar{width:64px}.brand-title,.brand-sub,.sidebar-nav a span,.sidebar-section-label,.user-chip-name,.user-chip-role,.theme-toggle{display:none}.sidebar-brand{justify-content:center;padding:0 .5rem 1rem}.sidebar-nav{padding:0 .5rem}.sidebar-nav a{justify-content:center;padding:.55rem}.user-chip{justify-content:center;padding:.4rem}.main{padding:1.25rem}}@media (max-width: 600px){.app-card-body{grid-template-columns:repeat(2,1fr)}.page-title{font-size:1.2rem}.page-header{gap:.5rem}.main{padding:1rem .85rem 2rem}.card{padding:.9rem 1rem}.card.padded{padding:1rem}.card-grid.cols-4,.card-grid.cols-2{grid-template-columns:1fr}.metric-tile-value{font-size:1.4rem}.log-toolbar{padding:.5rem;gap:.4rem}.log-toolbar .segmented button{padding:.3rem .5rem}.modal-card{max-width:100%;margin:0}.card.flush,.card{overflow-x:auto}table{min-width:560px}.log-line{grid-template-columns:36px 60px 1fr;gap:.5rem;padding:.2rem .6rem}.breadcrumb{font-size:.78rem}}
