/* ── KairosRx Styles ─────────────────────────────────────────────────────── */

:root{--navy:#1B2A4A;--teal:#4ECDB4;--teal-dk:#0F6E56;--bg:#F0F4F8;--surface:#FFFFFF;--s2:#F0F4F8;--border:#D4DCE8;--border2:#BBC8DA;--text:#1B2A4A;--muted:#6B7FA0;--hint:#9AAABB;--rad:12px;--rm:8px;--shad:0 2px 16px rgba(27,42,74,0.09);}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;}
nav{background:var(--navy);padding:14px 24px;display:flex;align-items:center;gap:10px;}
.brand{font-size:18px;font-weight:700;color:#fff;letter-spacing:.08em;}
.tagline{font-size:9px;color:var(--teal);letter-spacing:.2em;margin-top:2px;}
.wrap{max-width:680px;margin:0 auto;padding:28px 16px 60px;}
.prog-bar{display:flex;gap:5px;margin-bottom:6px;}
.prog-step{flex:1;height:3px;border-radius:2px;background:var(--border2);transition:background .3s;}
.prog-step.done{background:var(--teal);}.prog-step.act{background:var(--teal);opacity:.5;}
.step-lbl{font-size:12px;color:var(--muted);margin-bottom:18px;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rad);padding:20px;margin-bottom:14px;box-shadow:var(--shad);}
.sec-title{font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--teal-dk);text-transform:uppercase;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border);}
.row{display:flex;gap:12px;margin-bottom:14px;flex-wrap:wrap;}.row:last-child{margin-bottom:0;}
.f{display:flex;flex-direction:column;gap:5px;flex:1;min-width:130px;}.f.full{flex:1 1 100%;}
.f label{font-size:11px;color:var(--muted);font-weight:600;}
.f input,.f select,.f textarea{font-size:14px;padding:9px 11px;border:1px solid var(--border2);border-radius:var(--rm);background:var(--s2);color:var(--text);font-family:inherit;width:100%;transition:border-color .15s;}
.f textarea{resize:vertical;min-height:64px;}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #4ECDB425;}
.cb-group{display:flex;flex-wrap:wrap;gap:7px;}
.cb{display:flex;align-items:center;gap:6px;padding:7px 13px;border:1px solid var(--border2);border-radius:20px;cursor:pointer;font-size:13px;color:var(--muted);background:var(--s2);transition:all .15s;user-select:none;}
.cb:hover{border-color:var(--teal);color:var(--text);}.cb.on{background:#4ECDB418;border-color:var(--teal);color:var(--teal-dk);font-weight:600;}
.cb .dot{width:13px;height:13px;border-radius:50%;border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cb.on .dot{background:var(--teal);border-color:var(--teal);}.cb.on .dot::after{content:'';width:5px;height:5px;border-radius:50%;background:#fff;}
.pref-group{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px;}
.pref{border:1px solid var(--border2);border-radius:var(--rm);padding:12px 10px;cursor:pointer;text-align:center;background:var(--s2);transition:all .15s;user-select:none;}
.pref:hover{border-color:var(--teal);}.pref.on{background:#4ECDB418;border-color:var(--teal);}
.picon{font-size:22px;margin-bottom:5px;}.plabel{font-size:12px;font-weight:600;color:var(--muted);}.pref.on .plabel{color:var(--teal-dk);}
.pdesc{font-size:10px;color:var(--hint);margin-top:3px;line-height:1.4;}
.food-sec{margin-bottom:18px;}
.food-sec-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.food-sec-name{font-size:12px;font-weight:600;color:var(--text);}
.food-count{font-size:10px;color:var(--teal-dk);background:#4ECDB420;border:1px solid #4ECDB440;padding:2px 8px;border-radius:10px;}
.food-grid{display:flex;flex-wrap:wrap;gap:7px;}
.fchip{display:flex;flex-direction:column;gap:4px;padding:8px 11px;border:1px solid var(--border2);border-radius:var(--rm);cursor:pointer;background:var(--s2);transition:all .15s;user-select:none;min-width:100px;}
.fchip:hover{border-color:var(--teal);}.fchip.on{background:#4ECDB418;border-color:var(--teal);}
.fchip-top{display:flex;align-items:center;gap:6px;}
.fchip-dot{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--border2);flex-shrink:0;}
.fchip.on .fchip-dot{background:var(--teal);border-color:var(--teal);}
.fchip-name{font-size:12px;color:var(--muted);font-weight:500;line-height:1.3;}.fchip.on .fchip-name{color:var(--teal-dk);}
.fbadge{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;align-self:flex-start;}
.gi-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.sel-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.sel-count{font-size:12px;color:var(--muted);}.sel-count span{color:var(--teal-dk);font-weight:600;}
.tiny-btns{display:flex;gap:6px;}
.tiny-btn{font-size:11px;color:var(--teal-dk);background:none;border:none;cursor:pointer;padding:2px 6px;font-family:inherit;text-decoration:underline;}
.info-box{background:var(--s2);border:1px solid var(--border);border-radius:var(--rm);padding:10px 14px;margin-bottom:12px;font-size:11px;color:var(--muted);line-height:1.8;}
.gi-rule{display:flex;align-items:center;gap:8px;margin-top:4px;}
.gi-rb{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;}
.cat-tabs{display:flex;gap:5px;margin-bottom:12px;flex-wrap:wrap;}
.ctab{padding:5px 12px;border-radius:20px;border:1px solid var(--border2);background:var(--s2);font-size:11px;font-weight:600;cursor:pointer;color:var(--muted);font-family:inherit;transition:all .15s;}
.ctab.on{background:var(--navy);color:#fff;border-color:var(--navy);}
.strat-grid{display:flex;flex-direction:column;gap:8px;}
.strat-card{border:1px solid var(--border2);border-radius:var(--rm);background:var(--s2);cursor:pointer;transition:all .15s;user-select:none;overflow:hidden;}
.strat-card:hover{border-color:var(--teal);}.strat-card.on{border-color:var(--teal);background:#4ECDB415;border-width:1.5px;}
.strat-hdr{display:flex;align-items:center;gap:10px;padding:11px 14px;}
.strat-dot{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--border2);flex-shrink:0;}
.strat-card.on .strat-dot{background:var(--teal);border-color:var(--teal);}
.strat-card.on .strat-dot::after{content:'';display:block;width:5px;height:5px;border-radius:50%;background:#fff;margin:auto;margin-top:3px;}
.strat-info{flex:1;}.strat-name{font-size:13px;font-weight:600;color:var(--text);}.strat-card.on .strat-name{color:var(--teal-dk);}
.strat-tags{display:flex;gap:5px;margin-top:3px;}
.stag{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;}
.tc{background:#FAC77530;color:#412402;}.tf{background:#B5D4F430;color:#042C53;}.tca{background:#C0DD9730;color:#173404;}.tt{background:#CDB4F430;color:#2C1460;}.ts{background:#F4C0D130;color:#4B1528;}
.rec-badge{font-size:10px;font-weight:700;padding:3px 9px;border-radius:4px;background:var(--teal);color:var(--navy);white-space:nowrap;flex-shrink:0;}
.strat-desc{font-size:11px;color:var(--muted);padding:0 14px 12px 38px;line-height:1.6;display:none;}.strat-card.on .strat-desc{display:block;}
.rec-box{background:#4ECDB415;border:1px solid #4ECDB440;border-radius:var(--rm);padding:12px 16px;margin-bottom:14px;font-size:12px;color:var(--text);line-height:1.7;border-left:3px solid var(--teal);}
.rec-box .rl{font-size:10px;font-weight:700;color:var(--teal-dk);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;}
.nav-row{display:flex;gap:10px;margin-top:20px;justify-content:flex-end;}
.btn{padding:10px 22px;border-radius:var(--rm);font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--border2);background:var(--surface);color:var(--text);font-family:inherit;transition:all .15s;}
.btn:hover{background:var(--s2);}.btn.navy{background:var(--navy);color:#fff;border-color:var(--navy);}.btn.teal{background:var(--teal);color:var(--navy);border-color:var(--teal);}
.loading-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;gap:14px;}
.spinner{width:46px;height:46px;border-radius:50%;border:3px solid var(--border2);border-top-color:var(--teal);animation:spin .85s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.load-title{font-size:16px;font-weight:700;}.load-sub{font-size:12px;color:var(--muted);text-align:center;max-width:300px;line-height:1.7;}
.week-pills{display:flex;gap:6px;margin-top:4px;}
.wpill{width:52px;height:5px;border-radius:3px;background:var(--border2);transition:background .4s;}
.wpill.done{background:var(--teal);}.wpill.act{background:var(--teal);opacity:.5;}
.week-lbl{font-size:11px;color:var(--hint);}
.rtabs{display:flex;gap:4px;margin-bottom:14px;background:var(--s2);border-radius:var(--rm);padding:3px;border:1px solid var(--border);}
.rtab{flex:1;padding:8px 6px;border:none;background:transparent;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;color:var(--muted);font-family:inherit;transition:all .15s;}
.rtab.on{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shad);}
.client-strip{display:flex;flex-wrap:wrap;gap:18px;padding:13px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--rad);margin-bottom:14px;border-left:3px solid var(--teal);box-shadow:var(--shad);}
.ck{font-size:9px;color:var(--hint);font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.cv{font-size:13px;font-weight:600;margin-top:2px;}
.coach-note{padding:13px 16px;background:#4ECDB415;border:1px solid #4ECDB440;border-radius:var(--rad);margin-bottom:14px;border-left:3px solid var(--teal);}
.cn-lbl{font-size:10px;color:var(--teal-dk);font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px;}
.cn-txt{font-size:13px;color:var(--text);line-height:1.7;}
.pdf-banner{background:var(--navy);border-radius:var(--rad);padding:14px 18px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.pdf-t{font-size:14px;font-weight:700;color:#fff;}.pdf-s{font-size:11px;color:#8AAABB;margin-top:2px;}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;}
.mbox{background:var(--surface);border:1px solid var(--border);border-radius:var(--rm);padding:14px 8px;text-align:center;box-shadow:var(--shad);}
.mv{font-size:22px;font-weight:800;}.mv.teal{color:var(--teal-dk);}.mu{font-size:10px;color:var(--hint);margin-top:1px;}.ml{font-size:10px;font-weight:700;color:var(--muted);margin-top:5px;text-transform:uppercase;letter-spacing:.07em;}
.rationale{font-size:12px;color:var(--muted);line-height:1.7;padding:10px 13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--rm);margin-bottom:14px;border-left:3px solid var(--teal);}
.wtabs{display:flex;gap:5px;margin-bottom:10px;overflow-x:auto;padding-bottom:2px;}
.wtab{padding:7px 16px;border-radius:var(--rm);border:1px solid var(--border2);background:var(--s2);font-size:12px;font-weight:600;cursor:pointer;color:var(--muted);white-space:nowrap;font-family:inherit;transition:all .15s;}
.wtab.on{background:var(--navy);color:#fff;border-color:var(--navy);}
.dtabs{display:flex;gap:5px;margin-bottom:12px;overflow-x:auto;padding-bottom:2px;}
.dtab{padding:6px 12px;border-radius:var(--rm);border:1px solid var(--border2);background:var(--s2);font-size:11px;font-weight:600;cursor:pointer;color:var(--muted);white-space:nowrap;font-family:inherit;transition:all .15s;}
.dtab.on{background:var(--teal);color:var(--navy);border-color:var(--teal);}
.day-hdr{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--rm);margin-bottom:8px;box-shadow:var(--shad);}
.dname{font-size:15px;font-weight:700;}.dkcal{font-size:12px;color:var(--muted);}.dkcal span{color:var(--teal-dk);font-weight:700;}
.meal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rm);margin-bottom:8px;overflow:hidden;box-shadow:var(--shad);}
.meal-hdr{padding:11px 14px;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;}
.meal-type{font-size:9px;font-weight:700;color:var(--teal-dk);text-transform:uppercase;letter-spacing:.12em;margin-bottom:3px;}
.meal-name{font-size:13px;font-weight:600;margin-bottom:5px;}
.meal-kcal{font-size:16px;font-weight:800;color:var(--teal-dk);}.meal-unit{font-size:9px;color:var(--hint);}
.meal-ings{padding:0 14px 12px;border-top:1px solid var(--border);}
.ing-lbl{font-size:9px;color:var(--hint);font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin:10px 0 7px;}
.ing-list{display:flex;flex-wrap:wrap;gap:5px;}
.ing-pill{font-size:11px;color:var(--muted);background:var(--s2);border:1px solid var(--border);padding:3px 9px;border-radius:20px;}
.mpills{display:flex;gap:4px;margin-top:2px;}
.mp{font-size:9px;font-weight:700;padding:2px 5px;border-radius:3px;}
.mp-p{background:#9FE1CB;color:#085041;}.mp-c{background:#FAC775;color:#412402;}.mp-f{background:#B5D4F4;color:#042C53;}
.mb-row{margin-bottom:12px;}
.mb-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;}
.mb-name{font-size:13px;font-weight:600;}.mb-kcal{font-size:13px;color:var(--teal-dk);font-weight:700;}
.bar-bg{height:5px;background:var(--s2);border-radius:3px;overflow:hidden;}
.bar-fill{height:100%;background:var(--teal);border-radius:3px;}
.grocery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;}
.grocery-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rad);padding:14px;box-shadow:var(--shad);}
.grocery-cat{font-size:10px;font-weight:700;color:var(--teal-dk);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;}
.grocery-item{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--border);font-size:12px;}
.grocery-item:last-child{border-bottom:none;}
.g-dot{width:5px;height:5px;border-radius:50%;background:var(--teal);flex-shrink:0;}
.err{padding:11px 16px;background:#FDEAEA;border:1px solid #F0A0A0;border-radius:var(--rm);font-size:13px;color:#8B0000;margin-bottom:14px;}
@media(max-width:480px){.mgrid{grid-template-columns:repeat(2,1fr);}.pref-group{grid-template-columns:1fr;}.wrap{padding:16px 12px 60px;}}
