:root{--ink:#1f2a1f;--leaf:#2f5d3a;--leaf-dark:#244a2f;--amber:#c98a2b;--red-muted:#a3483c;--paper:#f6f2e9;--paper-strong:#efe7d7;--line:#e2d8c7;--shadow:#1a201a1f;--radius:16px;--radius-lg:22px;--space-1:6px;--space-2:10px;--space-3:14px;--space-4:20px;--space-5:28px;--space-6:36px;--font-serif:"Palatino Linotype","Book Antiqua",Palatino,serif;--font-sans:"Trebuchet MS","Segoe UI",sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-serif);color:var(--ink);background:radial-gradient(circle at 10% 10%,#fbf7ef 0%,var(--paper)45%,#f1e6d1 100%)}a{color:inherit;text-decoration:none}main{min-height:100vh}.page{padding:var(--space-5);max-width:900px;margin:0 auto;padding-bottom:96px}.section{margin-bottom:var(--space-5)}.card{background:var(--paper-strong);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:0 8px 24px var(--shadow)}.card-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.badge{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--leaf-dark);background:#f0e2c8;border-radius:999px;padding:4px 8px;font-size:12px}.alert-list{gap:var(--space-3);display:grid}.alert-card{gap:var(--space-2);border-radius:var(--radius);padding:var(--space-3);background:#f7edd8;border:1px solid #e8d7b8;display:grid}.alert-card.overdue{background:#f6e2df;border-color:#e7c0b8}.alert-title{font-family:var(--font-sans);font-size:15px;font-weight:700}.alert-meta{color:#4d5b4d;font-size:14px}.checklist{gap:var(--space-3);display:grid}.check-item{border-radius:var(--radius);padding:var(--space-3);background:#fbf4e6;border:1px dashed #d8c9b0;justify-content:space-between;align-items:center;display:flex}.check-left{gap:4px;display:grid}.check-title{font-size:16px;font-weight:700}.check-sub{color:#5a6a5a;font-size:13px}.check-btn{font-family:var(--font-sans);background:var(--leaf);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:10px 16px;font-weight:600}.check-btn.secondary{background:var(--amber);color:#2a1b0a}.feed-summary{gap:var(--space-3);display:grid}.feed-bar{background:#e9dcc3;border-radius:999px;height:10px;position:relative;overflow:hidden}.feed-bar span{background:linear-gradient(90deg,#6aa05f,#2f5d3a);height:100%;position:absolute;top:0;left:0}.bottom-nav{border-top:1px solid var(--line);background:#f6edde;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 18px;display:grid;position:fixed;bottom:0;left:0;right:0}.nav-item{font-family:var(--font-sans);color:#3b4a3b;place-items:center;font-size:12px;display:grid;position:relative}.nav-item span{font-weight:700}.badge-dot{background:var(--red-muted);color:#fff;font-size:11px;line-height:1;font-family:var(--font-sans);border-radius:999px;padding:4px 6px;position:absolute;top:-6px;right:10px}.notification-list{gap:var(--space-3);display:grid}.notification-item{justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius);background:#f9f0df;border:1px solid #e4d4b9;display:flex}.notification-item.unread{background:#f6e2df;border-color:#e0b5aa}.notification-title{font-family:var(--font-sans);margin-bottom:6px;font-weight:700}.notification-body{color:#4d5b4d;font-size:14px}.notification-time{color:#6a5d4c;white-space:nowrap;font-size:13px}.error-card{border-radius:var(--radius);padding:var(--space-3);background:#f6e2df;border:1px solid #e7c0b8;gap:6px;display:grid}.error-title{font-weight:700}.error-body{color:#5a3e3a;font-size:14px}.skeleton{position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#fff0 0%,#fff9 50%,#fff0 100%);animation:1.4s infinite shimmer;position:absolute;inset:0}.skeleton-line{background:#e5d7c2;border-radius:999px;height:12px;margin-bottom:8px}.skeleton-line.short{width:50%}.skeleton-pill{background:#e5d7c2;border-radius:999px;width:48px;height:12px}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.header{gap:var(--space-2);margin-bottom:var(--space-4);display:grid}.header h1{font-size:30px;line-height:1.1}.header p{color:#4e5b4e;font-size:15px}@media (max-width:600px){.page{padding:var(--space-4);padding-bottom:110px}.header h1{font-size:26px}}
