.app-header{display:flex;align-items:center;gap:.75rem;height:var(--header-h);padding:0 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:50}.profile-avatar{width:36px;height:36px;border-radius:50%;color:#fff;font-weight:700;font-size:.9rem;border:2px solid transparent;opacity:.65}.profile-avatar.active{opacity:1;border-color:var(--color-text)}.header-title{font-weight:700;font-size:1.1rem}.header-title-center{flex:1;text-align:center}.theme-btn{font-size:1.25rem;padding:.25rem}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:flex;background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--color-text-muted);font-size:.65rem}.bottom-nav a.active{color:var(--color-brand)}.nav-icon{font-size:1.25rem}@media(min-width:900px){.bottom-nav{display:none}}.sidebar{display:none;width:220px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);padding:1.5rem 1rem}.sidebar-brand{font-weight:700;font-size:1.25rem;color:var(--color-brand);margin-bottom:2rem}.sidebar nav{display:flex;flex-direction:column;gap:.25rem}.sidebar a{padding:.65rem .75rem;border-radius:var(--radius-sm);text-decoration:none;color:var(--color-text)}.sidebar a.active{background:var(--color-brand);color:#fff}@media(min-width:900px){.sidebar{display:block}}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:200;display:flex;align-items:flex-end;justify-content:center}.sheet-panel{background:var(--color-surface);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:480px;padding:.75rem 1.25rem calc(1.25rem + var(--safe-bottom));max-height:85vh;overflow-y:auto;animation:slide-up .25s ease}.sheet-handle{width:40px;height:4px;background:var(--color-border);border-radius:2px;margin:0 auto 1rem}.sheet-title{margin:0 0 1rem;font-size:1.125rem}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.day-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.day-nav h1{font-size:1rem;margin:0;text-align:center;flex:1}.day-nav button{font-size:1.25rem;padding:.5rem;color:var(--color-brand)}.progress-wrap{position:relative;height:8px;background:var(--color-border);border-radius:4px;margin-bottom:1rem;overflow:hidden}.progress-bar{height:100%;background:var(--color-brand);transition:width .3s}.progress-label{display:block;font-size:.75rem;color:var(--color-text-muted);margin-top:.35rem}.undo-bar{width:100%;background:var(--color-text);color:var(--color-bg);padding:.5rem;border-radius:var(--radius-sm);margin-bottom:.75rem}.block-section{margin-bottom:1.25rem}.block-section h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:0 0 .5rem}.task-list{list-style:none;margin:0;padding:0}.task-list li{display:flex;align-items:center;gap:.5rem;padding:.65rem 0;border-bottom:1px solid var(--color-border)}.task-list li.done .task-title{text-decoration:line-through;opacity:.55}.task-list time{font-size:.8rem;color:var(--color-text-muted);min-width:2.75rem;font-variant-numeric:tabular-nums}.task-title{flex:1}.check-btn{font-size:1.25rem;padding:.25rem}.meal-note{margin-top:.75rem}.meal-note label{font-size:.8rem;color:var(--color-text-muted)}.meal-note textarea{width:100%;margin-top:.35rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.5rem;background:var(--color-surface);resize:vertical}.muted{color:var(--color-text-muted)}.schedule-page h1{margin:0 0 .5rem}.hint{color:var(--color-text-muted);font-size:.875rem;margin-bottom:1rem}.mode-picker{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.field{display:block;margin-bottom:1rem;font-size:.875rem;color:var(--color-text-muted)}.field input,.field textarea{display:block;width:100%;margin-top:.35rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.5rem;background:var(--color-surface)}.field textarea{font-family:ui-monospace,monospace;font-size:.85rem}.week-toggle{display:flex;gap:.5rem;margin-bottom:1rem}.week-toggle button{flex:1;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.week-toggle button.selected{border-color:var(--color-brand);background:var(--color-brand);color:#fff}.food-page h1{margin:0 0 1rem}.totals{margin-bottom:1rem;display:flex;flex-direction:column;gap:.25rem}.food-list{list-style:none;padding:0;margin:0 0 1rem}.food-list li{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.meal{font-size:.75rem;color:var(--color-brand);text-transform:uppercase}.search-input{width:100%;padding:.65rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:.5rem;background:var(--color-surface)}.product-suggest{list-style:none;padding:0;margin:0 0 1rem;background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.product-suggest button{width:100%;text-align:left;padding:.65rem 1rem;border-bottom:1px solid var(--color-border)}.food-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.camera-btns{display:flex;flex-direction:column;gap:.5rem}.analyze-card h3{margin:0 0 .5rem}.emotions-page h1{margin:0 0 1rem}.tab-bar{display:flex;gap:.5rem;margin-bottom:1rem}.tab-bar button{flex:1;padding:.5rem;border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border)}.tab-bar button.active{background:var(--color-brand);color:#fff;border-color:var(--color-brand)}.entry-form section{margin-bottom:1.25rem}.entry-form h2{font-size:1rem;margin:0 0 .35rem}.chip-grid{display:flex;flex-wrap:wrap;gap:.5rem}.chip.add-tag{border-style:dashed;color:var(--color-text-muted)}.chip.small{font-size:.75rem;padding:.2rem .5rem}.custom-tag-row{display:flex;gap:.5rem;margin-top:.5rem}.custom-tag-row input{flex:1;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.35rem .5rem}input[type=range]{width:100%;accent-color:var(--color-brand)}.intensity-val{font-size:.875rem;color:var(--color-text-muted)}.history-list{list-style:none;padding:0;margin:0}.history-list li{margin-bottom:.75rem}.history-list time{font-size:.8rem;color:var(--color-text-muted)}.history-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.history-tags .chip{pointer-events:none}.note{margin:.35rem 0 0;font-size:.9rem}.profile-page h1{margin:0 0 1rem}.profile-page .field{display:block;margin-bottom:1rem;font-size:.875rem;color:var(--color-text-muted)}.profile-page .field input{display:block;width:100%;margin-top:.35rem;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.profile-page .hint{color:var(--color-text-muted);font-size:.875rem}.setup-profiles{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.profile-page select{width:100%;margin-top:.5rem;padding:.5rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg)}.health-hint{margin-top:.75rem}.cycle-section{margin-top:1rem}.logout-btn{margin-top:2rem;width:100%;color:var(--color-danger)}.login-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{max-width:360px;width:100%;text-align:center}.login-card h1{color:var(--color-brand);margin:0 0 .5rem}.login-card p{color:var(--color-text-muted);margin-bottom:1.5rem}:root{--color-brand: #01696f;--color-brand-light: #028a92;--color-bg: #f5f5f0;--color-surface: #ffffff;--color-text: #1a1a18;--color-text-muted: #6b6b66;--color-border: #e0e0da;--color-success: #437a22;--color-warning: #da7101;--color-danger: #a13544;--tag-medicine: #7a39bb;--tag-sport: #006494;--tag-food: #d19900;--radius: 12px;--radius-sm: 8px;--shadow: 0 2px 12px rgba(0, 0, 0, .08);--header-h: 56px;--nav-h: 64px;--safe-bottom: env(safe-area-inset-bottom, 0px);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}[data-theme=dark]{--color-bg: #121211;--color-surface: #1e1e1c;--color-text: #f0f0eb;--color-text-muted: #a8a8a0;--color-border: #333330;--shadow: 0 2px 12px rgba(0, 0, 0, .35)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:var(--color-brand)}.app-shell{display:flex;flex-direction:column;min-height:100%;padding-bottom:calc(var(--nav-h) + var(--safe-bottom))}@media(min-width:900px){.app-shell{flex-direction:row;padding-bottom:0}}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.btn-primary{background:var(--color-brand);color:#fff;padding:.75rem 1.25rem;border-radius:var(--radius-sm);font-weight:600;width:100%}.btn-primary:disabled{opacity:.5}.btn-ghost{padding:.5rem .75rem;border-radius:var(--radius-sm);color:var(--color-text-muted)}.chip{display:inline-flex;align-items:center;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--color-border);font-size:.875rem;transition:background .15s,border-color .15s}.chip.selected{background:var(--color-brand);border-color:var(--color-brand);color:#fff}.tag-medicine{--tag-color: var(--tag-medicine)}.tag-sport{--tag-color: var(--tag-sport)}.tag-food{--tag-color: var(--tag-food)}.task-tag{width:6px;height:6px;border-radius:50%;background:var(--tag-color, var(--color-text-muted));flex-shrink:0}.main-column{flex:1;display:flex;flex-direction:column;min-width:0}.main-content{flex:1;padding:1rem;max-width:640px;width:100%;margin:0 auto}@media(min-width:900px){.main-content{max-width:720px;padding:1.5rem 2rem}}
