:root{--primary:#6366f1;--primary-hover:#4f46e5;--primary-light:#e0e7ff;--primary-glow:#6366f126;--success:#10b981;--success-bg:#10b9811a;--warning:#f59e0b;--warning-bg:#f59e0b1a;--danger:#ef4444;--danger-bg:#ef44441a;--info:#3b82f6;--info-bg:#3b82f61a;--text:#475569;--text-h:#0f172a;--text-muted:#94a3b8;--text-inverse:#fff;--bg:#fff;--bg-page:#f8fafc;--bg-elevated:#fff;--bg-muted:#f1f5f9;--bg-sidebar:#fff;--border:#e2e8f0;--border-light:#f1f5f9;--border-focus:#6366f173;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 6px -1px #0f172a0f, 0 2px 4px -2px #0f172a0a;--shadow-lg:0 10px 15px -3px #0f172a14, 0 4px 6px -4px #0f172a0a;--shadow-xl:0 20px 25px -5px #0f172a1a, 0 8px 10px -6px #0f172a0a;--shadow-glow:0 0 0 3px var(--primary-glow);--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, Helvetica, Arial, sans-serif;--heading:var(--sans);--mono:"SF Mono", ui-monospace, "Cascadia Code", "Source Code Pro", Consolas, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-full:9999px;--transition-fast:.12s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--sidebar-width:240px;--sidebar-collapsed:68px;--header-height:64px;font:15px/1.6 var(--sans);letter-spacing:-.01em;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--primary:#818cf8;--primary-hover:#a5b4fc;--primary-light:#818cf826;--primary-glow:#818cf833;--success:#34d399;--warning:#fbbf24;--danger:#f87171;--info:#60a5fa;--text:#94a3b8;--text-h:#f1f5f9;--text-muted:#64748b;--text-inverse:#0f172a;--bg:#0f172a;--bg-page:#060b16;--bg-elevated:#1e293b;--bg-muted:#1e293b;--bg-sidebar:#0f172a;--border:#1f2b3e;--border-light:#1e293b;--border-focus:#818cf880;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0000004d;--shadow-lg:0 10px 15px -3px #00000080, 0 4px 6px -4px #0006;--shadow-xl:0 20px 25px -5px #0009, 0 8px 10px -6px #00000080}}:root[data-theme=dark]{--primary:#818cf8;--primary-hover:#a5b4fc;--primary-light:#818cf826;--primary-glow:#818cf833;--success:#34d399;--warning:#fbbf24;--danger:#f87171;--info:#60a5fa;--text:#94a3b8;--text-h:#f1f5f9;--text-muted:#64748b;--text-inverse:#0f172a;--bg:#0f172a;--bg-page:#060b16;--bg-elevated:#1e293b;--bg-muted:#1e293b;--bg-sidebar:#0f172a;--border:#1f2b3e;--border-light:#1e293b;--border-focus:#818cf880;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0000004d;--shadow-lg:0 10px 15px -3px #00000080, 0 4px 6px -4px #0006;--shadow-xl:0 20px 25px -5px #0009, 0 8px 10px -6px #00000080}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;min-height:100svh}body{font-family:var(--sans);color:var(--text);background:var(--bg-page);overflow-x:hidden}#root{text-align:left;background:0 0;border:none;width:100%;max-width:none;margin:0;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--heading);color:var(--text-h);letter-spacing:-.02em;font-weight:700;line-height:1.2}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px;font-weight:600}h4{font-size:15px;font-weight:600}p{margin:0}a{color:var(--primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--primary-hover)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}::selection{background:var(--primary-light);color:var(--primary-hover)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.text-h{color:var(--text-h)}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.font-mono{font-family:var(--mono)}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base), transform var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card--interactive:hover{transform:translateY(-1px)}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);font-family:var(--sans);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;padding:10px 18px;font-size:14px;font-weight:600;line-height:1.4;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--primary);color:var(--text-inverse);box-shadow:0 1px 2px var(--primary-glow)}.btn--primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 4px 12px var(--primary-glow);transform:translateY(-1px)}.btn--primary:active:not(:disabled){transform:translateY(0)}.btn--secondary{background:var(--bg-muted);color:var(--text-h);border:1px solid var(--border)}.btn--secondary:hover:not(:disabled){background:var(--border-light);border-color:var(--border-focus)}.btn--danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-bg)}.btn--danger:hover:not(:disabled){background:var(--danger);color:var(--text-inverse)}.btn--ghost{color:var(--text);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--bg-muted);color:var(--text-h)}.btn--sm{padding:6px 12px;font-size:13px}.btn--lg{padding:14px 24px;font-size:15px}.input,.select,textarea{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);width:100%;color:var(--text-h);font-family:var(--sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:10px 14px;font-size:14px;line-height:1.5}.input:focus,.select:focus,textarea:focus{border-color:var(--primary);box-shadow:var(--shadow-glow);outline:none}.input::placeholder,textarea::placeholder{color:var(--text-muted)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.badge{border-radius:var(--radius-full);letter-spacing:.02em;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.badge--primary{background:var(--primary-light);color:var(--primary)}.badge--success{background:var(--success-bg);color:var(--success)}.badge--warning{background:var(--warning-bg);color:var(--warning)}.badge--danger{background:var(--danger-bg);color:var(--danger)}.badge--muted{background:var(--bg-muted);color:var(--text-muted)}.progress-bar{background:var(--bg-muted);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress-bar__fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow);background:var(--primary)}.progress-bar__fill--success{background:var(--success)}.progress-bar__fill--warning{background:var(--warning)}.progress-bar__fill--danger{background:var(--danger)}.stat-card{gap:var(--space-2);padding:var(--space-4);background:var(--bg-muted);border-radius:var(--radius-md);border:1px solid var(--border-light);flex-direction:column;display:flex}.stat-card__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.stat-card__value{color:var(--text-h);letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1.1}.stat-card__sub{color:var(--text);font-size:13px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:.3s forwards fadeIn}.animate-slide-in{animation:.3s forwards slideInLeft}.animate-pulse{animation:2s ease-in-out infinite pulse}.animate-spin{animation:1s linear infinite spin}@media (width<=768px){:root{font-size:14px}h1{font-size:24px}h2{font-size:20px}.card{padding:var(--space-4)}}.access-denied{border:1px solid var(--border);background:var(--bg);text-align:left;border-radius:12px;width:min(100%,520px);margin:0 auto;padding:28px}.access-denied h2{color:var(--text-h);margin:0 0 12px}.access-denied p{color:var(--text);margin:0 0 12px}.access-denied__sign-out{border:1px solid var(--border);background:var(--code-bg);color:var(--text-h);font:inherit;cursor:pointer;border-radius:8px;margin-top:8px;padding:10px 16px}.admin-portal{text-align:left;gap:20px;width:min(100%,1180px);display:grid}.admin-portal__header{justify-content:space-between;align-items:end;gap:16px;display:flex}.admin-portal__header h2,.admin-report-panel h3,.admin-user-report h3,.admin-report-block h4{color:var(--text-h);margin:0 0 8px}.admin-portal__header p,.admin-muted{color:var(--text);margin:0}.admin-error{color:#dc2626;background:#dc26261a;border-radius:8px;margin:0;padding:12px}.admin-filter{gap:8px;min-width:240px;display:grid}.admin-filter span{color:var(--text-h);font-size:14px;font-weight:500}.admin-filter select{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:8px;padding:10px 12px}.admin-tabs{border:1px solid var(--border);background:var(--code-bg);border-radius:999px;flex-wrap:wrap;gap:8px;width:fit-content;padding:4px;display:flex}.admin-tabs button{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:10px 16px;font-weight:500}.admin-tabs button.is-active{background:var(--bg);color:var(--accent);box-shadow:var(--shadow);font-weight:600}.admin-report-panel{border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow);border-radius:14px;padding:22px}.admin-report-panel--grouped{gap:20px;display:grid}.admin-table-wrap{border:1px solid var(--border);border-radius:10px;margin-top:12px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th,.admin-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:12px 14px}.admin-table th{background:var(--bg-muted);color:var(--text);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:12px;font-weight:600}.admin-table tbody tr{transition:background .12s}.admin-table tbody tr:hover{background:var(--accent-bg)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table--summary td:nth-child(n+3),.admin-table td:nth-child(4),.admin-table td:nth-child(6){white-space:nowrap}.admin-user-report{border:1px solid var(--border);background:var(--code-bg);border-radius:12px;padding:18px}.admin-user-report__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.admin-user-report__header p{color:var(--text);margin-top:4px;font-size:13px}.admin-user-report__totals{color:var(--text);flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:13px;display:flex}.admin-user-report__totals strong{color:var(--accent)}.admin-user-report__tables{gap:18px;display:grid}.admin-report-block h4{font-size:15px}.admin-user-management{gap:16px;display:grid}.admin-user-form{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.admin-user-form__field{flex:280px;gap:8px;display:grid}.admin-user-form__field span{color:var(--text-h);font-size:14px;font-weight:500}.admin-user-form__field input,.admin-user-form button{border:1px solid var(--border);font:inherit;border-radius:8px;padding:10px 12px}.admin-user-form__field input{background:var(--bg);color:var(--text-h)}.admin-user-form button{background:var(--accent);color:#fff;cursor:pointer;border-color:#0000;font-weight:600}.admin-user-form button:disabled{opacity:.6;cursor:not-allowed}.admin-user-actions{text-align:right;white-space:nowrap}.admin-user-actions button{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;cursor:pointer;border-radius:8px;padding:8px 12px}.admin-user-remove{color:#dc2626}.admin-user-status{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.admin-user-status--active{color:#15803d;background:#16a34a1f}.admin-user-status--invited{color:#1d4ed8;background:#2563eb1f}.admin-user-status--removed{color:#dc2626;background:#dc26261f}@media (width<=900px){.admin-portal__header,.admin-user-report__header{flex-direction:column;align-items:stretch}.admin-tabs{border-radius:12px;width:100%}.admin-tabs button{border-radius:8px;flex:auto}}@media (prefers-color-scheme:dark){.admin-error{color:#fca5a5}.admin-user-status--active{color:#86efac}.admin-user-status--invited{color:#93c5fd}.admin-user-status--removed,.admin-user-remove{color:#fca5a5}}.admin-period-reports{gap:16px;display:grid}.admin-period-tabs{flex-wrap:wrap;gap:8px;display:flex}.admin-period-tabs button{border:1px solid var(--border);background:var(--code-bg);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;padding:10px 16px;font-weight:500}.admin-period-tabs button.is-active{background:var(--bg);color:var(--text-h);box-shadow:var(--shadow)}.admin-period-toolbar{justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px;display:flex}.admin-period-picker{gap:8px;min-width:180px;display:grid}.admin-period-picker span{color:var(--text-h);font-size:14px;font-weight:500}.admin-period-picker input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:8px;padding:10px 12px}.admin-period-controls{flex-wrap:wrap;gap:8px;display:flex}.admin-period-controls button{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;cursor:pointer;border-radius:8px;padding:10px 12px}.admin-period-controls button:disabled{opacity:.5;cursor:not-allowed}.admin-period-details{gap:18px;margin-top:20px;display:grid}.admin-weekly-actions{border-top:1px solid var(--border);gap:10px;margin-top:20px;padding-top:20px;display:grid}.admin-create-summary{background:var(--accent);color:#fff;width:fit-content;font:inherit;cursor:pointer;border:none;border-radius:8px;padding:12px 18px;font-weight:600}.admin-create-summary:disabled{opacity:.6;cursor:not-allowed}.admin-table__total-row td{background:var(--code-bg)}.admin-saved-summary{border:1px solid var(--border);background:var(--code-bg);border-radius:12px;padding:18px}.admin-saved-summary__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.admin-saved-summary__header h4{color:var(--text-h);margin:0 0 6px}.admin-saved-summary__header p{color:var(--text);margin:0;font-size:13px}.admin-saved-summary__totals{color:var(--text);flex-wrap:wrap;gap:8px 14px;font-size:13px;display:flex}.admin-saved-summary__totals strong{color:var(--accent)}.admin-saved-summary__details{margin-top:16px}.admin-saved-summary__details summary{cursor:pointer;color:var(--text-h);font-weight:600}.admin-saved-summary__breakdown{gap:16px;margin-top:14px;display:grid}.admin-breakdown-block h5{color:var(--text-h);margin:0 0 8px}@media (width<=900px){.admin-period-toolbar,.admin-saved-summary__header{flex-direction:column;align-items:stretch}}.admin-deleted-section{border-top:1px dashed var(--border);margin-top:24px;padding-top:16px}.admin-deleted-toggle{cursor:pointer;color:var(--text);font:inherit;letter-spacing:.02em;background:0 0;border:none;padding:6px 0;font-size:14px;font-weight:600}.admin-deleted-toggle:hover{color:var(--text-h)}.admin-table--deleted tbody tr{opacity:.7}.admin-table--deleted tbody tr td:first-child{color:var(--text)}.auth-card{border:1px solid var(--border);background:var(--bg);width:min(100%,420px);box-shadow:var(--shadow);text-align:left;border-radius:12px;margin:0 auto;padding:32px 28px}.auth-card__header h2{margin-bottom:8px}.auth-card__header p{color:var(--text);font-size:16px}.auth-form{gap:16px;margin-top:24px;display:grid}.auth-field{gap:8px;display:grid}.auth-field span{color:var(--text-h);font-size:14px;font-weight:500}.auth-field input{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;border-radius:8px;padding:12px 14px}.auth-field input:focus{outline:2px solid var(--accent-border);outline-offset:1px}.auth-error{color:#dc2626;background:#dc26261a;border-radius:8px;margin:0;padding:10px 12px;font-size:14px}@media (prefers-color-scheme:dark){.auth-error{color:#fca5a5}}.auth-submit{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:8px;margin-top:4px;padding:12px 16px;font-weight:500}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-divider{color:var(--text);align-items:center;gap:12px;margin:20px 0;font-size:14px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-google{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;cursor:pointer;border-radius:8px;padding:12px 16px;font-weight:500}.auth-google:disabled{opacity:.7;cursor:not-allowed}.auth-google:hover:not(:disabled){background:var(--code-bg)}.auth-switch{text-align:center;margin-top:20px;font-size:14px}.auth-switch button{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}.dashboard-chart{grid-template-columns:repeat(14,1fr);align-items:end;gap:4px;height:140px;margin-bottom:12px;display:grid}.dashboard-chart__bar{flex-direction:column;align-items:center;gap:4px;height:100%;padding:2px;display:flex;position:relative}.dashboard-chart__bar--today .dashboard-chart__day{color:var(--primary);font-weight:700}.dashboard-chart__bar--today .dashboard-chart__stack{box-shadow:0 0 0 2px var(--primary-glow)}.dashboard-chart__stack{background:var(--bg-muted);border-radius:6px;flex-direction:column-reverse;flex:1;width:100%;transition:box-shadow .2s;display:flex;position:relative;overflow:hidden}.dashboard-chart__fill{width:100%;min-height:2px;transition:height .4s}.dashboard-chart__fill--manual{background:linear-gradient(180deg, var(--primary) 0%, var(--primary-hover) 100%)}.dashboard-chart__fill--auto{background:linear-gradient(180deg, var(--primary-light) 0%, #6366f133 100%);opacity:.6}.dashboard-chart__day{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;font-size:10px;font-weight:500}.dashboard-chart__date{color:var(--text-muted);opacity:.7;font-size:10px}.dashboard-legend{color:var(--text);gap:18px;font-size:13px;font-weight:500;display:flex}.dashboard-legend__swatch{vertical-align:middle;border-radius:3px;width:12px;height:12px;margin-right:6px;display:inline-block}.dashboard-legend__swatch--manual{background:linear-gradient(135deg, var(--primary), var(--primary-hover))}.dashboard-legend__swatch--auto{background:var(--primary-light);opacity:.6}@media (width<=768px){.dashboard-chart{gap:2px;height:110px}.dashboard-chart__day{font-size:9px}.dashboard-chart__date{display:none}}.agent-installer-link{border:1px solid var(--border);background:var(--code-bg);text-align:left;width:min(100%,820px);color:var(--text);border-radius:10px;margin:0;padding:14px 16px;font-size:14px}.agent-installer-link--compact{background:0 0;border:none;width:auto;padding:0;font-size:13px}.agent-installer-link button{color:var(--accent);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}.agent-installer-link button:hover{opacity:.85}.background-setup{text-align:left;background:#f59e0b14;border:1px solid #f59e0b59;border-radius:12px;gap:16px;width:min(100%,820px);padding:18px 20px;display:grid}.background-setup strong{color:var(--text-h)}.background-setup p{color:var(--text);margin-top:6px;font-size:14px}.background-setup__error{color:#dc2626}.background-setup__steps{color:var(--text);margin:0;padding-left:20px;font-size:14px}.background-setup__steps li+li{margin-top:8px}.background-setup__actions{flex-wrap:wrap;gap:12px;display:flex}.background-setup__download{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:8px;padding:12px 18px;font-weight:500}.background-setup__retry{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;cursor:pointer;border-radius:8px;padding:12px 18px}.background-setup__hint{color:var(--text-h);font-size:14px}.background-setup__command{background:var(--code-bg);text-align:left;white-space:pre-wrap;word-break:break-word;border-radius:8px;padding:12px 14px;display:block;overflow-x:auto}.background-setup__note,.background-setup__advanced{color:var(--text);font-size:14px}.background-setup__advanced summary{cursor:pointer;color:var(--accent)}.background-setup__advanced .background-setup__command{margin-top:10px}.collector-status{border:1px solid var(--border);text-align:left;border-radius:12px;width:min(100%,820px);padding:16px 18px}.collector-status--checking{color:var(--text)}.collector-status.is-online{background:#10b98114;border-color:#10b98159}.collector-status.is-pending{background:#3b82f614;border-color:#3b82f659}.collector-status.is-offline{background:#f59e0b14;border-color:#f59e0b59}.collector-status strong{color:var(--text-h)}.collector-status p{color:var(--text);margin-top:4px;font-size:14px}.collector-status__error{background:#dc26261a;border-radius:8px;padding:10px 12px;color:#dc2626!important;margin-top:10px!important}.collector-status__help{line-height:1.5;margin-top:10px!important;font-size:13px!important}.collector-status__help a{color:var(--accent)}.collector-status__reinstall{margin-top:10px}.daily-log,.log-empty-panel{text-align:left;width:min(100%,820px)}.daily-log h2,.log-empty-panel h2{margin:0 0 16px}.daily-log__list,.daily-log__entries{gap:16px;display:grid}.daily-log__entries{margin:0;padding:0;list-style:none}.daily-log__day,.log-empty-panel{border:1px solid var(--border);background:var(--bg);border-radius:12px;padding:20px}.daily-log__day-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.daily-log__day-header h3{margin:0;font-size:20px}.daily-log__user{color:var(--text);margin-top:4px;font-size:14px}.daily-log__total{background:var(--accent-bg);color:var(--accent);border-radius:999px;padding:4px 10px;font-size:14px;font-weight:600}.daily-log__entry{background:var(--code-bg);border-radius:10px;justify-content:space-between;gap:16px;padding:14px;display:flex}.daily-log__entry-main{gap:4px;min-width:0;display:grid}.daily-log__entry-main strong{color:var(--text-h)}.daily-log__entry-main span,.daily-log__entry-time{color:var(--text);font-size:14px}.daily-log__entry-time{flex-shrink:0;font-weight:500}.log-empty,.log-error,.log-empty-panel p{color:var(--text)}.log-error{color:#dc2626;background:#dc26261a;border-radius:8px;padding:12px}.log-empty-panel p+p{margin-top:8px}@media (width<=640px){.daily-log__day-header,.daily-log__entry{flex-direction:column}}.timer-card{max-width:600px;margin-left:auto;margin-right:auto}.timer-idle,.timer-idle__form{gap:var(--space-4);flex-direction:column;display:flex}.project-selected{justify-content:space-between;align-items:center;gap:var(--space-3);background:var(--bg-muted);border-radius:var(--radius-md);border:1px solid var(--border-light);padding:12px 16px;display:flex}.project-combo{position:relative}.project-combo__row{gap:var(--space-2);align-items:center;display:flex}.project-list{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);max-height:280px;box-shadow:var(--shadow-lg);z-index:50;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.project-list__item{border-radius:var(--radius-sm);text-align:left;cursor:pointer;width:100%;color:var(--text);transition:background var(--transition-fast);font-size:14px;font-family:var(--sans);background:0 0;border:none;flex-direction:column;gap:2px;padding:10px 14px;display:flex}.project-list__item:hover{background:var(--bg-muted);color:var(--text-h)}.project-list__item strong{color:var(--text-h);font-weight:600}.project-list__item span{color:var(--text-muted);font-size:12px}.project-list__empty{text-align:center;color:var(--text-muted);padding:20px;font-size:14px}.toggle-group{gap:var(--space-4);flex-wrap:wrap;display:flex}.toggle{align-items:center;gap:var(--space-2);cursor:pointer;font-size:14px;font-weight:500;display:flex}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle__track{background:var(--border);border-radius:var(--radius-full);width:40px;height:22px;transition:background var(--transition-fast);flex-shrink:0;position:relative}.toggle input:checked+.toggle__track{background:var(--primary)}.toggle__thumb{width:18px;height:18px;transition:transform var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.toggle input:checked+.toggle__track .toggle__thumb{transform:translate(18px)}.toggle__label{color:var(--text-h);-webkit-user-select:none;user-select:none}.timer-running{align-items:center;gap:var(--space-5);padding:var(--space-4) 0;flex-direction:column;display:flex}.timer-running__info{text-align:center;flex-direction:column;gap:4px;display:flex}.timer-running__tags{justify-content:center;gap:6px;margin-top:4px;display:flex}.timer-running__display{font-family:var(--mono);color:var(--text-h);letter-spacing:-.03em;text-align:center;padding:var(--space-4) 0;text-shadow:0 2px 8px #0000000d;font-size:72px;font-weight:700;line-height:1}@media (width<=640px){.timer-running__display{font-size:52px}}.timer-running__actions{gap:var(--space-3);width:100%;max-width:400px;display:flex}.timer-summary{gap:var(--space-4);padding:var(--space-4) 0;flex-direction:column;display:flex}.timer-summary__info{text-align:center;margin-bottom:var(--space-2);flex-direction:column;gap:4px;display:flex}.timer-summary__display{font-family:var(--mono);color:var(--text-h);letter-spacing:-.03em;text-align:center;padding:var(--space-3) 0 var(--space-5);text-shadow:0 2px 8px #0000000d;font-size:56px;font-weight:700;line-height:1}.timer-summary__actions{gap:var(--space-3);display:flex}.idle-alert{align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--warning-bg);border:1px solid var(--warning);margin-bottom:var(--space-4);display:flex}.idle-alert__icon{background:var(--warning);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.idle-alert__content{flex:1}.idle-alert__title{color:var(--text-h);margin-bottom:2px;font-weight:600}.idle-alert__text{color:var(--text);font-size:13px}.idle-alert__actions{gap:var(--space-2);flex-shrink:0;display:flex}@media (width<=640px){.idle-alert{flex-direction:column;align-items:flex-start}.idle-alert__actions{width:100%}.idle-alert__actions .btn{flex:1}}.session-list{flex-direction:column;gap:1px;display:flex}.session-item{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:background var(--transition-fast);border-bottom:1px solid var(--border-light);display:flex}.session-item:hover{background:var(--bg-muted)}.session-item:last-child{border-bottom:none}.session-item__left{gap:var(--space-3);flex:1;min-width:0;display:flex}.session-item__dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.session-item__info{flex-direction:column;gap:3px;min-width:0;display:flex}.session-item__title{color:var(--text-h);font-size:14px;font-weight:600}.session-item__project{color:var(--primary);font-size:13px;font-weight:500}.session-item__meta{color:var(--text-muted);font-size:12px;font-family:var(--mono)}.session-item__tags{gap:4px;margin-top:2px;display:flex}.session-item__summary{color:var(--text);margin-top:2px;font-size:13px;line-height:1.4}.session-item__right{align-items:flex-end;gap:var(--space-2);flex-direction:column;flex-shrink:0;display:flex}.session-item__duration{font-family:var(--mono);color:var(--text-h);font-size:15px;font-weight:700}.session-item__actions{opacity:0;transition:opacity var(--transition-fast);gap:4px;display:flex}.session-item:hover .session-item__actions{opacity:1}.dialog-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;padding:var(--space-4);background:#0006;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.dialog-card{background:var(--bg-elevated);border-radius:var(--radius-xl);padding:var(--space-6);width:100%;max-width:480px;box-shadow:var(--shadow-xl);gap:var(--space-4);flex-direction:column;max-height:90vh;animation:.3s slideUp;display:flex;overflow-y:auto}.dialog-actions{gap:var(--space-3);margin-top:var(--space-2);display:flex}.field{flex-direction:column;gap:6px;display:flex}.field>span:first-child{color:var(--text-h);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.manual-error{border-radius:var(--radius-lg);background:var(--danger-bg);color:var(--danger);margin-top:var(--space-2);padding:12px 16px;font-size:14px;font-weight:500}.manual-success{border-radius:var(--radius-lg);background:var(--success-bg);color:var(--success);margin-top:var(--space-2);padding:12px 16px;font-size:14px;font-weight:500}.kbd{border-radius:var(--radius-sm);background:var(--bg-muted);border:1px solid var(--border);font-family:var(--mono);color:var(--text-muted);justify-content:center;align-items:center;padding:2px 8px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}@media (width<=640px){.timer-summary__display{font-size:42px}.session-item__actions{opacity:1}.dialog-card{padding:var(--space-4)}}.work-track-tabs{gap:20px;width:min(100%,920px);display:grid}.work-track-tabs__nav{border:1px solid var(--border);background:var(--code-bg);border-radius:999px;align-self:flex-start;padding:4px;display:inline-flex}.work-track-tabs__nav button{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:10px 18px;font-weight:500}.work-track-tabs__nav button.is-active{background:var(--bg);color:var(--text-h);box-shadow:var(--shadow)}.work-track-tabs__nav button.needs-attention:not(.is-active){color:var(--accent)}.work-track-tabs__alert{border:1px solid var(--accent-border);background:var(--accent-bg);width:100%;color:var(--text-h);text-align:left;border-radius:10px;margin:0;padding:12px 16px;font-size:15px}.work-track-tabs__panel{gap:20px;display:grid}.theme-toggle{border:1px solid var(--border);background:var(--code-bg);color:var(--text-h);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;display:inline-flex}.theme-toggle:hover{border-color:var(--accent-border)}.theme-toggle__icon{font-size:14px;line-height:1}.app{box-sizing:border-box;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;padding:48px 24px;display:flex}.app--auth{background:linear-gradient(135deg, var(--bg-page) 0%, var(--primary-light) 100%);justify-content:center;align-items:center;min-height:100svh}.app-header--auth{text-align:center;max-width:400px}.app-header--auth h1{justify-content:center;align-items:center;gap:12px;margin-bottom:8px;font-size:32px;display:flex}.app-header--auth h1:before{content:"";background:linear-gradient(135deg, var(--primary), var(--primary-hover));border-radius:10px;flex-shrink:0;width:32px;height:32px}.app-tagline{color:var(--text);margin-top:8px;font-size:15px;line-height:1.5}.auth-error-banner{border-radius:var(--radius-lg);background:var(--danger-bg);max-width:420px;color:var(--danger);margin-top:16px;padding:12px 16px;font-weight:500}.app-layout{width:100%;height:100svh;display:flex;overflow:hidden}.app-layout__content{flex-direction:column;flex:1;display:flex;overflow:hidden}.app-layout__main{padding:var(--space-6);scroll-behavior:smooth;flex:1;overflow-y:auto}.app-topbar{padding:var(--space-3) var(--space-6);height:var(--header-height);border-bottom:1px solid var(--border);background:var(--bg-elevated);z-index:20;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.app-topbar__left{align-items:center;gap:var(--space-3);display:flex}.app-topbar__brand{color:var(--text-h);letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.app-topbar__brand:before{content:"";background:linear-gradient(135deg, var(--primary), var(--primary-hover));border-radius:7px;flex-shrink:0;width:24px;height:24px}.app-topbar__badge{text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-full);background:var(--primary-light);color:var(--primary);padding:3px 10px;font-size:11px;font-weight:700}.app-topbar__right{align-items:center;gap:var(--space-3);display:flex}.app-topbar__user{align-items:center;gap:var(--space-2);color:var(--text);border-radius:var(--radius-md);background:var(--bg-muted);border:1px solid var(--border-light);padding:6px 12px;font-size:13px;display:flex}.app-topbar__user strong{color:var(--text-h);font-weight:600}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border);transition:width var(--transition-slow);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar--collapsed{width:var(--sidebar-collapsed)}.sidebar__header{padding:var(--space-4) var(--space-5);height:var(--header-height);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sidebar__brand{color:var(--text-h);white-space:nowrap;letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.sidebar__brand:before{content:"";background:linear-gradient(135deg, var(--primary), var(--primary-hover));border-radius:7px;flex-shrink:0;width:24px;height:24px}.sidebar__toggle{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);width:28px;height:28px;color:var(--text);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__toggle:hover{background:var(--bg-muted);color:var(--text-h);border-color:var(--border-focus)}.sidebar__nav{padding:var(--space-3) var(--space-3);flex-direction:column;flex:1;gap:4px;display:flex;overflow-y:auto}.sidebar__nav-group{margin-bottom:var(--space-4)}.sidebar__nav-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:var(--space-2) var(--space-3);white-space:nowrap;font-size:10px;font-weight:700}.sidebar__link{align-items:center;gap:var(--space-3);padding:10px var(--space-3);border-radius:var(--radius-md);color:var(--text);transition:all var(--transition-fast);cursor:pointer;text-align:left;width:100%;font-size:14px;font-weight:500;font-family:var(--sans);white-space:nowrap;background:0 0;border:none;text-decoration:none;display:flex}.sidebar__link:hover{background:var(--bg-muted);color:var(--text-h)}.sidebar__link.is-active{background:var(--primary-light);color:var(--primary);font-weight:600}.sidebar__link svg,.sidebar__link .icon{opacity:.8;flex-shrink:0;width:20px;height:20px}.sidebar__link.is-active svg,.sidebar__link.is-active .icon{opacity:1}.sidebar__footer{padding:var(--space-3);border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;display:flex}.sidebar--collapsed .sidebar__brand span,.sidebar--collapsed .sidebar__nav-label,.sidebar--collapsed .sidebar__link span{display:none}.sidebar--collapsed .sidebar__link{justify-content:center;padding:10px}.icon-dashboard:before{content:"◆"}.icon-timer:before{content:"▶"}.icon-projects:before{content:"▤"}.icon-reports:before{content:"▦"}.icon-team:before{content:"◉"}.icon-settings:before{content:"⚙"}.icon-admin:before{content:"★"}@media (width<=768px){.sidebar{z-index:100;transition:transform var(--transition-slow);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.is-open{transform:translate(0)}.sidebar-overlay{z-index:99;opacity:0;pointer-events:none;transition:opacity var(--transition-slow);background:#0006;position:fixed;inset:0}.sidebar-overlay.is-open{opacity:1;pointer-events:auto}.mobile-menu-btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);width:36px;height:36px;color:var(--text-h);cursor:pointer;justify-content:center;align-items:center;display:flex}}@media (width>=769px){.mobile-menu-btn,.sidebar-overlay{display:none}}.app-loading{height:100svh;color:var(--text);justify-content:center;align-items:center;gap:12px;font-size:15px;display:flex}.app-loading:after{content:"";border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}.sign-out{composes:btn btn--ghost btn--sm from global}.nav-link{composes:btn btn--secondary from global;text-decoration:none}.page-container{width:100%;max-width:1200px;margin:0 auto}.section-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.section-header h2{font-size:22px;font-weight:700}.section-header__actions{gap:var(--space-2);display:flex}.grid-2{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.grid-auto{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}@media (width<=768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.empty-state{padding:var(--space-12) var(--space-6);text-align:center;color:var(--text-muted);justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.empty-state__icon{opacity:.3;font-size:48px}.toast{border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-xl);z-index:1000;align-items:center;gap:var(--space-3);padding:14px 20px;font-size:14px;font-weight:500;animation:.3s slideUp;display:flex;position:fixed;bottom:24px;right:24px}.toast--success{border-left:4px solid var(--success)}.toast--error{border-left:4px solid var(--danger)}.toast--warning{border-left:4px solid var(--warning)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.divider{background:var(--border);height:1px;margin:var(--space-4) 0}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);border-radius:var(--radius-sm);background:var(--text-h);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:50;padding:6px 10px;font-size:12px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(-4px)}.tooltip:hover:after{opacity:1}
