*,:before,:after{box-sizing:border-box}body,html{scrollbar-width:none;margin:0;padding:0}body::-webkit-scrollbar{display:none}:root{--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-40:40px;--space-48:48px;--space-56:56px;--space-64:64px;--radius-default:4px;--radius-pill:20px;--radius-circle:50%;--size-icon-sm:28px;--size-icon-md:34px}[data-theme=light]{--color-bg:#edeae6;--color-card-bg:#fff;--color-modal-bg:#edeae6;--color-input-bg:#fff;--color-pill-bg:#edeae6;--color-tier-inactive-bg:#fff;--color-project-row-bg:#fff;--color-project-row-hover:#f5f2ee;--color-total-row-bg:#fff5ec;--color-total-card-vat-bg:#fafafa;--color-border:#000;--color-border-light:#eee;--color-border-mid:#ddd;--color-text:#000;--color-text-muted:#555;--color-text-faint:#999;--color-text-faintest:#bbb;--color-accent:#ff8000;--color-accent-text:#000;--color-danger:#c00;--color-danger-text:#fff;--color-success:#4caf50;--color-disabled-bg:#eee;--color-disabled-border:#ccc;--color-disabled-text:#aaa;--color-float-border:#aaa;--color-float-text:#888;--color-overlay-bg:#00000073;--color-modal-shadow:#000}[data-theme=dark]{--color-bg:#161616;--color-card-bg:#222;--color-modal-bg:#1e1e1e;--color-input-bg:#2a2a2a;--color-pill-bg:#2a2a2a;--color-tier-inactive-bg:#222;--color-project-row-bg:#222;--color-project-row-hover:#2a2a2a;--color-total-row-bg:#1e1000;--color-total-card-vat-bg:#1a1a1a;--color-border:#444;--color-border-light:#2e2e2e;--color-border-mid:#383838;--color-text:#e8e8e8;--color-text-muted:#999;--color-text-faint:#666;--color-text-faintest:#3a3a3a;--color-accent:#ff8000;--color-accent-text:#000;--color-danger:#c00;--color-danger-text:#fff;--color-success:#4caf50;--color-disabled-bg:#333;--color-disabled-border:#444;--color-disabled-text:#555;--color-float-border:#444;--color-float-text:#e8e8e8;--color-overlay-bg:#000000b3;--color-modal-shadow:#444}.text-xs{font-family:IBM Plex Mono,Courier New,monospace;font-size:10px;line-height:normal}.text-sm{font-family:IBM Plex Mono,Courier New,monospace;font-size:11px;line-height:normal}.text-base{font-family:IBM Plex Mono,Courier New,monospace;font-size:12px;line-height:normal}.text-md{font-family:IBM Plex Mono,Courier New,monospace;font-size:13px;line-height:normal}.text-icon{font-family:IBM Plex Mono,Courier New,monospace;font-size:16px;line-height:normal}.text-caption-upper{text-transform:uppercase;letter-spacing:.15em;font-family:IBM Plex Mono,Courier New,monospace;font-size:10px;line-height:normal}.text-label{text-transform:uppercase;letter-spacing:.08em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:10px;font-weight:700;line-height:normal}.text-title-sm{text-transform:uppercase;letter-spacing:0;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;font-weight:700;line-height:normal}.text-title-md{text-transform:uppercase;letter-spacing:0;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;font-weight:700;line-height:normal}.text-title-lg{text-transform:uppercase;letter-spacing:0;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:22px;font-weight:700;line-height:normal}.text-brand{text-transform:uppercase;letter-spacing:0;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:32px;font-weight:700;line-height:normal}.fw-bold{font-weight:700}.m-4{margin:var(--space-4)}.m-8{margin:var(--space-8)}.m-12{margin:var(--space-12)}.m-16{margin:var(--space-16)}.m-24{margin:var(--space-24)}.m-32{margin:var(--space-32)}.m-40{margin:var(--space-40)}.m-48{margin:var(--space-48)}.m-56{margin:var(--space-56)}.m-64{margin:var(--space-64)}.mt-4{margin-top:var(--space-4)}.mt-8{margin-top:var(--space-8)}.mt-12{margin-top:var(--space-12)}.mt-16{margin-top:var(--space-16)}.mt-24{margin-top:var(--space-24)}.mt-32{margin-top:var(--space-32)}.mt-40{margin-top:var(--space-40)}.mt-48{margin-top:var(--space-48)}.mt-56{margin-top:var(--space-56)}.mt-64{margin-top:var(--space-64)}.mr-4{margin-right:var(--space-4)}.mr-8{margin-right:var(--space-8)}.mr-12{margin-right:var(--space-12)}.mr-16{margin-right:var(--space-16)}.mr-24{margin-right:var(--space-24)}.mr-32{margin-right:var(--space-32)}.mr-40{margin-right:var(--space-40)}.mr-48{margin-right:var(--space-48)}.mr-56{margin-right:var(--space-56)}.mr-64{margin-right:var(--space-64)}.mb-0{margin-bottom:0}.mb-4{margin-bottom:var(--space-4)}.mb-8{margin-bottom:var(--space-8)}.mb-12{margin-bottom:var(--space-12)}.mb-16{margin-bottom:var(--space-16)}.mb-24{margin-bottom:var(--space-24)}.mb-32{margin-bottom:var(--space-32)}.mb-40{margin-bottom:var(--space-40)}.mb-48{margin-bottom:var(--space-48)}.mb-56{margin-bottom:var(--space-56)}.mb-64{margin-bottom:var(--space-64)}.ml-4{margin-left:var(--space-4)}.ml-8{margin-left:var(--space-8)}.ml-12{margin-left:var(--space-12)}.ml-16{margin-left:var(--space-16)}.ml-24{margin-left:var(--space-24)}.ml-32{margin-left:var(--space-32)}.ml-40{margin-left:var(--space-40)}.ml-48{margin-left:var(--space-48)}.ml-56{margin-left:var(--space-56)}.ml-64{margin-left:var(--space-64)}.mx-4{margin-left:var(--space-4);margin-right:var(--space-4)}.mx-8{margin-left:var(--space-8);margin-right:var(--space-8)}.mx-12{margin-left:var(--space-12);margin-right:var(--space-12)}.mx-16{margin-left:var(--space-16);margin-right:var(--space-16)}.mx-24{margin-left:var(--space-24);margin-right:var(--space-24)}.mx-32{margin-left:var(--space-32);margin-right:var(--space-32)}.mx-40{margin-left:var(--space-40);margin-right:var(--space-40)}.mx-48{margin-left:var(--space-48);margin-right:var(--space-48)}.mx-56{margin-left:var(--space-56);margin-right:var(--space-56)}.mx-64{margin-left:var(--space-64);margin-right:var(--space-64)}.my-4{margin-top:var(--space-4);margin-bottom:var(--space-4)}.my-8{margin-top:var(--space-8);margin-bottom:var(--space-8)}.my-12{margin-top:var(--space-12);margin-bottom:var(--space-12)}.my-16{margin-top:var(--space-16);margin-bottom:var(--space-16)}.my-24{margin-top:var(--space-24);margin-bottom:var(--space-24)}.my-32{margin-top:var(--space-32);margin-bottom:var(--space-32)}.my-40{margin-top:var(--space-40);margin-bottom:var(--space-40)}.my-48{margin-top:var(--space-48);margin-bottom:var(--space-48)}.my-56{margin-top:var(--space-56);margin-bottom:var(--space-56)}.my-64{margin-top:var(--space-64);margin-bottom:var(--space-64)}.p-4{padding:var(--space-4)}.p-8{padding:var(--space-8)}.p-12{padding:var(--space-12)}.p-16{padding:var(--space-16)}.p-24{padding:var(--space-24)}.p-32{padding:var(--space-32)}.p-40{padding:var(--space-40)}.p-48{padding:var(--space-48)}.p-56{padding:var(--space-56)}.p-64{padding:var(--space-64)}.pt-4{padding-top:var(--space-4)}.pt-8{padding-top:var(--space-8)}.pt-12{padding-top:var(--space-12)}.pt-16{padding-top:var(--space-16)}.pt-24{padding-top:var(--space-24)}.pt-32{padding-top:var(--space-32)}.pt-40{padding-top:var(--space-40)}.pt-48{padding-top:var(--space-48)}.pt-56{padding-top:var(--space-56)}.pt-64{padding-top:var(--space-64)}.pr-4{padding-right:var(--space-4)}.pr-8{padding-right:var(--space-8)}.pr-12{padding-right:var(--space-12)}.pr-16{padding-right:var(--space-16)}.pr-24{padding-right:var(--space-24)}.pr-32{padding-right:var(--space-32)}.pr-40{padding-right:var(--space-40)}.pr-48{padding-right:var(--space-48)}.pr-56{padding-right:var(--space-56)}.pr-64{padding-right:var(--space-64)}.pb-4{padding-bottom:var(--space-4)}.pb-8{padding-bottom:var(--space-8)}.pb-12{padding-bottom:var(--space-12)}.pb-16{padding-bottom:var(--space-16)}.pb-24{padding-bottom:var(--space-24)}.pb-32{padding-bottom:var(--space-32)}.pb-40{padding-bottom:var(--space-40)}.pb-48{padding-bottom:var(--space-48)}.pb-56{padding-bottom:var(--space-56)}.pb-64{padding-bottom:var(--space-64)}.pl-4{padding-left:var(--space-4)}.pl-8{padding-left:var(--space-8)}.pl-12{padding-left:var(--space-12)}.pl-16{padding-left:var(--space-16)}.pl-24{padding-left:var(--space-24)}.pl-32{padding-left:var(--space-32)}.pl-40{padding-left:var(--space-40)}.pl-48{padding-left:var(--space-48)}.pl-56{padding-left:var(--space-56)}.pl-64{padding-left:var(--space-64)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.px-12{padding-left:var(--space-12);padding-right:var(--space-12)}.px-16{padding-left:var(--space-16);padding-right:var(--space-16)}.px-24{padding-left:var(--space-24);padding-right:var(--space-24)}.px-32{padding-left:var(--space-32);padding-right:var(--space-32)}.px-40{padding-left:var(--space-40);padding-right:var(--space-40)}.px-48{padding-left:var(--space-48);padding-right:var(--space-48)}.px-56{padding-left:var(--space-56);padding-right:var(--space-56)}.px-64{padding-left:var(--space-64);padding-right:var(--space-64)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.py-12{padding-top:var(--space-12);padding-bottom:var(--space-12)}.py-16{padding-top:var(--space-16);padding-bottom:var(--space-16)}.py-24{padding-top:var(--space-24);padding-bottom:var(--space-24)}.py-32{padding-top:var(--space-32);padding-bottom:var(--space-32)}.py-40{padding-top:var(--space-40);padding-bottom:var(--space-40)}.py-48{padding-top:var(--space-48);padding-bottom:var(--space-48)}.py-56{padding-top:var(--space-56);padding-bottom:var(--space-56)}.py-64{padding-top:var(--space-64);padding-bottom:var(--space-64)}.gap-4{gap:var(--space-4)}.gap-8{gap:var(--space-8)}.gap-12{gap:var(--space-12)}.gap-16{gap:var(--space-16)}.gap-24{gap:var(--space-24)}.gap-32{gap:var(--space-32)}.gap-40{gap:var(--space-40)}.gap-48{gap:var(--space-48)}.gap-56{gap:var(--space-56)}.gap-64{gap:var(--space-64)}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.flex-wrap{flex-wrap:wrap}.grid{display:grid}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.w-full{width:100%}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.button{justify-content:center;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);border:2px solid var(--color-border);border-radius:var(--radius-default);color:var(--color-text);cursor:pointer;letter-spacing:.04em;background:0 0;outline:none;flex-shrink:0;transition:border-color .1s,background .1s;display:inline-flex}.button--sm{padding:var(--space-4) var(--space-8)}.button--icon{width:var(--size-icon-sm);height:var(--size-icon-sm);padding:0}.button--icon-md{width:var(--size-icon-md);height:var(--size-icon-md);padding:0}.button--lg{padding:var(--space-12)}.button--hero{padding:var(--space-8) var(--space-24)}.button--add{width:100%;padding:var(--space-8);border:2px dashed var(--color-border);color:var(--color-text-faint);letter-spacing:.05em}.button--danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-danger-text)}.button--disabled{background:var(--color-disabled-bg);border-color:var(--color-disabled-border);color:var(--color-disabled-text);cursor:default;pointer-events:none}.button--muted{border-color:var(--color-border-mid);color:var(--color-text-faint)}.button--inline{color:var(--color-text-faintest);padding:0 var(--space-4);background:0 0;border:none}.button--primary{background:var(--color-accent);color:var(--color-accent-text)}.input{padding:var(--space-8) var(--space-12);border:2px solid var(--color-border);border-radius:var(--radius-default);background:var(--color-input-bg);color:var(--color-text);box-sizing:border-box;-moz-appearance:textfield;outline:none}.input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input--lg{padding:var(--space-12) var(--space-16)}textarea.input{resize:vertical;line-height:1.6}.card{background:var(--color-card-bg);border:2px solid var(--color-border);border-radius:var(--radius-default)}.modal{background:var(--color-modal-bg);border:2px solid var(--color-border);border-radius:var(--radius-default);padding:var(--space-32);box-shadow:6px 6px 0 var(--color-modal-shadow)}.modal--sm{width:380px}.modal--md{width:520px}.modal--lg{width:560px}.modal--xl{width:640px;max-height:90vh;overflow-y:auto}.badge{padding:var(--space-4) var(--space-8);border:1px solid var(--color-border-mid);border-radius:var(--radius-pill);color:var(--color-text-faint);background:0 0}.toggle{padding:var(--space-4) var(--space-12);border:2px solid var(--color-border);border-radius:var(--radius-default);color:var(--color-text-muted);cursor:pointer;letter-spacing:.06em;background:0 0;outline:none;transition:all .1s}.toggle--active{border-color:var(--color-accent);color:var(--color-accent);background:#ff800018}.option-card{border:2px solid var(--color-border);border-radius:var(--radius-default);background:var(--color-tier-inactive-bg);cursor:pointer;outline:none;transition:border-color .1s,background .1s}.option-card--selected{border-color:var(--color-accent);background:#ff800012}.badge--tag{border-radius:var(--radius-default)}.option-card--selected .badge--tag{color:var(--color-accent);border-color:#ff800060}.section-label{text-transform:uppercase;letter-spacing:.08em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:10px;font-weight:700}.app-wrapper{background:var(--color-bg);min-height:100vh;color:var(--color-text);padding:var(--space-40) var(--space-24)}.app-container{max-width:1280px;margin:0 auto}.app-header{margin-bottom:var(--space-32);border-bottom:2px solid var(--color-border);padding-bottom:var(--space-24);justify-content:space-between;align-items:center;min-height:72px;display:flex}.app-header-actions{gap:var(--space-8);align-items:center;display:flex}.app-grid{gap:var(--space-48);grid-template-columns:1fr 1fr;display:grid}.app-column{min-width:0}.modal-overlay{background:var(--color-overlay-bg);z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.quote-print{display:none}@media print{@page{size:A4;margin:0}body{margin:0!important;padding:0!important}body>*{display:none!important}.quote-print{display:block!important}}
