
.win-display[data-v-52dbb45c] {
  flex: 0 0 auto;
  padding: 10px 16px 8px;
  text-align: right;
  height: 96px;
  background: var(--win-display-bg);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.win-display.large[data-v-52dbb45c] {
  height: 128px;
  padding: 12px 16px 10px;
}
.win-display.xlarge[data-v-52dbb45c] {
  height: var(--win-display-h);
  padding: 12px 16px 10px;
  flex: 0 0 var(--win-display-h);
}
.win-display.large .result-line[data-v-52dbb45c] {
  font-size: 48px;
  line-height: 54px;
}
.win-display.xlarge .result-line[data-v-52dbb45c] {
  font-size: 50px;
  line-height: 1.1;
  font-weight: 300;
}
.win-display.xlarge .expr-line[data-v-52dbb45c] {
  font-size: 15px;
  line-height: 22px;
  min-height: 22px;
  margin-bottom: 2px;
}
.win-display.compact[data-v-52dbb45c] {
  height: 72px;
}
.mem-indicator[data-v-52dbb45c] {
  position: absolute;
  top: 8px;
  left: 16px;
  font-size: 11px;
  font-weight: 600;
  color: var(--win-text-secondary);
}
.display-inner[data-v-52dbb45c] {
  margin-top: auto;
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
.expr-line[data-v-52dbb45c] {
  font-size: 13px;
  line-height: 18px;
  color: var(--win-text-secondary);
  min-height: 18px;
  word-break: break-all;
}
.win-display.large .expr-line[data-v-52dbb45c] {
  font-size: 14px;
  line-height: 20px;
  min-height: 20px;
}
.result-line[data-v-52dbb45c] {
  font-size: 42px;
  font-weight: 300;
  line-height: 1.1;
  color: var(--win-text-display);
  white-space: nowrap;
  overflow: hidden;
  letter-spacing: -0.5px;
}
.result-line.error[data-v-52dbb45c] {
  font-size: 15px;
  line-height: 22px;
  color: #c42b1c;
  font-weight: 400;
}
@media (prefers-color-scheme: dark) {
.result-line.error[data-v-52dbb45c] {
    color: #ff99a4;
}
}

.win-keypad[data-v-acc654a3] {
  display: grid;
  gap: var(--win-gap);
  padding: 2px 4px 4px;
  background: var(--win-surface);
  flex: 0 0 auto;
}
.win-keypad.stretch[data-v-acc654a3] {
  flex: 1;
  min-height: 0;
  grid-auto-rows: 1fr;
}
.win-key[data-v-acc654a3] {
  min-height: 40px;
  border-radius: var(--win-radius-key);
  font-size: 15px;
  font-weight: 400;
  background: var(--win-key-num);
  border: 1px solid var(--win-border);
  color: var(--win-text);
}
.win-keypad.stretch .win-key[data-v-acc654a3] {
  min-height: 0;
  height: 100%;
}
.win-key[data-v-acc654a3]:hover {
  background: var(--win-key-num-hover);
}
.win-key[data-v-acc654a3]:active {
  background: var(--win-key-num-press);
}
.win-key.mem[data-v-acc654a3],
.win-key.fn[data-v-acc654a3] {
  background: var(--win-key-fn);
  font-size: 12px;
  font-weight: 400;
  color: var(--win-text-secondary);
}
.win-key.mem[data-v-acc654a3]:hover,
.win-key.fn[data-v-acc654a3]:hover {
  background: var(--win-key-fn-hover);
  color: var(--win-text);
}
.win-key.op[data-v-acc654a3] {
  background: var(--win-key-op);
  font-size: 16px;
}
.win-key.op[data-v-acc654a3]:hover {
  background: var(--win-key-op-hover);
}
.win-key.equals[data-v-acc654a3] {
  background: var(--win-key-equals);
  color: var(--win-key-equals-text);
  font-size: 18px;
}
.win-key.equals[data-v-acc654a3]:hover {
  background: var(--win-key-equals-hover);
}

.sci[data-v-1ebd88ba] .win-key.num {
  font-weight: 600;
  font-size: 16px;
}
.sci-keypad[data-v-1ebd88ba] .win-key.fn {
  font-size: 13px;
}

.win-app[data-v-199f4ea6] {
  position: relative;
  width: var(--win-shell-w);
  height: var(--win-shell-h);
  display: flex;
  flex-direction: column;
  background: var(--win-glass);
  backdrop-filter: blur(24px) saturate(1.2);
  -webkit-backdrop-filter: blur(24px) saturate(1.2);
  border-radius: var(--win-radius-window);
  box-shadow: var(--win-shadow-window);
  border: 1px solid var(--win-border);
  overflow: hidden;
  flex-shrink: 0;
}
.win-header[data-v-199f4ea6] {
  display: flex;
  justify-content: flex-end;
  height: 32px;
  flex-shrink: 0;
}
.window-chrome[data-v-199f4ea6] {
  display: flex;
}
.chrome-btn[data-v-199f4ea6] {
  width: 40px;
  height: 32px;
  display: inline-block;
}
.chrome-btn[data-v-199f4ea6]:hover {
  background: var(--win-key-num-hover);
}
.chrome-btn.close[data-v-199f4ea6]:hover {
  background: #c42b1c;
}
.win-body[data-v-199f4ea6] {
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.env-badge[data-v-199f4ea6] {
  position: absolute;
  top: 36px;
  left: 8px;
  z-index: 2;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 2px 6px;
  border-radius: 4px;
  background: #c42b1c;
  color: #fff;
  pointer-events: none;
}
/* Windows 11 Calculator — light / dark (system) */



:root {

  --win-font: 'Segoe UI Variable', 'Segoe UI', system-ui, sans-serif;

  --win-radius-window: 8px;

  --win-radius-key: 4px;

  --win-gap: 1px;



  --win-shell-w: 405px;

  --win-shell-h: 635px;
  --win-display-h: 220px;
  --win-header-h: 48px;



  --win-desktop: #e6e6e6;

  --win-surface: #f3f3f3;

  --win-display-bg: #f3f3f3;

  --win-text: #0d0d0d;

  --win-text-secondary: #605e5c;

  --win-text-display: #0d0d0d;



  --win-key-num: #fafafa;

  --win-key-num-hover: #f5f5f5;

  --win-key-num-press: #ebebeb;

  --win-key-fn: #f0f0f0;

  --win-key-fn-hover: #e8e8e8;

  --win-key-mem: #f0f0f0;

  --win-key-op: #f9f9f9;

  --win-key-op-hover: #f0f0f0;

  --win-key-equals: #98bdc1;

  --win-key-equals-hover: #8aafaf;

  --win-key-equals-text: #0d0d0d;



  --win-border: rgba(0, 0, 0, 0.0578);

  --win-shadow-window: 0 8px 32px rgba(0, 0, 0, 0.18), 0 2px 8px rgba(0, 0, 0, 0.08);

  --win-nav-bg: #f9f9f9;

  --win-nav-hover: #f0f0f0;

  --win-nav-active: #e5f1fb;

  --win-nav-active-border: #0078d4;

  --win-input-bg: #ffffff;

  --win-input-border: #d1d1d1;

  --win-glass: rgba(243, 243, 243, 0.85);

}



@media (prefers-color-scheme: dark) {

  :root {

    --win-desktop: #1a1a1a;

    --win-surface: #202020;

    --win-display-bg: #202020;

    --win-text: #ffffff;

    --win-text-secondary: #adadad;

    --win-text-display: #ffffff;



    --win-key-num: #323232;

    --win-key-num-hover: #3b3b3b;

    --win-key-num-press: #444444;

    --win-key-fn: #2d2d2d;

    --win-key-fn-hover: #363636;

    --win-key-mem: #2d2d2d;

    --win-key-op: #2d2d2d;

    --win-key-op-hover: #363636;

    --win-key-equals: #4cc2a8;

    --win-key-equals-hover: #5ed0b6;

    --win-key-equals-text: #000000;



    --win-border: rgba(255, 255, 255, 0.08);

    --win-shadow-window: 0 8px 32px rgba(0, 0, 0, 0.5);

    --win-nav-bg: #2d2d2d;

    --win-nav-hover: #383838;

    --win-nav-active: #1a3a52;

    --win-nav-active-border: #60cdff;

    --win-input-bg: #2d2d2d;

    --win-input-border: #454545;

    --win-glass: rgba(32, 32, 32, 0.88);

  }

}



* {

  box-sizing: border-box;

  margin: 0;

  padding: 0;

}



html,

body,

#app {

  height: 100%;

}



body {

  font-family: var(--win-font);

  color: var(--win-text);

  background: var(--win-desktop);

  overflow: auto;

  display: flex;

  align-items: flex-start;

  justify-content: center;

  padding: 12px;

}



#app {

  display: flex;

  align-items: flex-start;

  justify-content: center;

  width: 100%;

}



button {

  font-family: inherit;

  cursor: default;

  border: none;

  color: var(--win-text);

  user-select: none;

}



button:hover:not(:disabled) {

  cursor: pointer;

}



input,

select {

  font-family: inherit;

  color: var(--win-text);

  background: var(--win-input-bg);

  border: 1px solid var(--win-input-border);

  border-radius: 4px;

  padding: 6px 10px;

  font-size: 14px;

}



input:focus,

select:focus {

  outline: 2px solid var(--win-nav-active-border);

  outline-offset: 1px;

}



.calc-view {

  display: flex;

  flex-direction: column;

  height: 100%;

  width: 100%;

  align-items: stretch;

  justify-content: flex-start;

  overflow: hidden;

}


