:root{color:#211f1a;background:#f4efe4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:16px}*{box-sizing:border-box}body{background:linear-gradient(90deg,#211f1a08 1px,#0000 1px) 0 0/28px 28px,#f4efe4;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{color:#fffaf0;background:#29261f;border:1px solid #29261f;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;display:inline-flex}button:disabled{opacity:.48}label{gap:8px;font-weight:650;display:grid}input,select,textarea{color:#211f1a;background:#fffaf0;border:1px solid #211f1a2e;border-radius:8px;width:100%;padding:12px}textarea{resize:vertical;min-height:88px}.app-shell{min-height:100vh;padding:calc(env(safe-area-inset-top) + 12px) 14px calc(env(safe-area-inset-bottom) + 88px)}.topbar{justify-content:space-between;align-items:center;gap:12px;max-width:760px;margin:0 auto 12px;display:flex}.topbar>div{align-items:center;gap:10px;display:flex}.app-mark,.loading-mark{color:#9c4a2f;letter-spacing:0;border:1px solid #9c4a2f;place-items:center;min-width:48px;height:32px;font-weight:800;display:inline-grid}.status-pill{background:#fffaf0cc;border:1px solid #211f1a29;border-radius:999px;padding:6px 10px;font-size:.82rem}.page{gap:14px;max-width:760px;margin:0 auto;display:grid}.hero-panel,.panel,.stat-card{background:#fffaf0e0;border:1px solid #211f1a24;border-radius:8px;box-shadow:0 18px 42px #45342314}.hero-panel{padding:20px}.hero-panel h1{letter-spacing:0;margin:4px 0 8px;font-family:Georgia,Times New Roman,serif;font-size:2rem;line-height:1.05}.hero-panel p,.muted,.report-card p{color:#686052}.eyebrow{color:#9c4a2f;text-transform:uppercase;letter-spacing:0;margin:0;font-size:.78rem;font-weight:800}.panel{gap:14px;padding:16px;display:grid}.section-title{border-bottom:1px solid #211f1a1f;justify-content:space-between;align-items:baseline;gap:14px;padding-bottom:10px;display:flex}.section-title span{font-weight:850}.section-title small{color:#8a806e}.priority-grid,.gratitude-grid,.stat-grid{gap:10px;display:grid}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{align-content:space-between;min-height:92px;padding:12px;display:grid}.stat-card strong{font-size:1.25rem}.stat-card span{color:#736a5b;font-size:.82rem}.virtue-list,.virtue-editor,.timeline,.report-list{gap:10px;display:grid}.virtue-mark,.virtue-edit-row,.timeline-item,.report-card{background:#f4efe48f;border:1px solid #211f1a1f;border-radius:8px;padding:12px}.mark-row,.toggle-row{align-items:center;gap:10px;display:flex}.mark-row input,.toggle-row input{width:auto}.mark-row span{min-width:44px;font-weight:800}.mark-row small{color:#736a5b}.heatmap-scroll{padding-bottom:4px;overflow-x:auto}.heatmap{grid-template-columns:72px repeat(7,28px);gap:6px;min-width:310px;display:grid}.heatmap-row{display:contents}.heatmap-name,.heatmap-day{color:#736a5b;place-items:center start;font-size:.78rem;display:grid}.heatmap-day{place-items:center}.heatmap-cell{aspect-ratio:1;background:#f7f1e6;border:1px solid #211f1a1f;border-radius:6px;width:28px}.heatmap-cell.marked{background:#25221c;border-color:#25221c}.button-row{flex-wrap:wrap;gap:10px;display:flex}.file-button{color:#29261f;background:0 0;border:1px solid #29261f;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;display:inline-flex}.file-button input{display:none}.timeline-item{gap:4px;display:grid}.timeline-item time,.timeline-item span,.report-card small{color:#8a806e;font-size:.82rem}.bottom-nav{left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 10px);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffaf0f0;border:1px solid #211f1a29;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;max-width:760px;margin:0 auto;padding:6px;display:grid;position:fixed}.nav-button{color:#736a5b;background:0 0;border:0;gap:2px;min-height:54px;padding:6px 2px;display:grid}.nav-button.active{color:#fffaf0;background:#29261f}.nav-button span{font-size:.75rem}.loading-screen{text-align:center;place-content:center;gap:12px;min-height:100vh;display:grid}@media (width>=720px){.priority-grid,.gratitude-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=430px){.hero-panel h1{font-size:1.75rem}.stat-grid{grid-template-columns:1fr}}
