:root{font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard",system-ui,sans-serif;color:#293244;background:#f7f8fc;font-synthesis:none;font-size:15px;-webkit-text-size-adjust:100%;--ink:#293244;--muted:#818998;--bg:#f7f8fc;--hair:#e2ebfa;--shower:#e1f1e9;--face:#fae8f0;--hygiene:#fbf1d5;--hair-ink:#4f709d;--shower-ink:#46836e;--face-ink:#a66982;--hygiene-ink:#97824f;--shadow:9px 12px 25px rgba(85,98,125,.09),-8px -8px 19px rgba(255,255,255,.95)}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{min-height:100vh;margin:0;background:linear-gradient(125deg,#f2f5fe 0,#fbfbfd 43%,#f8f6fb 100%);-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer;border:0}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible{outline:3px solid #86a9db;outline-offset:2px}.icon{flex-shrink:0;display:inline-block;vertical-align:middle}.loading,.fatal{padding:64px 24px;text-align:center}.fatal p{color:var(--muted)}.app-shell{max-width:540px;margin:0 auto;min-height:100dvh;position:relative}.main-content{padding:33px 23px calc(148px + env(safe-area-inset-bottom))}.screen-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:30px;padding:3px 2px 0}.eyebrow{font-size:11px;font-weight:500;letter-spacing:.33em;color:#8490a4;margin-bottom:13px}.screen-head h1{font-size:clamp(25px,6.5vw,33px);letter-spacing:-.065em;line-height:1.2;margin:0;font-weight:790;color:#222630}.screen-head p{font-size:14px;color:#8a909e;margin:11px 0 0;letter-spacing:-.03em}.icon-btn{display:inline-flex;justify-content:center;align-items:center;background:transparent;min-width:43px;min-height:43px;border-radius:13px}.settings-quick{margin-top:6px;color:#7b8699;background:#f8f9fd;box-shadow:4px 6px 13px #dae0eb80,-3px -3px 10px #fff}
.cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.hygiene-card{min-width:0;min-height:202px;border-radius:31px;padding:21px 18px 15px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;box-shadow:6px 9px 16px rgba(94,112,137,.055),inset 1px 1px 1px rgba(255,255,255,.66);position:relative;overflow:hidden}.cat-hair{background:var(--hair)}.cat-shower{background:var(--shower)}.cat-face{background:var(--face)}.cat-hygiene{background:var(--hygiene)}.card-icon{color:#384353;margin:4px 0 13px}.card-copy h2{margin:0 0 7px;font-weight:730;font-size:21px;letter-spacing:-.055em;line-height:1.3}.card-time{font-size:12px;color:#7b8190;line-height:1.5;min-height:18px;word-break:keep-all}.card-foot{display:flex;align-items:center;justify-content:space-between;gap:2px;margin-top:12px}.card-foot>span{font-size:10.5px;color:#737e8e;line-height:1.4;letter-spacing:-.03em;word-break:keep-all}.card-mini-add{height:33px;width:33px;flex:none;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.4);box-shadow:2px 3px 7px #a8b7cb40,inset 1px 1px 2px #ffffff;transition:transform .15s}.card-mini-add:active{transform:scale(.92)}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.section-title h2{font-size:19px;letter-spacing:-.04em;margin:0;font-weight:750}.subtle-link{background:transparent;color:#8390a2;display:inline-flex;align-items:center;gap:2px;font-size:12.5px;min-height:34px;padding:0 1px}.week{margin-top:22px}.neumo-panel{background:#edf0f6;padding:22px 19px 19px;border-radius:32px;box-shadow:9px 12px 24px #b6becf70,-7px -7px 18px #ffffff;border:1px solid rgba(255,255,255,.85)}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.week-day{display:flex;align-items:center;flex-direction:column;background:transparent;gap:10px;min-height:97px;padding:4px 0 0;font-size:12px;color:#929aaa}.week-ball{display:flex;justify-content:center;align-items:center;width:min(100%,43px);aspect-ratio:1;border-radius:100%;background:#e5e8ef;box-shadow:inset 3px 4px 9px #bac1cfbb,inset -3px -4px 9px #ffffffdd;color:#578872}.week-ball.filled{background:linear-gradient(140deg,#c8e9da,#a6d7c3);box-shadow:inset 2px 3px 7px #83bca88a,inset -3px -3px 10px #f3fff8,2px 3px 6px #95bca955}.week-ball.is-today{outline:2px solid #93a5bf;outline-offset:3px}.week-dots{display:flex;height:8px;gap:2px;align-items:center}.dot{display:inline-block;width:6px;height:6px;border-radius:100%;flex:none}.dot.hair{background:#789dc9}.dot.shower{background:#7bb89f}.dot.face{background:#d694af}.dot.hygiene{background:#c4ac70}.wide-cta{width:100%;min-height:79px;display:flex;align-items:center;justify-content:center;gap:11px;background:#e2e9f6;border-radius:999px;border:1.5px solid #fff;box-shadow:8px 11px 23px #b6bfd399,-7px -7px 17px #fff;color:#36475f;font-size:22px;font-weight:750;letter-spacing:-.04em;margin:22px 0 29px;transition:transform .18s,box-shadow .18s}.wide-cta:active{transform:translateY(2px);box-shadow:inset 4px 6px 10px #acbad377,inset -4px -4px 10px #fff}.recent-block{padding:1px 1px 10px}.recent-row{width:100%;display:flex;align-items:center;gap:12px;background:transparent;padding:10px 0;border-bottom:1px solid #e8ecf4;text-align:left;min-height:72px}.list-icon{width:41px;height:41px;flex:none;border-radius:14px;display:grid;place-items:center;color:#556479}.recent-info{display:flex;flex:1;flex-direction:column;min-width:0;gap:4px}.recent-info strong{font-size:14px}.recent-info small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-time{text-align:right;line-height:1.7;font-size:11px;color:#9198a5}.empty-mini{background:rgba(255,255,255,.55);border-radius:17px;padding:24px 16px;color:#939cab;text-align:center;font-size:13px;line-height:1.7}.weather-mini{margin-top:18px;display:flex;align-items:center;gap:12px;padding:13px 14px;background:#f0f4f8;border-radius:19px;color:#596c7e}.weather-copy{display:flex;flex:1;flex-wrap:wrap;gap:3px 8px;font-size:13px}.weather-copy small{display:block;width:100%;font-size:10px;color:#8c97a5}.weather-mini button{font-size:22px;background:transparent;color:#8c97a5;min-width:40px;min-height:40px}
.tabbar{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:min(540px,100%);height:calc(75px + env(safe-area-inset-bottom));padding:9px 9px calc(7px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr 1.1fr 1fr 1fr;align-items:center;gap:1px;background:rgba(245,247,251,.94);border-top:1px solid #ffffffeb;box-shadow:0 -9px 26px #a4afc41c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.nav-item{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;background:transparent;color:#a1aaba;height:55px;min-width:0;font-size:10.5px;letter-spacing:-.02em}.nav-item.active{color:#5b759d;font-weight:700}.nav-add{width:53px;height:53px;border-radius:19px;margin:0 auto;display:grid;place-items:center;background:#e2e9f6;color:#526e9b;box-shadow:5px 5px 12px #b2bdd28a,-5px -5px 10px #fff;border:1px solid #fff}.nav-add:active{box-shadow:inset 4px 4px 8px #c0c9db,inset -4px -4px 9px #fff}
.white-panel{background:rgba(255,255,255,.84);border-radius:26px;padding:19px 17px;margin-bottom:17px;box-shadow:5px 7px 20px #b5becb1c,inset 0 1px #fff}.calendar-panel{padding:15px 12px 17px}.month-bar{display:flex;align-items:center;gap:7px;margin:5px 2px 16px}.month-bar h2{margin:0;flex:1;text-align:center;font-size:19px;letter-spacing:-.04em}.today-btn{min-width:48px;min-height:37px;border-radius:11px;background:#e8edf7;font-size:12px;color:#5d7094}.filter-row{display:flex;gap:6px;overflow:auto;scrollbar-width:none;margin:0 2px 14px}.filter-row::-webkit-scrollbar{display:none}.filter-pill{border:1px solid #e7ebf1;background:#f7f8fa;color:#7d8796;border-radius:999px;padding:8px 11px;white-space:nowrap;font-size:12px;min-height:38px}.filter-pill.active{color:#fff;background:#7892b3;border-color:#7892b3}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekday{text-align:center;font-size:11px;color:#9da5b1;padding:7px 0 12px}.calendar-day{height:53px;border-radius:15px;background:transparent;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:5px;padding:7px 0 3px;font-size:13px}.calendar-day.today{box-shadow:inset 0 0 0 1.5px #849bc0}.calendar-day.selected{background:#e8edf8;color:#4b6c96;font-weight:700}.calendar-dots{display:flex;align-items:center;gap:2px;min-height:9px;flex-wrap:wrap;max-width:35px;justify-content:center}.calendar-dots .dot{width:5px;height:5px}.legend{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 14px;padding-top:16px}.legend span{display:flex;gap:5px;align-items:center;color:#9198a6;font-size:11px}.day-records{padding:14px 2px}.record-item{display:flex;align-items:center;gap:10px;border-bottom:1px solid #e9edf3;padding:12px 0;min-height:75px}.record-main{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0;text-align:left;background:transparent}.record-main strong{font-size:14px}.record-main strong small{font-weight:400;color:#959dab}.record-main>span{font-size:12px;color:#7a8797;line-height:1.45}
.segmented{display:grid;grid-template-columns:repeat(3,1fr);background:#eceff6;padding:5px;border-radius:17px;margin-bottom:19px;box-shadow:inset 2px 3px 5px #c4cbd566}.segmented button{height:43px;border-radius:13px;background:transparent;color:#7f8c9c;font-weight:630}.segmented button.selected{background:#fff;color:#485e82;box-shadow:2px 3px 9px #abb4c659}.analysis-hero{border-radius:27px;padding:24px 22px;margin:0 0 17px;min-height:150px}.analysis-hero>span{color:#657489;font-size:13px}.analysis-hero h2{font-size:26px;line-height:1.4;margin:13px 0 9px;letter-spacing:-.05em}.analysis-hero p{font-size:12px;color:#768291;line-height:1.6;margin:0}.metric-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.metric-row>div{background:#f6f8fb;padding:16px 13px;border-radius:18px;display:flex;flex-direction:column;gap:9px}.metric-row small{font-size:12px;color:#8390a0}.metric-row strong{font-size:28px;letter-spacing:-.05em}.metric-row strong span{font-size:13px;margin-left:3px;font-weight:500;color:#8490a0}.footnote{font-size:11px;color:#929baa;line-height:1.6;margin:12px 0 0;word-break:keep-all}.mini-heading{font-size:14px;font-weight:730;margin:22px 0 13px}.bar-row{display:grid;grid-template-columns:minmax(71px,auto) 1fr 28px;gap:10px;align-items:center;margin:11px 0}.bar-row>span{font-size:12px;color:#7f8998}.bar-row strong{font-size:13px;text-align:right}.bar-track{height:10px;background:#edf1f7;border-radius:20px;overflow:hidden}.bar-track>div{height:100%;background:linear-gradient(90deg,#a6c8d5,#86aaa3);border-radius:20px}.chipline{display:flex;flex-wrap:wrap;gap:7px;margin:17px 0 7px}.chipline span{background:#eff3f8;border-radius:99px;padding:7px 10px;color:#718096;font-size:11px}.guidance{background:#f8f7f5}.guidance .section-title{color:#67775f}.gentle-note{margin:4px 0 0;color:#53616d;line-height:1.7;font-size:13px}.guidance-line{display:block;margin-bottom:5px}.body-copy{font-size:13px;line-height:1.7;color:#7f8997;margin:0 0 14px}.outline-btn{border-radius:15px;border:1px solid #dfe5ef;background:#f9fbfd;padding:11px 15px;font-size:12px;color:#64778f;min-height:44px}.weather-analysis{border-top:1px solid #e7eaf1;margin-top:17px;padding-top:15px}.weather-analysis h3{font-size:14px;margin:0}.weather-analysis p:not(.footnote){font-size:13px;color:#66768a}.subtle{color:#8e99a5;font-size:12px}
.settings-section{padding:21px 17px 12px}.settings-section>h2{margin:0 0 9px;font-size:17px;letter-spacing:-.035em}.setting-row{display:flex;width:100%;min-height:70px;align-items:center;justify-content:space-between;text-align:left;gap:15px;padding:12px 1px;background:transparent;border-bottom:1px solid #eef0f4}.setting-row:last-child{border:0}.setting-row>span:first-child{display:flex;flex-direction:column;gap:6px;min-width:0}.setting-row strong{font-size:13.5px;font-weight:640}.setting-row small{font-size:11px;line-height:1.5;color:#8c96a3}.setting-row>.icon{color:#a1a9b5}.switch{width:49px;height:29px;flex:none;position:relative;display:block}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.switch span{display:block;width:49px;height:29px;background:#dfe5ee;border-radius:99px;transition:background .18s}.switch span:after{content:'';position:absolute;width:23px;height:23px;border-radius:50%;left:3px;top:3px;background:#fff;box-shadow:0 2px 5px #8691a34d;transition:left .18s}.switch input:checked+span{background:#84b4a5}.switch input:checked+span:after{left:23px}.switch input:focus-visible+span{outline:3px solid #86a9db}.location-box{padding:15px 1px 18px}.location-box label{font-size:12px;color:#768596}.search-line{display:flex;gap:6px;margin:8px 0}.search-line input{flex:1;min-width:0;border:1px solid #dce3ed;border-radius:12px;padding:11px;background:#fff}.search-line button{padding:10px 12px;border-radius:12px;background:#dbe6f5;font-size:12px}.city-option{width:100%;display:flex;align-items:center;justify-content:space-between;background:#f5f8fc;margin:5px 0;border-radius:12px;padding:12px;font-size:13px}.chosen-city{font-size:12px;color:#6e897c}.location-box>small{display:block;margin-top:11px;font-size:11px;color:#929eaa;line-height:1.6}.note-bottom{color:#9ba4b1;font-size:11px;line-height:1.8;text-align:center;padding:20px 5px}
.modal-open{overflow:hidden}.overlay{position:fixed;z-index:50;inset:0;display:flex;align-items:flex-end;justify-content:center;background:rgba(36,46,63,.38);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.sheet{width:min(540px,100%);height:auto;max-height:min(91dvh,900px);display:flex;flex-direction:column;background:#fafbfe;border-radius:31px 31px 0 0;box-shadow:0 -16px 44px #232d403b;padding-bottom:env(safe-area-inset-bottom);animation:slide-up .17s ease-out}.sheet-grip{width:42px;height:5px;background:#d7dce7;border-radius:99px;margin:11px auto 7px;flex:none}.sheet-head{padding:3px 19px 10px;display:flex;align-items:center;justify-content:space-between;flex:none}.sheet-head h2{font-size:21px;letter-spacing:-.04em;margin:0}.sheet-body{padding:4px 21px 18px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0}.sheet-footer{flex:none;padding:14px 20px 16px;border-top:1px solid #e8edf5;background:#fafbfe}.field-label{font-size:12px;color:#8c97a5;margin:9px 0 11px}.record-cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:0 0 19px}.record-cat{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:76px;gap:8px;border:1px solid #e8ecf3;background:#fff;border-radius:17px;color:#8792a1;font-size:11px;padding:8px 3px}.record-cat.chosen{border:1px solid #a5b9d1;color:#3f5b80;box-shadow:inset 2px 2px 5px #a3b8d155;background:#edf3fd}.record-cat:disabled{opacity:.85}.record-cat.cat-hygiene.chosen{border-color:#dfc990}.form-block{border-radius:22px;background:#f2f5fa;padding:17px 14px;margin:16px 0}.form-block h3{font-size:14px;margin:0 0 13px;font-weight:710}.choice-row{display:flex;flex-wrap:wrap;gap:7px}.choice{border:1px solid #dfe5ef;background:#fff;color:#778497;border-radius:13px;font-size:12px;min-height:42px;padding:10px 12px;line-height:1.3}.choice.chosen{background:#dfeaf8;color:#4c6e9a;border-color:#b5cae5;font-weight:680;box-shadow:inset 2px 2px 5px #adbfd966}.extra-label{margin-top:17px}.date-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.date-inputs:has(label:only-child){grid-template-columns:1fr}.date-inputs label{font-size:11px;color:#778495;display:flex;flex-direction:column;gap:6px}.date-inputs input{width:100%;min-width:0;min-height:45px;border:1px solid #dfe5ee;border-radius:12px;background:#fff;color:#39485b;padding:9px 10px;font-size:14px}.primary-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:11px 17px;border-radius:16px;background:#7998bd;color:#fff;font-weight:730;letter-spacing:-.02em;box-shadow:0 4px 12px #7d95b43d}.secondary-button{min-height:48px;padding:11px 16px;border-radius:14px;background:#e7ecf5;color:#63758e;font-weight:650}.danger-button{min-height:48px;padding:11px 16px;border-radius:14px;background:#bd6978;color:#fff;font-weight:650}.edit-tools{display:flex;justify-content:space-between;gap:12px;margin-top:12px}.text-danger,.muted-tool{background:transparent;display:inline-flex;gap:6px;align-items:center;min-height:42px;font-size:12px;color:#b6717f}.muted-tool{color:#8d96a6}.form-error,.inline-warning{margin:13px 0;border-radius:12px;background:#fff0f0;color:#ae6370;font-size:12px;line-height:1.5;padding:12px}.inline-warning{background:#fcf2e3;color:#96774d}.confirm-box{margin:auto 18px;background:#fff;border-radius:23px;padding:23px;width:min(420px,calc(100% - 36px));box-shadow:0 12px 40px #25334d47}.confirm-box h2{font-size:20px;line-height:1.4;margin:0}.confirm-box p{font-size:13px;color:#7a8594;line-height:1.65;margin:12px 0 20px}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quiz-progress{height:6px;background:#e8edf5;border-radius:10px;margin:7px 0 11px;overflow:hidden}.quiz-progress>span{display:block;height:100%;background:#91bda6;border-radius:10px;transition:width .2s}.quiz-position{font-size:12px;color:#8894a4}.quiz-group{font-size:11px;color:#7b9d8b;font-weight:700}.quiz-question{padding:20px 0 8px}.quiz-question h3{font-size:19px;letter-spacing:-.04em;line-height:1.45;margin:9px 0 17px}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-option{display:flex;justify-content:space-between;align-items:center;text-align:left;width:100%;min-height:49px;padding:11px 14px;background:#fff;border-radius:14px;border:1px solid #e6eaf1;font-size:13px;color:#637183}.quiz-option.selected{background:#e8f3ec;border-color:#a6cdb8;color:#3b7661;font-weight:670}.sheet-actions{display:flex;gap:9px}.sheet-actions .primary-button{flex:1}.skip-link{margin:9px auto 0;display:block;background:transparent;color:#91a0b0;font-size:12px;min-height:34px;padding:4px 16px}.rating{margin:17px 0}.rating>span{display:block;font-size:14px;font-weight:650;margin-bottom:9px}.rating-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.rating-opt{display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;border:1px solid #e5eaf2;border-radius:12px;min-height:64px;gap:4px}.rating-opt strong{font-size:16px}.rating-opt small{font-size:11px;color:#8b96a5}.rating-opt.active{background:#e7f0fc;border-color:#adbfde}.toast{position:fixed;z-index:60;left:50%;transform:translateX(-50%);bottom:calc(90px + env(safe-area-inset-bottom));width:min(calc(100% - 28px),470px);border-radius:17px;box-shadow:0 8px 22px rgba(133,119,150,.17),inset 0 1px 0 #fff;background:rgba(255,250,247,.97);color:#686170;padding:13px 15px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;line-height:1.4}.toast-link{background:transparent;color:#9a7ea5;white-space:nowrap;font-weight:700;min-height:40px}@keyframes slide-up{from{transform:translateY(15px);opacity:.6}to{transform:translateY(0);opacity:1}}@media(max-width:360px){.main-content{padding:27px 16px calc(140px + env(safe-area-inset-bottom))}.cards-grid{gap:10px}.hygiene-card{min-height:186px;padding:16px 13px 13px;border-radius:25px}.card-copy h2{font-size:19px}.card-foot>span{font-size:10px}.week-ball{width:35px}.neumo-panel{padding:18px 12px}.sheet-body{padding:4px 14px 18px}.record-cat{font-size:10px}.choice{padding:8px 10px}}@media(min-width:700px){body{background:#e9edf5}.app-shell{box-shadow:0 0 60px #aab6c94f;background:#f7f8fc}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.history-item{display:flex;width:100%;background:transparent;justify-content:space-between;align-items:center;border-bottom:1px solid #ecf0f4;min-height:42px;padding:7px 2px;font-size:12px;color:#8894a4}.history-item .icon{color:#9ba8b7}
.recent-combo{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;background:#edf2f9;border:1px solid #dce6f2;color:#567296;border-radius:13px;padding:10px 8px;margin:0 0 12px;font-size:12px;min-height:44px}.recent-combo small{font-size:10px;color:#879aad}


/* Design refresh v2: selective pastel + restrained dimensionality.
   Only layout and presentation changed. */
:root{--bg:#f8f9fc;--hair:#e4ecfa;--shower:#e4f2eb;--face:#f8e9f0;--hygiene:#fbf2de;--ink:#30394b;--muted:#8e95a5}
html,body{background:#f8f9fc;color:var(--ink)}
.main-content{padding:29px 22px calc(125px + env(safe-area-inset-bottom))}
.screen-head{margin-bottom:27px;padding:3px 3px 0}
.eyebrow{font-size:10px;letter-spacing:.37em;color:#929cad;margin-bottom:13px}
.screen-head h1{font-size:clamp(25px,6.3vw,31px);font-weight:780;letter-spacing:-.065em;color:#242c3b}
.screen-head p{font-size:13px;color:#8b94a4;margin-top:9px}
.settings-quick{background:#fff;border:1px solid #fff;box-shadow:4px 5px 12px #aeb7cd22,-3px -3px 11px #fff;border-radius:17px}
.cards-grid{gap:12px}
.hygiene-card{min-height:160px;border-radius:27px;padding:16px 15px 11px;box-shadow:0 11px 25px #67718b0b,inset 1px 1px 1px #ffffffa0;display:flex;flex-direction:column;gap:6px}
.card-icon{margin:0;display:grid;place-items:center;width:45px;height:45px;border-radius:16px;background:linear-gradient(135deg,#ffffff99,#ffffff24);box-shadow:inset 1px 1px 1px #ffffffa6,3px 5px 9px #829ab223;color:#516682}
.card-icon svg{width:26px;height:26px}.cat-hair .card-icon{color:#6282ab}.cat-shower .card-icon{color:#5b987e}.cat-face .card-icon{color:#ac7895}.cat-hygiene .card-icon{color:#b09459}
.card-copy h2{font-size:18px;letter-spacing:-.055em;font-weight:760;margin-bottom:4px;color:#2f3849}
.card-time{color:#838c9c;font-size:12.5px;min-height:18px;white-space:normal;line-height:1.4}
.card-foot{margin-top:0;min-height:27px;gap:5px}
.card-foot>span{font-size:10px;color:#9199a5;line-height:1.35;max-width:calc(100% - 31px)}
.card-mini-add{height:28px;width:28px;box-shadow:none;border:1px solid #ffffffc0;background:#ffffff75;color:#5b6880;flex-shrink:0}
.card-mini-add:active{background:#ffffffb0}
.week-section{margin-top:24px;padding:17px 16px 12px;background:#fff;border:1px solid #edf0f7;border-radius:26px;box-shadow:0 10px 27px #65738c0a}
.week-section .section-title{margin:0 0 12px 2px}
.week-section .section-title h2{font-size:18px;font-weight:740;color:#30394a}
.week-section .subtle-link{color:#9da4b1;font-size:12px}
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.week-day{display:flex;align-items:center;flex-direction:column;gap:10px;min-height:65px;padding:3px 0 6px;border-radius:12px;background:transparent;color:#929aa8;line-height:1.4}
.week-label{font-size:12px;min-width:25px;text-align:center}
.week-day.is-today .week-label{background:#eaf0f9;border-radius:8px;color:#5c799f;font-weight:700}
.week-bars{height:30px;display:flex;gap:4px;justify-content:center;align-items:flex-end}
.week-bar{display:block;width:5px;height:25px;border-radius:10px;background:#e8ebf0;opacity:1}
.week-bar:nth-child(2){height:20px}.week-bar:nth-child(3){height:28px}.week-bar:nth-child(4){height:22px}
.week-bar.has-entry.bar-hair{background:#82a5d3}.week-bar.has-entry.bar-shower{background:#89c4ad}.week-bar.has-entry.bar-face{background:#dca1ba}.week-bar.has-entry.bar-hygiene{background:#e3c67f}
.week-legend{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;column-gap:15px;row-gap:5px;margin-top:9px}
.week-legend span{display:flex;align-items:center;gap:5px;color:#a0a6b2;font-size:10px}
.week-legend .dot{width:5px;height:5px}
.wide-cta{margin:17px 0 29px;min-height:62px;background:linear-gradient(135deg,#e9eefb,#e8eefd);border:1px solid #fff;border-radius:999px;box-shadow:5px 8px 19px #6b7d9e22,-3px -4px 10px #fff;color:#526380;font-size:16px;font-weight:720;gap:10px}
.wide-cta:active{transform:translateY(2px);box-shadow:inset 3px 4px 9px #aab8cd77}
.recent-block .section-title h2{font-size:17px}
.recent-row{min-height:65px}
.empty-mini{background:#fff;border:1px solid #eef0f6;border-radius:16px;padding:21px 16px;font-size:12px}
.tabbar{height:calc(71px + env(safe-area-inset-bottom));grid-template-columns:repeat(4,1fr);padding:8px 12px calc(5px + env(safe-area-inset-bottom));background:#fafbfded;box-shadow:0 -5px 24px #8189a00d;border-top:1px solid #edf0f6}
.nav-item{font-size:10.5px;height:55px;gap:4px}.nav-item.active{color:#6f87b2}.nav-item .icon{width:22px;height:22px}
.float-add{position:fixed;right:max(21px,calc((100vw - 540px)/2 + 21px));bottom:calc(89px + env(safe-area-inset-bottom));width:55px;height:55px;border-radius:20px;background:#e6ecfa;color:#617ba3;box-shadow:0 6px 18px #9aabc43d;border:1px solid #fff;z-index:9;display:grid;place-items:center}
.weather-mini{margin-top:16px;background:#eef3f8;box-shadow:none}
@media(max-width:360px){.main-content{padding:25px 15px calc(125px + env(safe-area-inset-bottom))}.cards-grid{gap:10px}.hygiene-card{min-height:152px;border-radius:23px;padding:13px 12px 9px;gap:5px}.card-icon{width:42px;height:42px;border-radius:14px}.card-copy h2{font-size:18px}.card-time{font-size:11.5px}.week-section{padding:17px 11px 14px}.week-bars{gap:3px}.week-legend{column-gap:9px}}
@media(prefers-reduced-motion:reduce){.card-mini-add,.wide-cta{transition:none}}

 
/* ------- RECORD EXPERIENCE v3: category-led, airy, calm ------- */
/* Keep the home cards, weekly strip, and navigation untouched. */
.calendar-panel{
  background:rgba(255,255,255,.85);
  border:1px solid rgba(255,255,255,.98);
  box-shadow:0 13px 30px rgba(119,131,153,.065),inset 0 1px rgba(255,255,255,.95);
  border-radius:29px;
}
.month-bar h2{color:#343e52;font-weight:760;}
.month-bar .icon-btn{
  background:#f5f6fb;border:1px solid #fff;border-radius:15px;
  box-shadow:2px 3px 8px rgba(118,132,152,.08),inset 1px 1px #fff;
  min-width:40px;min-height:40px;color:#758498;
}
.today-btn{background:#eff2fb;border:1px solid #fff;color:#7185a4;border-radius:14px;min-height:40px}
.filter-row{gap:7px;padding:3px 0 7px;margin-bottom:9px}
.filter-pill{background:rgba(248,249,252,.92);color:#7f8a9a;border:1px solid #e9edf4;min-height:40px;border-radius:999px;padding:9px 14px;transition:background .15s,color .15s,box-shadow .15s}
.filter-pill[data-filter="hair"],.filter-pill[data-filter="shower"],.filter-pill[data-filter="face"],.filter-pill[data-filter="hygiene"]{position:relative}
.filter-pill[data-filter="hair"]:before,.filter-pill[data-filter="shower"]:before,.filter-pill[data-filter="face"]:before,.filter-pill[data-filter="hygiene"]:before{
  content:"";display:inline-block;vertical-align:1px;width:6px;height:6px;margin-right:6px;border-radius:100%;background:#9db2d3;
}
.filter-pill[data-filter="shower"]:before{background:#8bbda9}
.filter-pill[data-filter="face"]:before{background:#dcadc2}
.filter-pill[data-filter="hygiene"]:before{background:#d9c493}
.filter-pill.active{border-color:#d8def0;background:#e8edf8;color:#4f6081;box-shadow:inset 1px 1px 4px #cad5e555;font-weight:740}
.filter-pill[data-filter="hair"].active{background:#e3ecfa;border-color:#c4d5ef;color:#4f709d}
.filter-pill[data-filter="shower"].active{background:#e1f1e9;border-color:#bfded0;color:#46836e}
.filter-pill[data-filter="face"].active{background:#fae8f0;border-color:#efd0dd;color:#a66982}
.filter-pill[data-filter="hygiene"].active{background:#fbf1d5;border-color:#eddfb6;color:#97824f}
.calendar-day{min-height:52px;position:relative;border:1px solid transparent;transition:background .15s}
.calendar-day.selected{background:#f0f0fa;color:#505b7e;box-shadow:inset 0 0 0 1px #dedcf1;font-weight:760;border:1px solid #fff}
.calendar-day.today:not(.selected){box-shadow:inset 0 0 0 1.5px #b3b6d8}
.calendar-dots .dot{width:6px;height:6px}
.legend{border-top:1px solid #f2f2f7;padding-top:16px;margin-top:7px}
.day-records{padding:14px 0}
.day-records .section-title{padding:0 4px;margin-bottom:12px}
.day-records .section-title h2{font-size:18px}
.day-records .subtle-link{color:#738aad}
.record-item{
  min-height:75px;padding:11px 13px;margin:8px 0;border:1px solid rgba(255,255,255,.9);
  border-radius:21px;background:#f9fafc;box-shadow:0 4px 11px rgba(119,130,153,.045);
}
.record-item.cat-hair{background:#edf3fc}.record-item.cat-shower{background:#edf7f2}
.record-item.cat-face{background:#fdf1f6}.record-item.cat-hygiene{background:#fcf7e7}
.record-item .list-icon{border-radius:15px;box-shadow:inset 1px 1px rgba(255,255,255,.5)}
.record-item.cat-hair .list-icon{color:var(--hair-ink)}
.record-item.cat-shower .list-icon{color:var(--shower-ink)}
.record-item.cat-face .list-icon{color:var(--face-ink)}
.record-item.cat-hygiene .list-icon{color:var(--hygiene-ink)}
.record-item .record-main strong{color:#354052}
.record-item .record-main>span{color:#7e8a99}
.record-item>.icon-btn{color:#99a3b2}
.day-records .empty-mini{border:1px dashed #e3e6ee;background:#fff9;border-radius:22px;padding:30px 18px}

/* Light category chips; the selected tile itself carries its category color */
.sheet{background:linear-gradient(180deg,#fffefe 0%,#fdfdff 67%,#f9fafe 100%);border-radius:34px 34px 0 0;box-shadow:0 -16px 50px rgba(53,63,84,.22)}
.sheet-grip{background:#e2e5ec;width:38px;margin-top:12px}
.sheet-head{padding:9px 21px 15px;border-bottom:1px solid #f0f2f6}
.sheet-head-titles{display:flex;flex-direction:column;gap:6px}
.sheet-head-eyebrow{font-size:10px;letter-spacing:.24em;color:#adb4c1;line-height:1}
.sheet-head h2{color:#30394c;font-weight:780;font-size:24px}
.sheet-head .icon-btn{border:1px solid #e9edf3;background:#f7f8fc;border-radius:50%;min-width:38px;min-height:38px;color:#8793a2}
.sheet-body{padding-top:14px}
.sheet .field-label{color:#8b95a4;margin:13px 0 12px;font-size:12px}
.sheet .field-label-main{font-weight:720;color:#566174;font-size:13px;margin-top:5px}
.sheet .record-cats{gap:8px;margin-bottom:22px}
.sheet .record-cat{
  min-height:98px;gap:9px;border-radius:22px;background:#f9fafc;color:#657386;
  border:1px solid #edf0f5;font-size:12px;font-weight:630;padding:10px 4px;
  position:relative;box-shadow:inset 0 1px 1px #fff;
}
.sheet .record-cat-icon{
  width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.6);
  box-shadow:inset 1px 2px 3px rgba(255,255,255,.85),2px 3px 8px rgba(87,103,134,.06)
}
.sheet .record-cat.cat-hair{background:#f0f5fd;color:#6685ac}
.sheet .record-cat.cat-shower{background:#eff8f4;color:#558b78}
.sheet .record-cat.cat-face{background:#fcf2f7;color:#b17b93}
.sheet .record-cat.cat-hygiene{background:#fdf8e8;color:#a18b57}
.sheet .record-cat.chosen{font-weight:760;transform:translateY(-1px);box-shadow:0 5px 13px rgba(104,126,155,.10),inset 1px 1px rgba(255,255,255,.92)}
.sheet .record-cat.chosen:after{
  content:"✓";position:absolute;top:6px;right:7px;font-size:11px;font-weight:850;line-height:17px;
  width:17px;height:17px;text-align:center;border-radius:100%;background:#fff;border:1px solid #f7f8fa
}
.sheet .record-cat.cat-hair.chosen{background:#dfeafb;border:1.5px solid #a6c1e7;color:#4b709f}
.sheet .record-cat.cat-shower.chosen{background:#dff2e8;border:1.5px solid #a8d8c2;color:#407b68}
.sheet .record-cat.cat-face.chosen{background:#fbe5ee;border:1.5px solid #e8b9cd;color:#9e617c}
.sheet .record-cat.cat-hygiene.chosen{background:#fbefd1;border:1.5px solid #e7d49e;color:#957b43}
.sheet .record-cat.cat-hair.chosen:after{color:#4b709f}
.sheet .record-cat.cat-shower.chosen:after{color:#407b68}
.sheet .record-cat.cat-face.chosen:after{color:#9e617c}
.sheet .record-cat.cat-hygiene.chosen:after{color:#957b43}
.sheet .form-block{
  margin:13px 0 16px;border-radius:24px;padding:17px 17px 20px;
  background:#fff;border:1px solid #eaeef4;
  box-shadow:0 4px 13px rgba(113,128,149,.045);
}
.sheet .form-block h3{font-size:15px;font-weight:750;color:#435066;display:flex;gap:9px;align-items:center;margin:0 0 16px}
.sheet .form-block h3:before{content:"";display:block;width:10px;height:10px;border-radius:50%;background:#b6c8e2;box-shadow:0 0 0 4px #f0f4fc}
.sheet .form-block-shower{border-color:#e2f0e8;background:#fafffc}
.sheet .form-block-face{border-color:#f6e4eb;background:#fffafd}
.sheet .form-block-hygiene{border-color:#f4ebd3;background:#fffcf5}
.sheet .form-block-time{border-color:#ebeaf5;background:#fcfbff}
.sheet .form-block-shower h3:before{background:#8fc5ac;box-shadow:0 0 0 4px #eaf6ef}
.sheet .form-block-face h3:before{background:#e6acc5;box-shadow:0 0 0 4px #fceaf2}
.sheet .form-block-hygiene h3:before{background:#d7bd7c;box-shadow:0 0 0 4px #fbf2dd}
.sheet .form-block-time h3:before{background:#adb9db;box-shadow:0 0 0 4px #eeeff9}
.sheet .form-block .field-label{color:#9ba3b0;font-size:11px;margin:8px 0 10px}
.sheet .form-block .extra-label{margin-top:18px}
.sheet .choice{font-size:12px;line-height:1.35;min-height:44px;border-radius:16px;padding:10px 13px;background:#fff;border:1px solid #e7eaf0;color:#677486;box-shadow:0 2px 5px rgba(95,108,129,.025)}
.sheet .choice.chosen{font-weight:750;box-shadow:inset 1px 2px 4px rgba(112,127,151,.05)}
.sheet .choice.chosen:after{content:"✓";font-size:11px;margin-left:7px;font-weight:800}
.sheet .form-block-shower .choice.chosen{color:#437c69;background:#e3f3ea;border-color:#b5dec8}
.sheet .form-block-face .choice.chosen{color:#aa6a86;background:#fbe8f1;border-color:#ecc8d8}
.sheet .form-block-hygiene .choice.chosen{color:#967c45;background:#fbf1d9;border-color:#e6d49f}
.sheet .form-block-time .choice.chosen{color:#6579a4;background:#e8edf9;border-color:#ccd6ed}
.sheet .date-inputs input{border-color:#e1e5f0;border-radius:15px;background:#fff;color:#4f596c}
.sheet .date-inputs label{color:#838d9e}
.sheet-footer{background:rgba(255,254,255,.97);border-top:1px solid #f0f0f5;padding:13px 20px 16px}
.sheet .primary-button{
  background:linear-gradient(105deg,#c9ddf8 0%,#d5eae8 47%,#f2dcea 100%);
  color:#374a62;border:1px solid #fefeff;
  box-shadow:0 7px 17px rgba(137,156,190,.18),inset 0 1px 1px #fff;
  font-size:15px;font-weight:780;border-radius:19px;min-height:54px;
}
.sheet .primary-button:active{transform:translateY(1px);box-shadow:inset 1px 2px 6px rgba(113,144,181,.15)}
.sheet .edit-tools .text-danger{color:#ba7b89}
.sheet .edit-tools .muted-tool{color:#919aaa}
@media(max-width:360px){
 .sheet .record-cats{gap:6px}.sheet .record-cat{min-height:89px;padding:9px 2px;font-size:11px;border-radius:18px}
 .sheet .record-cat-icon{width:42px;height:42px}.sheet .form-block{padding:15px 12px}
 .filter-pill{padding:8px 11px}
}

/* The face exfoliation control already includes its own checkmark label. */
.sheet .choice[data-action="face-exfoliated"].chosen:after{content:none}


/* V5 — small-area pastel accents; preserve all layouts, controls and neutral analysis tabs */
:root{
  --accent-warm-ink:#84647f;
  --accent-warm-shadow:rgba(175,139,177,.17);
}
/* Calendar filters and selected day: pale blush rather than blue-grey */
.filter-pill.active:not([data-filter="hair"]):not([data-filter="shower"]):not([data-filter="face"]):not([data-filter="hygiene"]){
  color:#795a76;background:#f7e8f1;border-color:#edcfdf;
  box-shadow:inset 1px 2px 4px rgba(181,130,168,.09);
}
.calendar-day.selected{
  background:linear-gradient(145deg,#faeaf2,#f8efe5);
  color:#805f79;border-color:#fff;
  box-shadow:inset 0 0 0 1px #f0d7e5,0 3px 9px rgba(205,162,188,.11);
}
.calendar-day.today:not(.selected){box-shadow:inset 0 0 0 1.5px #e8bed3}
.today-btn{background:#faedf0;color:#986d83;border-color:#fff}
.month-bar .icon-btn{background:#fff9fa;color:#9a788d;box-shadow:2px 3px 8px rgba(190,154,180,.10),inset 1px 1px #fff}
.day-records .subtle-link{color:#a37691}
/* Float '+' on calendar and analysis: warm pearly blush, not slate */
.float-add{
  background:linear-gradient(145deg,#fce7ee 0%,#f5e5f2 48%,#ffefdd 100%);
  color:#98748c;border:1px solid rgba(255,255,255,.98);
  box-shadow:0 8px 20px rgba(190,144,169,.19),inset 1px 1px rgba(255,255,255,.94);
}
.float-add:active{transform:translateY(1px);box-shadow:inset 2px 3px 8px rgba(175,136,167,.19)}
.nav-item.active{color:#a27c97}
/* Prediction is a featured surface, not another hair-blue panel. */
.analysis-hero.cat-hair{
  background:linear-gradient(122deg,#f8e7f0 0%,#f7edf6 51%,#fff0de 100%);
}
.analysis-hero.cat-shower{
  background:linear-gradient(125deg,#e4f3e9 0%,#f4f5e6 57%,#fff0de 100%);
}
.analysis-hero.cat-face{
  background:linear-gradient(125deg,#fce8ef 0%,#f8edf6 54%,#fdf0e7 100%);
}
.analysis-hero>span{color:#897589}
.analysis-hero p{color:#877d88}
/* Deliberately preserve .segmented grey track and white selected tab. */


/* V6 — warm, playful utility accents. Preserve all component geometry and category styling. */
.week-day.is-today .week-label{background:#fff0d8;color:#986b48;border-radius:8px}
.week-bar:not(.has-entry){background:#eae7e4}
.week-legend .dot.hair{background:#82a5d3}
.wide-cta{background:linear-gradient(108deg,#fff0c9 0%,#f7e7ce 47%,#e1efdd 100%);color:#78634e;box-shadow:5px 9px 20px rgba(171,137,98,.16),-4px -5px 13px #fff;border:1.5px solid #fff}
.wide-cta:active{box-shadow:inset 3px 4px 9px rgba(182,148,100,.17)}
.float-add{background:linear-gradient(140deg,#ffe8be 0%,#ffdbbc 53%,#f5e7c9 100%);color:#987055;box-shadow:0 8px 22px rgba(191,143,106,.21),inset 1px 1px 1px #fff;border:1.5px solid #fff}
.nav-item.active{color:#ac8962}
.today-btn{background:#fff0da;color:#9b7650;border:1px solid #fff5e8}
.filter-pill.active{background:#fff0dd;color:#956f51;border-color:#eed9b7;box-shadow:inset 1px 1px 4px #ead8bb66}
/* Category-specific active filters remain blue, green, pink and yellow. */
.calendar-day.today{box-shadow:inset 0 0 0 1.5px #dab580}
.calendar-day.selected{background:linear-gradient(155deg,#fff0d5 0%,#ffeedc 57%,#e8efd8 100%);color:#956b4b;box-shadow:inset 0 0 0 1px #e7c99d,0 2px 7px rgba(180,153,113,.13);font-weight:760}
.analysis-hero.cat-hair{background:linear-gradient(125deg,#fff0d8 0%,#faf4de 48%,#e8efdd 100%)}
.analysis-hero.cat-shower{background:linear-gradient(125deg,#e1f2e6 0%,#eef3dd 55%,#fff0d8 100%)}
.analysis-hero.cat-face{background:linear-gradient(125deg,#fbe9f1 0%,#f9e9e7 53%,#fff0dc 100%)}
.analysis-hero>span{color:#877c6e}.analysis-hero p{color:#857f79}
/* Preserve the neutral grey segmented tabs and every selected state in the record sheet. */


/* V7: all record-add actions share exactly the save-button pastel gradient.
   No structural, data, analysis, or other palette changes. */
.sheet .primary-button,
.wide-cta,
.float-add,
.nav-add {
  background:linear-gradient(105deg,#f0e2f8 0%,#e6f0fa 47%,#faebdc 100%);
  color:#5c5776;
  border-color:#fefeff;
}
.wide-cta {box-shadow:0 7px 17px rgba(137,156,190,.18),inset 0 1px 1px #fff;}
.float-add,.nav-add {box-shadow:0 7px 17px rgba(137,156,190,.18),inset 0 1px 1px #fff;}

/* V8: seasonal self-report, scoped to new components. Existing screens intact. */
.season-panel{background:linear-gradient(150deg,#fffefd 4%,#fcfaff 53%,#f7fbf8 100%);border:1px solid rgba(218,209,229,.45)}
.season-status{display:flex;gap:12px;align-items:center;padding:13px 14px;border-radius:18px;background:#f7f6fb;margin-bottom:10px}
.season-status-icon{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;flex:none;color:#5a6481}
.season-status-icon.cat-hair{background:#e8f0fc}.season-status-icon.cat-shower{background:#e4f4eb}.season-status-icon.cat-face{background:#fceaf1}
.season-status div{display:flex;flex-direction:column;gap:4px}.season-status small{font-size:11px;color:#848a99}.season-status strong{font-size:15px;color:#424254}
.season-help{font-size:13px;line-height:1.6;color:#777889;margin:0 0 13px}
.season-update-btn{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;width:100%;background:linear-gradient(107deg,#f0e4fa 0%,#e8f5ed 49%,#fff0df 100%);color:#695e7a;border:1px solid #fff;border-radius:15px;font-weight:690;box-shadow:0 4px 12px rgba(177,164,195,.12)}
.season-comparison{border-top:1px solid #efedf5;padding-top:15px;margin-top:17px}.season-comparison h3{font-size:14px;color:#464b5c;margin:0 0 13px}
.season-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.season-tile{border-radius:13px;background:#f6f6f9;padding:11px 4px;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.season-tile.current{background:#f3eafa;outline:1px solid #e7d5ee}.season-tile small{font-size:11px;color:#7e8193}.season-tile strong{font-size:16px;color:#575268;white-space:nowrap}.season-tile em{font-style:normal;color:#a0a1ad;font-size:10px}
.season-event{min-height:38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #efedf4;font-size:12px;color:#7b7890}
.season-event button{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:transparent;color:#9b8f9f}
.season-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:5px;background:#f2f0f6;border-radius:17px;margin:16px 0 19px}
.season-tab{min-height:43px;border-radius:13px;background:transparent;color:#8c899b;font-weight:690;font-size:13px}
.season-tab.active{background:#fff;color:#6c597d;box-shadow:0 3px 10px rgba(178,161,201,.17)}
.season-editor-block{border:1px solid #ede8f1;border-radius:21px;padding:16px 14px 18px;margin:0 0 12px;background:#fffcff}
.season-editor-block.area-scalp{background:#f8fbff;border-color:#e0eaf8}
.season-editor-block.area-face{background:#fff9fc;border-color:#f6e5ed}
.season-editor-block.area-body{background:#f9fefa;border-color:#dfeee5}
.season-editor-block h3{margin:0 0 13px;font-size:14px;color:#4c5162}
.season-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.season-choice{min-height:45px;border-radius:13px;border:1px solid #e8e8ee;background:white;font-size:12px;color:#707586;padding:8px;font-weight:600}
.season-choice.active{background:#f0e8fa;border-color:#d8c2ea;color:#755f91;font-weight:740}
.area-scalp .season-choice.active{background:#e3edfd;border-color:#bcd0ee;color:#577ca9}
.area-face .season-choice.active{background:#fce6ef;border-color:#edc5d5;color:#a46b88}
.area-body .season-choice.active{background:#e2f3e9;border-color:#b8dfc8;color:#4d876f}
.season-area-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:15px 0}
.season-area{min-height:46px;border-radius:14px;border:1px solid #e9e7ef;background:#f7f6f9;color:#777584;font-weight:700}
.season-area.active{color:#74638d;border-color:#d9cee8;background:#f2edfa}
.season-area.active.area-scalp{color:#5478a0;background:#eaf1ff;border-color:#c8d9f2}
.season-area.active.area-face{color:#a56d87;background:#fbe9f0;border-color:#efcad9}
.season-area.active.area-body{color:#4c886f;background:#e7f7ee;border-color:#bedfce}
@media(max-width:360px){.season-grid{gap:4px}.season-tile strong{font-size:14px}.season-editor-block{padding:13px 11px}.season-choice{font-size:11px}}

/* V9 small usability fixes — preserve existing layout, category palette and card treatment. */
/* Date and time controls stack on phone-width sheets, avoiding native iOS picker overflow. */
.date-inputs{grid-template-columns:minmax(0,1fr) minmax(0,.82fr);align-items:end}
.date-inputs label{min-width:0;width:100%}
.date-inputs input{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;font-size:16px}
@media(max-width:430px){
 .date-inputs{grid-template-columns:minmax(0,1fr);gap:11px}
}
/* One shower bar changes to yellow only for cleanse-only days. Full shower wins if both are recorded. */
.dot.shower-cleanse{background:#e3c67f}
.dot.shower.shower-cleanse-only{background:#e3c67f}
/* Compact weather temperature at the top of Home, not a full-width content card. */
.weather-inline{width:fit-content;max-width:100%;min-height:34px;display:flex;align-items:center;gap:8px;margin:-17px 4px 14px auto;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.9);box-shadow:2px 4px 10px rgba(178,184,203,.12);color:#85849a;font-size:11px;line-height:1}
.weather-inline-place{max-width:105px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#9292a1}
.weather-inline strong{font-size:15px;font-weight:750;letter-spacing:-.04em;color:#5e6176}
.weather-inline small{font-size:10px;color:#a0a0ad}
.weather-inline button{min-width:27px;min-height:26px;padding:0 3px;border-radius:999px;background:rgba(240,235,248,.75);color:#8b7d9c;font-size:11px}
.weather-inline.muted{opacity:.78}
/* Dismissible toast in a light pastel glass surface instead of a solid navy block. */
.toast{background:rgba(255,250,247,.97);color:#686170;border:1px solid rgba(255,255,255,.98);box-shadow:0 8px 22px rgba(133,119,150,.17),inset 0 1px 0 #fff;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.toast-link{color:#9a7ea5}


/* V10 selective polish — preserve the approved V9 pastel palette and layout. */
.head-top-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px;min-width:0}
.head-top-line .eyebrow{margin-bottom:0}
.weather-head-chip{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:27px;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.98);color:#81758f;font-size:11px;font-weight:680;box-shadow:0 2px 7px rgba(156,143,178,.10),inset 0 1px #fff;white-space:nowrap}
.weather-head-chip .icon{color:#9a8cab}
.weather-head-chip:active{transform:scale(.97);background:#f4edf8}
/* Keep native date/time inputs inside their labels even at narrow iPhone widths. */
.date-inputs{grid-template-columns:minmax(0,1fr) minmax(0,.82fr);align-items:end}
.date-inputs label{width:100%;min-width:0}
.date-inputs input{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;font-size:16px}
@media(max-width:430px){.date-inputs{grid-template-columns:minmax(0,1fr);gap:11px}}
/* Warm glass toast; preserve the V9 message/action timing and button labels. */
.toast{background:rgba(255,250,247,.97);color:#686170;border:1px solid rgba(255,255,255,.98);box-shadow:0 8px 22px rgba(133,119,150,.17),inset 0 1px 0 #fff;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.toast-link{color:#9a7ea5}
.toast-enter{animation:toast-enter .16s ease-out both}
.toast-exit{animation:toast-exit .18s ease-in both}
@keyframes toast-enter{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes toast-exit{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,7px)}}
/* Category symbol and title become full-size tap targets without changing the card look. */
.hygiene-card .card-icon,.hygiene-card .card-copy{appearance:none;-webkit-appearance:none;border:0;background:transparent;margin-left:0;margin-right:0;padding:0;text-align:left;cursor:pointer}
.hygiene-card .card-icon{align-self:flex-start;display:block;min-width:0;min-height:0}
.hygiene-card .card-copy{display:block;width:100%;min-width:0;min-height:0;color:inherit}
.hygiene-card .card-icon:focus-visible,.hygiene-card .card-copy:focus-visible{outline:2px solid rgba(130,151,191,.8);outline-offset:3px;border-radius:10px}

/* V10.1 icon alignment correction: preserve all icon sizes and colors.
   The clickable card icon button had overridden its original grid centering. */
.hygiene-card .card-icon{display:grid;place-items:center;align-content:center;line-height:0;}
.hygiene-card .card-icon .icon{display:block;flex:none;vertical-align:unset;margin:0 auto;}
.icon-btn .icon,.nav-item .icon,.card-mini-add .icon,.nav-add .icon,.subtle-link .icon,.wide-cta .icon,.weather-head-chip .icon,.list-icon .icon,.record-cat .icon{display:block;flex:none;vertical-align:unset;}

.season-baseline{font-size:11px;color:#9b8ca6;margin:-2px 0 9px;padding-left:3px}.analysis-warning{font-size:12px;line-height:1.55;color:#92733e;background:#fbf4e5;border:1px solid #f0e2c5;border-radius:12px;padding:10px 12px;margin:10px 0}


/* V10.3: one distinct quick-action per category, while keeping the established pastel card design. */
.header-spacer{display:block;width:43px;height:43px;flex:none}
.hygiene-card .card-main-hit{appearance:none;-webkit-appearance:none;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:6px;width:100%;min-width:0;min-height:0;margin:0;padding:0;background:transparent;border:0;color:inherit;text-align:left;cursor:pointer}
.hygiene-card .card-main-hit:focus-visible{outline:2px solid rgba(130,151,191,.8);outline-offset:4px;border-radius:13px}
.hygiene-card .card-main-hit .card-icon{display:grid;place-items:center;align-content:center;line-height:0;flex:none;width:45px;height:45px;padding:0;margin:0 0 5px;border-radius:16px;background:linear-gradient(135deg,#ffffff99,#ffffff24);box-shadow:inset 1px 1px 1px #ffffffa6,3px 5px 9px #829ab223}
.hygiene-card .card-main-hit .card-icon .icon{display:block;flex:none;width:26px;height:26px;margin:0 auto;vertical-align:unset}
.hygiene-card .card-main-hit .card-copy{display:block;width:100%;min-width:0;margin:0;padding:0;border:0;background:transparent;color:inherit}
.hygiene-card .card-main-hit .card-copy h2{margin:0 0 4px;font-size:18px;letter-spacing:-.055em;font-weight:760;color:#2f3849}
.hygiene-card .card-main-hit .card-time{display:block;color:#838c9c;font-size:12.5px;min-height:18px;line-height:1.4;white-space:normal}
.hygiene-card .card-foot{margin-top:7px;min-height:25px}
.hygiene-card .card-foot>span{max-width:100%}
.quick-category-panel{display:flex;align-items:center;gap:11px;min-height:64px;padding:10px 13px;border-radius:19px;margin:2px 0 16px;background:rgba(255,255,255,.68);border:1px solid rgba(255,255,255,.95);color:#394559;font-weight:760}
.quick-category-panel .record-cat-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:15px;background:rgba(255,255,255,.72);box-shadow:inset 1px 1px 2px #ffffff,2px 3px 8px rgba(105,124,151,.08)}
.quick-category-panel small{margin-left:auto;font-size:10px;font-weight:550;color:#9299a6}
.quick-category-panel.cat-hair{background:#eef4fd;color:#5d7ca8}.quick-category-panel.cat-shower{background:#edf7f1;color:#568c79}.quick-category-panel.cat-face{background:#fcf0f5;color:#aa7891}.quick-category-panel.cat-hygiene{background:#fbf5e5;color:#9e8856}
.record-edit-hint{display:grid;place-items:center;min-width:34px;min-height:34px;color:#a4aab5;pointer-events:none}
@media(max-width:360px){.hygiene-card .card-main-hit .card-icon{width:42px;height:42px}.quick-category-panel{min-height:58px;padding:8px 11px}}


/* V10.4 calendar marks: larger category bars instead of tiny, ambiguous dots. */
.calendar-day{height:60px;min-height:60px;gap:7px;padding:7px 0 5px;justify-content:flex-start}
.calendar-date-number{display:block;line-height:17px;min-height:17px}
.calendar-bars{width:100%;height:13px;min-height:13px;display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:nowrap}
.calendar-bars-empty{visibility:hidden}
.calendar-bar{display:block;flex:0 0 5px;width:5px;height:12px;border-radius:99px;background:#ece9ed;opacity:1}
.calendar-bar.active.hair,.legend-bar.hair{background:#82A5D3}
.calendar-bar.active.shower,.legend-bar.shower{background:#89C4AD}
.calendar-bar.active.shower-cleanse,.legend-bar.shower-cleanse{background:#E3C67F}
.calendar-bar.active.face,.legend-bar.face{background:#DCA1BA}
.calendar-bar.active.hygiene,.legend-bar.hygiene{background:#D9BF7D}
.legend{gap:9px 15px;padding-top:15px}
.legend span{display:flex;align-items:center;gap:6px;color:#9198a6;font-size:11px}
.legend-bar{display:inline-block;width:5px;height:12px;flex:0 0 5px;border-radius:99px;background:#ece9ed}
@media(max-width:360px){.calendar-grid{gap:2px}.calendar-day{height:58px;min-height:58px}.calendar-bar{flex-basis:4px;width:4px}.calendar-bars{gap:2.5px}}


/* V10.5 monthly calendar: playful four-petal markers. Weekly bars are intentionally untouched. */
.calendar-day{height:62px;min-height:62px;gap:5px;padding:7px 0 3px}
.calendar-flower{position:relative;display:block;width:29px;height:27px;flex:0 0 27px;margin-top:1px}
.flower-petal{position:absolute;display:block;width:16px;height:16px;border-radius:50%;background:#DDE0E2;border:1.25px solid rgba(255,255,255,.88);box-shadow:inset 0 1px 2px rgba(255,255,255,.48);opacity:.96}
.flower-petal.hair{top:0;left:1px}
.flower-petal.shower{top:0;right:1px}
.flower-petal.face{bottom:0;left:1px}
.flower-petal.hygiene{bottom:0;right:1px}
.flower-petal.active.hair{background:#82A5D3;box-shadow:inset 0 1px 2px rgba(255,255,255,.45),0 1px 3px rgba(93,126,176,.16)}
.flower-petal.active.shower{background:#89C4AD;box-shadow:inset 0 1px 2px rgba(255,255,255,.45),0 1px 3px rgba(92,154,128,.16)}
.flower-petal.active.shower-cleanse{background:#E8C96F;box-shadow:inset 0 1px 2px rgba(255,255,255,.52),0 1px 3px rgba(187,153,76,.18)}
.flower-petal.active.face{background:#DCA1BA;box-shadow:inset 0 1px 2px rgba(255,255,255,.45),0 1px 3px rgba(183,119,147,.16)}
.flower-petal.active.hygiene{background:#C8B17B;box-shadow:inset 0 1px 2px rgba(255,255,255,.45),0 1px 3px rgba(167,143,89,.16)}
.flower-count{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:9px;line-height:1;font-weight:800;letter-spacing:-.03em;text-shadow:0 1px 2px rgba(65,65,80,.35);z-index:2;pointer-events:none}
.calendar-day.selected .flower-count{color:#fff}
.legend{gap:9px 13px;padding-top:15px}
.legend-bar{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#e7e8eb;box-shadow:0 1px 2px rgba(90,90,110,.08)}
.legend-bar.hair{background:#82A5D3}.legend-bar.shower{background:#89C4AD}.legend-bar.shower-cleanse{background:#E8C96F}.legend-bar.face{background:#DCA1BA}.legend-bar.hygiene{background:#C8B17B}
@media(max-width:360px){.calendar-grid{gap:2px}.calendar-day{height:59px;min-height:59px;padding-top:6px}.calendar-flower{transform:scale(.94);transform-origin:top center}.flower-petal{width:15px;height:15px}}


/* V10.6: separated four-petal color markers; filter row is the only category legend. */
.calendar-flower{
  position:relative;display:block;width:26px;height:24px;flex:0 0 24px;margin-top:1px;
}
.flower-petal{
  position:absolute;display:block;width:10px;height:10px;border-radius:50%;
  background:#E5E7EC;border:0;box-shadow:none;opacity:1;
}
.flower-petal.hair{top:1px;left:1px}
.flower-petal.shower{top:1px;right:1px}
.flower-petal.face{bottom:1px;left:1px}
.flower-petal.hygiene{bottom:1px;right:1px}
.flower-petal.active.hair{background:#8EACD9}
.flower-petal.active.shower{background:#8FC9B0}
.flower-petal.active.shower-cleanse{background:#F4D76F}
.flower-petal.active.face{background:#E3A9C0}
.flower-petal.active.hygiene{background:#E5CA83}
.flower-count{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#655A70;font-size:9px;line-height:1;font-weight:850;letter-spacing:-.03em;
  text-shadow:0 1px 1px rgba(255,255,255,.85);z-index:2;pointer-events:none;
}
.calendar-day.selected .flower-count{color:#5C526B}
/* Category filters double as the legend: no repeated label row under the calendar. */
.filter-row{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;margin:0 2px 4px;padding:2px 0 3px}
.filter-row::-webkit-scrollbar{display:none}
.filter-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto}
.filter-mark{display:inline-flex;width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#A9BEDC}
.filter-mark.mark-hair{background:#8EACD9}
.filter-mark.mark-face{background:#E3A9C0}
.filter-mark.mark-hygiene{background:#E5CA83}
.filter-mark.double-mark{position:relative;background:#8FC9B0}
.filter-mark.double-mark b{position:absolute;width:5px;height:5px;border-radius:50%;background:#F4D76F;right:-3px;bottom:-2px;border:1px solid #fff}
.shower-key{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:1px 5px 8px;color:#969AA5;font-size:10px;line-height:1.3}
.shower-key span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.key-swatch{display:inline-block;width:7px;height:7px;border-radius:50%}
.key-swatch.full{background:#8FC9B0}
.key-swatch.partial{background:#F4D76F}
.legend{display:none!important}
.calendar-grid{row-gap:2px}
.calendar-day{height:61px;min-height:61px;gap:5px;padding:7px 0 3px}
@media(max-width:360px){
 .calendar-panel{padding-left:9px;padding-right:9px}
 .filter-row{gap:5px}
 .filter-pill{padding:8px 10px;min-height:36px;font-size:11px}
 .shower-key{margin-bottom:7px;font-size:9px}
 .calendar-grid{gap:1px;row-gap:1px}
 .calendar-day{height:58px;min-height:58px;padding-top:6px}
 .calendar-flower{transform:none;width:25px;height:23px;flex-basis:23px}
 .flower-petal{width:9px;height:9px}
 .flower-count{font-size:8px}
}
.flower-petal.active.hair,.flower-petal.active.shower,.flower-petal.active.shower-cleanse,.flower-petal.active.face,.flower-petal.active.hygiene{border:0;box-shadow:none}
/* Remove the former pseudo-dot; V10.6 uses one explicit color marker per filter. */
.filter-pill[data-filter="hair"]:before,.filter-pill[data-filter="shower"]:before,.filter-pill[data-filter="face"]:before,.filter-pill[data-filter="hygiene"]:before{content:none;display:none}
/* Keep all five category filters visible together; avoid a clipped final chip. */
.filter-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;overflow:visible;margin-bottom:4px}
.filter-pill{width:100%;min-width:0;min-height:36px;padding:7px 3px;gap:4px;font-size:11px}
.filter-mark{width:6px;height:6px;flex-basis:6px}
.filter-mark.double-mark b{width:4px;height:4px;right:-2px;bottom:-2px}
@media(max-width:360px){.filter-row{gap:3px}.filter-pill{padding:7px 1px;font-size:10px;gap:3px}.filter-mark{width:5px;height:5px;flex-basis:5px}}


/* V10.7 — refined quatrefoil calendar markers. Replaces the disconnected 2x2 dots. */
.calendar-flower{
  position:relative;display:block;width:28px;height:28px;flex:0 0 28px;margin-top:0;
  isolation:isolate;
}
.flower-petal{
  position:absolute;display:block;width:16px;height:16px;border:0;border-radius:50%;
  background:#E6E7EB;opacity:.72;box-shadow:none;
}
/* Close placement creates one soft four-lobed silhouette instead of four separate dots. */
.flower-petal.hair{top:1px;left:1px;z-index:1}
.flower-petal.shower{top:1px;right:1px;z-index:2}
.flower-petal.face{bottom:1px;left:1px;z-index:3}
.flower-petal.hygiene{bottom:1px;right:1px;z-index:4}
.flower-petal.active{opacity:.96}
.flower-petal.active.hair{background:#9CB7E6}
.flower-petal.active.shower{background:#8DCBAF}
.flower-petal.active.shower-cleanse{background:#F6D45E}
.flower-petal.active.face{background:#EBA9C2}
.flower-petal.active.hygiene{background:#E7C77F}
.flower-count{
  position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:10px;line-height:1;font-weight:850;letter-spacing:-.035em;
  text-shadow:0 1px 2px rgba(83,73,93,.38);pointer-events:none;
}
.calendar-day.selected .flower-count{color:#fff}
/* A soft lilac selection is calmer than the former brown-peach filled cell. */
.calendar-day.selected{
  background:linear-gradient(145deg,#F4EFFA 0%,#F0EDF8 100%);
  color:#706184;border:1px solid #E8DFF1;
  box-shadow:0 2px 8px rgba(152,130,177,.09),inset 0 1px 0 rgba(255,255,255,.9);
}
.calendar-day.today:not(.selected){box-shadow:inset 0 0 0 1.5px #D9CBE8}
@media(max-width:360px){
  .calendar-flower{width:27px;height:27px;flex-basis:27px}
  .flower-petal{width:15px;height:15px}
  .flower-count{font-size:9px}
}


/* V10.7 aesthetic refinement: soft, close four-petal bloom. */
.calendar-flower{width:24px;height:24px;flex:0 0 24px;margin-top:1px;}
.flower-petal{
  width:14px;height:14px;border:0;border-radius:50%;
  background:#E5E6EB;opacity:.18;box-shadow:none;
}
.flower-petal.hair{top:0;left:0;z-index:1}
.flower-petal.shower{top:0;right:0;z-index:2}
.flower-petal.face{bottom:0;left:0;z-index:3}
.flower-petal.hygiene{bottom:0;right:0;z-index:4}
.calendar-day.has-record .flower-petal{opacity:.17}
.calendar-day.has-record .flower-petal.active{opacity:1}
.flower-petal.active.hair{background:#9BB6E4}
.flower-petal.active.shower{background:#8BC9AD}
.flower-petal.active.shower-cleanse{background:#F5D35B}
.flower-petal.active.face{background:#EAA8C1}
.flower-petal.active.hygiene{background:#E7C77F}
.flower-count{font-size:9.5px;font-weight:850;color:#fff;text-shadow:0 1px 2px rgba(82,69,91,.42);}
.calendar-day.selected .flower-count{color:#fff}
@media(max-width:360px){.calendar-flower{width:24px;height:24px;flex-basis:24px}.flower-petal{width:14px;height:14px}.flower-count{font-size:9px}}

/* V10.8 semantic correction: one body-care bar, no ambiguous yellow shower mode. */
.week-bar.bar-shower.is-care-only{background:#E8C96F}
.week-bar:nth-child(2){height:20px}
.week-bar:nth-child(3){height:28px}
.week-legend .dot.shower{background:#89C4AD}

.week-note{margin:7px 0 0;text-align:center;color:#A2A4AE;font-size:10px;line-height:1.4}
.flower-petal.legacy-unknown{background:#C7C8CC!important;opacity:1!important}

/* V10.9 — bright lemon for care-only, separate from the softer management gold. */
:root{--care-only-lemon:#F3D14A;--management-gold:#E3C47B}
.week-bar.has-entry.bar-shower.is-care-only,
.dot.shower-cleanse,
.dot.shower.shower-cleanse-only,
.key-swatch.partial,
.calendar-bar.active.shower-cleanse,
.legend-bar.shower-cleanse{background:var(--care-only-lemon)!important}
.flower-petal.active.hygiene,
.filter-mark.mark-hygiene,
.calendar-bar.active.hygiene,
.legend-bar.hygiene{background:var(--management-gold)!important}
.flower-petal.active.shower-cleanse{background:var(--care-only-lemon)!important}

/* Optional linking of a symptom observation to an actual wash record. */
.condition-link-block{background:linear-gradient(145deg,#fffefd,#fbf9fd);border-color:#ece6f1}
.condition-link-help{font-size:11px;color:#9793a1;line-height:1.5;margin:-3px 0 10px}
.condition-link-options{display:grid;gap:7px;max-height:188px;overflow:auto;overscroll-behavior:contain;padding:1px}
.condition-link-option{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;min-width:0;text-align:left;padding:10px 12px;border-radius:13px;border:1px solid #ece9f0;background:#fff;color:#707384}
.condition-link-option strong{font-size:12px;line-height:1.4;font-weight:650}
.condition-link-option small{font-size:10px;color:#a0a0ad}
.condition-link-option.active{background:#f2eafa;border-color:#d9c8e8;color:#725d88;box-shadow:inset 0 1px 3px rgba(151,125,176,.08)}
.condition-link-option.active small{color:#907aa4}
.condition-link-empty{font-size:11px;color:#a0a0ac;padding:10px 2px;margin:0}


/* V10.9.1 — vivid lemon for care-only; softer champagne gold for the calendar's management petal. */
:root{--care-only-lemon:#F7D84A;--management-gold:#EAD19A}
.week-bar.has-entry.bar-shower.is-care-only,.dot.shower-cleanse,.dot.shower.shower-cleanse-only,.key-swatch.partial{background:#F7D84A!important}
.flower-petal.active.hygiene,.filter-mark.mark-hygiene{background:#EAD19A!important}
.flower-petal.legacy-management{background:#C7C8CC!important;opacity:1!important}


/* V10.11 — home hierarchy and unified shower/management color semantics. */
.home .wide-cta, .main-content:has(.cards-grid) > .wide-cta {margin:0 0 14px;min-height:54px;font-size:15px;gap:8px}
.cards-grid + .week-section{margin-top:17px}

.week-bar.has-entry.bar-shower.is-care-only,.dot.shower-cleanse{background:#F7D84A!important}


.flower-petal.active.hygiene,.filter-mark.mark-hygiene,.calendar-bar.active.hygiene,.legend-bar.hygiene{background:#F7D84A!important}
.flower-petal.legacy-management{background:#C7C8CC!important;opacity:1!important}
.auto-included{display:block;color:#5E947A;font-size:9px;font-weight:750;line-height:1.15}
.record-cat.cat-hygiene.chosen{border-color:#E7CA63;color:#98751E;background:#FBF4DA}
.record-cat.cat-hygiene.chosen .record-cat-icon{background:#FFF9E8;color:#A27D25}
@media(max-width:430px){.main-content:has(.cards-grid)>.wide-cta{margin-bottom:12px;min-height:51px}.cards-grid + .week-section{margin-top:14px}}


/* V10.11 palette lock: management uses one lemon accent across card, calendar, week and widget. */
:root{--management-lemon:#F7D84A;--management-surface:#FBF1D5;--management-ink:#92701B}
.cat-hygiene .card-icon,.record-item.cat-hygiene .list-icon{color:var(--management-ink)}
.record-cat.cat-hygiene .record-cat-icon,.quick-category-panel.cat-hygiene{color:var(--management-ink)}
.record-cat.cat-hygiene.chosen{background:var(--management-surface);border-color:#E7CA63;color:var(--management-ink)}
.flower-petal.active.hygiene,.filter-mark.mark-hygiene,.calendar-bar.active.hygiene,.legend-bar.hygiene{background:var(--management-lemon)!important}
.week-bar.has-entry.bar-shower.is-care-only,.dot.shower-cleanse,.dot.shower.shower-cleanse-only,.key-swatch.partial{background:var(--management-lemon)!important}



.wide-cta{margin:0 0 12px;min-height:52px}
.cards-grid + .week-section{margin-top:15px}
@media(max-width:430px){.main-content:has(.cards-grid)>.wide-cta{margin-bottom:11px;min-height:50px}.cards-grid + .week-section{margin-top:13px}}


/* V10.12 — concise home hierarchy and refined weekly gradient. */
.main-content:has(.cards-grid)>.cards-grid{margin-bottom:0}
.main-content:has(.cards-grid)>.cards-grid+.wide-cta{margin:13px 0 0;min-height:50px;font-size:15px;gap:8px}
.main-content:has(.cards-grid)>.wide-cta+.week-section{margin-top:16px}
.wide-cta{
 background:linear-gradient(105deg,#F0E2F8 0%,#E6F0FA 47%,#FAEBDC 100%);
 color:#5C5776;border:0;border-radius:19px;
 box-shadow:0 7px 18px rgba(121,119,151,.13),inset 0 1px 1px rgba(255,255,255,.38);
 transition:transform .16s,box-shadow .16s;
}
.wide-cta:active{transform:translateY(1px);box-shadow:inset 0 2px 5px rgba(119,111,145,.12)}
.week-bars{height:26px;gap:4px;align-items:flex-end}
.week-bar{width:6px;height:22px;border-radius:999px;background:#E9EAF0;opacity:1}
.week-bar:nth-child(1){height:20px}
.week-bar:nth-child(2){height:24px}
.week-bar:nth-child(3){height:18px}
.week-bar.has-entry.bar-hair{background:#82A5D3}
.week-bar.has-entry.bar-shower{background:#89C4AD}
.week-bar.has-entry.bar-face{background:#DCA1BA}

.week-bar.has-entry.bar-shower.is-care-only{background:#F7D84A!important}
.week-legend{margin-top:8px;column-gap:13px;row-gap:4px}
.week-legend span{font-size:10.5px;color:#9299A7;gap:5px}
.week-legend .dot{width:6px;height:12px;border-radius:999px}
.week-legend .dot.hair{background:#82A5D3}


.week-legend .dot.face{background:#DCA1BA}
@media(max-width:430px){
 .main-content:has(.cards-grid)>.cards-grid+.wide-cta{margin-top:11px;min-height:48px}
 .main-content:has(.cards-grid)>.wide-cta+.week-section{margin-top:13px}
 .week-section{padding:16px 13px 11px}
 .week-bars{gap:3px}
 .week-legend{column-gap:10px}
}


/* V10.13: robust modal close target and a defined but soft multi-record button. */
.sheet-head{position:relative;z-index:2}
.sheet-head .icon-btn{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;min-width:46px;min-height:46px;flex:0 0 46px;position:relative;z-index:3;touch-action:manipulation;pointer-events:auto;border:1px solid rgba(176,166,194,.34);background:linear-gradient(145deg,#fbfaff 0%,#f3f3fa 100%);box-shadow:0 2px 7px rgba(111,105,136,.08),inset 0 1px 0 rgba(255,255,255,.8);color:#7f8298}
.sheet-head .icon-btn:active{transform:scale(.96);background:#eeeef7}
.main-content:has(.cards-grid)>.wide-cta{border:1px solid rgba(171,157,196,.42);box-shadow:0 6px 16px rgba(121,119,151,.15),inset 0 1px 0 rgba(255,255,255,.5);border-radius:19px}
.main-content:has(.cards-grid)>.wide-cta:focus-visible{outline:2px solid rgba(164,145,190,.58);outline-offset:3px}


/* V10.14 — final date-field sizing and solid weekly body markers. */
.date-inputs{
  display:grid;
  width:100%;
  max-width:100%;
  min-width:0;
  grid-template-columns:minmax(0,1fr) minmax(0,.82fr);
  gap:10px;
  align-items:end;
  overflow:hidden;
}
.date-inputs.date-only{grid-template-columns:minmax(0,1fr)}
.date-field{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  width:100%;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.date-field label{
  display:block;
  min-width:0;
  width:100%;
  color:#838d9e;
  font-size:11px;
  line-height:1.3;
}
.date-field input,
.date-field input[type="date"],
.date-field input[type="time"]{
  display:block;
  width:100% !important;
  inline-size:100% !important;
  min-width:0 !important;
  min-inline-size:0 !important;
  max-width:100% !important;
  max-inline-size:100% !important;
  height:48px;
  min-height:48px;
  margin:0 !important;
  padding:9px 11px;
  box-sizing:border-box !important;
  border:1px solid #dfe4ef;
  border-radius:14px;
  background:#fff;
  color:#4f596c;
  font-family:inherit;
  font-size:16px;
  line-height:1.2;
  text-align:left;
  -webkit-appearance:none;
  appearance:none;
}
.date-field input::-webkit-date-and-time-value{
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
  margin:0;
  padding:0;
  text-align:left;
}
.date-field input::-webkit-calendar-picker-indicator{
  display:block;
  flex:none;
  margin:0 0 0 6px;
  padding:0;
  opacity:.68;
}
.date-field input::-webkit-clear-button{display:none}

.week-bar.has-entry.bar-shower.is-care-only{background:#F7D84A !important}
.week-bar.has-entry.bar-shower.is-shower-and-management{background:#89C4AD !important}
.week-legend .dot.shower{background:#89C4AD}

@media(max-width:430px){
  .date-inputs{grid-template-columns:minmax(0,1fr);gap:10px}
  .date-inputs.date-only{grid-template-columns:minmax(0,1fr)}
  .date-field{overflow:hidden}
  .date-field input{width:100% !important;max-width:100% !important}
}

/* V10.14 final mobile containment: native date/time controls may keep intrinsic width on iOS. */
.sheet,
.sheet-body,
.sheet-body > *,
.form-block,
.form-block-time,
.date-inputs,
.date-field {
  box-sizing:border-box;
  min-width:0;
  max-width:100%;
}
.sheet-body { width:100%; }
.form-block-time { width:100%; overflow:hidden; }
.date-inputs { width:100%; grid-template-columns:minmax(0,1fr); }
.date-field { flex:1 1 0; min-inline-size:0; }
.date-field input[type="date"],
.date-field input[type="time"] {
  flex:1 1 0;
  min-width:0 !important;
  min-inline-size:0 !important;
  max-width:100% !important;
  max-inline-size:100% !important;
  box-sizing:border-box !important;
  overflow:hidden;
  text-overflow:clip;
  white-space:nowrap;
  color-scheme:light;
}
.date-field input::-webkit-date-and-time-value {
  display:block;
  max-width:100%;
  max-inline-size:100%;
  overflow:hidden;
  white-space:nowrap;
}
.date-field input::-webkit-datetime-edit,
.date-field input::-webkit-datetime-edit-fields-wrapper {
  min-width:0;
  max-width:100%;
  max-inline-size:100%;
  padding:0;
}
@media(min-width:431px){
  .date-inputs.has-date-and-time{grid-template-columns:minmax(0,1fr) minmax(0,.82fr)}
}

/* V10.15 — remove repeated quick-record headings; center category identity; soften CTA edge without a purple outline. */
.quick-category-panel{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:min(100%,190px);
  min-height:112px;
  margin:4px auto 17px;
  padding:15px 12px;
  border:0;
  border-radius:22px;
  box-shadow:0 4px 13px rgba(87,104,130,.075),inset 0 1px 2px rgba(255,255,255,.62);
  text-align:center;
}
.quick-category-panel .record-cat-icon{
  width:50px;
  height:50px;
  flex:0 0 50px;
  display:grid;
  place-items:center;
  margin:0;
  border-radius:17px;
  background:rgba(255,255,255,.72);
  box-shadow:0 3px 8px rgba(101,113,132,.075),inset 0 1px 2px rgba(255,255,255,.9);
}
.quick-category-panel>span:not(.record-cat-icon){
  display:block;
  margin:0;
  font-size:14px;
  line-height:1.25;
  font-weight:760;
  letter-spacing:-.025em;
  text-align:center;
}
/* The pastel gradient stays; depth comes from a warm neutral shadow, not a purple/white stroke. */
.main-content:has(.cards-grid)>.wide-cta{
  border:0;
  box-shadow:0 5px 14px rgba(124,115,105,.105),0 1px 2px rgba(174,164,151,.16),inset 0 1px 0 rgba(255,255,255,.42);
}
.main-content:has(.cards-grid)>.wide-cta:active{
  box-shadow:inset 0 2px 5px rgba(119,111,145,.11),0 1px 2px rgba(174,164,151,.12);
}
.main-content:has(.cards-grid)>.wide-cta:focus-visible{
  outline:2px solid rgba(139,150,160,.52);
  outline-offset:3px;
}
@media(max-width:360px){
  .quick-category-panel{width:min(100%,176px);min-height:104px;margin:2px auto 15px;padding:13px 10px}
  .quick-category-panel .record-cat-icon{width:46px;height:46px;flex-basis:46px}
}


/* V10.16 — compact quick-record header: category appears only once; integrated sheet unchanged. */
.sheet-quick-record .sheet-head-quick{
  min-height:38px;
  padding:0 17px 2px;
  border:0;
  justify-content:flex-end;
  align-items:center;
}
.sheet-quick-record .sheet-head-quick .icon-btn{
  width:42px;height:42px;min-width:42px;min-height:42px;
}
.sheet-quick-record .sheet-body{padding-top:0}
.sheet-quick-record .quick-category-panel{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  min-height:54px;
  margin:0 0 12px;
  padding:7px 12px;
  border:0;
  border-radius:16px;
  box-shadow:inset 0 1px 2px rgba(255,255,255,.58),0 2px 8px rgba(87,104,130,.055);
  text-align:center;
}
.sheet-quick-record .quick-category-panel .record-cat-icon{
  width:36px;height:36px;flex:0 0 36px;
  display:grid;place-items:center;margin:0;
  border-radius:12px;
  background:rgba(255,255,255,.58);
  box-shadow:inset 0 1px 2px rgba(255,255,255,.72);
}
.sheet-quick-record .quick-category-panel>span:not(.record-cat-icon){
  display:block;margin:0;font-size:14px;line-height:1.2;
  font-weight:760;letter-spacing:-.025em;text-align:center;
}
@media(max-width:360px){
  .sheet-quick-record .sheet-head-quick{min-height:35px;padding:0 13px 1px}
  .sheet-quick-record .sheet-head-quick .icon-btn{width:40px;height:40px;min-width:40px;min-height:40px}
  .sheet-quick-record .quick-category-panel{min-height:50px;margin-bottom:10px;padding:6px 10px}
  .sheet-quick-record .quick-category-panel .record-cat-icon{width:33px;height:33px;flex-basis:33px}
}
