.toast-stack{bottom:var(--space-24);z-index:2000;align-items:center;gap:var(--space-8);pointer-events:none;flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-popover);pointer-events:auto;max-width:min(480px, 100vw - 2 * var(--space-16));animation:.2s ease-out toast-slide-in;display:flex}.toast--error{border:1px solid var(--color-error-tint-border)}.toast--error .toast__icon{color:var(--color-error-text)}.toast--success{border:1px solid var(--color-success-tint-border)}.toast--success .toast__icon{color:var(--color-success-text)}.toast--warning{border:1px solid var(--color-warning-tint-border)}.toast--warning .toast__icon{color:var(--color-warning-text)}.toast__icon{flex-shrink:0}.toast__message{font-size:var(--text-sm);font-weight:var(--weight-control);color:var(--color-text);flex:1;line-height:1.4}.toast__close{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex}@media (pointer:coarse){.toast__close{width:44px;height:44px}}.toast__close{border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;transition:color .15s,background-color .15s}.toast__close:hover{color:var(--color-text);background:var(--color-hover)}.toast__close:focus{outline:none}.toast__close:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.btn{vertical-align:middle;justify-content:center;align-items:center;gap:var(--space-8);height:var(--control-height);border-radius:var(--radius-md);font-size:.9rem;font-weight:var(--weight-control);white-space:nowrap;border:1px solid #0000;padding:0 20px;transition:background-color .15s,box-shadow .15s,opacity .15s;display:inline-flex}.btn:focus{outline:none}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn--primary{background:var(--color-primary);color:#fff;--spinner-ink:currentColor;--spinner-track:#ffffff57}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--primary:active:not(:disabled){background:var(--color-primary-active)}.btn--secondary{color:var(--color-primary);border-color:var(--color-border-control);box-shadow:var(--shadow-xs-cast);background:0 0}.btn--secondary:hover:not(:disabled){background:var(--color-primary-tint-subtle)}.btn--secondary:active:not(:disabled){background:var(--color-primary-tint);box-shadow:none}.btn--pressed.btn--primary{background:var(--color-primary-active)}.btn--pressed.btn--secondary{background:var(--color-primary-tint);box-shadow:none}.btn--destructive.btn--primary{background:var(--color-error);--spinner-ink:currentColor;--spinner-track:#ffffff57}.btn--destructive.btn--primary:hover:not(:disabled){background:var(--color-error-hover)}.btn--destructive.btn--primary:active:not(:disabled){background:var(--color-error-active)}.btn--destructive.btn--secondary{color:var(--color-error-text);border-color:var(--color-error)}.btn--destructive.btn--secondary:hover:not(:disabled){background:var(--color-error-tint)}.btn--destructive.btn--secondary:active:not(:disabled){background:var(--color-error-tint-border);box-shadow:none}.btn--sm{height:var(--control-height-sm);padding:0 14px;font-size:.85rem}.btn--lg{height:var(--control-height-lg);padding:0 24px}.btn--full-width{width:100%}.btn:disabled{background:var(--color-surface-disabled);border-color:var(--color-border-disabled);color:var(--color-text-disabled);box-shadow:none;cursor:not-allowed}.modal-overlay{background:var(--color-backdrop);z-index:1000;padding:var(--space-24);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@media (width<=480px){.modal-overlay{align-items:flex-end;padding:0}}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:560px;max-height:80vh;display:flex;overflow:hidden}@media (width<=480px){.modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:none;max-height:92dvh}}.modal--compact{max-width:400px}.modal--wide{max-width:800px}.modal--canvas{max-width:960px}.modal:focus{outline:none}.modal__header{padding:var(--space-24) var(--space-24) var(--space-16);justify-content:space-between;align-items:center;display:flex}.modal__header h2{font-size:var(--text-xl);font-weight:var(--weight-title)}.modal__close{font-size:var(--text-2xl);color:var(--color-text-secondary);padding:var(--space-4);border-radius:var(--radius-sm);background:0 0;border:none;line-height:1}@media (pointer:coarse){.modal__close{justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0;display:inline-flex}}.modal__close:hover{color:var(--color-text)}.modal__close:focus{outline:none}.modal__close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.modal__body{padding:0 var(--space-24) var(--space-24);background:linear-gradient(var(--color-surface) 30%, #0000) top/100% 20px no-repeat local, linear-gradient(#0000, var(--color-surface) 70%) bottom/100% 20px no-repeat local, radial-gradient(farthest-side at 50% 0, var(--color-keyline), #0000) top/100% 7px no-repeat, radial-gradient(farthest-side at 50% 100%, var(--color-keyline), #0000) bottom/100% 7px no-repeat;flex:0 auto;overflow-y:auto}.modal__description{font-size:var(--text-md);color:var(--color-text-secondary);margin-bottom:var(--space-16)}.modal__fields{gap:var(--space-16);flex-direction:column;display:flex}.modal__fields .form-group{margin-bottom:0}.modal__footer{padding:var(--space-16) var(--space-24) var(--space-24);justify-content:flex-end;align-items:center;gap:var(--space-8);display:flex}.modal__footer--split{justify-content:space-between}.modal__footer-actions{align-items:center;gap:var(--space-8);display:flex}@media (width<=480px){.modal__footer .btn,.modal__footer-actions{flex:1 1 0}}.form-alert{z-index:3;align-items:flex-start;gap:var(--space-8);padding:var(--space-8) var(--space-16);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-control);color:var(--color-text);margin-bottom:var(--space-16);line-height:1.5;display:flex;position:relative}.form-alert__icon{flex-shrink:0;margin-top:2px}.form-alert__body{min-width:0}.form-alert--error{background:var(--color-error-tint);border:1px solid var(--color-error-tint-border)}.form-alert--error .form-alert__icon{color:var(--color-error-text)}.form-alert--success{background:var(--color-success-tint);border:1px solid var(--color-success-tint-border)}.form-alert--success .form-alert__icon{color:var(--color-success-text)}.form-alert--info{background:var(--color-primary-tint);border:1px solid var(--color-primary-tint-strong)}.form-alert--info .form-alert__icon{color:var(--color-primary)}.form-alert--warning{background:var(--color-warning-tint);border:1px solid var(--color-warning-tint-border)}.form-alert--warning .form-alert__icon{color:var(--color-warning-text)}.tooltip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:max-content;max-width:320px;box-shadow:var(--shadow-popover);padding:var(--space-8) var(--space-16);font-size:var(--text-xs);color:var(--color-text);text-align:left;line-height:1.5;display:block}.tooltip__title{font-weight:var(--weight-title);margin-bottom:var(--space-4)}.tooltip__row{align-items:center;gap:var(--space-6);padding:2px 0;display:flex}.tooltip__value{padding-left:var(--space-16);font-weight:var(--weight-title);font-variant-numeric:tabular-nums;margin-left:auto}.tooltip__row--total{padding-top:var(--space-4);border-top:1px solid var(--color-border);margin-top:2px}.tooltip__note{color:var(--color-text-secondary);margin-top:2px;padding-left:16px}.tooltip__list{margin:var(--space-4) 0 0;padding:var(--space-4) 0 0;border-top:1px solid var(--color-border);list-style:none}.tooltip__list .tooltip__value{font-weight:var(--weight-body);color:var(--color-text-secondary)}.floating-tooltip{z-index:var(--z-tooltip,3000);pointer-events:none;position:fixed}.colour-mark{vertical-align:middle;border-radius:50%;flex-shrink:0;display:inline-block}.colour-mark--sm{width:8px;height:8px}.colour-mark--md{width:10px;height:10px}
