:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#102b49;background:#102b49;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}.shell{max-width:980px;margin:auto;padding:24px 16px 70px}.top{display:flex;justify-content:space-between;align-items:center;color:#fff;margin-bottom:24px}.brand{display:flex;align-items:center;gap:13px;font-size:24px;font-weight:800}.brand img{width:48px;height:48px;border-radius:12px}.panel{background:#fff;border-radius:19px;padding:22px;margin-bottom:17px;box-shadow:0 8px 25px #061b3055}.muted{color:#607388;font-size:14px}.title{font-size:21px;font-weight:750;margin:0 0 16px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{background:#eff5f8;border-radius:13px;padding:18px}.stat strong{display:block;font-size:27px;margin:5px 0}.btn{border:0;border-radius:11px;background:#188653;color:white;padding:13px 18px;font-weight:700;font-size:15px;cursor:pointer}.btn.secondary{background:#e9f0f5;color:#102b49}.btn.danger{background:#a52d42}.btn:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #3c98e6;outline-offset:2px}.toolbar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tabs button{border:1px solid #d6e1e8;background:#f3f7fa;color:#102b49;padding:10px 13px;border-radius:10px;font-weight:700;cursor:pointer}.tabs button.active{background:#188653;color:#fff}label{display:block;font-weight:650;margin:12px 0 6px}input,textarea,select{font:inherit;width:100%;padding:13px;border:1px solid #c8d7e0;border-radius:10px;background:#fff;color:#102b49}textarea{min-height:74px;resize:vertical}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.entry{padding:13px 0;border-bottom:1px solid #e1e9ef;display:flex;justify-content:space-between;gap:12px;align-items:center}.entry:last-child{border-bottom:0}.entry small{display:block;color:#64788a;margin-top:4px}.entry button{font-size:13px}.chart{margin:18px 0}.barline{display:grid;grid-template-columns:115px 1fr 40px;gap:10px;align-items:center;margin:9px 0;font-size:13px}.track{height:19px;border-radius:7px;background:#e8f0f4;overflow:hidden}.fill{height:100%;background:linear-gradient(90deg,#188653,#4bd4a0);border-radius:7px}.calendarhead{display:flex;align-items:center;justify-content:space-between}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.day{min-height:55px;border-radius:9px;padding:7px 4px;text-align:center;background:#eff4f7}.day.has{background:#b8e9d2;border:2px solid #188653;font-weight:800}.day.blank{background:transparent}.weekday{text-align:center;font-size:12px;color:#5a6c7e}.auth{max-width:420px;margin:11vh auto 0}.hidden{display:none!important}.notice{background:#eaf5ee;padding:12px;border-radius:9px;margin:10px 0;color:#145734}.error{background:#ffe7e7;color:#932b35;padding:12px;border-radius:9px;margin:10px 0}.foot{color:#bdd0df;text-align:center;font-size:12px;margin-top:30px}button:disabled{opacity:.5} @media(max-width:650px){.stats{grid-template-columns:1fr 1fr}.stat{padding:12px}.stat strong{font-size:23px}.formgrid{grid-template-columns:1fr}.shell{padding:16px 12px 50px}.panel{padding:16px}.barline{grid-template-columns:83px 1fr 27px;gap:6px}.brand{font-size:21px}}@media print{body{background:#fff!important}.shell{max-width:none;padding:0}.top,.toolbar,.tabs,.noprint,.foot{display:none!important}.panel{box-shadow:none;border:0;margin:0;padding:10px}.printonly{display:block!important}.barline{break-inside:avoid}.entry{break-inside:avoid}#mainPanel{display:block!important}#mainPanel>:not(#reportPanel){display:none!important}#reportPanel{display:block!important}}.printonly{display:none}

/* Compact statistics: fixed track height independent of SVG intrinsic sizing */
.compact-chart{margin:14px 0!important}
.compact-chart h3{margin:0 0 8px!important}
.compact-barline{display:grid!important;grid-template-columns:115px minmax(0,1fr) 40px!important;align-items:center!important;gap:10px!important;margin:0 0 5px!important;padding:0!important;min-height:13px!important;height:13px!important;line-height:13px!important;font-size:12px!important}
.compact-barline .barlabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.compact-track{position:relative;width:100%;height:8px!important;min-height:8px!important;max-height:8px!important;background:#e8f0f4;border-radius:4px;overflow:hidden}
.compact-fill{height:8px!important;background:#188653;border-radius:4px 0 0 4px}
.compact-barline strong{font-size:12px;line-height:13px}
@media(max-width:650px){.compact-barline{grid-template-columns:83px minmax(0,1fr) 27px!important;gap:6px!important}}

/* V5: bar is one fixed-height element; no SVG intrinsic sizing or nested fill */
.compact-barline .compact-track{display:block!important;box-sizing:border-box!important;height:8px!important;min-height:8px!important;max-height:8px!important;width:100%!important;min-width:0!important;border-radius:4px!important;overflow:hidden!important;}

/* V6: explicit nested fill, background track remains light */
.compact-track .compact-fill{display:block;height:100%!important;max-height:8px;background:#188653;border-radius:4px 0 0 4px;}

/* V7: no child fill; the track itself draws a proportional gradient */
.compact-barline .compact-track{display:block!important;width:100%!important;height:8px!important;min-height:8px!important;max-height:8px!important;background-color:#e8f0f4!important;background-size:100% 100%!important;border-radius:4px!important;overflow:hidden!important;}

/* Fixed-size SVG chart rows: geometry independent of legacy .track/.fill styles */
.compact-chart{margin:12px 0!important}
.compact-chart h3{margin:0 0 7px!important}
.compact-barline{display:grid!important;grid-template-columns:115px minmax(0,1fr) 40px!important;align-items:center!important;column-gap:10px!important;margin:0 0 5px!important;padding:0!important;height:14px!important;min-height:14px!important;line-height:14px!important;font-size:12px!important}
.compact-barline .mini-bar{display:block!important;width:100%!important;height:8px!important;min-height:8px!important;max-height:8px!important;overflow:hidden!important;border-radius:4px!important;align-self:center!important}
.compact-barline .barlabel{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-barline strong{font-size:12px!important;line-height:14px!important}
@media(max-width:650px){.compact-barline{grid-template-columns:83px minmax(0,1fr) 27px!important;gap:6px!important}}
