:root{color-scheme:light;--bg:#f6f5f1;--paper:#fffefa;--ink:#41463f;--muted:#82847d;--line:#e7e5de;--green:#646e61;--soft:#eeede7;--orange:#b86644;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit}button,label.photo-drop,.import-button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #c78f57;outline-offset:3px}button{color:inherit}a{color:inherit}input,textarea,select{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--paper);color:var(--ink);width:100%;min-width:0;font-size:16px}textarea{resize:vertical}h1,h2,h3,p{margin:0}h1{font-family:Georgia,"Songti SC","SimSun",serif;font-size:clamp(25px,3vw,38px);font-weight:500;letter-spacing:.02em;margin:8px 0 12px}h2{font-size:18px;font-weight:550;line-height:1.6}h3{font-size:15px;margin:24px 0 10px}.app-shell{max-width:1220px;margin:auto;padding:0 38px}.app-header{height:98px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:22px;font-weight:550;letter-spacing:3px}.brand small{display:block;letter-spacing:2.3px;font-size:9px;color:var(--muted);margin-top:5px}.brand-icon{width:43px;height:48px;display:grid;place-items:center;border:1px solid #9caa98;border-radius:22px 22px 15px 15px;font-size:20px;color:var(--green)}.local-badge{font-size:12px;display:flex;gap:8px;align-items:center;background:#eeede7;padding:9px 12px;border-radius:30px}.local-badge>span{width:6px;height:6px;border-radius:50%;background:#889977}.intro{display:flex;justify-content:space-between;align-items:center;padding:35px 0 28px;gap:16px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);margin-bottom:6px}.subtle{color:var(--muted);font-size:13px;line-height:1.7}.today-card{text-align:right;white-space:nowrap}.today-card span{display:block;font-size:12px;color:var(--muted)}.today-card strong{display:block;font-size:22px;font-weight:400;margin-top:7px}.main-nav{display:flex;gap:25px;margin-bottom:24px;border-bottom:1px solid var(--line)}.main-nav button{background:none;border:0;padding:14px 3px;color:var(--muted);border-bottom:2px solid transparent;min-height:44px}.main-nav button.active{border-color:var(--green);color:var(--green);font-weight:600}.workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:22px;align-items:start}.map-card,.record-card,.settings-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:25px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.small-button{border:1px solid #d9dfd2;background:transparent;border-radius:8px;padding:10px 12px;min-height:44px;white-space:nowrap;font-size:12px}.small-button[aria-pressed=true]{background:var(--green);color:white;border-color:var(--green)}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:22px 0 0;font-size:11px;color:var(--muted)}.map-mode{display:flex;background:var(--soft);padding:3px;border-radius:8px}.map-mode button{font-size:12px;border:0;background:none;border-radius:6px;min-height:36px;padding:6px 10px;color:var(--muted)}.map-mode button.active{background:var(--paper);color:var(--green);box-shadow:0 1px 4px #2032260b}.face-container{height:420px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin:10px 0}#face-map{width:100%;height:100%;touch-action:manipulation}.neck,.ear,.face-base{fill:#fffefa;stroke:#959c92;stroke-width:1.4}.region{stroke:#b4b7af;stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round;cursor:pointer;transition:fill .15s}@media(hover:hover) and (pointer:fine){.region:hover{stroke:#5d7164}}.features{pointer-events:none;fill:none;stroke:#9d9d8f;stroke-width:1.6;stroke-linecap:round}.features .nostril{fill:none;stroke:#747b72;stroke-width:1.1}.features .anatomy{stroke:#8b9287;stroke-width:1}.features .lip-outline{stroke:#82897f;stroke-width:1.1}.features .lip-seam{stroke:#697166;stroke-width:1.3}.region-text{fill:#465247;font-size:10px;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#fffefa;stroke-width:2px;stroke-linejoin:round}.region-text.selected-label{font-weight:bold;fill:#2f5640}.map-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;font-size:10px;color:var(--muted)}.map-legend span{display:flex;align-items:center;gap:4px}.map-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.tone-unknown{background:#fffefa;border:1px solid #b4b7af}.tone-selected{background:#d7c6af}.map-caption{font-size:11px;color:var(--muted);text-align:center;margin:12px 0 18px;line-height:1.6}.region-detail{background:#f0f3e9;border-radius:10px;padding:13px 15px;min-height:48px;font-size:12px;line-height:1.8}.region-list{margin-top:18px;border-top:1px solid var(--line);padding-top:15px}.region-list summary{font-size:12px;cursor:pointer;min-height:32px}.region-list summary span{float:right;color:var(--muted);font-size:10px}.region-list>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.region-list button{padding:8px 10px;min-height:44px;border:1px solid var(--line);background:transparent;border-radius:7px;font-size:12px}.region-list button[aria-pressed=true]{background:var(--green);color:white}.record-card .section-top{margin-bottom:23px}#selection-count{font-size:11px;background:var(--soft);padding:6px 9px;border-radius:20px;white-space:nowrap}form>label{display:block;margin-bottom:20px;font-size:12px}form>label input,form>label textarea{display:block;margin-top:9px}fieldset{border:0;padding:0;margin:0 0 20px}legend{font-size:12px;margin-bottom:10px}.selected-regions{display:flex;flex-wrap:wrap;gap:6px;min-height:36px;align-items:center}.selected-regions button{border:0;background:var(--soft);color:var(--green);padding:8px 10px;border-radius:7px;font-size:12px;min-height:36px}.optional{font-size:11px;color:var(--muted);margin-left:5px}.photo-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:9px}.photo-heading>span{color:var(--muted);font-size:11px}.photo-drop{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;background:#f7f8f2;border:1px dashed #ccd6c2;border-radius:10px;padding:16px;text-align:center}.photo-drop .plus{font-size:24px;font-weight:300;color:#738968}.photo-drop strong{font-weight:500;font-size:12px}.photo-drop>span:last-child{font-size:10px;color:var(--muted)}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.photo-item{position:relative;min-width:0}.photo-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}.photo-item>button{position:absolute;right:2px;top:2px;background:#fffefaed;border:0;border-radius:50%;width:32px;height:32px}.primary-button{width:100%;border:0;background:var(--green);color:#fffefa;border-radius:10px;padding:14px 18px;min-height:48px;margin-top:16px}.save-note{font-size:11px;color:var(--muted);line-height:1.8;margin-top:12px}.text-button{background:none;border:0;text-decoration:underline;padding:12px;min-height:44px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.history-heading{margin:28px 0 20px}.history-heading>label{display:flex;align-items:center;gap:10px;font-size:12px}.history-heading select{width:160px;font-size:14px}.comparison-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;color:var(--muted);font-size:12px}.history-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:16px}.history-card header{display:flex;justify-content:space-between;gap:10px}.history-card h3{margin:0;font-size:16px}.history-card .record-meta{font-size:12px;color:var(--green);margin:10px 0;line-height:1.8}.history-card .note{white-space:pre-wrap;font-size:13px;color:var(--muted);line-height:1.8;overflow-wrap:anywhere}.history-card .actions{display:flex;gap:5px}.history-card .actions button{font-size:12px;background:none;border:0;min-height:44px;padding:0 10px}.history-card .actions .delete{color:#a65a44}.history-photos{display:flex;gap:12px;margin-top:15px;flex-wrap:wrap}.history-photo{width:130px}.history-photo>button{width:100%;padding:0;background:none;border:0}.history-photo img{width:100%;height:120px;object-fit:cover;border-radius:8px}.history-photo label{display:flex;align-items:center;gap:6px;font-size:12px;min-height:38px}.history-photo input{width:18px;height:18px}.empty-state{text-align:center;padding:70px 20px;background:var(--paper);border:1px solid var(--line);border-radius:14px}.empty-state strong{display:block;font-weight:500;margin-bottom:10px}.empty-state p{color:var(--muted);font-size:13px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-card>p{line-height:1.9;margin-top:15px;font-size:13px}.settings-card dl{margin:24px 0}.settings-card dl>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:13px 0;font-size:13px}.settings-card dt{color:var(--muted)}.settings-card dd{margin:0}.notice{background:#f2eee0;padding:14px;border-radius:10px;color:#726546;font-size:12px;line-height:1.8}.error{color:#8e432b}.import-button{display:block;text-align:center;border:1px solid var(--line);border-radius:10px;padding:14px;margin-top:12px;font-size:13px}.settings-card ol{padding-left:22px;font-size:13px;line-height:2.3;margin-top:18px}footer{padding:30px 0 24px;margin-top:12px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between}footer>span{font-size:11px}#toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#283c33;color:white;padding:14px 22px;border-radius:12px;z-index:100;max-width:90vw;width:max-content;font-size:13px;box-shadow:0 4px 30px #0002}dialog{max-width:min(960px,94vw);width:900px;max-height:90dvh;border:0;border-radius:16px;padding:20px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#18231dc9}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}#dialog-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}#dialog-photos img{width:100%;max-height:65vh;object-fit:contain;background:var(--soft);border-radius:10px}#dialog-photos p{font-size:12px;line-height:1.8;margin-top:8px}[hidden]{display:none!important}
.focus-controls{display:flex;gap:6px;justify-content:center;margin-top:14px;flex-wrap:wrap}.focus-controls button{border:1px solid var(--line);background:var(--paper);padding:10px 13px;border-radius:8px;font-size:12px;min-height:44px}.focus-controls button[aria-pressed=true]{background:var(--soft);border-color:#a6b69c;color:var(--green)}.face-container[data-focus=nose]{height:280px}.face-container[data-focus=mouth]{height:330px}.face-container[data-focus=face] .small-region-label{display:none}.face-container:not([data-focus=face]) .small-region-label{font-size:7px;stroke-width:1px}.focus-region-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.focus-region-buttons button{min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:8px 10px;font-size:12px}.focus-region-buttons button[aria-pressed=true]{background:#d7c6af;border-color:#587c9b;color:#243f57}.region-list button[aria-pressed=true]{background:#d7c6af;border-color:#587c9b;color:#243f57}.selected-regions button{background:#e8e6dd;color:#50564e}.legacy-notice{font-size:12px;line-height:1.8;color:#847357;margin-top:12px}
@media(max-width:800px){.app-shell{padding:0 18px}.app-header{height:80px}.intro{padding:26px 0 20px}.today-card{display:none}.workspace,.settings-grid{grid-template-columns:1fr}.map-card,.record-card,.settings-card{padding:20px}.face-container{height:400px}.section-top h2{font-size:16px}.history-heading{align-items:flex-start}.history-heading>label{flex-direction:column;align-items:flex-start}.map-caption{font-size:10px}.main-nav{gap:20px}.record-card{scroll-margin-top:15px}.history-photo{width:110px}.history-photo img{height:110px}}@media(max-width:380px){.app-shell{padding:0 12px}.map-card,.record-card{padding:15px}.section-top{align-items:flex-start;flex-wrap:wrap}.map-toolbar{font-size:10px}.face-container{height:350px}.map-mode button{padding:6px}.history-heading{flex-wrap:wrap}.history-card{padding:15px}.main-nav{gap:14px}}

/* Calendar and daily summary */
.journal-calendar{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:23px 25px 0;margin-bottom:22px;overflow:hidden;min-width:0}
.calendar-heading,.calendar-actions,.summary-actions,.month-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.calendar-heading h2{font-size:23px;letter-spacing:-.5px}.calendar-actions{gap:6px}.calendar-link{background:none;border:0;min-height:44px;padding:8px 10px;color:var(--green);font-size:13px;white-space:nowrap}
.date-axis{display:flex;align-items:center;gap:8px;margin:18px 0 8px;min-width:0}.axis-arrow{background:transparent;border:0;flex:none;width:32px;min-height:44px;font-size:27px;font-weight:300;color:var(--muted);border-radius:9px}.axis-arrow:hover{background:var(--soft)}
.date-strip{position:relative;display:flex;flex:1;gap:8px;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding:5px 0 9px;-webkit-overflow-scrolling:touch}.date-strip::-webkit-scrollbar,.month-pages::-webkit-scrollbar{display:none}
.strip-day{flex:0 0 57px;min-height:114px;padding:10px 0 8px;border:1px solid transparent;border-radius:30px;background:#f3f3ef;display:flex;align-items:center;flex-direction:column;gap:7px;scroll-snap-align:center}.day-week{font-size:11px;color:var(--muted)}.day-number{font-size:21px;font-weight:500;line-height:1.3}.day-month{font-size:10px;color:var(--muted)}.strip-day[aria-pressed=true]{background:#e8e6dd;border-color:#b9b9ac}.strip-day[aria-current=date] .day-number{color:var(--green);font-weight:750}.strip-day[aria-pressed=true] .day-number{color:#50564e}
.date-dots{display:flex;align-items:center;justify-content:center;gap:4px;min-height:8px}.entry-dot,.photo-dot{display:inline-block;width:6px;height:6px;border-radius:50%;flex:none}.entry-dot{background:#bb7066}.photo-dot{background:#8977b2}.calendar-key{display:flex;justify-content:center;gap:15px;font-size:10px;color:var(--muted);margin-bottom:18px}.calendar-key>span{display:flex;gap:5px;align-items:center}
.month-calendar{max-width:460px;margin:0 auto 20px;border-top:1px solid var(--line);padding-top:10px}.month-toolbar{margin-bottom:6px}.month-toolbar h3{margin:0;font-size:16px}.month-pages{position:relative;display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.month-page{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:3px}.month-weekdays{font-size:11px;color:var(--muted);padding:10px 0}.month-day{min-height:46px;border:1px solid transparent;border-radius:14px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:4px 0}.month-day .day-number{font-size:15px}.month-day.outside-month{visibility:hidden}.month-day[aria-current=date]{border-color:#9cae99}.month-day[aria-pressed=true]{background:#e8e6dd;border-color:#b9b9ac;color:#50564e}
.day-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 -25px;padding:18px 25px;background:#f1f0eb;border-top:1px solid var(--line)}.day-summary>div:first-child{min-width:0}.day-summary h3{margin:0;font-size:15px;font-weight:550}.day-summary #day-summary-detail{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.6;overflow-wrap:anywhere}.day-summary .eyebrow{font-size:10px;letter-spacing:1px}.summary-actions{flex:none;gap:4px}.summary-actions .small-button{background:var(--paper);border-radius:20px}
.history-scope{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin-bottom:12px;font-size:13px;color:var(--muted)}
.time-legend{display:flex;align-items:flex-start;gap:14px;max-width:440px;margin:auto;padding:5px 0 8px}.gradient-scale{flex:1;min-width:0}.time-gradient{height:10px;border-radius:10px}.gradient-ticks{position:relative;height:16px;margin-top:8px;font-size:10px;color:var(--muted)}.gradient-ticks span{position:absolute;white-space:nowrap;transform:translateX(-50%)}.gradient-ticks span:first-child{left:0;transform:none}.gradient-ticks span:nth-child(2){left:23.333%}.gradient-ticks span:nth-child(3){left:46.667%}.gradient-ticks span:last-child{right:0;transform:none}.unknown-key{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:5px;white-space:nowrap}.unknown-key i{display:inline-block;width:10px;height:10px;border-radius:3px}
@media(max-width:800px){.journal-calendar{padding:18px 16px 0}.calendar-heading h2{font-size:20px}.calendar-link{padding:8px 7px;font-size:12px}.date-axis{gap:2px;margin-top:12px}.axis-arrow{width:25px}.strip-day{flex-basis:49px;min-height:108px}.date-strip{gap:6px}.day-summary{margin:0 -16px;padding:16px;align-items:flex-start;flex-direction:column;gap:8px}.summary-actions{width:100%;justify-content:space-between}.calendar-key{gap:12px}.time-legend{gap:8px}.history-card .actions button{padding:0 5px;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
/* Let date selection preserve its position; reveal clipped dates with JS smooth scrolling. */
.date-strip{scroll-snap-type:none;overflow-anchor:none}
#face-map,#face-map .region{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
.photo-item>.photo-preview{position:static;display:block;width:100%;height:auto;background:transparent;border:0;border-radius:8px;padding:0;text-align:center;overflow:hidden}.photo-preview span{display:block;font-size:11px;color:var(--muted);padding:7px 0}.photo-item>.photo-remove{z-index:1}
.day-record-picker{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.day-record-picker>p{width:100%;margin-bottom:3px}.day-record-picker>button{border:1px solid var(--line);border-radius:12px;background:var(--paper);min-height:44px;padding:10px 14px;font-size:12px}.day-record-picker>button[aria-pressed=true]{background:#e8e6dd;border-color:#b9b9ac;color:#50564e}.edit-status{font-size:12px;color:var(--green);line-height:1.7;min-height:21px;margin-top:8px}.inline-editor-host:not(:empty){margin-top:16px}.inline-workspace{gap:14px}.inline-workspace .map-card,.inline-workspace .record-card{padding:18px}.inline-workspace .record-card{order:-1}.inline-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:800px){.inline-workspace{grid-template-columns:minmax(0,1fr)}.inline-workspace .map-card,.inline-workspace .record-card{padding:15px}.history-card:has(.inline-workspace){padding:14px}}
.period-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:9px}.period-picker button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:16px}.period-picker button[aria-pressed=true]{background:#e8e6dd;border-color:#b9b9ac;color:#50564e;font-weight:600}.period-field .subtle{font-size:11px}.day-record-picker>.day-period{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px}.day-period strong{font-size:20px;font-weight:550}.day-period span{font-size:11px;color:var(--muted)}.legacy-period-note{width:100%;font-size:11px;color:var(--muted);line-height:1.8;padding-top:5px}
.frequency-controls{margin:18px 0 8px;padding:14px 16px;background:#f0efea;border-radius:12px}.frequency-controls label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.frequency-controls strong{font-weight:600;color:#50564e}.frequency-controls input{display:block;width:100%;height:44px;padding:0;margin:2px 0;accent-color:#668da9;cursor:pointer}.range-endpoints{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.frequency-legend{display:flex;align-items:center;gap:10px;max-width:320px;margin:0 auto 16px;font-size:11px;color:var(--muted)}.frequency-legend i{height:9px;border-radius:8px;flex:1;background:linear-gradient(90deg,#c7dfcd,#dc918c)}.area-timeline{margin-top:18px;padding:18px 16px;background:#f4f3ee;border-radius:12px}.area-timeline h3{margin:0 0 5px;font-weight:550}.area-timeline ol{list-style:none;margin:20px 0 0;padding:0 0 0 8px}.area-timeline li{position:relative;border-left:1px solid #d3d2c8;padding:0 0 22px 19px;display:grid;gap:5px;font-size:12px}.area-timeline li:last-child{padding-bottom:0}.area-timeline li:before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#b3b8a6;left:-4px;top:5px}.area-timeline time{color:#7b7f74;font-size:11px}.area-timeline strong{font-weight:500;overflow-wrap:anywhere}.area-timeline li span,.area-timeline li p{color:var(--muted);line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.area-timeline .timeline-empty{border:0;padding:0;color:var(--muted)}.area-timeline .timeline-empty:before{display:none}
.face-container[data-focus=face][data-mode=frequency] .small-region-label,.face-container[data-focus=face][data-mode=inspect] .small-region-label{display:block;font-size:7px;stroke-width:1px}
.record-page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:13px;color:var(--muted)}.record-page-heading .calendar-link{padding-left:0}#summary-visualization{max-width:760px;margin:auto}.map-card[data-context=analysis] .map-mode{grid-template-columns:repeat(2,minmax(0,1fr))}.map-card[data-context=entry] .map-mode{display:none}
.map-context-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;font-size:11px;color:var(--muted)}.map-context-badge{border-radius:6px;background:#e9eee1;color:#456656;font-size:11px;font-weight:600;padding:5px 9px;letter-spacing:1px}.map-card[data-context=analysis]{background:#fffefa;border-color:#e7e5de}.map-card[data-context=analysis] .map-context-badge{background:#eeece5;color:#697065}.map-card[data-context=analysis] #map-title{color:#50564e}.map-card[data-context=analysis] .face-container{background:#f3f2ed;border:1px solid #e7e5de;border-radius:18px}.map-card[data-context=entry] .face-container{background:#fffefa}.region-list summary b{font-weight:400}
.period-preview{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;margin:-4px 0 22px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.period-preview strong{font-size:14px;font-weight:550}.period-preview p{margin-top:5px;font-size:12px}.period-preview .small-button{flex:none;color:#50564e;border-color:#d3d2c8}.map-context-heading{flex-wrap:wrap}#analysis-entry-action{padding:8px 12px;min-height:40px;background:#eeece5;color:#50564e;border-color:#d3d2c8}#map-context-metric{margin-left:auto}.face-container{position:relative;padding-top:44px}#zoom-button{position:absolute;right:10px;top:7px;z-index:2;min-height:36px;padding:6px 9px;font-size:11px;background:var(--paper)}
.frequency-controls{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);padding:8px 16px}.frequency-controls button{display:flex;align-items:center;gap:10px;min-height:44px;border:0;background:none;color:#50564e;padding:8px 0 8px 16px}.frequency-controls button strong{font-size:14px}
.days-dialog{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,460px);max-width:100%;max-height:90dvh;padding:8px 18px max(24px,env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:#fcfbf7}.days-dialog::backdrop{background:#182b3d66}.days-dialog-header{display:flex;align-items:center;justify-content:space-between}.days-dialog-header h2{font-size:16px}.days-dialog-header button{min-height:44px;padding:8px 12px;border:0;background:none;color:#697065}.days-dialog-header button:last-child{font-weight:600}.days-wheel-frame{height:220px;position:relative;margin:12px 0;overflow:hidden}.days-wheel{height:220px;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none;padding:88px 0;position:relative;touch-action:pan-y;mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent)}.days-wheel::-webkit-scrollbar{display:none}.days-wheel [role=option]{height:44px;display:flex;align-items:center;justify-content:center;scroll-snap-align:center;color:#92958c;font-size:21px;cursor:pointer;user-select:none}.days-wheel [aria-selected=true]{color:#50564e;font-weight:600}.days-wheel-highlight{position:absolute;top:88px;left:0;right:0;height:44px;background:#eeece5;border-radius:10px;pointer-events:none}
@media(max-width:380px){#map-context-metric{flex-basis:100%;text-align:right;font-size:10px}}
.map-context-heading{display:grid;grid-template-columns:auto 1fr;align-items:center}.map-context-badge{grid-column:1;grid-row:1;justify-self:start}#map-context-metric{grid-column:2;grid-row:1;text-align:right}#analysis-entry-action{grid-column:1/-1;grid-row:2;justify-self:stretch;text-align:left;font-size:13px;padding:10px 12px}#analysis-entry-action::after{content:"›";float:right;font-size:18px;line-height:18px}#calendar-entry-action{flex:none;min-width:70px;border-radius:22px;background:var(--paper)}
.map-context-heading{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}#analysis-date{grid-column:2;grid-row:1;justify-self:center;font-size:12px;white-space:nowrap;color:#7b7f74}#map-context-metric{grid-column:3;font-size:10px}
#face-container>#day-record-picker{position:absolute;top:8px;left:9px;z-index:2;margin:0;gap:4px;flex-wrap:nowrap;background:#ffffffa6;border-radius:10px;padding:2px}
#face-container .day-period{width:36px;min-height:40px;padding:5px 8px;border-radius:8px;gap:2px;align-items:center;justify-content:center;flex:none;position:relative;background:transparent;border-color:transparent}
#face-container .day-period strong{font-size:14px;font-weight:500}
#face-container .day-period[aria-pressed=true]{background:#e8e6dd;border-color:#b9b9ac}
#face-container .day-period[data-recorded=true]::after{content:"";width:4px;height:4px;border-radius:50%;background:#759487;position:absolute;bottom:3px}
#face-container>#analysis-entry-action{position:absolute;top:57px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);min-height:34px;padding:6px 12px;text-align:center;font-size:12px;border:0;background:transparent;color:#697065;z-index:2}
#face-container>#analysis-entry-action::after{float:none;margin-left:8px;font-size:15px}
.map-card[data-context=analysis] .face-container{height:450px;padding-top:94px}
.map-card[data-context=analysis] .face-container[data-focus=nose]{height:330px}
.map-card[data-context=analysis] .face-container[data-focus=mouth]{height:380px}
.map-card[data-context=entry] #day-record-picker,.map-card[data-context=entry] #legacy-record-picker{display:none}
@media(max-width:380px){#analysis-date{font-size:11px}.map-context-heading{gap:5px}#map-context-metric{font-size:9px}}
.map-context-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:0}.map-context-heading h2{font-size:17px;font-weight:600}.map-context-heading #map-context-metric{font-size:11px;white-space:nowrap;margin-left:auto;flex-basis:auto}
.map-card[data-context=analysis] .map-mode{grid-template-columns:repeat(3,minmax(0,1fr))}
.map-card[data-context=analysis] .face-container{height:400px;padding-top:44px}
.map-card[data-context=analysis] .face-container[data-focus=nose]{height:280px}
.map-card[data-context=analysis] .face-container[data-focus=mouth]{height:330px}
.map-card[data-context=analysis] .face-container[data-mode=daily]{height:450px;padding-top:94px}
.map-card[data-context=analysis] .face-container[data-mode=daily][data-focus=nose]{height:330px}
.map-card[data-context=analysis] .face-container[data-mode=daily][data-focus=mouth]{height:380px}
#face-container .day-period{width:40px;min-height:44px}
/* Keep the zoom action legible in both pressed states. */
#zoom-button,#zoom-button[aria-pressed=true]{color:var(--green);background:var(--paper)}
.map-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.map-toolbar>.map-mode{grid-column:1/-1;grid-row:1;display:grid}
.map-toolbar>span:first-child{grid-column:1;grid-row:2}
.map-toolbar>span:last-child{grid-column:2;grid-row:2;text-align:right}
.map-card[data-context=entry] .map-toolbar>span{grid-row:1}
.map-mode button{position:relative}
#mode-inspect::before,#mode-frequency::before{content:"";position:absolute;left:0;top:25%;height:50%;width:1px;background:#d0cec3;pointer-events:none;z-index:1}
.date-input-wrap{position:relative;display:block;width:100%}.date-input-icon{position:absolute;right:13px;top:50%;transform:translateY(-50%);width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;pointer-events:none}#record-date{position:relative;padding-right:44px;cursor:pointer;user-select:none;-webkit-user-select:none}#record-date::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:auto;height:auto;opacity:0;cursor:pointer}
.frequency-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:0;background:none}
.frequency-controls #frequency-days{display:flex;justify-content:space-between;gap:4px;min-width:0;min-height:48px;width:100%;padding:8px 10px;background:#f0efea;border-radius:12px;white-space:nowrap;font-size:12px}
.frequency-controls #frequency-days strong{font-size:13px}
.frequency-unit{display:grid;grid-template-columns:1fr 1fr;min-width:0;background:#f0efea;border-radius:12px;padding:4px}
.frequency-controls .frequency-unit button{display:block;min-width:0;min-height:40px;padding:6px 2px;white-space:nowrap;text-align:center;border-radius:8px;font-size:12px;color:var(--muted)}
.frequency-controls .frequency-unit button+button{border-left:1px solid #d3d2c8}
.frequency-controls .frequency-unit button[aria-pressed=true]{background:var(--paper);color:#50564e;font-weight:600}
.area-timeline{min-width:0;overflow:hidden}.area-timeline .calendar-heading{margin-top:14px}.area-timeline .calendar-heading h4{margin:0;font-size:16px;white-space:nowrap}.area-timeline .calendar-actions{gap:0}.area-timeline .calendar-link{font-size:12px;padding:8px 5px}.area-timeline .date-axis{margin-top:8px}
@media(max-width:360px){.frequency-controls{gap:6px}.frequency-controls #frequency-days{padding:8px 6px;font-size:10px}.frequency-controls #frequency-days strong{font-size:11px}.frequency-controls .frequency-unit button{font-size:10px}.area-timeline{padding:16px 10px}.area-timeline .calendar-heading h4{font-size:14px}.area-timeline .calendar-link{font-size:11px;padding:8px 3px}}
.date-strip{padding:25px 10px;align-items:center;gap:16px}
.strip-day,.month-day{background:var(--date-fill,#f3f3ef);transition:transform .32s cubic-bezier(.22,.8,.25,1),background-color .32s ease}
.strip-day{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:16px minmax(0,1fr) 14px;justify-items:center;align-items:center;height:114px;padding:12px 0;gap:7px}
.strip-day .day-week{grid-column:1;grid-row:1}
.strip-day .day-number{grid-column:1;grid-row:2;line-height:1;font-variant-numeric:tabular-nums;z-index:1}
.strip-day .day-month{grid-column:1;grid-row:3}
@media(max-width:800px){.strip-day{height:108px}}
.strip-day{transform:scale(.92);border-color:transparent}
.strip-day .day-number{transition:transform .32s cubic-bezier(.22,.8,.25,1)}
.strip-day[aria-pressed=true],.month-day[aria-pressed=true]{background:var(--date-fill,#eaeae2);border-color:transparent;color:var(--ink);box-shadow:none;position:relative;z-index:1}
.strip-day[aria-pressed=true]{transform:scale(1.24)}
.strip-day[aria-pressed=true] .day-number{color:var(--ink);font-weight:750;transform:scale(1.12)}
.month-day[aria-pressed=true]{transform:scale(1.05);font-weight:650}
.month-day[aria-current=date]{border-color:transparent}
.month-page{padding:4px}.month-day.outside-month{visibility:hidden}
.strip-day,.month-day{position:relative;isolation:isolate}
.date-status-mark{position:absolute;border-radius:50%;background:repeating-linear-gradient(135deg,#ffffff55 0 2px,transparent 2px 5px),var(--status-color);opacity:.8;pointer-events:none;z-index:-1}
.strip-day .date-status-mark{position:relative;grid-column:1;grid-row:2;width:calc(100% - 8px);aspect-ratio:1;left:auto;top:auto;transform:none;z-index:0}
.month-day.has-record{background:color-mix(in srgb,var(--date-fill) 65%,#fffefa)}
.month-day.has-record[aria-pressed=true]{background:color-mix(in srgb,var(--date-fill) 82%,#fffefa)}
.rating-row{display:flex;align-items:center;gap:10px;max-width:285px}
.rating-picker{display:flex;flex:1;min-width:0}
.rating-picker .rating-star{flex:1;min-width:0;min-height:44px;padding:0;border:0;background:none;color:#dce1d8;font-size:32px;line-height:1;transition:color .16s ease,transform .16s ease;-webkit-tap-highlight-color:transparent}
.rating-picker .rating-star.filled{color:var(--rating-color)}
.rating-picker .rating-star:active{transform:scale(1.13)}
#rating-label{font-size:12px;color:var(--muted);white-space:nowrap}
@media(max-width:600px){.main-nav{gap:0;justify-content:space-between}.main-nav button{font-size:12px;padding:12px 2px;white-space:nowrap}.map-card[data-context=entry] .map-toolbar>span{grid-row:1}}
@media(max-width:600px){.map-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:10px}.map-toolbar>span:last-child{text-align:right;grid-column:2;grid-row:2}.map-toolbar>span:first-child{grid-row:2}.map-mode{grid-row:1;grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}.map-mode button{min-height:44px;padding:6px 4px}}
/* Analysis values remain legible in the full-face overview and local zoom. */
#analysis-highlight{pointer-events:none}
#analysis-highlight path{fill:none;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.analysis-outline-halo{stroke:#fffefa;stroke-width:7px}
.analysis-outline{stroke:#3b6256;stroke-width:3.5px}
.face-container .region-text{fill:#26382e;font-size:19px;font-weight:750;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-variant-numeric:tabular-nums;paint-order:stroke fill;stroke:#fffefa;stroke-width:1.8px;stroke-linejoin:round}
.face-container[data-focus=face][data-mode=frequency] .small-region-label,.face-container[data-focus=face][data-mode=inspect] .small-region-label{font-size:16px;stroke-width:1.6px}
.face-container:not([data-focus=face]) .region-text{font-size:11px;stroke-width:1.3px}
.face-container:not([data-focus=face]) .small-region-label{font-size:9px;stroke-width:1.1px}
#time-legend{flex-wrap:wrap;gap:9px}
#time-legend .gradient-scale{flex-basis:100%}
#time-legend .gradient-ticks span:nth-child(2){left:50%}
#time-legend .gradient-ticks span:last-child{left:auto;right:0}
#time-legend .unknown-key{margin-left:auto}
#time-legend .unknown-key i{width:24px}
/* Compare scores together; switch face and photo dates in place. */
#state-comparison{max-width:760px;margin:0 auto}
#compare-journal-calendar{margin-bottom:22px}
.compare-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.compare-slot{border:1px solid transparent;background:#f4f3ee;border-radius:14px;padding:13px 10px;display:flex;flex-direction:column;gap:7px;min-height:66px;text-align:left}
.compare-slot>span{font-size:11px;color:var(--muted)}.compare-slot strong{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}
.compare-slot[aria-pressed=true]{background:#eae8de;border-color:#c4c6b9}
#compare-journal-calendar [data-comparison]::after{content:attr(data-comparison);position:absolute;top:3px;right:3px;font-size:9px;line-height:15px;width:15px;text-align:center;background:#fffefaeb;border-radius:50%;color:var(--ink)}
#compare-journal-calendar .comparison-active{box-shadow:none}
.comparison-sections{display:grid;gap:20px}
.comparison-section{min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:22px}
.comparison-section h2{margin-bottom:16px}
.comparison-score-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:50px}
.comparison-score-row+ .comparison-score-row{border-top:1px solid var(--line)}
.comparison-score-row time{font-size:14px;font-variant-numeric:tabular-nums}
.comparison-score{font-size:25px;letter-spacing:2px;white-space:nowrap}
.comparison-date-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:var(--soft);padding:4px;border-radius:10px;margin-bottom:16px;position:relative}
.comparison-date-switch::before{content:"";width:1px;height:18px;position:absolute;left:50%;top:50%;transform:translateY(-50%);background:#d1d0c5}
.comparison-date-switch button{border:0;border-radius:7px;min-height:42px;padding:8px;background:transparent;color:var(--muted);z-index:1;transition:background-color .18s,color .18s}
.comparison-date-switch button[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 4px #343b2c08}
.comparison-face{height:400px;background:#f3f2ed;border:1px solid var(--line);border-radius:15px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.comparison-face svg{width:100%;height:100%;display:block}.comparison-face .region{cursor:default}
.comparison-photo-body{display:grid;gap:20px}
.comparison-photo-period h3{font-size:13px;font-weight:500;color:var(--muted);margin:0 0 9px}
.comparison-photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.comparison-single-column{min-width:0}
.comparison-single-heading{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:550;margin:0 0 12px}
.comparison-single-heading span{font-size:12px;color:var(--muted);font-weight:400}
.comparison-photo-cell{display:block;width:100%;aspect-ratio:1;background:#f1f0ea;border:0;padding:0;border-radius:12px;overflow:hidden}
.comparison-photo-cell img{width:100%;height:100%;object-fit:contain;display:block}
.comparison-empty{display:grid;place-items:center;color:var(--muted);font-size:13px}
#draft-photos{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:600px){.comparison-section{padding:18px}.comparison-section h2{font-size:16px}.compare-slot strong{font-size:14px}.comparison-face{height:340px}.comparison-photo-pair{gap:10px}.comparison-score{font-size:23px;letter-spacing:1px}.comparison-date-switch button{font-size:13px}}
/* Cloud settings use the same quiet surfaces as the local journal. */
.cloud-card form{display:grid;gap:14px}.cloud-card label{display:grid;gap:7px;font-size:14px}.cloud-card input{width:100%;box-sizing:border-box;border:1px solid #dcded7;border-radius:12px;padding:12px;background:#fffefa;color:#324439;font:inherit}.cloud-card p{overflow-wrap:anywhere}.cloud-card a{color:#456656}.sync-actions{display:flex;align-items:center;gap:16px;margin-top:14px}.sync-actions[hidden]{display:none}.conflict-choice{width:100%;display:grid;gap:8px;text-align:left;margin:8px 0;padding:14px;border:1px solid #ddd;border-radius:12px;background:#fffefa;color:#34483c;white-space:pre-wrap}.conflict-choice[aria-pressed="true"]{background:#e6eee4;border-color:#6e8b76}.conflict-choice span{font-size:13px;line-height:1.6}#sync-conflicts fieldset{border:0;padding:0;margin:18px 0}#sync-status{font-size:14px;font-weight:600}.cloud-card input:disabled{opacity:.65}
.usage-list{margin:20px 0!important}.usage-list>div{display:block!important;padding:12px 0!important}.usage-list dt{font-size:14px;font-weight:600;color:#3c4d42}.usage-list dd{font-size:13px;line-height:1.7;text-align:left!important;margin:6px 0 0!important;font-weight:400!important;color:#738075}.settings-reset{margin:30px auto 0;text-align:center;max-width:480px}.settings-reset button{width:100%;padding:15px;border-radius:14px;border:1px solid #dec9c3;background:#fffefa;color:#ad5850;font:inherit;font-weight:500;cursor:pointer}.settings-reset button:disabled{opacity:.45;cursor:wait}.settings-reset p{font-size:12px;color:#8a8d84;margin:10px 0}
.clear-dialog{width:min(460px,calc(100vw - 32px));box-sizing:border-box;padding:26px;border:0;border-radius:22px;background:#fffefa;color:#35463c}.clear-dialog::backdrop{background:rgba(30,40,34,.3)}.clear-dialog h2{margin:0 0 22px;font-size:20px}.clear-option{display:flex;align-items:flex-start;gap:12px;padding:18px 14px;margin:12px 0;border:1px solid #e5e8e0;border-radius:14px;cursor:pointer}.clear-option:has(input:checked){border-color:#94a692;background:#f3f6ef}.clear-option:has(input:disabled){opacity:.45;cursor:default}.clear-option input{margin:4px 0 0;accent-color:#6c846b;width:18px;height:18px;flex-shrink:0}.clear-option strong{display:block;font-size:15px;font-weight:600}.clear-option small{display:block;margin-top:8px;font-size:13px;line-height:1.65;color:#798178}.clear-actions{display:flex;gap:12px;margin-top:24px}.clear-actions button{flex:1;padding:12px;border-radius:12px;font:inherit;cursor:pointer}.clear-actions #confirm-clear{background:#ad5850;color:white;border:0}.clear-actions #confirm-clear:disabled{opacity:.4;cursor:default}#clear-confirmation{white-space:pre-line;font-size:14px;line-height:1.8;color:#677368}
.sync-actions{gap:14px;flex-wrap:nowrap;font-size:13px}.sync-actions .primary-button{flex:0 0 auto;width:auto;margin:0;padding:10px 14px;min-height:44px;white-space:nowrap;font-size:inherit}.sync-actions .text-button{flex:0 0 auto;padding:10px 0;min-height:44px;font-size:inherit;text-underline-offset:3px;white-space:nowrap}.sync-actions button:disabled{opacity:.45;cursor:default}@media(max-width:480px){.sync-actions{gap:12px;font-size:12px}.sync-actions .primary-button{padding:10px 12px}}
