@font-face{font-family:Manrope;src:url(/fonts/Manrope-Variable.ttf) format("truetype");font-weight:200 800;font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Medium.ttf) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Bold.ttf) format("truetype");font-weight:700;font-display:swap}:root{--accent: #6bb896;--accent-deep: #2e785c;--accent-soft: #dbf0e3;--positive: #59a67a;--warning: #c76329;--ink: #141a17;--muted: #6e8078;--background: #fafcfa;--surface: #f5faf5;--surface-elevated: #ffffff;--border: #e4ede7;--on-accent: #ffffff;--radius: 8px;--radius-lg: 14px;--shadow: 0 1px 2px rgba(20, 26, 23, .04), 0 10px 28px rgba(20, 26, 23, .06);font-synthesis:none}@media(prefers-color-scheme:dark){:root{--accent: #73d1a8;--accent-deep: #85e0b8;--accent-soft: #14382b;--positive: #78d19c;--warning: #f29145;--ink: #edf7f2;--muted: #99b3a8;--background: #080d0a;--surface: #17211c;--surface-elevated: #1f2924;--border: #232e28;--on-accent: #06130d;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--background);color:var(--ink);font-family:Manrope,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;font-weight:400;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.num,.metric{font-family:Satoshi,Manrope,system-ui,sans-serif;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}h1{font-size:1.9rem}h2{font-size:1.1rem;font-weight:600}.muted{color:var(--muted)}.small{font-size:.8rem}.section-label{font-size:.82rem;font-weight:600;color:var(--muted)}.centered{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.app{max-width:880px;margin:0 auto;padding:0 1.1rem 5rem}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1rem;padding:1rem 0 .85rem;background:color-mix(in srgb,var(--background) 86%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.05rem}.brand-mark{color:var(--accent-deep);font-size:1.3rem}.brand-mark.large{font-size:2.6rem}.tabs{display:flex;gap:.15rem;margin-left:auto;padding:.2rem;background:var(--surface);border-radius:999px}.tab{border:none;background:transparent;color:var(--muted);padding:.4rem .85rem;border-radius:999px;cursor:pointer;font:inherit;font-size:.88rem;font-weight:600}.tab:hover{color:var(--ink)}.tab.active{background:var(--surface-elevated);color:var(--accent-deep);box-shadow:var(--shadow)}.app-main{margin-top:1.4rem}.panel{display:flex;flex-direction:column;gap:1.1rem}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.panel-head h1{font-family:Manrope}.card{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow)}.stack{display:flex;flex-direction:column;gap:.9rem;margin-bottom:1rem}.row{display:flex;gap:.6rem;flex-wrap:wrap}button,.button{font:inherit}.primary{background:var(--accent-deep);color:var(--on-accent);border:none;padding:.6rem 1.05rem;border-radius:999px;cursor:pointer;font-weight:600}.primary:disabled{opacity:.55;cursor:default}.ghost{background:transparent;color:var(--ink);border:1px solid var(--border);padding:.6rem 1.05rem;border-radius:999px;cursor:pointer}.button{display:inline-block;background:var(--surface);color:var(--accent-deep);border:1px solid var(--border);padding:.55rem 1rem;border-radius:999px;text-decoration:none;font-weight:600}.button:hover{border-color:var(--accent)}.icon-button{display:inline-grid;place-items:center;width:40px;height:36px;border:none;border-radius:999px;background:var(--surface);color:var(--accent-deep);cursor:pointer;font-size:1.2rem;box-shadow:var(--shadow)}.link-button{background:none;border:none;color:var(--accent-deep);cursor:pointer;padding:.2rem .35rem;font:inherit;font-weight:600}.link-button.danger{color:var(--warning)}.link-button:hover{text-decoration:underline}.segmented{display:flex;gap:.15rem;padding:.22rem;background:var(--surface);border-radius:999px;border:1px solid var(--border)}.segmented button{flex:1;border:none;background:transparent;color:var(--muted);padding:.45rem .5rem;border-radius:999px;cursor:pointer;font-weight:600;font-size:.85rem;white-space:nowrap}.segmented button.active{background:var(--surface-elevated);color:var(--accent-deep);box-shadow:var(--shadow)}label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.88rem}input,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.55rem .65rem}input:focus,select:focus{outline:2px solid color-mix(in srgb,var(--accent) 60%,transparent);outline-offset:1px}.login{width:min(360px,92vw);display:flex;flex-direction:column;gap:.9rem;text-align:center;align-items:center;border-radius:var(--radius-lg)}.login input,.login .primary{width:100%}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.7rem}.metric-tile{background:var(--surface);border-radius:var(--radius);padding:.95rem 1rem;display:flex;flex-direction:column;gap:.55rem}.metric-tile .label{font-size:.76rem;font-weight:600;color:var(--accent-deep);text-transform:none}.metric-tile .value{font-size:1.5rem;font-weight:600;color:var(--ink)}.history-list{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-elevated)}.year-band{background:var(--surface);padding:.5rem .95rem;font-size:.82rem;font-weight:600;color:var(--muted);border-top:1px solid var(--border)}.year-band:first-child{border-top:none}.fast-row{display:flex;align-items:center;gap:.75rem;min-height:58px;padding:.6rem .95rem;border-top:1px solid var(--border);cursor:default}.fast-row:hover{background:var(--surface)}.fast-row .lead{display:flex;flex-direction:column;gap:.2rem}.fast-row .start{font-weight:600;font-size:.95rem}.fast-row .sub{font-size:.82rem;color:var(--muted)}.fast-row .sub.active{color:var(--accent-deep);font-weight:600}.fast-row .trail{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:.2rem}.fast-row .dur{font-weight:600;font-size:1.05rem}.fast-row .dur.missed{color:var(--warning)}.fast-row .target{font-size:.78rem;color:var(--muted)}.fast-row .actions{display:flex;gap:.2rem;margin-left:.5rem}.empty{text-align:center;padding:2.5rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--muted)}.chart-card{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1rem .75rem;box-shadow:var(--shadow)}.bars{position:relative;height:180px;display:flex;align-items:flex-end;gap:3px;padding-top:18px}.bar-col{position:relative;flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0}.bar-fill{width:100%;max-width:30px;background:var(--accent);border-radius:4px 4px 2px 2px;transition:height .25s ease}.bar-fill.below{background:var(--warning)}.bar-val{font-size:.7rem;font-weight:600;color:var(--accent-deep);margin-bottom:3px;line-height:1}.bar-val.below{color:var(--warning)}.target-line{position:absolute;left:0;right:0;border-top:1px dashed var(--muted);opacity:.7;pointer-events:none}.target-tag{position:absolute;right:0;top:-.55rem;font-size:.66rem;color:var(--muted);background:var(--surface-elevated);padding:0 .2rem}.bar-fill.hovered{filter:brightness(1.08);outline:2px solid color-mix(in srgb,var(--accent-deep) 35%,transparent);outline-offset:1px}.bar-tooltip{position:absolute;top:-2px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;padding:.25rem .5rem;background:var(--ink);color:var(--background);border-radius:6px;font-size:.72rem;line-height:1.2;white-space:nowrap;pointer-events:none;z-index:3;box-shadow:var(--shadow)}.bar-tooltip strong{font-weight:600}.bars-axis{display:flex;gap:3px;margin-top:.4rem}.axis-tick{flex:1;min-width:0;text-align:center;font-size:.66rem;color:var(--muted);white-space:nowrap;overflow:visible}.calendar{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.95rem;box-shadow:var(--shadow)}.calendar-head{display:flex;align-items:center;margin-bottom:.85rem}.calendar-head .month{font-weight:600;font-size:.92rem;color:var(--muted)}.calendar-head .nav{margin-left:auto;display:flex;gap:.25rem}.calendar-head .nav button{width:34px;height:34px;border:none;background:var(--surface);border-radius:999px;color:var(--ink);cursor:pointer}.calendar-head .nav button:disabled{opacity:.34;cursor:default}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-grid .dow{text-align:center;font-size:.72rem;font-weight:600;color:var(--muted);padding-bottom:.2rem}.cal-cell{min-height:46px;border-radius:var(--radius);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:4px 0}.cal-cell.blank{background:transparent}.cal-cell .num{font-size:.82rem;font-weight:600;color:var(--ink)}.cal-cell .dot{width:8px;height:8px;border-radius:999px}.cal-cell .dot.recorded{background:var(--accent)}.cal-cell .dot.missed{background:var(--warning);width:11px;height:11px;position:relative}.cal-cell .dot.spacer{background:transparent}.cal-legend{display:flex;gap:1rem;margin-top:.8rem;font-size:.78rem;color:var(--muted)}.cal-legend span{display:inline-flex;align-items:center;gap:.35rem}.cal-legend .dot{width:8px;height:8px;border-radius:999px;display:inline-block}.import-result{background:var(--surface);border-radius:var(--radius);padding:.75rem .9rem}.import-result ul{margin:.4rem 0 0;padding-left:1.1rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#080d0a80;display:grid;place-items:center;padding:1rem;z-index:40}.modal{width:min(440px,96vw);background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.5rem}.modal h2{margin-bottom:1rem}.modal form{display:flex;flex-direction:column;gap:.85rem}.form-preview{margin:0;font-size:.84rem}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem}.toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);padding:.7rem 1.1rem;border-radius:999px;box-shadow:var(--shadow);cursor:pointer;z-index:60;max-width:90vw;font-weight:600;font-size:.9rem}.toast-info{background:var(--surface-elevated);border:1px solid var(--border)}.toast-success{background:var(--accent-deep);color:var(--on-accent)}.toast-error{background:var(--warning);color:#fff}
