*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #fff;--text: #111;--text-secondary: #888;--accent: #111;--border: #eee}body{font-family:-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}h1{font-family:Clash Display,sans-serif;font-size:1.75rem}.app{max-width:480px;margin:0 auto;padding:60px 24px}.auth{max-width:320px;margin:0 auto;padding:60px 24px;display:flex;flex-direction:column;align-items:center}.auth h1{font-family:Clash Display,sans-serif;font-size:2rem;font-weight:400;letter-spacing:-.01em;margin-bottom:32px;white-space:nowrap}.auth-form{display:flex;flex-direction:column;gap:16px;width:100%}.google-btn,.auth-divider{width:100%}.auth-form input{padding:10px 0;border:none;border-bottom:1px solid var(--border);font-size:.85rem;background:transparent;transition:border-color .2s}.auth-form input::placeholder{color:var(--text-secondary)}.auth-form input:focus{outline:none;border-color:var(--text)}.auth-form button{padding:10px 16px;background:var(--text);color:var(--bg);border:none;cursor:pointer;font-size:.8rem;transition:opacity .2s;margin-top:8px}.auth-form button:hover{opacity:.7}.auth-form button:disabled{opacity:.5;cursor:not-allowed}.auth-error{font-size:.75rem;color:#c00}.auth-toggle{margin-top:24px;padding:0;border:none;background:transparent;cursor:pointer;font-size:.75rem;color:var(--text-secondary);transition:color .2s}.auth-toggle:hover{color:var(--text)}.google-btn{width:100%;padding:10px 16px;background:var(--bg);color:var(--text);border:1px solid var(--border);cursor:pointer;font-size:.8rem;transition:border-color .2s}.google-btn:hover{border-color:var(--text)}.auth-divider{display:flex;align-items:center;margin:24px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-divider span{padding:0 12px;font-size:.7rem;color:var(--text-secondary)}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:48px;gap:24px}.header h1{font-size:1.25rem;font-weight:500;letter-spacing:-.01em}.header-right{display:flex;align-items:center;gap:16px}.view-toggle{display:flex;gap:16px}.sign-out{padding:0;border:none;background:transparent;cursor:pointer;font-size:.8rem;color:var(--text-secondary);transition:color .2s}.sign-out:hover{color:var(--text)}.view-toggle button{padding:0;border:none;background:transparent;cursor:pointer;font-size:.8rem;color:var(--text-secondary);transition:color .2s;text-transform:lowercase}.view-toggle button:hover,.view-toggle button.active{color:var(--text)}.main{display:flex;flex-direction:column;gap:48px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.calendar-header button{padding:4px;border:none;background:transparent;cursor:pointer;color:var(--text-secondary);transition:color .2s;display:flex;align-items:center;justify-content:center}.calendar-header button:hover{color:var(--text)}.calendar-header span{font-size:.8rem;color:var(--text-secondary)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.calendar-weekdays div{text-align:center;font-size:.7rem;color:var(--text-secondary);padding:8px 0;text-transform:lowercase}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;font-size:.8rem;color:var(--text);transition:opacity .15s;border-radius:50%}.day:hover:not(.empty):not(.selected){opacity:.5}.day.empty{cursor:default}.day.today{font-weight:600}.day.selected{background:var(--text);color:var(--bg)}.day.has-entries .entry-dot{position:absolute;bottom:20%;width:3px;height:3px;background:var(--text);border-radius:50%}.day.selected .entry-dot{background:var(--bg)}.list-view h2{font-size:.7rem;text-transform:lowercase;color:var(--text-secondary);margin-bottom:16px}.day-list{display:flex;flex-direction:column;max-height:320px;overflow-y:auto}.day-list::-webkit-scrollbar{display:none}.day-item{padding:12px 0;cursor:pointer;transition:opacity .15s}.day-item:hover:not(.selected){opacity:.6}.day-item.selected .day-date{font-weight:700;text-decoration:underline}.today-pill{margin-left:8px;padding:2px 8px;font-size:.65rem;font-weight:500;background:var(--text);color:var(--bg);border-radius:10px;text-decoration:none;vertical-align:middle}.day-date{display:flex;align-items:center}.day-item-header{display:flex;justify-content:space-between;align-items:center}.day-date{font-size:.8rem;color:var(--text)}.day-item.selected .day-date{font-weight:500}.activity-count{font-size:.7rem;color:var(--text-secondary)}.day-item-activities{margin-top:6px;font-size:.75rem;color:var(--text-secondary);list-style:none}.day-item-activities li{margin-bottom:2px}.day-item-activities .more{font-style:italic}.day-panel{border-top:1px solid var(--border);padding-top:32px}.day-panel h2{font-size:.8rem;font-weight:400;color:var(--text-secondary);margin-bottom:20px}.activities{min-height:60px;margin-bottom:24px}.no-activities{color:var(--text-secondary);font-size:.8rem}.activity-list{list-style:none;display:flex;flex-direction:column;gap:0}.activity-list li{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.activity-list li span{font-size:.85rem;color:var(--text)}.remove-btn{border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:1rem;opacity:0;transition:opacity .15s;padding:0}.activity-list li:hover .remove-btn{opacity:1}.remove-btn:hover{color:var(--text)}.add-activity-form{display:flex;gap:12px;align-items:center}.add-activity-form input{flex:1;padding:10px 0;border:none;border-bottom:1px solid var(--border);font-size:.85rem;background:transparent;transition:border-color .2s}.add-activity-form input::placeholder{color:var(--text-secondary)}.add-activity-form input:focus{outline:none;border-color:var(--text)}.add-activity-form button{padding:8px 16px;background:var(--text);color:var(--bg);border:none;cursor:pointer;font-size:.75rem;transition:opacity .2s}.add-activity-form button:hover:not(:disabled){opacity:.7}.add-activity-form button:disabled,.add-activity-form input:disabled{opacity:.3;cursor:not-allowed}@media (max-width: 600px){.app{padding:40px 20px}.header{margin-bottom:32px}.main{gap:32px}}
