:root{
    --bg: #1D2023;
    --panel: #26292D;
    --panel-2: #2E3236;
    --line: #3A3E42;
    --text: #ECEDEE;
    --text-dim: #9BA1A6;
    --accent: #E8621D;
    --accent-dim: #7A3D1C;
    --mono: 'IBM Plex Mono', 'JetBrains Mono', ui-monospace, SFMono-Regular, Consolas, monospace;
    --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  }
  *{box-sizing:border-box;}
  html{ min-width:320px; }
  body{
    margin:0;
    background: var(--bg);
    color: var(--text);
    font-family: var(--sans);
    padding: 40px 24px;
    font-size: 17px;
    display:flex;
    justify-content:center;
    min-height:100vh;
    min-height:100svh;
  }
  .wrap{ width:100%; max-width: 700px; min-width:0; }

  .header{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--line);
    padding-bottom: 14px;
  }
  .header h1{
    font-size: 27px;
    font-weight: 600;
    margin:0;
    letter-spacing: 0.2px;
  }
  .header .sym{
    font-family: var(--mono);
    color: var(--accent);
    font-size: 20px;
  }

  .language-toggle{
    display:flex;
    justify-content:flex-end;
    gap:4px;
    margin:-4px 0 12px;
  }
  .language-toggle button{
    min-width:44px;
    min-height:40px;
    padding:8px 12px;
    border:1px solid var(--line);
    border-radius:6px;
    background:var(--panel);
    color:var(--text-dim);
    font:600 14px var(--mono);
    cursor:pointer;
  }
  .language-toggle button.active{
    border-color:var(--accent);
    color:var(--accent);
  }

  .calculator-tabs{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:4px;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:8px;
    padding:3px;
    margin-bottom:16px;
  }
  .calculator-tabs button{
    min-width:0;
    min-height:52px;
    padding:12px 8px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:var(--text-dim);
    font:15px/1.2 var(--sans);
    cursor:pointer;
  }
  .calculator-tabs button.active{
    background:var(--accent);
    color:#1D2023;
    font-weight:600;
  }

  .unit-toggle{
    display:flex;
    justify-content:flex-end;
    margin-bottom: 14px;
  }
  .unit-toggle .group{
    display:flex;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: 3px;
  }
  .unit-toggle button{
    background: transparent;
    border: none;
    color: var(--text-dim);
    padding: 10px 22px;
    min-height:44px;
    border-radius: 6px;
    font-size: 15px;
    font-family: var(--mono);
    cursor:pointer;
  }
  .unit-toggle button.active{
    background: var(--accent);
    color: #1D2023;
    font-weight: 600;
  }

  .mode-switch{
    display:flex;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 3px;
    margin-bottom: 14px;
  }
  .mode-switch button{
    flex:1;
    min-width:0;
    background: transparent;
    border: none;
    color: var(--text-dim);
    padding: 14px 10px;
    min-height:48px;
    border-radius: 7px;
    font-size: 16px;
    font-family: var(--sans);
    cursor:pointer;
    transition: background .15s, color .15s;
  }
  .mode-switch button.active{
    background: var(--accent);
    color: #1D2023;
    font-weight: 600;
  }

  .sub-switch{
    display:flex;
    gap: 8px;
    margin-bottom: 10px;
  }
  .sub-switch button{
    flex:1;
    min-width:0;
    background: var(--panel);
    border: 1px solid var(--line);
    color: var(--text-dim);
    padding: 12px 8px;
    min-height:44px;
    border-radius: 8px;
    font-size: 15px;
    font-family: var(--sans);
    cursor:pointer;
  }
  .sub-switch button.active{
    border-color: var(--accent);
    color: var(--accent);
  }
  .sub-switch.dir{ margin-bottom: 16px; }

  .panel{
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 28px;
    margin-bottom: 20px;
  }

  .field{ margin-bottom: 22px; }
  .field:last-child{ margin-bottom: 0; }
  .field label{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
    font-size: 14.5px;
    color: var(--text-dim);
    margin-bottom: 8px;
  }
  .field label .unit{ color: var(--text-dim); font-family: var(--mono); white-space:nowrap; }
  .field input{
    width:100%;
    min-width:0;
    background: var(--panel-2);
    border: 1px solid var(--line);
    color: var(--text);
    font-family: var(--mono);
    font-size: 23px;
    padding: 14px 16px;
    border-radius: 8px;
    outline:none;
    min-height:52px;
  }
  .field input:focus{ border-color: var(--accent); }
  .field select{
    width:100%;
    min-height:52px;
    padding:12px 14px;
    background:var(--panel-2);
    border:1px solid var(--line);
    border-radius:8px;
    color:var(--text);
    font:20px var(--mono);
    outline:none;
  }
  .field select:focus{ border-color:var(--accent); }
  .iso-hint{
    display:block;
    margin-top:7px;
    color:var(--text-dim);
    font-size:13px;
    line-height:1.4;
  }
  .iso-results{
    margin-top:18px;
    padding:22px 26px;
    border:1px solid var(--accent-dim);
    border-radius:12px;
    background:var(--panel-2);
  }
  .iso-results h2{
    margin:0 0 12px;
    color:var(--accent);
    font:600 21px var(--mono);
  }
  .iso-results dl{ margin:0; }
  .iso-results dl > div{
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:12px 0;
    border-bottom:1px solid var(--line);
  }
  .iso-results dl > div:last-child{ border-bottom:0; }
  .iso-results dt{ color:var(--text-dim); }
  .iso-results dd{
    margin:0;
    color:var(--text);
    font:16px var(--mono);
    text-align:right;
    white-space:nowrap;
  }
  .iso-error{
    margin:14px 0;
    padding:12px 14px;
    border:1px solid #9f4936;
    border-radius:8px;
    color:#ffb49f;
    line-height:1.45;
  }
  .iso-note{
    margin:16px 2px 0;
    color:var(--text-dim);
    font-size:13px;
    line-height:1.5;
  }

  .readout{
    background: var(--panel-2);
    border: 1px solid var(--accent-dim);
    border-radius: 12px;
    padding: 26px 30px;
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .readout .rlabel{
    font-size: 15.5px;
    color: var(--text-dim);
  }
  .readout .rvalue{
    font-family: var(--mono);
    font-size: 44px;
    color: var(--accent);
    font-weight: 600;
  }
  .readout .runit{
    font-family: var(--mono);
    font-size: 17px;
    color: var(--text-dim);
    margin-left: 8px;
  }

  .formula{
    font-family: var(--mono);
    font-size: 15px;
    color: var(--text-dim);
    text-align:center;
    margin: 18px 0 0;
  }

  .ref{
    margin-top: 18px;
  }
  .ref summary{
    cursor:pointer;
    font-size: 15px;
    color: var(--text-dim);
    padding: 6px 0;
  }
  .ref table{
    width:100%;
    border-collapse: collapse;
    margin-top: 12px;
    font-size: 15px;
  }
  .ref td{
    padding: 10px 6px;
    border-bottom: 1px solid var(--line);
  }
  .ref td:first-child{ color: var(--text); }
  .ref td:last-child{
    text-align:right;
    font-family: var(--mono);
    color: var(--accent);
    white-space:nowrap;
  }

  button, input, summary{ -webkit-tap-highlight-color:transparent; }
  button{ touch-action:manipulation; }
  :focus-visible{
    outline:2px solid var(--accent);
    outline-offset:3px;
  }

  @media (max-width: 600px){
    body{
      padding:24px 16px calc(24px + env(safe-area-inset-bottom));
    }
    .header{
      align-items:center;
      gap:12px;
      margin-bottom:12px;
    }
    .header h1{
      font-size:clamp(21px, 6vw, 27px);
      line-height:1.2;
    }
    .header .sym{
      flex:none;
      font-size:18px;
    }
    .unit-toggle{ margin-bottom:12px; }
    .language-toggle{ margin-bottom:10px; }
    .calculator-tabs{ margin-bottom:12px; }
    .calculator-tabs{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .calculator-tabs button{
      padding:10px 5px;
      font-size:clamp(12px, 3.8vw, 15px);
      line-height:1.2;
    }
    .mode-switch{ margin-bottom:12px; }
    .mode-switch button{
      padding:12px 5px;
      font-size:clamp(13px, 3.5vw, 16px);
    }
    .sub-switch{ gap:6px; }
    .sub-switch button{
      padding:10px 6px;
      font-size:14px;
      line-height:1.25;
    }
    .panel{
      padding:20px 18px;
      margin-bottom:16px;
    }
    .iso-results{ padding:18px 16px; }
    .iso-results dl > div{ gap:8px; padding:11px 0; }
    .iso-results dt{ font-size:14px; }
    .iso-results dd{ font-size:14px; }
    .field{ margin-bottom:18px; }
    .field label{
      align-items:flex-start;
      flex-direction:column;
      gap:3px;
      margin-bottom:7px;
    }
    .field input{
      font-size:20px;
      padding:12px 14px;
    }
    .readout{
      align-items:flex-start;
      flex-direction:column;
      gap:8px;
      padding:20px;
    }
    .readout .rvalue{
      font-size:clamp(34px, 11vw, 44px);
    }
    .readout .runit{
      font-size:15px;
      margin-left:5px;
    }
    .formula{
      font-size:clamp(12px, 3.5vw, 15px);
      overflow-wrap:anywhere;
    }
    .ref table{ font-size:14px; }
    .ref td{ padding:9px 4px; }
  }

  @media (max-width: 360px){
    body{ padding-left:12px; padding-right:12px; }
    .panel{ padding:18px 14px; }
    .readout{ padding:18px 16px; }
    .mode-switch button{ font-size:12.5px; }
    .calculator-tabs button{ font-size:12px; }
    .sub-switch button{ font-size:13px; }
    .ref table{ font-size:13px; }
  }

  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{ scroll-behavior:auto !important; transition:none !important; }
  }
