.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#fef3c7,#eff6ff 45%,#f5f5f5);padding:20px}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px #0f172a18;padding:24px;display:grid;gap:12px}.login-card h1{margin-bottom:4px}.login-card label{display:grid;gap:6px;color:var(--muted);font-size:13px}.login-card input{min-height:38px;border-radius:8px;border:1px solid var(--line-strong);padding:8px 10px;width:100%}.login-card .login-submit{min-height:38px;border-radius:8px;background:var(--primary);border-color:var(--primary);color:#fff}.login-card .login-submit:hover{background:var(--primary-strong);border-color:var(--primary-strong)}.calendar-legend{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin:10px 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:12px}.toolbar.toolbar-filters-month{display:inline-grid;grid-template-columns:max-content;width:fit-content}.toolbar.toolbar-filters-month .month-picker-row{grid-template-columns:auto auto auto}.toolbar.toolbar-filters-month input[type=month]{width:170px}.calendar-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.calendar-search{position:relative;display:grid;gap:6px}.calendar-search-results{position:absolute;left:0;top:calc(100% + 4px);z-index:30;display:grid;gap:5px;width:min(420px,calc(100vw - 48px));max-height:190px;overflow-x:hidden;overflow-y:auto;padding:6px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;box-shadow:0 12px 30px #0f172a29}.calendar-search-results button{width:100%;min-height:46px;display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:start;gap:8px;overflow:hidden;padding:7px 9px;text-align:left}.calendar-search-results strong,.calendar-search-results small{min-width:0;overflow:hidden;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.calendar-search-results strong{color:var(--text);font-size:13px}.calendar-search-results small{color:var(--muted);font-size:11px}.calendar-legend-swatch{width:18px;height:18px;border:1px solid transparent;border-radius:4px;display:inline-block}.calendar-legend-free{background:#fff;border-color:#dfe6ee}.calendar-legend-directo{background:#e8f7ee;border-color:#95cfcb}.calendar-legend-booking{background:#cfe3ff;border-color:#8cc6e8}.calendar-legend-blocked{background:#fdecec;border-color:#e49a9a}.calendar-legend-range{background:#dceefa;border-color:#8cc6e8}.calendar-legend-range-edge{background:#c2eadf;border-color:#0f766e}.calendar-split-table{--calendar-building-col-width: 150px;--calendar-apartment-col-width: 140px;--calendar-row-height: 40px;display:grid;width:100%;grid-template-columns:calc(var(--calendar-building-col-width) + var(--calendar-apartment-col-width)) minmax(0,1fr);align-items:start;border:1px solid var(--line);border-radius:9px;background:#fff;overflow:visible}.calendar-pinned-pane{position:relative;z-index:3;background:#fff;box-shadow:1px 0 #dfe6ee,8px 0 12px -12px #1f29338c}.calendar-days-wrap{border:0;border-radius:0;overflow-x:auto;overflow-y:visible}.calendar-days-pane{min-width:0;--calendar-days-width: 1302px;--calendar-day-cell-width: 42px}.calendar-days-header{position:sticky;top:0;z-index:7;overflow:hidden;background:var(--surface-soft);border-bottom:1px solid #e8edf2}.calendar-days-header-table{width:100%;min-width:var(--calendar-days-width);table-layout:fixed;border-spacing:0;will-change:transform}.calendar-days-header-table th{height:var(--calendar-row-height);min-height:var(--calendar-row-height);padding:0;text-align:center;color:#455362;font-weight:600;font-size:13px;border-right:1px solid #e8edf2}.calendar-pinned-table,.calendar-days-table{border-spacing:0;min-width:0;table-layout:fixed}.calendar-pinned-table{width:calc(var(--calendar-building-col-width) + var(--calendar-apartment-col-width))}.calendar-days-table{width:100%;min-width:var(--calendar-days-width);table-layout:fixed}.calendar-pinned-table thead th{position:sticky;top:0;background:var(--surface-soft)}.calendar-pinned-table thead th{z-index:6}.calendar-pinned-table th,.calendar-pinned-table td,.calendar-days-table th,.calendar-days-table td{height:var(--calendar-row-height);min-height:var(--calendar-row-height);padding-top:0;padding-bottom:0}.calendar-pinned-table th:first-child,.calendar-pinned-table td:first-child{width:var(--calendar-building-col-width);max-width:var(--calendar-building-col-width)}.calendar-pinned-table th:last-child,.calendar-pinned-table td:last-child{width:var(--calendar-apartment-col-width);max-width:var(--calendar-apartment-col-width)}.calendar-pinned-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-days-table th,.calendar-days-table td{min-width:var(--calendar-day-cell-width);max-width:var(--calendar-day-cell-width);width:var(--calendar-day-cell-width);text-align:center;padding:0;border-right:1px solid #e8edf2}.calendar-days-table td:last-child{border-right:0}.calendar-days-header-table th:last-child{border-right:0}.calendar-table th,.calendar-table td{border-right:1px solid #e4ebf2}.calendar-table th:last-child,.calendar-table td:last-child{border-right:0}.calendar-table tbody td{border-bottom:1px solid #e4ebf2}.calendar-hover-day{background:#e8f2ff;color:#214c7a}.calendar-table th.calendar-col-weekend,.calendar-days-header-table th.calendar-col-weekend{background:#e8f1ff;color:#264078;font-weight:700}.calendar-table th.calendar-col-holiday,.calendar-days-header-table th.calendar-col-holiday{background:#fff1f2;color:#9f1239;font-weight:700}.calendar-table th.calendar-hover-day.calendar-col-weekend,.calendar-table th.calendar-hover-day.calendar-col-holiday,.calendar-table th.calendar-hover-day,.calendar-days-header-table th.calendar-hover-day.calendar-col-weekend,.calendar-days-header-table th.calendar-hover-day.calendar-col-holiday,.calendar-days-header-table th.calendar-hover-day{background:#cfe3ff;color:#1e3a8a}.calendar-hover-apartment{background:#e8f2ff;color:#214c7a;font-weight:700}.calendar-table td.calendar-free,.calendar-table td.calendar-booked,.calendar-table td.calendar-block{text-align:center;vertical-align:middle}.calendar-booked>svg,.calendar-block>svg{display:block;margin:0 auto}.calendar-clickable{cursor:pointer}.calendar-free.calendar-clickable{text-align:center;color:#111827;font-weight:800;font-size:18px;line-height:1;background:#fff}.calendar-booked.calendar-clickable{text-align:center;font-weight:700;font-size:12px;position:relative}.calendar-block{text-align:center;font-weight:700;font-size:12px}.calendar-transition-marker{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:14px;font-weight:900;font-size:14px;line-height:1;letter-spacing:.2px;transform:none}.calendar-booked-directo{background:#e8f7ee;color:#0f766e}.calendar-booked-booking{background:#e8f1ff;color:#214c7a}.calendar-blocked{background:#fdecec;color:#992727}.calendar-block-maintenance{background:#fff0f0;color:#b42318}.calendar-block-start-half-day{background:transparent;box-shadow:none;border-radius:0;padding:0}.calendar-blocked.calendar-block-range-start,.calendar-blocked.calendar-block-range-middle,.calendar-blocked.calendar-block-range-precheckout,.calendar-blocked.calendar-block-range-end{box-shadow:inset 0 1px #f0b4b4,inset 0 -1px #f0b4b4}.calendar-blocked.calendar-block-range-start{box-shadow:inset 1px 0 #f0b4b4,inset 0 1px #f0b4b4,inset 0 -1px #f0b4b4;border-top-left-radius:8px;border-bottom-left-radius:8px}.calendar-blocked.calendar-block-range-end{box-shadow:inset -1px 0 #f0b4b4,inset 0 1px #f0b4b4,inset 0 -1px #f0b4b4;border-top-right-radius:8px;border-bottom-right-radius:8px}.calendar-block-maintenance.calendar-block-range-start,.calendar-block-maintenance.calendar-block-range-middle,.calendar-block-maintenance.calendar-block-range-precheckout,.calendar-block-maintenance.calendar-block-range-end{box-shadow:inset 0 1px #f3b0b0,inset 0 -1px #f3b0b0}.calendar-block-maintenance.calendar-block-range-start{box-shadow:inset 1px 0 #f3b0b0,inset 0 1px #f3b0b0,inset 0 -1px #f3b0b0;border-top-left-radius:8px;border-bottom-left-radius:8px}.calendar-block-maintenance.calendar-block-range-end{box-shadow:inset -1px 0 #f3b0b0,inset 0 1px #f3b0b0,inset 0 -1px #f3b0b0;border-top-right-radius:8px;border-bottom-right-radius:8px}.calendar-block-start-half-day.calendar-block-range-start{background:transparent;box-shadow:none;border-radius:0}.calendar-free.calendar-range{background:#dceefa;color:#105c8c;box-shadow:inset 0 0 0 1px #8cc6e8}.calendar-free.calendar-range-start,.calendar-free.calendar-range-end{background:#c2eadf;color:#075e56;position:relative;box-shadow:none}.calendar-free.calendar-range-start.calendar-range-start-half-right{background:linear-gradient(to right,#e8f7ee 0,#e8f7ee 50%,#c2eadf 50%,#c2eadf);box-shadow:inset 21px 0 #e8f7ee}.calendar-free.calendar-range-end.calendar-range-end-half-right{background:linear-gradient(to right,#dceefa 0,#dceefa 50%,#e8f7ee 50%,#e8f7ee)}.calendar-free.calendar-range-start.calendar-range-start-half-right .calendar-checkout-half-right{background:#c2eadf;box-shadow:none}.calendar-free.calendar-range-start:after,.calendar-free.calendar-range-end:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 0 2px #0f766e;pointer-events:none;z-index:2}.calendar-free.calendar-range-start.calendar-range-start-half-right:after{left:50%;border-top-left-radius:8px;border-bottom-left-radius:8px}.calendar-free.calendar-range-end.calendar-range-end-half-right:after{left:0;right:50%;border-top-right-radius:8px;border-bottom-right-radius:8px}.calendar-free.calendar-range-invalid{background:#fdecec;color:#992727;box-shadow:inset 0 0 0 1px #e49a9a}.calendar-free.calendar-checkout-available.calendar-checkout-directo{background:#fff;color:#0f766e}.calendar-free.calendar-checkout-available.calendar-checkout-booking{background:#fff;color:#214c7a}.calendar-booked-directo.calendar-booked-range-start,.calendar-booked-directo.calendar-booked-range-middle,.calendar-booked-directo.calendar-booked-range-precheckout,.calendar-booked-directo.calendar-booked-range-end{background:#e8f7ee;box-shadow:inset 0 1px #b9ded6,inset 0 -1px #b9ded6}.calendar-booked-directo.calendar-booked-range-start{box-shadow:inset 1px 0 #b9ded6,inset 0 1px #b9ded6,inset 0 -1px #b9ded6;border-top-left-radius:8px;border-bottom-left-radius:8px}.calendar-booked-directo.calendar-booked-range-end{background:#e8f7ee;box-shadow:inset -1px 0 #b9ded6,inset 0 1px #b9ded6,inset 0 -1px #b9ded6;border-top-right-radius:8px;border-bottom-right-radius:8px}.calendar-booked-booking.calendar-booked-range-start,.calendar-booked-booking.calendar-booked-range-middle,.calendar-booked-booking.calendar-booked-range-precheckout,.calendar-booked-booking.calendar-booked-range-end{background:#e8f1ff;box-shadow:inset 0 1px #c4d9f6,inset 0 -1px #c4d9f6}.calendar-booked-booking.calendar-booked-range-start{box-shadow:inset 1px 0 #c4d9f6,inset 0 1px #c4d9f6,inset 0 -1px #c4d9f6;border-top-left-radius:8px;border-bottom-left-radius:8px}.calendar-booked-booking.calendar-booked-range-end{background:#e8f1ff;box-shadow:inset -1px 0 #c4d9f6,inset 0 1px #c4d9f6,inset 0 -1px #c4d9f6;border-top-right-radius:8px;border-bottom-right-radius:8px}.calendar-booked-start-half-day.calendar-booked-range-start{background:transparent;box-shadow:none;border-radius:0}.calendar-free.calendar-checkout-available{position:relative;overflow:hidden}.calendar-checkout-content{display:grid;grid-template-columns:1fr 1fr;width:100%;height:100%}.calendar-checkout-half{display:flex;align-items:center;justify-content:center}.calendar-checkout-half-right{background:#fff}.calendar-checkout-plus{color:#111827;font-size:18px;font-weight:800;line-height:1}.calendar-arrival-content{display:grid;grid-template-columns:1fr 1fr;width:100%;height:100%}.calendar-arrival-half{display:flex;align-items:center;justify-content:center}.calendar-arrival-half-left{background:#fff}.calendar-arrival-plus{color:#111827;font-size:18px;font-weight:800;line-height:1}.calendar-arrival-half-right{border-top-left-radius:8px;border-bottom-left-radius:8px;background:transparent;box-shadow:none}.calendar-arrival-half-right.calendar-booked-directo{background:#e8f7ee;color:#0f766e;box-shadow:inset 0 1px #b9ded6,inset 0 -1px #b9ded6,inset 1px 0 #b9ded6}.calendar-arrival-half-right.calendar-booked-booking{background:#e8f1ff;color:#214c7a;box-shadow:inset 0 1px #c4d9f6,inset 0 -1px #c4d9f6,inset 1px 0 #c4d9f6}.calendar-arrival-half-right.calendar-blocked{background:#fdecec;color:#992727;box-shadow:inset 0 1px #f0b4b4,inset 0 -1px #f0b4b4,inset 1px 0 #f0b4b4}.calendar-arrival-half-right.calendar-block-maintenance{background:#fff0f0;color:#b42318;box-shadow:inset 0 1px #f3b0b0,inset 0 -1px #f3b0b0,inset 1px 0 #f3b0b0}.calendar-arrival-range-end-preview .calendar-arrival-half-left{background:#c2eadf;box-shadow:inset 0 0 0 2px #0f766e}.calendar-arrival-range-checkout-preview .calendar-arrival-half-left{background:#c2eadf;box-shadow:inset 0 0 0 2px #0f766e;border-top-right-radius:8px;border-bottom-right-radius:8px}.calendar-free.calendar-checkout-available.calendar-checkout-directo .calendar-checkout-half-left{background:#e8f7ee;box-shadow:inset 0 1px #b9ded6,inset 0 -1px #b9ded6,inset -1px 0 #b9ded6;border-top-right-radius:8px;border-bottom-right-radius:8px}.calendar-free.calendar-checkout-available.calendar-checkout-booking .calendar-checkout-half-left{background:#e8f1ff;box-shadow:inset 0 1px #c4d9f6,inset 0 -1px #c4d9f6,inset -1px 0 #c4d9f6;border-top-right-radius:8px;border-bottom-right-radius:8px}.calendar-checkout-half-left.calendar-checkout-blocked{background:#fdecec;color:#992727;box-shadow:inset 0 1px #f0b4b4,inset 0 -1px #f0b4b4,inset -1px 0 #f0b4b4;border-top-right-radius:8px;border-bottom-right-radius:8px}.calendar-checkout-half-left.calendar-checkout-maintenance{background:#fff0f0;color:#b42318;box-shadow:inset 0 1px #f3b0b0,inset 0 -1px #f3b0b0,inset -1px 0 #f3b0b0;border-top-right-radius:8px;border-bottom-right-radius:8px}.calendar-checkout-marker{pointer-events:none;transform:none}.calendar-checkout-half .calendar-transition-marker{width:auto;height:auto}.calendar-range-night{font-size:14px;font-weight:800;line-height:1;color:#0b4f73}.calendar-free.calendar-range{position:relative}.calendar-range-night-start{position:absolute;top:50%;right:25%;transform:translate(50%,-50%);z-index:3;pointer-events:none}.calendar-checkout-warning-icon{color:#dc2626}.calendar-booked-transition-day{padding:0;background:transparent;box-shadow:none;border-left:0;border-right:0}.calendar-booked-transition-day.calendar-booked-range-start,.calendar-booked-transition-day.calendar-booked-range-middle,.calendar-booked-transition-day.calendar-booked-range-precheckout,.calendar-booked-transition-day.calendar-booked-range-end{background:transparent;box-shadow:none;border-radius:0}.calendar-booked-transition-content{display:grid;grid-template-columns:1fr 1fr;width:100%;height:100%}.calendar-booked-transition-half{display:flex;align-items:center;justify-content:center}.calendar-booked-transition-half-left{border-top-right-radius:8px;border-bottom-right-radius:8px;background:transparent;box-shadow:none}.calendar-booked-transition-half-right{border-top-left-radius:8px;border-bottom-left-radius:8px;background:transparent;box-shadow:none}.calendar-booked-transition-half-left.calendar-checkout-directo{background:#e8f7ee;color:#0f766e;box-shadow:inset 0 1px #b9ded6,inset 0 -1px #b9ded6,inset -1px 0 #b9ded6}.calendar-booked-transition-half-left.calendar-checkout-booking{background:#e8f1ff;color:#214c7a;box-shadow:inset 0 1px #c4d9f6,inset 0 -1px #c4d9f6,inset -1px 0 #c4d9f6}.calendar-booked-transition-half-left.calendar-checkout-blocked{background:#fdecec;color:#992727;box-shadow:inset 0 1px #f0b4b4,inset 0 -1px #f0b4b4,inset -1px 0 #f0b4b4}.calendar-booked-transition-half-left.calendar-checkout-maintenance{background:#fff0f0;color:#b42318;box-shadow:inset 0 1px #f3b0b0,inset 0 -1px #f3b0b0,inset -1px 0 #f3b0b0}.calendar-booked-transition-half-right.calendar-booked-directo{background:#e8f7ee;color:#0f766e;box-shadow:inset 0 1px #b9ded6,inset 0 -1px #b9ded6,inset 1px 0 #b9ded6}.calendar-booked-transition-half-right.calendar-booked-booking{background:#e8f1ff;color:#214c7a;box-shadow:inset 0 1px #c4d9f6,inset 0 -1px #c4d9f6,inset 1px 0 #c4d9f6}.calendar-booked-transition-half-right.calendar-blocked{background:#fdecec;color:#992727;box-shadow:inset 0 1px #f0b4b4,inset 0 -1px #f0b4b4,inset 1px 0 #f0b4b4}.calendar-booked-transition-half-right.calendar-block-maintenance{background:#fff0f0;color:#b42318;box-shadow:inset 0 1px #f3b0b0,inset 0 -1px #f3b0b0,inset 1px 0 #f3b0b0}@media screen and (max-width:1100px){.calendar-split-table{--calendar-building-col-width: 122px;--calendar-apartment-col-width: 118px}}@media screen and (max-width:760px){.toolbar.toolbar-filters-month{display:grid;width:100%;grid-template-columns:1fr}.toolbar.toolbar-filters-month label{width:100%}.toolbar.toolbar-filters-month .month-picker-row{grid-template-columns:34px minmax(0,1fr) 34px;align-items:center}.toolbar.toolbar-filters-month input[type=month]{width:100%;min-width:0}.calendar-split-table{--calendar-building-col-width: 86px;--calendar-apartment-col-width: 94px}.calendar-pinned-table th,.calendar-pinned-table td{padding-left:7px;padding-right:7px;font-size:12px}}.booking-sheet-link{border-color:#b8c5e6;background:#eef3ff;color:#2f4a85}.booking-sheet-link:hover{border-color:#aebce0;background:#e3eafc}.booking-detail-page{display:grid;gap:14px}.booking-detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(135deg,#fff,#f5faf9)}.booking-detail-kicker{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.booking-detail-hero h1{margin:2px 0 8px;font-size:30px;line-height:1.1}.booking-detail-status{display:flex;align-items:center}.booking-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.booking-detail-actions button,.booking-detail-actions .button-link{min-height:34px;padding:6px 11px;border-radius:9px;font-size:13px;font-weight:700;box-shadow:0 1px #0f172a14}.booking-detail-actions .action-edit{border-color:#b7e1df;background:#e8f7f6;color:#0f5f59}.booking-detail-actions .action-edit:hover{border-color:#95cfcb;background:#d9f0ee}.button-link{min-height:36px;padding:7px 12px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--text);display:inline-flex;align-items:center;gap:7px;font-weight:600}.button-link:hover{border-color:#b1bdc9;background:#f8fbfd}.booking-detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.85fr);gap:14px}.booking-summary-card,.booking-money-card,.booking-management-card,.booking-notes-card{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:14px}.booking-summary-card h2,.booking-money-card h2,.booking-management-card h2,.booking-notes-card h2{margin:0 0 12px;font-size:16px}.booking-form-sections{display:grid;gap:12px}.form-section-title{display:inline-flex;align-items:center;gap:8px}.form-section-title svg{color:var(--primary)}.booking-summary-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.booking-summary-item{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;padding:12px;border:1px solid #e5ebf1;border-radius:8px;background:#fbfcfd;align-items:center}.booking-summary-item svg{grid-row:1 / span 2;color:var(--primary);align-self:center;margin-top:0}.booking-summary-item span,.booking-money-row span{color:var(--muted);font-size:12px}.booking-summary-item strong{min-width:0;color:#111827;line-height:1.3}.booking-notes-card p{margin:0;min-height:38px;padding:12px;border:1px solid #e5ebf1;border-radius:8px;background:#fbfcfd;color:#27313c;white-space:pre-wrap}.booking-money-card{display:grid;align-content:start;gap:8px}.booking-money-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #e5ebf1}.booking-money-row:last-child{border-bottom:0}.booking-money-row strong{font-size:18px}.booking-money-row.pending strong{color:var(--primary)}.booking-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.booking-management-panel{display:grid;gap:10px;padding:12px;border:1px solid #e5ebf1;border-radius:8px;background:#fbfcfd}.booking-management-panel.wide{grid-column:1 / -1}.booking-management-panel h3{margin:0;font-size:13px}.booking-control-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.booking-control-row select,.booking-control-row input{min-height:36px;min-width:170px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;padding:7px 10px}.booking-control-row select{flex:1 1 220px}.booking-control-row button{min-width:0;white-space:nowrap;justify-content:center}.booking-control-row .compact-create{min-height:36px;padding:7px 10px;font-size:13px}.catalog-form.booking-form{grid-template-columns:repeat(5,minmax(0,1fr));width:100%}.catalog-form.booking-form>*{min-width:0}.booking-form>.create-button{grid-column:1 / -1;justify-self:start;margin-top:2px}.client-search{position:relative;display:grid;gap:6px}.client-search>span{color:#0f766e;font-size:12px;font-weight:700}.client-search-results{position:absolute;left:0;top:calc(100% + 4px);z-index:30;display:grid;gap:5px;width:min(420px,calc(100vw - 48px));max-height:190px;overflow-x:hidden;overflow-y:auto;padding:6px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;box-shadow:0 12px 30px #0f172a29}.client-search-results button{width:100%;display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:start;gap:8px;text-align:left;min-height:46px;padding:7px 9px;overflow:hidden}.client-search-results strong{min-width:0;overflow:hidden;color:var(--text);font-size:13px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.client-search-results small{min-width:0;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.client-create-button{position:static;min-width:0;min-height:34px;padding:6px 10px;border-radius:8px}.client-create-row{grid-column:1 / -1;display:flex;justify-content:flex-start;padding-top:2px}.client-create-row-mobile{display:none}@media screen and (max-width:1080px){.catalog-form.booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-management-grid{grid-template-columns:1fr}}@media screen and (max-width:760px){.catalog-form.booking-form{grid-template-columns:1fr}.client-create-row-desktop{display:none}.client-create-row-mobile{display:flex;grid-column:auto}.booking-detail-hero{display:grid}.booking-detail-actions{justify-content:flex-start}.booking-summary-list{grid-template-columns:1fr}.booking-control-row{display:grid;grid-template-columns:1fr}.booking-control-row select,.booking-control-row input,.booking-control-row button{width:100%}}@media screen and (max-width:1024px){.booking-detail-grid{grid-template-columns:1fr}}.catalog-block{margin-top:16px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px;display:grid;gap:12px}.catalog-submenu{margin-top:10px;display:inline-flex;align-items:center;gap:6px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.submenu-button{min-height:32px;padding:6px 12px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:13px;font-weight:600}.submenu-button:hover{background:#eef3f7;color:#334155}.submenu-button.active{background:#124b47;border-color:#124b47;color:#fff}.catalog-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.catalog-form input:not([type=checkbox]),.catalog-form select,.catalog-form textarea,.catalog-form button{min-height:36px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;padding:7px 10px}.catalog-form textarea{resize:vertical;min-height:92px;line-height:1.35}.catalog-form button{background:#fff}.catalog-form button[type=submit]:not(.create-button){background:#0f766e;border-color:#0f766e;color:#fff}.catalog-form button[type=submit]:not(.create-button):hover{background:#0c5f59;border-color:#0c5f59}.catalog-form>.create-button{grid-column:1 / -1;justify-self:start;margin-top:2px}.catalog-form .inline-check{align-self:center;min-height:36px}.catalog-form .inline-check input[type=checkbox]{width:16px;height:16px;min-height:0;margin:0;padding:0;border:0;border-radius:4px;background:transparent;box-shadow:none;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.catalog-status-filter{display:inline-flex;align-items:end;width:fit-content}.catalog-status-filter label{display:grid;gap:6px;font-size:12px;color:var(--muted)}.catalog-status-filter select{min-width:150px;min-height:34px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;padding:6px 10px}.catalog-controls{display:flex;align-items:end;justify-content:space-between;gap:12px}.catalog-controls .create-button{margin-left:auto}@media screen and (max-width:1100px){.catalog-form{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media screen and (max-width:1024px){.catalog-form{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-submenu{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}}@media screen and (max-width:760px){.catalog-form,.catalog-submenu{grid-template-columns:1fr}.catalog-controls{flex-direction:column;align-items:stretch}.catalog-controls .create-button{margin-left:0;width:fit-content}}.dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.dashboard-actions{margin-top:0}.metrics{margin-top:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px;display:grid;gap:5px;text-align:left;cursor:pointer;box-shadow:0 1px #0f172a08;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.metric:hover{border-color:#93b4db;box-shadow:0 8px 18px #0f172a14;transform:translateY(-1px)}.metric span{font-size:12px;color:var(--muted)}.metric strong{font-size:25px;line-height:1.1;color:#111827}.metric small{color:#526173;font-size:12px}.metric-accent{border-left:4px solid #249a8f}.metric-info{border-left:4px solid #3f7fd4}.metric-warning{border-left:4px solid #f59e0b}.metric-neutral{border-left:4px solid #64748b}.metric-success{border-left:4px solid #22a06b}.metric-danger{border-left:4px solid #ef4444}.dashboard-task-strip{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.dashboard-task{min-height:48px;border:1px solid var(--line);border-radius:8px;background:#fff;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px 12px;text-align:left;color:#132238}.dashboard-task:hover{border-color:#9ab8dc;background:#f8fbff}.dashboard-task span{color:#526173;font-size:12px}.dashboard-task strong{font-size:20px}.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-heading-row h2{margin:0}.link-action{border:0;background:transparent;color:#2f6fbb;font-weight:700;display:inline-flex;align-items:center;gap:4px;padding:4px 0}.link-action:hover{color:#1d4f91}.dashboard-occupancy{margin-top:16px}.occupancy-list{display:grid;gap:10px}.occupancy-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,2fr) auto;align-items:center;gap:14px;padding:11px 12px;border:1px solid #dbe5ef;border-radius:8px;background:#fbfdff}.occupancy-row div:first-child{min-width:0;display:grid;gap:3px}.occupancy-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.occupancy-row span{color:#526173;font-size:12px}.occupancy-row b{font-size:14px}.occupancy-meter{height:10px;border-radius:999px;background:#e8eef5;overflow:hidden}.occupancy-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#249a8f,#3f7fd4)}.split-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;gap:14px;margin-top:16px}.dashboard-movement-card{min-width:0}.movement-list{display:grid;gap:9px}.movement-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(160px,1fr) auto;align-items:center;gap:12px;padding:10px 11px;border:1px solid #dbe5ef;border-radius:8px;background:#fff}.movement-main{min-width:0;display:grid;gap:3px}.movement-main strong{font-size:12px;color:#314155}.movement-main span,.movement-home{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.movement-home{color:#314155;font-size:12px}.movement-meta{display:flex;align-items:center;gap:8px;white-space:nowrap}.movement-meta>span{color:#526173;font-size:12px}.dashboard-empty{margin:0;padding:16px 0}.calendar-cta{border-color:#5b8bd6;background:linear-gradient(135deg,#5ea2ef,#3f7fd4);color:#fff;font-weight:700;box-shadow:0 2px #2f5ea1,0 6px 14px #3f7fd438}.calendar-cta:hover{border-color:#4f7ec8;background:linear-gradient(135deg,#5297e6,#366fbd)}@media screen and (max-width:1080px){.split-grid{grid-template-columns:1fr}}@media screen and (max-width:760px){.dashboard-hero{align-items:stretch;flex-direction:column}.dashboard-actions{justify-content:flex-start}.occupancy-row,.movement-row{grid-template-columns:1fr;align-items:stretch}.movement-meta{justify-content:space-between}}:root{--a4-width: 210mm;--a4-height: 297mm;--a4-pad: 12mm;--ink: #111;--line: #2f2f2f;--line-soft: #5c5c5c;--label-col: 44mm;--amounts-label-col: 58mm;--value-min-h: 6mm}.print-page{background:#f3f3f3;min-height:100vh;padding:18px}.print-actions{display:flex;justify-content:center;gap:10px;margin-bottom:14px}.print-actions button,.print-actions a{padding:9px 13px;border:1px solid #222;border-radius:4px;background:#fff;color:#111;text-decoration:none;font-weight:600}.print-actions button:hover,.print-actions a:hover{background:#ededed}.reservation-sheet{width:var(--a4-width);min-height:var(--a4-height);margin:0 auto;background:#fff;color:var(--ink);padding:var(--a4-pad);border:1px solid var(--line-soft);box-shadow:0 8px 18px #00000026;box-sizing:border-box;font-family:Times New Roman,Times,serif;font-size:12px;line-height:1.25}.sheet-header{display:grid;grid-template-columns:1fr 1fr;align-items:start;border-bottom:1px solid var(--line);padding-bottom:5mm}.logo-box{display:grid;grid-template-columns:auto 1fr;gap:5mm;align-items:start}.logo-mark{width:50mm;height:auto;min-height:0;display:grid;margin-left:13mm}.logo-mark img,.logo-mark svg{width:auto;height:auto;max-width:50mm;max-height:30mm;object-fit:contain;object-position:left top;display:block}.logo-dot{fill:#f1d64b;stroke:#8a7b24;stroke-width:1}.logo-flag{fill:#c7bdd9;stroke:#6e6482;stroke-width:1}.logo-script{font-family:Times New Roman,Times,serif;font-style:italic;font-weight:700;font-size:24px;fill:#222;transform:rotate(-12deg);transform-origin:42px 42px}.logo-caption{display:grid;gap:1px}.logo-caption strong{font-size:18px;letter-spacing:.6px}.logo-caption span{font-size:12px;font-style:italic}.company{justify-self:end;text-align:left;font-size:11px;line-height:1.2}.sheet-title{width:max-content;margin:4mm auto;border:1px solid var(--line);padding:1.2mm 8mm;font-size:28px;font-weight:700;line-height:1;letter-spacing:.2px}.sheet-meta{margin:0 auto 4mm;width:118mm;display:grid;gap:1.6mm}.sheet-meta label{display:grid;grid-template-columns:var(--label-col) minmax(0,1fr);align-items:center;gap:2mm;font-size:11px;font-style:italic}.sheet-meta strong,.sheet-grid strong,.date-row strong,.amounts strong+label strong{border:1px solid var(--line-soft);min-height:var(--value-min-h);display:inline-flex;align-items:center;justify-content:flex-start;padding:0 1.5mm;font-style:normal;font-size:11px;background:#fff}.section-title{margin:3.2mm 0 0;border:1px solid var(--line);padding:1mm 2mm;text-align:center;font-size:16px;font-style:italic;font-weight:700;text-transform:none}.sheet-grid{border:1px solid var(--line);border-top:0;padding:3.5mm 4mm;display:grid;grid-template-columns:1fr 1fr;gap:2.2mm 4mm}.sheet-grid label,.date-row label,.amounts label{display:grid;grid-template-columns:var(--label-col) minmax(0,1fr);gap:2mm;align-items:center}.sheet-grid label span,.date-row span,.amounts span{text-align:right;font-style:italic;font-size:11px;white-space:nowrap;padding-right:1mm}.sheet-grid .wide{grid-column:span 2}.sheet-grid .wide strong{justify-content:flex-start}.housing{grid-template-columns:1.35fr 1fr}.renter label strong,.housing label strong,.date-row label strong,.amounts label strong{width:100%}.date-row{border:1px solid var(--line);border-top:0;padding:2.4mm 4mm;display:grid;grid-template-columns:1fr 1fr;gap:5mm}.checkout-notice{margin:2.4mm 0 0;text-align:center;font-size:11px;font-weight:600}.amounts{margin:4mm 0 5mm auto;width:106mm;display:grid;gap:1.2mm}.amounts>strong{justify-self:end;font-size:12px}.amounts label{grid-template-columns:var(--amounts-label-col) minmax(0,1fr)}.conditions{margin-top:4mm;font-size:12px;font-style:italic;line-height:1.25;max-width:170mm}.closing{margin-top:6mm;margin-left:12mm;font-size:19px;font-style:italic;font-weight:700}@media screen and (max-width:1024px){.print-page{padding:10px}.reservation-sheet{width:var(--a4-width);min-width:var(--a4-width)}}@media screen and (max-width:760px){.sheet-header{grid-template-columns:1fr;gap:8px}.company{justify-self:start}.sheet-grid,.housing,.date-row{grid-template-columns:1fr}.sheet-grid .wide{grid-column:span 1}.sheet-grid label,.date-row label,.amounts label,.sheet-meta label{grid-template-columns:1fr;gap:1mm}.sheet-grid label span,.date-row span,.amounts span{text-align:left;white-space:normal}.amounts{width:100%}.sheet-title{font-size:18px}.closing{font-size:14px}}@page{size:A4;margin:0}@media print{html,body{width:var(--a4-width);height:var(--a4-height);margin:0;padding:0;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-page{margin:0;padding:0;background:#fff}.print-actions,.app-shell{display:none!important}.reservation-sheet{width:var(--a4-width);min-height:var(--a4-height);margin:0;box-shadow:none}.sheet-header,.section-title,.sheet-grid,.date-row,.amounts,.conditions{break-inside:avoid;page-break-inside:avoid}}:root{font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;color:#1f2933;background:#f4f6f8;--bg: #f4f6f8;--surface: #ffffff;--surface-soft: #f8fafc;--line: #d7dee6;--line-strong: #c3ced9;--text: #1f2933;--muted: #5f6e7d;--primary: #0f766e;--primary-strong: #0c5f59;--accent: #7c3aed;--danger: #b42318}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;background:#1d2530;color:#e8edf2;border-right:1px solid #2f3a47;padding:22px 16px;display:flex;flex-direction:column;gap:18px}.sidebar-top{display:flex;align-items:flex-start;gap:10px}.brand{display:grid;gap:6px;padding:0;width:100%}.brand-row{display:flex;align-items:center;justify-content:flex-start;gap:8px;position:relative}.brand-logo{width:100%;max-width:none;aspect-ratio:1 / 1;height:auto;align-self:start;background:#fff;border-radius:12px;padding:0;border:1px solid rgba(255,255,255,.25);box-shadow:0 6px 16px #00000040;object-fit:contain;object-position:center}.brand strong{font-family:Avenir Next,Avenir Next LT Pro,Avenir,Segoe UI,sans-serif;font-size:17px;font-weight:200;letter-spacing:.12em;text-transform:uppercase}.brand small{color:#a9b5c2;font-size:12px}.sidebar nav{display:grid;gap:4px;flex:1 1 auto;align-content:start;overflow-y:auto;min-height:0}.sidebar-close{display:none}.nav-link{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:8px;color:#d8e0e8;transition:background .15s ease,color .15s ease}.nav-link:hover{background:#2a3442;color:#fff}.nav-link.active{background:#124b47;color:#fff}.logout-button{width:100%;min-height:38px;border-radius:8px;border:1px solid #7f93a8;background:#2a3442;color:#f5f8fb;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;cursor:pointer}.logout-button:hover{border-color:#e5aaaa;background:#3a2a2f;color:#ffdede}.content{min-width:0;padding:18px 20px 22px}.content-header{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-height:54px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.content-header-left{display:flex;align-items:center;gap:10px}.user-meta{display:grid;gap:2px}.user-meta strong{font-size:14px;letter-spacing:0}.user-meta span,.content-header-right{color:var(--muted);font-size:12px}.readonly-badge{justify-self:start;margin-top:2px;padding:2px 7px;border-radius:999px;border:1px solid #d7c68b;background:#fff7df;color:#7a5a0b;font-size:11px;font-weight:700}.role-legend{margin:4px 0 10px;border:1px dashed #cfd9e4;border-radius:8px;background:#f8fbfe;padding:8px 10px}.role-legend summary{cursor:pointer;color:#51667d;font-size:12px;font-weight:700;list-style:none;display:inline-flex;align-items:center;gap:6px}.role-legend summary::-webkit-details-marker{display:none}.role-legend summary:before{content:"▸";color:#6a7f96;font-size:11px;line-height:1;transform:translateY(-.5px)}.role-legend[open] summary:before{content:"▾"}.role-legend-content{margin-top:8px;display:grid;gap:5px}.role-legend-content p{margin:0;color:#4f6277;font-size:12px}.sidebar-toggle{display:none}.sidebar-footer{margin-top:auto;display:grid;gap:8px;padding-top:10px;border-top:1px solid #2f3a47}.sidebar-backdrop{display:none}.content-body{margin-top:16px}.page-title{display:grid;gap:6px;margin-bottom:12px}h1{margin:0;font-size:24px;line-height:1.2;letter-spacing:0}h2{margin:0;font-size:16px;line-height:1.25;letter-spacing:0}.page-title p{margin:0;color:var(--muted);font-size:14px}button{min-height:36px;padding:7px 12px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;gap:7px}button:hover{background:#f8fbfd;border-color:#b1bdc9}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid #2f7dbf;outline-offset:2px}button:disabled{opacity:.6;cursor:default}.inline-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.pagination-bar{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.pagination-summary{color:#4f6072;font-size:13px}.pagination-summary strong{color:#1f2933}.pagination-controls{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.pagination-size{display:inline-flex;align-items:center;gap:7px;color:#4f6072;font-size:12px}.pagination-size select{min-height:32px;border-radius:7px;border:1px solid var(--line-strong);background:#fff;padding:5px 9px}.pagination-button{min-height:32px;padding:6px 10px;border-radius:7px;border:1px solid #ccd8e4;background:#f2f6fb;color:#35506b;font-size:12px;font-weight:600}.pagination-button:hover{background:#e8f0f8;border-color:#b8c9da}.pagination-button.is-active{background:#2e8a84;border-color:#2a7a75;color:#fff;cursor:default}.detail-actions{margin-bottom:12px}.toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end;margin:8px 0 4px}.toolbar label{display:grid;gap:6px;color:var(--muted);font-size:12px}.month-picker-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px}.month-picker-row .icon-button{width:36px;min-height:36px}.toolbar input,.toolbar select,.toolbar button,.status-select{min-height:36px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;padding:7px 10px}.toolbar button{background:#f2f6fb;border-color:#ccd8e4;color:#35506b}.toolbar button:hover{background:#e8f0f8;border-color:#b8c9da}.toolbar .search-button,.toolbar .clear-button{min-height:36px;padding:5px 9px;font-size:12px;font-weight:600;width:auto;min-width:0;justify-self:start}.toolbar-inline-actions{display:inline-flex;gap:8px;align-items:center;align-self:end;justify-self:start}.toolbar .search-button{background:#e8f3ff;border-color:#b9d5ef;color:#1f4f82}.toolbar .search-button:hover{background:#dcebfb;border-color:#a2c4e4}.toolbar .clear-button{background:#f4f6f8;border-color:#d3dae2;color:#516275}.toolbar .clear-button:hover{background:#eceff3;border-color:#c1cbd7}.mobile-filters-toggle{display:none}.field-label{display:grid;gap:6px;color:var(--muted);font-size:12px}.field-help{min-height:18px;font-size:12px;line-height:1.25;color:transparent;display:block;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.field-help.is-error{color:var(--danger)}.field-label span{line-height:1.2}.field-required{color:var(--danger);font-style:normal;font-weight:700}.field-label.full{grid-column:1 / -1}button.create-button{min-height:32px;padding:6px 12px;min-width:0;width:auto;border-radius:7px;font-size:13px;background:#2e8a84!important;border-color:#2a7a75!important;color:#fff!important;font-weight:700;justify-content:center;box-shadow:0 1px #23635f;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease,opacity .12s ease}button.create-button:hover{background:#287a74;border-color:#287a74;transform:translateY(-1px);box-shadow:0 2px #215a57,0 4px 10px #2e8a8430}.toolbar>.create-button{justify-self:end}button.create-button:active{transform:translateY(0);box-shadow:0 1px #215a57}button.create-button:disabled{background:#dce9e7!important;border-color:#c8dad6!important;color:#879e99!important;box-shadow:none;transform:none;opacity:1;cursor:not-allowed}.form-actions{grid-column:1 / -1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}button.cancel-button{min-height:32px;padding:6px 12px;min-width:112px;border-color:#f6c8c8;border-radius:7px;background:#fdf3f3!important;color:#8e3232;font-size:13px;font-weight:700;justify-content:center}button.cancel-button:hover{border-color:#ecadad;background:#fae7e7!important;color:#7a2a2a}.inline-check{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;min-height:36px}.inline-check input{min-height:auto;accent-color:var(--primary)}input[type=checkbox]{width:16px;height:16px;min-height:0;margin:0;padding:0;border:0;border-radius:4px;display:block;vertical-align:middle;flex:0 0 auto;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.inline-check input[type=checkbox]{align-self:center}.toolbar .inline-check{display:inline-flex;align-items:center;align-self:end;min-height:36px;margin:0;white-space:nowrap}.toolbar .inline-check input[type=checkbox]{width:16px;height:16px;min-height:0;margin:0;padding:0;border:0;border-radius:4px;background:transparent;box-shadow:none}.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:9px;background:#fff}table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px}table.data-table-fixed{table-layout:fixed}th,td{padding:10px 11px;border-bottom:1px solid #e8edf2;text-align:left;vertical-align:middle;font-size:13px}thead th{position:sticky;top:0;z-index:1;background:var(--surface-soft);color:#455362;font-weight:600}.table-sort-button{all:unset;cursor:pointer;width:100%;display:inline-flex;align-items:center;justify-content:space-between;gap:6px;color:inherit}.table-sort-button:hover{color:#1f4f82}.table-sort-indicator{width:1em;flex:0 0 1em;display:inline-flex;justify-content:center;color:#7a8897;font-weight:700;line-height:1}.table-sort-indicator.is-none{visibility:hidden}tbody tr:nth-child(2n){background:#fcfdff}tbody tr:hover{background:#f3f8fd}td button{min-height:31px;padding:5px 9px;border-radius:7px}td input,td select{width:100%;min-height:31px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;padding:5px 8px;font-size:13px}.actions-cell{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.icon-button{min-height:30px;width:30px;padding:0;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:0}.icon-button svg{flex-shrink:0}.icon-button.tone-default{border-color:#cdd7e1;background:#fff;color:#4a5b6d}.icon-button.tone-default:hover{border-color:#b7c4d2;background:#f8fbfd}.icon-button.tone-view{border-color:#bfd5ea;background:#eef6ff;color:#1f4f82}.icon-button.tone-view:hover{border-color:#9fc1e0;background:#dfedfb}.icon-button.tone-edit{border-color:#b7e1df;background:#e8f7f6;color:#0f5f59}.icon-button.tone-edit:hover{border-color:#95cfcb;background:#d9f0ee}.icon-button.tone-info{border-color:#c5d0ea;background:#eef2ff;color:#3747a3}.icon-button.tone-info:hover{border-color:#aebce0;background:#e3eafc}.icon-button.tone-warning{border-color:#f0d09a;background:#fff7e8;color:#8a5418}.icon-button.tone-warning:hover{border-color:#e3bb7c;background:#ffefd2}.icon-button.tone-danger{border-color:#f1b1b1;background:#fff4f4;color:#9b2c2c}.icon-button.tone-danger:hover{border-color:#de8f8f;background:#ffe9e9}.icon-button.tone-primary{border-color:var(--primary);background:var(--primary);color:#fff}.icon-button.tone-primary:hover{border-color:var(--primary-strong);background:var(--primary-strong)}.link-button{text-decoration:none;color:inherit}button.action-edit{border-color:#b7e1df;background:#e8f7f6;color:#0f5f59}button.action-edit:hover{border-color:#95cfcb;background:#d9f0ee}button.action-delete{border-color:#f1b1b1;background:#fff4f4;color:#9b2c2c}button.action-delete:hover{border-color:#de8f8f;background:#ffe9e9}button.action-info{border-color:#c5d0ea;background:#eef2ff;color:#3747a3}button.action-info:hover{border-color:#aebce0;background:#e3eafc}button.action-warning{border-color:#f0d09a;background:#fff7e8;color:#8a5418}button.action-warning:hover{border-color:#e3bb7c;background:#ffefd2}.detail-card{background:var(--surface-soft);border:1px solid var(--line);border-radius:9px;padding:12px}.detail-card p{margin:0 0 8px;color:#27313c}.status-select{min-height:32px;font-size:12px}.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:0;border:1px solid transparent}.badge.available,.badge.confirmed,.badge.active,.badge.finished{background:#e8f7ee;border-color:#b7e5c7;color:#18643f}.badge.pending,.badge.inprogress{background:#fff4dc;border-color:#ffd899;color:#8a5700}.badge.unavailable,.badge.cancelled,.badge.inactive{background:#fdecec;border-color:#f4c2c2;color:#992727}.badge.blocked,.badge.maintenance,.badge.noshow{background:#efe8ff;border-color:#d6c6ff;color:#5f3db0}.icon-link{color:#0f766e;font-weight:600}.icon-link:hover{color:#0c5f59}.empty-state{margin:12px 0;padding:12px 14px;border:1px dashed var(--line-strong);border-radius:8px;color:var(--muted);background:#fff}.password-field{position:relative;display:block}.password-field input{padding-right:44px}.password-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);min-height:30px;min-width:30px;border:0;border-radius:6px;background:transparent;color:#54627a;display:grid;place-items:center;padding:0;cursor:pointer}.password-toggle:hover{background:#eef2f7}.password-toggle svg{width:18px;height:18px;fill:currentColor}.catalog-form .password-field .password-toggle,.ui-dialog .dialog-password-field .password-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);min-height:30px;min-width:30px;width:30px;border:0!important;border-radius:6px;background:transparent!important;color:#54627a;display:grid;place-items:center;padding:0;cursor:pointer;box-shadow:none!important}.form-error{margin:0;color:var(--danger);font-size:13px}.form-error-summary{margin:0 0 10px;padding:10px 12px;border-radius:8px;border:1px solid #efc0c0;background:#fff1f1;color:#8f2b2b;grid-column:1 / -1}.catalog-form>.form-error-summary,.booking-form-sections>.form-error-summary{grid-column:1 / -1;width:100%}.form-error-summary strong{display:block;margin-bottom:6px}.form-error-summary ul{margin:0;padding-left:18px}.ui-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:grid;place-items:center;z-index:1200;padding:20px}.ui-dialog{width:min(460px,100%);background:#fff;border:1px solid #d9e1ea;border-radius:12px;box-shadow:0 24px 48px #0f172a40;padding:18px;display:grid;gap:10px}.ui-dialog h3{margin:0;font-size:18px;color:#10233b}.ui-dialog p{margin:0;color:#42546a;line-height:1.4}.ui-dialog input{min-height:38px;border-radius:8px;border:1px solid #c9d6e2;padding:8px 10px}.dialog-password-field{position:relative}.dialog-password-field input{width:100%;padding-right:44px}.ui-dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.dialog-secondary-button{min-height:32px;padding:6px 12px;border-radius:7px;border:1px solid #cfd8e3;background:#f5f8fb;color:#3f556d;font-size:13px;font-weight:700}.dialog-secondary-button:hover{border-color:#bcc9d7;background:#ebf1f6;color:#2f465f}.ui-dialog.danger{border-color:#efc0c0}.toast-stack{position:fixed;right:16px;top:16px;display:grid;gap:8px;z-index:1300;max-width:min(360px,calc(100vw - 24px))}.toast-item{border-radius:9px;padding:10px 12px;border:1px solid #cfd8e3;background:#f8fbff;color:#26415c;box-shadow:0 10px 24px #0f172a2e;font-size:13px;font-weight:600}.toast-item.success{border-color:#b6dfcb;background:#eaf8f1;color:#155a39}.toast-item.error{border-color:#efc0c0;background:#fff1f1;color:#8f2b2b}@media screen and (max-width:1100px){.app-shell{grid-template-columns:220px 1fr}.content{padding:14px}.toolbar{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}table{min-width:680px}th,td{padding:9px 10px}}.sidebar-collapse-arrow{width:36px;height:28px;position:absolute;right:0;top:50%;transform:translateY(-50%);border-radius:999px;border:0;background:#1f2a36;color:#dbe7f3;display:inline-flex;align-items:center;justify-content:center;padding:0}.sidebar-collapse-arrow:hover{background:#2a3644;border-color:#6b8198}@media screen and (max-width:1024px){.app-shell{grid-template-columns:1fr}.sidebar-collapse-arrow{display:none}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(290px,84vw);height:100vh;border-right:1px solid #2f3a47;border-bottom:0;padding:14px;gap:10px;z-index:40;transform:translate(-105%);transition:transform .2s ease;box-shadow:0 14px 32px #0000003d}.app-shell.sidebar-open .sidebar{transform:translate(0)}.sidebar-top{display:flex;align-items:start;justify-content:space-between;gap:8px}.sidebar nav{overflow-y:auto;padding-right:2px}.nav-link{padding:9px 11px}.logout-button{width:100%}.sidebar-close{display:inline-flex;min-height:32px;width:32px;padding:0;align-items:center;justify-content:center;border-radius:7px;border:1px solid #4a596b;background:transparent;color:#d8e0e8}.sidebar-close:hover{background:#2a3442}.content{padding:12px}.content-header{flex-wrap:wrap;align-items:flex-start;gap:8px 12px}.content-header-right{margin-left:0}.sidebar-toggle{display:inline-flex;min-height:34px;width:34px;padding:0;align-items:center;justify-content:center;border-radius:8px}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;border:0;padding:0;min-height:0;background:#11182766;opacity:0;pointer-events:none;transition:opacity .2s ease}.app-shell.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}.toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.icon-button{width:34px;min-height:34px}}@media screen and (min-width:1025px){.app-shell.sidebar-collapsed{grid-template-columns:74px 1fr}.app-shell.sidebar-collapsed .sidebar{padding:16px 10px;gap:12px}.app-shell.sidebar-collapsed .brand strong,.app-shell.sidebar-collapsed .brand small,.app-shell.sidebar-collapsed .nav-link span,.app-shell.sidebar-collapsed .logout-button span{display:none}.app-shell.sidebar-collapsed .brand-logo{border-radius:10px}.app-shell.sidebar-collapsed .brand-row{justify-content:center}.app-shell.sidebar-collapsed .sidebar-collapse-arrow{position:static;transform:none;margin:0 auto}.app-shell.sidebar-collapsed .nav-link,.app-shell.sidebar-collapsed .logout-button,.app-shell.sidebar-collapsed .sidebar-collapse-arrow{justify-content:center;padding-left:8px;padding-right:8px}}@media screen and (max-width:760px){.mobile-filters-toggle{display:inline-flex;align-items:center;gap:6px;margin:8px 0 4px;min-height:32px;padding:6px 10px;border-radius:7px;border:1px solid #cbd7e3;background:#f4f8fb;color:#3f556d;font-weight:600;font-size:12px}.toolbar-filters.collapsed{display:none}.form-actions{position:sticky;bottom:0;padding:8px 0 2px;background:linear-gradient(180deg,#f4f6f800,#f4f6f8 26%)}.sidebar{width:min(300px,90vw)}.toolbar{grid-template-columns:1fr}.content-header{flex-direction:column;align-items:flex-start}.content-header-right{width:100%}}
