/* ============================================================
   Kalkulator KPR Pro — Hendrik Panthron
   style.css  |  v3.1  |  © 2026
   Mobile-First · Overflow-Safe
   ============================================================ */

/* ═══ THEME ══════════════════════════════════════════════════ */
:root{
  --bg:#F0EDE6;--bg2:#FFFFFF;--bg3:#F7F5F1;--bg4:#EDE9E2;
  --text:#1C1917;--text2:#6B6560;--text3:#9E9890;
  --accent:#8B5E20;--accent2:#A97428;--accent-lt:#C9922A;
  --accent-bg:rgba(139,94,32,0.07);--accent-bg2:rgba(139,94,32,0.13);
  --border:rgba(139,94,32,0.18);--border2:rgba(139,94,32,0.09);
  --shadow:0 4px 24px rgba(0,0,0,0.07);--shadow2:0 1px 4px rgba(0,0,0,0.06);
  --teal:#1B7A6E;--coral:#C0522E;--green:#2E7D52;--red:#B84040;--blue:#2A5F8F;
  --radius:12px;--radius-sm:8px;
  --hdr-bg:#FFFFFF;--hdr-border:#E8E2D8;--btn-text:#FFFFFF;
  --touch:44px;
}
[data-theme="dark"]{
  --bg:#0B1623;--bg2:#111E2F;--bg3:#172744;--bg4:#0D1B2A;
  --text:#EDE8DF;--text2:#BFB89F;--text3:#8A8070;
  --accent:#C9922A;--accent2:#E5A93A;--accent-lt:#F4C878;
  --accent-bg:rgba(201,146,42,0.08);--accent-bg2:rgba(201,146,42,0.16);
  --border:rgba(201,146,42,0.22);--border2:rgba(201,146,42,0.10);
  --shadow:0 8px 32px rgba(0,0,0,0.40);--shadow2:0 2px 8px rgba(0,0,0,0.30);
  --teal:#2A9D8F;--coral:#E76F51;--green:#52B788;--red:#E07070;--blue:#5A9ED4;
  --hdr-bg:#0D1B2A;--hdr-border:rgba(201,146,42,0.20);--btn-text:#0B1623;
}

/* ═══ RESET — CRITICAL OVERFLOW PREVENTION ═══════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* *** THE MOST IMPORTANT RULES *** */
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  overflow-x:hidden;          /* ← stops horizontal scroll at root */
  max-width:100%;
}
body{
  background:var(--bg);color:var(--text);
  font-family:'Outfit',sans-serif;font-size:14px;line-height:1.6;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;          /* ← belt-and-suspenders */
  max-width:100%;
  word-wrap:break-word;
  overflow-wrap:break-word;
}
img,svg{display:block;max-width:100%}
button{cursor:pointer;font-family:inherit}
input,button,select,textarea{-webkit-appearance:none;appearance:none}

