body{max-width:1600px}.hero{display:flex;align-items:center;gap:26px;background:#2eb0e2;color:#fff;border-radius:18px;padding:28px 34px;margin-bottom:24px}.hero img{width:120px;height:120px;object-fit:contain}.hero h1{color:#fff;font-family:'Aptos Display','Segoe UI',sans-serif;font-size:40px;letter-spacing:-.8px;margin:0 0 8px}.hero p{margin:0}.hero div>p:first-child{font-size:12px;font-weight:700;letter-spacing:1.8px;margin-bottom:10px}main{background:transparent;border:0;padding:0}.card,#results{margin:0 0 24px;padding:28px;background:#fff;border:1px solid #d8e6ee;border-radius:16px}h2{margin:0 0 20px;font-size:23px;letter-spacing:-.4px}.uploads{display:grid;grid-template-columns:1fr 1fr;gap:24px}.drop{position:relative;display:flex;min-height:150px;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:22px;border:2px dashed #a0cfe2;border-radius:12px;background:#f2f9fc;cursor:pointer}.drop strong{font-size:21px}.drop small{font-size:13px;font-weight:400;color:#647c8a}.drop span{color:#58768a;font-size:14px}.drop input{position:absolute;width:1px;height:1px;clip-path:inset(50%)}.drop.over{border-color:#146e92;background:#dfF1fa}.drop:focus-within{outline:3px solid #167da7;outline-offset:3px}.file-row{margin-top:12px;padding:14px;border:1px solid #d9e7ef;border-radius:10px;min-width:0;background:#fafcfe}.file-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.file-heading strong{overflow-wrap:anywhere;font-size:14px}.file-row button{margin:0;padding:6px 9px;font-size:12px}.file-row label{font-size:12px;margin-top:10px;display:block}.file-row p{font-size:13px;margin:8px 0 0;color:#5d7789}.file-row .error,#status.error{color:#a53434}.period-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}label{font-size:14px;font-weight:600}input[type=date],input[type=search]{display:block;width:100%;padding:11px;margin-top:7px;border:1px solid #b5cfdd;border-radius:7px;font:inherit;color:#183b50;background:#fff}.settings{margin-top:18px;padding:16px 20px}.settings summary,.help summary{font-weight:600;cursor:pointer}.settings-scroll{overflow:auto}.target-settings{min-width:660px;font-size:14px;margin-top:16px}.target-settings th{background:#e8f3f9;color:#234a60}.target-settings td{font-size:14px!important;color:#183b50!important}.target-settings input{margin:0}.target-settings th:first-child{min-width:180px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.actions button{margin-top:16px}.quiet{color:#126e94;background:#fff;border:1px solid #bfd7e5}.quiet:hover:enabled{color:#fff}.section-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.section-heading h2{margin-bottom:8px}.section-heading button{margin:0}.counts{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.counts span{padding:12px 16px;border-radius:10px;background:#eef6fb;font-size:14px}.counts b{font-size:21px;margin-right:5px}.preview-toolbar{display:flex;gap:18px;align-items:end;margin:18px 0}.preview-toolbar label{flex:1}.preview-toolbar button{margin:0}.table-scroll{max-height:620px}#preview{min-width:1450px}#preview th{min-width:115px}#preview th:first-child{min-width:185px}#preview th:nth-child(3){min-width:140px}.help{margin-top:22px;color:#526b7b;font-size:14px}.help p{margin:12px 0}.file-row select{font-size:14px}#status{white-space:pre-line}#manual-roster:empty{display:none}@media(max-width:800px){.uploads,.period-fields{grid-template-columns:1fr}.section-heading{flex-direction:column}.card,#results{padding:20px}.hero{padding:22px;gap:18px}.hero img{width:90px;height:90px}.hero h1{font-size:32px}}@media(max-width:480px){.hero img{width:72px;height:72px}.hero h1{font-size:27px}.hero{gap:12px;padding:18px}.preview-toolbar{flex-wrap:wrap}.preview-toolbar label{flex-basis:100%}}

.period-fields{grid-template-columns:1fr;max-width:340px}.hours-so-far{margin-top:24px;padding:22px;background:#f2f8fc;border:1px solid #cee2ed;border-radius:12px}.hours-so-far h2{font-size:20px;margin:0 0 8px}.hours-so-far .note{margin:0 0 18px}.minimum-hours-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.minimum-hours-fields input{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #b5cfdd;border-radius:7px;font:inherit;color:#183b50;background:#fff}@media(max-width:700px){.minimum-hours-fields{grid-template-columns:1fr}}

/* Hours calculator */
.hours-calculator{margin-top:22px;border-top:1px solid #cee2ed;padding-top:18px}
.hours-calculator summary{font-weight:600;cursor:pointer}
.calculator-fields{display:grid;grid-template-columns:minmax(0,360px) minmax(0,340px);gap:28px;margin-top:22px;align-items:start}
.calculator-fields input,.calculator-fields select{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #b5cfdd;border-radius:7px;font:inherit;color:#183b50;background:#fff}
.calculator-fields #calc-expression{font-size:20px;font-variant-numeric:tabular-nums}
.hours-so-far #calc-help{font-size:12px;line-height:1.5;margin:9px 0 14px}
.calculator-keys{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.calculator-keys button{margin:0;padding:10px;min-height:44px;font-size:20px;font-weight:500;border-radius:8px}
.calculator-keys .calc-operator{background:#e0eff7}
.calculator-keys button:hover:enabled{background:#126e94;color:#fff}
.calculator-fields :focus-visible{outline:3px solid #167da7;outline-offset:3px}
.calculator-result{display:flex;flex-direction:column;gap:8px;margin-top:22px;padding:20px;background:#fff;border:1px solid #d5e5ee;border-radius:10px;overflow-wrap:anywhere}
.calculator-total-label{color:#58768a;font-size:12px;font-weight:600}
.calculator-result output{font-size:23px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.35}
#calc-duration{color:#58768a;font-size:14px;font-variant-numeric:tabular-nums}
#calc-duration:empty{display:none}
#calc-apply{margin-top:16px;width:100%}
.hours-so-far #calc-note{margin:12px 0 0}
.hours-so-far #calc-note:empty{display:none}
@media(min-width:701px) and (max-width:1050px){.minimum-hours-fields{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.calculator-fields{grid-template-columns:minmax(0,1fr);gap:22px;max-width:420px}.calculator-result{margin-top:16px}}
