:root{--ink:#1a1a2e;--ink-soft:#4a4a6a;--ink-muted:#6b6b9a;--paper:#f9f7f2;--paper-warm:#f0ece3;--paper-card:#fff;--accent:#c84b31;--accent-soft:#f5e6e2;--accent2:#2d6a8f;--accent2-soft:#e2eff7;--green:#25b865;--green-soft:#e0f7ec;--amber:#b07d1a;--amber-soft:#fdf3dc;--border:#1a1a2e1a;--border-strong:#1a1a2e33;--shadow:0 2px 20px #1a1a2e14;--radius:4px;--radius-lg:8px;--font-serif:"DM Serif Display", Georgia, serif;--font-mono:"DM Mono", "Courier New", monospace;--font-sans:"DM Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;font-size:100%}body{font-family:var(--font-sans);background:var(--paper);color:var(--ink);min-height:100vh;line-height:1.6;overflow-x:hidden}img,svg,video{max-width:100%;height:auto}input,select,textarea{max-width:100%}@media (max-width:768px){input[type=text],input[type=number],input[type=email],input[type=search],input[type=tel],input[type=password],select,textarea{font-size:16px}}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);line-height:1.2}input,select,textarea,button{font-family:var(--font-sans)}a{color:inherit;text-decoration:none}.dm-mono{font-family:var(--font-mono)}.dm-serif{font-family:var(--font-serif)}@media print{nav,.no-print,.tab-bar,.range-wrap{display:none!important}.calc-layout{display:block!important}.calc-layout>:not(.no-print){width:100%!important;max-height:none!important}table{page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}.print-footer{display:block!important}}.skip-link{background:var(--accent2);color:#fff;z-index:9999;font-family:var(--font-sans);border-radius:0 0 4px;padding:8px 16px;font-size:.875rem;text-decoration:none;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}.print-footer{color:var(--ink-muted);font-size:.6875rem;font-family:var(--font-mono);margin-top:24px;display:none}:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
