.obs-form{display:flex;flex-direction:column;gap:4px}.obs-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.obs-form-header h2{font-size:1.125rem}.obs-form-close{width:40px;height:40px;border:none;background:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full)}.obs-form-close:active{background:var(--bg-secondary)}.obs-form-date{font-size:.875rem;color:var(--text-secondary);margin-bottom:12px}.obs-preview{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:8px}.obs-preview-code{font-size:1rem;font-weight:600;font-family:SF Mono,Fira Code,monospace}.obs-form .toggle-group{margin-bottom:4px}.intercourse-toggle{display:flex;align-items:center;gap:12px;padding:8px 0}.intercourse-toggle label{font-size:.875rem;color:var(--text-primary)}.switch{position:relative;width:48px;height:28px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#bdbdbd;border-radius:14px;cursor:pointer;transition:background .2s}.switch-slider:before{content:"";position:absolute;left:2px;top:2px;width:24px;height:24px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:var(--shadow-sm)}.switch input:checked+.switch-slider{background:var(--accent)}.switch input:checked+.switch-slider:before{transform:translate(20px)}.obs-form-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.obs-form-actions .btn{flex:1}.obs-form textarea{margin-top:4px}.peak-toggle{display:flex;align-items:center;justify-content:space-between;padding:12px 0}.peak-toggle-label{display:flex;flex-direction:column}.peak-toggle-label span:first-child{font-size:.875rem;font-weight:500}.peak-toggle-label span:last-child{font-size:.75rem;color:var(--text-secondary)}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.calendar-nav h2{font-size:1.0625rem;font-weight:600}.calendar-nav-btn{width:40px;height:40px;border:none;background:none;font-size:1.25rem;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);-webkit-tap-highlight-color:transparent}.calendar-nav-btn:active{background:var(--bg-secondary)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-weekday{text-align:center;font-size:.6875rem;font-weight:600;color:var(--text-secondary);padding:8px 0;text-transform:uppercase}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;border:none;background:var(--bg-card);border-radius:var(--radius-sm);cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative}.calendar-day:active{background:var(--bg-secondary)}.calendar-day-num{font-size:.75rem;font-weight:500;color:var(--text-primary)}.calendar-day.today{outline:2px solid var(--accent);outline-offset:-2px}.calendar-day.empty{background:transparent;cursor:default}.calendar-day.has-obs .calendar-day-num{font-weight:700}.calendar-stamp{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.5rem;font-weight:700}.calendar-stamp-green{background:var(--stamp-green);color:#fff}.calendar-stamp-red{background:var(--stamp-red);color:#fff}.calendar-stamp-white{background:var(--stamp-white);border:1px solid #BDBDBD;color:var(--text-primary)}.calendar-stamp-yellow{background:var(--stamp-yellow);color:var(--text-primary)}.day-detail{padding:16px 0}.day-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.day-detail-header h2{font-size:1.125rem}.day-detail-nav{display:flex;gap:8px}.day-detail-nav button{width:36px;height:36px;border:1px solid var(--border-color);background:var(--bg-card);border-radius:var(--radius-sm);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}.day-detail-stamp{display:flex;justify-content:center;margin:24px 0}.day-detail-info{display:flex;flex-direction:column;gap:12px}.day-detail-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-color);font-size:.875rem}.day-detail-row-label{color:var(--text-secondary)}.day-detail-row-value{font-weight:500}.day-detail-actions{display:flex;gap:8px;margin-top:24px}.day-detail-actions .btn{flex:1}
