:root{
  --bg:#12151c; --card:#1b202b; --card2:#222836; --line:#2a3140;
  --text:#e8ecf4; --dim:#8b95a8; --accent:#4da3ff;
  --warn:#f0a742; --alarm:#ef5b5b; --ok:#3fbf7f; --violet:#a78bfa;
  --r:14px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);
  font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  overscroll-behavior-y:none}
#app{max-width:560px;margin:0 auto;padding:0 14px 96px;min-height:100vh}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
input,select,textarea{background:var(--card2);border:1px solid var(--line);
  border-radius:10px;padding:11px 12px;width:100%;outline:none}
input:focus,select,textarea:focus{border-color:var(--accent)}
label{display:block;font-size:12px;color:var(--dim);margin:0 0 5px}
.row{display:flex;gap:10px;align-items:center}
.col{display:flex;flex-direction:column;gap:10px}
.grow{flex:1}
.muted{color:var(--dim);font-size:12.5px}
.center{text-align:center}
.hide{display:none!important}

/* Шапка */
.top{position:sticky;top:0;z-index:20;background:var(--bg);padding:10px 0 8px;
  display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}
.brand{font-weight:700;font-size:17px}
.status{margin-left:auto;font-size:11px;color:var(--dim);display:flex;align-items:center;gap:6px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}
.dot.off{background:var(--dim)}
.dot.q{background:var(--warn)}

/* Вкладки профилей: Я / Дочка */
.tabs{display:flex;gap:6px;overflow-x:auto;padding:10px 0 4px}
.tab{padding:7px 14px;border-radius:999px;background:var(--card);color:var(--dim);
  font-size:13px;white-space:nowrap;border:1px solid transparent}
