:root{
    --bg:#F6F1E5;
    --paper:#FBF8F0;
    --ink:#20302B;
    --ink-soft:#5B6B63;
    --board:#16211D;
    --board-edge:#2A3A33;
    --gold:#E5BE5C;
    --gold-dim:#B99442;
    --line:#DCD1B8;
    --up:#3E8E63;
    --down:#B24632;
    --pill:#EFE6CE;
    --radius:18px;
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
  html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);
    font-family:'Tajawal',sans-serif;}
  body{min-height:100vh;display:flex;justify-content:center;}
  .app{width:100%;max-width:480px;padding:20px 16px 40px;}

  /* Status bar */
  .statusbar{display:flex;align-items:center;justify-content:space-between;
    margin-bottom:18px;}
  .brand{font-family:'Cairo',sans-serif;font-weight:800;font-size:20px;letter-spacing:.5px;}
  .brand span{color:var(--gold-dim);}
  .updated{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);
    background:var(--pill);padding:6px 10px;border-radius:20px;}
  .dot{width:7px;height:7px;border-radius:50%;background:var(--up);flex:none;}
  .dot.stale{background:var(--down);}
  .dot.pulse{animation:pulse 1.8s infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}

  /* Nav bar */
  .navbar{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;
    margin:0 0 16px;padding-bottom:2px;scrollbar-width:none;}
  .navbar::-webkit-scrollbar{display:none;}
  .navbar a{flex:none;display:inline-flex;align-items:center;gap:5px;font-family:'Tajawal',sans-serif;
    font-size:13px;font-weight:700;color:var(--ink-soft);background:var(--pill);
    padding:8px 14px;border-radius:20px;text-decoration:none;white-space:nowrap;
    border:1px solid transparent;transition:background .15s,color .15s;}
  .navbar a.active{background:var(--board);color:var(--gold);}
  .navbar a:not(.active):hover{background:#e9e1c9;}

  /* Flip board hero */
  .board{
    background:linear-gradient(180deg,var(--board),#0f1815);
    border-radius:var(--radius);
    padding:26px 20px 22px;
    box-shadow:0 14px 30px -14px rgba(20,30,25,.55), inset 0 0 0 1px var(--board-edge);
    text-align:center;
    position:relative;
    overflow:hidden;
  }
  .board::before{
    content:"";position:absolute;inset:0;
    background:repeating-linear-gradient(180deg, rgba(255,255,255,.025) 0px, rgba(255,255,255,.025) 1px, transparent 1px, transparent 4px);
    pointer-events:none;
  }
  .board-label{font-size:12px;color:#9FB0A8;letter-spacing:1.5px;font-weight:500;margin-bottom:10px;}
  .board-rate{
    font-family:'JetBrains Mono',monospace;font-weight:700;
    font-size:44px;color:var(--gold);letter-spacing:1px;
    text-shadow:0 0 18px rgba(229,190,92,.35);
    line-height:1.1;
  }
  .board-rate small{font-size:18px;color:#D9C79A;font-weight:500;}
  .board-note{font-size:10.5px;color:#B9C8C0;margin-top:8px;line-height:1.6;opacity:.9;}
  .board-sub{margin-top:10px;font-size:13px;color:#8FA097;}
  .board-sub b{color:#C9DAD1;font-weight:600;}
  .board-change{margin-top:8px;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;
    display:flex;justify-content:center;align-items:center;gap:5px;min-height:18px;}
  .board-change.up{color:#E8836F;}
  .board-change.down{color:#7FD8A6;}

  /* Calculator card */
  .card{background:var(--paper);border-radius:var(--radius);padding:18px;margin-top:16px;
    box-shadow:0 8px 20px -14px rgba(30,40,35,.25); border:1px solid var(--line);}
  .card h2{font-family:'Cairo',sans-serif;font-size:15px;font-weight:700;margin:0 0 12px;
    display:flex;align-items:center;gap:8px;}
  .row{display:flex;gap:10px;align-items:center;}
  .amount-wrap{flex:1;position:relative;}
  input[type=number]{
    width:100%;padding:14px 14px;border-radius:12px;border:1.5px solid var(--line);
    background:#fff;font-family:'JetBrains Mono',monospace;font-size:19px;color:var(--ink);
    font-weight:700;outline:none;
  }
  input[type=number]:focus{border-color:var(--gold-dim);}
  select{
    padding:14px 10px;border-radius:12px;border:1.5px solid var(--line);
    background:#fff;font-family:'Tajawal',sans-serif;font-weight:700;font-size:14px;color:var(--ink);
    outline:none;
  }
  .swap-btn{
    width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);
    background:#fff;display:flex;align-items:center;justify-content:center;
    font-size:18px;cursor:pointer;flex:none;color:var(--ink-soft);
    transition:transform .25s ease;
  }
  .swap-btn:active{transform:rotate(180deg);}
  .result{
    margin-top:14px;padding:16px;border-radius:12px;background:var(--pill);
    display:flex;justify-content:space-between;align-items:baseline;
  }
  .result .val{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:22px;color:var(--ink);}
  .result .lbl{font-size:12px;color:var(--ink-soft);}

  /* Rate list */
  .list-card{background:var(--paper);border-radius:var(--radius);margin-top:16px;
    border:1px solid var(--line);overflow:hidden;}
  .chart-card{background:var(--paper);border-radius:var(--radius);margin-top:16px;padding:16px 16px 10px;
    border:1px solid var(--line);}
  .chart-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
  .chart-title{font-family:'Cairo',sans-serif;font-weight:700;font-size:14px;color:var(--ink);}
  #chartCur{padding:8px 10px;border-radius:10px;border:1.5px solid var(--line);background:#fff;
    font-family:'Tajawal',sans-serif;font-weight:700;font-size:13px;color:var(--ink);}
  .chart-empty{text-align:center;font-size:12px;color:var(--ink-soft);padding:20px 10px;}

  .news-card{background:var(--paper);border-radius:var(--radius);margin-top:16px;
    border:1px solid var(--line);overflow:hidden;}
  .news-empty{text-align:center;font-size:12px;color:var(--ink-soft);padding:20px 18px;}
  .news-item{padding:12px 18px;border-top:1px solid var(--line);}
  .news-item:first-child{border-top:none;}
  .news-item .news-date{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--gold-dim);
    margin-bottom:4px;display:block;}
  .news-item .news-text{font-size:14px;color:var(--ink);line-height:1.6;}
  textarea#newsInput{width:100%;padding:12px;border-radius:12px;border:1.5px solid var(--line);
    background:#fff;font-family:'Tajawal',sans-serif;font-size:14px;color:var(--ink);
    resize:vertical;min-height:70px;outline:none;margin-bottom:10px;}
  textarea#newsInput:focus{border-color:var(--gold-dim);}

  .intro-card,.info-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-top:14px;box-shadow:0 8px 20px -14px rgba(30,40,35,.25);}
  .intro-card h1{font-family:'Cairo',sans-serif;font-size:21px;line-height:1.5;margin:0 0 8px;color:var(--ink);}
  .intro-card p,.info-card p{font-size:13.5px;line-height:1.9;color:var(--ink-soft);margin:0 0 9px;}
  .intro-card .intro-note{font-size:12px;margin:0;background:var(--pill);border-radius:10px;padding:9px 11px;}
  .info-card h2{font-family:'Cairo',sans-serif;font-size:16px;margin:0 0 9px;color:var(--ink);}
  .info-card ul{margin:0;padding-inline-start:20px;color:var(--ink-soft);font-size:13px;line-height:1.9;}
  .info-card li{margin-bottom:5px;}
  .salary-card{background:linear-gradient(160deg,#1B2B24,#0F1915);border-radius:var(--radius);
    padding:18px;margin-top:16px;box-shadow:0 10px 24px -16px rgba(20,30,25,.5);}
  .salary-card h2{font-family:'Cairo',sans-serif;font-size:15px;font-weight:700;margin:0 0 12px;color:#E8DFC8;}
  .salary-card input[type=number]{
    width:100%;padding:14px;border-radius:12px;border:1.5px solid #2A3A33;
    background:#0F1915;color:var(--gold);font-family:'JetBrains Mono',monospace;font-size:18px;
    font-weight:700;outline:none;margin-bottom:10px;
  }
  .salary-card input[type=number]::placeholder{color:#5B6B63;font-family:'Tajawal',sans-serif;font-weight:500;font-size:13px;}
  .salary-card input[type=number]:focus{border-color:var(--gold-dim);}
  .salary-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
  .salary-chip{background:#1E2E27;border:1px solid #2A3A33;color:#C9DAD1;font-family:'Tajawal',sans-serif;
    font-size:12px;font-weight:700;padding:7px 12px;border-radius:20px;cursor:pointer;}
  .salary-chip:active{background:#2A3A33;}
  .salary-results{display:flex;flex-direction:column;gap:8px;}
  .salary-row{display:flex;justify-content:space-between;align-items:center;background:#0F1915;
    border-radius:10px;padding:10px 14px;}
  .salary-row .cur{font-size:12px;color:#8FA097;font-weight:700;}
  .salary-row .val{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:17px;color:var(--gold);}

  .official-card{background:var(--paper);border-radius:var(--radius);margin-top:16px;
    border:1px solid var(--line);overflow:hidden;}
  .official-row{padding:12px 18px;border-top:1px solid var(--line);}
  .official-row:first-child{border-top:none;}
  .official-row .oc-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;}
  .official-row .oc-code{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;
    background:var(--board);color:var(--gold);padding:3px 8px;border-radius:6px;}
  .official-row .oc-diff{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;}
  .official-row .oc-diff.up{color:var(--down);}
  .official-row .oc-diff.down{color:var(--up);}
  .official-row .oc-bars{display:flex;flex-direction:column;gap:5px;}
  .official-row .oc-bar-line{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-soft);}
  .official-row .oc-bar-line b{font-family:'JetBrains Mono',monospace;color:var(--ink);font-size:13px;min-width:60px;}
  .list-head{padding:14px 18px 8px;font-family:'Cairo',sans-serif;font-weight:700;font-size:14px;
    color:var(--ink-soft);}
  .curr-row{display:flex;align-items:center;justify-content:space-between;
    padding:12px 18px;border-top:1px solid var(--line);}
  .curr-left{display:flex;align-items:center;gap:10px;}
  .curr-code{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;
    background:var(--board);color:var(--gold);padding:4px 8px;border-radius:6px;min-width:44px;text-align:center;}
  .curr-name{font-size:13px;color:var(--ink-soft);}
  .curr-rate{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:16px;}

  .footer-credit{
    text-align:center;font-family:'JetBrains Mono',monospace;font-size:11px;
    color:var(--ink-soft);opacity:.55;margin-top:18px;letter-spacing:.3px;direction:ltr;
  }
  .note{font-size:11px;color:var(--ink-soft);margin-top:14px;line-height:1.6;background:var(--pill);
    padding:10px 12px;border-radius:10px;}

  /* Improvements batch */
  .change-badge{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;margin-inline-start:6px;}
  .change-badge.up{color:#c0503f;}
  .change-badge.down{color:#2f8a5c;}
  .range-btns{display:flex;gap:6px;margin:10px 0 4px;}
  .range-btns button{flex:1;padding:7px 4px;border-radius:10px;border:1.5px solid var(--line);
    background:#fff;color:var(--ink-soft);font-family:'Tajawal',sans-serif;font-size:12px;font-weight:700;cursor:pointer;}
  .range-btns button.active{background:var(--board);color:var(--gold);border-color:var(--board);}
  .avg-note{font-size:11.5px;color:var(--ink-soft);margin-top:8px;background:var(--pill);padding:8px 10px;border-radius:10px;}
  .calc-actions{display:flex;gap:8px;margin-top:10px;}
  .calc-actions button{flex:1;padding:10px;border-radius:10px;border:1.5px solid var(--line);
    background:#fff;color:var(--ink);font-family:'Tajawal',sans-serif;font-size:12.5px;font-weight:700;
    cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;}
  .calc-actions button:active{background:var(--pill);}
  .source-note{font-size:11px;color:#8FA097;margin-top:6px;}
  .offline-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#B9762F;
    background:#FBEFD9;padding:4px 10px;border-radius:20px;margin-top:8px;}
  .skeleton{background:linear-gradient(90deg,var(--pill) 25%,#e9e1c9 37%,var(--pill) 63%);
    background-size:400% 100%;animation:sk 1.4s ease infinite;border-radius:8px;}
  @keyframes sk{0%{background-position:100% 50%}100%{background-position:0 50%}}
  .sk-line{height:12px;margin:6px auto;}
  .retry-banner{background:#FBEAEA;border:1px solid #EFC7C7;color:#8A3A3A;border-radius:12px;
    padding:12px 14px;font-size:12.5px;text-align:center;margin-top:10px;}
  .retry-banner button{margin-top:8px;background:#8A3A3A;color:#fff;border:none;border-radius:8px;
    padding:8px 16px;font-weight:700;font-size:12.5px;cursor:pointer;}
