:root{--color-primary:#0f766e;--color-bg:#f8fafc;--color-text:#1e293b;--color-text-muted:#64748b;--color-surface:#fff;--color-border:#e2e8f0}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.today{max-width:480px;min-height:100dvh;margin:0 auto;padding:1rem}.today-header h1{color:var(--color-primary);margin:0;font-size:1.5rem}.today-date{color:var(--color-text-muted);margin:.25rem 0 1.5rem}.today-empty{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:12px;padding:1.5rem}.today-empty h2{margin-top:0;font-size:1.125rem}.today-hint{color:var(--color-text-muted);margin-bottom:0;font-size:.875rem}.app-content{padding-bottom:4rem}.navbar{background:var(--color-surface);border-top:1px solid var(--color-border);max-width:480px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.navbar-tab{font:inherit;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:.875rem}.navbar-tab-active{color:var(--color-primary);font-weight:600}.screen{max-width:480px;margin:0 auto;padding:1rem}.screen-header h1{color:var(--color-primary);margin:0;font-size:1.5rem}.screen-subtitle{color:var(--color-text-muted);margin:.25rem 0 1rem}.button-primary{background:var(--color-primary);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:8px;width:100%;padding:.625rem 1rem;font-weight:600}.button-subtle{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:.875rem}.stack-group{margin-top:1.25rem}.stack-group-title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:0 0 .5rem;font-size:.8125rem}.stack-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.stack-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.stack-item-archived{opacity:.6}.stack-item-info{flex-direction:column;gap:.125rem;min-width:0;display:flex}.stack-item-name{font-weight:600}.stack-item-detail{color:var(--color-text-muted);font-size:.875rem}.stack-item-actions{flex-shrink:0;display:flex}.kind-badge{text-transform:uppercase;vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:600}.kind-badge-med{color:#9a3412;background:#ffedd5}.kind-badge-supplement{color:#065f46;background:#d1fae5}.stack-archived{margin-top:1.5rem}.item-form h2{color:var(--color-primary);margin:0 0 1rem;font-size:1.25rem}.item-form label{margin:.75rem 0 .25rem;font-size:.875rem;font-weight:600;display:block}.item-form input[type=text],.item-form input[type=time]{border:1px solid var(--color-border);width:100%;font:inherit;background:var(--color-surface);border-radius:8px;padding:.5rem .75rem}.item-form fieldset{border:none;margin:.75rem 0 0;padding:0}.item-form legend{margin-bottom:.25rem;padding:0;font-size:.875rem;font-weight:600}.item-form-kind label{align-items:center;gap:.375rem;margin:0 1rem 0 0;font-weight:400;display:inline-flex}.item-form-time-row{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.item-form-time-row input{flex:1}.item-form-error{color:#b91c1c;font-size:.875rem}.item-form-actions{flex-direction:column;gap:.5rem;margin-top:1.25rem;display:flex}.today-progress{color:var(--color-primary);margin:0 0 1rem;font-weight:600}.today-section{margin-bottom:1.25rem}.today-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:0 0 .5rem;font-size:.8125rem}.today-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.today-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:.75rem 1rem}.today-item-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.today-item-check{cursor:pointer;align-items:center;gap:.625rem;min-width:0;display:flex}.today-item-check input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--color-primary);flex-shrink:0}.today-item-name{font-weight:600}.today-item-taken{color:var(--color-text-muted);text-decoration:line-through}.today-item-detail{color:var(--color-text-muted);font-size:.875rem}.today-item-note{color:var(--color-text-muted);margin:.5rem 0 0 1.875rem;font-size:.875rem;font-style:italic}.today-note-editor{margin-top:.5rem}.today-note-editor textarea{border:1px solid var(--color-border);width:100%;font:inherit;resize:vertical;border-radius:8px;padding:.5rem .75rem}.today-note-actions{align-items:center;gap:.5rem;margin-top:.375rem;display:flex}.button-compact{width:auto;padding:.375rem .75rem;font-size:.875rem}.metric-logger{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:.75rem 1rem}.metric-logger-name{margin-bottom:.5rem;font-weight:600;display:block}.metric-rating{flex-wrap:wrap;gap:.25rem;display:flex}.metric-rating-button{border:1px solid var(--color-border);background:var(--color-bg);min-width:2rem;font:inherit;cursor:pointer;border-radius:8px;flex:1;padding:.375rem 0;font-size:.875rem}.metric-rating-selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.metric-number{align-items:center;gap:.5rem;display:flex}.metric-number input{border:1px solid var(--color-border);width:7rem;font:inherit;border-radius:8px;padding:.5rem .75rem}.metric-number-saved{color:var(--color-primary);font-size:.875rem;font-weight:600}.screen-note{color:var(--color-text-muted);font-size:.875rem}.journal textarea{border:1px solid var(--color-border);width:100%;font:inherit;resize:vertical;background:var(--color-surface);border-radius:8px;padding:.5rem .75rem}.metric-list{margin-top:1rem}.graph-controls{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.graph-controls select{border:1px solid var(--color-border);width:100%;font:inherit;background:var(--color-surface);border-radius:8px;padding:.5rem .75rem}.graph-ranges{gap:.25rem;display:flex}.graph-range-button{border:1px solid var(--color-border);background:var(--color-surface);font:inherit;cursor:pointer;border-radius:8px;flex:1;padding:.375rem;font-size:.875rem}.graph-range-selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.graph-chart{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:.75rem .5rem .5rem 0}.graph-changes{margin-top:1.25rem}.graph-change-list{flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.graph-change{align-items:baseline;gap:.5rem;font-size:.875rem;display:flex}.graph-change-dot{border-radius:999px;flex-shrink:0;align-self:center;width:.625rem;height:.625rem}.graph-change-date{color:var(--color-text-muted);flex-shrink:0;min-width:3.5rem}.date-nav{align-items:center;gap:.375rem;margin:.5rem 0 1rem;display:flex}.date-nav-arrow{border:1px solid var(--color-border);background:var(--color-surface);font:inherit;cursor:pointer;border-radius:8px;padding:.25rem .75rem;font-size:1.125rem;line-height:1}.date-nav-arrow:disabled{opacity:.4;cursor:default}.date-nav input[type=date]{border:1px solid var(--color-border);font:inherit;background:var(--color-surface);border-radius:8px;padding:.3rem .5rem;font-size:.875rem}.stack-sort{align-items:center;gap:.5rem;margin-top:1rem;font-size:.875rem;display:flex}.stack-sort label{color:var(--color-text-muted)}.stack-sort select{border:1px solid var(--color-border);font:inherit;background:var(--color-surface);border-radius:8px;flex:1;padding:.375rem .5rem;font-size:.875rem}.stack-list-flat{margin-top:.75rem}.stack-export{border-top:1px solid var(--color-border);margin-top:2rem;padding-top:1rem}.stack-export-actions{gap:.5rem;display:flex}.sync-warning{border-left:3px solid #d97706;padding-left:.625rem}.sync-hint{margin-top:1.5rem}.item-form input[type=password]{border:1px solid var(--color-border);width:100%;font:inherit;background:var(--color-surface);border-radius:8px;padding:.5rem .75rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
