:root{--bg: #FAF4EF;--bg-card: #FFFFFF;--bg-secondary: #F5EEE9;--text-primary: #2D2D2D;--text-secondary: #888;--text-muted: #BBB;--shadow: 0 2px 12px rgba(0,0,0,.06);--radius: 24px;--radius-sm: 16px;--radius-xs: 12px;--nav-height: 72px;--period-normal: #E53935;--period-heavy: #B71C1C;--period-light: #EF9A9A;--period-spotting: #A1887F;--poop-normal: #6D4C41;--poop-dense: #3E2723;--poop-diarrhea: #BCAAA4;font-family:Quicksand,sans-serif;color:var(--text-primary);background:var(--bg)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{display:flex;flex-direction:column;max-width:480px;margin:0 auto;position:relative;overflow:hidden}.app-screen{flex:1;overflow-y:auto;padding:20px 20px calc(var(--nav-height) + 20px);scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.app-screen.home-screen,.app-screen.calendar-screen{overflow:hidden;padding:20px 20px calc(var(--nav-height) + 20px);display:flex;flex-direction:column}.app-screen::-webkit-scrollbar{display:none}.header{padding:10px 0 4px;flex-shrink:0;text-align:center}.header h1{font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.2}.header p{font-size:14px;color:var(--text-secondary);font-weight:500;line-height:1.3}.header-date{font-size:12px;color:var(--text-muted);margin-top:2px;font-weight:600}.log-buttons{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:0;padding:8px 0}.log-button-group{display:flex;flex-direction:column;align-items:center;flex:1;min-height:0;justify-content:center;padding:4px 0}.log-button{border:none;background:none;cursor:pointer;padding:0;transition:transform .15s;touch-action:manipulation;display:flex;align-items:center;justify-content:center;width:100%;flex:1;min-height:0}.log-button:active{transform:scale(.93)}.log-button-img{display:block;max-width:100%;max-height:100%;width:auto;height:100%;aspect-ratio:1;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 4px 14px rgba(0,0,0,.08))}.log-hint{text-align:center;font-size:13px;font-weight:600;color:var(--text-muted);margin:4px 0 8px;flex-shrink:0}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:100;animation:fadeIn .2s ease}.sheet{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:28px 28px 0 0;padding:12px 24px 32px;z-index:101;animation:slideUp .3s ease;max-width:480px;margin:0 auto}.sheet-handle{width:40px;height:4px;border-radius:2px;background:#ddd;margin:0 auto 16px}.sheet h3{font-size:20px;font-weight:700;text-align:center;margin-bottom:16px}.sheet-option{width:100%;border:none;background:var(--bg-secondary);border-radius:var(--radius-xs);padding:14px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;margin-bottom:8px;transition:transform .1s;touch-action:manipulation}.sheet-option:active{transform:scale(.98)}.sheet-option-dot{width:16px;height:16px;border-radius:50%;flex-shrink:0}.sheet-option span{font-size:16px;font-weight:600;color:var(--text-primary)}.sheet-option .sheet-option-check{margin-left:auto;font-size:14px;color:var(--text-muted)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-height);background:#fff;border-top:1px solid #F0EBE6;display:flex;align-items:center;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom);z-index:50;max-width:480px;margin:0 auto}.nav-tabs{display:flex;align-items:center;justify-content:space-around;width:100%;height:100%}.nav-toggle{display:none}.nav-btn{background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;padding:8px 20px;touch-action:manipulation;transition:transform .1s}.nav-btn:active{transform:scale(.92)}.nav-btn-icon{font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;height:40px}.nav-btn-img{width:auto;height:40px;object-fit:contain}.nav-btn-label{font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.3px}.nav-btn.active .nav-btn-label{color:#e53935}.nav-btn.active .nav-btn-icon svg{stroke:#e53935}.calendar-screen .calendar-wrap{flex:1;display:flex;flex-direction:column;min-height:0}.calendar-header{display:flex;align-items:center;justify-content:center;gap:16px;padding:4px 0 8px;flex-shrink:0}.calendar-header h2{font-size:18px;font-weight:700;min-width:140px;text-align:center}.calendar-nav{background:none;border:none;font-size:18px;cursor:pointer;padding:6px;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;transition:background .15s}.calendar-nav:active{background:var(--bg-secondary)}.calendar-weekday-header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px;flex-shrink:0}.weekday-label{text-align:center;font-size:12px;font-weight:600;color:var(--text-muted);padding:2px 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;flex:1;align-content:stretch}.calendar-day{border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:none;font-family:inherit;font-size:clamp(12px,3.6vw,17px);font-weight:600;color:var(--text-primary);position:relative;transition:background .1s,box-shadow .1s;touch-action:manipulation;gap:1px;background-clip:padding-box}.calendar-day:active{box-shadow:inset 0 0 0 2px #00000014}.calendar-day.other-month{color:#ddd}.calendar-day.today{font-weight:700}.calendar-day-badge{position:absolute;top:-1px;right:-1px;min-width:20px;height:20px;background:#5d4037;color:#fff;font-size:10px;font-weight:800;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 5px;line-height:1;box-shadow:0 1px 3px #00000040}.day-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:100;animation:fadeIn .2s ease}.day-detail-sheet{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:28px 28px 0 0;padding:12px 24px 32px;z-index:101;animation:slideUp .3s ease;max-width:480px;margin:0 auto;max-height:60vh;overflow-y:auto}.day-detail-sheet h3{font-size:18px;font-weight:700;text-align:center;margin-bottom:16px}.day-detail-section{margin-bottom:16px}.day-detail-section h4{font-size:15px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:8px}.day-detail-entry{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius-xs);margin-bottom:6px}.day-detail-entry-left{display:flex;align-items:center;gap:8px}.day-detail-entry-dot{width:10px;height:10px;border-radius:50%}.day-detail-entry-type{font-size:14px;font-weight:600}.day-detail-entry-time{font-size:12px;color:var(--text-secondary)}.day-detail-delete{background:none;border:none;font-size:16px;cursor:pointer;padding:4px;opacity:.5}.day-detail-empty{text-align:center;color:var(--text-muted);font-size:14px;padding:20px 0}.day-detail-badge{display:inline-flex;align-items:center;justify-content:center;background:#6d4c41;color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;padding:0 6px}.profile-section{margin-bottom:24px}.profile-section h3{font-size:18px;font-weight:700;margin-bottom:12px}.profile-btn{width:100%;border:none;background:var(--bg-card);border-radius:var(--radius-xs);padding:14px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;color:var(--text-primary);box-shadow:var(--shadow);transition:transform .1s;touch-action:manipulation;margin-bottom:8px}.profile-btn:active{transform:scale(.98)}.profile-btn.danger{color:#e53935}.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000bf;color:#fff;padding:12px 24px;border-radius:12px;font-size:15px;font-weight:600;z-index:200;animation:fadeIn .15s ease;pointer-events:none;text-align:center;max-width:260px}.login-screen{height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.login-card{text-align:center;max-width:360px;width:100%}.login-logo{width:80px;height:80px;object-fit:contain;margin-bottom:16px}.login-card h1{font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:6px}.login-subtitle{font-size:15px;color:var(--text-secondary);font-weight:500;margin-bottom:32px}.login-google-btn{display:inline-flex;align-items:center;gap:12px;background:#fff;border:none;border-radius:var(--radius-sm);padding:14px 28px;font-family:inherit;font-size:16px;font-weight:600;color:var(--text-primary);box-shadow:0 2px 12px #00000014;cursor:pointer;transition:transform .15s,box-shadow .15s;touch-action:manipulation}.login-google-btn:active{transform:scale(.97);box-shadow:0 1px 6px #0000000f}.login-google-btn:disabled,.login-submit-btn:disabled{opacity:.6;pointer-events:none}.login-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--text-muted);font-size:13px;font-weight:600}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#e0d8d0}.login-input{width:100%;border:1px solid #E0D8D0;border-radius:var(--radius-xs);padding:12px 14px;font-family:inherit;font-size:15px;color:var(--text-primary);background:#fff;outline:none;transition:border-color .15s;margin-bottom:10px;box-sizing:border-box}.login-input:focus{border-color:var(--text-muted)}.login-input::placeholder{color:#ccc}.login-error{color:#e53935;font-size:13px;font-weight:600;margin-bottom:10px;text-align:center}.login-submit-btn{width:100%;border:none;border-radius:var(--radius-xs);padding:12px;font-family:inherit;font-size:15px;font-weight:700;color:#fff;background:var(--text-primary);cursor:pointer;transition:transform .15s,opacity .15s;touch-action:manipulation}.login-submit-btn:active{transform:scale(.97)}.login-toggle{margin-top:16px;font-size:14px;color:var(--text-secondary)}.login-toggle button{background:none;border:none;color:#e53935;font-weight:700;cursor:pointer;font-family:inherit;font-size:14px;text-decoration:underline}.login-toggle button:active{opacity:.7}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:768px){html,body{background:#f0ebe6}#root{max-width:none;margin:0;flex-direction:row;width:100vw;background:var(--bg)}.bottom-nav{position:relative;flex-direction:column;justify-content:space-between;width:200px;height:100vh;max-width:none;margin:0;border-top:none;border-right:1px solid #F0EBE6;background:#fff;flex-shrink:0;transition:width .25s ease;padding:0}.bottom-nav.collapsed{width:64px}.nav-tabs{flex-direction:column;justify-content:flex-start;width:100%;padding:32px 0;gap:4px}.nav-btn{flex-direction:row;justify-content:flex-start;width:100%;padding:12px 20px;gap:12px;border-radius:0;margin:0}.bottom-nav.collapsed .nav-btn{justify-content:center;padding:12px 0}.nav-btn-icon{height:36px;width:36px;flex-shrink:0}.nav-btn-img{height:36px}.bottom-nav.collapsed .nav-btn-label{display:none}.nav-btn-label{font-size:15px;white-space:nowrap}.nav-toggle{display:flex;align-items:center;justify-content:center;background:none;border:none;border-top:1px solid #F0EBE6;cursor:pointer;padding:16px;width:100%;color:var(--text-secondary);transition:background .15s,color .15s;flex-shrink:0}.nav-toggle:hover{background:var(--bg-secondary);color:var(--text-primary)}.app-screen{flex:1;min-width:0;padding:24px 32px 32px;display:flex;flex-direction:column}.app-screen.home-screen,.app-screen.calendar-screen{padding:24px 32px 32px}.header{padding:8px 0 4px}.header h1{font-size:26px}.header p{font-size:16px}.header-date{font-size:14px}.log-button-img{filter:drop-shadow(0 6px 20px rgba(0,0,0,.1))}.calendar-header h2{font-size:20px;min-width:160px}.calendar-nav{width:38px;height:38px;font-size:19px}.calendar-weekday-header{gap:4px;margin-bottom:4px}.weekday-label{font-size:14px}.calendar-grid{gap:3px}.calendar-day{font-size:clamp(14px,2vw,19px);border-radius:12px}.calendar-day-badge{min-width:24px;height:24px;font-size:12px;border-radius:12px}.sheet{max-width:420px;border-radius:28px;left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%);box-shadow:0 12px 48px #0000002e;animation:fadeIn .25s ease;padding:16px 24px 24px}.sheet h3{font-size:22px}.sheet-option{padding:16px 20px;border-radius:var(--radius-sm)}.sheet-option span{font-size:17px}.day-detail-sheet{max-width:460px;border-radius:28px;left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%);box-shadow:0 12px 48px #0000002e;max-height:70vh;animation:fadeIn .25s ease}.day-detail-sheet h3{font-size:22px}.day-detail-entry{padding:14px 18px;border-radius:var(--radius-sm)}.day-detail-entry-type{font-size:16px}.profile-section h3{font-size:20px}.profile-btn{padding:16px 20px;font-size:16px;border-radius:var(--radius-sm)}.profile-section:last-child{flex:1;display:flex;flex-direction:column;justify-content:flex-end;margin-bottom:0}@media(orientation:landscape){.log-buttons{flex-direction:row;gap:24px;padding:12px 0;max-height:100%}.log-button-group{flex:1;max-width:50%}.log-button,.log-button-img{max-height:45vh}}}
