:root{--color-bg: #f3f2f2;--color-surface: #eae9e9;--color-text: #201e1d;--color-accent: #ec3013;--color-neutral-100: #f8f4f4;--color-neutral-200: #eae7e7;--color-neutral-300: #d7d3d3;--color-neutral-400: #bab6b6;--color-neutral-500: #9b9797;--color-neutral-600: #7d7979;--color-neutral-700: #605d5d;--color-neutral-800: #444141;--color-neutral-900: #2d2b2b;--color-accent-100: #fff2ef;--color-accent-200: #ffe0d9;--color-accent-300: #ffc4b8;--color-accent-400: #ff9783;--color-accent-500: #ff563c;--color-accent-600: #dd2b0f;--color-accent-700: #ae1800;--color-accent-800: #7c1405;--color-accent-900: #4d170e;--font-heading: "Archivo", system-ui, -apple-system, sans-serif;--font-body: "Archivo", system-ui, -apple-system, sans-serif;--color-skin: #e7ddce;--color-skin-shadow: #d8cab4;--color-skin-highlight: #f2ece1;--color-skin-navel: #c9b99a;--color-skin-line: #8a7a5f;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-neutral-300);font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--color-text);-webkit-text-size-adjust:100%}button,input{font-family:var(--font-body)}:focus{outline:none}:focus-visible{outline:3px solid var(--color-accent-700);outline-offset:2px}@keyframes sc-blink{0%,to{opacity:1}50%{opacity:.25}}.shell{min-height:100dvh;display:flex;justify-content:center}.phone{width:100%;max-width:440px;min-height:100dvh;background:var(--color-bg);border-left:2px solid var(--color-text);border-right:2px solid var(--color-text);display:flex;flex-direction:column}.main{flex:1;display:flex;flex-direction:column}.header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:2px solid var(--color-text)}.header-id{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.kicker{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent-700);white-space:nowrap}.med-name{font-family:var(--font-heading);font-weight:800;font-size:20px;letter-spacing:-.02em;line-height:1;background:none;border:0;padding:0;margin:0;color:inherit;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.med-name:hover{color:var(--color-accent)}.total{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-neutral-700);white-space:nowrap;flex:0 0 auto}.hero{padding:var(--space-6) var(--space-4)}.hero-open{background:var(--color-accent);color:#fff}.hero-missed{background:var(--color-accent-900);color:#fff}.hero-label{display:flex;align-items:center;gap:var(--space-2);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.hero-label-muted{color:var(--color-neutral-700)}.blink{width:10px;height:10px;background:#fff;animation:sc-blink 1.4s steps(1,end) infinite}.countdown{font-family:var(--font-heading);font-weight:900;font-size:68px;line-height:.92;letter-spacing:-.045em;font-variant-numeric:tabular-nums;margin-top:var(--space-3)}.hero-sub{font-size:14px;font-weight:600;margin-top:var(--space-2);opacity:.92}.hero-sub-ink{color:var(--color-neutral-800);opacity:1}.hero-empty-title{font-family:var(--font-heading);font-weight:900;font-size:40px;line-height:1;letter-spacing:-.035em;margin-top:var(--space-3)}.timeline-wrap{border-top:2px solid var(--color-text);padding:var(--space-4)}.timeline-scale{display:flex;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-neutral-700);margin-bottom:var(--space-2)}.timeline-scale .center{color:var(--color-accent-700)}.timeline{position:relative;height:44px;border:2px solid var(--color-text);background:repeating-linear-gradient(90deg,var(--color-neutral-200) 0 1px,transparent 1px 24px)}.timeline-band{position:absolute;top:0;bottom:0;left:25%;width:50%;background:var(--color-accent-300);border-left:2px solid var(--color-text);border-right:2px solid var(--color-text)}.timeline-center{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--color-accent-700)}.timeline-now{position:absolute;top:-6px;bottom:-6px;width:4px;background:var(--color-text)}.timeline-chip{position:absolute;top:4px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;background:var(--color-text);color:var(--color-bg);padding:1px 4px;transform:translate(-50%)}.timeline-foot{display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:var(--color-neutral-800);margin-top:var(--space-3)}.record-block{border-top:2px solid var(--color-text);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.btn-record{width:100%;text-align:left;padding:var(--space-4);font-size:18px;font-weight:800;letter-spacing:-.01em;min-height:64px;cursor:pointer;background:var(--color-accent);color:#fff;border:2px solid var(--color-text)}.btn-record:hover{background:var(--color-accent-600)}.btn-record:active{background:var(--color-accent-700)}.btn-record:disabled{opacity:.5;cursor:progress}.toast{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border:2px solid var(--color-text);background:var(--color-accent-100);padding:var(--space-3)}.toast-text{font-size:13px;font-weight:700;line-height:1.3}.toast-error{background:var(--color-accent-200)}.btn-undo{cursor:pointer;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:var(--space-2) var(--space-3);background:transparent;border:2px solid var(--color-text);color:var(--color-text);flex:0 0 auto}.btn-undo:hover{background:var(--color-text);color:var(--color-bg)}.stats{border-top:2px solid var(--color-text);display:grid;grid-template-columns:1fr 1fr 1fr}.stat{padding:var(--space-4)}.stat+.stat{border-left:2px solid var(--color-text)}.stat-value{font-family:var(--font-heading);font-weight:900;font-size:28px;line-height:1;font-variant-numeric:tabular-nums}.stat-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-neutral-700);margin-top:var(--space-2)}.panel-head{padding:var(--space-4);border-bottom:2px solid var(--color-text)}.panel-title{font-family:var(--font-heading);font-weight:900;font-size:30px;letter-spacing:-.03em;line-height:1}.panel-note{font-size:13px;font-weight:600;color:var(--color-neutral-800);margin-top:var(--space-2)}.empty-note{padding:var(--space-6) var(--space-4);font-size:14px;font-weight:600;color:var(--color-neutral-800)}.scatter-block{padding:var(--space-4);border-bottom:2px solid var(--color-text)}.scatter-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-3)}.scatter-head span{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--color-neutral-700)}.scatter-grid{display:grid;grid-template-columns:46px 1fr;gap:var(--space-2)}.scatter-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-neutral-700);padding:2px 0}.scatter-plot{position:relative;height:150px;border:2px solid var(--color-text);background:var(--color-neutral-200)}.scatter-mid{position:absolute;left:0;right:0;top:50%;height:2px;background:var(--color-neutral-400)}.scatter-dot{position:absolute;width:12px;height:12px;transform:translate(-50%,-50%);border:2px solid var(--color-text);background:var(--color-bg)}.scatter-dot.outside{background:var(--color-accent)}.scatter-foot{display:flex;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-neutral-700);margin-top:var(--space-2);padding-left:54px}.row{display:grid;grid-template-columns:1fr auto;gap:var(--space-2) var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border-bottom:2px solid var(--color-neutral-300)}.row-when{display:flex;align-items:baseline;gap:var(--space-3);min-width:0}.row-time{font-family:var(--font-heading);font-weight:900;font-size:22px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.row-date{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-neutral-700);white-space:nowrap}.row-right{display:flex;align-items:center;gap:var(--space-2)}.tag{font-size:11px;font-weight:800;letter-spacing:.06em;border:2px solid var(--color-text);padding:2px var(--space-2);white-space:nowrap}.tag-first{background:var(--color-neutral-200);color:var(--color-neutral-800)}.tag-ok{background:var(--color-accent-200);color:var(--color-accent-800)}.tag-outside{background:var(--color-accent);color:#fff}.btn-x{cursor:pointer;font-size:14px;font-weight:800;padding:0 var(--space-2);line-height:1.6;color:var(--color-neutral-700);background:transparent;border:0}.btn-x:hover{color:var(--color-accent)}.row-bar{grid-column:1 / -1;position:relative;height:10px;background:var(--color-neutral-200);border:2px solid var(--color-neutral-400)}.row-bar-mid{position:absolute;top:-2px;bottom:-2px;width:2px;left:50%;background:var(--color-neutral-600)}.row-bar-fill{position:absolute;top:0;bottom:0}.row-bar-fill.first{background:var(--color-neutral-400)}.row-bar-fill.ok{background:var(--color-accent-500)}.row-bar-fill.outside{background:var(--color-accent-800)}.form{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field label{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--color-neutral-700)}.input{width:100%;min-height:52px;font-size:17px;font-weight:600;border:2px solid var(--color-text);background:#fff;padding:var(--space-3);color:var(--color-text)}.btn-add{width:100%;text-align:left;padding:var(--space-4);font-size:17px;font-weight:800;min-height:60px;cursor:pointer;background:var(--color-accent);color:#fff;border:2px solid var(--color-text)}.btn-add:hover{background:var(--color-accent-600)}.btn-add:disabled{opacity:.5;cursor:progress}.recent-block{border-top:2px solid var(--color-text);padding:var(--space-4)}.recent-label{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--color-neutral-700);margin-bottom:var(--space-3)}.recent-row{display:flex;justify-content:space-between;align-items:baseline;padding:var(--space-2) 0;border-bottom:2px solid var(--color-neutral-300)}.recent-time{font-weight:800;font-size:16px;font-variant-numeric:tabular-nums}.btn-pin{cursor:pointer;padding:0 2px;background:transparent;border:0;color:var(--color-neutral-500);display:inline-flex;align-items:center}.btn-pin:hover{color:var(--color-accent-700)}.btn-pin.has-placement{color:var(--color-accent)}.btn-pin.has-placement svg{fill:currentColor}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#201e1db8;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.modal-panel{width:100%;max-width:400px;max-height:92dvh;overflow-y:auto;background:var(--color-bg);border:2px solid var(--color-text)}.modal-head{padding:var(--space-4);border-bottom:2px solid var(--color-text)}.modal-title{font-family:var(--font-heading);font-weight:900;font-size:22px;letter-spacing:-.02em;line-height:1.1}.modal-sub{font-size:13px;font-weight:600;color:var(--color-neutral-800);margin-top:var(--space-2)}.modal-body{padding:var(--space-4);display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.bodymap{width:100%;max-width:260px;touch-action:manipulation}.bodymap-interactive{cursor:crosshair}.bodymap-torso{fill:var(--color-skin);stroke:var(--color-text);stroke-width:2.5}.bodymap-shadow{fill:var(--color-skin-shadow)}.bodymap-highlight{fill:var(--color-skin-highlight)}.bodymap-waistline{fill:none;stroke:var(--color-skin-line);stroke-width:2.5}.bodymap-linea{fill:none;stroke:var(--color-skin-line);stroke-width:2;opacity:.8}.bodymap-offlimits{fill:url(#bodymap-hatch);opacity:.15}.bodymap-hatch-line{stroke:var(--color-text);stroke-width:2}.bodymap-limit{stroke:var(--color-text);stroke-width:1.5;stroke-dasharray:3 4;opacity:.35}.bodymap-exclusion{fill:none;stroke:var(--color-skin-line);stroke-width:2;stroke-dasharray:4 5}.bodymap-navel-outer{fill:var(--color-skin-navel);stroke:var(--color-text);stroke-width:2}.bodymap-navel-inner{fill:var(--color-skin-line)}.bodymap-navel-highlight{fill:var(--color-skin-highlight);opacity:.8}.bodymap-dot{fill:var(--color-neutral-100);stroke:var(--color-neutral-600);stroke-width:2;opacity:.75}.bodymap-dot-current{fill:var(--color-accent-300);stroke:var(--color-text);stroke-width:2}.bodymap-pending circle{fill:var(--color-accent);fill-opacity:.25;stroke:var(--color-accent);stroke-width:2}.bodymap-pending line{stroke:var(--color-accent-800);stroke-width:2}.bodymap-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);font-size:11px;font-weight:700;color:var(--color-neutral-700)}.bodymap-legend span{display:inline-flex;align-items:center;gap:6px}.bodymap-legend i{width:10px;height:10px;display:inline-block;border:2px solid var(--color-text);flex:none}.bodymap-legend i.dot-prev{background:var(--color-neutral-100)}.bodymap-legend i.dot-this{background:var(--color-accent-300)}.bodymap-legend i.dot-exclusion{border-style:dashed;border-color:var(--color-skin-line);background:transparent}.bodymap-legend i.dot-offlimits{border-color:var(--color-neutral-400);background:repeating-linear-gradient(45deg,var(--color-text) 0 2px,transparent 2px 5px);opacity:.55}.modal-actions{display:flex;gap:var(--space-2);padding:var(--space-4);border-top:2px solid var(--color-text)}.modal-actions button{flex:1;padding:var(--space-3);font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:2px solid var(--color-text);background:var(--color-bg);color:var(--color-text)}.modal-actions button:not(.primary):hover{background:var(--color-neutral-200)}.modal-actions button.primary{background:var(--color-accent);color:#fff}.modal-actions button.primary:hover{background:var(--color-accent-600)}.modal-actions button.primary:disabled{opacity:.5;cursor:not-allowed}.settings{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4);border-bottom:2px solid var(--color-text);background:var(--color-neutral-100)}.seg{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--color-text)}.seg button{padding:var(--space-3);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:0;background:var(--color-bg);color:var(--color-text)}.seg button+button{border-left:2px solid var(--color-text)}.seg button[aria-pressed=true]{background:var(--color-text);color:var(--color-bg)}.settings-foot{display:flex;gap:var(--space-2)}.settings-foot button{flex:1;padding:var(--space-3);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:2px solid var(--color-text);background:var(--color-bg);color:var(--color-text)}.settings-foot button.primary{background:var(--color-accent);color:#fff}.settings-foot button.primary:hover{background:var(--color-accent-600)}.nav{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1fr 1fr;border-top:2px solid var(--color-text);background:var(--color-bg);padding-bottom:env(safe-area-inset-bottom)}.nav button{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:var(--space-4) var(--space-2);min-height:60px;display:flex;flex-direction:column;align-items:center;gap:6px}.nav button+button{border-left:2px solid var(--color-text)}.nav button[aria-current=page]{background:var(--color-text);color:var(--color-bg)}.nav svg{display:block}.boot{padding:var(--space-8) var(--space-4);font-size:14px;font-weight:700;color:var(--color-neutral-700)}.gate{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4)}.gate-title{font-family:var(--font-heading);font-weight:900;font-size:44px;letter-spacing:-.04em;line-height:1;margin:var(--space-2) 0 0}.gate-note{font-size:14px;font-weight:600;color:var(--color-neutral-800);margin:0 0 var(--space-3)}.gate .input{margin-bottom:var(--space-1)}
