*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
  body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif;background:#FFFFFF;color:#111827;line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased}
  .header{background:#0F2E52;color:#fff;padding:18px 32px;display:flex;align-items:center;gap:12px;border-bottom:3px solid #2B7BC4}
  .header h1{font-size:20px;font-weight:700;letter-spacing:0.3px}
  .header .badge{background:#1A5CA8;color:#fff;font-size:11px;font-weight:600;padding:3px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:0.5px}
  .subhead{max-width:960px;margin:24px auto 8px;padding:0 24px;font-size:14px;color:#4B5563}
  .container{max-width:960px;margin:0 auto 60px;padding:0 24px}
  .tabs{display:flex;gap:0;margin-bottom:0;border-bottom:2px solid #E3E8EF;flex-wrap:wrap}
  .tab-btn{padding:12px 28px;font-size:14px;font-weight:600;border:none;background:transparent;color:#9CA3AF;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all 0.15s}
  .tab-btn:hover{color:#0F2E52}
  .tab-btn.active{color:#0F2E52;border-bottom-color:#1A5CA8}
  .tab-content{display:none}
  .tab-content.active{display:block}
  .card{background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,0.08);padding:28px 32px;margin-bottom:20px}
  .card h2{font-size:18px;font-weight:600;color:#0F2E52;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #E3E8EF}
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}
  .form-grid.three{grid-template-columns:1fr 1fr 1fr}
  .field{display:flex;flex-direction:column;gap:4px}
  .field label{font-size:15px;font-weight:600;color:#374151}
  .field label .hint{font-weight:400;color:#9CA3AF;font-size:12px}
  .field input,.field select{padding:10px 12px;border:1px solid #CBD5E1;border-radius:6px;font-size:14px;color:#111827;background:#fff;transition:border-color 0.15s,box-shadow 0.15s;outline:none;font-family:inherit}
  .field input:focus,.field select:focus{border-color:#1A5CA8;box-shadow:0 0 0 3px rgba(204,120,92,0.15)}
  .field input:disabled,.field input[readonly]{background:#EEF2F7;color:#4B5563;cursor:default}
  .field-select{position:relative}
  .field-select select{appearance:none;padding-right:36px;cursor:pointer;width:100%}
  .field-select::after{content:'\25be';position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:14px;color:#9CA3AF;pointer-events:none}
  .info-box{background:#EAF2FB;border-left:4px solid #1A5CA8;padding:14px 18px;border-radius:4px;font-size:15px;color:#0F2E52;margin-bottom:16px;line-height:1.6}
  .btn-row{display:flex;gap:12px;margin-top:20px;align-items:center;flex-wrap:wrap}
  .btn{padding:10px 28px;border:none;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer;transition:background 0.15s,transform 0.1s;font-family:inherit}
  .btn:active{transform:scale(0.97)}
  .btn-primary{background:#0F2E52;color:#fff}
  .btn-primary:hover{background:#0A2340}
  .btn-secondary{background:#E3E8EF;color:#1F2937}
  .btn-secondary:hover{background:#E3E8EF}
  .btn-sm{padding:6px 16px;font-size:15px}
  .btn-danger-sm{padding:4px 10px;font-size:12px;background:#E3E8EF;color:#6B7280;border:none;border-radius:4px;cursor:pointer;font-family:inherit}
  .btn-danger-sm:hover{background:#DC2626;color:#fff}
  .calc-btn-wrap{display:flex;justify-content:center;margin-bottom:20px}
  .calc-btn-wrap .btn{padding:12px 48px;font-size:16px}
  .data-table-wrap{overflow-x:auto;margin-top:12px}
  .data-table{width:100%;border-collapse:collapse;font-size:15px}
  .data-table th{background:#EEF2F7;color:#374151;font-weight:600;font-size:12px;padding:8px;text-align:left;border-bottom:2px solid #E3E8EF;white-space:nowrap}
  .data-table td{padding:6px 8px;border-bottom:1px solid #E3E8EF;vertical-align:top}
  .data-table input,.data-table select{width:100%;padding:6px 8px;border:1px solid #CBD5E1;border-radius:4px;font-size:15px;outline:none;font-family:inherit}
  .data-table input:focus,.data-table select:focus{border-color:#1A5CA8}
  .data-table .num-input{max-width:90px;text-align:right}
  .data-table .year-input{max-width:80px}
  .data-table .actions-col{text-align:center;min-width:50px}
  .data-table .sum-row td{border-top:2px solid #E3E8EF;font-weight:600;font-size:15px;padding-top:8px}
  .data-table .sum-row .ok{color:#059669}
  .data-table .sum-row .bad{color:#DC2626}
  .results-card{border:2px solid #1A5CA8;border-radius:8px;padding:0;overflow:hidden}
  .results-header{background:#1A5CA8;color:#fff;padding:14px 24px;font-size:16px;font-weight:600}
  .results-body{padding:24px}
  .yr-group{margin-bottom:10px;border:1px solid #E3E8EF;border-radius:6px;overflow:hidden}
  .yr-hdr{display:flex;align-items:center;gap:16px;padding:10px 16px;background:#F6F8FB;cursor:pointer;border-bottom:1px solid #E3E8EF;user-select:none;transition:background 0.1s}
  .yr-hdr:hover{background:#EDF3FA}
  .yr-hdr .tog{width:20px;text-align:center;font-size:14px;color:#9CA3AF;transition:transform 0.2s}
  .yr-hdr .tog.open{transform:rotate(90deg)}
  .yr-hdr .yl{font-weight:700;color:#0F2E52;min-width:60px}
  .yr-hdr .yi{color:#374151;font-size:15px}
  .yr-hdr .yr{font-weight:700;color:#0F2E52;font-size:14px;margin-left:auto}
  .yr-det{padding:0}
  .yr-det.collapsed{display:none}
  .dtbl{width:100%;border-collapse:collapse;font-size:15px}
  .dtbl th{background:#F6F8FB;color:#6B7280;font-weight:600;font-size:12px;padding:8px 16px;text-align:right;border-bottom:1px solid #E3E8EF}
  .dtbl th:first-child{text-align:left}
  .dtbl td{padding:7px 16px;text-align:right;border-bottom:1px solid #EEF2F7;font-variant-numeric:tabular-nums}
  .dtbl td:first-child{text-align:left;color:#0F2E52;font-weight:500}
  .dtbl tr:last-child td{border-bottom:none}
  .sum-line{margin-top:16px;font-size:14px;color:#4B5563;padding:10px 14px;background:#F6F8FB;border-radius:4px}
  .rnote{margin-top:16px;font-size:12px;color:#9CA3AF;line-height:1.6;padding:12px 16px;background:#F6F8FB;border-radius:4px;border:1px solid #E3E8EF}
  .rbd-badge{display:inline-block;background:#EAF2FB;border:1px solid #BDD7EE;padding:8px 14px;border-radius:6px;font-size:15px;color:#0F2E52;margin-bottom:14px;font-weight:400}
  .rbd-badge strong{font-weight:600}
  .hidden{display:none!important}
  .page-wrap{display:flex;justify-content:center;max-width:1180px;margin:0 auto;padding:0 24px}
  .container{max-width:960px;flex:1;min-width:0}
  .checkbox-row{display:flex;align-items:center;gap:8px;margin-top:4px}
  .checkbox-row input[type=checkbox]{width:18px;height:18px;cursor:pointer}
  .checkbox-row label{font-size:15px;color:#374151;cursor:pointer}
  @media(max-width:700px){
    .form-grid,.form-grid.three{grid-template-columns:1fr}
    .card{padding:20px 16px}
    .header{padding:12px 16px}
    .header h1{font-size:17px}
    .container{padding:0 12px}
    .tab-btn{padding:10px 16px;font-size:15px}
    .yr-hdr{flex-wrap:wrap;gap:6px;padding:8px 10px}
    .yr-hdr .yl{min-width:40px}
    .yr-hdr .yi{font-size:12px;order:3;width:100%}
    .yr-hdr .yr{font-size:15px}
    .dtbl{font-size:12px}
    .dtbl th,.dtbl td{padding:5px 8px}
    .data-table{font-size:12px}
    .data-table th,.data-table td{padding:5px 6px}
    .data-table .num-input{max-width:70px}
    .data-table .year-input{max-width:65px}
    .btn{padding:8px 18px;font-size:15px}
    .calc-btn-wrap .btn{padding:10px 28px;font-size:14px}
    .results-body{padding:16px}
    .results-header{padding:12px 16px;font-size:14px}
  }
  @media(max-width:480px){
    .header{padding:10px 12px}
    .header h1{font-size:15px}
    .header .badge{font-size:10px;padding:2px 8px}
    .tab-btn{padding:8px 10px;font-size:12px}
    .card{padding:14px 10px}
    .card h2{font-size:15px}
    .data-table input,.data-table select{font-size:12px;padding:5px 4px}
    .field input,.field select{font-size:15px;padding:8px 10px}
    .yr-hdr .yi{font-size:11px}
    .data-table .num-input{max-width:55px}
    .data-table .year-input{max-width:55px}
  }

  .warn-box{background:#FFFBEB;border-left:4px solid #B45309;padding:12px 16px;border-radius:4px;font-size:13px;color:#78350F;margin-bottom:14px;line-height:1.7}
  .warn-box div+div{margin-top:8px;padding-top:8px;border-top:1px solid #FCD34D}
  .table-note{margin-top:10px;padding:10px 14px;background:#F6F8FB;border-radius:4px;font-size:14px;color:#4B5563}
  .field-select select,.field select{width:100%}
  #dcBenRows select{min-width:180px}
  .dtbl td{vertical-align:top}
  optgroup{font-style:normal;font-weight:700;color:#0F2E52}

  /* --- accessibility & chrome --- */
  .skip{position:absolute;left:-9999px;top:0;background:#0F2E52;color:#fff;padding:10px 16px;z-index:100;border-radius:0 0 6px 0}
  .skip:focus{left:0}
  a{color:#1A5CA8}
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #1A5CA8;outline-offset:2px}
  .tab-btn[aria-selected="true"]{color:#0F2E52;border-bottom-color:#1A5CA8}
  .site-footer{background:#0F2E52;color:#C7D5E5;margin-top:40px;padding:28px 24px;font-size:13px;line-height:1.8}
  .site-footer .inner{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between}
  .site-footer strong{color:#fff}
  .site-footer a{color:#7FB3E8;text-decoration:none}
  .site-footer a:hover{text-decoration:underline}
  .subhead-row{max-width:960px;margin:24px auto 8px;padding:0 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
  .subhead-row .subhead{margin:0;padding:0;flex:1;min-width:260px}
  /* --- embed mode: ?embed=1 strips our own chrome so the page blends into a host site --- */
  html.is-embed body{background:transparent}
  html.is-embed .header,html.is-embed .subhead-row,html.is-embed .site-footer,html.is-embed .skip{display:none!important}
  html.is-embed .page-wrap{padding:0 12px}
  html.is-embed .container{margin-bottom:24px}
  .dateint{font-variant-numeric:tabular-nums;letter-spacing:0.3px}
  .bad-date{border-color:#DC2626!important;background:#FEF2F2!important}
  #dcBenRows .dateint{min-width:112px}
  /* --- rules tab --- */
  .rule-card h3{font-size:16px;color:#0F2E52;margin:22px 0 8px}
  .rule-card h3:first-of-type{margin-top:0}
  .rule-card p{font-size:15px;color:#374151;line-height:1.75;margin-bottom:10px}
  .rule-card ul{margin:0 0 12px 20px;font-size:15px;color:#374151;line-height:1.75}
  .rule-card li{margin-bottom:5px}
  .callout{border-left:4px solid #1A5CA8;background:#EAF2FB;padding:14px 18px;border-radius:4px;margin:14px 0;font-size:15px;line-height:1.7}
  .callout.warn{border-left-color:#B45309;background:#FFFBEB;color:#78350F}
  .ref-table{width:100%;border-collapse:collapse;font-size:14px;margin:12px 0}
  .ref-table th{background:#EEF2F7;padding:9px 12px;text-align:left;border-bottom:2px solid #E3E8EF;font-weight:600;font-size:13px}
  .ref-table td{padding:8px 12px;border-bottom:1px solid #E3E8EF;vertical-align:top}
  .ref-table tr:last-child td{border-bottom:none}
  @media print{
    .tabs,.site-footer,.btn,.calc-btn-wrap,.skip{display:none!important}
    .tab-content{display:block!important}
    .yr-det.collapsed{display:block!important}
    body{background:#fff}
    .card{box-shadow:none;border:1px solid #E3E8EF;break-inside:avoid}
  }

  /* ============================================================
     MOBILE HARDENING
     Three real problems were present:
     1. .page-wrap and .container each applied 24px side padding, so a
        360px phone lost 96px of width to gutters.
     2. Result tables are generated by JS straight into .yr-det with no
        scroll container, so a wide row could push the whole page sideways.
     3. iOS Safari zooms the viewport whenever a focused input has a font
        size below 16px. Several inputs were 12-15px, so tapping a field
        zoomed the page in and left it there.
     ============================================================ */
  html,body{max-width:100%;overflow-x:hidden}
  .page-wrap{padding:0 16px}
  .container{padding:0}
  .data-table-wrap,.yr-det{-webkit-overflow-scrolling:touch}
  .yr-det{overflow-x:auto}
  @media(max-width:700px){
    .page-wrap{padding:0 10px}
    .container{padding:0}
    .subhead-row{padding:0 10px;gap:10px;margin-top:16px}
    .subhead-row .subhead{min-width:0;font-size:14px}
    /* let the tab bar scroll sideways rather than stack into three rows */
    .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
    .tabs::-webkit-scrollbar{display:none}
    .tab-btn{white-space:nowrap;flex:0 0 auto}
    .dtbl{min-width:400px}
    .card{padding:18px 14px}
    .results-body{padding:14px 10px}
    .yr-hdr{padding:10px 12px}
    /* 16px minimum stops iOS zooming the page when a field is focused */
    .field input,.field select,.data-table input,.data-table select,
    .dateint,input[type=number],input[type=text],select{font-size:16px}
  }
  @media(max-width:480px){
    .field input,.field select,.data-table input,.data-table select,
    .dateint,input[type=number],input[type=text],select{font-size:16px}
    .data-table .num-input{max-width:70px}
    .data-table .year-input{max-width:72px}
    .header h1{font-size:16px}
    .subhead-row{margin-top:12px}
  }

  /* ============================================================
     VISUAL REFRESH — white page, near-black text, navy chrome
     ============================================================ */
  .header h1{font-size:21px;letter-spacing:-0.2px;font-weight:700}
  .header .badge{background:#2B7BC4;font-weight:600;letter-spacing:0.4px}
  .card{border:1px solid #E3E8EF;box-shadow:0 1px 2px rgba(16,24,40,0.04);border-radius:10px}
  .card h2{font-size:17px;font-weight:650;letter-spacing:-0.2px;color:#0F2E52}
  .field label{font-weight:600;color:#1F2937;font-size:14px}
  .field input,.field select{border-radius:8px;border-color:#CBD5E1}
  .field input:focus,.field select:focus{border-color:#2B7BC4;box-shadow:0 0 0 3px rgba(43,123,196,0.15)}
  .btn{border-radius:8px;letter-spacing:0.1px}
  .btn-secondary{background:#EEF2F7;color:#1F2937;border:1px solid #E3E8EF}
  .btn-secondary:hover{background:#E3E8EF}
  .tab-btn{font-weight:600;letter-spacing:0.1px}
  .tabs{border-bottom-color:#E3E8EF}
  .info-box{background:#EAF2FB;border-left-color:#2B7BC4;border-radius:8px;color:#1F2937}
  .rbd-badge{background:#EAF2FB;border-color:#BDD7EE;border-radius:8px;color:#0F2E52}
  .results-card{border-color:#0F2E52;border-radius:10px}
  .results-header{background:#0F2E52;letter-spacing:0.2px}
  .data-table th,.dtbl th{color:#4B5563;letter-spacing:0.3px;text-transform:uppercase;font-size:11px}
  .yr-group{border-radius:8px;border-color:#E3E8EF}
  .yr-hdr{background:#F6F8FB}
  .yr-hdr .yr{color:#0F2E52}
  .sum-line{background:#F6F8FB;border:1px solid #E3E8EF;border-radius:8px;color:#374151}
  .rnote{background:#F6F8FB;border-color:#E3E8EF;color:#6B7280}
  .table-note{background:#F6F8FB;border:1px solid #E3E8EF;border-radius:8px}
  .ref-table th{text-transform:uppercase;letter-spacing:0.3px;font-size:11px;color:#4B5563}
  .callout{border-radius:8px}
  .site-footer strong{letter-spacing:0.2px}
  a{color:#1A5CA8}
  .mainnav a{color:#C7D5E5;font-weight:500}
  .mainnav a.on{border-bottom-color:#2B7BC4}

  /* --- guide pages --- */
  .crumb{font-size:13px;color:#6B7280;margin:0 0 14px;padding:0 2px}
  .crumb a{color:#1A5CA8;text-decoration:none}
  .crumb a:hover{text-decoration:underline}
  .rule-card h1{font-size:26px;line-height:1.25;color:#0F2E52;margin:0 0 16px;letter-spacing:-0.4px;font-weight:700}
  .rule-card h2{font-size:19px;color:#0F2E52;margin:26px 0 10px;padding:0;border:none;letter-spacing:-0.2px}
  .rule-card .lead{font-size:18px;line-height:1.6;color:#1F2937;margin-bottom:18px}
  .cta-box{margin-top:28px;padding:20px;background:#EAF2FB;border:1px solid #BDD7EE;border-radius:8px}
  .cta-box p{font-size:15px;color:#1F2937;margin:0 0 14px;line-height:1.65}
  .cta-box .btn{text-decoration:none;display:inline-block}
  ul.related{list-style:none;margin:0;padding:0}
  ul.related li{padding:9px 0;border-bottom:1px solid #E3E8EF;font-size:15px}
  ul.related li:last-child{border-bottom:none}
  ul.related a{color:#1A5CA8;text-decoration:none}
  ul.related a:hover{text-decoration:underline}
  .guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:14px}
  .guide-grid a{display:block;padding:14px 16px;background:#F6F8FB;border:1px solid #E3E8EF;border-left:3px solid #2B7BC4;border-radius:0 8px 8px 0;text-decoration:none;color:#0F2E52;font-size:15px;font-weight:600;line-height:1.45}
  .guide-grid a:hover{background:#EAF2FB}
  .guide-grid a span{display:block;font-weight:400;font-size:13px;color:#6B7280;margin-top:4px}
  @media(max-width:700px){.rule-card h1{font-size:22px}.rule-card .lead{font-size:16px}}

  .header{justify-content:flex-start}
  .header .brand{color:#fff;text-decoration:none;display:flex;align-items:center;gap:12px}
  .mainnav{margin-left:auto;display:flex;gap:22px;flex-wrap:wrap}
  .mainnav a{color:#cfc8b8;text-decoration:none;font-size:15px;padding:4px 0;border-bottom:2px solid transparent}
  .mainnav a:hover{color:#fff}
  .mainnav a.on{color:#fff;border-bottom-color:#CC785C}
  @media(max-width:700px){.header{flex-wrap:wrap}.mainnav{margin-left:0;width:100%;gap:16px;margin-top:8px}
    .mainnav a{font-size:13px}}
