:root{--black: #0a0a0a;--ink: #141414;--panel: #1c1c1c;--panel-2: #242424;--line: #333333;--gray: #8a8a8a;--gray-light: #c9c9c9;--white: #ffffff;--red: #d11a1a;--red-dark: #a91111;--red-bright: #ff2d2d;--radius: 4px;--radius-lg: 6px;--font: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;--mono: "Consolas", "SF Mono", monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;min-height:100%;height:100%}body{font-family:var(--font);background:var(--black);color:var(--white);font-size:15px;line-height:1.45}a{color:var(--red-bright);text-decoration:none}h1,h2,h3{margin:0 0 .4em;font-weight:800;letter-spacing:-.01em}.app-shell{min-height:100%;display:flex;flex-direction:column}.container{width:100%;max-width:720px;margin:0 auto;padding:16px}.container-wide{width:100%;max-width:1000px;margin:0 auto;padding:16px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:2px solid var(--red);background:var(--ink);position:sticky;top:0;z-index:20}.topbar .brand{font-weight:800;font-size:18px}.topbar .brand .accent{color:var(--red)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:15px;font-weight:700;padding:12px 18px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:filter .12s,background .12s,border-color .12s;text-transform:uppercase;letter-spacing:.03em}.btn:active{filter:brightness(.9)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--red);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--red-dark)}.btn-dark{background:var(--panel-2);color:var(--white);border-color:var(--line)}.btn-dark:hover:not(:disabled){background:var(--panel)}.btn-ghost{background:transparent;color:var(--white);border-color:var(--line)}.btn-ghost:hover:not(:disabled){border-color:var(--red)}.btn-block{width:100%}.btn-lg{padding:16px 22px;font-size:16px}.btn-sm{padding:7px 12px;font-size:13px}.card{background:var(--panel);border:1px solid var(--line);color:var(--white);border-radius:var(--radius-lg);padding:18px;margin-bottom:14px;font-family:inherit;font-size:15px}.card-title{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--red);margin-bottom:12px;font-weight:800}.field{margin-bottom:14px}.field label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-light);margin-bottom:6px;font-weight:700}input,textarea,select{width:100%;font-family:inherit;font-size:15px;color:var(--white);background:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:11px 12px;outline:none;transition:border-color .12s}input:focus,textarea:focus,select:focus{border-color:var(--red)}input:disabled,input[readonly]{color:var(--gray-light);background:#161616;cursor:not-allowed}textarea{resize:vertical;min-height:90px}input.readonly-calc{background:#181818;color:var(--white);font-weight:800;border-style:dashed}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}.table th{color:var(--gray-light);text-transform:uppercase;font-size:11px;letter-spacing:.05em}.row{display:flex;gap:10px}.row-wrap{display:flex;gap:10px;flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.spacer{flex:1}.muted{color:var(--gray)}.small{font-size:13px}.right{text-align:right}.center{text-align:center}.mt{margin-top:14px}.mb{margin-bottom:14px}.error-box{background:#2a1212;border:1px solid var(--red);color:#ffb3b3;padding:10px 12px;border-radius:var(--radius);font-size:14px;margin-bottom:12px}.warn-box{background:#2a2412;border:1px solid #b8951f;color:#ffe9a3;padding:10px 12px;border-radius:var(--radius);font-size:14px;margin-bottom:12px}.ok-box{background:#122a16;border:1px solid #2f9e44;color:#b2f2bb;padding:10px 12px;border-radius:var(--radius);font-size:14px;margin-bottom:12px}.badge{display:inline-block;padding:3px 9px;border-radius:3px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.badge-draft{background:#3a2e12;color:#ffd866;border:1px solid #8a6d1f}.badge-done{background:#123a1c;color:#8ce99a;border:1px solid #2f9e44}@media (max-width: 560px){.grid-2{grid-template-columns:1fr}.container,.container-wide{padding:12px}}
