:root {
  --color-bg: #d8d2c2;
  --color-shell: #e8e2d4;
  --color-shell-edge: #c9c0aa;
  --color-display-bg: #cdd2c6;
  --color-display-text: #1c2b22;
  --color-text: #3a352b;
  --color-btn: #f2ede1;
  --color-btn-shadow: #b7ae98;
  --color-btn-text: #3a352b;
  --color-op: #d8ceb4;
  --color-op-text: #4a3c1f;
  --color-func: #c9c0aa;
  --color-func-text: #3a352b;
  --color-equals: #a9764f;
  --color-equals-text: #fff8ee;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root {
    --color-bg: #23211c;
    --color-shell: #3a362c;
    --color-shell-edge: #292620;
    --color-display-bg: #1c2119;
    --color-display-text: #d8e5cf;
    --color-text: #e7e0d0;
    --color-btn: #4a4536;
    --color-btn-shadow: #201e18;
    --color-btn-text: #efe8d6;
    --color-op: #5c5140;
    --color-op-text: #f1e2be;
    --color-func: #2f2c24;
    --color-func-text: #e7e0d0;
    --color-equals: #a9764f;
    --color-equals-text: #fff8ee;
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }

html, body {
  height: 100%;
  margin: 0;
  overscroll-behavior: none;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}

#app {
  min-height: 100dvh;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(env(safe-area-inset-top) + 12px) calc(env(safe-area-inset-right) + 12px)
            calc(env(safe-area-inset-bottom) + 12px) calc(env(safe-area-inset-left) + 12px);
}

.calculator {
  width: min(360px, 92vw);
  background: var(--color-shell);
  border: 1px solid var(--color-shell-edge);
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
}

.display {
  background: var(--color-display-bg);
  color: var(--color-display-text);
  border-radius: 10px;
  padding: 22px 16px;
  margin-bottom: 14px;
  font-family: "SFMono-Regular", Consolas, "Courier New", monospace;
  font-size: 2.4rem;
  text-align: right;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.25);
}

.pad {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.btn {
  border: none;
  border-radius: 12px;
  background: var(--color-btn);
  color: var(--color-btn-text);
  font-size: 1.25rem;
  padding: 16px 0;
  box-shadow: 0 3px 0 var(--color-btn-shadow);
  transition: transform 0.05s ease, box-shadow 0.05s ease;
}

.btn:active {
  transform: translateY(2px);
  box-shadow: 0 1px 0 var(--color-btn-shadow);
}

.btn.op {
  background: var(--color-op);
  color: var(--color-op-text);
}

.btn.func {
  background: var(--color-func);
  color: var(--color-func-text);
  font-size: 1rem;
}

.btn.sci-btn {
  background: var(--color-func);
  color: var(--color-func-text);
  font-size: 0.95rem;
  padding: 12px 0;
}

.btn.equals {
  background: var(--color-equals);
  color: var(--color-equals-text);
}

.btn.wide {
  grid-column: span 2;
}

.row.sci[hidden] {
  display: none;
}
