:root {
  --green-900:#123f35; --green-800:#185c4a; --green-700:#21735d; --green-100:#e5f2ed;
  --lime:#d9e85d; --cream:#f7f5ef; --ink:#17312b; --muted:#65756f; --line:#dfe6e2;
  --warning:#f5a524; --danger:#cf4d4d; --shadow:0 10px 30px rgba(22,56,47,.08);
}
*{box-sizing:border-box} body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;min-height:100vh}
button,input,select,textarea{font:inherit}.btn{border-radius:.8rem;font-weight:700;min-height:44px}.btn-primary{--bs-btn-bg:var(--green-800);--bs-btn-border-color:var(--green-800);--bs-btn-hover-bg:var(--green-900);--bs-btn-hover-border-color:var(--green-900);--bs-btn-active-bg:var(--green-900)}
.btn-outline-primary{--bs-btn-color:var(--green-800);--bs-btn-border-color:var(--green-800);--bs-btn-hover-bg:var(--green-800);--bs-btn-hover-border-color:var(--green-800)}
.form-control,.form-select{border-color:#ccd8d2;border-radius:.75rem;min-height:48px}.form-control:focus,.form-select:focus{border-color:var(--green-700);box-shadow:0 0 0 .2rem rgba(33,115,93,.14)}.form-label{font-weight:700;color:#304941}.form-check-input:checked{background-color:var(--green-700);border-color:var(--green-700)}
.login-shell{min-height:100vh;display:grid;place-content:center;padding:1.5rem;background:radial-gradient(circle at 10% 10%,#e9f4cd 0,transparent 35%),linear-gradient(145deg,#f7f5ef,#e2eee9)}.brand-mark{width:72px;height:72px;border-radius:24px;background:var(--green-800);color:var(--lime);display:grid;place-items:center;font-size:2rem;margin:0 auto -20px;z-index:2;box-shadow:0 10px 24px rgba(24,92,74,.25)}.login-card{width:min(100%,430px);background:#fff;border:1px solid rgba(24,92,74,.09);border-radius:24px;padding:2.5rem 1.35rem 1.5rem;box-shadow:0 24px 60px rgba(18,63,53,.12)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--green-700);font-size:.75rem;font-weight:800}
.app-shell{min-height:100vh}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:.5rem .8rem;position:fixed;inset:0 0 auto 0;z-index:1030}.brand-button{display:flex;align-items:center;gap:.65rem;background:transparent;border:0;color:var(--ink);padding:0}.brand-button small,.user-chip small{display:block;color:var(--muted);font-size:.69rem;font-weight:500}.brand-symbol{width:40px;height:40px;border-radius:12px;background:var(--green-800);color:var(--lime);display:grid;place-items:center;font-size:1.1rem}.top-actions{display:flex;align-items:center;gap:.35rem}.icon-btn{width:44px;height:44px;padding:0;border:0;font-size:1.25rem}.notification-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#e75757;right:9px;top:8px;border:2px solid white}.user-chip{display:flex;align-items:center;gap:.55rem;border:0;background:transparent;padding:.3rem}.user-chip>span:first-child{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--green-100);color:var(--green-800);font-weight:800}
.sidebar{position:fixed;z-index:1040;top:0;bottom:0;left:0;width:270px;background:var(--green-900);padding:86px 14px 18px;transform:translateX(-100%);transition:transform .2s ease;display:flex;flex-direction:column}.sidebar.show{transform:translateX(0)}.sidebar-backdrop{position:fixed;inset:0;background:rgba(8,31,26,.48);z-index:1035;display:none}.sidebar-backdrop.show{display:block}.side-nav{display:flex;flex-direction:column;gap:.3rem}.side-nav button{height:48px;border:0;border-radius:12px;padding:0 13px;display:flex;align-items:center;gap:.85rem;color:#dce9e4;background:transparent;text-align:left;font-weight:650}.side-nav button i{font-size:1.05rem;width:20px}.side-nav button:hover,.side-nav button.active{background:rgba(255,255,255,.11);color:#fff}.side-nav button.active i{color:var(--lime)}.nav-count{margin-left:auto;background:rgba(255,255,255,.13);border-radius:10px;padding:.08rem .45rem;font-size:.72rem}.nav-divider{height:1px;background:rgba(255,255,255,.12);margin:.8rem .4rem}.storage-note{display:flex;gap:.8rem;color:#dce9e4;align-items:center;margin-top:auto;padding:.8rem}.storage-note i{font-size:1.25rem;color:var(--lime)}.storage-note small{display:block;color:#9db5ad}
.main-content{padding:88px 16px 94px;max-width:1500px;margin:0 auto}.main-content:focus{outline:none}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.page-head h1{font-weight:800;font-size:clamp(1.65rem,5vw,2.25rem);margin:0}.page-head p{color:var(--muted);margin:.3rem 0 0}.content-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 3px 14px rgba(22,56,47,.04)}.card-pad{padding:1rem}.hero-card{padding:1.25rem;background:linear-gradient(135deg,var(--green-900),var(--green-700));color:#fff;border:0;overflow:hidden;position:relative}.hero-card:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;background:rgba(217,232,93,.13);right:-60px;top:-70px}.hero-card p{color:#cfe1db;max-width:580px}.hero-card .btn{background:var(--lime);color:var(--green-900);border:0}.stat-card{padding:1rem;display:flex;gap:.85rem;align-items:center;height:100%}.stat-icon{width:44px;height:44px;flex:0 0 auto;border-radius:13px;display:grid;place-items:center;background:var(--green-100);color:var(--green-800);font-size:1.2rem}.stat-value{font-size:1.55rem;font-weight:800;line-height:1}.stat-label{color:var(--muted);font-size:.8rem;margin-top:.25rem}.section-title{font-size:1.05rem;font-weight:800;margin:0}.status-pill{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.28rem .6rem;font-weight:700;font-size:.72rem;white-space:nowrap}.status-draft{background:#fff3d8;color:#8b5a00}.status-ready,.status-sent{background:#e3eefc;color:#2f5f9b}.status-returned{background:#fde4e4;color:#9c3535}.status-approved{background:#dff2e8;color:#216e4e}.status-closed{background:#e8ecea;color:#4f625b}.activity-item{display:flex;gap:.8rem;padding:1rem 0;border-bottom:1px solid #edf0ee}.activity-item:last-child{border:0}.activity-icon{width:40px;height:40px;border-radius:12px;background:#edf4f1;display:grid;place-items:center;color:var(--green-700);flex:0 0 auto}.activity-main{min-width:0;flex:1}.activity-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-meta{color:var(--muted);font-size:.78rem;margin-top:.15rem}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.quick-action{border:1px solid var(--line);background:#fff;border-radius:15px;padding:1rem;text-align:left;min-height:105px;display:flex;flex-direction:column;justify-content:space-between;color:var(--ink)}.quick-action i{font-size:1.35rem;color:var(--green-700)}.quick-action strong{font-size:.9rem}
.bottom-nav{position:fixed;z-index:1025;left:0;right:0;bottom:0;height:74px;padding:6px 8px max(6px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr)}.bottom-nav button{border:0;background:transparent;color:#71817b;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.68rem;gap:.15rem}.bottom-nav button i{font-size:1.15rem}.bottom-nav button.active{color:var(--green-800)}.bottom-nav .new-report-fab i{width:44px;height:44px;border-radius:15px;background:var(--green-800);color:#fff;display:grid;place-items:center;margin-top:-22px;box-shadow:0 5px 14px rgba(24,92,74,.25)}
.wizard-steps{display:flex;gap:.35rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:1rem;scrollbar-width:none}.wizard-step{border:0;background:#e9eeeb;color:#6f7e79;padding:.55rem .8rem;border-radius:999px;white-space:nowrap;font-size:.78rem;font-weight:700}.wizard-step.active{background:var(--green-800);color:white}.wizard-step.done{background:var(--green-100);color:var(--green-800)}.form-section{display:none}.form-section.active{display:block}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.choice-card{border:1px solid var(--line);background:white;border-radius:14px;padding:.9rem;text-align:left;position:relative;min-height:74px}.choice-card.selected{border:2px solid var(--green-700);background:var(--green-100);padding:calc(.9rem - 1px)}.choice-card small{display:block;color:var(--muted);margin-top:.2rem}.choice-card .check{position:absolute;right:.6rem;top:.6rem;color:var(--green-700);display:none}.choice-card.selected .check{display:block}.person-row,.asset-row{display:grid;grid-template-columns:1fr 92px 38px;align-items:center;gap:.55rem;padding:.7rem 0;border-bottom:1px solid #edf0ee}.person-row:last-child,.asset-row:last-child{border:0}.person-avatar{width:38px;height:38px;border-radius:11px;background:#edf4f1;color:var(--green-800);display:grid;place-items:center;font-weight:800}.person-name{display:flex;align-items:center;gap:.6rem}.hours-input{min-height:40px;text-align:center}.summary-box{background:#edf5f1;border-radius:15px;padding:1rem}.summary-number{font-size:1.4rem;font-weight:800;color:var(--green-800)}.validation-list{padding:0;list-style:none}.validation-list li{display:flex;gap:.55rem;margin:.5rem 0;color:#73540c}.validation-list i{color:var(--warning)}
.picker-launch{display:flex;align-items:center;gap:.85rem;width:100%;min-height:68px;padding:.85rem 1rem;border:1px solid var(--line);border-radius:15px;background:white;text-align:left;color:var(--text)}.picker-launch:hover,.picker-launch:focus-visible{border-color:var(--green-600);background:var(--green-100)}.picker-launch>i:first-child{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--green-100);color:var(--green-800);font-size:1.2rem;flex:0 0 auto}.picker-launch .picker-launch-text{min-width:0;flex:1}.picker-launch strong,.picker-launch small{display:block}.picker-launch small{color:var(--muted);margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-launch .bi-chevron-right{color:var(--muted)}.picker-search-wrap{position:sticky;top:0;z-index:2;background:white;padding:1rem;border-bottom:1px solid var(--line)}.picker-results{padding:.5rem 1rem 1rem}.picker-result{width:100%;display:flex;align-items:center;gap:.8rem;border:0;border-bottom:1px solid #edf0ee;background:white;padding:.9rem .25rem;text-align:left;min-height:68px}.picker-result:last-child{border-bottom:0}.picker-result:hover,.picker-result:focus-visible{background:var(--green-100)}.picker-result-icon{width:42px;height:42px;border-radius:12px;background:#edf4f1;color:var(--green-800);display:grid;place-items:center;font-size:1.1rem;flex:0 0 auto}.picker-result-text{min-width:0;flex:1}.picker-result strong,.picker-result small{display:block}.picker-result small{color:var(--muted);margin-top:.15rem}.picker-result .picker-state{color:var(--green-700);font-size:1.15rem}.picker-result.is-selected{background:var(--green-100)}.picker-result[disabled]{opacity:.75;cursor:default}.picker-empty{text-align:center;color:var(--muted);padding:3rem 1rem}.picker-modal-content{overflow:hidden}
.report-card{padding:1rem;margin-bottom:.75rem}.report-card-top{display:flex;justify-content:space-between;gap:.75rem}.report-title{font-weight:800}.report-meta{font-size:.8rem;color:var(--muted);margin:.25rem 0}.report-totals{display:flex;flex-wrap:wrap;gap:1rem;padding-top:.7rem;margin-top:.7rem;border-top:1px solid #edf0ee;color:#40534d;font-size:.8rem}.report-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}.filter-bar{display:grid;gap:.65rem}.empty-state{text-align:center;padding:3rem 1rem}.empty-state i{font-size:2.5rem;color:#9eb2ab}.table-responsive{border-radius:14px}.table>:not(caption)>*>*{padding:.8rem}.table thead th{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f5f8f6;white-space:nowrap}.data-table .actions{white-space:nowrap}.data-table .btn{min-height:36px}
.chart-bars{display:flex;align-items:flex-end;gap:.55rem;height:170px;padding:1rem 0 0}.chart-bar-wrap{flex:1;text-align:center;min-width:26px}.chart-bar{background:linear-gradient(to top,var(--green-800),#52a487);border-radius:7px 7px 2px 2px;min-height:5px;position:relative}.chart-bar-value{font-size:.7rem;font-weight:800;color:var(--green-800);position:absolute;left:50%;transform:translateX(-50%);top:-19px}.chart-label{font-size:.68rem;color:var(--muted);margin-top:.45rem}.progress{height:9px;background:#e7ece9}.progress-bar{background:var(--green-700)}
.parcel-map{background:#dce9dd;border-radius:18px;min-height:410px;position:relative;overflow:hidden;border:1px solid #c8d9cc}.map-road{position:absolute;background:#f7f4e9;box-shadow:0 0 0 2px #d2cec0}.map-road.one{width:130%;height:48px;transform:rotate(-14deg);left:-15%;top:45%}.map-road.two{height:130%;width:30px;left:63%;top:-15%;transform:rotate(8deg)}.parcel{position:absolute;border:2px solid rgba(255,255,255,.9);background:#8ec197;color:#153d31;font-size:.68rem;font-weight:800;display:grid;place-items:center;cursor:pointer;transition:.15s}.parcel:hover,.parcel.selected{background:var(--lime);z-index:2;transform:scale(1.03)}.parcel.worked{background:#5aa47d;color:white}.map-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.75rem}.legend-dot{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:.3rem}.map-info{position:absolute;left:12px;right:12px;bottom:12px;background:rgba(255,255,255,.96);border-radius:14px;padding:.85rem;box-shadow:var(--shadow);z-index:4}
.catalog-tabs{display:flex;overflow-x:auto;gap:.4rem;scrollbar-width:none}.catalog-tabs button{white-space:nowrap;border:1px solid var(--line);border-radius:999px;background:white;padding:.55rem .8rem;font-weight:700;color:var(--muted)}.catalog-tabs button.active{background:var(--green-800);color:#fff;border-color:var(--green-800)}.template-card{border:1px solid var(--line);border-radius:16px;padding:1rem;background:white}.template-icon{width:40px;height:40px;border-radius:12px;background:var(--green-100);display:grid;place-items:center;color:var(--green-800)}
.catalog-add-button{min-height:40px;white-space:nowrap;text-transform:none;letter-spacing:normal}.data-table th.actions,.data-table td.actions{position:sticky;right:0;z-index:1;background:#fff;box-shadow:-8px 0 12px -12px rgba(18,63,53,.5)}.data-table th.actions{z-index:2;background:#f5f8f6}.data-table .catalog-add-button{min-height:40px}.catalog-card-list-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 1rem;margin-bottom:.75rem;background:#f5f8f6;border:1px solid var(--line);border-radius:14px;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.catalog-card-list-head .catalog-add-button{font-size:.875rem}
.location-catalog-card{overflow:hidden}.location-catalog-head{padding:1rem;display:flex;flex-direction:column;gap:1rem}.location-catalog-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.location-parcels-panel{border-top:1px solid var(--line)}.location-parcel-toolbar{padding:1rem;display:flex;flex-direction:column;gap:.75rem;background:#f8faf9}.parcel-catalog-list{padding:0 1rem}.parcel-catalog-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.85rem 0;border-bottom:1px solid #edf0ee}.parcel-catalog-row:last-child{border-bottom:0}.parcel-catalog-row small,.parcel-area small{display:block;color:var(--muted);font-size:.75rem}.parcel-area{text-align:right}.parcel-actions{display:flex;justify-content:flex-end;gap:.25rem}.parcel-catalog-row>.status-pill{justify-self:start}
.attachment-action{min-height:64px;display:flex;align-items:center;justify-content:center}.attachment-empty{padding:.75rem;border:1px dashed var(--line);border-radius:12px}.attachment-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.attachment-photo{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#f5f8f6}.attachment-photo a{display:block}.attachment-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.attachment-photo figcaption{padding:.5rem .65rem;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-remove{position:absolute;top:.4rem;right:.4rem;width:38px;height:38px;border:0;border-radius:12px;background:rgba(18,63,53,.9);color:#fff;display:grid;place-items:center}.attachment-file{grid-column:1/-1;display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:12px;padding:.5rem}.attachment-file>a{display:flex;align-items:center;gap:.65rem;min-width:0;flex:1;color:var(--ink);text-decoration:none}.attachment-file>a i{font-size:1.35rem;color:var(--green-700)}.attachment-file>a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-gallery-compact{display:flex;overflow-x:auto}.attachment-gallery-compact .attachment-photo{flex:0 0 104px}.attachment-gallery-compact .attachment-file{flex:0 0 min(260px,85%)}.camera-preview-wrap{width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:16px;background:#10211d;display:grid;place-items:center}.camera-preview-wrap video{display:block;width:100%;height:100%;object-fit:cover}.confirm-icon{width:52px;height:52px;border-radius:17px;background:var(--green-100);color:var(--green-800);display:grid;place-items:center;margin:auto;font-size:1.4rem}.toast{background:var(--green-900);color:#fff;border-radius:12px}.toast i{color:var(--lime)}
@media(min-width:576px){.login-card{padding:2.8rem 2.3rem 2rem}.card-pad{padding:1.25rem}.filter-bar{grid-template-columns:repeat(2,1fr)}.choice-grid{grid-template-columns:repeat(3,1fr)}.location-catalog-head,.location-parcel-toolbar{flex-direction:row;align-items:center;justify-content:space-between}.parcel-catalog-row{grid-template-columns:minmax(180px,1fr) 130px 100px auto}.parcel-area{text-align:left}.parcel-catalog-row>.status-pill{justify-self:auto}}
@media(min-width:992px){.topbar{left:250px;padding:0 28px}.topbar .brand-button{display:none}.sidebar{width:250px;transform:none;padding-top:24px}.sidebar:before{content:"Práce v terénu";color:white;font-weight:800;font-size:1.1rem;padding:12px 13px 35px}.main-content{padding:96px 32px 45px;margin-left:250px}.quick-grid{grid-template-columns:repeat(4,1fr)}.choice-grid{grid-template-columns:repeat(4,1fr)}.filter-bar{grid-template-columns:2fr repeat(3,1fr) auto}.hero-card{padding:2rem}.card-pad{padding:1.4rem}}
@media(min-width:1200px){.dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(310px,1fr);gap:1rem}.sticky-panel{position:sticky;top:88px}.form-layout{display:grid;grid-template-columns:minmax(0,2fr) 350px;gap:1rem}}
@media print{.topbar,.sidebar,.bottom-nav,.page-head .btn,.no-print,.report-actions{display:none!important}.main-content{margin:0;padding:0}.content-card{box-shadow:none;border-color:#bbb}body{background:#fff}}
