.factor-input {
  align-items: center;
  background: rgba(255, 255, 255, .62);
  border: 2px dashed rgba(74, 63, 53, .42);
  border-radius: 13px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 68px;
  padding: 6px 10px;
}

.factor-input:focus-within {
  background: #fff9e9;
  border-color: #d6a542;
  border-style: solid;
  box-shadow: 0 0 0 3px rgba(214, 165, 66, .16);
}

.factor-input:has(input:disabled) {
  opacity: .52;
}

.factor-input input {
  appearance: textfield;
  background: transparent;
  border: 0;
  color: var(--ink);
  font: 900 1.3rem "Nunito", sans-serif;
  min-width: 0;
  outline: 0;
  padding: 0;
  text-align: center;
  width: 100%;
}

.factor-input input::-webkit-inner-spin-button,
.factor-input input::-webkit-outer-spin-button {
  appearance: none;
  margin: 0;
}

.factor-input input::placeholder { color: #71695f; opacity: 1; }
.factor-input small { color: #776f68; font: 800 .67rem "Nunito", sans-serif; }

.factor-input input{cursor:pointer;caret-color:transparent}
    .number-pad{position:fixed;inset:auto;margin:0;width:min(304px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid var(--line);border-radius:22px;padding:16px;background:#fffaf8;color:var(--ink);box-shadow:0 18px 60px #35304738}
    .number-pad::backdrop{background:rgba(38,43,57,.12)}
    .pad-head{display:flex;align-items:center;justify-content:space-between;gap:10px;touch-action:none;cursor:move;margin-bottom:10px}
    .pad-head strong{font:800 16px Nunito,sans-serif}.pad-head strong::before{content:'⠿';color:#8178bd;margin-right:9px}
    .pad-close{border:0;border-radius:50%;background:#ffe3e8;color:#a64360;width:36px;height:36px;font-size:24px}
    .pad-display{display:flex;justify-content:center;align-items:center;gap:5px;background:#ece9f8;border-radius:12px;min-height:52px;margin-bottom:12px;font:900 28px Nunito,sans-serif}
    .pad-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
    .pad-grid button{min-height:48px;border:1px solid #e3dce7;border-bottom:3px solid #d9d2df;border-radius:12px;background:#f1edf7;color:#373442;font:900 22px Nunito,sans-serif;touch-action:manipulation}
    .pad-grid button:active{transform:translateY(2px);border-bottom-width:1px}
    .pad-grid button:focus-visible,.pad-close:focus-visible{outline:3px solid #55b9c7;outline-offset:2px}
    .pad-grid .pad-zero{grid-column:span 2}.pad-grid .pad-delete{background:#ffe3e8;color:#a64360}
    .pad-grid .pad-confirm{grid-column:1/-1;background:#d66d86;border-color:#c35e78;color:white;font-size:17px}
    .pad-error{font-size:13px;line-height:1.3;min-height:17px;margin:8px 0 0;color:#a64360}
    @media(max-height:500px){.number-pad{padding:10px;width:260px}.pad-head{margin-bottom:5px}.pad-display{min-height:34px;margin-bottom:6px;font-size:22px}.pad-grid{gap:5px}.pad-grid button{min-height:36px;font-size:19px}.pad-error{margin-top:4px}}
