*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f7f6f3;--surface:#fff;--surface-2:#f0efe9;--border:#e8e6df;--border-strong:#d0cec5;--text:#1a1916;--text-2:#5a5852;--text-3:#9a9890;--radius:10px}@media (prefers-color-scheme:dark){:root{--bg:#131312;--surface:#1e1e1c;--surface-2:#252523;--border:#2e2e2b;--border-strong:#3e3e3a;--text:#f0efe9;--text-2:#a8a69e;--text-3:#5a5852}}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,sans-serif;font-size:14px;line-height:1.5}.app{max-width:960px;margin:0 auto;padding:24px 16px 60px}.header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.header h1{letter-spacing:-.3px;font-size:20px;font-weight:600}.header-sub{color:var(--text-2);margin-top:2px;font-size:13px}.month-nav{align-items:center;gap:12px;display:flex}.month-nav button{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;width:32px;height:32px;color:var(--text-2);border-radius:8px;justify-content:center;align-items:center;font-size:16px;transition:background .15s;display:flex}.month-nav button:hover{background:var(--surface-2)}.month-label{text-align:center;min-width:130px;font-size:15px;font-weight:500}.summary-row{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:28px;display:grid}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:12px 14px;transition:border-color .15s,transform .1s}.summary-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.summary-card-dot{border-radius:50%;width:8px;height:8px;margin-bottom:8px}.summary-card-mins{letter-spacing:-.5px;margin-bottom:3px;font-family:DM Mono,monospace;font-size:22px;font-weight:600;line-height:1}.summary-card-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.summary-card-sessions{color:var(--text-3);margin-top:4px;font-size:11px}.calendar-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.calendar-header{border-bottom:1px solid var(--border);grid-template-columns:repeat(7,1fr);display:grid}.cal-dow{text-align:center;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;padding:10px 8px;font-size:11px;font-weight:500}.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.cal-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;min-height:96px;padding:8px;transition:background .1s;position:relative}.cal-cell:nth-child(7n){border-right:none}.cal-cell:hover{background:var(--bg)}.cal-cell.empty{background:var(--surface-2);cursor:default;pointer-events:none}.cal-day{color:var(--text-2);justify-content:center;align-items:center;width:22px;height:22px;margin-bottom:6px;font-size:12px;font-weight:500;display:flex}.cal-cell.today .cal-day{background:var(--text);color:var(--surface);border-radius:50%;font-weight:600}.cal-activities{flex-direction:column;gap:3px;display:flex}.activity-pill{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:500;line-height:1.4;overflow:hidden}.cal-more{color:var(--text-3);margin-top:2px;padding-left:4px;font-size:10px}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:420px;padding:24px}.modal-title{margin-bottom:4px;font-size:16px;font-weight:600}.modal-date{color:var(--text-2);margin-bottom:20px;font-size:13px}.existing-activities{margin-bottom:16px}.existing-activity-row{background:var(--surface-2);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:8px 10px;display:flex}.existing-activity-info{align-items:center;gap:8px;display:flex}.existing-activity-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.existing-activity-name{font-size:13px;font-weight:500}.existing-activity-dur{color:var(--text-2);font-size:12px}.delete-btn{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:16px;line-height:1;transition:color .15s,background .15s}.delete-btn:hover{color:#e24b4a;background:#fcebeb}.add-form-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;font-size:12px;font-weight:500}.add-form-label.mt{margin-top:14px}.type-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.type-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:center;color:var(--text-2);border-radius:8px;padding:8px 6px;font-size:11px;font-weight:500;line-height:1.3;transition:all .15s}.type-btn:hover{border-color:var(--border-strong)}.type-btn.selected{font-weight:600}.duration-input{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:8px;outline:none;width:100%;margin-top:6px;padding:10px 12px;font-family:DM Mono,monospace;font-size:14px;transition:border-color .15s}.duration-input:focus{border-color:var(--border-strong)}.quick-mins{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.quick-min-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:6px;padding:4px 10px;font-family:DM Mono,monospace;font-size:12px;transition:all .12s}.quick-min-btn:hover{border-color:var(--border-strong);background:var(--surface-2);color:var(--text)}.notes-input{border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);resize:none;border-radius:8px;outline:none;margin-top:14px;padding:10px 12px;font-family:Inter,sans-serif;font-size:14px;transition:border-color .15s}.notes-input:focus{border-color:var(--border-strong)}.divider{background:var(--border);height:1px;margin:18px 0}.modal-actions{gap:10px;margin-top:20px;display:flex}.btn-cancel{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:8px;flex:1;padding:10px;font-size:14px;font-weight:500;transition:background .15s}.btn-cancel:hover{background:var(--surface-2)}.btn-save{background:var(--text);color:var(--surface);cursor:pointer;border:none;border-radius:8px;flex:2;padding:10px;font-size:14px;font-weight:500;transition:opacity .15s}.btn-save:hover{opacity:.85}.btn-save:disabled{opacity:.4;cursor:not-allowed}.total-bar{border-top:1px solid var(--border);background:var(--surface-2);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.total-label{color:var(--text-2);font-size:13px}.total-value{font-family:DM Mono,monospace;font-size:15px;font-weight:600}@media (width<=600px){.cal-cell{min-height:72px;padding:6px}.summary-row{grid-template-columns:repeat(4,1fr)}.summary-card-mins{font-size:18px}}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:20px;width:100%;max-width:360px;padding:40px 32px}.login-icon{margin-bottom:16px;font-size:40px}.login-title{letter-spacing:-.3px;margin-bottom:6px;font-size:22px;font-weight:600}.login-sub{color:var(--text-2);margin-bottom:32px;font-size:13px}.btn-google{border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:11px 16px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;transition:background .15s;display:flex}.btn-google:hover{background:var(--surface-2)}.user-menu{align-items:center;gap:10px;display:flex}.user-avatar{object-fit:cover;border:1px solid var(--border);border-radius:50%;width:30px;height:30px}.btn-signout{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:8px;padding:6px 12px;font-family:Inter,sans-serif;font-size:12px;font-weight:500;transition:background .15s}.btn-signout:hover{background:var(--surface-2)}
