:root{font-family:Inter,system-ui,sans-serif;color:#24313d;background:#f3f6f8}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;gap:28px;background:#17324d;color:#fff;padding:14px 24px;position:sticky;top:0;z-index:10}.brand{font-size:22px;font-weight:800;color:#fff;text-decoration:none}nav{display:flex;gap:15px;flex:1}nav a,.user{color:#dce8f2;text-decoration:none}.user{display:flex;gap:8px;align-items:center}.user form{display:inline}.link{border:0;background:none;color:#fff;text-decoration:underline;cursor:pointer}.container{max-width:1280px;margin:28px auto;padding:0 20px}.login-wrap{min-height:100vh;display:grid;place-items:center}.card{background:#fff;border:1px solid #dbe3e9;border-radius:10px;padding:20px;margin-bottom:20px;box-shadow:0 2px 8px #2030400d}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.stats .card strong{font-size:32px;display:block}.btn,button{display:inline-block;border:0;border-radius:6px;padding:9px 13px;background:#1769aa;color:#fff;text-decoration:none;cursor:pointer}.btn.secondary{background:#647789}.btn.success{background:#1d8050}.btn.small{padding:5px 9px;font-size:13px}input,select,textarea{width:100%;padding:9px;border:1px solid #bdc9d2;border-radius:5px;background:#fff}label{font-weight:650;display:block;margin-bottom:5px}.field{margin-bottom:13px}.row{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:10px;border-bottom:1px solid #e2e8ed;vertical-align:top}th{background:#edf3f7}.badge{padding:3px 8px;border-radius:12px;background:#dbe8f2;font-size:12px}.alert{padding:12px;border-radius:7px;margin-bottom:15px}.alert.success{background:#dff3e7}.alert.danger{background:#f7dddd}.actions{display:flex;gap:8px;flex-wrap:wrap}.muted{color:#687782}.signature{border:1px dashed #8798a5;background:white;width:100%;height:160px;touch-action:none}.login{width:min(420px,92vw)}h1{margin-top:0}@media(max-width:760px){header{align-items:flex-start;flex-wrap:wrap}nav{order:3;overflow:auto;width:100%}.row{display:block}.field{margin-bottom:12px}table{display:block;overflow:auto}}
.document-tabs{display:flex;gap:8px;margin-bottom:20px}.section-space{margin-top:16px}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}details.card>summary,details.indoor-unit>summary{cursor:pointer;font-weight:750;font-size:1.05rem}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.choice-grid label,.check-row label{font-weight:500}.choice-grid input,.check-row input{width:auto}.check-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:16px;align-items:center;padding:8px 0;border-bottom:1px solid #e6ecef}.repeat-row{padding:10px 0;border-bottom:1px dashed #ccd7df}.indoor-unit{border:1px solid #dbe3e9;border-radius:8px;padding:14px;margin:12px 0}.sticky-submit{position:sticky;bottom:12px;display:flex;justify-content:flex-end;padding:10px;background:#ffffffdd;backdrop-filter:blur(6px);border-radius:10px;box-shadow:0 5px 24px #0002;z-index:5}.calendar-toolbar{display:flex;align-items:center;gap:10px}.calendar-toolbar h2{flex:1;text-align:center;margin:0}.calendar-weekdays,.revision-calendar{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays span{text-align:center;font-weight:700;padding:12px 4px}.calendar-day{min-height:110px;border:1px solid #e1e7ec;padding:6px;background:#fff}.calendar-day.outside{background:#f5f7f8;color:#9aa7b0}.calendar-day.today{outline:2px solid #1769aa;outline-offset:-2px}.calendar-number{font-weight:700;margin-bottom:5px}.calendar-event{display:block;width:100%;text-align:left;font-size:12px;padding:5px 6px;margin:3px 0;border-radius:4px;background:#dbeaf6;color:#17324d;border:0}.calendar-event.status-provedena{background:#dff3e7}.calendar-event.status-zrusena{background:#f3dede;text-decoration:line-through}.calendar-detail{margin-top:16px;padding:12px;background:#f5f8fa;border-radius:7px}@media(max-width:760px){.check-row{grid-template-columns:1fr;gap:6px}.calendar-day{min-height:76px;padding:3px}.calendar-event{font-size:0;height:8px;padding:0}.calendar-event:after{content:''}.calendar-weekdays span{font-size:12px}.inline-fields{grid-template-columns:1fr}}
.customer-check{padding:12px 14px;background:#f5f8fa;border-radius:7px}.customer-check p{margin:4px 0}.static-value{padding:9px;border:1px solid #dbe3e9;border-radius:5px;background:#f5f8fa}.attachment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.attachment-item{display:block;padding:10px;border:1px solid #dbe3e9;border-radius:6px;text-decoration:none;background:#f7fafc}.json-view{white-space:pre-wrap;overflow:auto;background:#18242f;color:#eef5fa;padding:16px;border-radius:7px}.signature-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.signature-preview-grid img{display:block;max-width:100%;max-height:220px;border:1px solid #dbe3e9;margin-top:8px}.inline-check{display:flex;align-items:center;gap:8px}.inline-check input{width:auto}
.protocol-form .row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.protocol-form .row>[class*="col-"]{grid-column:span 1}.protocol-form .row>.col-12{grid-column:1/-1}
@media(max-width:1024px){.protocol-form .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.signature-preview-grid{grid-template-columns:1fr}}
@media(max-width:680px){.protocol-form .row{display:grid;grid-template-columns:1fr}.protocol-form .row>[class*="col-"]{grid-column:1}.document-tabs{flex-direction:column}.sticky-submit{bottom:6px}.sticky-submit button{width:100%}}

.page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.page-head h1,.page-head h2{margin:0}.btn,button{min-height:38px;line-height:20px;padding:9px 14px;vertical-align:middle}.btn.small{min-height:32px;padding:5px 10px}.actions{align-items:center}.btn.danger{background:#a83b3b}.table-wrap{overflow:auto}.offer-row{display:grid;grid-template-columns:1.4fr 2fr .7fr .55fr .9fr .7fr .65fr auto;gap:8px;align-items:end;padding:10px 0;border-bottom:1px solid #e1e7ec}.offer-totals{margin-left:auto;max-width:340px;text-align:right;font-size:1.05rem}.offer-totals p:last-child{font-size:1.25rem}.calendar-event.status-hotovo{background:#dff3e7}.calendar-event.status-rozpracovano{background:#fff0c9}@media(max-width:1000px){.offer-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.page-head{align-items:stretch;flex-direction:column}.page-head>.actions{width:100%}.page-head .btn{width:100%;text-align:center}.offer-row{grid-template-columns:1fr}}
.calendar-count{font-size:13px;font-weight:700;text-align:center}.calendar-detail-row{padding:10px 0;border-bottom:1px solid #dbe3e9}.inline-form{display:inline}.invoice-row{grid-template-columns:2fr .7fr .6fr 1fr .7fr auto}

/* Protocol material and extra-work layout */
.btn{margin:1px}
.protocol-form .static-value{padding:2px 0;border:0;border-radius:0;background:transparent;min-height:22px;font-weight:650;color:#24313d}
.material-list{display:grid;gap:0}
.material-row{display:grid;grid-template-columns:minmax(180px,1fr) 56px 72px;gap:14px;align-items:end;padding:9px 0;border-bottom:1px dashed #ccd7df}
.material-row .field{margin-bottom:0}
.material-unit .static-value{text-align:center}
.material-quantity input{width:68px;max-width:100%;padding-left:7px;padding-right:7px}
.extra-work-row{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:1024px){.protocol-form .row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.extra-work-row{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:680px){.material-row{grid-template-columns:minmax(0,1fr) 48px 68px;gap:8px}.extra-work-row{grid-template-columns:1fr!important}}

/* Table-like protocol sections */
.material-table-head,.material-row{display:grid;grid-template-columns:minmax(180px,1fr) 72px 56px;gap:14px;align-items:center}
.material-table-head,.extra-work-head{font-weight:700;color:#3b4a57;padding:0 0 7px;border-bottom:1px solid #bdc9d2}
.material-table-head span:nth-child(2),.material-table-head span:nth-child(3){text-align:center}
.material-row{padding:9px 0;border-bottom:1px dashed #ccd7df}
.material-quantity{display:flex;justify-content:center}
.material-quantity input{width:68px;max-width:68px;padding-left:7px;padding-right:7px;text-align:right}
.material-unit .static-value{text-align:center}
.extra-work-head,.extra-work-row{display:grid;grid-template-columns:160px minmax(180px,1fr) minmax(160px,1fr) 90px;gap:14px;align-items:center}
.extra-work-row{padding:9px 0;border-bottom:1px dashed #ccd7df}
.extra-work-row input{margin:0}
.extra-work-row>div:last-child input{text-align:right}
@media(max-width:1024px){.extra-work-head,.extra-work-row{grid-template-columns:repeat(3,minmax(0,1fr))}.extra-work-head span:last-child,.extra-work-row>div:last-child{grid-column:auto}}
@media(max-width:680px){.material-table-head,.material-row{grid-template-columns:minmax(0,1fr) 68px 48px;gap:8px}.extra-work-head{display:none}.extra-work-row{grid-template-columns:1fr}.extra-work-row>div{position:relative}.extra-work-row>div:before{display:block;font-weight:700;font-size:12px;margin-bottom:4px}.extra-work-row>div:nth-child(1):before{content:'Datum'}.extra-work-row>div:nth-child(2):before{content:'Jméno / technik'}.extra-work-row>div:nth-child(3):before{content:'Profese'}.extra-work-row>div:nth-child(4):before{content:'Hodiny'}}

/* Mobile header, catalog administration and work report tables */
.auto-width{width:auto}
.catalog-admin-grid{grid-template-columns:minmax(260px,.7fr) minmax(520px,1.6fr)}
.category-list{margin-top:16px;border-top:1px solid #e2e8ed}.category-list>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #eef2f5}
.catalog-search{display:flex;gap:6px;align-items:center;max-width:560px;width:100%}.catalog-search input{min-width:180px}
.dependency-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:360px;overflow:auto;padding:8px;border:1px solid #dbe3e9;border-radius:7px}.dependency-row{display:grid;grid-template-columns:auto 1fr 88px;gap:8px;align-items:center;margin:0;padding:7px;border-bottom:1px solid #eef2f5;font-weight:500}.dependency-row input[type=checkbox]{width:auto}.dependency-row input[type=number]{padding:6px}
.offer-catalog-search{max-width:520px}
.report-table-head,.report-table-row{display:grid;gap:12px;align-items:center}.report-table-head{font-weight:700;color:#3b4a57;padding:0 0 7px;border-bottom:1px solid #bdc9d2}.report-table-row{padding:8px 0;border-bottom:1px dashed #ccd7df}.report-table-row input{margin:0}.report-work-head,.report-work-row{grid-template-columns:160px minmax(240px,1fr) 100px}.report-material-head,.report-material-row{grid-template-columns:minmax(240px,1fr) 100px 110px}.report-cost-head,.report-cost-row{grid-template-columns:160px minmax(220px,1fr) 130px minmax(130px,.7fr)}
@media(max-width:1024px){.extra-work-head,.extra-work-row{grid-template-columns:repeat(4,minmax(0,1fr))}.catalog-admin-grid{grid-template-columns:1fr}.dependency-list{grid-template-columns:1fr}.report-work-head,.report-work-row{grid-template-columns:repeat(3,minmax(0,1fr))}.report-material-head,.report-material-row{grid-template-columns:repeat(3,minmax(0,1fr))}.report-cost-head,.report-cost-row{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){header{gap:10px;padding:10px 12px}.brand{font-size:18px}.user{margin-left:auto;gap:4px;white-space:nowrap}.user-role{display:none}.user-name{max-width:110px;overflow:hidden;text-overflow:ellipsis}.user .link{padding:4px 2px;min-height:auto;font-size:13px}nav{gap:10px;padding-bottom:3px}.catalog-search{flex-wrap:wrap}.catalog-search input{flex:1 1 100%}}
@media(max-width:680px){.report-table-head{display:none}.report-table-row{grid-template-columns:1fr}.report-table-row>div:before{display:block;font-weight:700;font-size:12px;margin-bottom:4px}.report-work-row>div:nth-child(1):before{content:'Datum / den'}.report-work-row>div:nth-child(2):before{content:'Popis činnosti'}.report-work-row>div:nth-child(3):before{content:'Hodin'}.report-material-row>div:nth-child(1):before{content:'Název'}.report-material-row>div:nth-child(2):before{content:'Počet'}.report-material-row>div:nth-child(3):before{content:'Jednotka'}.report-cost-row>div:nth-child(1):before{content:'Datum'}.report-cost-row>div:nth-child(2):before{content:'Položka'}.report-cost-row>div:nth-child(3):before{content:'Částka (Kč)'}.report-cost-row>div:nth-child(4):before{content:'Doklad'}}
@media(max-width:1024px){.extra-work-head,.extra-work-row{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:680px){.extra-work-row{grid-template-columns:1fr!important}}

/* Keep technician protocol forms in grid mode on tablet widths. */
@media (min-width:681px) and (max-width:1024px){.protocol-form .row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))}.protocol-form .row>[class*="col-"]{grid-column:span 1}.protocol-form .row>.col-12{grid-column:1/-1}}
.settings-card,.template-editor{border-color:#bfdbfe}.template-editor{margin:14px 0;border:1px solid #bfdbfe;border-radius:8px;padding:12px;background:#f8fbff}.template-editor summary{cursor:pointer;color:#0b63ce}.template-editor form{margin-top:16px}.template-editor textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.check-field{display:flex;align-items:center;gap:8px;padding-top:28px}.check-field input{width:auto}code{color:#0b63ce;background:#dbeafe;padding:2px 5px;border-radius:4px}hr{border:0;border-top:1px solid #bfdbfe;margin:24px 0}
