:root{--bg:#f7f8fb;--panel:#ffffff;--panel-border:#dfe4eb;--text:#172033;--muted:#657083;--table-line:#edf0f5;--input-bg:#ffffff;--accent:#1677ff;--accent-2:#10a37f;--danger:#c93636;--warning:#b7791f;--shadow:0 10px 28px rgba(23,32,51,0.08)}[data-theme=dark]{--bg:#111827;--panel:#182235;--panel-border:#2d3a51;--text:#f6f8fb;--muted:#a8b3c7;--table-line:#2d3a51;--input-bg:#101827;--accent:#4f9cff;--accent-2:#34d399;--danger:#fb7185;--warning:#fbbf24;--shadow:0 12px 30px rgba(0,0,0,0.24)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{background:#101827;color:#f8fafc;padding:22px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-weight:760;margin-bottom:28px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#1677ff}.nav{display:grid;grid-gap:6px;gap:6px}.nav a{display:flex;align-items:center;gap:10px;min-height:40px;padding:9px 10px;border-radius:8px;color:#d5dbe8}.nav a:hover{color:#ffffff}.nav a:hover,.theme-toggle{background:rgba(255,255,255,.08)}.theme-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:38px;margin-top:18px;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:#f8fafc;cursor:pointer}.main{min-width:0;padding:26px 30px 42px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.page-title{margin:0;font-size:28px;line-height:1.15;letter-spacing:0}.page-subtitle{margin:6px 0 0;color:var(--muted)}.grid{display:grid;grid-gap:14px;gap:14px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.two-col{grid-template-columns:minmax(0,1.5fr) minmax(320px,.7fr)}.card,.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:8px;box-shadow:var(--shadow)}.panel{padding:18px}.card{padding:14px}.kpi-label{color:var(--muted);font-size:13px}.kpi-value{margin-top:8px;font-size:24px;font-weight:760}.table-wrap{overflow:auto;background:var(--panel);border:1px solid var(--panel-border);border-radius:8px}table{width:100%;border-collapse:collapse;min-width:820px}td,th{padding:11px 12px;border-bottom:1px solid var(--table-line);text-align:left;vertical-align:middle;white-space:nowrap}th{color:var(--muted);text-transform:uppercase}.badge,th{font-size:12px;font-weight:700}.badge{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:999px;background:#eef4ff;color:#1456b8}.badge.success{background:#e7f8f2;color:#08745b}.badge.failed{background:#feeceb;color:var(--danger)}.badge.partial,.badge.running{background:#fff4db;color:var(--warning)}.badge--active{background:#e8f5e9;color:#2e7d32}.badge--waiting{background:#fff8e1;color:#f57f17}.badge--completed{background:#e3f2fd;color:#1565c0}.badge--failed{background:#ffebee;color:#c62828}.badge--slow{background:#fff4db;color:#b7791f}.form-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:10px;gap:10px;align-items:end}.field{display:grid;grid-gap:6px;gap:6px}.field label{color:var(--muted);font-size:12px;font-weight:700}.field input,.field select{width:100%;min-height:38px;border:1px solid #cfd7e3;border-radius:8px;padding:8px 10px;background:var(--input-bg);color:var(--text)}.field select[multiple]{min-height:126px}.filter-grid{grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr) auto;grid-gap:12px}.filter-grid,.filter-row{display:grid;gap:12px;align-items:end}.filter-row{grid-template-columns:160px minmax(180px,.8fr) minmax(220px,1fr);grid-gap:12px}.date-input{width:100%;min-height:38px;padding:8px 10px;border:1px solid #cfd7e3;border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit;font-size:14px;cursor:pointer}.date-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.filter-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.switch-row{color:var(--muted);font-size:13px}.actions,.switch-row{display:flex;align-items:center;gap:8px}.actions{justify-content:flex-end}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1px solid #cfd7e3;border-radius:8px;padding:8px 12px;background:var(--input-bg);color:var(--text);cursor:pointer}.button.primary{background:var(--accent);border-color:var(--accent);color:#ffffff}.button:disabled{cursor:wait;opacity:.6}.muted{color:var(--muted)}.error-text{color:var(--danger);white-space:normal}.msd-root{position:relative}.msd-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:38px;padding:8px 10px;border:1px solid #cfd7e3;border-radius:8px;background:var(--input-bg);color:var(--text);cursor:pointer;text-align:left}.msd-trigger--active{border-color:var(--accent)}.msd-trigger-label{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.msd-chevron,.msd-trigger-label:empty:before,.msd-trigger[data-placeholder] .msd-trigger-label{color:var(--muted)}.msd-chevron{flex-shrink:0;transition:transform .15s}.msd-chevron--open{transform:rotate(180deg)}.msd-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:220px;background:var(--panel);border:1px solid var(--panel-border);border-radius:8px;box-shadow:var(--shadow);z-index:100;display:flex;flex-direction:column;max-height:320px}.msd-search-wrap{padding:8px;border-bottom:1px solid var(--panel-border)}.msd-search{width:100%;min-height:32px;padding:5px 8px;border:1px solid #cfd7e3;border-radius:6px;background:var(--input-bg);color:var(--text);font:inherit;font-size:13px}.msd-search:focus{outline:2px solid var(--accent);outline-offset:-1px}.msd-list{overflow-y:auto;flex:1 1;padding:4px 0}.msd-option{padding:8px 12px;cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:4px;margin:0 4px}.msd-option:hover{background:var(--bg)}.msd-option--selected{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-weight:600}.msd-option--selected:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}.msd-empty{padding:10px 12px;font-size:13px;color:var(--muted)}.badge--removable{padding-right:4px;gap:4px}.badge-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:none;border:none;cursor:pointer;color:inherit;font-size:15px;line-height:1;padding:0;opacity:.65}.badge-remove:hover{opacity:1;background:rgba(0,0,0,.1)}.badge-reset{min-height:24px;padding:2px 10px;font-size:12px;border-radius:999px}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(60% 60% at 12% 8%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 60%),radial-gradient(50% 50% at 92% 92%,color-mix(in srgb,var(--accent-2) 14%,transparent),transparent 60%),var(--bg)}.auth-theme-corner{position:absolute;top:20px;right:20px}.auth-theme-corner .theme-toggle{width:auto;min-width:110px;margin:0;border-color:var(--panel-border);color:var(--text)}.auth-card,.auth-theme-corner .theme-toggle{background:var(--panel);box-shadow:var(--shadow)}.auth-card{width:100%;max-width:420px;padding:36px 32px 28px;border:1px solid var(--panel-border);border-radius:16px}.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}.auth-brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 60%,var(--accent-2)));color:#ffffff;flex-shrink:0}.auth-title{margin:0;font-size:20px;font-weight:760;letter-spacing:-.01em}.auth-subtitle{margin:4px 0 0;font-size:13px;color:var(--muted);line-height:1.4}.auth-error{background:color-mix(in srgb,var(--danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger);border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.45;margin-bottom:18px}.auth-form{display:grid;grid-gap:10px;gap:10px}.google-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:46px;padding:10px 16px;border:1px solid var(--panel-border);border-radius:10px;background:var(--input-bg);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;transition:transform .08s,box-shadow .15s,border-color .15s}.google-btn:hover{border-color:var(--accent);box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 18%,transparent)}.google-btn:active{transform:translateY(1px)}.auth-footer{margin:22px 0 0;font-size:12px;color:var(--muted);text-align:center}.sidebar-bottom{display:flex;flex-direction:column;gap:10px;margin-top:auto}.account-chip{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;transition:background .15s}.account-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 60%,var(--accent-2)));color:#ffffff;font-size:13px;font-weight:700;flex-shrink:0;text-transform:uppercase}.account-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px}.account-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:rgba(248,250,252,.5)}.account-email{font-size:12px;color:#f8fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-signout{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:transparent;border:1px solid transparent;color:rgba(248,250,252,.6);cursor:pointer;flex-shrink:0;transition:background .15s,color .15s,border-color .15s}.account-signout:hover{background:rgba(255,255,255,.08);color:#ffffff;border-color:rgba(255,255,255,.18)}@media (max-width:980px){.shell{grid-template-columns:1fr}.sidebar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:12px 14px}.sidebar-bottom{flex-direction:row;margin-top:0}.account-chip{padding:6px 10px}.account-info{display:none}.brand{margin-bottom:0}.nav{display:flex;overflow:auto}.main{padding:20px 14px 32px}.filter-grid,.filter-row,.form-grid,.kpi-grid,.two-col{grid-template-columns:1fr}}