:root{
  --ink:#1b2a41; --paper:#fafbfc; --card:#ffffff; --line:#dde4ec;
  --teal:#0e7c66; --teal-dark:#0a5c4c; --amber:#b7791f; --amber-bg:#fdf6e9;
  --slate:#5a6b7e; --danger:#b3372f;
  --mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --radius:10px; --shadow:0 1px 3px rgba(27,42,65,.08),0 4px 14px rgba(27,42,65,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.65;font-size:16px}
a{color:var(--teal);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:900px;margin:0 auto;padding:0 16px}

/* Header */
header.site{background:var(--ink);color:#fff}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:9px;color:#fff;font-weight:700;font-size:1.06rem;letter-spacing:.2px}
.logo:hover{text-decoration:none}
.logo .tick{width:26px;height:26px;border-radius:7px;background:var(--teal);display:grid;place-items:center;font-family:var(--mono);font-size:.72rem;font-weight:700;color:#fff}
nav.main{display:flex;gap:2px;flex-wrap:wrap}
nav.main a{color:#cfd8e3;font-size:.86rem;padding:6px 10px;border-radius:6px}
nav.main a:hover{background:rgba(255,255,255,.1);color:#fff;text-decoration:none}
nav.main a[aria-current]{background:var(--teal);color:#fff}

/* Breadcrumbs */
.crumbs{font-size:.83rem;color:var(--slate);margin:14px 0 4px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.crumbs li+li:before{content:"›";margin:0 6px;color:#a9b4c0}
.crumbs span[aria-current]{color:var(--ink);font-weight:600}

/* Hero */
.hero{padding:8px 0 4px}
h1{font-size:1.72rem;line-height:1.22;margin:.35em 0 .3em;letter-spacing:-.3px}
.sub{color:var(--slate);margin:0 0 18px;max-width:62ch}

/* Calculator card */
.calc{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin:10px 0 26px}
.calc h2{margin:0 0 4px;font-size:1.05rem}
.hint{font-size:.82rem;color:var(--slate);margin:0 0 14px}
.hint code{background:#eef2f7;border-radius:4px;padding:1px 5px;font-family:var(--mono);font-size:.78rem}

/* Time grid */
table.grid{width:100%;border-collapse:collapse}
table.grid th{font-size:.72rem;text-transform:uppercase;letter-spacing:.6px;color:var(--slate);text-align:left;padding:6px 6px;border-bottom:2px solid var(--line)}
table.grid td{padding:5px 4px;border-bottom:1px solid var(--line);vertical-align:middle}
table.grid td.day{font-weight:600;font-size:.9rem;width:52px;color:var(--ink)}
.grid input[type=text],.grid input[type=number]{width:100%;padding:10px 8px;border:1.5px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:.95rem;color:var(--ink);background:#fff;transition:border-color .15s}
.grid input:focus{outline:none;border-color:var(--teal)}
.grid input.bad{border-color:var(--danger);background:#fdf1f0}
td.dtot{font-family:var(--mono);font-weight:600;text-align:right;white-space:nowrap;font-size:.92rem;width:74px;color:var(--teal-dark)}
td.dtot.ot{color:var(--amber)}

/* Options row */
.opts{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin:16px 0 4px;padding-top:14px;border-top:1px dashed var(--line);font-size:.9rem}
.opts label{display:flex;align-items:center;gap:7px;cursor:pointer}
.opts input[type=number]{width:86px;padding:8px;border:1.5px solid var(--line);border-radius:8px;font-family:var(--mono)}
.opts input[type=checkbox]{width:17px;height:17px;accent-color:var(--teal)}

/* Totals bar — the signature element */
.totals{position:sticky;bottom:0;z-index:5;background:var(--ink);color:#fff;border-radius:var(--radius);margin:18px 0;padding:14px 18px;display:flex;flex-wrap:wrap;gap:6px 28px;align-items:baseline;box-shadow:0 -2px 18px rgba(27,42,65,.25)}
.totals .cell{display:flex;flex-direction:column;min-width:104px}
.totals .lab{font-size:.68rem;text-transform:uppercase;letter-spacing:.8px;color:#9fb0c3}
.totals .val{font-family:var(--mono);font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;transition:color .2s}
.totals .val.flash{color:#7fe0c8}
.totals .val small{font-size:.85rem;color:#9fb0c3;font-weight:400}
.totals .val.ot{color:#f2c063}

/* Buttons */
.actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 2px}
button,.btn{font:inherit;cursor:pointer;border-radius:8px;padding:10px 16px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-weight:600;font-size:.9rem;transition:transform .06s,background .15s}
button:hover,.btn:hover{background:#f0f4f8;text-decoration:none}
button:active{transform:scale(.97)}
button.primary{background:var(--teal);border-color:var(--teal);color:#fff}
button.primary:hover{background:var(--teal-dark)}
button.quiet{border-color:transparent;color:var(--slate)}
.note{font-size:.8rem;color:var(--slate)}

/* Result panel (small tools) */
.result{background:#eefaf6;border:1.5px solid #bfe6da;border-radius:var(--radius);padding:16px 18px;margin:14px 0;font-size:1.02rem}
.result strong{font-family:var(--mono);font-size:1.35rem;color:var(--teal-dark);font-variant-numeric:tabular-nums}
.result .aside{color:var(--slate);font-size:.88rem}

/* Content */
article{margin:34px 0}
article h2{font-size:1.32rem;margin:1.8em 0 .5em;letter-spacing:-.2px}
article h3{font-size:1.05rem;margin:1.5em 0 .4em}
article p,article li{color:#33415a;max-width:70ch}
.example{background:var(--amber-bg);border-left:4px solid var(--amber);padding:12px 16px;border-radius:0 8px 8px 0;margin:14px 0;font-size:.94rem}

/* Chart tables */
table.chart{border-collapse:collapse;margin:12px 0;font-size:.92rem;width:100%;max-width:560px}
table.chart th{background:var(--ink);color:#fff;padding:8px 12px;text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.5px}
table.chart td{padding:7px 12px;border-bottom:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums}
table.chart tr:nth-child(even) td{background:#f4f7fa}

/* FAQ */
.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq summary{cursor:pointer;font-weight:600;padding:10px 0;list-style-position:outside}
.faq p{margin:.3em 0 1em}

/* Related tools */
.related{margin:38px 0}
.related h2{font-size:1.1rem}
.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;padding:0;margin:14px 0;list-style:none}
.tools-grid a{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;color:var(--ink);transition:border-color .15s,transform .1s}
.tools-grid a:hover{border-color:var(--teal);text-decoration:none;transform:translateY(-1px)}
.tools-grid .t{font-weight:700;font-size:.95rem;color:var(--teal-dark)}
.tools-grid .d{font-size:.82rem;color:var(--slate);margin-top:3px}

/* Embed box */
.embed{background:#f0f4f8;border-radius:var(--radius);padding:14px 16px;margin:20px 0}
.embed textarea{width:100%;font-family:var(--mono);font-size:.78rem;border:1px solid var(--line);border-radius:6px;padding:8px;background:#fff;resize:vertical}

/* Footer */
footer.site{background:var(--ink);color:#9fb0c3;margin-top:56px;font-size:.85rem}
footer.site .wrap{padding:28px 16px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
footer.site h4{color:#fff;margin:0 0 8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.7px}
footer.site ul{list-style:none;margin:0;padding:0}
footer.site li{margin:5px 0}
footer.site a{color:#cfd8e3}
footer.site .fine{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:14px;color:#7e8fa3}

@media(max-width:640px){
  h1{font-size:1.42rem}
  table.grid th{font-size:.62rem;padding:6px 3px}
  table.grid td{padding:4px 2px}
  table.grid td.day{width:38px;font-size:.8rem}
  table.grid td:nth-child(4){width:64px}
  td.dtot{width:56px;font-size:.82rem}
  .grid input{padding:11px 5px;font-size:16px}
  .totals .val{font-size:1.22rem}
  .calc{padding:14px 8px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

@media print{
  header.site,footer.site,.actions,.related,.crumbs,article,.embed,.opts,.hint{display:none!important}
  body{background:#fff}
  .calc{box-shadow:none;border:1px solid #999}
  .totals{position:static;background:#fff;color:#000;border:2px solid #000}
  .totals .lab{color:#444}.totals .val{color:#000}
  .print-head{display:block!important;margin-bottom:12px}
}
.print-head{display:none}
