@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--body-bg);color:var(--text-primary);transition:background .2s ease,color .2s ease}body[data-theme=light]{color-scheme:light;--body-bg: radial-gradient(circle at top, #e2e8f0, #cbd5f5 55%);--surface: #ffffff;--surface-muted: #f8fafc;--surface-shadow: rgba(15, 23, 42, .12);--text-primary: #0f172a;--text-muted: #64748b;--border-color: #e2e8f0;--input-border: #cbd5f5;--accent: #2563eb;--accent-contrast: #ffffff;--accent-border: #bfdbfe;--status-connected-bg: #dcfce7;--status-connected-text: #15803d;--status-connecting-bg: #fef9c3;--status-connecting-text: #92400e;--status-error-bg: #fee2e2;--status-error-text: #b91c1c;--status-disconnected-bg: #f1f5f9;--status-disconnected-text: #475569;--banner-error-bg: #fee2e2;--banner-error-text: #991b1b}body[data-theme=dark]{color-scheme:dark;--body-bg: radial-gradient(circle at top, #0f172a, #020617 60%);--surface: #1f2937;--surface-muted: #111827;--surface-shadow: rgba(2, 6, 23, .6);--text-primary: #f8fafc;--text-muted: #94a3b8;--border-color: rgba(148, 163, 184, .4);--input-border: rgba(148, 163, 184, .5);--accent: #60a5fa;--accent-contrast: #0f172a;--accent-border: rgba(96, 165, 250, .7);--status-connected-bg: rgba(34, 197, 94, .15);--status-connected-text: #86efac;--status-connecting-bg: rgba(250, 204, 21, .15);--status-connecting-text: #fde047;--status-error-bg: rgba(239, 68, 68, .18);--status-error-text: #fca5a5;--status-disconnected-bg: rgba(148, 163, 184, .2);--status-disconnected-text: #cbd5f5;--banner-error-bg: rgba(239, 68, 68, .2);--banner-error-text: #fecaca}#root{min-height:100vh}.app-shell{max-width:1200px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem);color:var(--text-primary)}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(circle at top,rgba(79,70,229,.18),transparent 45%),radial-gradient(circle at bottom,rgba(248,113,113,.12),transparent 50%),var(--body-bg)}.login-form{width:min(360px,90vw);display:flex;flex-direction:column;gap:.85rem;background:var(--surface);border-radius:28px;padding:2.5rem 2rem;border:1px solid var(--border-color);box-shadow:0 30px 80px #0f172a59}.login-form input{border-radius:14px;border:1px solid var(--input-border);padding:.85rem 1rem;font-size:1rem;background:var(--surface-muted);color:var(--text-primary)}.login-form[data-error=true] input{border-color:var(--status-error-text);animation:login-shake .25s linear}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@keyframes login-shake{0%{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-4px)}to{transform:translate(0)}}.panel{background:var(--surface);border-radius:24px;padding:clamp(1.5rem,3vw,2.75rem);box-shadow:0 25px 70px var(--surface-shadow)}.panel header{display:flex;flex-direction:column;gap:.9rem;margin-bottom:1.5rem}.panel h1,.panel h2{margin:0;color:var(--text-primary)}.caption{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:var(--text-muted);margin:0}.app-controls{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.control{background:var(--surface);border-radius:18px;padding:.75rem 1rem;border:1px solid var(--border-color);min-width:220px}.chip-row{display:flex;gap:.35rem;margin-top:.5rem;flex-wrap:wrap}.connection-card{border:1px solid var(--border-color);border-radius:18px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.connection-card .actions{display:flex;gap:.5rem}button{border-radius:999px;border:none;padding:.65rem 1.5rem;font-weight:600;background:var(--accent);color:var(--accent-contrast);cursor:pointer;transition:transform .15s ease,opacity .15s ease}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{opacity:.5;cursor:not-allowed}.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent-border)}.status-pill{display:inline-flex;align-items:center;padding:.2rem .75rem;border-radius:999px;font-size:.8rem;letter-spacing:.04em;width:fit-content}.status-connected{background:var(--status-connected-bg);color:var(--status-connected-text)}.status-connecting{background:var(--status-connecting-bg);color:var(--status-connecting-text)}.status-error{background:var(--status-error-bg);color:var(--status-error-text)}.status-disconnected{background:var(--status-disconnected-bg);color:var(--status-disconnected-text)}.calendar-list{border-top:1px solid var(--border-color);padding-top:.75rem}.calendar-list ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.calendar-list li{border:1px solid var(--border-color);border-radius:12px;padding:.5rem .75rem}.calendar-list label{display:flex;align-items:center;gap:.5rem;font-weight:500}.calendar-list small{color:var(--text-muted)}.calendar-color-chip{width:.85rem;height:.85rem;border-radius:999px;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border-color)}.options-row{margin-top:1rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.toggle{display:flex;align-items:center;gap:.5rem}.panel-footer{display:flex;justify-content:flex-end;margin-top:1.5rem}.interval-controls{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}.preset-row{display:flex;gap:.5rem;flex-wrap:wrap}.chip{border-radius:999px;border:1px solid var(--border-color);background:transparent;color:var(--text-primary);padding:.45rem 1.25rem}.chip-active{border-color:var(--accent);color:var(--accent)}.nav-row{display:flex;gap:.5rem}.custom-range{display:flex;gap:1rem}.custom-range input{margin-top:.25rem;padding:.6rem;border-radius:12px;border:1px solid var(--input-border);background:var(--surface);color:var(--text-primary)}.totals{display:flex;justify-content:space-between;padding:1rem 1.25rem;background:var(--surface-muted);border-radius:18px;margin-bottom:1.5rem;align-items:center}.aggregate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.aggregate-card{background:var(--surface-muted);border:1px solid var(--border-color);border-radius:16px;padding:1rem 1.25rem;text-align:left;display:flex;flex-direction:column;color:var(--text-primary);gap:.85rem;transition:transform .18s ease,box-shadow .18s ease}.aggregate-card:hover{transform:translateY(-2px)}.aggregate-card__header{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.badge{font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;background:var(--surface);border-radius:999px;border:1px solid currentColor;padding:.3rem .85rem}.aggregate-card__hours{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-top:.65rem;border-top:1px dashed var(--border-color)}.hours-label{margin:0;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.hours-value{font-size:clamp(1.35rem,4vw,2rem);font-weight:700;white-space:nowrap;text-shadow:0 8px 25px rgba(0,0,0,.18)}.group-list details{border:1px solid var(--border-color);border-radius:16px;padding:.75rem 1rem;margin-bottom:1rem;background:var(--surface-muted)}.group-list summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;gap:.75rem;flex-wrap:wrap}.group-list ul{list-style:none;padding:0;margin:0}.group-list li{border-top:1px solid var(--border-color);padding:.75rem 0;display:flex;flex-direction:column;gap:.35rem}.group-list li:first-of-type{border-top:none}.header-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.header-actions{display:flex;gap:.5rem}.calendar-heading{display:flex;align-items:center;gap:.75rem;min-width:0}.color-swatch{width:1.25rem;height:1.25rem;border-radius:999px;border:3px solid var(--border-color);box-shadow:0 0 0 2px var(--surface)}.banner-error{background:var(--banner-error-bg);color:var(--banner-error-text);border-radius:16px;padding:.75rem 1rem;margin-bottom:1rem}.error-text{color:var(--status-error-text);margin:0}@media(max-width:768px){.panel{padding:1.25rem}.custom-range{flex-direction:column}.totals{flex-direction:column;gap:.5rem}.aggregate-card__hours{flex-direction:column;align-items:flex-start}}
