﻿/* NutriAile - Components: Cards, Forms, Badges, Modals */
.card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:1rem}
.sec{font-size:12px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.7rem}
.fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fg3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.fg4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.fl{display:flex;flex-direction:column;gap:3px;min-width:0}
.fl>label{font-size:13px;font-weight:500;color:var(--text-secondary)}
.req{color:#D85A30}
.hint{font-size:12px;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:16px;font-weight:600;width:100%;box-sizing:border-box}
.ro.c0{color:#1D9E75}.ro.c1{color:#378ADD}.ro.c2{color:#BA7517}.ro.c3{color:#7F77DD}
.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:#d0eee3;border:1px solid #9FE1CB}
.mc-outer.col-1{background:#d6e8f7;border:1px solid #B5D4F4}
.mc-outer.col-2{background:#f2e2c8;border:1px solid #FAC775}
.mc-outer.col-3{background:#dfddf9;border:1px solid #AFA9EC}
.mcg{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:.6rem}
.mcb{background:var(--bg-primary);border-radius:var(--radius-md);padding:9px 10px}
.mclbl{font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}
.mcv{font-size:21px;font-weight:700;margin-top:1px}
.mcu{font-size:11px}
.c0t{color:#085041}.c1t{color:#042C53}.c2t{color:#412402}.c3t{color:#26215C}
.c0a{color:#1D9E75}.c1a{color:#378ADD}.c2a{color:#BA7517}.c3a{color:#7F77DD}
.act-g{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.ao{padding:8px 5px;border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;text-align:center;transition:all .15s;background:var(--bg-primary)}
.ao:hover{border-color:var(--border-mid)}.ao.on{border-color:currentColor;background:var(--bg-secondary)}
.an{font-size:13px;font-weight:500}.am{font-size:11px;color:var(--text-tertiary);margin-top:1px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{padding:5px 12px;border:1px solid var(--border-light);border-radius:20px;font-size:13px;font-weight:500;cursor:pointer;color:var(--text-secondary);transition:all .15s;user-select:none;background:var(--bg-primary)}
.chip.on.c0{background:#E1F5EE;border-color:#1D9E75;color:#085041}
.chip.on.c1{background:#E6F1FB;border-color:#378ADD;color:#042C53}
.chip.on.c2{background:#FAEEDA;border-color:#BA7517;color:#412402}
.chip.on.c3{background:#EEEDFE;border-color:#7F77DD;color:#26215C}
.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:#1D9E75}
.mtag{display:flex;align-items:center;gap:4px;padding:3px 8px 3px 10px;border-radius:4px;font-size:13px;font-weight:500}
.mt0{background:#E1F5EE;color:#085041}.mt1{background:#E6F1FB;color:#042C53}
.mt2{background:#FAEEDA;color:#412402}.mt3{background:#EEEDFE;color:#26215C}
.mx{cursor:pointer;font-size:15px;line-height:1;opacity:.5;padding:0 2px}.mx:hover{opacity:1}
.mwrap input{border:none!important;outline:none;background:none;font-size:14px;flex:1;min-width:80px;padding:0;width:auto}
.ege-card{background:#FDF5E8;border:1px solid #FAC775;border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:1rem}
.ege-sec{font-size:12px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:#854F0B;margin-bottom:.7rem}
.bball-row{display:flex;align-items:center;gap:12px;margin-top:4px}
.bv{font-size:25px;font-weight:700;color:#BA7517;min-width:28px;text-align:center}
.bvu{font-size:12px;color:#854F0B}
.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:13px;cursor:pointer;font-weight:500;border:none;background:var(--bg-primary);color:var(--text-secondary);transition:all .15s}
.wko.active{background:#BA7517;color:white}
.adhd-chk{display:flex;align-items:flex-start;gap:8px;margin-top:.7rem;cursor:pointer;font-size:14px;color:var(--text-secondary);line-height:1.4}
.adhd-chk input{width:15px;height:15px;cursor:pointer;accent-color:#BA7517;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:11px;font-weight:700;margin-top:1px}
.ii0{background:#C6ECD9;color:#085041}.ii1{background:#C3D9F1;color:#042C53}.ii2{background:#FAD99A;color:#412402}.ii3{background:#CECBF6;color:#26215C}
.info-text{font-size:13px;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:#FAEEDA;border-color:#FAC775}
.warn-box.red{background:#FCEBEB;border-color:#F7C1C1}
.warn-title{font-size:13px;font-weight:600;margin-bottom:2px}
.yellow .warn-title{color:#633806}.red .warn-title{color:#791F1F}
.warn-text{font-size:13px;line-height:1.5;color:var(--text-secondary)}
.macro-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:1rem}
.mb-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:9px 12px}
.mb-lbl{font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}
.mb-val{font-size:19px;font-weight:700}
.mb-target{font-size:11px;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:1px solid var(--border-light);border-radius:var(--radius-lg);margin-bottom:.85rem;overflow:hidden}
.meal-header{display:flex;align-items:center;gap:10px;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-light)}
.meal-name{font-size:15px;font-weight:600}
.meal-time{font-size:12px;color:var(--text-secondary);margin-top:1px}
.meal-kcal-badge{margin-left:auto;font-size:12px;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:12px;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:#E1F5EE;border-color:#1D9E75;color:#085041}
.alt-tab.sel-1{background:#E6F1FB;border-color:#378ADD;color:#042C53}
.alt-tab.sel-2{background:#FAEEDA;border-color:#BA7517;color:#412402}
.alt-tab.sel-3{background:#EEEDFE;border-color:#7F77DD;color:#26215C}
.alt-content{padding:.85rem 1.25rem}
.alt-food-name{font-size:16px;font-weight:600;margin-bottom:.3rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.top-pick-badge{font-size:11px;font-weight:600;padding:2px 7px;border-radius:4px;background:#FAEEDA;color:#412402}
.alt-desc{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:.6rem}
.alt-macros{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:.5rem}
.macro-pill{font-size:12px;font-weight:500;padding:3px 9px;border-radius:20px;border:1px solid}
.mp-kcal{background:#E1F5EE;border-color:#9FE1CB;color:#085041}
.mp-pro{background:#E6F1FB;border-color:#B5D4F4;color:#042C53}
.mp-carb{background:#FAEEDA;border-color:#FAC775;color:#412402}
.mp-fat{background:#EEEDFE;border-color:#AFA9EC;color:#26215C}
.alt-portion{font-size:12px;color:var(--text-tertiary)}
.adhd-note{display:flex;gap:7px;align-items:flex-start;background:#FDF5E8;border:1px solid #FAC775;border-radius:var(--radius-md);padding:.5rem .75rem;margin-top:.5rem;font-size:12px;color:#633806;line-height:1.5}
.adhd-score-bar{display:flex;align-items:center;gap:8px;margin-top:.5rem;padding:.4rem .75rem;background:#FDF5E8;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:15px;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:13px;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(7,1fr);gap:5px;margin-bottom:1.25rem}
.wday{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:8px 5px;text-align:center;cursor:pointer;transition:all .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:11px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--text-tertiary)}
.wday-date{font-size:11px;color:var(--text-secondary)}
.wday-icon{font-size:19px;line-height:1}
.wday-lbl{font-size:10px;font-weight:600;padding:2px 5px;border-radius:3px}
.diff-rest{background:#F1EFE8;color:#5F5E5A}
.diff-light{background:#E1F5EE;color:#085041}
.diff-medium{background:#E6F1FB;color:#042C53}
.diff-hard{background:#FAEEDA;color:#412402}
.diff-match{background:#FCEBEB;color:#791F1F}
.diff-recovery{background:#EEEDFE;color:#26215C}
.tdc-header{padding:.75rem 1.25rem;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border-light)}
.tdc-icon{font-size:19px;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center}
.tdc-name{font-size:15px;font-weight:600}
.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:12px;font-weight:600;color:var(--text-secondary);min-width:90px;flex-shrink:0}
.tdc-val{font-size:13px;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:#FCEBEB;border-color:#F7C1C1}
.drug-alert.da-yellow{background:#FAEEDA;border-color:#FAC775}
.drug-alert.da-blue{background:#E6F1FB;border-color:#B5D4F4}
.drug-badge{font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px;flex-shrink:0;margin-top:1px;white-space:nowrap}
.da-red .drug-badge{background:#F09595;color:#501313}
.da-yellow .drug-badge{background:#FAC775;color:#412402}
.da-blue .drug-badge{background:#B5D4F4;color:#042C53}
.drug-name{font-size:14px;font-weight:600;margin-bottom:2px}
.drug-detail{font-size:13px;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:12px;padding:2px 8px;border-radius:4px;background:#FCEBEB;color:#791F1F;border:1px solid #F7C1C1}
.drug-ok-tag{font-size:12px;padding:2px 8px;border-radius:4px;background:#E1F5EE;color:#085041;border:1px solid #9FE1CB}
.adhd-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:1rem}
.adhd-stat-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:10px 12px}
.adhd-stat-lbl{font-size:12px;color:var(--text-secondary);font-weight:500;margin-bottom:4px}
.adhd-stat-val{font-size:21px;font-weight:700;color:#BA7517}
.adhd-avoid-item{display:flex;align-items:flex-start;gap:8px;padding:.65rem 1rem;background:#FCEBEB;border:1px solid #F7C1C1;border-radius:var(--radius-md);font-size:13px;line-height:1.5;margin-bottom:5px}
.adhd-good-item{display:flex;align-items:flex-start;gap:8px;padding:.65rem 1rem;background:#E1F5EE;border:1px solid #9FE1CB;border-radius:var(--radius-md);font-size:13px;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:10px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:2px}
.delta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:1rem}
.delta-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:10px 12px}
.delta-lbl{font-size:12px;color:var(--text-secondary);font-weight:500;margin-bottom:4px}
.delta-vals{display:flex;align-items:baseline;gap:6px}
.delta-cur{font-size:19px;font-weight:700}
.delta-badge{font-size:12px;font-weight:600;padding:2px 7px;border-radius:20px}
.d-good{background:#E1F5EE;color:#085041}
.d-bad{background:#FCEBEB;color:#791F1F}
.d-neut{background:var(--bg-secondary);color:var(--text-secondary)}
.delta-prev{font-size:12px;color:var(--text-tertiary);margin-top:2px}
.etable{width:100%;border-collapse:collapse;font-size:13px}
.etable th{font-size:11px;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:12px;color:var(--text-tertiary);cursor:pointer;padding:2px 5px;border-radius:3px;background:none;border:none}
.del-row:hover{color:#D85A30;background:#FCEBEB}
.empty-bench{text-align:center;padding:2.5rem 1rem;color:var(--text-secondary);font-size:14px}
.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:#FCEBEB;border-color:#F7C1C1}
.kw-low{background:#E6F1FB;border-color:#B5D4F4}
.kw-drug{background:#FAEEDA;border-color:#FAC775}
.status-pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;white-space:nowrap}
.sp-normal{background:#E1F5EE;color:#085041}
.sp-high{background:#FCEBEB;color:#791F1F}
.sp-low{background:#E6F1FB;color:#042C53}
.sp-unknown{background:var(--bg-secondary);color:var(--text-secondary)}
.kan-table{width:100%;border-collapse:collapse;font-size:13px}
.kan-table th{font-size:11px;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:#FCEBEB;border:1px solid #F7C1C1;border-radius:var(--radius-md);padding:1rem;margin-top:.85rem;font-size:14px;color:#791F1F;line-height:1.5}
.sport-chip{padding:5px 12px;border:1px solid var(--border-mid);border-radius:20px;font-size:13px;cursor:pointer;background:var(--bg-primary);color:var(--text-secondary);transition:all .15s;font-family:inherit}
.sport-chip:hover{background:var(--bg-secondary)}
.sport-chip.selected{background:#E1F5EE;border-color:#1D9E75;color:#085041;font-weight:500}
#med-edit-modal .modal{max-width:480px;width:92%}
.med-edit-field{margin-bottom:.85rem}
.med-edit-field label{font-size:13px;font-weight:600;color:var(--text-secondary);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:14px;font-family:inherit;resize:vertical}
.med-edit-field input:focus,.med-edit-field textarea:focus{outline:none;border-color:#1D9E75}
.med-edit-manual-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:3px;background:#E1F5EE;color:#085041;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 #1D9E75;margin-bottom:16px}
.print-logo{width:32px;height:32px;border-radius:7px;background:#1D9E75}
.print-app-name{font-size:17px;font-weight:700;color:#1D9E75}
.print-section{margin-bottom:14px;padding:11px 14px;border:1px solid #eee;border-radius:7px;page-break-inside:avoid}
.print-sec-title{font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:#1D9E75;margin-bottom:8px}
.print-row{font-size:13px;padding:4px 0;border-bottom:1px solid #f5f5f5;display:flex;gap:8px}
.print-note{background:#fffbe6;border:1px solid #f0d070;border-radius:5px;padding:9px 12px;font-size:12px;color:#7a6000;margin-top:12px;line-height:1.6}
.print-footer{margin-top:16px;padding-top:8px;border-top:1px solid #eee;font-size:11px;color:#aaa;display:flex;justify-content:space-between}
.print-med-card{background:#f9f9f9;border:1px solid #eee;border-radius:6px;padding:10px 14px;margin-bottom:8px;page-break-inside:avoid}
.print-med-name{font-size:14px;font-weight:700;color:#1a1a18;margin-bottom:4px}
.print-med-row{font-size:13px;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:13px;padding:5px 0;border-bottom:1px solid #f5f5f5}
.print-btn{padding:9px 16px;border-radius:var(--radius-md);font-size:13px;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:14px;font-weight:600;color:var(--text-primary);margin-bottom:.4rem}
.med-sched-row{font-size:13px;color:var(--text-secondary);display:flex;gap:8px;padding:2px 0;line-height:1.5}
.med-sched-lbl{font-weight:500;color:var(--text-primary);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:14px;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:11px;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:14px;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:#1D9E75}
.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:14px}
.ai-fmt{font-size:14px;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:14px;font-weight:700;color:var(--text-primary);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:#1D9E7518;color:#1D9E75;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ai-section-title{font-size:14px;font-weight:700;color:var(--text-primary)}
.ai-tag-red{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:4px;background:#FAEAEC;color:#C53030;margin:2px 2px 2px 0}
.ai-tag-green{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:4px;background:#E8F7F0;color:#1D6B4A;margin:2px 2px 2px 0}
.ai-tag-yellow{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:4px;background:#FEF4E0;color:#7A4000;margin:2px 2px 2px 0}
.ai-tag-blue{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:4px;background:#E6F1FB;color:#1A5B8C;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:12.5px;line-height:1.55}
.ai-bullet:before{content:'';display:none}
.ai-bullet-icon{font-size:14px;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:13px;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(--radius-md);font-size:15px;font-weight:600;cursor:pointer;color:white;display:flex;align-items:center;justify-content:center;gap:8px;transition:opacity .15s;font-family:'Inter',system-ui,sans-serif}
.gen-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(--radius-md);font-size:15px;font-weight:600;cursor:pointer;color:white;transition:opacity .15s;font-family:'Inter',system-ui,sans-serif}
.sbtn:hover{opacity:.85}
.sb0{background:#1D9E75}.sb1{background:#378ADD}.sb2{background:#BA7517}.sb3{background:#7F77DD}
.pdf-btn{flex:0;padding:11px 16px;border-radius:var(--radius-md);font-size:13px;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:'Inter',system-ui,sans-serif}
.pdf-btn:hover{background:var(--bg-secondary)}
.smsg{text-align:center;font-size:14px;height:20px;margin-top:.4rem}
.spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:white;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,.45);align-items:center;justify-content:center;z-index:1000}
.modal-bg.show{display:flex}
.modal{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:1.75rem;width:360px;max-height:92vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.12)}
.modal h3{font-size:16px;font-weight:600;margin-bottom:.3rem}
.modal-sub{font-size:13px;color:var(--text-secondary);margin-bottom:1rem}
.modal-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:1.25rem}
.mbtn{padding:8px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;border:1px solid;font-family:'Inter',system-ui,sans-serif;transition:all .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:#FCEBEB;border-color:#F09595;color:#791F1F}
.mbtn-del:hover{background:#f9d5d5}
.ef-row{margin-bottom:.75rem}
.ef-row label{font-size:13px;font-weight:500;color:var(--text-secondary);display:block;margin-bottom:4px}
.day-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:.75rem}
.day-grid label{font-size:13px;font-weight:500;color:var(--text-secondary);display:block;margin-bottom:4px}
@media(max-width:600px){
.stab{padding:8px 10px;font-size:12px;}
.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:13px;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:10px;}
.wday-date{font-size:10px;}
.wday-icon{font-size:15px;}
.wday-lbl{font-size:9px;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:12px;}
.am{font-size:10px;}
.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:12px;padding:8px 12px;}
.backup-btn{font-size:11px;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; }