/* ═══ HEADER ════════════════════════════════════════════════
   Mobile: brand-row (icon+name+toggle) | clock-row (full-w)
════════════════════════════════════════════════════════════ */
.site-header{
  background:var(--hdr-bg);
  border-bottom:1px solid var(--hdr-border);
  padding:10px 14px 8px;
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;
  position:sticky;top:0;z-index:200;
  box-shadow:var(--shadow2);
  transition:background .3s,border-color .3s;
  /* Prevent header from being wider than viewport */
  width:100%;max-width:100%;
}
.brand{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.brand-icon{
  width:36px;height:36px;flex-shrink:0;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;
}
.brand-text{min-width:0}
.brand-text h1{
  font-family:'Playfair Display',serif;
  font-size:15px;font-weight:700;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.brand-text p{font-size:9px;color:var(--text3);letter-spacing:.06em;text-transform:uppercase}

/* Clock — own row on mobile, flex-1 on desktop */
.header-clock-row{width:100%;text-align:center}
#liveClock{
  font-family:'DM Mono',monospace;font-size:10px;color:var(--text2);
  background:var(--bg3);border:1px solid var(--border2);
  border-radius:16px;padding:4px 10px;
  display:inline-block;
  max-width:calc(100% - 4px);     /* ← never wider than screen */
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.trademark{display:none;font-size:11px;color:var(--text3)}
.trademark span{color:var(--accent);font-weight:600}

/* Theme toggle */
.theme-toggle{
  display:flex;align-items:center;gap:6px;
  background:var(--bg3);border:1px solid var(--border);
  border-radius:20px;padding:6px 10px;
  font-size:11px;font-weight:500;color:var(--text2);
  transition:all .2s;white-space:nowrap;min-height:var(--touch);
}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}
.toggle-track{width:30px;height:16px;background:var(--border);border-radius:8px;position:relative;transition:background .3s;flex-shrink:0}
[data-theme="dark"] .toggle-track{background:var(--accent)}
.toggle-thumb{width:12px;height:12px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:transform .3s}
[data-theme="dark"] .toggle-thumb{transform:translateX(14px)}

@media(min-width:768px){
  .site-header{padding:12px 24px;flex-wrap:nowrap}
  .brand-icon{width:40px;height:40px;font-size:18px;border-radius:10px}
  .brand-text h1{font-size:17px}
  .brand-text p{font-size:10px}
  .header-clock-row{width:auto;flex:1}
  #liveClock{font-size:11px;padding:5px 14px}
  .trademark{display:block}
}
@media(min-width:1024px){#liveClock{font-size:12px}}

/* ═══ TOOLTIP ════════════════════════════════════════════════ */
#floatTip{
  position:fixed;z-index:9999;
  background:var(--bg2);border:1px solid var(--border);
  border-radius:12px;box-shadow:0 8px 40px rgba(0,0,0,0.2);
  padding:13px 15px;font-size:12px;line-height:1.7;color:var(--text);
  display:none;pointer-events:none;
  width:290px;max-width:calc(100vw - 32px);
  word-wrap:break-word;overflow-wrap:break-word;
}
#floatTip strong{display:block;color:var(--accent);margin-bottom:5px;font-size:10px;text-transform:uppercase;letter-spacing:.05em}
#floatTip.visible{display:block}
/* Mobile: anchor to bottom */
@media(max-width:639px){
  #floatTip{left:16px!important;right:16px!important;width:auto!important;bottom:80px!important;top:auto!important}
}

/* ═══ LAYOUT ════════════════════════════════════════════════ */
.app{
  max-width:1460px;margin:0 auto;
  padding:14px 12px 0;
  overflow:hidden;   /* ← contain all children */
}
.top-grid{display:flex;flex-direction:column;gap:16px}
@media(min-width:1024px){
  .app{padding:24px 24px 0}
  .top-grid{display:grid;grid-template-columns:390px 1fr;gap:22px;align-items:start}
}

/* ═══ PANELS ════════════════════════════════════════════════ */
.panel{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--radius);overflow:hidden;   /* ← keep children in */
  box-shadow:var(--shadow2);transition:background .3s,border-color .3s;
  min-width:0;max-width:100%;                    /* ← flex-child safe */
}
.panel-header{
  padding:12px 14px;border-bottom:1px solid var(--border2);
  display:flex;align-items:center;gap:8px;
  background:var(--bg3);transition:background .3s;
}
.panel-header .ph-icon{font-size:14px}
.panel-header h2{font-family:'Playfair Display',serif;font-size:13px;font-weight:600;color:var(--accent)}
.panel-body{padding:14px}
@media(min-width:640px){.panel-body{padding:18px}}

/* ═══ FORMS ════════════════════════════════════════════════ */
.form-group{margin-bottom:14px}
.label-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}
label{font-size:11px;font-weight:600;color:var(--text2);letter-spacing:.05em;text-transform:uppercase}

/* Tip button — larger touch target */
.tip-btn{
  width:20px;height:20px;border-radius:50%;
  background:var(--accent-bg2);border:1px solid var(--border);
  color:var(--accent);font-size:9px;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all .15s;line-height:1;padding:0;
  position:relative;
}
/* Invisible expanded touch area */
.tip-btn::after{content:'';position:absolute;inset:-12px}
.tip-btn:hover,.tip-btn:active{background:var(--accent);color:var(--btn-text)}

