*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:#fff6f0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{display:block;min-height:100dvh}#root{min-height:100dvh}.wv-page{max-width:430px;margin:0 auto;min-height:100dvh;background:#fafafa;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}.wv-header{background:linear-gradient(135deg,#ff9fb2,#ffb347);color:#fff;display:flex;align-items:center;padding:.75rem;gap:.5rem;box-shadow:0 2px 10px #ff645040;flex-shrink:0}.wv-back-btn{background:#ffffff40;border:none;color:#fff;font-size:1.3rem;width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.wv-back-btn:active{background:#fff6}.wv-header-center{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem}.wv-nav-btn{background:#ffffff40;border:none;color:#fff;font-size:1.4rem;width:34px;height:34px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s;line-height:1}.wv-nav-btn:active{background:#ffffff73}.wv-date-block{display:flex;flex-direction:column;align-items:center;min-width:110px}.wv-date-title{font-size:1rem;font-weight:800;line-height:1.2}.wv-date-sub{font-size:.7rem;opacity:.85;font-weight:400}.wv-header-right{flex-shrink:0}.wv-today-btn{background:#ffffff40;border:none;color:#fff;font-size:.75rem;font-weight:700;padding:.35rem .65rem;border-radius:99px;cursor:pointer;white-space:nowrap;transition:background .15s}.wv-today-btn:active{background:#ffffff73}.wv-scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}.wv-timeline{position:relative;width:100%}.wv-hour-row{position:absolute;left:0;right:0;display:flex;align-items:flex-start;pointer-events:none}.wv-hour-label{font-size:.68rem;color:#bbb;font-weight:500;text-align:right;padding-right:8px;padding-top:2px;flex-shrink:0;line-height:1;letter-spacing:-.02em}.wv-hour-line{flex:1;height:1px;background:#ebebeb;margin-top:8px}.wv-now-line{position:absolute;right:0;display:flex;align-items:center;pointer-events:none;z-index:10}.wv-now-dot{width:10px;height:10px;border-radius:50%;background:#ef5350;flex-shrink:0;margin-left:-5px;box-shadow:0 0 0 2px #fff,0 0 0 3px #ef5350}.wv-now-bar{flex:1;height:2px;background:#ef5350}.wv-event{position:absolute;right:8px;border-radius:8px;display:flex;align-items:center;gap:6px;padding:0 8px;overflow:hidden;cursor:default;border-left:3px solid var(--clr)}.wv-event--pill{background:var(--bg);align-items:center;justify-content:center;padding:0;width:30px}.wv-event--block{background:var(--bg);align-items:flex-start;padding-top:6px;flex-direction:column;gap:2px}.wv-event--block .wv-event-emoji{font-size:1.1rem}.wv-event-emoji{font-size:.95rem;line-height:1;flex-shrink:0}.wv-event-body{display:flex;flex-direction:column;gap:1px;min-width:0}.wv-event-name{font-size:.78rem;font-weight:700;color:var(--clr);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wv-event-time{font-size:.65rem;color:#999;white-space:nowrap}.wv-event-dur{font-size:.65rem;font-weight:600;color:var(--clr);opacity:.85}.wv-empty{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:2rem 1rem;text-align:center;pointer-events:none}.wv-empty-icon{font-size:2.2rem}.wv-empty p{font-size:.9rem;font-weight:600;color:#ccc}.wv-empty-sub{font-size:.75rem!important;font-weight:400!important;color:#ddd!important}.sp-page{max-width:430px;margin:0 auto;min-height:100dvh;background:#fff6f0;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}.sp-header{background:linear-gradient(135deg,#ff9fb2,#ffb347);color:#fff;padding:.875rem;display:flex;align-items:center;gap:.75rem;box-shadow:0 2px 10px #ff645040;flex-shrink:0}.sp-back-btn{background:#ffffff40;border:none;color:#fff;font-size:1.3rem;width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.sp-back-btn:active{background:#fff6}.sp-title{flex:1;font-size:1.15rem;font-weight:800;letter-spacing:-.01em}.sp-header-spacer{width:38px;flex-shrink:0}.sp-body{flex:1;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1rem}.sp-preview-card{background:#fff;border-radius:16px;padding:1rem 1.1rem;display:flex;align-items:center;gap:.875rem;box-shadow:0 2px 10px #ff9fb233;border-left:4px solid #FF9FB2;animation:sp-fade-in .25s ease}@keyframes sp-fade-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.sp-preview-icon{font-size:2rem;line-height:1;flex-shrink:0}.sp-preview-text{display:flex;flex-direction:column;gap:.2rem}.sp-preview-label{font-size:.7rem;color:#bbb;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.sp-preview-value{font-size:.95rem;font-weight:700;color:#ff7043}.sp-card{background:#fff;border-radius:20px;padding:1.4rem 1.25rem 1.5rem;box-shadow:0 2px 10px #0000000f;display:flex;flex-direction:column;gap:1.25rem}.sp-card-title{font-size:1rem;font-weight:800;color:#333;letter-spacing:-.01em}.sp-field{display:flex;flex-direction:column;gap:.45rem}.sp-label{font-size:.8rem;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.06em}.sp-input{border:2px solid #F0EEF0;border-radius:12px;padding:.8rem .9rem;font-size:1rem;font-family:inherit;color:#222;background:#fafafa;outline:none;transition:border-color .18s,background .18s;width:100%}.sp-input:focus{border-color:#ff9fb2;background:#fff}.sp-input::placeholder{color:#ccc}.sp-input--date{color:#444;-webkit-appearance:none}.sp-save-btn{width:100%;border:none;border-radius:14px;padding:.95rem 1rem;font-size:1rem;font-weight:700;font-family:inherit;cursor:pointer;transition:background .2s,transform .1s,opacity .2s;background:linear-gradient(135deg,#ff9fb2,#ffb347);color:#fff;margin-top:.25rem;letter-spacing:.01em}.sp-save-btn:active:not(:disabled){transform:scale(.97)}.sp-save-btn:disabled{background:#e0e0e0;color:#aaa;cursor:default}.sp-save-btn--saved{background:#66bb6a!important;color:#fff!important}.aim-overlay{position:fixed;inset:0;background:#0000007a;display:flex;align-items:flex-end;justify-content:center;z-index:200;animation:aim-fade .18s ease}@keyframes aim-fade{0%{opacity:0}to{opacity:1}}.aim-sheet{background:#fff;border-radius:24px 24px 0 0;padding:.6rem 1.5rem calc(2.25rem + env(safe-area-inset-bottom,0));width:100%;max-width:430px;display:flex;flex-direction:column;gap:1.1rem;animation:aim-slide-up .26s cubic-bezier(.34,1.56,.64,1)}@keyframes aim-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.aim-handle{width:40px;height:4px;border-radius:99px;background:#e0e0e0;margin:0 auto .5rem;flex-shrink:0}.aim-identity{display:flex;align-items:center;gap:.6rem}.aim-emoji{font-size:2rem;line-height:1}.aim-title{font-size:1.2rem;font-weight:800;color:var(--clr);letter-spacing:-.02em}.aim-question{font-size:.95rem;font-weight:600;color:#444;margin:0}.aim-input-wrap{display:flex;align-items:center;background:#f7f7f7;border-radius:14px;border:2px solid #EBEBEB;overflow:hidden;transition:border-color .18s}.aim-input-wrap:focus-within{border-color:var(--clr, #29B6F6);background:#fff}.aim-input{flex:1;border:none;background:transparent;padding:.9rem .75rem .9rem 1rem;font-size:1.5rem;font-weight:700;color:#222;font-family:inherit;outline:none;min-width:0;-moz-appearance:textfield}.aim-input::-webkit-outer-spin-button,.aim-input::-webkit-inner-spin-button{-webkit-appearance:none}.aim-unit{font-size:.9rem;font-weight:600;color:#aaa;padding:0 1rem 0 .25rem;white-space:nowrap;flex-shrink:0}.aim-actions{display:flex;gap:.75rem}.aim-btn{flex:1;border:none;border-radius:14px;padding:.9rem 1rem;font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer;transition:opacity .15s,transform .1s}.aim-btn:active{transform:scale(.97)}.aim-btn--skip{background:#f3f3f3;color:#666}.aim-btn--skip:active{background:#e8e8e8}.aim-btn--log{color:#fff}.aim-btn--log:disabled{background:#d0d0d0!important;cursor:default}.aam-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding-bottom:env(safe-area-inset-bottom)}.aam-sheet{background:#fff;border-radius:28px 28px 0 0;width:100%;max-width:430px;padding:0 1.25rem 2rem;max-height:90dvh;overflow-y:auto;animation:aam-slide-up .28s cubic-bezier(.32,.72,0,1)}@keyframes aam-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.aam-handle{width:40px;height:4px;background:#e0e0e0;border-radius:2px;margin:.75rem auto .5rem}.aam-title{font-size:1.1rem;font-weight:800;text-align:center;color:#222;margin:.25rem 0 1rem}.aam-preview{background:var(--bg);border-radius:18px;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;margin-bottom:1.25rem}.aam-preview-emoji{font-size:2.25rem;line-height:1}.aam-preview-label{font-size:.9rem;font-weight:800;letter-spacing:-.01em}.aam-field-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#999;margin-bottom:.35rem}.aam-input{width:100%;box-sizing:border-box;border:1.5px solid #e8e8e8;border-radius:12px;padding:.75rem .875rem;font-size:1rem;outline:none;margin-bottom:1rem;transition:border-color .15s;background:#fafafa}.aam-input:focus{border-color:#aaa;background:#fff}.aam-emoji-input{font-size:1.6rem;text-align:center;padding:.5rem}.aam-color-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.1rem}.aam-swatch{width:34px;height:34px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;transition:transform .12s,border-color .12s;outline:none}.aam-swatch:active{transform:scale(.9)}.aam-swatch--selected{border-color:#fff;box-shadow:0 0 0 2.5px currentColor,0 0 0 4px #00000014;transform:scale(1.15)}.aam-mode-row{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.aam-mode-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.7rem .875rem;border:1.5px solid #e8e8e8;border-radius:12px;background:#fafafa;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.aam-mode-btn--selected{background:#fff}.aam-mode-label{font-size:.9rem;font-weight:700}.aam-mode-hint{font-size:.72rem;color:#aaa}.aam-actions{display:flex;gap:.75rem}.aam-btn{flex:1;padding:.85rem 1rem;border-radius:14px;border:none;font-size:.95rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s}.aam-btn:active{opacity:.85;transform:scale(.97)}.aam-btn--cancel{background:#f0f0f0;color:#555}.aam-btn--save{color:#fff}.aam-btn--save:disabled{opacity:.45;cursor:default}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.app{max-width:430px;margin:0 auto;min-height:100dvh;background:#fff6f0;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}.hamburger-btn{display:flex;flex-direction:column;justify-content:center;gap:5px;background:#fff3;border:none;border-radius:10px;width:40px;height:40px;padding:0 9px;cursor:pointer;flex-shrink:0;transition:background .15s}.hamburger-btn:active{background:#ffffff61}.hamburger-btn span{display:block;width:100%;height:2.5px;border-radius:2px;background:#fff}.drawer-overlay{position:fixed;inset:0;background:#0000006b;z-index:300;animation:fade-in .2s ease}.drawer{position:absolute;top:0;left:0;bottom:0;width:280px;background:#fff;display:flex;flex-direction:column;box-shadow:4px 0 24px #00000026;animation:drawer-slide-in .25s cubic-bezier(.25,.46,.45,.94)}@keyframes drawer-slide-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-header{background:linear-gradient(135deg,#ff9fb2,#ffb347);color:#fff;padding:2.5rem 1.25rem 1.5rem;display:flex;align-items:center;gap:.875rem}.drawer-logo{font-size:2.2rem;line-height:1}.drawer-app-name{font-size:1rem;font-weight:800;letter-spacing:-.02em}.drawer-app-sub{font-size:.72rem;opacity:.85;margin-top:.15rem}.drawer-header-text{display:flex;flex-direction:column;min-width:0}.drawer-user-name{font-size:.78rem;font-weight:600;opacity:.95;margin-top:.35rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-user-email{font-size:.68rem;opacity:.75;margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-nav{flex:1;padding:.75rem 0}.drawer-item{width:100%;display:flex;align-items:center;gap:.875rem;padding:.95rem 1.25rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .15s;border-radius:0}.drawer-item:active{background:#fff6f0}.drawer-item-icon{font-size:1.3rem;width:28px;text-align:center}.drawer-item-label{flex:1;font-size:.95rem;font-weight:600;color:#333}.drawer-item-arrow{font-size:1.1rem;color:#ccc}.app-header{background:linear-gradient(135deg,#ff9fb2,#ffb347);color:#fff;padding:1rem 1.25rem 1.15rem;display:flex;align-items:center;gap:.75rem;box-shadow:0 2px 10px #ff645040}.app-header-icon{font-size:2.4rem;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15))}.app-header-text h1{font-size:1.35rem;font-weight:800;letter-spacing:-.02em;line-height:1.2}.app-header-text p{font-size:.78rem;opacity:.88;margin-top:.2rem;font-weight:400}.sleep-banner{margin:1rem 1rem 0;background:#fff;border-radius:18px;padding:1rem 1.1rem 1.1rem;border-left:4px solid #7E57C2;box-shadow:0 2px 14px #7e57c22e;display:flex;flex-direction:column;gap:.65rem}.sleep-banner-top{display:flex;align-items:center;gap:.75rem}.sleep-banner-emoji{font-size:1.9rem;line-height:1}.sleep-banner-title{font-size:.9rem;font-weight:700;color:#5e35b1}.sleep-banner-started{font-size:.74rem;color:#999;margin-top:.15rem}.sleep-banner-elapsed{font-size:2.2rem;font-weight:800;color:#5e35b1;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.03em;line-height:1}.btn-stop{background:#ef5350;color:#fff;border:none;border-radius:13px;padding:.8rem 1rem;font-size:.95rem;font-weight:700;cursor:pointer;transition:background .18s,transform .1s;letter-spacing:.01em}.btn-stop:active{background:#c62828;transform:scale(.97)}.activities-grid{display:grid;grid-template-columns:1fr 1fr;gap:.875rem;padding:1rem;margin-top:.25rem}.activity-btn{background:var(--bg);border:2px solid transparent;border-radius:22px;padding:1.6rem 1rem 1.25rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;cursor:pointer;transition:transform .12s,box-shadow .15s;box-shadow:0 2px 8px #00000012;user-select:none;-webkit-user-select:none;touch-action:manipulation;position:relative}.activity-btn:active{transform:scale(.95);box-shadow:0 1px 4px #00000014}.activity-btn--running{border-color:var(--clr);box-shadow:0 0 0 3px color-mix(in srgb,var(--clr) 25%,transparent);opacity:.75;cursor:default}.activity-btn--disabled{opacity:.5;cursor:default}.activity-emoji{font-size:3rem;line-height:1}.activity-label{font-size:1rem;font-weight:800;color:var(--clr);letter-spacing:-.01em}.activity-btn--add{--clr: #bbb;--bg: #f5f5f5;background:var(--bg);border:2px dashed #d0d0d0!important;box-shadow:none!important}.activity-btn--add .activity-emoji{font-size:2rem;color:#bbb}.activity-btn--add .activity-label{color:#bbb;font-weight:700}.activity-hint{font-size:.65rem;color:#bbb;font-weight:400}.log-section{flex:1;padding:.25rem 1rem 1.5rem}.log-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.log-section-header h2{font-size:.8rem;font-weight:700;color:#aaa;text-transform:uppercase;letter-spacing:.1em}.log-count{background:#ffb347;color:#fff;font-size:.7rem;font-weight:700;border-radius:99px;padding:.1rem .45rem;line-height:1.4}.log-empty{display:flex;flex-direction:column;align-items:center;padding:3rem 1rem 2rem;gap:.5rem}.log-empty-icon{font-size:2.5rem}.log-empty p{font-size:.95rem;font-weight:600;color:#ccc}.log-empty-sub{font-size:.8rem!important;font-weight:400!important;color:#ddd!important}.log-list{list-style:none;display:flex;flex-direction:column;gap:.625rem}.swipe-wrapper{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 1px 5px #0000000f;animation:slide-in .22s ease}.swipe-delete-action{position:absolute;right:0;top:0;bottom:0;width:160px;display:flex}.swipe-edit-btn{flex:1;background:#5c6bc0;color:#fff;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:0;border-radius:0;transition:background .15s}.swipe-edit-btn:active{background:#3949ab}.swipe-delete-btn{flex:1;background:#ef5350;color:#fff;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:0;border-radius:0 14px 14px 0;transition:background .15s}.swipe-delete-btn:active{background:#c62828}.swipe-delete-icon{font-size:1.3rem;line-height:1}.swipe-delete-label{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.log-item{position:relative;z-index:1;background:#fff;border-radius:14px;padding:.825rem 1rem;display:flex;align-items:center;gap:.75rem;border-left:3px solid var(--clr);will-change:transform}.log-item--inprogress{background:color-mix(in srgb,var(--clr) 5%,#fff);animation:log-inprogress-pulse 1.8s ease-in-out infinite}@keyframes log-inprogress-pulse{0%,to{border-left-color:var(--clr)}50%{border-left-color:color-mix(in srgb,var(--clr) 35%,transparent)}}.log-extra--inprogress{color:var(--clr);opacity:.8}@keyframes slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.log-emoji{font-size:1.65rem;line-height:1;flex-shrink:0}.log-info{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}.log-name{font-size:.92rem;font-weight:700;color:#333}.log-time{font-size:.77rem;color:#999}.log-extra{font-size:.75rem;font-weight:700;color:var(--clr);margin-top:.05rem}.log-date{font-size:.7rem;color:#ccc;flex-shrink:0;text-align:right}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding:0 0 env(safe-area-inset-bottom,0);animation:fade-in .18s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:28px 28px 0 0;padding:2rem 1.5rem calc(2rem + env(safe-area-inset-bottom,0));width:100%;max-width:430px;text-align:center;animation:slide-up .24s cubic-bezier(.34,1.56,.64,1)}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-emoji{font-size:3rem;margin-bottom:.75rem}.modal h3{font-size:1.3rem;font-weight:800;color:#222;margin-bottom:.5rem}.modal-duration{font-size:2rem;font-weight:800;color:#7e57c2;margin-bottom:.4rem}.modal-sub{font-size:.88rem;color:#999;margin-bottom:1.75rem}.modal-actions{display:flex;gap:.75rem}.modal-btn{flex:1;border:none;border-radius:14px;padding:.9rem 1rem;font-size:.95rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s}.modal-btn:active{opacity:.85;transform:scale(.97)}.modal-btn--cancel{background:#f3f3f3;color:#555}.modal-btn--confirm{background:#ef5350;color:#fff}.modal-btn--save{background:#5c6bc0;color:#fff}.edit-log-fields{display:flex;flex-direction:column;gap:.875rem;margin:1.25rem 0 1.75rem;text-align:left}.edit-log-field{display:flex;flex-direction:column;gap:.3rem}.edit-log-label{font-size:.75rem;font-weight:700;color:#999;text-transform:uppercase;letter-spacing:.06em}.edit-log-input{width:100%;border:1.5px solid #E0E0E0;border-radius:10px;padding:.65rem .85rem;font-size:.95rem;font-family:inherit;color:#333;background:#fafafa;outline:none;transition:border-color .15s}.edit-log-input:focus{border-color:#5c6bc0;background:#fff}
