*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
  body{font-family:Georgia,'Iowan Old Style','Palatino Linotype',Palatino,serif;background:#F7F4EC;color:#3D3929;line-height:1.5;min-height:100vh}
  .header{background:#3D3929;color:#fff;padding:16px 32px;display:flex;align-items:center;gap:12px;border-bottom:3px solid #CC785C}
  .header h1{font-size:20px;font-weight:700;letter-spacing:0.3px}
  .header .badge{background:#CC785C;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:#555}
  .container{max-width:960px;margin:0 auto 60px;padding:0 24px}
  .tabs{display:flex;gap:0;margin-bottom:0;border-bottom:2px solid #E5DFD3;flex-wrap:wrap}
  .tab-btn{padding:12px 28px;font-size:14px;font-weight:600;border:none;background:transparent;color:#888;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all 0.15s}
  .tab-btn:hover{color:#3D3929}
  .tab-btn.active{color:#3D3929;border-bottom-color:#CC785C}
  .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:#3D3929;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #E5DFD3}
  .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:#444}
  .field label .hint{font-weight:400;color:#888;font-size:12px}
  .field input,.field select{padding:10px 12px;border:1px solid #D6CFC0;border-radius:6px;font-size:14px;color:#3D3929;background:#fff;transition:border-color 0.15s;outline:none;font-family:inherit}
  .field input:focus,.field select:focus{border-color:#CC785C;box-shadow:0 0 0 3px rgba(204,120,92,0.15)}
  .field input:disabled,.field input[readonly]{background:#F1ECE3;color:#555;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:#888;pointer-events:none}
  .info-box{background:#F7EAE0;border-left:4px solid #CC785C;padding:14px 18px;border-radius:4px;font-size:15px;color:#3D3929;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:#3D3929;color:#fff}
  .btn-primary:hover{background:#30291F}
  .btn-secondary{background:#E5DFD3;color:#333}
  .btn-secondary:hover{background:#E5DFD3}
  .btn-sm{padding:6px 16px;font-size:15px}
  .btn-danger-sm{padding:4px 10px;font-size:12px;background:#E5DFD3;color:#666;border:none;border-radius:4px;cursor:pointer;font-family:inherit}
  .btn-danger-sm:hover{background:#d32f2f;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:#F1ECE3;color:#444;font-weight:600;font-size:12px;padding:8px;text-align:left;border-bottom:2px solid #E5DFD3;white-space:nowrap}
  .data-table td{padding:6px 8px;border-bottom:1px solid #E5DFD3;vertical-align:top}
  .data-table input,.data-table select{width:100%;padding:6px 8px;border:1px solid #D6CFC0;border-radius:4px;font-size:15px;outline:none;font-family:inherit}
  .data-table input:focus,.data-table select:focus{border-color:#CC785C}
  .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 #E5DFD3;font-weight:600;font-size:15px;padding-top:8px}
  .data-table .sum-row .ok{color:#2e7d32}
  .data-table .sum-row .bad{color:#d32f2f}
  .results-card{border:2px solid #CC785C;border-radius:8px;padding:0;overflow:hidden}
  .results-header{background:#CC785C;color:#fff;padding:14px 24px;font-size:16px;font-weight:600}
  .results-body{padding:24px}
  .yr-group{margin-bottom:10px;border:1px solid #E5DFD3;border-radius:6px;overflow:hidden}
  .yr-hdr{display:flex;align-items:center;gap:16px;padding:10px 16px;background:#F7F4EC;cursor:pointer;border-bottom:1px solid #E5DFD3;user-select:none;transition:background 0.1s}
  .yr-hdr:hover{background:#F0E9DE}
  .yr-hdr .tog{width:20px;text-align:center;font-size:14px;color:#888;transition:transform 0.2s}
  .yr-hdr .tog.open{transform:rotate(90deg)}
  .yr-hdr .yl{font-weight:700;color:#3D3929;min-width:60px}
  .yr-hdr .yi{color:#444;font-size:15px}
  .yr-hdr .yr{font-weight:700;color:#3D3929;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:#F9F6F0;color:#666;font-weight:600;font-size:12px;padding:8px 16px;text-align:right;border-bottom:1px solid #E5DFD3}
  .dtbl th:first-child{text-align:left}
  .dtbl td{padding:7px 16px;text-align:right;border-bottom:1px solid #F1ECE3;font-variant-numeric:tabular-nums}
  .dtbl td:first-child{text-align:left;color:#3D3929;font-weight:500}
  .dtbl tr:last-child td{border-bottom:none}
  .sum-line{margin-top:16px;font-size:14px;color:#555;padding:10px 14px;background:#F7F4EC;border-radius:4px}
  .rnote{margin-top:16px;font-size:12px;color:#888;line-height:1.6;padding:12px 16px;background:#F8F5EF;border-radius:4px;border:1px solid #E5DFD3}
  .rbd-badge{display:inline-block;background:#F7EAE0;border:1px solid #E8C9B4;padding:8px 14px;border-radius:6px;font-size:15px;color:#3D3929;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:#444;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:#FEF6E7;border-left:4px solid #b8860b;padding:12px 16px;border-radius:4px;font-size:13px;color:#6b5518;margin-bottom:14px;line-height:1.7}
  .warn-box div+div{margin-top:8px;padding-top:8px;border-top:1px solid #EFE0BE}
  .table-note{margin-top:10px;padding:10px 14px;background:#F7F4EC;border-radius:4px;font-size:14px;color:#555}
  .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:#3D3929}

  /* --- accessibility & chrome --- */
  .skip{position:absolute;left:-9999px;top:0;background:#3D3929;color:#fff;padding:10px 16px;z-index:100;border-radius:0 0 6px 0}
  .skip:focus{left:0}
  a{color:#9A5540}
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #CC785C;outline-offset:2px}
  .tab-btn[aria-selected="true"]{color:#3D3929;border-bottom-color:#CC785C}
  .site-footer{background:#3D3929;color:#cfc8b8;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:#E8A387;text-decoration:none}
  .site-footer a:hover{text-decoration:underline}
  .privacy-pill{display:inline-flex;align-items:center;gap:8px;background:#EDF5ED;border:1px solid #C7E0C7;color:#2e5c33;
    padding:7px 14px;border-radius:20px;font-size:13px;margin-left:auto}
  .subhead-row{max-width:1180px;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:#d32f2f!important;background:#fff5f5!important}
  #dcBenRows .dateint{min-width:112px}
  /* --- rules tab --- */
  .rule-card h3{font-size:16px;color:#3D3929;margin:22px 0 8px}
  .rule-card h3:first-of-type{margin-top:0}
  .rule-card p{font-size:15px;color:#444;line-height:1.75;margin-bottom:10px}
  .rule-card ul{margin:0 0 12px 20px;font-size:15px;color:#444;line-height:1.75}
  .rule-card li{margin-bottom:5px}
  .callout{border-left:4px solid #CC785C;background:#F7EAE0;padding:14px 18px;border-radius:4px;margin:14px 0;font-size:15px;line-height:1.7}
  .callout.warn{border-left-color:#b8860b;background:#FEF6E7;color:#6b5518}
  .ref-table{width:100%;border-collapse:collapse;font-size:14px;margin:12px 0}
  .ref-table th{background:#F1ECE3;padding:9px 12px;text-align:left;border-bottom:2px solid #E5DFD3;font-weight:600;font-size:13px}
  .ref-table td{padding:8px 12px;border-bottom:1px solid #E5DFD3;vertical-align:top}
  .ref-table tr:last-child td{border-bottom:none}
  @media print{
    .tabs,.site-footer,.btn,.calc-btn-wrap,.skip,.privacy-pill{display:none!important}
    .tab-content{display:block!important}
    .yr-det.collapsed{display:block!important}
    body{background:#fff}
    .card{box-shadow:none;border:1px solid #ddd;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}
    .privacy-pill{margin-left:0;font-size:12px;padding:6px 12px}
    /* 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}
  }

  .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}}