/* ─── INPUT WRAP — THE KEY FIX ────────────────────────────
   The root cause of right-side overflow on mobile:
   inputs with width:100% inside flex rows expand beyond container.
   Fix: prefix/suffix are flex-shrink:0, input gets flex:1 + min-width:0
──────────────────────────────────────────────────────────── */
.input-wrap{
  display:flex;align-items:stretch;
  width:100%;max-width:100%;overflow:hidden;
}
.prefix,.suffix{
  background:var(--bg3);border:1px solid var(--border2);
  color:var(--accent);padding:0 10px;
  min-height:var(--touch);
  display:flex;align-items:center;
  font-size:12px;font-weight:600;font-family:'DM Mono',monospace;
  white-space:nowrap;
  flex-shrink:0;    /* ← never shrink prefix/suffix */
  flex-grow:0;
}
.prefix{border-right:none;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}
.suffix{border-left:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0}

/* Base input styles — for standalone inputs (not in input-wrap) */
input[type="number"],input[type="text"],input[type="search"]{
  display:block;
  width:100%;           /* fine for standalone inputs */
  min-height:var(--touch);
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--radius-sm);
  color:var(--text);padding:0 12px;
  font-family:'DM Mono',monospace;font-size:13px;
  outline:none;transition:border-color .2s,box-shadow .2s;
  min-width:0;          /* ← allow shrinking below intrinsic size */
}
input[type="number"]:focus,input[type="text"]:focus,input[type="search"]:focus{
  border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg2)
}
/* Hide number spinners */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
input[type="number"]{-moz-appearance:textfield}

/* *** OVERRIDE for inputs INSIDE input-wrap — THE ACTUAL FIX *** */
.input-wrap>input[type="number"],
.input-wrap>input[type="text"]{
  flex:1;           /* take remaining space */
  min-width:0;      /* allow shrinking — THIS IS THE KEY */
  width:auto;       /* override width:100% */
  border-radius:0;
  min-height:var(--touch);
}
.input-wrap>.prefix+input{border-left:none}
.input-wrap>input+.suffix{border-left:none}

input[readonly]{background:var(--bg3);color:var(--text2);cursor:not-allowed}
.input-computed{background:var(--accent-bg)!important;color:var(--accent)!important;font-weight:600}

/* LTV */
.ltv-wrap{margin-top:6px}
.ltv-bar-bg{height:7px;background:var(--bg4);border-radius:4px;overflow:hidden;margin-top:6px}
.ltv-bar-fill{height:100%;border-radius:4px;transition:width .4s;background:linear-gradient(90deg,var(--green),var(--accent2),var(--red))}
.ltv-info{display:flex;justify-content:space-between;align-items:center;margin-top:4px}
.ltv-val{font-family:'DM Mono',monospace;font-size:14px;font-weight:700;color:var(--accent)}
.ltv-badge{font-size:10px;font-weight:700;letter-spacing:.04em;padding:3px 8px;border-radius:5px}
.ltv-ok{background:rgba(46,125,82,0.12);color:var(--green)}
.ltv-warn{background:rgba(201,146,42,0.12);color:var(--accent2)}
.ltv-high{background:rgba(184,64,64,0.12);color:var(--red)}

