:root{--brand:#9a2b2d;--brand-dark:#731f21;--brand-soft:#f8eceb;--line:#e8d4d3;--text:#333130;--muted:#77716e;--muted2:#9f9894;--bg:#f5f4f2;--panel:#ffffffeb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at top left,#fff,var(--bg) 40%);min-width:320px}button,input{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:258px 1fr;min-height:100vh}.sidebar{height:100vh;position:sticky;top:0;padding:26px 18px 18px;background:linear-gradient(180deg,#fff,#f7f5f4);border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 25px;border-bottom:1px solid var(--line)}.brandmark{width:50px;height:50px;padding:6px;border:1px solid var(--line);border-radius:15px;background:var(--brand-soft);display:grid;place-items:center}.brandmark img{width:100%;height:100%;object-fit:contain}.brand strong{display:block;font-size:15px}.brand span{display:block;margin-top:3px;color:var(--muted);font-size:12px}nav{display:grid;gap:6px;margin-top:24px}.nav{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid transparent;border-radius:12px;background:transparent;color:#665854;text-decoration:none;font-size:13px}.nav:hover,.nav.active{background:var(--brand-soft);color:var(--brand-dark);border-color:#edd7d5;font-weight:700}.nav svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.nav img{width:18px;height:18px;object-fit:contain}.save{margin-top:auto;padding:14px 10px 4px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:center;color:var(--muted);font-size:11px}.save svg{width:17px;stroke:var(--brand);fill:none;stroke-width:2}
main{padding:38px 42px 26px;max-width:1560px;width:100%;margin:auto}.top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.eyebrow{margin:0 0 7px;color:var(--brand);letter-spacing:.15em;font-size:10px;font-weight:800}h1,h2,h3{margin:0;letter-spacing:-.035em}h1{font-size:clamp(28px,3vw,38px)}.sub{margin:8px 0 0;color:var(--muted);font-size:14px}.actions{display:flex;gap:9px}.btn{min-height:42px;padding:0 15px;border-radius:11px;display:inline-flex;align-items:center;gap:8px;font-weight:700;border:1px solid #e2d7d1;background:#fff;color:var(--brand-dark)}.btn.primary{background:var(--brand);border-color:var(--brand);color:white;box-shadow:0 8px 18px #8d2d3230}.btn.danger{border-color:#e3b9b7;background:#fff8f7;color:var(--brand);}.btn.danger:hover{background:#fbeceb;border-color:#dca09e}.btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.notice{display:none;margin-top:18px;padding:12px 14px;border-radius:11px;background:#fff8f4;border:1px solid #f0ddd5;color:var(--brand-dark);font-size:13px}.notice.show{display:flex;justify-content:space-between;align-items:center}.notice button{border:0;background:transparent;color:inherit;font-size:18px}
.hero{margin-top:18px;padding:18px 20px;border:1px solid #e8dfdc;border-radius:18px;background:linear-gradient(135deg,#fff,#fbf2f1);display:flex;align-items:center;gap:22px}.hero img{width:120px;height:auto;display:block}.hero strong,.hero span{display:block}.hero strong{color:var(--brand-dark);font-size:15px}.hero span{margin-top:6px;color:var(--muted);font-size:13px;line-height:1.45}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:22px 0 14px}.card,.panel{background:var(--panel);border:1px solid #e8dfdc;box-shadow:0 10px 26px #563a2e0d}.card{border-radius:18px;padding:18px;display:flex;align-items:center;gap:14px}.icon{width:46px;height:46px;border-radius:14px;background:var(--brand-soft);display:grid;place-items:center;color:var(--brand);border:1px solid #ecd7d6}.icon img{width:26px;height:26px;object-fit:contain}.icon svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.card span{display:block;color:var(--muted);font-size:11px;font-weight:700}.card b{display:block;margin:3px 0 2px;font-size:22px;letter-spacing:-.04em}.card small{color:var(--muted2);font-size:10px}
.grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,.72fr);gap:14px}.panel{border-radius:18px;overflow:hidden}.head{padding:18px 19px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #efe7e2}.head h2{font-size:16px}.head p{margin:4px 0 0;color:var(--muted2);font-size:11px}.search{width:min(360px,44%);height:40px;padding:0 11px;border:1px solid #eaded8;border-radius:10px;background:#fff;display:flex;align-items:center;gap:8px;color:#b19a92}.search svg{width:17px;stroke:currentColor;fill:none;stroke-width:2}.search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:12px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:12px 16px;border-bottom:1px solid #f0e8e4;text-align:left}th{background:#fbfaf9;color:var(--muted2);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.sortable{padding:0}.sort-button{width:100%;min-height:41px;padding:12px 16px;border:0;background:transparent;color:inherit;display:flex;align-items:center;gap:6px;text-align:left;font:inherit;text-transform:inherit;letter-spacing:inherit;white-space:nowrap}.sort-button:hover{color:var(--brand-dark);background:#faf3f2}.sort-button.active{color:var(--brand-dark);font-weight:800}.sort-icon{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:5px;color:#b4a7a2;font-size:12px;line-height:1;transition:.15s ease}.sort-button.active .sort-icon{background:var(--brand-soft);color:var(--brand);font-weight:900}.sort-button:focus-visible{outline:2px solid #c98380;outline-offset:-2px}td{font-size:12px;color:#4d413d}tbody tr{cursor:pointer}tbody tr:hover{background:#fcf6f5}td b{display:block}td small{display:block;margin-top:2px;color:var(--muted2);font-size:9px}.tag{display:inline-block;min-width:46px;padding:5px 8px;border-radius:8px;text-align:center;background:var(--brand-soft);color:var(--brand-dark);font-weight:800}.gmd{display:inline-flex;padding:4px 8px;border-radius:999px;background:#f9e6e0;color:#7b2f31;font-size:10px;font-weight:800}.muted{color:#b6aaa4}.chev{text-align:right;color:#a88c84;font-size:18px}.pagination{padding:13px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fcfbfa;color:var(--muted);font-size:11px}.pagination div{display:flex;gap:7px}.pagination button{min-height:34px;padding:0 10px;border:1px solid #e7dad4;border-radius:9px;background:#fff;color:var(--brand-dark);font-weight:700}.pagination button:disabled{opacity:.4;cursor:default}.side{display:grid;gap:14px;align-content:start}.rank{padding:2px 18px 15px}.rankrow{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid #f0e8e4}.rankrow:first-child{border-top:0}.rankrow>div:last-child{text-align:right}.rankrow b,.rankrow span{display:block}.rankrow b{font-size:11px}.rankrow span{margin-top:2px;color:var(--muted2);font-size:9px}footer{padding:16px 2px 0;display:flex;justify-content:space-between;color:var(--muted2);font-size:10px}
.backdrop{display:none;position:fixed;inset:0;z-index:30;background:#28141247;backdrop-filter:blur(2px);justify-content:flex-end}.backdrop.open{display:flex}.drawer{height:100%;width:min(440px,94vw);background:#fcf8f6;box-shadow:-12px 0 40px #131f291f;padding:28px;overflow:auto}.drawerhead{display:flex;justify-content:space-between;align-items:flex-start}.drawerhead h2{font-size:27px}.close{width:36px;height:36px;border:1px solid #eaded8;border-radius:10px;background:#fff;color:#6d5b55;font-size:20px}.meta{margin:24px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.meta div{padding:13px;background:#fff;border:1px solid #eee3de;border-radius:11px}.meta span,.meta b{display:block}.meta span,.obs span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted2)}.meta b{margin-top:4px;font-size:12px}.obs{margin:0 0 22px;padding:14px 15px;border:1px solid #eadbd5;border-radius:12px;background:#fff8f6}.obs p{margin:7px 0 0;font-size:12px;line-height:1.5}.history h3{font-size:14px;margin-bottom:10px}.hrow{display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #efe6e1}.dot{width:8px;height:8px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px #f7e7e2}.hrow b,.hrow span{display:block}.hrow small{color:var(--muted2)}
.medications{margin:0 0 22px}.medications h3{font-size:14px;margin:0 0 10px}.med-month{margin-top:12px;padding-top:12px;border-top:1px solid #efe6e1}.med-month:first-child{margin-top:0;padding-top:0;border-top:0}.med-month-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.med-month-title b{font-size:12px}.med-event{padding:12px;border:1px solid #eadfd9;border-radius:12px;background:#fff;margin-bottom:8px}.med-event-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.med-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#f0edea;color:#6f625d;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.med-badge.special{background:var(--brand-soft);color:var(--brand-dark)}.med-date{font-size:9px;color:var(--muted2)}.med-item{padding:8px 0;border-top:1px solid #f1ebe8}.med-item:first-of-type{border-top:0;padding-top:0}.med-item b,.med-item span{display:block}.med-item b{font-size:11px;line-height:1.3}.med-item span{margin-top:3px;color:var(--muted2);font-size:9px;line-height:1.35}.med-note{margin-top:9px;padding:8px 9px;border-radius:9px;background:#fff7f5;color:#6f5a54;font-size:10px;line-height:1.4}.med-empty{padding:12px;border:1px dashed #e2d7d2;border-radius:11px;color:var(--muted2);font-size:10px;background:#fff}
.weighing-month-panel{margin-top:22px;padding:18px 18px 16px}.weighing-month-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:13px}.weighing-month-head h2{font-size:16px}.weighing-month-head p{margin:4px 0 0;color:var(--muted2);font-size:11px}.month-strip{display:flex;gap:10px;overflow-x:auto;padding:2px 1px 4px;scrollbar-width:thin}.month-card{min-width:188px;padding:14px;border:1px solid #e8dfdc;border-radius:14px;background:#fff;text-align:left;color:var(--text);transition:.16s ease;box-shadow:0 5px 15px #563a2e08}.month-card:hover{transform:translateY(-1px);border-color:#dcbfbc}.month-card.active{border-color:var(--brand);background:linear-gradient(145deg,#fff,#fbefee);box-shadow:0 7px 18px #8d2d3217}.month-card.empty{background:#fbfaf9;color:var(--muted)}.month-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.month-card strong{font-size:13px}.month-pill{padding:4px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.month-card.empty .month-pill{background:#f1efed;color:#9d918c}.month-card b,.month-card small{display:block}.month-card b{margin-top:10px;font-size:18px;letter-spacing:-.035em}.month-card small{margin-top:2px;color:var(--muted2);font-size:9px}.weighing-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.65fr);gap:14px}.session-list{padding:4px 18px 16px}.session-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid #f0e8e4}.session-row:last-child{border-bottom:0}.session-date{width:52px;height:52px;border:1px solid #eadbd6;border-radius:13px;background:var(--brand-soft);display:grid;place-items:center;text-align:center;color:var(--brand-dark)}.session-date b,.session-date span{display:block}.session-date b{font-size:17px;line-height:1}.session-date span{margin-top:2px;font-size:8px;font-weight:800;text-transform:uppercase}.session-copy b,.session-copy span{display:block}.session-copy b{font-size:12px}.session-copy span{margin-top:4px;color:var(--muted2);font-size:10px}.session-numbers{text-align:right}.session-numbers b,.session-numbers span{display:block}.session-numbers b{font-size:12px}.session-numbers span{margin-top:3px;color:var(--muted2);font-size:9px}.month-summary{padding:20px}.month-summary-head{padding-bottom:17px;border-bottom:1px solid #efe7e2}.month-summary-head h2{font-size:20px}.month-summary-head p{margin:5px 0 0;color:var(--muted);font-size:11px}.month-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px 0}.month-summary-stat{padding:12px;border:1px solid #eee3de;border-radius:11px;background:#fff}.month-summary-stat span,.month-summary-stat b{display:block}.month-summary-stat span{color:var(--muted2);font-size:8px;text-transform:uppercase;letter-spacing:.05em}.month-summary-stat b{margin-top:4px;font-size:12px}.coverage{margin-top:17px}.coverage-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted)}.coverage-top b{color:var(--brand-dark);font-size:11px}.coverage-track{height:8px;margin-top:7px;border-radius:999px;background:#f0e4e1;overflow:hidden}.coverage-fill{height:100%;border-radius:inherit;background:var(--brand)}.weighing-insight{margin-top:17px;padding:13px 14px;border-radius:12px;background:#fff8f6;border:1px solid #eadbd5}.weighing-insight b,.weighing-insight span{display:block}.weighing-insight b{font-size:11px}.weighing-insight span{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.45}.weighing-table-panel{margin-top:14px}.weighing-empty{padding:42px 20px!important;text-align:center;color:var(--muted2);font-size:12px}.session-empty{padding:38px 10px;text-align:center;color:var(--muted2);font-size:12px}.session-empty svg{display:block;width:35px;height:35px;margin:0 auto 10px;stroke:#c8b8b2;fill:none;stroke-width:1.6}.month-status{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #ecd8d5;border-radius:999px;background:#fff7f6;color:var(--brand-dark);font-size:10px;font-weight:800}.month-status svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1000px){.weighing-grid{grid-template-columns:1fr}.month-summary-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.weighing-month-head{align-items:flex-start;flex-direction:column}.month-card{min-width:165px}.month-summary-grid{grid-template-columns:1fr 1fr}.session-row{grid-template-columns:48px 1fr}.session-date{width:46px;height:46px}.session-numbers{grid-column:2;text-align:left;display:flex;gap:12px;align-items:center}.weighing-table-panel .head{align-items:flex-start;flex-direction:column}.weighing-table-panel .search{width:100%}}