.aca-wrap, .aca-wrap *{box-sizing:border-box;}
.aca-wrap{
  --navy:#0F1C36; --navy-soft:#1C2B4A; --gold:#B6902C; --gold-deep:#8C6B1E;
  --paper:#FAF6EC; --paper-line:#E4DCC6; --white:#FFFFFF; --ink:#182132;
  --ink-soft:#5A6378; --rule:#E2E5EC; --bg:#F3F4F7; --red-rule:#C46E64;
  font-family:Georgia,'Liberation Serif',serif; color:var(--ink);
  max-width:980px; margin:0 auto;
}
.aca-wrap .aca-grid{display:grid; grid-template-columns:340px 1fr; gap:24px;}
@media (max-width:760px){ .aca-wrap .aca-grid{grid-template-columns:1fr;} }

.aca-wrap .aca-card{
  background:var(--white); border:1px solid var(--rule); border-radius:14px;
  box-shadow:0 1px 2px rgba(15,28,54,.04), 0 8px 24px rgba(15,28,54,.06); overflow:hidden;
}
.aca-wrap .aca-calc-head{
  background:var(--navy); color:var(--white); padding:14px 18px;
  display:flex; align-items:center; gap:10px; font-family:Arial,Helvetica,sans-serif;
}
.aca-wrap .aca-badge{
  width:26px;height:26px;border-radius:50%;border:2px solid var(--gold);
  display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--gold);flex:none;
}
.aca-wrap .aca-calc-head b{font-size:15px;letter-spacing:.2px;}
.aca-wrap .aca-calc-head span{font-size:12px;color:#B9C2D6;margin-left:auto;}

.aca-wrap .aca-display{background:var(--navy-soft); color:var(--white); padding:18px 18px 14px; font-family:Arial,Helvetica,sans-serif;}
.aca-wrap .aca-expr{font-size:14px;color:#9FACC9; min-height:18px; letter-spacing:.3px;}
.aca-wrap .aca-result{font-size:34px; font-weight:700; text-align:right; word-break:break-all;}

.aca-wrap .aca-keys{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:16px; font-family:Arial,Helvetica,sans-serif;}
.aca-wrap button.aca-key{
  border:none; border-radius:10px; padding:14px 0; margin:0; font-size:17px; line-height:1.2; cursor:pointer;
  background:#EEF0F4; color:var(--navy); box-shadow:none; text-transform:none; min-height:0;
  transition:transform .05s ease, background .15s ease; font-family:inherit;
}
.aca-wrap button.aca-key:hover{background:#E4E8F0;}
.aca-wrap button.aca-key:active{transform:scale(.96);}
.aca-wrap button.aca-key.op{background:#F3E8D2; color:var(--gold-deep); font-weight:700;}
.aca-wrap button.aca-key.op:hover{background:#EEDFBC;}
.aca-wrap button.aca-key.fn{background:var(--navy); color:var(--white); font-weight:600;}
.aca-wrap button.aca-key.fn:hover{background:var(--navy-soft);}
.aca-wrap button.aca-key.eq{background:var(--gold); color:var(--white); font-weight:700;}
.aca-wrap button.aca-key.eq:hover{background:var(--gold-deep);}
.aca-wrap button.aca-key.zero{grid-column:span 2;}

.aca-wrap .aca-panel{display:flex; flex-direction:column; min-height:520px;}
.aca-wrap .aca-panel-head{background:var(--navy); color:var(--white); padding:14px 20px; display:flex; align-items:center; gap:10px; font-family:Arial,Helvetica,sans-serif;}
.aca-wrap .aca-panel-head b{font-size:15px;}
.aca-wrap .aca-panel-body{
  flex:1; background:repeating-linear-gradient(var(--paper), var(--paper) 33px, var(--paper-line) 34px);
  background-color:var(--paper); position:relative; padding:24px 24px 24px 48px; overflow-y:auto;
}
.aca-wrap .aca-panel-body::before{content:""; position:absolute; left:34px; top:0; bottom:0; width:2px; background:var(--red-rule); opacity:.55;}
.aca-wrap .aca-placeholder{color:var(--ink-soft); font-style:italic; font-size:16px; padding-top:10px; margin:0;}
.aca-wrap .aca-op-title{font-size:26px; font-weight:700; color:var(--navy); margin:0 0 4px;}
.aca-wrap .aca-op-sub{font-size:14px; color:var(--ink-soft); font-style:italic; margin:0 0 18px;}
.aca-wrap .aca-step{font-size:16px; line-height:1.55; margin:0 0 14px; color:var(--ink);}
.aca-wrap .aca-step.result{font-weight:700; color:var(--gold-deep); font-style:italic; font-size:19px; margin-top:18px;}

.aca-wrap .aca-vgrid-wrap{margin:4px 0 24px; overflow-x:auto;}
.aca-wrap .aca-vgrid{font-family:'Liberation Mono','Courier New',monospace; font-size:21px; display:grid; align-items:center; column-gap:0;}
.aca-wrap .aca-vcell{display:flex; align-items:center; justify-content:center; min-width:28px; height:32px;}
.aca-wrap .aca-vcell.comma{min-width:11px;}
.aca-wrap .aca-ld-grid{row-gap:9px;}
.aca-wrap .aca-ld-divisor{grid-column:1; display:flex; align-items:center; justify-content:flex-end; padding-right:9px; font-weight:700; color:var(--navy); border-right:3px solid var(--navy);}
.aca-wrap .aca-ld-quotient{color:var(--gold-deep); font-weight:700; border-bottom:3px solid var(--navy);}
.aca-wrap .aca-ld-dividend{color:var(--ink); font-weight:600;}
.aca-wrap .aca-ld-dividend.extra{color:var(--ink-soft); font-weight:400;}
.aca-wrap .aca-ld-minus{color:var(--ink-soft); justify-content:flex-end; padding-right:2px;}
.aca-wrap .aca-ld-line{border-top:2px solid var(--ink-soft); height:0; align-self:center;}
.aca-wrap .aca-ld-remainder{color:var(--navy); font-weight:700;}
.aca-wrap .aca-as-grid{row-gap:4px;}
.aca-wrap .aca-as-op{color:var(--navy); font-weight:700; justify-content:flex-start;}
.aca-wrap .aca-as-line{border-top:3px solid var(--navy); height:0; align-self:center;}
.aca-wrap .aca-as-result{color:var(--gold-deep); font-weight:700;}
.aca-wrap .aca-ml-partial{color:var(--ink); font-weight:600;}
.aca-wrap .aca-ml-shift{color:var(--ink-soft); opacity:.5;}
/* carry / borrow chips: filled colour */
.aca-wrap .aca-as-carry{
  width:20px; height:20px; min-width:0; justify-self:center; align-self:center;
  background:var(--gold); color:#fff; font-size:12px; font-weight:700; line-height:1;
  border-radius:6px; box-shadow:0 1px 2px rgba(15,28,54,.25);
}
.aca-wrap .aca-as-carry.borrow{ background:#C46E64; }
.aca-wrap .aca-ml-tag{
  width:20px; height:16px; min-width:0; justify-self:center; align-self:center;
  color:#fff; font-size:10px; font-weight:700; line-height:1; border-radius:4px; opacity:.85;
}
.aca-wrap .aca-dot{display:inline-block; width:11px; height:11px; border-radius:4px; margin-right:7px; vertical-align:baseline;}