/* DP Toggle */
.dp-toggle{
  display:flex;border-radius:var(--radius-sm);overflow:hidden;
  border:1px solid var(--border2);margin-bottom:10px;
  width:100%;
}
.dp-toggle button{
  flex:1;padding:10px 6px;min-height:var(--touch);
  background:transparent;border:none;
  font-size:12px;font-weight:600;color:var(--text2);
  transition:all .2s;min-width:0;   /* ← allow shrink */
}
.dp-toggle button.active{background:var(--accent);color:#fff}

/* Divider */
hr.divider{border:none;border-top:1px solid var(--border2);margin:14px 0}

/* ═══ SCHEME TABS ════════════════════════════════════════════ */
.scheme-tabs{
  display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px;
  width:100%;
}
.scheme-tab{
  background:var(--bg3);border:1.5px solid var(--border2);
  border-radius:var(--radius-sm);padding:9px 6px;
  cursor:pointer;transition:all .2s;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  min-height:54px;
  -webkit-tap-highlight-color:transparent;
  min-width:0;overflow:hidden;   /* ← don't overflow grid cell */
}
.scheme-tab.active{border-color:var(--accent);background:var(--accent-bg)}
.scheme-tab .stag{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.06em;text-transform:uppercase}
.scheme-tab .sname{font-size:10px;color:var(--text2);line-height:1.3;word-break:break-word}

/* Scheme inputs container */
.scheme-inputs{
  background:var(--bg3);border:1px solid var(--border2);
  border-radius:10px;padding:14px;
  animation:fadeIn .2s ease;transition:background .3s,border-color .3s;
  overflow:hidden;max-width:100%;    /* ← contain children */
}
@keyframes fadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

/* Tier rows — vertical stack on mobile */
.tier-row{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.tier-row>.form-group,.tier-row>div{min-width:0}   /* ← flex-child safe */
@media(min-width:480px){
  .tier-row{flex-direction:row}
  .tier-row>*{flex:1;min-width:0}
}

.tier-label{
  font-size:10px;color:var(--accent);font-weight:700;
  margin-bottom:6px;padding-bottom:4px;
  border-bottom:1px solid var(--border2);letter-spacing:.05em;text-transform:uppercase;
}
.tier-block{border-left:2px solid var(--border2);padding-left:11px;margin-bottom:12px}
.tier-block:nth-child(1){border-color:var(--teal)}
.tier-block:nth-child(2){border-color:var(--accent2)}
.tier-block:nth-child(3){border-color:var(--blue)}
.tier-block:nth-child(4){border-color:var(--coral)}
.tier-block:nth-child(5){border-color:var(--green)}

.info-bar{
  background:var(--accent-bg);border:1px solid var(--border2);
  border-radius:8px;padding:9px 12px;
  font-size:11px;color:var(--text2);
  display:flex;align-items:flex-start;gap:7px;
  margin-bottom:12px;line-height:1.55;
  word-wrap:break-word;overflow-wrap:break-word;
}
.info-bar .ii{color:var(--accent);flex-shrink:0;font-size:13px;margin-top:1px}

/* Calc button */
.btn-calc{
  width:100%;padding:14px 10px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  border:none;border-radius:var(--radius-sm);
  font-size:14px;font-weight:700;color:#fff;letter-spacing:.02em;
  transition:all .2s;margin-top:6px;
  box-shadow:0 4px 14px rgba(139,94,32,0.28);
  -webkit-tap-highlight-color:transparent;min-height:50px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.btn-calc:hover{box-shadow:0 6px 20px rgba(139,94,32,0.36)}
.btn-calc:active{transform:scale(0.99)}

/* ═══ RESULTS ════════════════════════════════════════════════ */
.results-panel{display:flex;flex-direction:column;gap:16px;min-width:0}

/* Summary cards */
.summary-cards{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:420px){.summary-cards{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.summary-cards{grid-template-columns:repeat(3,1fr)}}

.scard{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--radius);padding:14px;
  position:relative;overflow:hidden;
  box-shadow:var(--shadow2);min-width:0;
}
.scard::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad,linear-gradient(90deg,var(--accent),var(--accent2)))}
.scard.green::before{--grad:linear-gradient(90deg,var(--teal),var(--green))}
.scard.red::before{--grad:linear-gradient(90deg,var(--coral),var(--red))}
.scard-label{font-size:10px;color:var(--text2);letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px;font-weight:600}
.scard-value{font-family:'DM Mono',monospace;font-size:14px;font-weight:700;color:var(--text);line-height:1.3;word-break:break-all}
.scard-sub{font-size:10px;color:var(--text3);margin-top:4px}
@media(min-width:640px){.scard-value{font-size:15px}}

#floatCard{margin-top:-4px}
#floatCard .scard{background:var(--accent-bg);border-color:var(--border)}

/* Export button */
.btn-export{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--bg3);border:1px solid var(--border2);
  border-radius:7px;padding:7px 11px;
  font-size:11px;font-weight:600;color:var(--text2);
  transition:all .2s;white-space:nowrap;min-height:36px;flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
}
.btn-export:hover{border-color:var(--accent);color:var(--accent)}
.btn-export svg{width:13px;height:13px;flex-shrink:0}

/* ═══ CHART ═════════════════════════════════════════════════ */
.chart-section{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--radius);padding:14px;
  box-shadow:var(--shadow2);overflow:hidden;min-width:0;
}
@media(min-width:640px){.chart-section{padding:20px}}

/* Section head: title left, button right — wraps on mobile if needed */
.section-head{
  display:flex;align-items:center;
  justify-content:space-between;
  gap:8px;margin-bottom:14px;
  flex-wrap:wrap;             /* ← wraps if too narrow */
  min-width:0;
}
.section-head h3{
  font-family:'Playfair Display',serif;font-size:13px;font-weight:600;
  color:var(--accent);min-width:0;flex:1;
}
@media(min-width:640px){.section-head h3{font-size:14px}}

