@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600;700&family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap";:root{--black:#0d0d0d;--ink:#1c1c1e;--lead:#5a5a5e;--rule:#d4d4d8;--newsprint:#f0efe9;--white:#fff;--vermillion:#d62828;--vermillion-pale:#fef2f2;--green:#166534;--green-pale:#f0fdf4}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:.875rem;line-height:1.5}h1,h2,h3{font-family:Playfair Display,Georgia,serif}.mono{font-family:IBM Plex Mono,JetBrains Mono,monospace}.serif{font-family:Playfair Display,Georgia,serif}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--lead);font-size:.6875rem;font-weight:600}.btn{text-transform:uppercase;letter-spacing:.06em;cursor:pointer;border:none;border-radius:0;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:background .15s;display:inline-flex}.btn-primary{background:var(--black);color:var(--white)}.btn-primary:hover{background:var(--vermillion)}.btn-secondary{color:var(--black);border:1px solid var(--rule);background:0 0}.btn-secondary:hover{background:var(--newsprint)}.btn-danger{background:var(--vermillion);color:var(--white)}.btn-danger:hover{background:#b91c1c}.btn-teal{background:var(--green);color:var(--white)}.btn-teal:hover{background:#15803d}.btn:disabled{opacity:.4;cursor:not-allowed}input[type=text],input[type=email],input[type=number],input[type=password],input[type=datetime-local],select,textarea{width:100%;color:var(--ink);border:none;border-bottom:2px solid var(--rule);background:0 0;border-radius:0;outline:none;padding:.625rem 0;font-family:inherit;font-size:.875rem;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-bottom-color:var(--black)}input::placeholder,textarea::placeholder{color:var(--lead)}textarea{resize:vertical;min-height:4rem}.toggle{border:2px solid var(--rule);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;width:16px;height:16px;padding:0;transition:all .15s}.toggle.active{background:var(--green);border-color:var(--green)}.table{border-collapse:collapse;width:100%}.table th{text-transform:uppercase;letter-spacing:.08em;color:var(--lead);text-align:left;border-bottom:2px solid var(--black);padding:.5rem .75rem;font-size:.6875rem;font-weight:600}.table td{border-bottom:1px solid var(--rule);padding:.625rem .75rem}.table .totals-row td{border-top:2px solid var(--black);color:var(--black);border-bottom:none;font-weight:600}.text-lead{color:var(--lead)}.text-green{color:var(--green)}.text-vermillion{color:var(--vermillion)}.text-slate{color:var(--lead)}.text-teal{color:var(--green)}.text-ember{color:var(--vermillion)}.empty-state{text-align:center;color:var(--lead);padding:3rem 1rem;font-size:.875rem}.form-group{margin-bottom:1.25rem}.form-row{gap:1rem;display:flex}.form-row>*{flex:1}.page-header{border-bottom:2px solid var(--black);justify-content:space-between;align-items:baseline;margin-bottom:1.5rem;padding-bottom:.75rem;display:flex}.page-header h1{color:var(--black);font-size:1.75rem;font-weight:700}.card{border-bottom:1px solid var(--rule);margin-bottom:0;padding:1rem 0}.card:last-child{border-bottom:none}.card:hover{background:var(--newsprint);margin-left:-.75rem;margin-right:-.75rem;padding-left:.75rem;padding-right:.75rem}.modal-overlay{z-index:100;background:#0d0d0d80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--white);border:2px solid var(--black);width:100%;max-width:480px;padding:2rem}.modal h2{color:var(--black);border-bottom:1px solid var(--rule);margin-bottom:1.5rem;padding-bottom:.5rem;font-size:1.25rem;font-weight:700}.modal-actions{border-top:1px solid var(--rule);justify-content:flex-end;gap:.5rem;margin-top:1.5rem;padding-top:1rem;display:flex}.color-dot{border-radius:0;flex-shrink:0;width:4px;height:100%;min-height:32px;display:inline-block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.timer-pulse{animation:1.5s ease-in-out infinite pulse}.rule{border:none;border-top:1px solid var(--rule);margin:1.5rem 0}.icon-btn{justify-content:center;align-items:center;padding:.3rem .5rem;display:inline-flex}.section-title{color:var(--black);border-bottom:1px solid var(--rule);margin-bottom:.75rem;padding-bottom:.375rem;font-family:Playfair Display,Georgia,serif;font-size:1.25rem;font-weight:600}