/* NutriAile - Components: Cards, Forms, Badges, Modals */
.card{background:var(--bg-primary);border:var(--card-border-width,1px) solid var(--border-light);border-radius:var(--radius-lg);padding:var(--card-padding,1rem) 1.25rem;margin-bottom:var(--section-gap,1rem);box-shadow:0 var(--card-shadow-y,0px) var(--card-shadow-blur,0px) rgba(0,0,0,var(--card-shadow-alpha,0.08))}
.sec{font-size:.8rem;font-weight:var(--font-weight-bold,600);letter-spacing:.8px;text-transform:uppercase;color:var(--sec-color);margin-bottom:.7rem}
.fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:var(--grid-gap,12px)}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gap,12px)}
.fg3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--grid-gap,12px)}
.fg4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--grid-gap,12px)}
.fl{display:flex;flex-direction:column;gap:3px;min-width:0}
.fl>label{font-size:.867rem;font-weight:500;color:var(--label-color,var(--sec-color))}
.req{color:var(--danger-accent)}
.hint{font-size:.8rem;color:var(--text-tertiary);margin-top:2px}
.divider{border:none;border-top:1px solid var(--border-light);margin:.85rem 0}
.ro{padding:8px 14px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);font-size:1.067rem;font-weight:600;width:100%;box-sizing:border-box}
.ro.c0{color:var(--p0-accent)}.ro.c1{color:var(--p1-accent)}.ro.c2{color:var(--p2-accent)}.ro.c3{color:var(--p3-accent)}
.mc-outer{border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:1rem;display:none}
.mc-outer.show{display:block}
.mc-outer.col-0{background:var(--p0-bg);border:1px solid var(--p0-border)}
.mc-outer.col-1{background:var(--p1-bg);border:1px solid var(--p1-border)}
.mc-outer.col-2{background:var(--p2-bg);border:1px solid var(--p2-border)}
.mc-outer.col-3{background:var(--p3-bg);border:1px solid var(--p3-border)}
.mcg{display:grid;grid-template-columns:repeat(var(--cols-computed,4),1fr);gap:8px;margin-top:.6rem}
.mcb{background:var(--bg-primary);border-radius:var(--radius-md);padding:9px 10px}
.mclbl{font-size:.733rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}
.mcv{font-size:1.4rem;font-weight:700;margin-top:1px}
.mcu{font-size:.733rem}
.c0t{color:var(--p0-text)}.c1t{color:var(--p1-text)}.c2t{color:var(--p2-text)}.c3t{color:var(--p3-text)}
.c0a{color:var(--p0-accent)}.c1a{color:var(--p1-accent)}.c2a{color:var(--p2-accent)}.c3a{color:var(--p3-accent)}
.act-g{display:grid;grid-template-columns:repeat(var(--cols-activity,5),1fr);gap:6px}
.ao{padding:8px 5px;border:var(--card-border-width,1px) solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;text-align:center;transition:all var(--transition-speed,.15s);background:var(--bg-primary)}
.ao:hover{border-color:var(--border-mid)}.ao.on{border-color:currentColor;background:var(--bg-secondary)}
.an{font-size:.867rem;font-weight:500}
.am{font-size:.733rem;color:var(--text-secondary);margin-top:1px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{padding:5px 12px;border:var(--card-border-width,1px) solid var(--border-light);border-radius:var(--chip-radius,20px);font-size:.867rem;font-weight:500;cursor:pointer;color:var(--text-secondary);transition:all var(--transition-speed,.15s);user-select:none;background:var(--bg-primary)}
.chip.on.c0{background:var(--p0-bg);border-color:var(--p0-accent);color:var(--p0-text)}
.chip.on.c1{background:var(--p1-bg);border-color:var(--p1-accent);color:var(--p1-text)}
.chip.on.c2{background:var(--p2-bg);border-color:var(--p2-accent);color:var(--p2-text)}
.chip.on.c3{background:var(--p3-bg);border-color:var(--p3-accent);color:var(--p3-text)}
.mwrap{display:flex;flex-wrap:wrap;gap:5px;padding:7px 8px;border:1px solid var(--border-mid);border-radius:var(--radius-md);min-height:40px;cursor:text;background:var(--bg-primary)}
.mwrap:focus-within{border-color:var(--accent)}
.mtag{display:flex;align-items:center;gap:4px;padding:3px 8px 3px 10px;border-radius:4px;font-size:.867rem;font-weight:500}
.mt0{background:var(--p0-bg);color:var(--p0-text)}.mt1{background:var(--p1-bg);color:var(--p1-text)}
.mt2{background:var(--p2-bg);color:var(--p2-text)}.mt3{background:var(--p3-bg);color:var(--p3-text)}
.mx{cursor:pointer;font-size:1rem;line-height:1;opacity:.5;padding:0 2px}.mx:hover{opacity:1}
.mwrap input{border:none!important;outline:none;background:none;font-size:.933rem;flex:1;min-width:80px;padding:0;width:auto}
.ege-card{background:var(--p2-bg);border:1px solid var(--p2-border);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:1rem}
.ege-sec{font-size:.8rem;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--p2-text);margin-bottom:.7rem}
.bball-row{display:flex;align-items:center;gap:12px;margin-top:4px}
.bv{font-size:1.667rem;font-weight:700;color:var(--p2-accent);min-width:28px;text-align:center}
.bvu{font-size:.8rem;color:var(--p2-text)}
.wktogg{display:flex;border:1px solid var(--border-mid);border-radius:var(--radius-md);overflow:hidden;margin-top:4px}
.wko{flex:1;padding:7px 14px;font-size:.867rem;cursor:pointer;font-weight:500;border:none;background:var(--bg-primary);color:var(--text-secondary);transition:all .15s}
.wko.active{background:var(--p2-accent);color:white}
.adhd-chk{display:flex;align-items:flex-start;gap:8px;margin-top:.7rem;cursor:pointer;font-size:.933rem;color:var(--text-secondary);line-height:1.4}
.adhd-chk input{width:15px;height:15px;cursor:pointer;accent-color:var(--p2-accent);flex-shrink:0;margin-top:1px;padding:0}
.info-box{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:.6rem 1rem;margin-bottom:.85rem;display:flex;gap:9px;align-items:flex-start}
.info-i{flex-shrink:0;width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.733rem;font-weight:700;margin-top:1px}
.ii0{background:var(--p0-bg);color:var(--p0-text)}.ii1{background:var(--p1-bg);color:var(--p1-text)}.ii2{background:var(--p2-border);color:var(--p2-text)}.ii3{background:var(--p3-border);color:var(--p3-text)}
.info-text{font-size:.867rem;color:var(--text-secondary);line-height:1.55}
.info-text b{font-weight:600;color:var(--text-primary)}
.warn-box{border-radius:var(--radius-md);padding:.65rem 1rem;margin-top:.6rem;display:none;gap:10px;align-items:flex-start;border:1px solid}
.warn-box.show{display:flex}
.warn-box.yellow{background:var(--warning-bg);border-color:var(--warning-border)}
.warn-box.red{background:var(--danger-bg);border-color:var(--danger-border)}
.warn-title{font-size:.867rem;font-weight:600;margin-bottom:2px}
.yellow .warn-title{color:var(--warning-text)}.red .warn-title{color:var(--danger-text)}
.warn-text{font-size:.867rem;line-height:1.5;color:var(--text-secondary)}
.macro-bar{display:grid;grid-template-columns:repeat(var(--cols-macro,4),1fr);gap:8px;margin-bottom:var(--section-gap,1rem)}
.mb-card{background:var(--bg-primary);border:var(--card-border-width,1px) solid var(--border-light);border-radius:var(--radius-md);padding:9px 12px;box-shadow:0 var(--card-shadow-y,0px) var(--card-shadow-blur,0px) rgba(0,0,0,var(--card-shadow-alpha,0.08))}
.mb-lbl{font-size:.733rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}
.mb-val{font-size:1.267rem;font-weight:700}
.mb-target{font-size:.733rem;color:var(--text-tertiary)}
.mb-bar{height:4px;border-radius:2px;margin-top:4px;background:var(--border-light);overflow:hidden}
.mb-fill{height:100%;border-radius:2px;transition:width .6s ease}
.meal-card{background:var(--bg-primary);border:var(--card-border-width,1px) solid var(--border-light);border-radius:var(--radius-lg);margin-bottom:.85rem;overflow:hidden;box-shadow:0 var(--card-shadow-y,0px) var(--card-shadow-blur,0px) rgba(0,0,0,var(--card-shadow-alpha,0.08))}
.meal-header{display:flex;align-items:center;gap:10px;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-light)}
.meal-name{font-size:1rem;font-weight:600;color:var(--sec-color)}
.meal-time{font-size:.8rem;color:var(--text-secondary);margin-top:1px}
.meal-kcal-badge{margin-left:auto;font-size:.8rem;font-weight:600;padding:3px 10px;border-radius:20px;white-space:nowrap}
.alt-tabs{display:flex;gap:4px;padding:.65rem 1.25rem;border-bottom:1px solid var(--border-light);background:var(--bg-secondary);flex-wrap:wrap}
.alt-tab{padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:500;cursor:pointer;border:1px solid var(--border-light);background:var(--bg-primary);color:var(--text-secondary);transition:all .15s}
.alt-tab.sel-0{background:var(--p0-bg);border-color:var(--p0-accent);color:var(--p0-text)}
.alt-tab.sel-1{background:var(--p1-bg);border-color:var(--p1-accent);color:var(--p1-text)}
.alt-tab.sel-2{background:var(--p2-bg);border-color:var(--p2-accent);color:var(--p2-text)}
.alt-tab.sel-3{background:var(--p3-bg);border-color:var(--p3-accent);color:var(--p3-text)}
.alt-content{padding:.85rem 1.25rem}
.alt-food-name{font-size:1.067rem;font-weight:600;margin-bottom:.3rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--sec-color)}
.top-pick-badge{font-size:.733rem;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--p2-bg);color:var(--p2-text)}
.alt-desc{font-size:.867rem;color:var(--text-primary);line-height:1.6;margin-bottom:.6rem}
.alt-macros{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:.5rem}
.macro-pill{font-size:.8rem;font-weight:500;padding:3px 9px;border-radius:20px;border:1px solid}
.mp-kcal{background:var(--p0-bg);border-color:var(--p0-border);color:var(--p0-text)}
.mp-pro{background:var(--p1-bg);border-color:var(--p1-border);color:var(--p1-text)}
.mp-carb{background:var(--p2-bg);border-color:var(--p2-border);color:var(--p2-text)}
.mp-fat{background:var(--p3-bg);border-color:var(--p3-border);color:var(--p3-text)}
.alt-portion{font-size:.8rem;color:var(--text-tertiary)}
.adhd-note{display:flex;gap:7px;align-items:flex-start;background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-md);padding:.5rem .75rem;margin-top:.5rem;font-size:.8rem;color:var(--warning-text);line-height:1.5}
.adhd-score-bar{display:flex;align-items:center;gap:8px;margin-top:.5rem;padding:.4rem .75rem;background:var(--warning-bg);border-radius:var(--radius-md)}
.plan-approve-row{display:flex;gap:10px;margin-top:1rem;align-items:center}
.plan-approve-btn{flex:1;padding:12px;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;color:white;display:flex;align-items:center;justify-content:center;gap:7px;transition:opacity .15s}
.plan-approve-btn:hover{opacity:.85}
.plan-approved-badge{font-size:.867rem;font-weight:500;padding:6px 14px;border:1px solid;border-radius:var(--radius-md);background:var(--bg-secondary);white-space:nowrap}
.week-grid{display:grid;grid-template-columns:repeat(var(--cols-week,7),1fr);gap:5px;margin-bottom:1.25rem}
.wday{border:var(--card-border-width,1px) solid var(--border-light);border-radius:var(--radius-md);padding:8px 5px;text-align:center;cursor:pointer;transition:all var(--transition-speed,.15s);background:var(--bg-primary);min-height:82px;display:flex;flex-direction:column;align-items:center;gap:3px;position:relative}
.wday:hover{border-color:var(--border-mid)}
.wday-name{font-size:.733rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--text-tertiary)}
.wday-date{font-size:.733rem;color:var(--text-secondary)}
.wday-icon{font-size:1.267rem;line-height:1}
.wday-lbl{font-size:.667rem;font-weight:600;padding:2px 5px;border-radius:3px}
.diff-rest{background:var(--bg-tertiary);color:var(--text-secondary)}
.diff-light{background:var(--p0-bg);color:var(--p0-text)}
.diff-medium{background:var(--p1-bg);color:var(--p1-text)}
.diff-hard{background:var(--p2-bg);color:var(--p2-text)}
.diff-match{background:var(--danger-bg);color:var(--danger-text)}
.diff-recovery{background:var(--p3-bg);color:var(--p3-text)}
.tdc-header{padding:.75rem 1.25rem;display:flex;align-items:center;gap:10px}
.tdc-icon{font-size:1.267rem;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center}
.tdc-name{font-size:1rem;font-weight:600;color:var(--sec-color)}
.tdc-body{padding:.85rem 1.25rem;display:flex;flex-direction:column;gap:.6rem}
.tdc-row{display:flex;gap:8px;align-items:flex-start}
.tdc-lbl{font-size:.8rem;font-weight:600;color:var(--text-secondary);min-width:90px;flex-shrink:0}
.tdc-val{font-size:.867rem;line-height:1.55;flex:1}
.drug-alert{display:flex;gap:10px;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid;margin-bottom:.5rem;align-items:flex-start}
.drug-alert.da-red{background:var(--danger-bg);border-color:var(--danger-border)}
.drug-alert.da-yellow{background:var(--warning-bg);border-color:var(--warning-border)}
.drug-alert.da-blue{background:var(--info-bg);border-color:var(--info-border)}
.drug-badge{font-size:.733rem;font-weight:700;padding:2px 7px;border-radius:4px;flex-shrink:0;margin-top:1px;white-space:nowrap}
.da-red .drug-badge{background:var(--danger-border);color:var(--danger-text)}
.da-yellow .drug-badge{background:var(--warning-border);color:var(--p2-text)}
.da-blue .drug-badge{background:var(--info-border);color:var(--info-text)}
.drug-name{font-size:.933rem;font-weight:600;margin-bottom:2px;color:var(--sec-color)}
.drug-detail{font-size:.867rem;color:var(--text-secondary);line-height:1.55}
.drug-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:.4rem}
.drug-avoid-tag{font-size:.8rem;padding:2px 8px;border-radius:4px;background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-border)}
.drug-ok-tag{font-size:.8rem;padding:2px 8px;border-radius:4px;background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}
.adhd-stat-grid{display:grid;grid-template-columns:repeat(var(--cols-adhd,3),1fr);gap:var(--grid-gap,10px);margin-bottom:var(--section-gap,1rem)}
.adhd-stat-card{background:var(--bg-primary);border:var(--card-border-width,1px) solid var(--border-light);border-radius:var(--radius-md);padding:10px 12px;box-shadow:0 var(--card-shadow-y,0px) var(--card-shadow-blur,0px) rgba(0,0,0,var(--card-shadow-alpha,0.08))}
.adhd-stat-lbl{font-size:.8rem;color:var(--text-secondary);font-weight:500;margin-bottom:4px}
.adhd-stat-val{font-size:1.4rem;font-weight:700;color:var(--p2-accent)}
.adhd-avoid-item{display:flex;align-items:flex-start;gap:8px;padding:.65rem 1rem;background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius-md);font-size:.867rem;line-height:1.5;margin-bottom:5px}
.adhd-good-item{display:flex;align-items:flex-start;gap:8px;padding:.65rem 1rem;background:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius-md);font-size:.867rem;line-height:1.5;margin-bottom:5px}
.adhd-week-row{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:.5rem}
.adhd-wday{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:6px 4px;text-align:center}
.adhd-wday-name{font-size:.667rem;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:2px}
.delta-grid{display:grid;grid-template-columns:repeat(var(--cols-delta,3),1fr);gap:var(--grid-gap,10px);margin-bottom:var(--section-gap,1rem)}
.delta-card{background:var(--bg-primary);border:var(--card-border-width,1px) solid var(--border-light);border-radius:var(--radius-md);padding:10px 12px;box-shadow:0 var(--card-shadow-y,0px) var(--card-shadow-blur,0px) rgba(0,0,0,var(--card-shadow-alpha,0.08))}
.delta-lbl{font-size:.8rem;color:var(--text-secondary);font-weight:500;margin-bottom:4px}
.delta-vals{display:flex;align-items:baseline;gap:6px}
.delta-cur{font-size:1.267rem;font-weight:700}
.delta-badge{font-size:.8rem;font-weight:600;padding:2px 7px;border-radius:20px}
.d-good{background:var(--success-bg);color:var(--success-text)}
.d-bad{background:var(--danger-bg);color:var(--danger-text)}
.d-neut{background:var(--bg-secondary);color:var(--text-secondary)}
.delta-prev{font-size:.8rem;color:var(--text-tertiary);margin-top:2px}
.etable{width:100%;border-collapse:collapse;font-size:.867rem}
.etable th{font-size:.733rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--text-secondary);padding:6px 8px;border-bottom:1px solid var(--border-light);text-align:left}
.etable td{padding:7px 8px;border-bottom:1px solid var(--border-light);vertical-align:middle}
.etable tr:last-child td{border-bottom:none}
.etable tr:hover td{background:var(--bg-secondary)}
.del-row{font-size:.8rem;color:var(--text-tertiary);cursor:pointer;padding:2px 5px;border-radius:3px;background:none;border:none}
.del-row:hover{color:var(--danger-accent);background:var(--danger-bg)}
.empty-bench{text-align:center;padding:2.5rem 1rem;color:var(--text-secondary);font-size:.933rem}
.kan-upload{border:1.5px dashed var(--border-mid);border-radius:var(--radius-lg);padding:2rem 1.5rem;text-align:center;cursor:pointer;transition:all .18s;background:var(--bg-primary);position:relative}
.kan-upload:hover{border-color:var(--border-strong);background:var(--bg-secondary)}
.kan-upload input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}
.kw-high{background:var(--danger-bg);border-color:var(--danger-border)}
.kw-low{background:var(--info-bg);border-color:var(--info-border)}
.kw-drug{background:var(--warning-bg);border-color:var(--warning-border)}
.status-pill{font-size:.733rem;font-weight:600;padding:2px 8px;border-radius:20px;white-space:nowrap}
.sp-normal{background:var(--success-bg);color:var(--success-text)}
.sp-high{background:var(--danger-bg);color:var(--danger-text)}
.sp-low{background:var(--info-bg);color:var(--info-text)}
.sp-unknown{background:var(--bg-secondary);color:var(--text-secondary)}
.kan-table{width:100%;border-collapse:collapse;font-size:.867rem}
.kan-table th{font-size:.733rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--text-secondary);padding:6px 10px;border-bottom:1px solid var(--border-light);text-align:left}
.kan-table td{padding:8px 10px;border-bottom:1px solid var(--border-light)}
.kan-table tr:last-child td{border-bottom:none}
.kan-table tr:hover td{background:var(--bg-secondary)}
.kan-error{background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius-md);padding:1rem;margin-top:.85rem;font-size:.933rem;color:var(--danger-text);line-height:1.5}
.sport-chip{padding:5px 12px;border:var(--card-border-width,1px) solid var(--border-mid);border-radius:var(--chip-radius,20px);font-size:.867rem;cursor:pointer;background:var(--bg-primary);color:var(--text-secondary);transition:all var(--transition-speed,.15s);font-family:inherit}
.sport-chip:hover{background:var(--bg-secondary)}
.sport-chip.selected{background:var(--p0-bg);border-color:var(--accent);color:var(--p0-text);font-weight:500}
#med-edit-modal .modal{max-width:480px;width:92%}
.med-edit-field{margin-bottom:.85rem}
.med-edit-field label{font-size:.867rem;font-weight:600;color:var(--sec-color);display:block;margin-bottom:4px}
.med-edit-field input,.med-edit-field textarea{width:100%;padding:8px 12px;border:1px solid var(--border-mid);border-radius:var(--radius-md);font-size:.933rem;font-family:inherit;resize:vertical}
.med-edit-field input:focus,.med-edit-field textarea:focus{outline:none;border-color:var(--accent)}
.med-edit-manual-badge{font-size:.667rem;font-weight:700;padding:1px 6px;border-radius:3px;background:var(--p0-bg);color:var(--p0-text);margin-left:6px;vertical-align:middle}
@media print{body{background:white!important}#na-print-area{display:block!important}#na-print-area *{visibility:visible}body > *:not(#na-print-area){display:none!important}}
#na-print-area{display:none}
.print-header{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:2px solid var(--accent);margin-bottom:16px}
.print-logo{width:32px;height:32px;border-radius:7px;background:var(--accent)}
.print-app-name{font-size:1.133rem;font-weight:700;color:var(--accent)}
.print-section{margin-bottom:14px;padding:11px 14px;border:1px solid #eee;border-radius:7px;page-break-inside:avoid}
.print-sec-title{font-size:.733rem;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.print-row{font-size:.867rem;padding:4px 0;border-bottom:1px solid var(--bg-secondary);display:flex;gap:8px}
.print-note{background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:5px;padding:9px 12px;font-size:.8rem;color:var(--warning-text);margin-top:12px;line-height:1.6}
.print-footer{margin-top:16px;padding-top:8px;border-top:1px solid #eee;font-size:.733rem;color:#aaa;display:flex;justify-content:space-between}
.print-med-card{background:var(--bg-secondary);border:1px solid #eee;border-radius:6px;padding:10px 14px;margin-bottom:8px;page-break-inside:avoid}
.print-med-name{font-size:.933rem;font-weight:700;color:var(--sec-color);margin-bottom:4px}
.print-med-row{font-size:.867rem;color:#444;padding:2px 0;display:flex;gap:8px}
.print-med-label{color:#888;min-width:100px;flex-shrink:0}
.print-meal-row{font-size:.867rem;padding:5px 0;border-bottom:1px solid var(--bg-secondary)}
.print-btn{padding:9px 16px;border-radius:var(--radius-md);font-size:.867rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;border:1px solid var(--border-mid);background:var(--bg-primary);color:var(--text-primary);transition:all .15s;white-space:nowrap}
.print-btn:hover{background:var(--bg-secondary)}
.med-schedule-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-top:1rem}
.med-sched-item{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:.75rem 1rem;margin-bottom:.6rem;background:var(--bg-secondary)}
.med-sched-name{font-size:.933rem;font-weight:600;color:var(--sec-color);margin-bottom:.4rem}
.med-sched-row{font-size:.867rem;color:var(--text-secondary);display:flex;gap:8px;padding:2px 0;line-height:1.5}
.med-sched-lbl{font-weight:500;color:var(--sec-color);min-width:110px;flex-shrink:0}
.kan-chat{margin-top:1.25rem}
.kan-chat-msgs{display:flex;flex-direction:column;gap:10px;margin-bottom:1rem;max-height:420px;overflow-y:auto;padding-right:4px}
.kan-chat-msgs::-webkit-scrollbar{width:4px}
.kan-chat-msgs::-webkit-scrollbar-track{background:transparent}
.kan-chat-msgs::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:2px}
.kmsg{display:flex;flex-direction:column;gap:3px;width:100%}
.kmsg-user{align-items:flex-end}
.kmsg-ai{align-items:stretch}
.kmsg-bubble{padding:.65rem 1rem;border-radius:var(--radius-lg);font-size:.933rem;line-height:1.6;max-width:100%;width:100%}
.kmsg-user .kmsg-bubble{color:white;border-radius:var(--radius-lg) var(--radius-lg) 4px var(--radius-lg);width:auto;max-width:85%}
.kmsg-ai .kmsg-bubble{background:var(--bg-primary);border:1px solid var(--border-light);color:var(--text-primary);border-radius:4px var(--radius-lg) var(--radius-lg) var(--radius-lg)}
.kmsg-time{font-size:.733rem;color:var(--text-tertiary);padding:0 4px}
.kan-chat-input-row{display:flex;gap:8px;align-items:flex-end}
.kan-chat-input-row textarea{flex:1;padding:10px 14px;border:1px solid var(--border-mid);border-radius:var(--radius-lg);font-size:.933rem;resize:none;min-height:44px;max-height:120px;line-height:1.5;transition:border-color .15s}
.kan-chat-input-row textarea:focus{outline:none;border-color:var(--accent)}
.kan-chat-send{width:44px;height:44px;border-radius:var(--radius-lg);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:opacity .15s}
.kan-chat-send:hover{opacity:.85}
.kan-chat-send:disabled{opacity:.4;cursor:not-allowed}
.kan-chat-empty{text-align:center;padding:1.5rem 1rem;color:var(--text-tertiary);font-size:.933rem}
.ai-fmt{font-size:.933rem;line-height:1.65;color:var(--text-primary)}
.ai-fmt p{margin:0 0 .5rem}
.ai-fmt p:last-child{margin-bottom:0}
.ai-heading{font-size:.933rem;font-weight:700;color:var(--sec-color);margin:1rem 0 .4rem;padding-bottom:.3rem;border-bottom:1px solid var(--border-light)}
.ai-heading:first-child{margin-top:0}
.ai-section{display:flex;align-items:center;gap:8px;margin:1rem 0 .35rem}
.ai-section:first-child{margin-top:0}
.ai-num{width:22px;height:22px;border-radius:50%;background:var(--accent)18;color:var(--accent);font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ai-section-title{font-size:.933rem;font-weight:700;color:var(--sec-color)}
.ai-tag-red{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--danger-bg);color:var(--danger-text);margin:2px 2px 2px 0}
.ai-tag-green{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--p0-bg);color:var(--p0-text);margin:2px 2px 2px 0}
.ai-tag-yellow{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--p2-bg);color:var(--p2-text);margin:2px 2px 2px 0}
.ai-tag-blue{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--p1-bg);color:var(--p1-text);margin:2px 2px 2px 0}
.ai-bullet{display:flex;align-items:flex-start;gap:6px;padding:3px 0 3px 8px;margin:1px 0;border-left:2px solid var(--border-light);font-size:.833rem;line-height:1.55}
.ai-bullet:before{content:'';display:none}
.ai-bullet-icon{font-size:.933rem;flex-shrink:0;margin-top:1px}
.typing-bubble{display:flex;align-items:center;gap:4px;padding:.65rem 1rem;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:4px var(--radius-lg) var(--radius-lg) var(--radius-lg);width:fit-content;margin-top:4px}
.typing-dot{width:7px;height:7px;border-radius:50%;background:var(--text-tertiary);animation:typing-bounce .9s ease-in-out infinite}
.typing-dot:nth-child(2){animation-delay:.15s}
.typing-dot:nth-child(3){animation-delay:.3s}
@keyframes typing-bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}
.kan-chat-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:.85rem}
.kan-chat-sug{padding:5px 12px;border:1px solid var(--border-mid);border-radius:20px;font-size:.867rem;cursor:pointer;background:var(--bg-primary);color:var(--text-secondary);transition:all .15s;white-space:nowrap}
.kan-chat-sug:hover{background:var(--bg-secondary);color:var(--text-primary)}
.gen-btn{width:100%;padding:12px;border:none;border-radius:var(--btn-radius,var(--radius-md));font-size:var(--font-size-base,15px);font-weight:var(--font-weight-bold,600);cursor:pointer;color:var(--btn-primary-text,white);background:var(--btn-primary-bg,var(--accent));display:flex;align-items:center;justify-content:center;gap:8px;transition:opacity var(--transition-speed,.15s);font-family:var(--font-family)}
.gen-btn:hover{opacity:var(--btn-hover-opacity,.85)}
.gen-btn:disabled{opacity:.45;cursor:not-allowed}
.btn-row{display:flex;gap:10px;margin-top:.25rem}
.sbtn{flex:1;padding:12px;border:none;border-radius:var(--btn-radius,var(--radius-md));font-size:var(--font-size-base,15px);font-weight:var(--font-weight-bold,600);cursor:pointer;color:var(--btn-primary-text,white);background:var(--btn-primary-bg,var(--accent));transition:opacity var(--transition-speed,.15s);font-family:var(--font-family)}
.sbtn:hover{opacity:var(--btn-hover-opacity,.85)}
.sb0{background:var(--btn-primary-bg,var(--p0-accent))}.sb1{background:var(--btn-primary-bg,var(--p1-accent))}.sb2{background:var(--btn-primary-bg,var(--p2-accent))}.sb3{background:var(--btn-primary-bg,var(--p3-accent))}
.pdf-btn{flex:0;padding:11px 16px;border-radius:var(--radius-md);font-size:.867rem;font-weight:600;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid var(--border-mid);background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-family)}
.pdf-btn:hover{background:var(--bg-secondary)}
.smsg{text-align:center;font-size:.933rem;height:20px;margin-top:.4rem}
.spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(45,212,168,.25);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-state{text-align:center;padding:2.5rem 1rem;color:var(--text-secondary)}
.loading-spinner{width:30px;height:30px;border:3px solid var(--border-light);border-top-color:currentColor;border-radius:50%;animation:spin .85s linear infinite;margin:0 auto .75rem}
.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}
.modal-bg{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,var(--modal-backdrop,.45));align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;z-index:1000}
.modal-bg.show{display:flex;display:-webkit-flex}
.modal{background:var(--bg-primary);border:var(--card-border-width,1px) solid var(--border-mid);border-radius:var(--radius-xl);padding:1.75rem;width:calc(100vw - 2rem);max-width:360px;max-height:92vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:0 8px var(--modal-shadow,32px) rgba(0,0,0,.5);box-sizing:border-box;-webkit-box-sizing:border-box}
@media(max-width:420px){.modal{padding:1.25rem 1rem;border-radius:var(--radius-lg,16px)}}
.modal h3{font-size:1.067rem;font-weight:600;margin-bottom:.3rem;color:var(--sec-color)}
.modal-sub{font-size:.867rem;color:var(--text-secondary);margin-bottom:1rem}
.modal-btns{display:flex;display:-webkit-flex;justify-content:flex-end;-webkit-justify-content:flex-end;margin-top:1.25rem}
.modal-btns .mbtn{margin-left:8px}
.mbtn{padding:8px 20px;border-radius:var(--btn-radius,var(--radius-md));font-size:.933rem;font-weight:500;cursor:pointer;border:1px solid;font-family:var(--font-family);transition:all var(--transition-speed,.15s)}
.mbtn-cancel{background:var(--bg-secondary);border-color:var(--border-mid);color:var(--text-primary)}
.mbtn-cancel:hover{background:var(--bg-tertiary)}
.mbtn-del{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-text)}
.mbtn-del:hover{background:var(--danger-bg)}
.ef-row{margin-bottom:.75rem;overflow:hidden}
.ef-row label{font-size:.867rem;font-weight:500;color:var(--sec-color);display:block;margin-bottom:4px}
.ef-row input[type='text'],.ef-row input[type='date'],.ef-row input[type='number'],.ef-row textarea,.ef-row select{width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;max-width:100%;min-width:0}
.modal input[type='date']{font-size:16px;width:-webkit-fill-available;width:100%}
.modal .gender-row{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;margin-top:6px}
.modal .gender-row label{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;font-size:14px;font-weight:400;cursor:pointer;margin-right:20px;margin-bottom:0}
.modal .gender-row input[type='radio']{margin-right:6px;width:auto}
.day-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:.75rem}
.day-grid label{font-size:.867rem;font-weight:500;color:var(--sec-color);display:block;margin-bottom:4px}
@media(max-width:600px){
.stab{padding:8px 10px;font-size:.8rem;}
.tabrow{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;}
.tabrow::-webkit-scrollbar{display:none}
.ftab{min-width:90px;font-size:.867rem;padding:0 8px;}
.add-tab{min-width:40px;width:40px;}
.hdr{flex-wrap:wrap;gap:8px;}
.hdr-right{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:6px;}
.pane{padding:1rem .75rem;}
.fg4{grid-template-columns:1fr 1fr;}
.fg3{grid-template-columns:1fr 1fr;}
.fg2{grid-template-columns:1fr;}
.macro-bar{grid-template-columns:1fr 1fr;}
.mcg{grid-template-columns:1fr 1fr;}
.week-grid{grid-template-columns:repeat(7,1fr);gap:3px;}
.wday{padding:5px 2px;min-height:68px;}
.wday-name{font-size:.667rem;}
.wday-date{font-size:.667rem;}
.wday-icon{font-size:1rem;}
.wday-lbl{font-size:.6rem;padding:1px 3px;}
.adhd-stat-grid{grid-template-columns:1fr 1fr;}
.delta-grid{grid-template-columns:1fr 1fr;}
.adhd-week-row{grid-template-columns:repeat(7,1fr);gap:2px;}
.act-g{grid-template-columns:repeat(3,1fr);gap:4px;}
.ao{padding:6px 3px;}
.an{font-size:.8rem;}
.am{font-size:.667rem;}
.plan-approve-row{flex-direction:column;}
.plan-approve-btn{width:100%;}
.btn-row{flex-direction:column;}
.sbtn{width:100%;}
.pdf-btn{width:100%;justify-content:center;}
.alt-macros{flex-wrap:wrap;}
.tdc-row{flex-direction:column;gap:2px;}
.tdc-lbl{min-width:auto;}
.kan-chat-msgs{max-height:320px;}
.drug-alert{flex-direction:column;gap:6px;}
.med-sched-row{flex-direction:column;gap:2px;}
.med-sched-lbl{min-width:auto;}
.modal{width:95%;padding:1.25rem;}
.api-card{padding:1.5rem;}
.print-btn{font-size:.8rem;padding:8px 12px;}
.backup-btn{font-size:.733rem;padding:3px 8px;}
}
@media(max-width:380px){
.week-grid{grid-template-columns:repeat(4,1fr);}
.wday:nth-child(n+5){margin-top:4px;}
.fg4{grid-template-columns:1fr;}
.macro-bar{grid-template-columns:1fr;}
.adhd-stat-grid{grid-template-columns:1fr;}
.delta-grid{grid-template-columns:1fr;}
}
.btn-spinner { display: inline-block; width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, 0.4); border-top-color: #fff; border-radius: 50%; animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.loading-spinner { width: 36px; height: 36px; border: 3px solid var(--border-light); border-top-color: currentColor; border-radius: 50%; animation: spin 0.8s linear infinite; margin: 0 auto 12px; }

/* v6.2.104 */