@font-face{font-family:Plex Mono;src:url(/margin-font/ibm-plex-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plex Mono;src:url(/margin-font/ibm-plex-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Plex Mono;src:url(/margin-font/ibm-plex-mono-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Plex Sans;src:url(/margin-font/ibm-plex-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plex Sans;src:url(/margin-font/ibm-plex-sans-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Plex Sans;src:url(/margin-font/ibm-plex-sans-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--mg-bg: #f4f1e9;--mg-bg-warm: rgba(196, 127, 30, .06);--mg-bg-cool: rgba(70, 90, 130, .04);--mg-ink: #1b1d22;--mg-dim: #6b6f78;--mg-faint: #9498a1;--mg-line: rgba(27, 29, 34, .12);--mg-line-strong: rgba(27, 29, 34, .24);--mg-gold: #c47f1e;--mg-gold-hi: #a8641a;--mg-ember: #b8492a;--mg-selection-bg: #1b1d22;--mg-selection-fg: #f4f1e9;--mg-btn-bg: rgba(196, 127, 30, .09);--mg-btn-border: rgba(196, 127, 30, .42);--mg-shadow: rgba(27, 29, 34, .14);--mg-canvas-dormant: rgba(30, 33, 40, .14);--mg-canvas-dormant-hi: rgba(30, 33, 40, .3);--mg-canvas-now: rgba(27, 29, 34, .95);--mg-canvas-now-glow: rgba(27, 29, 34, .35);--mg-canvas-label: rgba(107, 111, 120, .95);--mg-canvas-panel: rgba(27, 29, 34, .035);--mg-canvas-ghost: rgba(196, 127, 30, .18);--mg-sans: "Plex Sans", system-ui, -apple-system, sans-serif;--mg-mono: "Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--mg-ease: cubic-bezier(.22, 1, .36, 1);--mg-ease-in-out: cubic-bezier(.65, 0, .35, 1);--mg-dur-1: .18s;--mg-dur-2: .32s;--mg-dur-3: .56s}*{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--mg-bg)}body{min-height:100vh;background:radial-gradient(ellipse 120% 80% at 50% -12%,var(--mg-bg-warm) 0%,transparent 55%),radial-gradient(ellipse 90% 60% at 50% 110%,var(--mg-bg-cool) 0%,transparent 60%),var(--mg-bg);color:var(--mg-ink);font-family:var(--mg-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--mg-selection-bg);color:var(--mg-selection-fg)}.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}.mg{min-height:100vh;max-width:1040px;margin:0 auto;padding:30px 28px 44px;display:flex;flex-direction:column;gap:20px}.mg-rail{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.mg-brand{display:flex;flex-direction:column;gap:7px}.mg-logo{display:inline-flex;align-items:center;gap:8px;color:var(--mg-ink)}.mg-logo-mark{height:26px;width:auto;display:block}.mg-logo-word{font-family:var(--mg-mono);font-size:.85rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--mg-ink)}.mg-tagline{margin:0;font-family:var(--mg-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mg-faint)}.mg-rail-right{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.mg-btn{display:inline-flex;align-items:center;gap:7px;background:transparent;border:1px solid var(--mg-line);border-radius:7px;color:var(--mg-dim);font-family:var(--mg-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;min-height:32px;cursor:pointer;transition:color var(--mg-dur-1) var(--mg-ease),border-color var(--mg-dur-1) var(--mg-ease),background-color var(--mg-dur-1) var(--mg-ease)}.mg-btn:hover{color:var(--mg-gold);border-color:var(--mg-btn-border)}.mg-btn:disabled{opacity:.4;cursor:default}.mg-btn:disabled:hover{color:var(--mg-dim);border-color:var(--mg-line)}.mg-btn-glyph{font-size:.85rem;line-height:1}.mg-btn-toggle[aria-expanded=true]{color:var(--mg-ink);border-color:var(--mg-line-strong);background:var(--mg-btn-bg)}.mg-readout{display:flex;flex-direction:column;gap:10px}.mg-total-value{font-family:var(--mg-mono);font-weight:600;font-size:clamp(3.2rem,11vw,6rem);line-height:.9;letter-spacing:-.03em;color:var(--mg-ink);font-variant-numeric:tabular-nums}.mg-caption{margin:0;display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mg-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mg-faint)}.mg-dot{color:var(--mg-faint)}.mg-year-pct{color:var(--mg-gold)}.mg-hint{margin:2px 0 0;font-family:var(--mg-mono);font-size:.72rem;letter-spacing:.05em;color:var(--mg-faint)}.mg-hint[hidden]{display:none}.mg-form{display:flex;flex-direction:column;gap:16px}.mg-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--mg-line);color:var(--mg-ink);font-family:var(--mg-sans);font-size:clamp(1.05rem,2.4vw,1.35rem);padding:6px 2px 12px;outline:none;transition:border-color var(--mg-dur-2) var(--mg-ease)}.mg-input::placeholder{color:var(--mg-faint)}.mg-input:focus{border-bottom-color:var(--mg-gold)}.mg-form-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}.mg-times{display:flex;align-items:center;gap:6px}.mg-num{width:60px;background:transparent;border:1px solid var(--mg-line);border-radius:6px;color:var(--mg-ink);font-family:var(--mg-mono);font-size:.82rem;padding:8px 6px;text-align:center;outline:none;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield;transition:border-color var(--mg-dur-1) var(--mg-ease)}.mg-num::-webkit-outer-spin-button,.mg-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mg-num:focus{border-color:var(--mg-gold)}.mg-times-unit{font-family:var(--mg-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mg-faint)}.mg-times-x{font-family:var(--mg-mono);font-size:.8rem;color:var(--mg-faint)}.mg-eq{font-family:var(--mg-mono);font-size:.72rem;letter-spacing:.06em;color:var(--mg-gold);white-space:nowrap}.mg-eq[hidden]{display:none}.mg-add{margin-left:auto;font-family:var(--mg-mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;min-height:44px;padding:12px 26px;border-radius:8px;border:1px solid var(--mg-gold);background:var(--mg-gold);color:var(--mg-ink);cursor:pointer;transition:background-color var(--mg-dur-1) var(--mg-ease),border-color var(--mg-dur-1) var(--mg-ease),transform var(--mg-dur-1) var(--mg-ease)}.mg-add:hover{background:var(--mg-gold-hi);border-color:var(--mg-gold-hi)}.mg-add:active{transform:translateY(1px)}.mg-form.is-editing .mg-add{background:var(--mg-ember);border-color:var(--mg-ember);color:var(--mg-selection-fg)}.mg-cancel{font-family:var(--mg-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;background:transparent;border:none;color:var(--mg-faint);cursor:pointer;padding:10px 6px;min-height:44px;display:none}.mg-form.is-editing .mg-cancel{display:inline-block}.mg-cancel:hover{color:var(--mg-ink)}.mg-field{position:relative;width:100%}.mg-field canvas{display:block;width:100%;height:auto;aspect-ratio:3 / 2;border-radius:4px;touch-action:none;cursor:crosshair}.mg-ledger-wrap{display:flex;flex-direction:column;gap:8px}.mg-ledger-wrap[hidden]{display:none}.mg-ledger{list-style:none;margin:0;padding:0;border-top:1px solid var(--mg-line)}.mg-empty{font-family:var(--mg-mono);font-size:.72rem;letter-spacing:.05em;color:var(--mg-faint);padding:16px 2px;border-bottom:1px solid var(--mg-line)}.mg-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:10px 18px;padding:14px 2px;border-bottom:1px solid var(--mg-line);animation:mg-in var(--mg-dur-3) var(--mg-ease)}.mg-row.is-just-added{background:linear-gradient(90deg,var(--mg-btn-bg),transparent 60%)}@keyframes mg-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.mg-row-what{color:var(--mg-ink);font-size:.95rem;min-width:0;overflow-wrap:break-word}.mg-row-gain{font-family:var(--mg-mono);font-size:.72rem;letter-spacing:.04em;color:var(--mg-gold);white-space:nowrap;font-variant-numeric:tabular-nums}.mg-row-actions{grid-column:1 / -1;display:flex;gap:14px;opacity:0;transition:opacity var(--mg-dur-2) var(--mg-ease)}.mg-row:hover .mg-row-actions,.mg-row:focus-within .mg-row-actions{opacity:1}.mg-row-btn{font-family:var(--mg-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;background:transparent;border:none;color:var(--mg-faint);cursor:pointer;padding:6px 0;transition:color var(--mg-dur-1) var(--mg-ease)}.mg-row-btn:hover{color:var(--mg-ink)}.mg-row-btn[data-act=del]:hover{color:var(--mg-ember)}.mg-clear{align-self:flex-end;font-family:var(--mg-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;background:transparent;border:none;color:var(--mg-faint);cursor:pointer;padding:6px 2px;transition:color var(--mg-dur-1) var(--mg-ease)}.mg-clear:hover,.mg-clear.is-armed{color:var(--mg-ember)}.mg-clear:disabled{opacity:.35;cursor:default}.mg-toast{position:fixed;left:50%;bottom:28px;z-index:20;transform:translate(-50%,12px);opacity:0;pointer-events:none;font-family:var(--mg-mono);font-size:.66rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--mg-selection-fg);background:var(--mg-selection-bg);padding:10px 18px;border-radius:999px;box-shadow:0 10px 34px var(--mg-shadow);transition:opacity var(--mg-dur-2) var(--mg-ease),transform var(--mg-dur-2) var(--mg-ease)}.mg-toast.is-on{opacity:1;transform:translate(-50%)}.mg-toast-btn{pointer-events:auto;margin-left:12px;padding:0;background:transparent;border:none;color:inherit;font:inherit;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.mg-toast-btn:hover{opacity:.75}:focus-visible{outline:2px solid var(--mg-gold);outline-offset:2px}@media(prefers-reduced-motion:reduce){.mg-row{animation:none}.mg-add:active{transform:none}.mg-toast{transition:opacity var(--mg-dur-1) linear;transform:translate(-50%)}}@media(max-width:620px){.mg{padding:22px 16px 36px;gap:18px}.mg-field canvas{aspect-ratio:1 / 2.1}.mg-rail{flex-direction:column;align-items:flex-start;gap:12px}.mg-rail-right{justify-content:flex-start}.mg-row-actions{opacity:1}}
