.btn{display:inline-flex;align-items:center;justify-content:center;padding:0.5rem 1.1rem;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);font-family:inherit;line-height:var(--line-height-tight);transition:background-color var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-fast),color var(--transition-base);white-space:nowrap;user-select:none}.btn:focus{outline:2px solid var(--color-brand);outline-offset:2px}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled,.btn-disabled{opacity:var(--opacity-disabled);cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--color-brand);color:white;border-color:var(--color-brand);font-weight:var(--font-weight-semibold)}.btn-primary:hover:not(:disabled){background:var(--color-brand-hover);border-color:var(--color-brand-hover);box-shadow:var(--shadow-sm);color:white;text-decoration:none}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-hover);border-color:var(--color-text-secondary);color:var(--color-text-primary);text-decoration:none}.btn-danger{background:var(--color-danger);color:white;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger-dark,#b71c1c);border-color:var(--color-danger-dark,#b71c1c);box-shadow:0 2px 8px rgba(211,47,47,0.3);color:white;text-decoration:none}.btn-icon-add::before{content:"+";margin-right:0.4em;font-weight:var(--font-weight-semibold)}.btn-icon-add-svg{display:inline-flex;align-items:center;gap:0.4em}.btn-icon{width:15px;height:15px;flex-shrink:0}.btn-ghost{background:transparent;color:var(--color-text-primary);border-color:transparent;gap:0.4rem}.btn-ghost:hover:not(:disabled){background:var(--color-hover)}.btn-ghost .btn-icon{color:var(--color-text-secondary)}.btn-icon-only{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);cursor:pointer}.btn-icon-only:hover:not(:disabled){background:var(--color-hover);color:var(--color-text-primary)}.btn-text{display:inline-flex;align-items:center;gap:0.3rem;background:none;border:none;padding:0;font-family:inherit;font-size:var(--font-size-sm);color:var(--color-text-secondary);text-decoration:underline;text-decoration-color:var(--color-border-hover);text-underline-offset:3px;cursor:pointer}.btn-text:hover:not(:disabled){color:var(--color-text-primary);text-decoration-color:currentColor}.btn-text-danger{background:none;border:none;padding:0;font-family:inherit;font-size:var(--font-size-sm);color:var(--color-danger);text-decoration:underline;text-decoration-style:dashed;text-underline-offset:3px;cursor:pointer}.btn-text-danger:hover:not(:disabled){color:var(--color-danger-dark,#b71c1c);text-decoration-style:solid}.link-muted{color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-sm)}.link-muted:hover{color:var(--color-text-primary)}.btn-confirm{background:color-mix(in srgb,var(--color-brand) 14%,transparent);color:var(--color-brand-hover);border-color:transparent}.btn-confirm:hover:not(:disabled){background:color-mix(in srgb,var(--color-brand) 22%,transparent)}.btn-cancel{background:var(--color-hover);color:var(--color-text-primary);border-color:transparent}.btn-cancel:hover:not(:disabled){background:var(--color-border)}.subnav{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.subnav-item{background:transparent;border:none;border-bottom:2px solid transparent;padding:0.5rem 0.1rem;color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-decoration:none;cursor:pointer}.subnav-item:hover{border-bottom-color:var(--color-border);text-decoration:none}.subnav-item.active{color:var(--color-brand-hover);border-bottom-color:var(--color-brand);font-weight:var(--font-weight-semibold)}.btn-small{padding:0.35rem 0.6rem;font-size:var(--font-size-sm)}.filter-clear-link{background:none;border:none;padding:0.35rem 0.5rem;color:var(--color-danger-dark,#b71c1c);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;text-decoration:none}.filter-clear-link:hover{text-decoration:underline}.action-buttons{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:center}.action-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-lg);background:var(--color-surface);border-top:1px solid var(--color-border)}.action-bar.sticky-bottom{position:sticky;bottom:0;z-index:var(--z-sticky);box-shadow:0 -2px 8px rgba(0,0,0,0.08)}.action-bar-primary{display:flex;gap:var(--spacing-md);align-items:center}.action-bar-secondary{display:flex;gap:0.75rem;align-items:center;margin-left:auto}.dropdown{position:relative;display:inline-block}.dropdown-menu{display:none;position:absolute;right:0;top:calc(100% + 0.5rem);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:200px;z-index:var(--z-dropdown)}.dropdown-menu.show,[aria-expanded="true"] + .dropdown-menu{display:block}.dropdown-item{display:block;width:100%;padding:0.75rem var(--spacing-md);background:transparent;border:none;text-align:left;color:var(--color-text-primary);text-decoration:none;cursor:pointer;font-size:var(--font-size-md);font-family:inherit;transition:background var(--transition-fast)}.dropdown-item:hover{background:var(--color-hover)}.dropdown-item:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.dropdown-item.danger,.dropdown-item[data-danger]{color:var(--color-danger)}.dropdown-item.danger:hover,.dropdown-item[data-danger]:hover{background:rgba(220,53,69,0.1);color:var(--color-danger)}.dropdown-divider{height:1px;background:var(--color-border);margin:0.5rem 0}@media (min-width:768px){.action-bar{gap:var(--spacing-lg)}}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-weight:var(--font-weight-medium);margin-bottom:0.4rem;color:var(--color-text-primary)}.required{color:var(--color-danger);margin-left:0.25rem}.form-control{width:100%;padding:var(--input-padding-v) var(--input-padding-h);border:var(--input-border-width) solid var(--color-border);border-radius:var(--input-border-radius);font-family:inherit;font-size:var(--font-size-md);background:var(--color-surface);color:var(--color-text-primary);transition:var(--input-transition);box-sizing:border-box;max-width:var(--input-max-width)}.form-control:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.form-control:focus{outline:none;border-color:var(--color-brand);box-shadow:var(--input-focus-ring);background:var(--color-surface)}.form-control:disabled{opacity:var(--opacity-secondary);cursor:not-allowed;background:var(--color-surface-disabled)}.form-control::placeholder{color:var(--color-text-secondary);opacity:var(--opacity-placeholder)}select.form-control{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvgxmlns='http://www.w3.org/2000/svg'viewBox='002424'fill='none'stroke='currentColor'stroke-width='2'stroke-linecap='round'stroke-linejoin='round'%3e%3cpolylinepoints='691215189'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 0.75rem center;background-size:1.5em 1.5em;padding-right:2.5rem}textarea.form-control{resize:vertical;min-height:100px;max-width:100%;line-height:var(--line-height-normal)}textarea.form-control.textarea-sm{min-height:2.5rem;max-height:3rem}textarea.form-control.textarea-md{min-height:4rem;max-height:5rem}textarea.form-control.textarea-lg{min-height:6rem;max-height:8rem}textarea.form-control.textarea-xl{min-height:10rem;max-height:15rem}.form-checkbox,.form-radio{width:auto;min-width:18px;min-height:18px;margin:0;cursor:pointer;flex-shrink:0}.checkbox-group,.radio-group{margin-bottom:var(--spacing-md)}.checkbox-label,.radio-label{display:flex;align-items:center;cursor:pointer;margin-bottom:0.5rem;font-weight:var(--font-weight-normal);gap:0.75rem}.form-group small{display:block;margin-top:0.35rem;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.field-error-message{color:var(--color-danger);font-size:var(--font-size-sm);margin-top:0.25rem;display:block}.field-success-message{color:var(--autosave-success);font-size:var(--font-size-sm);margin-top:0.25rem;display:block}.field-hint{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:0.25rem;display:block;font-style:italic}.form-control.field-saving{border-color:var(--autosave-saving)}.form-control.field-saved{border-width:var(--input-border-width-emphasis);border-color:var(--autosave-success);padding:calc(var(--input-padding-v) - 1px) calc(var(--input-padding-h) - 1px)}.form-control.field-error{border-color:var(--autosave-error)}.form-control.field-saved:focus{border-width:var(--input-border-width-emphasis);border-color:var(--autosave-success);padding:calc(var(--input-padding-v) - 1px) calc(var(--input-padding-h) - 1px);box-shadow:0 0 0 3px rgba(76,175,80,0.1)}.form-control.field-error:focus{border-color:var(--autosave-error);box-shadow:0 0 0 3px rgba(220,53,69,0.1)}.form-group input.field-saving,.form-group textarea.field-saving,.form-group select.field-saving,.scrollable-textarea.field-saving{border-color:var(--autosave-saving)}.form-group input.field-saved,.form-group textarea.field-saved,.form-group select.field-saved,.scrollable-textarea.field-saved{border-width:var(--input-border-width-emphasis);border-color:var(--autosave-success);padding:calc(var(--input-padding-v) - 1px) calc(var(--input-padding-h) - 1px)}.form-group input.field-error,.form-group textarea.field-error,.form-group select.field-error,.scrollable-textarea.field-error{border-color:var(--autosave-error)}.field-status{display:inline-block;min-width:var(--status-icon-min-width);margin-left:var(--status-icon-margin);font-weight:var(--font-weight-semibold);transition:color 0.3s ease,opacity 0.3s ease}.field-status.saving{color:var(--autosave-saving)}.field-status.saved{color:var(--autosave-success)}.field-status.error{color:var(--autosave-error)}.scrollable-textarea{overflow-y:auto;overflow-x:hidden;resize:vertical;min-height:3rem;max-height:5rem;line-height:var(--line-height-normal)}.form-grid{display:grid;gap:0.75rem 1rem}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:var(--spacing-md)}.form-col{flex:1}.form-col-full,.form-col-half{grid-column:1 / -1}.data-table .form-group{margin-bottom:0}.data-table .form-group input,.data-table .form-group textarea,.data-table .form-group select{font-size:var(--font-size-sm);margin:0}.data-table input[type="text"]{min-width:140px;width:100%}.data-table select.form-control{min-width:140px}.data-table textarea,.data-table textarea.scrollable-textarea{min-width:220px;min-height:3rem;max-height:5rem;resize:vertical;overflow-y:auto;line-height:var(--line-height-tight)}.input-xs{max-width:3rem}.input-sm{max-width:4rem}.input-md{max-width:10rem}.input-lg{max-width:20rem}.input-full{width:100%;max-width:100%}@media (min-width:768px){.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-col-half{grid-column:auto}}.alert{padding:var(--spacing-md);margin-bottom:var(--spacing-md);border-radius:var(--radius-base);border-left:4px solid transparent}.alert-success{background-color:var(--alert-success-bg);color:var(--alert-success-fg);border-left-color:var(--alert-success-fg)}.alert-error{background-color:var(--alert-error-bg);color:var(--alert-error-fg);border-left-color:var(--alert-error-fg)}.alert-info{background-color:var(--alert-info-bg);color:var(--alert-info-fg);border-left-color:var(--alert-info-fg)}.alert-warning{background-color:var(--alert-warning-bg);color:var(--alert-warning-fg);border-left-color:var(--alert-warning-fg)}.error-messages{border-left:3px solid var(--alert-error-fg);background:var(--alert-error-bg);padding:0.5rem 0.75rem;margin-bottom:var(--spacing-md);border-radius:var(--radius-base);color:var(--alert-error-fg);font-size:var(--font-size-sm)}.error-list{list-style:disc;padding-left:1.25rem;margin-bottom:var(--spacing-md);color:var(--alert-error-fg);font-size:var(--font-size-sm)}.error-list li{margin-bottom:0.25rem}.badge{display:inline-block;padding:0.1rem 0.4rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;background:var(--color-hover);color:var(--color-text-primary)}.badge-sm{padding:0.05rem 0.3rem;font-size:0.7rem}.badge-lg{padding:0.2rem 0.6rem;font-size:var(--font-size-sm)}.badge--success{background:#e6f4ea;color:#0f5132}.badge--warning{background:#fff4e5;color:#7c3b05}.badge--info{background:#e5f2ff;color:#084c9e}.badge--danger{background:#f8d7da;color:#721c24}.badge.paid{background:rgba(76,175,80,0.15);border:1px solid rgba(76,175,80,0.4);color:#2e7d32;padding:0.35rem 0.7rem;border-radius:var(--radius-base);font-size:var(--font-size-sm)}.badge.pending{background:rgba(255,193,7,0.15);border:1px solid rgba(255,193,7,0.4);color:#f57f17;padding:0.35rem 0.7rem;border-radius:var(--radius-base);font-size:var(--font-size-sm)}.badge.unpaid{background:rgba(244,67,54,0.15);border:1px solid rgba(244,67,54,0.4);color:#c62828;padding:0.35rem 0.7rem;border-radius:var(--radius-base);font-size:var(--font-size-sm)}.badge.neutral{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);padding:0.35rem 0.7rem;border-radius:var(--radius-base);font-size:var(--font-size-sm)}.type-chip,.type-text{text-transform:uppercase;letter-spacing:0.04em;font-weight:var(--font-weight-semibold);white-space:nowrap}.type-chip{display:inline-block;padding:0.2rem 0.55rem;border-radius:var(--radius-full);font-size:0.7rem}.type-text{font-size:var(--font-size-xs)}.type-chip.type-filming{background:#E3F5F5;color:#1F6B6D}.type-text.type-filming{color:#1F6B6D}.type-chip.type-fitting{background:#F1E9FB;color:#6B3FA0}.type-text.type-fitting{color:#6B3FA0}.type-chip.type-event{background:#FBE7EE;color:#A32B57}.type-text.type-event{color:#A32B57}.type-chip.type-workshop{background:#FBF0D9;color:#8A5A00}.type-text.type-workshop{color:#8A5A00}.type-chip.type-rehearsal{background:#E6EAFB;color:#3949AB}.type-text.type-rehearsal{color:#3949AB}.type-chip.type-audition{background:#FCE8E0;color:#B14A26}.type-text.type-audition{color:#B14A26}.type-chip.type-none{background:var(--color-surface);color:var(--color-text-secondary);text-transform:none;letter-spacing:normal;font-weight:var(--font-weight-medium)}.type-text.type-none{text-transform:none;letter-spacing:normal;font-weight:var(--font-weight-normal);color:var(--color-text-secondary)}.status-badge{display:inline-block;padding:0.2rem 0.5rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;text-transform:capitalize;letter-spacing:0.01em;background:var(--color-border);color:var(--color-text-primary)}.status-badge.status-worked{background:var(--status-worked);color:#fff}.status-badge.status-booked,.status-badge.status-confirmed{background:var(--status-booked);color:#fff}.status-badge.status-offered{background:var(--status-offered);color:#fff}.status-badge.status-available,.status-badge.status-pencilled{background:var(--status-available);color:#333}.status-badge.status-declined,.status-badge.status-self-released{background:var(--status-declined);color:#fff}.status-badge.status-not-worked{background:var(--status-not-worked);color:#fff}.status-badge.status-released{background:var(--status-released);color:#fff}.status-badge.status-cancelled-with-pay{background:var(--status-cancelled-with-pay);color:#fff}.status-badge.status-unknown,.status-badge.status-no-response,.status-badge.status-no-confirmation{background:var(--status-unknown,var(--color-border));color:var(--color-text-primary)}.status-badge.status-unpaid{background:var(--status-unpaid);color:#fff}.status-badge.status-invoiced{background:var(--status-invoiced);color:#fff}.status-badge.status-chasing{background:var(--status-chasing);color:#333}.status-badge.status-in-dispute{background:var(--status-in-dispute);color:#fff}.status-badge.status-paid-partial{background:var(--status-paid-partial);color:#333}.status-badge.status-paid{background:var(--status-paid);color:#fff}.status-badge.status-resolved{background:var(--status-resolved);color:#fff}.status-counts{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.4rem}.status-counts .count{display:inline-block;padding:0.25rem 0.6rem;border-radius:var(--radius-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.status-counts .count.worked{background:rgba(76,175,80,0.15);border-color:rgba(76,175,80,0.4);color:#2e7d32}.status-counts .count.offered{background:rgba(255,193,7,0.15);border-color:rgba(255,193,7,0.4);color:#f57f17}.status-counts .count.booked{background:rgba(33,150,243,0.15);border-color:rgba(33,150,243,0.4);color:#1565c0}.payment-summary{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.4rem}.table-wrapper{overflow-x:auto;margin:0.75rem 0;position:relative;border:var(--input-border-width) solid var(--color-border);border-radius:var(--radius-card);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05);background:linear-gradient(to right,white 30%,rgba(255,255,255,0)),linear-gradient(to right,rgba(255,255,255,0),white 70%) 100% 0,radial-gradient(farthest-side at 0% 50%,rgba(0,0,0,0.15),rgba(0,0,0,0)),radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,0.15),rgba(0,0,0,0)) 100% 0;background-repeat:no-repeat;background-size:var(--table-scroll-gradient-size) 100%,var(--table-scroll-gradient-size) 100%,var(--table-scroll-shadow-size) 100%,var(--table-scroll-shadow-size) 100%;background-attachment:local,local,scroll,scroll}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.data-table thead th{background:var(--table-header-bg);font-weight:var(--font-weight-bold);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:0.03em;color:var(--color-text-secondary);padding:var(--table-header-padding-v) var(--table-header-padding-h);border-bottom:2px solid var(--table-border-emphasis);position:sticky;top:0;z-index:10}.data-table tbody td{padding:var(--table-cell-padding-compact-v) var(--table-cell-padding-compact-h);vertical-align:middle;border-bottom:1px solid var(--table-border-light)}.data-table tbody tr:hover{background:var(--table-row-hover);transition:background-color var(--transition-base)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.selected{background:var(--table-row-selected,rgba(33,150,243,0.1))}.table-num,.table-amount{text-align:right;white-space:nowrap}.data-table th.table-num,.data-table td.table-num{text-align:right;width:var(--table-col-number)}.data-table .table-num input[type="number"]{text-align:right;width:100%;max-width:70px}.table-center{text-align:center}.data-table th.table-center,.data-table td.table-center{text-align:center;vertical-align:middle;width:var(--table-col-checkbox)}.data-table .table-center input[type="checkbox"]{margin:0 auto;display:block;cursor:pointer;width:1.1rem;height:1.1rem}.table-actions{text-align:right;white-space:nowrap}.data-table th.table-actions,.data-table td.table-actions{text-align:center;width:var(--table-col-actions);white-space:nowrap}.table-actions a{margin-left:0.5rem;font-size:var(--font-size-sm)}.data-table th.table-col-wide,.data-table td.table-col-wide{width:32%}.data-table th.table-col-narrow,.data-table td.table-col-narrow{width:12%;white-space:nowrap}.row-today{background:#fffde7}.text-muted{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.data-table-row{border-left:3px solid transparent}.data-table-row.status-key-worked{border-left-color:var(--status-worked)}.data-table-row.status-key-booked,.data-table-row.status-key-confirmed{border-left-color:var(--status-booked)}.data-table-row.status-key-offered{border-left-color:var(--status-offered)}.data-table-row.status-key-available,.data-table-row.status-key-pencilled{border-left-color:var(--status-available)}.data-table-row.status-key-declined,.data-table-row.status-key-self-released{border-left-color:var(--status-declined)}.data-table-row.status-key-not-worked,.data-table-row.status-key-released,.data-table-row.status-key-cancelled-with-pay{border-left-color:var(--color-border)}.data-table-row.status-key-unknown{border-left-color:var(--color-border)}.data-table-row.calc-status-completed{border-left-color:var(--status-worked)}.data-table-row.calc-status-active{border-left-color:var(--status-booked)}.data-table-row.calc-status-offered{border-left-color:var(--status-offered)}.data-table-row.calc-status-declined{border-left-color:var(--status-declined)}.data-table-row.calc-status-expired{border-left-color:var(--color-border)}.data-table-row.calc-status-mixed{border-left-color:var(--status-available)}@media (min-width:768px){.table-wrapper{margin:0.75rem 0}.data-table input[type="text"]{min-width:140px}}.card{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--spacing-md) 1.25rem;margin-bottom:1.25rem}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.75rem;padding-bottom:0.75rem;border-bottom:1px solid var(--color-border)}.card-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin:0;color:var(--color-text-primary)}.card-header-actions{display:flex;gap:var(--spacing-md);align-items:center}.card-action-top{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-md)}.card-body{padding:0}.card-footer{padding-top:0.75rem;margin-top:0.75rem;border-top:1px solid var(--color-border)}.card-section{padding:0.75rem 0}.card-section:not(:last-child){border-bottom:1px solid var(--color-border)}.card-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:0.03em;margin-bottom:0.5rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.box{background:var(--color-surface);border-radius:var(--radius-card);padding:var(--spacing-md) 1.25rem;margin-bottom:var(--spacing-md);border:1px solid var(--color-border)}.box-nested{margin-bottom:0;padding:0.75rem var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-base)}.settings-section{margin-bottom:1.75rem;padding:1.25rem 1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card)}.settings-section h2{margin-top:0;margin-bottom:var(--spacing-md);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.settings-section ul{margin:0.5rem 0;padding-left:1.5rem}.settings-section li{margin-bottom:0.5rem;line-height:var(--line-height-normal)}.admin-section{margin-bottom:0;padding:1.25rem 1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.admin-section:first-child{border-radius:var(--radius-card) var(--radius-card) 0 0}.admin-section:last-child{border-radius:0 0 var(--radius-card) var(--radius-card)}.admin-section:only-child{border-radius:var(--radius-card)}@media (min-width:768px){.card{padding:var(--spacing-md) 1.25rem}.card-header{flex-direction:row;align-items:center}}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--z-modal-backdrop);justify-content:center;align-items:center;animation:modalFadeIn 0.2s ease}.modal[data-open="true"]{display:flex}.modal-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);cursor:pointer;z-index:-1}.modal-dialog{background:var(--color-background);border-radius:var(--radius-card);box-shadow:0 4px 20px rgba(0,0,0,0.15);max-width:600px;width:90vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;z-index:var(--z-modal);animation:modalSlideIn 0.3s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.modal-close{background:none;border:none;font-size:1.75rem;color:var(--color-text-secondary);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-base);transition:all var(--transition-slow)}.modal-close:hover{background:var(--color-hover);color:var(--color-text-primary)}.modal-close:focus{outline:2px solid var(--color-brand);outline-offset:2px}.modal-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--spacing-lg);min-height:0}.modal-form{display:flex;flex-direction:column;flex:1;min-height:0}.modal-footer{display:flex;gap:var(--spacing-md);justify-content:flex-end;padding:var(--spacing-lg);border-top:1px solid var(--color-border);flex-shrink:0}.modal-footer .btn{min-width:120px}.modal-error-container{margin-bottom:var(--spacing-md);display:none}.modal-error-container.show{display:block}.modal-error-container .alert-error{background:var(--alert-error-bg);color:var(--alert-error-fg);border:1px solid var(--alert-error-fg);padding:var(--spacing-md);border-radius:var(--radius-base);margin:0}.modal-success-container{margin-bottom:var(--spacing-md);display:none}.modal-success-container.show{display:block}.modal-success-container .alert-success{background:var(--alert-success-bg);color:var(--alert-success-fg);border:1px solid var(--alert-success-fg);padding:var(--spacing-md);border-radius:var(--radius-base);margin:0}.modal-body .form-group{margin-bottom:1.25rem}.modal-body .form-group label{font-weight:var(--font-weight-semibold);margin-bottom:0.5rem;font-size:var(--font-size-md)}.modal-body .form-group input,.modal-body .form-group textarea,.modal-body .form-group select{width:100%;padding:var(--input-padding-v) var(--input-padding-h);border:var(--input-border-width) solid var(--color-border);border-radius:var(--input-border-radius);font-family:inherit;font-size:var(--font-size-md);transition:all var(--transition-slow);box-sizing:border-box}.modal-body .form-group input:focus,.modal-body .form-group textarea:focus,.modal-body .form-group select:focus{outline:none;border-color:var(--color-brand);box-shadow:var(--input-focus-ring)}.modal-body .form-group textarea{resize:vertical;min-height:100px}.modal-body .form-group small{display:block;margin-top:0.35rem;color:var(--color-text-secondary);font-size:var(--font-size-sm)}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalSlideIn{from{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width:767px){.modal{align-items:flex-end}.modal-dialog{width:100%;height:calc(100% - 3.5rem - env(safe-area-inset-bottom));max-height:calc(100% - 3.5rem - env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin-bottom:0}#confirm-modal{align-items:flex-start}#confirm-modal .modal-dialog{height:auto;margin-top:15vh;border-radius:var(--radius-card)}.modal-header,.modal-body,.modal-footer{padding:var(--spacing-md)}.modal-footer{flex-direction:column-reverse;gap:0.75rem}.modal-footer .btn{width:100%;min-width:auto}.modal-body .form-group{margin-bottom:var(--spacing-md)}.modal-title{font-size:var(--font-size-lg)}.form-row{grid-template-columns:1fr;gap:var(--spacing-md)}}@media (min-width:768px){.modal-dialog{width:80vw}}@media (min-width:1024px){.modal-dialog{width:600px}}.filter-form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-sm);align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-group label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.filter-group select,.filter-group input[type="text"],.filter-group input[type="number"],.filter-group input[type="datetime-local"]{padding:var(--spacing-xs) var(--spacing-sm);border:var(--input-border-width) solid var(--color-border);border-radius:var(--input-border-radius);font-size:var(--font-size-xs);font-family:inherit;background-color:var(--color-background);color:var(--color-text-primary);transition:var(--input-transition);width:100%;box-sizing:border-box}.filter-group select:focus,.filter-group input[type="text"]:focus,.filter-group input[type="number"]:focus,.filter-group input[type="datetime-local"]:focus{outline:none;border-color:var(--color-brand);box-shadow:var(--shadow-focus)}.filter-group select{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvgxmlns='http://www.w3.org/2000/svg'viewBox='002424'fill='none'stroke='currentColor'stroke-width='2'stroke-linecap='round'stroke-linejoin='round'%3e%3cpolylinepoints='691215189'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right var(--spacing-xs) center;background-size:1rem;padding-right:1.75rem}.filter-actions-inline{display:flex;gap:var(--spacing-xs);justify-content:flex-start;align-self:flex-end}.filter-actions-inline .btn{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}@media (min-width:768px){.filter-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}.breadcrumbs{margin-bottom:var(--spacing-lg)}.breadcrumbs ol{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-size:var(--font-size-md)}.breadcrumbs li{display:flex;align-items:center;margin:0}.breadcrumbs a{color:var(--color-brand);text-decoration:none;transition:color var(--transition-slow)}.breadcrumbs a:hover{text-decoration:underline;color:var(--color-brand-hover)}.breadcrumbs span[aria-current="page"]{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.breadcrumbs .separator{color:var(--color-text-secondary);margin:0 0.5rem}@media (min-width:768px){.breadcrumbs ol{font-size:var(--font-size-md)}}.inline-edit-select,.inline-edit-textarea,.inline-edit-input{background:transparent;border:1px solid transparent;border-radius:var(--radius-base);font-family:inherit;font-size:inherit;color:inherit;padding:0.2rem 0.3rem;transition:border-color var(--transition-base),background var(--transition-base);width:100%}.inline-edit-textarea,.inline-edit-input{border-color:var(--color-border);background:var(--color-surface)}.inline-edit-select:hover,.inline-edit-textarea:hover,.inline-edit-input:hover{border-color:var(--color-border);background:var(--color-surface)}.inline-edit-select:focus,.inline-edit-textarea:focus,.inline-edit-input:focus{outline:none;border-color:var(--color-brand);background:var(--color-surface);box-shadow:var(--shadow-focus)}.inline-edit-select.field-saving,.inline-edit-textarea.field-saving{border-color:var(--autosave-saving);background:var(--color-surface)}.inline-edit-select.field-saved,.inline-edit-textarea.field-saved{border-color:var(--autosave-success);background:var(--color-surface)}.inline-edit-select.field-error,.inline-edit-textarea.field-error{border-color:var(--autosave-error);background:var(--color-surface)}.inline-edit-select{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvgxmlns='http://www.w3.org/2000/svg'viewBox='002424'fill='none'stroke='currentColor'stroke-width='2'stroke-linecap='round'stroke-linejoin='round'%3e%3cpolylinepoints='691215189'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 0.4rem center;background-size:1rem;padding-right:1.5rem;min-width:160px;cursor:pointer}.inline-edit-textarea{resize:vertical;min-height:2.5rem}.status-select{appearance:none;-webkit-appearance:none;border:var(--input-border-width) solid var(--color-border);border-radius:var(--input-border-radius);background-color:var(--color-surface);background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvgxmlns='http://www.w3.org/2000/svg'viewBox='002424'fill='none'stroke='%23777777'stroke-width='2'stroke-linecap='round'stroke-linejoin='round'%3e%3cpolylinepoints='691215189'%3e%3c/polyline%3e%3c/svg%3e"),radial-gradient(circle,var(--status-select-dot,var(--color-border)) 0 100%);background-position:right 0.5rem center,left 0.55rem center;background-size:1em 1em,8px 8px;padding:0.3rem 1.7rem 0.3rem 1.4rem;font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer}.status-select:hover,.status-select:focus{border-color:var(--color-border-hover);background-color:var(--color-surface);background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvgxmlns='http://www.w3.org/2000/svg'viewBox='002424'fill='none'stroke='%23777777'stroke-width='2'stroke-linecap='round'stroke-linejoin='round'%3e%3cpolylinepoints='691215189'%3e%3c/polyline%3e%3c/svg%3e"),radial-gradient(circle,var(--status-select-dot,var(--color-border)) 0 100%);background-position:right 0.5rem center,left 0.55rem center;background-size:1em 1em,8px 8px}.status-select:focus{outline:none;border-color:var(--color-brand);box-shadow:var(--input-focus-ring)}.status-select.status-key-worked{--status-select-dot:var(--status-worked)}.status-select.status-key-booked,.status-select.status-key-confirmed{--status-select-dot:var(--status-booked)}.status-select.status-key-offered{--status-select-dot:var(--status-offered)}.status-select.status-key-available,.status-select.status-key-pencilled{--status-select-dot:var(--status-available)}.status-select.status-key-declined,.status-select.status-key-self-released{--status-select-dot:var(--status-declined)}.status-select.status-key-not-worked{--status-select-dot:var(--status-not-worked)}.status-select.status-key-released{--status-select-dot:var(--status-released)}.status-select.status-key-cancelled-with-pay{--status-select-dot:var(--status-cancelled-with-pay)}.status-select.status-key-unpaid{--status-select-dot:var(--status-unpaid)}.status-select.status-key-invoiced{--status-select-dot:var(--status-invoiced)}.status-select.status-key-chasing{--status-select-dot:var(--status-chasing)}.status-select.status-key-in-dispute{--status-select-dot:var(--status-in-dispute)}.status-select.status-key-paid-partial{--status-select-dot:var(--status-paid-partial)}.status-select.status-key-paid{--status-select-dot:var(--status-paid)}.status-select.status-key-resolved{--status-select-dot:var(--status-resolved)}.tooltip-trigger{position:relative;display:inline-block;cursor:help;border-bottom:1px dashed var(--color-border-hover)}.tooltip-popup{position:absolute;z-index:var(--z-tooltip);top:100%;left:0;margin-top:var(--spacing-xs);min-width:180px;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-text-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);text-align:left;white-space:normal;opacity:0;visibility:hidden;transition:opacity var(--transition-base);pointer-events:none}.tooltip-popup,.tooltip-popup *{color:var(--color-background)}.tooltip-trigger:hover .tooltip-popup,.tooltip-trigger:focus .tooltip-popup,.tooltip-trigger:focus-within .tooltip-popup{opacity:1;visibility:visible}.tooltip-popup h5{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:0.03em}.tooltip-popup h5:not(:first-child){margin-top:var(--spacing-sm)}.tooltip-popup ul{list-style:none;margin:0;padding:0}.tooltip-popup li{padding:0.1rem 0;white-space:nowrap}
