:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#163134;background:#f3f6f2;line-height:1.55;font-size:16px}*{box-sizing:border-box}body{margin:0}main{max-width:1080px;margin:auto;padding:40px 24px}.intro{max-width:800px;margin-bottom:30px}h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.12;letter-spacing:-.035em;margin:12px 0 20px}h2{line-height:1.25;font-size:1.4rem;margin:0 0 14px}p{margin:12px 0}.lead{font-size:1.17rem;color:#3d595c}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;font-weight:750;color:#447270}.privacy{border-left:3px solid #28776b;padding-left:14px}.panel{padding:26px;margin:22px 0;border:1px solid #d5dfd8;border-radius:14px;background:white}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:18px 0}button,.file-label{font:inherit;border:1px solid #b1c7c0;border-radius:7px;background:#eef5f1;color:#143d38;padding:10px 14px;cursor:pointer}button:hover{background:#dbeee6}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ad6c0e;outline-offset:3px}.primary{background:#165e54;color:white;border-color:#165e54}.primary:hover{background:#104b43}button:disabled{opacity:.5;cursor:default}.file-label input{display:block;max-width:100%;margin-top:8px;font:inherit}details{margin:16px 0}summary{cursor:pointer;font-weight:650}code{overflow-wrap:anywhere;font-size:.85rem}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{font-size:.9rem;font-weight:650}input:not([type=file]),select{display:block;width:100%;font:inherit;padding:10px;border:1px solid #abc0bb;border-radius:6px;margin-top:6px;color:#143d38;background:white;min-width:0}#status{font-weight:650}#status.error{color:#9d291a}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metrics div{background:#f0f5f1;padding:14px;border-radius:8px;font-size:.83rem}.metrics strong{display:block;font-size:1.45rem;margin-top:6px;white-space:nowrap}.finding{background:#fff5dc;border-left:4px solid #bd820e;padding:14px}#warnings{padding-left:22px;color:#6d4620}.key{font-weight:650;margin-left:8px}.key.earlier{color:#536e87}.key.later{color:#007260}.hour{display:grid;grid-template-columns:56px 1fr 155px;gap:12px;align-items:center;width:100%;border:0;border-bottom:1px solid #e4eae6;border-radius:0;text-align:left;background:white;padding:9px 0;font-size:.85rem}.bars{display:grid;gap:3px}.bar{height:9px;min-width:1px;background:#66819b}.bar.later{background:#198572}.hour-values{text-align:right;font-variant-numeric:tabular-nums}.days{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.day{text-align:left;font-size:.85rem}.day strong,.day small{display:block}.day .day-bar{display:block;height:5px;background:#198572;margin-top:6px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.8rem}th,td{padding:8px;text-align:left;border-bottom:1px solid #dce5df;white-space:nowrap}th{background:#f0f5f1}footer{color:#58706a;font-size:.85rem}[hidden]{display:none!important}@media(max-width:700px){main{padding:24px 14px}.panel{padding:18px}.fields{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}.metrics strong{font-size:1.2rem}.days{grid-template-columns:1fr 1fr}.hour{grid-template-columns:42px 1fr 118px;gap:8px;font-size:.75rem}.actions{align-items:stretch}.actions button{flex-grow:1}.file-label{width:100%}}@media print{body{background:white}main{padding:0}.panel{break-inside:avoid}form,header,.actions,footer,#input-heading{display:none}.table-scroll{overflow:visible}.hour{padding:3px 0}.panel{box-shadow:none}}
.table-scroll{max-height:32rem}thead th{position:sticky;top:0}@media print{.table-scroll{max-height:none}}
.intro{max-width:800px;margin-bottom:30px}
@media screen{html[data-theme="dark"] :is(.metrics div,.hour,.day){background:#233c34;color:#edf4ef}html[data-theme="dark"] .finding{background:#3a3020;color:#f3d8a8}html[data-theme="dark"] :is(.lead,#warnings,.eyebrow,.key.earlier,.key.later){color:#c6dacf}html[data-theme="dark"] th{background:#233c34;color:#edf4ef}html[data-theme="dark"] #status.error{color:#ffb5a9}}