.tab.on{background:var(--accent);color:#08111f;font-weight:600}
.tab.ro{border-color:var(--line)}

/* Флаги: не мешают вводу */
.flags{display:flex;gap:6px;padding:8px 0}
.flag{flex:1;padding:8px 4px;border-radius:10px;background:var(--card);
  font-size:12.5px;text-align:center;color:var(--dim);border:1px solid transparent}
.flag.on{background:var(--warn);color:#1a1204;font-weight:600}
.flag.on.flight{background:var(--violet);color:#12091f}

/* Карточки и кнопки ввода */
.card{background:var(--card);border-radius:var(--r);padding:14px;margin:10px 0}
.actions{display:grid;gap:9px;margin:12px 0}
.act{border-radius:var(--r);padding:16px;display:flex;align-items:center;gap:12px;
  background:var(--card);border:1px solid var(--line);text-align:left;width:100%}
.act .t{font-weight:600}
.act .s{font-size:12px;color:var(--dim)}
/* Иерархия размеров, как договаривались */
.act.glucose{padding:22px;border-color:var(--accent);background:linear-gradient(180deg,#1d2938,var(--card))}
.act.glucose .t{font-size:19px}
.act.rapid{padding:19px;border-color:#2f4a63}
.act.rapid .t{font-size:17px}
.act.food{padding:16px}
.act.basal{padding:12px}
.act.basal .t{font-size:14px}
.act.hypo{padding:12px;border-color:#5a2b2b}
.mark{width:5px;align-self:stretch;border-radius:3px}
.mark.b{background:var(--accent)} .mark.r{background:#7cc4ff}
.mark.f{background:var(--ok)} .mark.l{background:var(--violet)}
.mark.h{background:var(--alarm)}

/* Ориентир */
.anchor{background:var(--card);border-radius:var(--r);padding:15px;display:grid;gap:10px}
.anchor .nums{display:flex;align-items:center}
.anchor .blk{flex:1;text-align:center}
.anchor .big{font-size:38px;font-weight:700;line-height:1.1}
.anchor .lbl{font-size:11px;color:var(--dim);letter-spacing:.4px}
.anchor .un{font-size:11.5px;color:var(--dim)}
.anchor .sep{width:1px;align-self:stretch;background:var(--line);margin:4px 0}
.prov{font-size:11.5px;color:var(--dim);text-align:center}
.hist{display:flex;justify-content:space-between;align-items:center;
  background:var(--bg);border-radius:10px;padding:10px 12px}
.hist b{font-size:16px}
.warn{border-left:3px solid var(--dim);padding:7px 0 7px 10px;font-size:13px;color:var(--dim)}
.warn.warn2{border-color:var(--warn)}
.warn.alarm{border-color:var(--alarm);color:var(--text);font-weight:600}
.explain{border-top:1px solid var(--line);padding-top:9px;display:grid;gap:5px;
  font-size:12px;color:var(--dim)}
.case{font-variant-numeric:tabular-nums;font-size:12px;color:var(--dim)}

/* Подсказки продуктов */
.sug{position:relative}
.sugbox{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;
  background:var(--card2);border:1px solid var(--line);border-radius:10px;
  max-height:260px;overflow:auto}
.sugit{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:baseline}
.sugit:last-child{border:none}
.sugit .n{flex:1}
.sugit .c{font-size:11.5px;color:var(--dim)}
.pill{font-size:10px;padding:2px 6px;border-radius:6px;background:var(--bg);color:var(--dim)}
.pill.cache{background:#1e3550;color:#9ecbff}
.pill.ff{background:#4a2c1a;color:#f5b981}

/* Список позиций еды */
.item{display:flex;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.item:last-child{border:none}
.item .n{flex:1;font-size:14px}
.item input{width:78px;text-align:right;padding:7px 8px}

/* Лента дня */
.ev{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.ev .tm{width:44px;font-variant-numeric:tabular-nums;color:var(--dim);font-size:13px}
.ev .bd{flex:1}
.ev .vl{font-weight:600}
.ev.g .vl{color:var(--accent)} .ev.hi .vl{color:var(--warn)} .ev.lo .vl{color:var(--alarm)}

/* Кнопки */
.btn{background:var(--accent);color:#08111f;font-weight:600;border-radius:11px;
  padding:13px;width:100%;text-align:center}
.btn.sec{background:var(--card2);color:var(--text);border:1px solid var(--line)}
.btn.dim{background:transparent;color:var(--dim)}
.btn:disabled{opacity:.45}

/* Модал */
.modal{position:fixed;inset:0;background:rgba(6,8,12,.72);z-index:50;
  display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--card);width:100%;max-width:560px;border-radius:18px 18px 0 0;
  padding:18px 16px calc(18px + env(safe-area-inset-bottom));max-height:92vh;overflow:auto}
.sheet h3{margin:0 0 12px;font-size:17px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{padding:8px 12px;border-radius:999px;background:var(--card2);
  border:1px solid var(--line);font-size:13px;color:var(--dim)}
.chip.on{background:var(--accent);color:#08111f;border-color:var(--accent);font-weight:600}

/* Нижняя навигация */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--card);
  border-top:1px solid var(--line);display:flex;
  padding-bottom:env(safe-area-inset-bottom)}
.nav button{flex:1;padding:11px 4px;font-size:11px;color:var(--dim);display:grid;gap:3px;justify-items:center}
.nav button.on{color:var(--accent)}
.nav .ic{font-size:17px;line-height:1}
.banner{background:#3a2a12;color:#f5c98a;border-radius:10px;padding:9px 12px;
  font-size:12.5px;margin:8px 0}

/* Ввод количества мерами: половинками, штуками, тарелками */
.qty{display:flex;align-items:center;gap:2px}
.qbtn{width:34px;height:34px;border-radius:9px;background:var(--card2);
  border:1px solid var(--line);color:var(--text);font-size:19px;line-height:1}
.qbtn:active{background:var(--accent);color:#08111f}
.qval{min-width:72px;text-align:center;font-size:16px;font-weight:600;
  font-variant-numeric:tabular-nums;line-height:1.15;
  display:flex;flex-direction:column;align-items:center;gap:1px}
.qlbl{font-size:10.5px;color:var(--dim);font-weight:400;white-space:nowrap}
.item .n{cursor:pointer}
/* Справочник в кабинете */
.prow{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.prow:last-child{border:none}
.prow .pn{flex:1;font-size:14px}
.prow .pc{font-size:12px;color:var(--dim);white-space:nowrap}

/* Разделитель дней в ленте за период */
.daysep{font-size:12px;color:var(--dim);font-weight:600;letter-spacing:.3px;
  padding:12px 0 5px;border-bottom:1px solid var(--line);margin-bottom:2px}
.daysep:first-child{padding-top:0}
