:root { --ink:#12324a; --muted:#607584; --paper:#f2f6f9; --card:#fff; --green:#0078ad; --green-light:#e5f3f9; --free:#198754; --free-light:#e4f5eb; --red:#c84949; --red-light:#fae9e7; --line:#d8e3ea; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:var(--paper); color:var(--ink); font-family:Inter,Segoe UI,Arial,sans-serif; }
.page { width:min(1180px,calc(100% - 32px)); margin:auto; padding:48px 0 64px; }
.hero { position:relative; display:flex; gap:20px; align-items:flex-start; margin-bottom:36px; padding-right:180px; }
.brand-mark { width:54px; height:54px; flex:0 0 auto; display:grid; place-items:center; border-radius:15px; color:white; background:var(--ink); font:bold 26px Georgia,serif; }
.eyebrow,.section-label { margin:0 0 7px; color:var(--green); font-size:12px; font-weight:800; letter-spacing:.15em; }
h1 { margin:0 0 10px; font:700 clamp(30px,5vw,48px)/1.05 Georgia,serif; }
.intro { max-width:670px; margin:0; color:var(--muted); line-height:1.6; }
.service-login{position:absolute;right:0;top:0;display:flex;align-items:center;gap:8px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:#fff;font-weight:750;cursor:pointer}.service-login:hover{border-color:var(--green);color:var(--green)}.login-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;color:#fff;background:var(--ink);font-size:16px}
.calendar-card { padding:30px; border:1px solid var(--line); border-radius:24px; background:var(--card); box-shadow:0 16px 50px rgba(30,50,40,.08); }
.calendar-toolbar { display:grid; grid-template-columns:48px 1fr 48px; align-items:center; gap:18px; text-align:center; }
.calendar-toolbar h2 { margin:0; font:700 24px Georgia,serif; text-transform:capitalize; }
.nav-button,.close-button { border:1px solid var(--line); background:#fff; cursor:pointer; color:var(--ink); }
.nav-button { width:48px; height:48px; border-radius:50%; font-size:22px; }
.nav-button:hover { border-color:var(--green); }
.today-week-button{margin-top:7px;padding:6px 12px;border:1px solid var(--green);border-radius:18px;background:#fff;color:var(--green);font-weight:800;cursor:pointer}.today-week-button:hover{background:var(--green);color:#fff}
.legend { display:flex; justify-content:center; gap:24px; margin:24px 0; color:var(--muted); font-size:14px; }
.legend span { display:flex; gap:8px; align-items:center; }
.dot { width:10px; height:10px; border-radius:50%; }.dot.free{background:var(--free)}.dot.busy{background:var(--red)}
.calendar-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.day-column { min-width:0; }
.day-head { padding:14px 8px; text-align:center; border-bottom:1px solid var(--line); }
.day-name { display:block; font-weight:750; }.day-date{display:block;margin-top:4px;color:var(--muted);font-size:13px}
.slot { width:100%; margin-top:10px; padding:17px 8px; border:0; border-radius:12px; font-size:16px; font-weight:750; }
.slot.available { color:#11683f; background:var(--free-light); cursor:pointer; border:1px solid #b8e2c9; }
.slot.available:hover { color:white; background:var(--free); transform:translateY(-1px); }
.slot.occupied { color:#a13434; background:var(--red-light); border:1px solid #efc7c3; cursor:not-allowed; }
.slot small { display:block; margin-top:3px; font-size:10px; text-transform:uppercase; letter-spacing:.08em; opacity:.8; }
.calendar-note { margin:24px 0 0; text-align:center; color:var(--muted); font-size:14px; }
dialog { width:min(650px,calc(100% - 24px)); max-height:calc(100vh - 24px); padding:0; border:0; border-radius:22px; box-shadow:0 25px 80px rgba(0,0,0,.25); }
dialog::backdrop { background:rgba(17,30,24,.68); backdrop-filter:blur(3px); }
.login-dialog{width:min(460px,calc(100% - 24px))}.login-dialog form{padding:30px}.login-dialog label{display:block;margin-top:16px;font-size:13px;font-weight:700}.login-dialog .error{margin-top:14px}
#booking-form { padding:30px; }.dialog-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.dialog-head h2{margin:0;font:700 24px Georgia,serif}.close-button{width:40px;height:40px;border-radius:50%;font-size:25px}
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:17px; }.form-grid label{font-size:13px;font-weight:700}.form-grid .wide{grid-column:1/-1}.optional{color:var(--muted);font-weight:500}
.customer-contact-column,.boiler-column{display:grid;align-content:start;gap:14px}.boiler-column{grid-column:2}.required-mark{color:var(--red);font-size:11px;font-weight:600}.boiler-column .boiler-photo-preview{margin-top:2px}
input,textarea,select { width:100%; margin-top:7px; padding:13px 14px; border:1px solid #ccd5ce; border-radius:9px; font:inherit; color:var(--ink); background:#fff; outline:none; }input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(25,135,84,.12)}textarea{resize:vertical;min-height:84px}
.consent { display:flex; align-items:flex-start; gap:9px; margin:20px 0; color:var(--muted); font-size:13px; line-height:1.4; }.consent input{width:auto;margin:2px 0 0}
.submit-button { width:100%; padding:15px; border:0; border-radius:10px; color:#fff; background:var(--green); font-size:16px; font-weight:800; cursor:pointer; }.submit-button:disabled{opacity:.6}
.error{min-height:18px;margin:0 0 8px;color:var(--red);font-size:13px}.toast{position:fixed;right:24px;bottom:24px;padding:16px 22px;border-radius:12px;color:#fff;background:var(--ink);box-shadow:0 12px 35px rgba(0,0,0,.2);opacity:0;transform:translateY(20px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:none}
@media(max-width:760px){.page{width:min(100% - 20px,600px);padding:25px 0}.hero{margin-bottom:24px;padding:64px 0 0}.service-login{left:0;right:auto}.calendar-card{padding:18px 12px}.calendar-grid{grid-template-columns:1fr}.day-column{display:grid;grid-template-columns:1.1fr repeat(3,1fr);gap:7px;align-items:center}.day-head{border:0;text-align:left}.slot{margin:0;padding:13px 3px}.slot small{display:none}.legend{margin:18px 0}.form-grid{grid-template-columns:1fr}.form-grid .wide,.boiler-column{grid-column:auto}#booking-form{padding:22px}.calendar-toolbar{grid-template-columns:42px 1fr 42px}.nav-button{width:42px;height:42px}.calendar-toolbar h2{font-size:19px}}

/* Servisná zóna */
.admin-body{background:#eef1ed}.admin-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.admin-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:26px 18px;color:#fff;background:var(--ink)}.admin-brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px;border-bottom:1px solid rgba(255,255,255,.12)}.admin-brand .brand-mark{color:var(--ink);background:#fff}.admin-brand small{display:block;margin-top:3px;color:#9eaca5}.admin-nav{display:grid;gap:6px;margin-top:28px}.admin-nav button,.admin-logout{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border:0;border-radius:10px;color:#c8d1cc;background:transparent;font:600 14px inherit;text-align:left;cursor:pointer}.admin-nav button:hover,.admin-nav button.active{color:#fff;background:rgba(255,255,255,.11)}.admin-nav button.active{box-shadow:inset 3px 0 var(--green)}.admin-logout{margin-top:auto;border:1px solid rgba(255,255,255,.15)}.admin-main{padding:38px clamp(20px,4vw,60px)}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px}.admin-header h1{font-size:38px}.back-link{color:var(--green);font-size:14px;font-weight:700;text-decoration:none}.admin-section{display:none}.admin-section.active{display:block}.settings-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:24px}.admin-card{padding:28px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 12px 35px rgba(30,50,40,.06)}.admin-card h2{margin:0 0 8px;font:700 24px Georgia,serif}.card-help{margin:0 0 24px;color:var(--muted);line-height:1.5}.admin-card form>label,.time-fields label{display:block;margin-top:15px;font-size:13px;font-weight:700}.time-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}.admin-card .submit-button{margin-top:18px}.form-message{min-height:20px;margin:14px 0 0;color:var(--muted);font-size:13px}.form-message.success{color:var(--green)}.form-message.failure{color:var(--red)}.empty-state{min-height:330px;display:grid;place-content:center;text-align:center}.empty-state p{color:var(--muted)}.empty-icon{margin:auto;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;color:var(--green);background:var(--green-light);font-size:30px}
.admin-calendar-card{overflow:hidden}.admin-calendar-grid .admin-slot{display:block;text-align:center}.admin-slot strong,.admin-slot span{display:block}.admin-slot span{margin-top:5px;font-size:12px;overflow:hidden;text-overflow:ellipsis}.admin-slot.occupied{color:#9f3030;background:var(--red-light);border:1px solid #efc7c3}.admin-slot.available{cursor:default}
.admin-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day-column.current-day{background:#eaf5f5;border:2px solid #78aeb0;border-radius:10px;padding:5px}.month-day.current-day{background:#e3f2f2;box-shadow:inset 0 0 0 2px #5f9fa2}.day-column.current-day .day-head,.month-day.current-day .month-day-number{color:#075f64;font-weight:900}@media(max-width:1000px){.admin-calendar-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:760px){.admin-calendar-grid{grid-template-columns:1fr}}
.admin-calendar-grid .weekend-day .admin-slot:not(.task-slot){display:none}.admin-calendar-grid .weekend-day{background:#f6f7f7;min-height:150px}.admin-calendar-grid .day-head{position:relative}.admin-calendar-grid .day-head .day-task-icon{position:static;display:inline-flex;margin:6px auto 0}
.admin-slot.task-slot{color:#76520b;background:#fff3d7;border:1px solid #ead39d}
.editable-reservation{cursor:pointer}.editable-reservation:hover{box-shadow:0 0 0 2px rgba(200,73,73,.15)}.reservation-dialog label{display:block;margin-top:14px;font-size:12px;font-weight:700}
.reservation-customer-info{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 20px;padding:16px;border-radius:12px;background:#f3f7f3}.reservation-customer-info span,.reservation-customer-info strong,.reservation-customer-info a{display:block}.reservation-customer-info span{margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}.reservation-customer-info strong,.reservation-customer-info a{color:var(--ink);font-size:14px;text-decoration:none}.reservation-customer-info a{color:var(--green);font-weight:750}
.editable-reservation[draggable="true"]{cursor:grab}.editable-reservation.dragging{opacity:.4;cursor:grabbing}.drop-target{transition:transform .15s,box-shadow .15s}.drop-target.drag-over{transform:scale(1.04);box-shadow:0 0 0 3px rgba(25,135,84,.3);background:#ccebd8}.calendar-move-status{text-align:center;margin-top:18px}
.calendar-search{display:block;width:min(560px,100%);margin:0 auto 18px;color:var(--muted);font-size:12px;font-weight:700}.calendar-search input{margin-top:6px}.calendar-search-hidden{display:none!important}
.view-switch{display:flex;justify-content:center;margin:0 auto 22px}.view-switch button{padding:9px 18px;border:1px solid var(--line);color:var(--muted);background:#fff;font-weight:700;cursor:pointer}.view-switch button:first-child{border-radius:9px 0 0 9px}.view-switch button:last-child{border-radius:0 9px 9px 0}.view-switch button.active{color:#fff;border-color:var(--green);background:var(--green)}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.month-weekday{padding:10px;text-align:center;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.month-day{min-height:130px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.month-day.empty{background:#f3f6f8}.month-day-number{display:block;margin-bottom:6px;font-weight:800}.month-event{display:block;width:100%;margin:4px 0;padding:5px 6px;border:1px solid transparent;border-radius:6px;text-align:left;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-event.reserved{color:#9f3030;background:var(--red-light);cursor:grab}.month-event.free{color:#11683f;border-color:#b8e2c9;background:var(--free-light)}.month-event.task{color:#76520b;background:#fff3d7;cursor:default}@media(max-width:760px){.month-grid{min-width:760px}.admin-calendar-card{overflow:auto}.month-day{min-height:105px}}
.crm-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.crm-toolbar h2{margin:0}.crm-search{width:min(360px,50%);font-size:12px;font-weight:700}.crm-search input{margin-top:5px}.table-wrap{overflow-x:auto}.crm-table{width:100%;border-collapse:collapse;text-align:left}.crm-table th{padding:12px;color:var(--muted);border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.crm-table td{padding:16px 12px;border-bottom:1px solid #edf0ed;font-size:14px;vertical-align:top}.crm-table td small{display:block;margin-top:5px;color:var(--muted)}.crm-table a{color:var(--green);text-decoration:none}.count-badge{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:15px;color:var(--green);background:var(--green-light);font-weight:800}.crm-empty{display:none;padding:30px;text-align:center;color:var(--muted)}
.crm-table td{padding:7px 10px;vertical-align:middle;font-size:12px;line-height:1.2;white-space:nowrap}.crm-table th{padding:8px 10px}.crm-contact span,.crm-address span{color:var(--muted)}.customer-name-link{white-space:nowrap}
.customer-name-link{color:var(--green);cursor:pointer;border-bottom:1px dashed var(--green)}.customer-row:hover{background:#f6faf7}.customer-dialog{width:min(980px,calc(100% - 24px))}.customer-dialog-content{padding:30px}.customer-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-panel{padding:20px;border:1px solid var(--line);border-radius:15px;background:#fafcf9}.detail-panel.full{grid-column:1/-1}.detail-panel h3{margin:0 0 14px;font:700 19px Georgia,serif}.compact-form label{display:block;margin-top:10px;font-size:12px;font-weight:700}.two-fields,.action-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-form{grid-template-columns:180px 1fr auto;align-items:end}.small-button{margin-top:12px;padding:11px 14px;border:0;border-radius:8px;color:#fff;background:var(--green);font-weight:750;cursor:pointer}.action-form .small-button{margin:0 0 1px}.history-list{display:grid;gap:8px;margin-top:15px;max-height:220px;overflow:auto}.history-item{padding:11px 13px;border-radius:9px;background:#fff;border:1px solid #e4e9e4}.history-item strong,.history-item span{display:block}.history-item strong{font-size:13px}.history-item span{margin-top:4px;color:var(--muted);font-size:13px;line-height:1.4}.history-item.action{display:grid;grid-template-columns:110px 1fr;gap:12px}.history-item.action span{margin:0}.muted{color:var(--muted);font-size:13px}
.customer-dialog-content>.detail-panel{margin-top:16px}.customer-data-form .customer-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px}.customer-data-form label,.reservation-form label{font-size:12px;font-weight:700}.card-actions{display:flex;justify-content:space-between;align-items:center}.danger-button{margin-top:12px;padding:10px 14px;border:1px solid #e0aaaa;border-radius:8px;color:var(--red);background:#fff;cursor:pointer}.device-labels,.device-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.device-labels{padding:0 12px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.device-row{padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff}.device-row span{text-align:right;color:var(--muted)}.device-form,.reservation-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.reservation-form{grid-template-columns:160px 130px 1fr auto}.device-form .small-button,.reservation-form .small-button{margin-bottom:1px}.crm-tools{display:flex;align-items:flex-end;gap:12px}.crm-tools .crm-search{width:320px}.crm-tools .small-button{white-space:nowrap}.login-dialog .form-grid{margin-bottom:18px}
#customer-dialog .dialog-head{position:sticky;top:0;z-index:50;margin:-30px -30px 18px;padding:22px 30px 14px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 5px 12px #002a3d12}
.reservation-form{grid-template-columns:135px 150px 165px 1fr auto}.reservation-history{max-height:250px;overflow:auto;margin:10px 0 16px;border:1px solid var(--line);border-radius:10px}.compact-reservation{display:grid;grid-template-columns:85px 155px 1fr;gap:10px;padding:7px 10px;border-bottom:1px solid #edf0ed;font-size:12px;align-items:center}.compact-reservation:last-child{border:0}.compact-reservation .type-mark{color:var(--green);font-weight:750}.compact-reservation.is-task .type-mark{color:#a06c00}.compact-reservation>span:last-child{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reservation-form{grid-template-columns:130px 150px minmax(220px,1fr) 1fr auto}.time-choice-field{margin:0;padding:0;border:0}.time-choice-field legend{font-size:12px;font-weight:700}.time-options{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px}.time-check{position:relative;margin:0!important}.time-check input{position:absolute;opacity:0;width:1px;height:1px}.time-check span{display:block;padding:10px 12px;border:1px solid #ccd5ce;border-radius:8px;background:#fff;font-size:13px;cursor:pointer}.time-check input:checked+span{color:#fff;border-color:var(--green);background:var(--green)}
.customer-reservation-entry{display:none!important}
.device-edit-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) auto auto;gap:7px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fff}.device-edit-row label{font-size:0}.device-edit-row input{margin:0;padding:8px 9px;font-size:12px}.device-edit-row .small-button{margin:0;padding:9px 11px}.delete-device{margin:0;padding:8px 10px;border:1px solid #e0aaaa;border-radius:7px;color:var(--red);background:#fff;cursor:pointer}
.admin-body{background:#edf3f7}
@media(max-width:700px){.device-edit-row{grid-template-columns:1fr 1fr}.device-edit-row .small-button,.device-edit-row .delete-device{width:100%}}
.compact-edit-history{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:6px;align-items:center;padding:5px 6px;border-bottom:1px solid var(--line)}.compact-edit-history:has(input[type="date"]){grid-template-columns:125px minmax(180px,1fr) auto auto}.compact-edit-history input,.compact-edit-history textarea{margin:0;padding:7px 8px;font-size:12px}.compact-edit-history textarea{height:33px;min-height:33px;resize:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.compact-edit-history textarea.expanded{height:auto;min-height:110px;white-space:pre-wrap;overflow:auto}.history-save,.history-delete{padding:7px 9px;border-radius:6px;background:#fff;font-size:11px;font-weight:700;cursor:pointer}.history-save{color:var(--green);border:1px solid var(--green)}.history-delete{color:var(--red);border:1px solid #e0aaaa}.history-list:has(.compact-edit-history){gap:0;border:1px solid var(--line);border-radius:8px}.history-list:has(.compact-edit-history) .compact-edit-history:last-child{border-bottom:0}@media(max-width:700px){.compact-edit-history,.compact-edit-history:has(input[type="date"]){grid-template-columns:1fr auto auto}.compact-edit-history:has(input[type="date"]) input[type="date"]{grid-column:1/-1}}
.note-entry-form{display:grid;grid-template-columns:125px minmax(160px,1fr) auto;gap:7px;align-items:end}.note-entry-form label{font-size:11px;font-weight:700}.note-entry-form input{margin:4px 0 0;padding:7px 8px}.note-entry-form .small-button{margin:0 0 1px;white-space:nowrap}.compact-note-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:600px){.note-entry-form{grid-template-columns:1fr}.note-entry-form .small-button{width:100%}}
.admin-card select{width:100%;margin-top:7px;padding:13px 14px;border:1px solid #ccd5ce;border-radius:9px;color:var(--ink);background:#fff;font:inherit}.actions-layout{grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr)}.global-history{max-height:520px}.global-action{grid-template-columns:100px 1fr}.global-action b{color:var(--ink)}
.boiler-settings-card{grid-column:1/-1}.boiler-type-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:22px}.boiler-type-item{display:grid;grid-template-columns:80px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px}.boiler-type-item img,.boiler-image-placeholder{width:80px;height:90px;border-radius:8px;object-fit:cover;background:#eef2ee}.boiler-image-placeholder{display:grid;place-items:center;color:var(--muted);font-size:10px}.boiler-type-item button{border:0;color:var(--red);background:transparent;font-size:20px;cursor:pointer}.boiler-photo-preview{display:grid;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px}.boiler-photo-preview img{width:100%;height:220px;border-radius:8px;object-fit:contain;background:#f2f5f2}.boiler-photo-preview strong{text-align:center}
@media(max-width:900px){.admin-shell{grid-template-columns:76px 1fr}.admin-sidebar{padding:20px 10px}.admin-brand>div:last-child,.admin-nav span{display:none}.admin-brand{padding:0 0 20px;justify-content:center}.admin-nav button{justify-content:center;font-size:20px}.admin-logout{font-size:0;justify-content:center}.admin-logout::first-letter{font-size:20px}.settings-grid{grid-template-columns:1fr}}
@media(max-width:600px){.admin-shell{display:block}.admin-sidebar{position:static;width:100%;height:auto;display:block}.admin-brand{display:none}.admin-nav{grid-template-columns:repeat(3,1fr);margin:0}.admin-nav button{padding:10px}.admin-logout{margin-top:10px}.admin-main{padding:24px 12px}.admin-header{align-items:flex-start}.admin-header h1{font-size:30px}.back-link{max-width:110px}.time-fields{grid-template-columns:1fr}}
@media(max-width:600px){.crm-toolbar{display:block}.crm-search{display:block;width:100%;margin-top:18px}.crm-table th:nth-child(3),.crm-table td:nth-child(3),.crm-table th:nth-child(4),.crm-table td:nth-child(4){display:none}}
.action-form.action-with-part{grid-template-columns:125px minmax(170px,1fr) 135px minmax(170px,1fr) auto}
.calendar-top-actions{position:relative;display:flex;justify-content:center;align-items:flex-start}.calendar-top-actions .view-switch{margin-left:auto;margin-right:auto}.calendar-top-actions>.small-button{position:absolute;right:0;top:0;margin:0}@media(max-width:700px){.calendar-top-actions{display:grid;gap:10px}.calendar-top-actions>.small-button{position:static}.calendar-top-actions .view-switch{margin-bottom:0}}
.calendar-action-buttons{position:absolute;right:0;top:0;display:flex;gap:7px}.calendar-action-buttons .small-button{margin:0;padding:9px 11px}.blocked-slot{color:#5d6670!important;background:#e8edf0!important;border-color:#cbd4da!important;cursor:not-allowed!important}.block-list-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px;border-bottom:1px solid var(--line)}.block-list-row small{display:block;color:var(--muted)}.block-list-row button{padding:6px 9px;border:1px solid #e0aaaa;border-radius:6px;color:var(--red);background:#fff;cursor:pointer}@media(max-width:900px){.calendar-top-actions{display:grid;gap:10px}.calendar-action-buttons{position:static;justify-content:center;flex-wrap:wrap}.calendar-top-actions .view-switch{margin-bottom:0}}
.month-day-number{display:inline-block!important;margin-right:5px}.day-task-icon{display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:1px solid var(--green);border-radius:50%;color:var(--green);background:#fff;font-size:15px;font-weight:800;cursor:pointer}.day-task-icon:hover{color:#fff;background:var(--green)}
.notification-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.notification-settings-grid fieldset{padding:15px;border:1px solid var(--line);border-radius:10px}.notification-settings-grid legend{padding:0 6px;color:var(--green);font-weight:800}.notification-settings-grid label{display:block;margin-top:10px;font-size:12px;font-weight:700}@media(max-width:700px){.notification-settings-grid{grid-template-columns:1fr}}
.reminder-form{display:grid;grid-template-columns:150px 170px 145px minmax(210px,1fr) auto;gap:10px;align-items:end}.reminder-form label{font-size:11px;font-weight:700}.reminder-form .reminder-check{display:flex;align-items:center;justify-content:flex-start;gap:8px;height:38px;margin:0;padding:0}.reminder-form .reminder-check input{width:18px;height:18px;min-width:18px;margin:0}.reminder-form .reminder-message{grid-column:auto}.reminder-form .small-button{margin:0 0 1px;white-space:nowrap}@media(max-width:900px){.reminder-form{grid-template-columns:1fr 1fr}.reminder-form .reminder-message{grid-column:1/-1}.reminder-form .small-button{width:100%}}@media(max-width:520px){.reminder-form{grid-template-columns:1fr}.reminder-form .reminder-message{grid-column:auto}}
.reminder-message-input{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.full-text-tooltip{position:fixed;z-index:10000;max-width:min(520px,calc(100vw - 20px));padding:10px 12px;border-radius:8px;background:#173642;color:#fff;font-size:13px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;box-shadow:0 8px 24px #00182055;pointer-events:none}
.part-summary{grid-column:1/-1;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reservation-edit-row{display:grid;grid-template-columns:76px 120px 84px minmax(90px,1fr) 58px auto auto auto auto;gap:5px;align-items:center;padding:4px 6px;border-bottom:1px solid var(--line)}.reservation-edit-row:last-child{border-bottom:0}.reservation-edit-row input{margin:0;padding:6px 7px;font-size:11px;min-width:0}.reservation-edit-row .history-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reservation-edit-row .type-mark{color:var(--green);font-size:11px;font-weight:750}.reservation-edit-row.is-task .type-mark{color:#a06c00}.attachment-count{font-size:18px!important;font-weight:800;color:#006b91;background:#e6f4f8;border:1px solid #8fc4d7;border-radius:9px;padding:5px 8px!important;cursor:pointer;line-height:1}.attachment-count strong{font-size:12px}.history-photo{background:#e8f3f8;color:#005b87;border:1px solid #9fc9dc;border-radius:7px;padding:.35rem .55rem;cursor:pointer}@media(max-width:800px){.reservation-edit-row{grid-template-columns:70px 1fr 1fr;overflow:hidden}.reservation-edit-row input[name="note"]{grid-column:auto;min-width:70px}.reservation-edit-row button{font-size:10px;padding:5px}.reservation-edit-row .history-attachments{grid-column:1/-1}}
@media(max-width:700px){.customer-detail-grid{grid-template-columns:1fr}.detail-panel.full{grid-column:auto}.two-fields,.action-form,.device-form,.reservation-form,.customer-data-form .customer-fields{grid-template-columns:1fr}.action-form .small-button{margin-top:10px}.crm-tools{display:block}.crm-tools .crm-search{width:100%}}
.boiler-type-item .boiler-photo-edit{padding:7px 9px;border:1px solid #9db6bd;border-radius:7px;color:var(--green);background:#fff;font-size:11px;font-weight:800;white-space:nowrap}
.boiler-type-item:has(.boiler-photo-edit){grid-template-columns:80px minmax(80px,1fr) auto auto}
.service-protocol-dialog .protocol-summary{position:sticky;top:-30px;z-index:8;display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) auto;align-items:end;box-shadow:0 5px 12px rgba(16,47,56,.12)}.protocol-summary label{font-size:10px;font-weight:800}.protocol-summary input{margin-top:2px;padding:7px 9px;font-weight:750}.protocol-summary label:nth-child(2),.protocol-summary label:nth-child(2) input{text-align:center}.protocol-cancel-button{align-self:end;height:35px;padding:0 12px;border:1px solid #d8a0a0;border-radius:8px;color:var(--red);background:#fff;font-weight:800;cursor:pointer;white-space:nowrap}@media(max-width:760px){.service-protocol-dialog .protocol-summary{top:-8px;grid-template-columns:1fr auto}.protocol-summary label:nth-child(2){grid-column:1/-1;grid-row:2}.protocol-summary label:nth-child(2),.protocol-summary label:nth-child(2) input{text-align:center}.protocol-cancel-button{grid-column:2;grid-row:1}}
.protocol-gdpr{margin:9px 0 4px;padding:6px 9px;border-left-width:3px;color:#526168;font-size:9px;line-height:1.35}
.history-attachments{display:none;gap:.35rem;flex-wrap:wrap;grid-column:1/-1}.history-attachments.open{display:flex}.history-attachments a{font-size:.78rem;color:#0067a5;text-decoration:underline;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-insert{background:#e8f3f8;color:#005b87;border:1px solid #9fc9dc;border-radius:7px;padding:.35rem .55rem;cursor:pointer}
.history-attachments:empty{display:none}
.task-priority{margin:0;padding:6px 5px;font-size:11px;border-radius:6px}.reservation-edit-row.urgent-task{background:#fff1f1;border-left:4px solid #c93030}.reservation-edit-row.urgent-task .type-mark{color:#b51f1f}
.admin-note-list{display:grid;gap:6px;margin-top:12px}.admin-note-row{display:grid;grid-template-columns:145px minmax(180px,1fr) auto auto;gap:8px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line)}.admin-note-row input{min-width:0;margin:0}.admin-note-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-note-entry{margin-top:12px}@media(max-width:650px){.admin-note-row{grid-template-columns:115px minmax(100px,1fr) auto auto}.admin-note-row button{font-size:10px;padding:5px}}
.admin-task-entry{display:grid;grid-template-columns:135px minmax(180px,1fr) 120px 125px auto;gap:8px;align-items:end;margin-top:12px}.admin-task-entry label{font-size:11px;font-weight:700}.task-list-toolbar{display:flex;justify-content:flex-end;margin-top:12px}.admin-task-list{display:grid;gap:6px;margin-top:8px}.admin-task-row{display:grid;grid-template-columns:24px 105px 125px minmax(160px,1fr) 105px 75px auto auto;gap:7px;align-items:center;padding:5px 7px;border-bottom:1px solid var(--line)}.admin-task-row.urgent{background:#fff0f0;border-left:4px solid #c93030}.admin-task-row.overdue{box-shadow:inset 0 0 0 2px #d44}.admin-task-row.completed{opacity:.62;background:#f1f3f3;text-decoration-color:#777}.admin-task-row.completed .admin-task-text{text-decoration:line-through}.admin-task-row input,.admin-task-row select{min-width:0;margin:0}.admin-task-row .task-select{width:17px;height:17px}.task-done{display:flex;align-items:center;gap:5px;font-size:11px}.task-done input{width:16px;height:16px}.admin-task-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:850px){.admin-task-entry{grid-template-columns:1fr 1fr}.admin-task-row{grid-template-columns:24px 100px 115px minmax(100px,1fr)}.admin-task-row button,.admin-task-row select,.admin-task-row input[name="reminderDays"]{font-size:10px}.admin-task-entry .small-button{grid-column:1/-1}}
.attachment-actions{display:flex;align-items:center;gap:.25rem;padding:.25rem .35rem;border:1px solid #d7e2e8;border-radius:7px;background:#f8fbfc}.attachment-actions button{font-size:.7rem;padding:.22rem .35rem;border:1px solid #bdd0da;border-radius:5px;background:white;cursor:pointer}
.attachment-chooser{border:0;border-radius:14px;padding:20px;box-shadow:0 18px 60px #002a3d55}.attachment-chooser::backdrop{background:#002a3d66}.attachment-chooser h3{margin:0 0 14px}.attachment-chooser div{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:8px}.attachment-chooser button{padding:12px;border:1px solid #9fc9dc;border-radius:8px;background:#edf7fa;color:#005b87;font-weight:700;cursor:pointer}.attachment-chooser button[data-kind="cancel"]{grid-column:1/-1;background:#f4f4f4;color:#555;border-color:#ddd}@media(max-width:520px){.attachment-chooser{width:calc(100% - 34px)}.attachment-chooser div{grid-template-columns:1fr}}
.task-list-toolbar{justify-content:space-between;align-items:center}.task-view-switch{display:flex;gap:6px}.task-view-switch button{padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-weight:700}.task-view-switch button.active{background:var(--green);color:#fff;border-color:var(--green)}.task-panel{display:none;margin-top:12px}.task-panel.active{display:block}.task-panel h3{margin:0 0 7px}
.admin-task-row{grid-template-columns:90px 125px minmax(150px,1fr) 105px 72px auto auto auto 24px}.task-state{font-size:11px;font-weight:750}.task-complete{padding:6px 8px;border:1px solid #5d9c74;border-radius:7px;background:#e9f7ee;color:#176437;font-weight:800;cursor:pointer;white-space:nowrap}.admin-task-row .task-select{grid-column:9;width:18px;height:18px;justify-self:end}@media(max-width:900px){.admin-task-row{grid-template-columns:85px 115px minmax(100px,1fr) 95px}.admin-task-row .task-select{grid-column:auto}.task-complete{font-size:10px}}
.admin-task-row{grid-template-columns:125px minmax(180px,1fr) 105px 72px auto auto 24px}.admin-task-row .task-select{grid-column:7}.admin-task-text[readonly]{border-color:transparent;background:transparent;cursor:pointer}.admin-task-text.editing{border-color:var(--green);background:#fff;cursor:text}@media(max-width:900px){.admin-task-row{grid-template-columns:115px minmax(120px,1fr) 95px 65px}.admin-task-row .task-select{grid-column:auto}}
.new-task-toolbar{display:flex;justify-content:flex-end;margin-top:12px}.admin-task-dialog{width:min(680px,calc(100% - 30px))}.admin-task-dialog textarea[name="task"]{min-height:190px;resize:vertical;font-size:15px;line-height:1.45}
.admin-task-row.simple{grid-template-columns:125px minmax(220px,1fr) auto auto 24px}.admin-task-row.simple .admin-task-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;padding:7px 8px}.admin-task-row.simple .admin-task-text:hover{background:#edf6f7;border-radius:6px}.admin-task-row.simple .task-select{grid-column:5}.admin-task-row.simple time{font-size:12px}@media(max-width:700px){.admin-task-row.simple{grid-template-columns:105px minmax(110px,1fr) auto 24px}.admin-task-row.simple .history-delete{grid-column:3}.admin-task-row.simple .task-select{grid-column:4}}
.admin-task-row.simple.urgent{background:#ffdede;border:2px solid #c51f2b;border-left:9px solid #a80012;box-shadow:0 3px 10px #a8001230}.admin-task-row.simple.urgent .admin-task-text{color:#111;font-weight:700}.admin-task-row.simple.urgent .admin-task-text::before{content:"URGENT · ";display:inline;color:#fff;background:#b40018;border-radius:5px;padding:3px 7px;margin-right:7px;font-size:10px;letter-spacing:.5px}.admin-task-row.simple.urgent time{color:#8d0010;font-weight:800}
.completion-days{padding:6px 9px;border-radius:7px;background:#dff3e6;color:#176437;font-size:11px;font-weight:800;white-space:nowrap}
.archive-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.archive-row span,.archive-row small{display:block}.archive-row small{margin-top:3px;color:var(--muted)}
.service-protocol-dialog{width:min(1050px,calc(100% - 18px));max-height:96vh}.protocol-manufacturers{display:flex;align-items:center;gap:22px;margin:0 0 10px;padding:8px 12px;border:1px solid var(--line);border-radius:9px}.protocol-manufacturers legend{font-size:12px;font-weight:800}.protocol-manufacturers label{display:flex;align-items:center;gap:5px;font-weight:750}.protocol-summary{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:#eaf2f4;border-radius:9px}.protocol-summary span{display:block}.protocol-devices{display:grid;gap:3px}.protocol-devices>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.protocol-devices label{font-size:11px}.protocol-devices input{margin-top:2px;padding:7px 9px}.protocol-actions{display:grid;gap:3px}.protocol-action-row{display:grid;grid-template-columns:30px minmax(240px,1fr) 70px 70px minmax(170px,auto);gap:7px;align-items:center;padding:6px;border-bottom:1px solid var(--line);font-size:12px}.protocol-action-number{font-weight:800;color:var(--green)}.protocol-action-row>label{display:flex;align-items:center;gap:4px}.protocol-values{display:flex;gap:5px;flex-wrap:wrap}.protocol-values label{font-size:10px}.protocol-values input{width:86px;padding:5px}.protocol-gdpr{margin:12px 0 5px;padding:10px 12px;border-left:4px solid var(--green);background:#f0f5f6;font-size:11px;line-height:1.45}.protocol-signatures{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0 15px}.protocol-signatures section{border:1px solid var(--line);border-radius:9px;padding:9px}.protocol-signatures canvas{display:block;width:100%;height:130px;border:1px dashed #789;background:#fff;touch-action:none}.protocol-signatures button{margin-top:6px}.protocol-settings-card img,#protocol-stamp-preview img{max-width:180px;max-height:100px;object-fit:contain}@media(max-width:760px){.protocol-manufacturers{flex-wrap:wrap;gap:10px 18px}.protocol-action-row{grid-template-columns:24px 1fr 58px 58px}.protocol-values{grid-column:2/-1}.protocol-signatures,.protocol-devices>div{grid-template-columns:1fr}.service-protocol-dialog{width:calc(100% - 8px);padding:8px}.protocol-summary{display:block}}