#chartWrap{position:relative;height:220px;overflow:hidden}
@media(min-width:640px){#chartWrap{height:260px}}
@media(min-width:1024px){#chartWrap{height:280px}}

.placeholder{
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  min-height:180px;gap:10px;color:var(--text3);
  padding:16px;overflow:hidden;
}
.placeholder .big-icon{font-size:32px;opacity:.3}
.placeholder p{font-size:12px;text-align:center;max-width:100%;word-wrap:break-word}

/* ═══ TABLE ════════════════════════════════════════════════ */
.table-section{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow2);min-width:0;
}

/* Table controls — stacks on mobile */
.table-controls{
  padding:10px 14px;border-bottom:1px solid var(--border2);
  background:var(--bg3);overflow:hidden;
}
/* Mobile: title full row, then search+export in a row below */
.tc-row1{display:block;margin-bottom:8px}
.tc-row2{display:flex;align-items:center;gap:8px}
.tc-title{font-family:'Playfair Display',serif;font-size:13px;font-weight:600;color:var(--accent)}
@media(min-width:640px){
  .table-controls{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
  .tc-row1{display:contents}
  .tc-row2{display:contents}
  .tc-title{flex:1;font-size:14px;margin-bottom:0}
}

.search-input{
  flex:1;min-width:60px;min-height:36px;
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:7px;padding:0 10px;
  color:var(--text);font-family:'Outfit',sans-serif;font-size:12px;
  outline:none;transition:border-color .2s;
  width:100%;max-width:100%;   /* ← full width in row2 on mobile */
}
.search-input:focus{border-color:var(--accent)}
.search-input::placeholder{color:var(--text3)}
@media(min-width:640px){.search-input{width:160px;flex:none}}

/* Disclaimer */
.tbl-disclaimer{
  padding:10px 14px;border-bottom:1px solid rgba(184,64,64,0.14);
  background:rgba(184,64,64,0.06);
  display:flex;align-items:flex-start;gap:8px;
  font-size:11px;color:var(--red);line-height:1.6;
  word-wrap:break-word;overflow-wrap:break-word;overflow:hidden;
}
.tbl-disclaimer .disc-icon{font-size:14px;flex-shrink:0;margin-top:2px}
[data-theme="dark"] .tbl-disclaimer{background:rgba(224,112,112,0.07)}

/* Table scroll */
.table-wrap{
  overflow-x:auto;max-height:360px;overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
@media(max-width:639px){.table-wrap{max-height:300px}}
.table-wrap::-webkit-scrollbar{width:4px;height:4px}
.table-wrap::-webkit-scrollbar-track{background:var(--bg3)}
.table-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}

table{width:100%;border-collapse:collapse;min-width:700px}

thead th{
  background:var(--bg3);padding:9px 10px;
  font-size:9px;font-weight:700;color:var(--accent);
  letter-spacing:.06em;text-transform:uppercase;
  text-align:right;white-space:nowrap;
  position:sticky;top:0;z-index:2;
  border-bottom:1px solid var(--border2);
}
thead th:first-child{text-align:center}
tbody tr{border-bottom:1px solid var(--border2);transition:background .12s}
tbody tr:hover{background:var(--accent-bg)}
tbody td{
  padding:7px 10px;font-family:'DM Mono',monospace;
  font-size:11px;text-align:right;color:var(--text);white-space:nowrap;
}
tbody td:first-child{text-align:center;color:var(--text2);font-weight:600}
.type-fixed{color:var(--teal)!important;font-weight:600}
.type-float{color:var(--accent)!important}
.type-fp2{color:var(--accent2)!important}
.type-fp3{color:var(--blue)!important}
.type-fp4{color:var(--coral)!important}
tbody tr.hl-row td{background:rgba(139,94,32,0.05)}

/* Pagination */
.pagination{
  display:flex;align-items:center;justify-content:center;
  gap:5px;padding:10px 14px;border-top:1px solid var(--border2);flex-wrap:wrap;
}
.pagination button{
  background:var(--bg3);border:1px solid var(--border2);
  border-radius:6px;padding:6px 11px;font-size:12px;color:var(--text2);
  transition:all .15s;min-width:34px;min-height:34px;
  display:flex;align-items:center;justify-content:center;
  -webkit-tap-highlight-color:transparent;
}
.pagination button:hover,.pagination button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}
.pagination button:disabled{opacity:.3;pointer-events:none}
.page-info{font-size:11px;color:var(--text3);padding:0 4px}

/* ═══ SENSITIVITY ════════════════════════════════════════════ */
.sens-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sens-tbl{width:100%;border-collapse:collapse;min-width:380px}
.sens-tbl th{background:var(--bg3);padding:8px 11px;font-size:10px;color:var(--accent);text-align:right;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.sens-tbl th:first-child{text-align:left}
.sens-tbl td{padding:8px 11px;font-family:'DM Mono',monospace;font-size:11px;text-align:right;color:var(--text);border-bottom:1px solid var(--border2)}
.sens-tbl td:first-child{text-align:left;color:var(--text2)}
.sens-tbl tr.cur{background:var(--accent-bg)}
.sens-tbl .up{color:var(--red)}
.sens-tbl .dn{color:var(--green)}
.sens-tbl .neu{color:var(--text3)}

/* ═══ GLOSSARY ═══════════════════════════════════════════════ */
.glossary-section{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow2);margin-top:16px;
}
.glossary-grid{display:grid;grid-template-columns:1fr}
@media(min-width:768px){
  .glossary-grid{grid-template-columns:1fr 1fr}
  .gterm:nth-child(odd){border-right:1px solid var(--border2)}
}
.gterm{border-bottom:1px solid var(--border2);overflow:hidden;min-width:0}
.gterm-head{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;cursor:pointer;transition:background .15s;
  min-height:var(--touch);-webkit-tap-highlight-color:transparent;
}
.gterm-head:hover{background:var(--accent-bg)}
.gterm-badge{
  width:20px;height:20px;border-radius:50%;flex-shrink:0;
  background:var(--accent-bg2);border:1px solid var(--border);
  color:var(--accent);font-size:10px;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;transition:all .15s;
}
.gterm-head:hover .gterm-badge,.gterm.open .gterm-badge{background:var(--accent);color:#fff}
.gterm-head h4{font-size:12px;font-weight:600;color:var(--text);flex:1;line-height:1.35;min-width:0;word-wrap:break-word}
@media(min-width:640px){.gterm-head h4{font-size:13px}}
.gterm-head .arrow{font-size:18px;color:var(--accent);transition:transform .25s;line-height:1;flex-shrink:0}
.gterm.open .arrow{transform:rotate(45deg)}
.gterm-body{max-height:0;overflow:hidden;transition:max-height .35s ease;padding:0 14px;font-size:12px;color:var(--text2);line-height:1.75;word-wrap:break-word}
.gterm.open .gterm-body{max-height:260px;padding:0 14px 13px}

/* ═══ FOOTER ════════════════════════════════════════════════ */
.site-footer{
  margin-top:24px;border-top:1px solid var(--border2);
  padding:16px 14px 32px;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  text-align:center;background:var(--bg2);overflow:hidden;
}
.footer-brand{display:flex;align-items:center;gap:8px}
.footer-brand .fi{font-size:14px}
.footer-brand span{font-family:'Playfair Display',serif;font-size:13px;font-weight:600;color:var(--accent)}
.footer-copy{font-size:11px;color:var(--text3);line-height:1.6;max-width:100%;word-wrap:break-word}
.footer-copy strong{color:var(--text2)}
.footer-right{font-size:10px;color:var(--text3)}
@media(min-width:768px){
  .site-footer{flex-direction:row;justify-content:space-between;text-align:left;padding:16px 24px}
  .footer-right{text-align:right}
}

/* ═══ FAB ═══════════════════════════════════════════════════ */
#scrollToResults{
  display:none;position:fixed;bottom:24px;right:16px;z-index:100;
  background:var(--accent);color:#fff;border:none;border-radius:50%;
  width:48px;height:48px;font-size:20px;
  box-shadow:0 4px 16px rgba(139,94,32,0.4);transition:all .2s;
  -webkit-tap-highlight-color:transparent;
  align-items:center;justify-content:center;
}
#scrollToResults.visible{display:flex}
#scrollToResults:active{transform:scale(0.95)}

/* ═══ SCROLLBAR ═════════════════════════════════════════════ */
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:var(--bg3)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}

/* ═══ UTILITY ════════════════════════════════════════════════ */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
