:root{--font-hand:"PingFang SC","Hiragino Sans GB",sans-serif;--font-round:"PingFang SC","Hiragino Sans GB",sans-serif;--font-display:var(--font-hand);--font-body:var(--font-round);--v1-ink:#34271f;--v1-muted:#7b6659;--v1-line:#34271f;--v1-cream:#fff9f1;--v1-yellow:#ffd66a;--v1-orange:#ee8a3a;--v1-green:#b7d69b;--v1-blue:#cfe8ed}
html,body{font-family:var(--font-round);background:var(--v1-cream);color:var(--v1-ink)}
.app-shell,.app-header,.global-nav,.screen-content{font-family:var(--font-round)}
.app-shell{background:var(--v1-cream);border-radius:0;box-shadow:none}
.app-header{height:60px;flex:0 0 60px;padding:0 20px;border-bottom:2px solid var(--v1-line);background:var(--v1-cream);backdrop-filter:none}
.brand-mark{font-family:var(--font-hand);font-size:21px;letter-spacing:.04em;color:var(--v1-ink)}
.brand-mark span{color:var(--v1-orange)}
.header-status{font-family:var(--font-round);font-size:11px;color:var(--v1-muted)}
.status-dot{background:var(--v1-orange);box-shadow:0 0 0 4px #ffe8c8}
.screen-content{padding:0 20px 6px!important;overflow:hidden!important}
.screen-anchor{padding-top:6px;overflow:visible}
.global-nav{height:82px;flex:0 0 82px;grid-template-columns:repeat(4,1fr);gap:5px;padding:5px 8px max(5px,env(safe-area-inset-bottom));border-top:3px solid var(--v1-line);background:var(--v1-cream);box-shadow:none}
.global-nav .nav-item{min-width:64px;min-height:56px;border:2px solid transparent;border-radius:20px;background:transparent;color:var(--v1-muted);gap:3px;font-family:var(--font-round)}
.global-nav .nav-item img{width:30px;height:30px;object-fit:contain;opacity:.68;filter:none}
.global-nav .nav-item small{font-family:var(--font-hand);font-size:14px;font-weight:500;color:currentColor}
.global-nav .nav-item.is-active{background:var(--v1-yellow);border-color:var(--v1-ink);box-shadow:0 3px 0 rgba(52,39,31,.18);color:var(--v1-ink)}
.global-nav .nav-item.is-active img{opacity:1}

.host-view{height:100%;min-height:0;overflow:hidden;color:var(--v1-ink);font-family:var(--font-round)}
.host-view h2,.host-view h3,.host-view strong,.host-view button,.host-view .eyebrow{font-family:var(--font-hand)}
.host-view h2{font-size:31px;line-height:1;margin:0;letter-spacing:.02em}
.host-view h3{font-size:20px;line-height:1.05;margin:0}
.host-page-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;margin:0 0 6px;padding:0 2px}
.host-page-head>div:first-child{min-width:0}
.host-view .eyebrow{color:var(--v1-muted);font-size:11px;letter-spacing:.04em;font-weight:500}
.target-pill{padding:6px 10px;border:2px solid var(--v1-ink);border-radius:999px;background:var(--v1-green);color:var(--v1-ink);font-family:var(--font-round);font-size:11px;font-weight:700}
.host-card,.status-box{border:2px solid var(--v1-line);border-radius:22px;background:#fffdf8;box-shadow:2px 3px 0 rgba(52,39,31,.10)}
.host-card{padding:10px 11px}
.status-box{padding:18px 14px;text-align:center}
.status-box strong{font-size:20px}
.status-box p{margin:8px 0;color:var(--v1-muted);font-size:13px;line-height:1.4}
.status-box button,.host-status button,.record-actions button{min-height:44px;border:2px solid var(--v1-ink);border-radius:14px;background:var(--v1-yellow);color:var(--v1-ink);padding:8px 13px;font-size:13px}

.host-v1-data{display:grid;grid-template-rows:46px 44px 58px minmax(0,1fr) auto auto;gap:6px}
.data-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:3px;border:2px solid var(--v1-line);border-radius:18px;background:#f0e4d4}
.data-tab{min-height:44px;border-radius:13px;background:transparent;color:var(--v1-muted);font-size:14px}
.data-tab.is-active{background:var(--v1-yellow);color:var(--v1-ink);border:2px solid var(--v1-ink);font-weight:500}
.data-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.data-summary>div{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:6px 8px;border:2px solid var(--v1-line);border-radius:16px;background:#fff2ca}
.data-summary span,.record-date-note{font-size:11px;color:var(--v1-muted)}
.data-summary strong{font-size:20px;line-height:1.05;white-space:nowrap}
.data-summary small{font-family:var(--font-round);font-size:11px}
.record-date-note{margin:-2px 2px 0;line-height:1}
.data-panel{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto}
.data-form-card,.pvt-card{height:auto;min-height:100%;display:flex;flex-direction:column;gap:7px;padding:10px}
.data-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.data-card-head>div{min-width:0}
.step-count{color:var(--v1-muted);font-size:11px;white-space:nowrap}
.data-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:7px;min-width:0}
.data-field{display:flex;flex-direction:column;justify-content:space-between;min-width:0;min-height:52px;padding:5px 7px;border:2px solid #dccab7;border-radius:14px;background:#fffaf1;color:var(--v1-ink);overflow:hidden}
.data-field>span{display:flex;align-items:center;gap:3px;min-height:17px;font-size:12px;line-height:1.1}
.data-field>span b{color:#c45e38}
.data-field>span em{font-family:var(--font-round);font-style:normal;color:var(--v1-muted);font-size:10px}
.data-field input,.data-field select,.data-field textarea{width:100%;min-width:0;max-width:100%;min-height:44px;border:0;outline:0;background:transparent;color:var(--v1-ink);font-family:var(--font-round);font-size:15px;box-sizing:border-box}
.data-field textarea{height:42px;resize:none;line-height:1.2}
.data-field input[type=time]{font-size:14px}
.data-step-actions{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:6px;margin-top:auto}
.data-step-actions button{min-height:44px;border:2px solid var(--v1-ink);border-radius:14px;background:#fff0d1;color:var(--v1-ink);padding:7px 10px;font-size:12px;white-space:nowrap}
.data-step-actions .primary-button{background:var(--v1-orange);color:#fff;border-color:var(--v1-ink);font-size:14px}
.draft-note{margin:0;padding:4px 7px;border-radius:8px;background:var(--v1-blue);color:var(--v1-ink);font-size:11px}
.form-error{min-height:14px;margin:0;color:#b94e39;font-size:11px;line-height:1.25}
.pvt-copy{margin:0;padding:5px 7px;border-radius:10px;background:#f5eadb;color:var(--v1-muted);font-size:11px;line-height:1.3}
.pvt-start{min-height:44px!important;border:2px solid var(--v1-ink)!important;background:var(--v1-orange)!important;color:#fff!important}
.pvt-result{display:flex;flex-wrap:wrap;gap:6px;padding:7px;border:2px solid var(--v1-line);border-radius:13px;background:#fff2ca;font-size:11px}
.pvt-result strong{width:100%;font-size:14px}
.pvt-fixture-note{display:block;color:var(--v1-muted);font-size:10px;line-height:1.2}
.pvt-run-panel{display:flex;flex-direction:column;gap:6px;padding:8px;border:2px solid var(--v1-line);border-radius:16px;background:#fff2ca}
.pvt-run-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px}
.pvt-run-meta span{font-size:12px;color:var(--v1-ink)}
.pvt-run-meta strong{font-family:var(--font-round);font-size:20px}
.pvt-target{width:100%;min-height:54px;border:2px solid var(--v1-ink);border-radius:14px;background:#fffdf8;color:var(--v1-ink);font-family:var(--font-hand);font-size:17px}
.pvt-target:disabled{background:#f0e4d4;color:var(--v1-muted)}
.pvt-submitting{display:grid;place-items:center;min-height:54px;border:2px dashed var(--v1-muted);border-radius:14px;color:var(--v1-muted);font-size:13px}
.pvt-event{min-height:15px;margin:0;color:var(--v1-muted);font-size:10px;line-height:1.25}
.data-progress-strip{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:6px;min-width:0;min-height:34px;padding:5px 8px;border:2px solid var(--v1-line);border-radius:13px;background:var(--v1-blue);color:var(--v1-ink);font-size:10px;line-height:1.1}
.data-progress-strip span{color:var(--v1-muted);white-space:nowrap}
.data-progress-strip strong{font-family:var(--font-round);font-size:11px;white-space:nowrap}
.data-progress-strip small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inline-status{margin:0!important;padding:7px 9px;border:2px solid var(--v1-line);border-radius:13px;background:var(--v1-blue);color:var(--v1-ink);font-size:11px}

.host-v1-trends{display:grid;grid-template-rows:46px 40px 36px 38px minmax(0,1fr) auto auto;gap:5px}
.trend-ranges,.trend-groups,.trend-metrics{display:grid;gap:5px}
.trend-ranges{grid-template-columns:repeat(4,1fr);padding:3px;border:2px solid var(--v1-line);border-radius:17px;background:#f0e4d4}
.trend-groups{grid-template-columns:repeat(4,1fr)}
.trend-metrics{grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden}
.range-button,.group-button,.trend-metric{min-height:44px;border:2px solid transparent;border-radius:13px;background:transparent;color:var(--v1-muted);font-size:12px;white-space:nowrap}
.range-button.is-active,.group-button.is-active,.trend-metric.is-active{background:var(--v1-yellow);border-color:var(--v1-ink);color:var(--v1-ink)}
.trend-metric{border-color:#dccab7;background:#fffdf8;padding:3px 2px}
.trend-chart-card{min-height:0;display:flex;flex-direction:column;padding:9px 10px;overflow:hidden}
.trend-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:7px 0 5px}
.trend-summary>div{display:flex;flex-direction:column;gap:2px;min-width:0;padding:5px 6px;border-radius:12px;background:#fff2ca}
.trend-summary span{font-size:10px;color:var(--v1-muted);white-space:nowrap}
.trend-summary strong{font-size:14px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trend-summary small{font-family:var(--font-round);font-size:9px}
.trend-chart{position:relative;min-height:0;flex:1;border:2px solid #dccab7;border-radius:18px;background:repeating-linear-gradient(to bottom,#fffdf8 0,#fffdf8 24.5%,#f1e6d9 25%,#fffdf8 25.5%);overflow:hidden}
.trend-chart svg{position:absolute;inset:14px 10px 30px 42px;width:calc(100% - 52px);height:calc(100% - 44px);overflow:visible}
.trend-chart polyline{fill:none;stroke:var(--v1-orange);stroke-width:1.5;vector-effect:non-scaling-stroke}
.trend-chart circle{fill:var(--v1-orange);stroke:#fffdf8;stroke-width:1;vector-effect:non-scaling-stroke}
.trend-points{position:absolute;inset:14px 10px 30px 42px}
.trend-point{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border:0;border-radius:50%;background:transparent;padding:0}
.trend-point span{display:block;width:12px;height:12px;margin:16px;border:3px solid var(--v1-orange);border-radius:50%;background:#fffdf8}
.trend-point.is-selected span{background:var(--v1-yellow);box-shadow:0 0 0 3px var(--v1-ink)}
.trend-y-labels{position:absolute;left:6px;top:14px;bottom:30px;display:flex;flex-direction:column;justify-content:space-between;color:var(--v1-muted);font-size:9px;line-height:1;pointer-events:none}
.trend-y-labels span{white-space:nowrap}
.trend-x-labels{position:absolute;left:42px;right:10px;bottom:5px;height:14px;color:var(--v1-muted);font-size:9px;line-height:1;pointer-events:none}
.trend-x-labels span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.trend-range-state{display:grid;place-items:center;align-content:center;gap:7px;min-height:0;flex:1;padding:20px;text-align:center;color:var(--v1-muted)}
.trend-range-state strong{font-size:22px;color:var(--v1-ink)}
.trend-range-state p{max-width:240px;margin:0;font-size:12px;line-height:1.5}
.trend-empty{display:grid;place-items:center;min-height:0;flex:1;color:var(--v1-muted);font-size:13px}
.trend-recent{padding:8px 10px;min-height:0}
.trend-point-list{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:5px}
.trend-point-list button{min-height:42px;border:2px solid #dccab7;border-radius:12px;background:#fffaf1;color:var(--v1-ink);padding:4px 3px;display:flex;flex-direction:column;justify-content:center;gap:2px;font-size:10px}
.trend-point-list button.is-selected{border-color:var(--v1-ink);background:var(--v1-yellow)}
.trend-point-list strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.host-v1-calendar{display:grid;grid-template-rows:46px minmax(0,1fr) auto;gap:7px}
.month-actions{display:flex;gap:4px}
.month-actions button{min-width:44px;min-height:44px;flex:0 0 44px;border:2px solid var(--v1-ink);border-radius:14px;background:#fff0d1;color:var(--v1-ink);font-size:15px}
.month-actions button:nth-child(2){background:var(--v1-yellow);font-size:12px}
.month-card{min-height:0;display:flex;flex-direction:column;padding:9px 10px}
.month-title{display:flex;align-items:baseline;justify-content:space-between;gap:7px;margin-bottom:6px}
.month-title strong{font-size:19px}
.month-title span{color:var(--v1-muted);font-size:10px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(36px,1fr);gap:4px;min-height:0;flex:1}
.calendar-weekday{display:grid;place-items:center;color:var(--v1-muted);font-size:11px}
.calendar-cell{min-width:0;min-height:36px}
.calendar-cell>button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;height:100%;min-height:44px;padding:3px 1px;border:2px solid transparent;border-radius:11px;background:#fffaf1;color:var(--v1-ink);font-size:13px}
.calendar-cell.has-record>button{border-color:#e3c39b;background:#fff2ca}
.calendar-cell.is-selected>button{border-color:var(--v1-ink);background:var(--v1-yellow);box-shadow:2px 2px 0 rgba(52,39,31,.15)}
.calendar-cell.is-muted{visibility:hidden}
.calendar-meal-dots,.calendar-state-dots{display:flex;gap:2px;margin-top:2px}
.calendar-meal-dots i{display:block;width:5px;height:5px;border:1px solid #d77e48;border-radius:50%;background:transparent}
.calendar-meal-dots i.is-done{background:#e88b45}
.calendar-state-dots b{display:block;width:4px;height:4px;border:1px solid #7aa36d;border-radius:50%;background:transparent}
.calendar-state-dots b.is-done{background:#7aa36d}
.calendar-state-dots b.photo-dot{border:0;color:#cf7340;background:transparent;font-size:7px;line-height:4px}
.calendar-legend{display:flex;flex-wrap:wrap;gap:5px 9px;margin-top:6px;color:var(--v1-muted);font-size:10px}
.calendar-legend i{display:inline-block;width:7px;height:7px;margin-right:2px;border:1px solid #cf7340;border-radius:50%;vertical-align:middle}
.legend-meal{background:#e88b45}.legend-state{background:#7aa36d}.legend-sleep{background:#9fbe8f}.legend-pvt{background:#87aebe}
.calendar-hint{padding:9px 12px}
.calendar-hint strong{font-size:16px}.calendar-hint p{margin:3px 0;font-size:11px}
.calendar-detail-panel{min-height:0;display:flex;flex-direction:column;gap:4px;padding:7px 0 0}
.detail-panel-head{display:flex;align-items:center;justify-content:space-between;min-height:38px}
.detail-panel-head h3{font-size:18px}
.calendar-detail-panel .small-button{min-height:44px;border:2px solid var(--v1-ink);border-radius:14px;background:#fff0d1;color:var(--v1-ink);padding:7px 10px;font-size:12px}
.calendar-detail-carousel{display:flex;gap:7px;min-height:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding:2px 1px 5px;scrollbar-width:thin}
.calendar-detail-carousel>*{flex:0 0 calc(100% - 20px);scroll-snap-align:start}
.detail-card,.meal-detail-card{display:flex;flex-direction:column;gap:4px;min-height:95px;padding:9px;border:2px solid var(--v1-line);border-radius:17px;background:#fffdf8}
.detail-card strong,.meal-detail-head strong{font-size:16px}.detail-card span,.meal-detail-card p,.meal-detail-copy span{font-size:11px;color:var(--v1-muted)}
.meal-detail-head{display:flex;justify-content:space-between;align-items:center}.meal-status{padding:2px 6px;border-radius:999px;background:#eee4d9;color:var(--v1-muted);font-size:10px}.meal-status.is-done{background:var(--v1-green);color:var(--v1-ink)}
.meal-detail-copy{display:flex;flex-direction:column;gap:3px}.photo-safe-mark{color:#bd6a3e!important}
.detail-order-note{color:var(--v1-muted);font-size:9px;text-align:center}

@media(max-width:375px){
  .app-header{height:56px;flex-basis:56px;padding-inline:13px}.global-nav{height:80px;flex-basis:80px;padding-inline:5px}.global-nav .nav-item{min-width:58px}.global-nav .nav-item small{font-size:13px}.screen-content{padding-inline:11px!important}.host-view h2{font-size:28px}.host-v1-data{grid-template-rows:42px 42px 55px minmax(0,1fr) auto auto}.data-field{min-height:49px;padding:4px 6px}.data-field>span{font-size:11px}.data-field input,.data-field select,.data-field textarea{font-size:14px;min-height:44px}.data-progress-strip{font-size:9px}.data-progress-strip strong{font-size:10px}.trend-chart{min-height:250px}.trend-point-list strong{font-size:10px}.calendar-grid{grid-auto-rows:minmax(32px,1fr)}.calendar-cell,.calendar-cell>button{min-height:40px}.month-title strong{font-size:17px}.month-actions button{min-width:42px}.calendar-detail-carousel>*{flex-basis:calc(100% - 16px)}
}
@media(min-width:431px){.screen-content{padding-inline:20px!important}.host-v1-calendar .calendar-detail-carousel>*{flex-basis:calc(50% - 4px)}}
