:root{--ink:#19362f;--muted:#708079;--line:#dfe7e3;--cream:#f4f4ee;--green:#2f8468;--green-dark:#5f070d;--green-soft:#e5f1eb;--red:#c65348;--red-soft:#f8e8e5;--amber:#b97925;--white:#fff;--shadow:0 12px 34px rgba(27,54,47,.08)}
[hidden]{display:none!important}
.brand-logo{width:92px;height:auto;display:block;object-fit:contain;background:white;border-radius:8px;padding:5px;box-shadow:0 3px 10px rgba(0,0,0,.08)}.brand>span{letter-spacing:.8px;text-transform:uppercase}.mobile-brand .brand-logo{width:70px;padding:4px}.team-chip-secondary{margin-top:12px}.team-chip-secondary>span{background:#526d66}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px}.icon-library{position:absolute;width:0;height:0;overflow:hidden}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}button,input,select,textarea{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;padding:28px 18px 20px;background:var(--green-dark);color:#d9e6e1;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 28px;color:white;text-decoration:none;font-size:21px;font-weight:740;letter-spacing:-.4px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#dbb36a;color:#173c35;font-family:Georgia,serif;font-weight:800;font-size:20px}.main-nav{display:grid;gap:6px}.nav-item{position:relative;width:100%;border:0;background:transparent;color:#a9bbb5;display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:12px;padding:12px 13px;border-radius:10px;text-align:left;cursor:pointer;transition:.18s}.nav-item:hover{color:white;background:#234b43}.nav-item.active{color:#fff;background:#2c564c}.nav-item.active:before{content:"";position:absolute;left:-18px;width:4px;height:25px;border-radius:0 4px 4px 0;background:#dbb36a}.nav-item span:nth-child(2){font-weight:580}.count{font-size:12px;color:#8fa59e}.nav-alert{min-width:22px;height:22px;border-radius:20px;background:#ce5a4f;color:white;display:grid;place-items:center;font-size:11px}.sidebar-foot{margin-top:auto;border-top:1px solid #31564e;padding:18px 8px 0}.team-chip{display:flex;gap:10px;align-items:center}.team-chip>span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#40665d;font-size:12px}.team-chip div{display:grid}.team-chip strong{font-size:12px;color:white}.team-chip small{font-size:11px;color:#91aaa3;margin-top:3px}.sidebar-foot p{font-size:10px;color:#6f8b83;margin:22px 0 0;text-transform:uppercase;letter-spacing:1.5px}.sidebar-foot p span{color:#dbb36a;margin-left:5px}.app-shell{min-height:100vh;margin-left:248px}.topbar{height:76px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;position:sticky;top:0;z-index:4}.mobile-brand{display:none}.search{width:min(420px,43vw);height:42px;display:flex;align-items:center;gap:10px;padding:0 13px;background:#f3f5f2;border:1px solid transparent;border-radius:9px;color:#8a9691}.search:focus-within{background:white;border-color:#9cbcaf}.search svg{width:18px}.search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink)}.top-actions,.profile{display:flex;align-items:center}.top-actions{gap:22px}.icon-btn{position:relative;border:0;background:transparent;color:#60726b;cursor:pointer}.icon-btn span{position:absolute;right:1px;top:1px;width:7px;height:7px;background:#c65348;border:2px solid white;border-radius:50%}.profile{gap:10px;padding-left:20px;border-left:1px solid var(--line)}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#dce9e3;color:var(--green-dark);font-size:12px;font-weight:750}.profile div{display:grid}.profile strong{font-size:12px}.profile small{font-size:10px;color:var(--muted);margin-top:3px}.content{max-width:1460px;margin:auto;padding:40px}.welcome{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:30px}.eyebrow{margin:0 0 7px;text-transform:uppercase;letter-spacing:1.35px;color:var(--green);font-weight:750;font-size:10px}.eyebrow.red{color:var(--red)}h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:37px;letter-spacing:-.8px;margin:0 0 7px}.welcome>div>p:last-child{margin:0;color:var(--muted)}.primary,.secondary{border:0;border-radius:8px;padding:12px 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:650;cursor:pointer}.primary{background:var(--green-dark);color:white;box-shadow:0 5px 14px rgba(23,60,53,.18)}.primary:hover{background:#255348}.primary svg{width:17px}.secondary{background:#eef1ee;color:var(--ink)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.metric{min-height:118px;background:white;border:1px solid var(--line);border-radius:13px;padding:21px;display:flex;align-items:center;gap:16px;box-shadow:0 4px 18px rgba(35,61,54,.035);position:relative;overflow:hidden}.metric.urgent:before{content:"";position:absolute;left:0;inset-block:0;width:3px;background:var(--red)}.metric-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);color:var(--green)}.urgent .metric-icon{background:var(--red-soft);color:var(--red)}.metric>div{display:grid;gap:2px}.metric>div>span{font-size:12px;color:var(--muted)}.metric strong{font-family:Georgia,serif;font-size:27px;font-weight:500}.metric small{font-size:10px;color:#91a099}.trend,.positive{margin-left:auto;align-self:flex-start;font-size:10px;border-radius:20px;padding:5px 8px}.trend{color:var(--red);background:var(--red-soft)}.positive{color:var(--green);background:var(--green-soft)}.progress-ring{margin-left:auto;width:43px;height:43px;display:grid;place-items:center;border-radius:50%;font-size:9px;color:var(--green);background:conic-gradient(var(--green) 29%,#e7eeea 0);position:relative}.progress-ring:before{content:"";position:absolute;inset:4px;border-radius:50%;background:white}.progress-ring{isolation:isolate}.progress-ring::after{content:"29%";z-index:1}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.75fr);gap:22px}.right-column{display:grid;gap:22px;align-content:start}.panel{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 22px rgba(30,57,50,.04);overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px 17px}.panel h2{font-family:Georgia,serif;font-size:22px;font-weight:500;margin:0}.text-btn,.icon-plain{border:0;background:transparent;color:var(--green);cursor:pointer}.text-btn{font-size:11px;font-weight:650}.text-btn span{margin-left:4px}.icon-plain{display:grid;place-items:center;padding:5px}.route-summary{margin:0 24px 10px;padding:14px;background:#f2f5f1;border-radius:10px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px}.route-date{width:43px;height:48px;border-radius:8px;background:var(--green-dark);color:white;display:grid;place-items:center;padding:5px}.route-date strong{font-family:Georgia,serif;font-size:20px;line-height:17px}.route-date span{font-size:8px;letter-spacing:1px}.route-summary>div:nth-child(2){display:grid;gap:6px}.route-summary>div:nth-child(2)>strong{font-size:13px}.route-summary>div:nth-child(2)>span{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:3px}.route-summary svg{width:12px;height:12px}.route-time{display:flex;align-items:center;gap:8px;color:var(--green)}.route-time span{display:grid}.route-time strong{font-size:11px;color:var(--ink)}.route-time small{font-size:9px;color:var(--muted);margin-top:4px}.task-list{padding:0 24px 18px}.task-row{display:grid;grid-template-columns:auto auto 1fr auto;gap:12px;align-items:center;padding:15px 4px;border-bottom:1px solid #edf1ef}.task-row:last-child{border:0}.task-check{width:22px;height:22px;border:1.5px solid #aab7b2;background:white;border-radius:50%;display:grid;place-items:center;color:white;cursor:pointer}.task-check svg{width:13px}.task-row.done{opacity:.54}.task-row.done .task-check{background:var(--green);border-color:var(--green)}.task-row.done .task-main strong{text-decoration:line-through}.task-number{color:#aab4b0;font-size:10px;font-weight:700}.task-main{display:grid;gap:5px}.task-main strong{font-size:12px}.task-main span{font-size:10px;color:var(--muted)}.task-meta{text-align:right;display:grid;gap:5px}.task-meta strong{font-size:10px;font-weight:650}.task-meta span{font-size:9px;color:var(--muted)}.service-item{padding:15px 24px;border-top:1px solid #edf1ef;display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:start;cursor:pointer}.service-item:hover{background:#fafbf9}.priority-dot{width:8px;height:8px;border-radius:50%;margin-top:4px;background:#d1a251}.priority-dot.urgent{background:var(--red);box-shadow:0 0 0 4px var(--red-soft)}.service-main{display:grid;gap:5px}.service-main strong{font-size:11px;line-height:1.35}.service-main span{font-size:9px;color:var(--muted)}.service-time{font-size:9px;color:#9ba7a2}.tag{display:inline-block;width:max-content;font-size:8px!important;text-transform:uppercase;letter-spacing:.6px;padding:3px 5px;border-radius:4px;background:#f1f3f0;color:#708079!important}.panel-link{border:0;border-top:1px solid #edf1ef;background:#fafbf9;width:100%;padding:14px 24px;text-align:left;color:var(--green);font-size:10px;font-weight:700;cursor:pointer}.panel-link span{float:right}.object-stack{padding:0 18px 18px;display:grid;gap:8px}.object-card{display:grid;grid-template-columns:43px 1fr auto;align-items:center;gap:11px;background:#f5f6f2;border-radius:9px;padding:10px}.object-thumb{width:43px;height:43px;border-radius:7px;display:grid;place-items:center;color:white;background:linear-gradient(140deg,#6f8677,#314d45)}.object-thumb svg{width:20px}.object-card:nth-child(2) .object-thumb{background:linear-gradient(140deg,#8a7e71,#50463e)}.object-card:nth-child(3) .object-thumb{background:linear-gradient(140deg,#8a967b,#4c5d47)}.object-info{display:grid;gap:4px}.object-info strong{font-size:11px}.object-info span{font-size:9px;color:var(--muted)}.occupancy{text-align:right}.occupancy strong{font-size:10px;color:var(--green)}.occupancy span{display:block;font-size:8px;color:var(--muted);margin-top:3px}dialog{width:min(560px,calc(100vw - 30px));border:0;border-radius:16px;padding:0;box-shadow:0 25px 80px rgba(16,40,34,.28);color:var(--ink)}dialog::backdrop{background:rgba(17,42,36,.55);backdrop-filter:blur(3px)}dialog form{padding:27px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.dialog-head h2{font-family:Georgia,serif;font-size:28px;font-weight:500;margin:0}.dialog-head svg{color:var(--ink)}dialog label{display:grid;gap:7px;font-size:11px;font-weight:650;margin-bottom:15px}dialog input,dialog select,dialog textarea{border:1px solid #d8e0dc;border-radius:8px;padding:11px 12px;outline:none;color:var(--ink);background:white}dialog input:focus,dialog select:focus,dialog textarea:focus{border-color:#75a592}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:23px}.toast{position:fixed;right:30px;bottom:25px;background:var(--green-dark);color:white;padding:13px 18px;border-radius:9px;box-shadow:var(--shadow);font-size:12px;transform:translateY(100px);opacity:0;transition:.25s;z-index:20}.toast.show{transform:none;opacity:1}
.nav-item:hover{background:#4f060b}.nav-item.active{background:#6f0b12}.sidebar-foot{border-top-color:#7d151b}.team-chip>span{background:#7d151b}.team-chip-secondary>span{background:#4f060b}.primary{box-shadow:0 5px 14px rgba(95,7,13,.24)}.primary:hover{background:#760b13}
.main-nav{overflow-y:auto;scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}.module-hero-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.module-hero-actions>.primary{white-space:nowrap}
.page-section[hidden]{display:none}.module-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:26px}.module-hero h1{max-width:820px}.module-hero p:last-child{margin:0;color:var(--muted)}.object-module-grid{display:grid;grid-template-columns:330px minmax(0,1fr);gap:22px;align-items:start}.module-count{min-width:28px;height:28px;border-radius:50%;background:#f4e6e7;color:var(--green-dark);display:grid;place-items:center;font-size:12px;font-weight:800}.object-module-list{padding:0 14px 16px;display:grid;gap:9px}.object-select{width:100%;border:1px solid transparent;background:#f7f8f5;border-radius:11px;padding:12px;display:grid;grid-template-columns:38px 1fr auto;gap:10px;text-align:left;align-items:center;color:var(--ink);cursor:pointer}.object-select:hover{border-color:#e2c5c8;background:#fff}.object-select.active{border-color:#8f2027;background:#fff5f5;box-shadow:0 6px 18px rgba(95,7,13,.07)}.object-select>span{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(140deg,#7d151b,#360307);color:white}.object-select div{display:grid;gap:3px}.object-select strong{font-size:12px}.object-select small{font-size:9px;color:var(--muted)}.object-select em{font-style:normal;font-size:10px;color:var(--green);font-weight:800}.object-record{padding:24px}.object-record-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.object-record h2{font-family:Georgia,serif;font-size:31px;font-weight:500;margin:0 0 6px}.object-record-head p:last-child{margin:0;color:var(--muted)}.map-link{display:inline-flex;align-items:center;gap:7px;background:var(--green-dark);color:white;text-decoration:none;border-radius:9px;padding:11px 13px;font-size:11px;font-weight:750;white-space:nowrap}.map-link svg{width:16px}.object-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.object-facts div{background:#f7f8f5;border:1px solid #edf1ef;border-radius:10px;padding:13px;display:grid;gap:6px}.object-facts span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}.object-facts strong{font-size:12px}.map-card{min-height:150px;border-radius:14px;border:1px solid #e8dedc;background:radial-gradient(circle at 30% 40%,rgba(198,83,72,.24),transparent 8%),linear-gradient(135deg,#fff7f4,#edf1ef);display:grid;grid-template-columns:auto 1fr;align-items:center;gap:18px;padding:24px;overflow:hidden;position:relative}.map-card:before,.map-card:after{content:"";position:absolute;background:rgba(95,7,13,.11);border-radius:999px}.map-card:before{width:420px;height:2px;rotate:-18deg;left:-80px;top:60px}.map-card:after{width:320px;height:2px;rotate:24deg;right:-80px;bottom:48px}.map-pin{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--green-dark);color:white;z-index:1}.map-card div:last-child{display:grid;gap:6px;z-index:1}.map-card span{color:var(--muted);font-size:12px}.object-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.unit-list,.document-list{padding:0 18px 18px;display:grid;gap:9px}.unit-row{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:12px;align-items:center;background:#f8f9f6;border-radius:10px;padding:12px}.unit-row div{display:grid;gap:4px}.unit-row strong{font-size:12px}.unit-row span,.document-row small{font-size:9px;color:var(--muted)}.doc-chips,.access-list{display:flex!important;flex-wrap:wrap;gap:5px}.doc-chips span,.access-list span{font-size:8px;color:#6b2326;background:#f4e6e7;border-radius:20px;padding:4px 7px}.document-row{display:grid;grid-template-columns:86px 1fr auto;gap:12px;align-items:center;background:#f8f9f6;border-radius:10px;padding:12px}.document-type{font-size:9px;font-weight:800;color:var(--green-dark);background:white;border:1px solid #ead7d9;border-radius:8px;padding:7px;text-align:center}.document-row div:nth-child(2){display:grid;gap:4px}.document-row strong{font-size:12px}.permission-panel{margin-top:22px}.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 18px 18px}.permission-grid div{background:#fff8f7;border:1px solid #ead7d9;border-radius:12px;padding:16px;display:grid;gap:7px}.permission-grid strong{font-size:13px;color:var(--green-dark)}.permission-grid span{font-size:11px;line-height:1.45;color:var(--muted)}.empty-state{padding:20px;color:var(--muted);font-size:12px}
@media(max-width:1100px){.sidebar{width:205px}.app-shell{margin-left:205px}.content{padding:30px 24px}.dashboard-grid{grid-template-columns:1fr}.right-column{grid-template-columns:1fr 1fr}.metrics{gap:10px}.metric{padding:16px}.route-panel{min-width:0}}
@media(max-width:760px){body{padding-bottom:72px}.sidebar{inset:auto 0 0;width:auto;height:68px;padding:7px 9px;background:var(--green-dark);z-index:10}.brand,.sidebar-foot{display:none}.main-nav{display:flex;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}.nav-item{display:flex;flex:0 0 auto;flex-direction:column;justify-content:center;gap:3px;width:auto;padding:5px 11px;font-size:9px}.nav-item svg{width:20px}.nav-item .count,.nav-item .nav-alert{display:none}.nav-item.active:before{inset:auto auto -7px;height:3px;width:26px;border-radius:3px 3px 0 0}.app-shell{margin-left:0}.topbar{height:65px;padding:0 18px}.mobile-brand{display:flex;align-items:center;gap:8px}.mobile-brand .brand-mark{width:31px;height:31px;border-radius:9px;font-size:17px}.search{display:none}.profile div{display:none}.profile{padding-left:12px}.top-actions{gap:8px}.content{padding:25px 16px}.welcome{align-items:flex-start;gap:20px}.welcome h1{font-size:29px}.welcome>div>p:last-child{font-size:13px}.welcome .primary{width:43px;height:43px;padding:0;font-size:0}.welcome .primary svg{width:19px}.metrics{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-16px;padding:0 16px 5px}.metric{min-width:260px;scroll-snap-align:start}.dashboard-grid{display:block}.right-column{display:grid;grid-template-columns:1fr;margin-top:16px}.route-summary{grid-template-columns:auto 1fr}.route-time{display:none}.task-list{padding-inline:16px}.route-summary,.panel-head{margin-inline:0}.panel-head{padding-inline:18px}.task-row{grid-template-columns:auto auto 1fr}.task-meta{display:none}.service-panel{order:1}.object-panel{order:2}.form-row{grid-template-columns:1fr}dialog form{padding:22px}.toast{left:16px;right:16px;bottom:86px;text-align:center}}
@media(max-width:1100px){.object-module-grid,.object-detail-grid{grid-template-columns:1fr}.object-browser{order:0}.object-facts,.permission-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.module-hero{display:grid;gap:16px}.module-hero h1{font-size:28px}.module-hero .primary{width:max-content}.object-record{padding:18px}.object-record-head{display:grid}.object-record h2{font-size:27px}.object-facts,.permission-grid{grid-template-columns:1fr}.map-link{width:max-content}.map-card{grid-template-columns:1fr;min-height:180px}.unit-row,.document-row{grid-template-columns:1fr}.access-list{justify-content:flex-start}}
.dialog-wide{width:min(660px,calc(100vw - 30px))}
.object-photo-field{display:grid;grid-template-columns:132px 1fr;gap:16px;align-items:center;margin:0 0 18px;padding:12px;border:1px dashed #bfd0c8;border-radius:11px;background:#f8faf7}.object-photo-preview{width:132px;aspect-ratio:16/10;border-radius:9px;overflow:hidden;background:linear-gradient(140deg,#789083,#314d45);color:white;display:grid;place-items:center}.object-photo-preview span{display:grid;place-items:center}.object-photo-preview svg{width:28px;height:28px}.object-photo-preview img{width:100%;height:100%;object-fit:cover}.object-photo-controls{display:grid;gap:5px}.object-photo-controls>strong{font-size:11px}.object-photo-controls>span{font-size:9px;line-height:1.45;color:var(--muted)}.object-photo-controls>div{display:flex;align-items:center;gap:12px;margin-top:5px}.object-photo-button{display:inline-flex;margin:0;padding:9px 12px;font-size:10px}.object-photo-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.object-thumb img,.object-select>span img{width:100%;height:100%;object-fit:cover}.object-title-group{display:flex;align-items:center;gap:15px}.object-title-photo{width:96px;height:68px;border-radius:10px;object-fit:cover;border:1px solid #e1e7e4}.object-head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){.object-photo-field{grid-template-columns:1fr}.object-photo-preview{width:100%;max-height:170px}.object-title-group{align-items:flex-start}.object-title-photo{width:72px;height:58px}.object-head-actions{justify-content:flex-start}}
.route-controls{display:flex;align-items:center;gap:10px}.route-controls .secondary{width:38px;height:38px;padding:0;font-size:22px}.route-controls strong{min-width:150px;text-align:center;text-transform:capitalize}.route-module-grid{display:grid;grid-template-columns:420px minmax(0,1fr);gap:22px;align-items:start}.route-month-panel{padding-bottom:18px}.route-workspace-picker{padding-top:0}.route-object-filter{display:flex;flex-wrap:wrap;gap:8px;max-height:190px;overflow:auto;padding:0 18px 16px}.route-object-chip{border:1px solid #ead7d9;background:#f8f9f6;color:var(--ink);border-radius:8px;padding:8px 10px;display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;cursor:pointer}.route-object-chip svg{width:15px;height:15px}.route-object-chip.active{background:#fff5f5;border-color:#8f2027;color:var(--green-dark)}.route-weekdays,.route-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:0 18px}.route-weekdays{margin-bottom:7px}.route-weekdays span{font-size:9px;font-weight:800;color:var(--muted);text-align:center}.route-day{min-height:54px;border:1px solid #e4e9e6;background:#fff;border-radius:7px;padding:7px 5px;display:grid;align-content:space-between;text-align:left;color:var(--ink);cursor:pointer}.route-day.empty{border:0;background:transparent}.route-day strong{font-size:13px}.route-day span{font-size:9px;color:var(--muted)}.route-day.open{border-color:#e2c5c8;background:#fff8f7}.route-day.done{border-color:#bfd8cb;background:#f2f8f4}.route-day.today{box-shadow:inset 0 0 0 2px #dbb36a}.route-day.active{border-color:#5f070d;box-shadow:0 5px 14px rgba(95,7,13,.14)}.route-detail-card{padding:24px}.route-detail-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.route-detail-head h2{font-family:Georgia,serif;font-size:30px;font-weight:500;margin:0 0 6px;text-transform:capitalize}.route-detail-head p:last-child{margin:0;color:var(--muted)}.route-progress{min-width:88px;border-radius:10px;background:#fff5f5;border:1px solid #ead7d9;padding:12px;text-align:center}.route-progress strong{display:block;font-family:Georgia,serif;font-size:24px;font-weight:500;color:var(--green-dark)}.route-progress span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}.route-checklist{display:grid;gap:9px}.route-check{display:grid;grid-template-columns:auto auto 1fr;gap:11px;align-items:center;margin:0;padding:12px;border:1px solid #edf1ef;border-radius:10px;background:#f8f9f6;cursor:pointer}.route-check input{position:absolute;opacity:0;pointer-events:none}.route-check>span{width:24px;height:24px;border-radius:7px;border:1.5px solid #aab7b2;display:grid;place-items:center;color:transparent;background:white}.route-check>span svg{width:15px;height:15px}.route-check.done{background:#f2f8f4;border-color:#bfd8cb}.route-check.done>span{background:var(--green);border-color:var(--green);color:white}.route-check div{display:grid;gap:4px}.route-check strong{font-size:12px}.route-check small{font-size:10px;color:var(--muted)}.route-documentation{margin-top:22px}.route-doc-grid{padding:0 18px 18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.route-doc-grid label{font-size:11px;font-weight:700;color:var(--ink)}.route-doc-grid label:last-child{grid-column:1/-1}.route-doc-grid textarea{margin-top:7px;width:100%;resize:vertical;border:1px solid #d8e0dc;border-radius:8px;padding:11px 12px;outline:none;color:var(--ink);background:white}.route-doc-grid textarea:focus{border-color:#75a592}.route-module-options.single{grid-template-columns:minmax(0,1fr)}.module-config-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 16px}.module-config-summary>div{display:grid;gap:5px;padding:14px;border:1px solid #edf1ef;border-radius:10px;background:#f8f9f6}.module-config-summary span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}.module-config-summary strong{font-size:13px}.module-config-summary small{font-size:10px;line-height:1.45;color:var(--muted)}
@media(max-width:1100px){.route-module-grid{grid-template-columns:1fr}.route-month-panel{order:0}.route-day-detail{order:1}}
@media(max-width:760px){.route-controls{justify-content:flex-start}.route-module-grid{gap:16px}.route-weekdays,.route-calendar{gap:4px;padding-inline:14px}.route-day{min-height:48px;padding:6px 4px}.route-day strong{font-size:12px}.route-detail-card{padding:18px}.route-detail-head{display:grid}.route-progress{text-align:left}.route-doc-grid{grid-template-columns:1fr}.route-doc-grid label:last-child{grid-column:auto}}
@media(max-width:760px){.module-config-summary{grid-template-columns:1fr}.module-hero-actions{justify-content:flex-start}.module-hero-actions>.primary,.module-hero-actions>.secondary{width:max-content}}

/* Rollenansicht und operative Hausmeister-Dokumentation */
.profile-role{display:flex;align-items:center;gap:9px;padding-left:20px;border-left:1px solid var(--line);cursor:pointer}.profile-role select{border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:650;outline:none;max-width:205px}.service-module-grid{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);gap:22px;align-items:start}.service-workspace-panel{max-width:none}.service-workspace-item{width:100%;border:0;border-top:1px solid #edf1ef;background:white;color:var(--ink);display:grid;grid-template-columns:auto 1fr auto;gap:14px;padding:18px 24px;text-align:left;cursor:pointer}.service-workspace-item:hover,.service-workspace-item.active{background:#fff8f7}.service-workspace-item.active{box-shadow:inset 4px 0 0 var(--green-dark)}.service-workspace-item>div{display:grid;gap:6px}.service-workspace-item strong{font-size:13px}.service-workspace-item p{margin:0;font-size:11px;color:var(--muted)}.service-detail-stack{display:grid;gap:18px}.service-detail-card{padding:24px}.service-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.service-detail-head h2{font-family:Georgia,serif;font-size:29px;font-weight:500;margin:0 0 7px}.service-detail-head p:last-child{margin:0;color:var(--muted);font-size:12px}.service-detail-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.service-detail-grid label{font-size:11px;font-weight:750}.service-detail-grid textarea{width:100%;margin-top:7px;resize:vertical;border:1px solid #d8e0dc;border-radius:8px;padding:11px 12px;outline:none;color:var(--ink);background:white}.photo-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.photo-strip span{display:inline-flex;align-items:center;gap:6px;min-height:30px;border-radius:8px;background:#f7f8f5;border:1px solid #edf1ef;color:var(--muted);font-size:10px;padding:7px 9px}.photo-strip svg{width:15px;height:15px}.workflow-steps{display:grid;gap:10px;padding:0 18px 18px}.workflow-step{display:grid;grid-template-columns:30px minmax(0,1fr) minmax(190px,.8fr);gap:12px;align-items:center;padding:12px;border:1px solid #edf1ef;border-radius:10px;background:#f8f9f6}.workflow-step>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#ead7d9;color:var(--green-dark);font-size:12px;font-weight:800}.workflow-step.done>span{background:var(--green-dark);color:white}.workflow-step div{display:grid;gap:4px}.workflow-step strong{font-size:12px}.workflow-step small{font-size:10px;color:var(--muted)}.workflow-step select,.workflow-step input{width:100%;border:1px solid #d8e0dc;border-radius:8px;padding:10px 11px;background:white;color:var(--ink);outline:none;font-size:11px}.workflow-step select:disabled,.workflow-step input:disabled{background:#eef1ee;color:#8a9691}.service-action-row{display:flex;justify-content:flex-end;padding:0 18px 18px}.manager-lock{margin:0;padding:0 18px 18px;color:var(--muted);font-size:11px}.contact-mini-panel{margin-top:22px;max-width:1000px}.contact-list{display:grid;padding:0 18px 18px;gap:9px}.contact-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;border:1px solid #edf1ef;border-radius:10px;background:#f8f9f6;padding:12px}.contact-row div{display:grid;gap:4px}.contact-row strong{font-size:12px}.contact-row small,.contact-row span{font-size:10px;color:var(--muted)}.contacts-module-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;align-items:start}.contact-form-panel form{padding:0 18px 18px}.contact-form-panel label{display:grid;gap:7px;margin-bottom:13px;font-size:11px;font-weight:750}.contact-form-panel input,.contact-form-panel select{border:1px solid #d8e0dc;border-radius:8px;padding:11px 12px;outline:none;color:var(--ink);background:white}.service-access{border:1px solid #ead7d9;border-radius:10px;margin:2px 0 18px;padding:12px}.service-access legend{padding:0 5px;font-size:11px;font-weight:750}.service-access p{margin:0 0 10px;font-size:10px;line-height:1.4;color:var(--muted)}.service-access>div{display:flex;flex-wrap:wrap;gap:10px}.service-access label{display:flex;align-items:center;gap:6px;margin:0;font-size:11px}.service-access input{width:15px;height:15px;padding:0}.service-access:disabled{opacity:.55}.route-photo-upload{display:grid;gap:7px;border:1px dashed #c8d7d0;border-radius:8px;padding:11px 12px;font-size:11px;font-weight:700}.route-photo-upload input{font-size:10px}.route-photo-upload span{font-weight:500;color:var(--muted)}.caretaker-view .welcome h1:after{content:" · Hausmeisteransicht";font-size:.54em;color:var(--green-dark)}
@media(max-width:1100px){.service-module-grid,.contacts-module-grid{grid-template-columns:1fr}.service-detail-grid{grid-template-columns:1fr}.workflow-step{grid-template-columns:30px 1fr}}
@media(max-width:760px){.profile-role{padding-left:10px}.profile-role select{max-width:125px;font-size:10px}.service-workspace-item{padding:16px 18px}.service-workspace-item .tag{align-self:start}.service-access>div{display:grid;gap:7px}.service-detail-card{padding:18px}.service-detail-head{display:grid}.service-detail-head h2{font-size:25px}.workflow-step{grid-template-columns:28px 1fr;padding:11px}.workflow-step select,.workflow-step input{grid-column:1/-1}.contact-row{grid-template-columns:1fr}.contact-list{padding-inline:14px}.contact-mini-panel{margin-top:16px}}

.future-panel{max-width:780px;padding:32px;display:flex;align-items:center;gap:22px}.future-panel h2{margin-bottom:8px}.future-panel p{margin:0;max-width:540px;line-height:1.55;color:var(--muted)}.future-icon{width:58px;height:58px;display:grid;place-items:center;flex:0 0 auto;border-radius:16px;background:#f4e6e7;color:var(--green-dark)}.future-icon svg{width:28px;height:28px}.future-workspace .primary:disabled{cursor:not-allowed;opacity:.52}
@media(max-width:760px){.future-panel{padding:24px;align-items:flex-start}.future-icon{width:46px;height:46px}.future-icon svg{width:23px;height:23px}}

.route-config-grid{display:grid;grid-template-columns:330px minmax(0,1fr);gap:22px;align-items:start}.route-config-panel{max-width:none}.route-config-object-list{display:grid;gap:9px;padding:0 14px 16px}.route-config-object{width:100%;border:1px solid transparent;background:#f7f8f5;border-radius:11px;padding:12px;display:grid;grid-template-columns:38px 1fr;gap:10px;text-align:left;align-items:center;color:var(--ink);cursor:pointer}.route-config-object:hover{border-color:#e2c5c8;background:#fff}.route-config-object.active{border-color:#8f2027;background:#fff5f5;box-shadow:0 6px 18px rgba(95,7,13,.07)}.route-config-object>span{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(140deg,#7d151b,#360307);color:white}.route-config-object div{display:grid;gap:4px}.route-config-object strong{font-size:12px}.route-config-object small{font-size:9px;color:var(--muted)}.config-intro{margin:0;padding:0 24px 17px;color:var(--muted);font-size:12px;line-height:1.5;border-bottom:1px solid #edf1ef}.route-config-list{display:grid}.route-template-row{display:grid;grid-template-columns:auto auto auto 1fr auto;gap:13px;align-items:center;padding:14px 24px;border-bottom:1px solid #edf1ef;cursor:pointer}.route-drag-handle{color:#88928e;font-size:18px;line-height:1;letter-spacing:-4px;cursor:grab;padding:7px 5px 7px 1px;user-select:none;touch-action:none}.route-drag-handle:active{cursor:grabbing}.route-drag-handle:focus-visible{outline:2px solid #8f2027;outline-offset:2px;border-radius:4px}.route-template-row.dragging{opacity:.35}.route-template-row.drag-over{box-shadow:inset 0 3px 0 #8f2027}.route-template-row:last-child{border-bottom:0}.route-template-row input{position:absolute;opacity:0;pointer-events:none}.template-toggle{width:32px;height:18px;border-radius:20px;background:#bdc8c3;position:relative;transition:.18s}.template-toggle:after{content:"";position:absolute;width:12px;height:12px;top:3px;left:3px;border-radius:50%;background:white;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:.18s}.route-template-row input:checked + .template-toggle{background:var(--green)}.route-template-row input:checked + .template-toggle:after{left:17px}.route-template-switch-control{display:flex;cursor:pointer}.route-template-edit{border:0;background:transparent;color:var(--ink);padding:3px 0;display:grid;gap:4px;text-align:left;cursor:pointer;border-radius:5px}.route-template-edit:hover strong{text-decoration:underline;text-underline-offset:3px}.route-template-edit:focus-visible{outline:2px solid #8f2027;outline-offset:3px}.route-template-row strong{font-size:12px}.route-template-row small{font-size:10px;color:var(--muted)}.route-template-row em{font-size:10px;font-style:normal;font-weight:750;color:var(--green);text-transform:uppercase;letter-spacing:.5px}.route-template-row.inactive .route-drag-handle,.route-template-row.inactive .route-template-switch-control,.route-template-row.inactive .route-template-edit,.route-template-row.inactive em{opacity:.55}.route-template-row.inactive em{color:var(--muted)}.route-template-delete{width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:#9a6c6e;display:grid;place-items:center;cursor:pointer}.route-template-delete:hover{background:#f7e7e8;color:#8f2027}.route-template-delete:focus-visible{outline:2px solid #8f2027;outline-offset:2px}.route-template-delete svg{width:15px;height:15px}.route-template-edit:disabled,.route-template-delete:disabled{cursor:not-allowed}.route-template-row.global-inactive{cursor:not-allowed}.object-route-panel{margin-top:22px}.object-route-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 18px 12px}.object-route-summary div{background:#f8f9f6;border:1px solid #edf1ef;border-radius:10px;padding:13px;display:grid;gap:6px}.object-route-summary span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}.object-route-summary strong{font-size:12px}.object-route-preview{display:flex;flex-wrap:wrap;gap:7px;padding:0 18px 18px}.object-route-preview span{font-size:10px;color:#6b2326;background:#f4e6e7;border-radius:20px;padding:6px 8px}.caretaker-object-record{padding:24px}.caretaker-object-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.caretaker-object-facts>div{padding:15px;border:1px solid #edf1ef;border-radius:10px;background:#f8f9f6;display:grid;gap:5px}.caretaker-object-facts span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}.caretaker-object-facts strong{font-size:13px}.caretaker-object-facts small{font-size:10px;color:var(--muted)}.caretaker-object-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.caretaker-object-list{padding:0 18px 18px;display:grid}.caretaker-object-list>div{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:12px 0;border-top:1px solid #edf1ef}.caretaker-object-list>div>span{color:var(--green);margin-top:2px}.caretaker-object-list>div .priority-dot{margin:5px 4px 0}.caretaker-object-list p{display:grid;gap:4px;margin:0}.caretaker-object-list strong{font-size:12px}.caretaker-object-list small{font-size:10px;color:var(--muted)}
@media(max-width:1100px){.route-config-grid{grid-template-columns:1fr}}
@media(max-width:760px){.route-template-row{padding:13px 18px;grid-template-columns:auto auto auto 1fr}.route-template-row em{display:none}.route-config-object-list{padding-inline:14px}.object-route-summary{grid-template-columns:1fr}.caretaker-object-record{padding:18px}.caretaker-object-facts,.caretaker-object-grid{grid-template-columns:1fr}.caretaker-object-grid{gap:16px}}

.operational-report-panel{margin-top:22px;overflow:hidden}.operational-report-controls{display:grid;grid-template-columns:minmax(240px,1.2fr) 150px 175px auto;gap:12px;align-items:end;padding:0 24px 16px}.operational-report-controls label{display:grid;gap:6px;color:var(--muted);font-size:10px;font-weight:750}.operational-report-controls select,.operational-report-controls input{width:100%;border:1px solid #d8e0dc;border-radius:8px;padding:10px 11px;background:white;color:var(--ink);font:inherit}.operational-report-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.operational-report-actions button{white-space:nowrap}.report-explanation{margin:0;padding:0 24px 16px;color:var(--muted);font-size:10px;line-height:1.5}.operational-report-list{display:grid;padding:0 24px 20px}.operational-report-record{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 0;border-top:1px solid #edf1ef}.operational-report-record>div:first-child{display:grid;gap:5px}.operational-report-record strong{font-size:12px}.operational-report-record span{font-size:10px;color:var(--muted)}.operational-report-record>div:last-child{display:flex;align-items:center;justify-content:flex-end;gap:8px}.object-report-note{padding-top:0}.object-report-list{padding-bottom:18px}
@media(max-width:1050px){.operational-report-controls{grid-template-columns:1fr 1fr}.operational-report-actions{justify-content:flex-start;grid-column:1/-1}}
@media(max-width:760px){.operational-report-controls{grid-template-columns:1fr;padding-inline:18px}.operational-report-actions{grid-column:auto;display:grid}.report-explanation{padding-inline:18px}.operational-report-list{padding-inline:18px}.operational-report-record{grid-template-columns:1fr}.operational-report-record>div:last-child{justify-content:flex-start;flex-wrap:wrap}}

.ticket-panel{max-width:1100px}.ticket-list{display:grid;gap:10px;padding:0 18px 18px}.ticket-card{border:1px solid #edf1ef;border-radius:10px;background:#fff;padding:14px;display:grid;gap:12px}.ticket-card.done{background:#f7faf7}.ticket-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}.ticket-head strong{font-size:14px}.ticket-head small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.ticket-state{min-width:72px;text-align:center;border-radius:8px;background:#f4e6e7;color:var(--green-dark);font-size:10px;font-weight:800;padding:7px 8px;text-transform:uppercase;letter-spacing:.5px}.ticket-object{font-size:10px;color:var(--green);font-weight:800;background:#eef1ee;border-radius:8px;padding:7px 9px}.ticket-body{display:grid;gap:9px}.ticket-body p{margin:0;color:var(--ink);font-size:12px;line-height:1.45}.ticket-facts{display:flex;flex-wrap:wrap;gap:7px}.ticket-facts span{font-size:10px;color:var(--muted);border:1px solid #edf1ef;background:#f8f9f6;border-radius:20px;padding:5px 8px}.completion-form{display:grid;grid-template-columns:minmax(0,1fr) 180px auto;gap:10px;align-items:end;border-top:1px solid #edf1ef;padding-top:12px}.completion-form label{display:grid;gap:6px;font-size:11px;font-weight:750}.completion-form textarea,.completion-form input{width:100%;border:1px solid #d8e0dc;border-radius:8px;padding:10px 11px;outline:none;color:var(--ink);background:white}.completion-note{display:grid;gap:4px;border-top:1px solid #edf1ef;padding-top:10px}.completion-note strong{font-size:11px}.completion-note span{font-size:11px;color:var(--muted)}
@media(max-width:760px){.ticket-list{padding-inline:14px}.ticket-head{grid-template-columns:1fr}.ticket-state,.ticket-object{width:max-content}.completion-form{grid-template-columns:1fr}.ticket-card .secondary{width:100%}}

.photo-strip{align-items:stretch}.photo-thumb{width:138px;min-height:128px;border:1px solid #d8e0dc;background:white;border-radius:10px;padding:0;overflow:hidden;color:var(--ink);display:grid;grid-template-rows:92px auto;text-align:left;cursor:pointer}.photo-thumb:hover{border-color:#8f2027;box-shadow:0 8px 18px rgba(95,7,13,.1)}.photo-thumb img{width:100%;height:92px;object-fit:cover;background:#eef1ee;display:block}.photo-thumb span{display:flex;align-items:center;gap:6px;padding:8px;font-size:10px;color:var(--muted);min-width:0;word-break:break-word}.photo-empty{display:inline-flex;align-items:center;min-height:32px;border-radius:8px;background:#f7f8f5;border:1px solid #edf1ef;color:var(--muted);font-size:10px;padding:7px 9px}.photo-dialog{width:min(920px,calc(100vw - 32px))}.photo-viewer{padding:24px}.photo-viewer img{width:100%;max-height:70vh;object-fit:contain;border-radius:10px;background:#f2f5f1;border:1px solid #edf1ef;display:block}
@media(max-width:760px){.photo-thumb{width:calc(50% - 4px);min-width:130px}.photo-viewer{padding:18px}.photo-dialog{width:min(96vw,920px)}}

/* Verknüpfte Objektakte: Objekt → Gebäude → Einheit */
.object-record-compact{padding-bottom:0;overflow:hidden}.object-record-compact .object-facts{margin-bottom:20px}.object-tabs{display:flex;gap:4px;overflow-x:auto;margin:0 -24px;padding:0 24px;border-top:1px solid #edf1ef;scrollbar-width:thin}.object-tab{flex:0 0 auto;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);padding:15px 12px 13px;font-size:11px;font-weight:750;cursor:pointer;white-space:nowrap}.object-tab:hover{color:var(--ink);background:#fafaf7}.object-tab.active{color:var(--green-dark);border-bottom-color:var(--green-dark)}.object-tab span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:6px;padding:0 5px;border-radius:20px;background:#f1e3e4;color:#6b2326;font-size:9px}.object-tab-content{display:grid;gap:22px;margin-top:22px}.object-overview-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:22px}.object-overview-grid .object-route-panel{margin-top:0}.object-structure-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 18px 18px}.object-structure-summary div{display:grid;gap:5px;padding:15px;border:1px solid #edf1ef;border-radius:10px;background:#f8f9f6}.object-structure-summary strong{font-family:Georgia,serif;font-size:25px;font-weight:500;color:var(--green-dark)}.object-structure-summary span{font-size:10px;color:var(--muted)}.object-map-panel{padding:18px}.object-map-panel .map-card{min-height:125px}.object-section-panel{margin-top:0}.building-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 18px 18px}.building-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:14px;border:1px solid #edf1ef;border-radius:11px;background:#f8f9f6}.building-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--green-dark);color:white}.building-card>div:nth-child(2){display:grid;gap:5px}.building-card strong{font-size:12px}.building-card small{font-size:9px;color:var(--muted)}.building-stat{display:grid;text-align:right}.building-stat span{font-size:8px;color:var(--muted);text-transform:uppercase}.status-pill{display:inline-flex;align-items:center;justify-content:center;width:max-content;border-radius:20px;background:var(--green-soft);color:var(--green);padding:5px 8px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.35px}.status-pill.muted{background:#f0f1ee;color:var(--muted)}.object-tab-grid{margin-top:0}.relation-list,.process-list,.contract-list,.history-list,.integration-list{display:grid;padding:0 18px 18px}.relation-row,.tenancy-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #edf1ef}.relation-avatar,.unit-badge{display:grid;place-items:center;min-width:40px;height:40px;border-radius:10px;background:#f4e6e7;color:var(--green-dark);font-size:10px;font-weight:800}.relation-row>div,.tenancy-row>div{display:grid;gap:4px}.relation-row strong,.tenancy-row strong{font-size:12px}.relation-row small,.tenancy-row small{font-size:9px;color:var(--muted)}.process-list>button,.process-row{width:100%;border:0;border-top:1px solid #edf1ef;background:white;color:var(--ink);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 0;text-align:left}.process-list>button{cursor:pointer}.process-list>button:hover{background:#fff8f7}.process-list>button>div,.process-row>div{display:grid;gap:4px}.process-list strong{font-size:12px}.process-list small{font-size:9px;color:var(--muted)}.process-check{width:25px;height:25px;border:1px solid #b9c5c0;border-radius:8px;display:grid;place-items:center;color:white}.process-check.done{background:var(--green);border-color:var(--green)}.process-check svg{width:15px;height:15px}.process-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 18px 18px}.process-links button{border:1px solid #edf1ef;border-radius:10px;background:#f8f9f6;color:var(--ink);padding:15px;text-align:left;display:grid;gap:7px;cursor:pointer}.process-links button:hover{border-color:#e2c5c8;background:#fff8f7}.process-links strong{font-size:12px}.process-links span{font-size:10px;color:var(--muted)}.contract-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 0;border-top:1px solid #edf1ef}.contract-row>div{display:grid;gap:4px}.contract-row strong{font-size:12px}.contract-row small,.contract-row>span:last-child{font-size:10px;color:var(--muted)}.history-entry{display:grid;grid-template-columns:14px minmax(0,1fr);gap:12px;padding:0 0 18px}.history-entry>span{position:relative;width:10px;height:10px;margin-top:4px;border-radius:50%;background:var(--green-dark)}.history-entry>span:after{content:"";position:absolute;top:12px;left:4px;width:2px;height:calc(100% + 12px);background:#ead7d9}.history-entry:last-child>span:after{display:none}.history-entry>div{display:grid;gap:5px}.history-entry small{font-size:9px;color:var(--muted)}.history-entry strong{font-size:12px}.history-entry p{margin:0;font-size:11px;color:var(--muted)}.integration-intro{margin:0;padding:0 18px 16px;color:var(--muted);font-size:11px;line-height:1.55}.integration-list>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 0;border-top:1px solid #edf1ef}.integration-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#f4e6e7;color:var(--green-dark);font-size:10px;font-weight:900}.integration-list>div>div{display:grid;gap:5px}.integration-list strong{font-size:12px}.integration-list small{font-size:10px;color:var(--muted)}.administration-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:22px}.admin-principles{display:grid;gap:10px;padding:0 18px 18px}.admin-principles p{margin:0;padding:13px;border:1px solid #edf1ef;border-radius:10px;background:#f8f9f6;display:grid;gap:5px}.admin-principles strong{font-size:11px}.admin-principles span{font-size:10px;color:var(--muted);line-height:1.45}
@media(max-width:1180px){.object-overview-grid,.administration-grid{grid-template-columns:1fr}.building-list{grid-template-columns:1fr}}
@media(max-width:760px){.object-record-compact{padding-bottom:0}.object-tabs{margin-inline:-18px;padding-inline:18px}.object-tab{padding-inline:10px}.object-structure-summary,.process-links{grid-template-columns:1fr}.building-card{grid-template-columns:auto minmax(0,1fr)}.building-stat,.building-card>.status-pill{grid-column:2}.relation-row,.tenancy-row,.contract-row,.integration-list>div{grid-template-columns:auto minmax(0,1fr)}.relation-row>.status-pill,.tenancy-row>.status-pill,.contract-row>span:last-child,.integration-list>div>.status-pill{grid-column:2}.object-tab-content{margin-top:16px;gap:16px}}

/* Lange Verwaltungsnavigation bleibt auch bei geringer Fensterhöhe erreichbar. */
@media(min-width:761px){.main-nav{flex:1;min-height:0;overflow-y:auto;padding-right:3px;scrollbar-width:thin}.sidebar-foot{flex:0 0 auto;margin-top:12px}}

.manager-access{border:1px solid #d8e0dc;border-radius:12px;margin:4px 0 18px;padding:14px}.manager-access legend{padding:0 6px;font-size:11px;font-weight:800;color:var(--ink)}.manager-access>p{margin:0 0 12px;color:var(--muted);font-size:10px;line-height:1.5}.manager-access>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.manager-access label{display:flex;align-items:center;gap:10px;margin:0;padding:11px;border:1px solid #edf1ef;border-radius:10px;background:#f8f9f6;cursor:pointer}.manager-access input{width:17px;height:17px;padding:0;accent-color:var(--green-dark)}.manager-access label>span{display:grid;gap:3px}.manager-access strong{font-size:11px}.manager-access small{font-size:9px;color:var(--muted)}
@media(max-width:760px){.manager-access>div{grid-template-columns:1fr}}
.pilot-import-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-5px 0 18px;padding:13px 14px;border:1px solid #d8e7e0;border-radius:11px;background:#f1f7f3}.pilot-import-panel>div{display:grid;gap:4px}.pilot-import-panel strong{font-size:11px;color:var(--green-dark)}.pilot-import-panel span{font-size:9px;line-height:1.45;color:var(--muted)}.pilot-import-panel .secondary{white-space:nowrap;padding:9px 12px;font-size:10px}.mandate-selection{margin-top:4px}.mandate-details{grid-column:1/-1;margin-top:4px}.mandate-details label{display:grid;align-items:stretch;background:white}.mandate-details input{width:100%;height:auto}.object-mandates{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.object-mandates span{padding:6px 9px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font-size:9px;font-weight:750}.object-mandates span.legacy{background:#f3eee4;color:#795c2e}@media(max-width:760px){.pilot-import-panel{align-items:stretch;flex-direction:column}.pilot-import-panel .secondary{width:100%}}
.object-head-actions{display:flex;align-items:center;gap:10px}.object-head-actions .secondary{padding:9px 12px;font-size:10px}@media(max-width:760px){.object-head-actions{align-items:flex-end;flex-direction:column}.object-head-actions .secondary{font-size:9px}}

/* Die Desktop-Navigation lässt sich am rechten Rand auf die benötigte Breite ziehen. */
@media(min-width:761px){
  :root{--sidebar-width:268px}
  .sidebar{width:var(--sidebar-width)}
  .app-shell{margin-left:var(--sidebar-width)}
  .nav-item span:nth-child(2){min-width:0}
  .sidebar-resizer{position:absolute;inset:0 -5px 0 auto;width:10px;cursor:col-resize;touch-action:none;outline:0}
  .sidebar-resizer:before{content:"";position:absolute;inset:0 auto 0 4px;width:2px;background:rgba(255,255,255,0);transition:background .18s}
  .sidebar-resizer:after{content:"";position:absolute;top:50%;left:1px;width:8px;height:46px;border-radius:8px;background:#9a3b41;box-shadow:0 2px 8px rgba(54,3,7,.3);opacity:0;transform:translateY(-50%);transition:opacity .18s,background .18s}
  .sidebar:hover .sidebar-resizer:after,.sidebar-resizer:hover:after,.sidebar-resizer:focus-visible:after,.sidebar-resizer.dragging:after{opacity:1}
  .sidebar-resizer:hover:before,.sidebar-resizer:focus-visible:before,.sidebar-resizer.dragging:before{background:rgba(255,255,255,.45)}
  .sidebar-resizer:focus-visible:after{background:#fff}
  body.sidebar-resizing{cursor:col-resize;user-select:none}
}
@media(max-width:760px){.sidebar-resizer{display:none}}

/* Zentrale Kontaktakte */
.contact-record{width:100%;grid-template-columns:auto minmax(0,1fr) minmax(180px,.65fr);border:0;border-bottom:1px solid #edf1ef;background:white;color:var(--ink);text-align:left;cursor:pointer}
.contact-record:hover{background:#fff8f7}
.contact-record>div:nth-child(2){display:grid;gap:4px}
.contact-record>div:last-child{display:grid;gap:4px;text-align:right}
.contact-record span{font-size:10px;color:var(--muted)}
.contact-form-panel textarea{width:100%;border:1px solid #d8e0dc;border-radius:8px;padding:10px 11px;resize:vertical;color:var(--ink);font:inherit}
@media(max-width:760px){.contact-record{grid-template-columns:auto minmax(0,1fr)}.contact-record>div:last-child{grid-column:2;text-align:left}}
.route-check{grid-template-columns:auto minmax(0,1fr) auto;cursor:default}.route-check-toggle{cursor:pointer}.route-check-toggle input{position:absolute;opacity:0;pointer-events:none}.route-check-toggle>span{width:24px;height:24px;border-radius:7px;border:1.5px solid #aab7b2;display:grid;place-items:center;color:transparent;background:white}.route-check-toggle>span svg{width:15px;height:15px}.route-check.done .route-check-toggle>span{background:var(--green);border-color:var(--green);color:white}.route-time{width:auto!important;height:auto!important;border:0!important;display:flex!important;align-items:center;gap:6px;color:inherit!important;background:transparent!important}.route-time input{position:static!important;width:74px;opacity:1!important;pointer-events:auto!important;border:1px solid #cfd9d4;border-radius:8px;background:#fff;padding:8px;text-align:right;color:var(--ink);font:inherit}.route-time em{font-size:9px;font-style:normal;color:var(--muted)}.route-activity-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:16px 24px;border-bottom:1px solid #edf1ef;background:#f8faf8}.route-activity-add label{display:grid;gap:6px}.route-activity-add label span{font-size:10px;font-weight:800;color:var(--green-dark)}.route-activity-add input{width:100%;border:1px solid #cfd9d4;border-radius:8px;background:white;padding:10px 11px;color:var(--ink);font:inherit}.route-activity-add .primary{white-space:nowrap}.object-route-actions{display:flex;gap:8px;flex-wrap:wrap}.object-route-activity-list{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 18px}.object-route-activity-list>span{padding:7px 9px;border-radius:999px;background:#f4e6e7;color:#6b2326;font-size:10px}.caretaker-route-object-panel{margin-top:22px}
@media(max-width:760px){.route-check{grid-template-columns:auto minmax(0,1fr)}.route-time{grid-column:2}.route-activity-add{grid-template-columns:1fr}.object-route-actions{width:100%}}
.route-check.done>.route-time{background:transparent;border:0;color:inherit}
.route-workspace .route-module-grid{grid-template-columns:1fr}.route-workspace .route-month-panel{padding-bottom:14px}.route-workspace .route-workspace-picker{display:grid;grid-template-columns:auto minmax(260px,420px) minmax(260px,1fr);gap:10px 14px;align-items:center;padding:0 18px 12px}.route-workspace .route-workspace-picker>label:first-child{grid-row:1}.route-workspace .route-object-filter{max-height:none;padding-bottom:10px}.route-month-summary{display:flex;flex-wrap:wrap;gap:10px;padding:0 18px}.route-month-summary>span{display:flex;align-items:baseline;gap:5px;padding:8px 10px;border:1px solid #e3e9e6;border-radius:8px;background:#f8f9f6;color:var(--muted);font-size:9px}.route-month-summary strong{color:var(--green-dark);font-size:13px}.route-month-sheet{overflow:hidden}.route-matrix-wrap{overflow-x:auto;border:1px solid #d8e0dc;border-radius:8px;scrollbar-width:thin}.route-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;background:white}.route-matrix th,.route-matrix td{height:38px;padding:0;border-right:1px solid #d8e0dc;border-bottom:1px solid #d8e0dc;text-align:center}.route-matrix thead th{position:sticky;top:0;z-index:3;min-width:30px;background:#f1f4f2;color:var(--green-dark);font-size:8px}.route-matrix thead th:nth-child(7n+1):not(:first-child):not(:last-child),.route-matrix thead th:nth-child(7n):not(:first-child):not(:last-child){background:#eee8e8}.route-matrix tr:last-child th,.route-matrix tr:last-child td{border-bottom:0}.route-matrix th:last-child,.route-matrix td:last-child{border-right:0}.route-matrix .route-matrix-task{position:sticky;left:0;z-index:2;width:245px;min-width:245px;max-width:245px;padding:7px 10px;background:#fff;text-align:left}.route-matrix thead .route-matrix-task{z-index:4;background:#f1f4f2}.route-matrix .route-matrix-task strong{display:block;font-size:9px;line-height:1.25}.route-matrix td label{display:grid;width:100%;height:100%;place-items:center;cursor:pointer}.route-matrix td input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.route-matrix td label>span{display:grid;width:22px;height:22px;place-items:center;border:1px solid #c2cdc8;border-radius:4px;background:#fff;color:white;font-size:13px;font-weight:900}.route-matrix td.checked{background:#f2f8f4}.route-matrix td.checked label>span{border-color:var(--green);background:var(--green)}.route-matrix .route-matrix-time{position:sticky;right:0;z-index:2;width:112px;min-width:112px;background:#f8f9f6}.route-matrix thead .route-matrix-time{z-index:4;background:#f1f4f2;text-align:center}.route-matrix td.route-matrix-time label{display:flex;align-items:center;justify-content:center;gap:4px;padding:4px;cursor:default}.route-matrix td.route-matrix-time input{position:static;width:66px;opacity:1;pointer-events:auto;border:1px solid #c5d0cb;border-radius:6px;background:#fff;padding:6px;text-align:right;color:var(--ink);font:inherit;font-size:9px}.route-matrix td.route-matrix-time span{display:inline;width:auto;height:auto;border:0;background:transparent;color:var(--muted);font-size:8px;font-weight:600}.route-matrix tbody tr:hover .route-matrix-task{background:#fff8f7}.route-matrix tbody tr:hover td:not(.route-matrix-time){background:#fffdf8}
@media(max-width:760px){.route-workspace .route-workspace-picker{grid-template-columns:1fr}.route-matrix .route-matrix-task{width:175px;min-width:175px;max-width:175px}.route-detail-card.route-month-sheet{padding:14px}.route-matrix-wrap{margin-inline:-4px}}
.document-actions{display:grid;justify-items:end;gap:7px}.document-actions .text-btn{font-size:9px}.contact-link-selection>div{max-height:210px;overflow:auto}.form-hint{margin:-6px 0 14px;color:var(--muted);font-size:10px;line-height:1.45}
@media(max-width:760px){.document-actions{grid-column:2;justify-items:start}}
.mandate-editor-list{grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr!important;gap:12px!important;margin-top:4px}.mandate-editor{padding:14px;border:1px solid #d8e0dc;border-radius:11px;background:white}.mandate-editor h3{margin:0 0 12px;color:var(--green-dark);font-size:12px}.mandate-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mandate-editor label{display:grid!important;align-items:stretch!important;gap:6px!important;padding:0!important;border:0!important;background:transparent!important;cursor:default!important;font-size:9px;font-weight:750;color:var(--muted)}.mandate-editor input,.mandate-editor select,.mandate-editor textarea{width:100%;height:auto;margin:0;padding:9px 10px;border:1px solid #d8e0dc;border-radius:8px;background:white;color:var(--ink);font:inherit}.mandate-editor textarea{resize:vertical}.mandate-editor .mandate-wide{grid-column:1/-1}.mandate-records{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.mandate-record{display:grid;gap:10px;padding:14px;border:1px solid #e3e9e6;border-radius:11px;background:#f8f9f6}.mandate-record-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.mandate-record-head strong{font-size:12px;color:var(--green-dark)}.mandate-record dl{display:grid;grid-template-columns:95px 1fr;gap:6px 10px;margin:0}.mandate-record dt{font-size:9px;color:var(--muted)}.mandate-record dd{margin:0;font-size:10px;color:var(--ink)}.mandate-record p{margin:0;font-size:10px;line-height:1.45;color:var(--muted)}
.mandate-services{margin:4px 0 0;padding:12px;border:1px solid #d8e0dc;border-radius:10px}.mandate-services>legend{padding:0 5px;color:var(--green-dark);font-size:10px;font-weight:800}.mandate-services>p,.mandate-service-empty{margin:0 0 10px;font-size:9px;color:var(--muted)}.mandate-service-catalog{display:grid;gap:8px}.mandate-service-option{padding:10px;border:1px solid #e3e9e6;border-radius:9px;background:#f8f9f6}.mandate-service-option.selected{border-color:#8fb6a3;background:#f3f8f5}.mandate-service-toggle{display:flex!important;grid-column:auto!important;grid-template-columns:auto 1fr!important;align-items:flex-start!important;cursor:pointer!important}.mandate-service-toggle input{width:16px!important;margin-top:2px!important}.mandate-service-toggle span{display:grid;gap:2px}.mandate-service-toggle strong{font-size:10px;color:var(--ink)}.mandate-service-toggle small{font-size:8px;font-weight:500;line-height:1.4;color:var(--muted)}.mandate-service-fields{display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #d8e0dc}.mandate-service-option.selected .mandate-service-fields{display:grid}.mandate-service-summary{display:grid;gap:6px;padding-top:4px;border-top:1px solid #e3e9e6}.mandate-service-summary>div{display:grid;gap:2px}.mandate-service-summary strong{font-size:10px}.mandate-service-summary span,.mandate-service-summary small{font-size:9px;color:var(--muted)}
@media(max-width:760px){.mandate-editor-grid,.mandate-service-fields{grid-template-columns:1fr}.mandate-editor .mandate-wide{grid-column:auto}.mandate-records{grid-template-columns:1fr}}
.communication-panel{max-width:1180px}.communication-list{display:grid;padding:0 18px 18px}.communication-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:start;padding:14px 0;border-top:1px solid #edf1ef}.communication-direction{min-width:66px;text-align:center;border-radius:8px;background:#f4e6e7;color:var(--green-dark);font-size:9px;font-weight:800;padding:7px}.communication-row>div:nth-child(2){display:grid;gap:5px}.communication-row strong{font-size:12px}.communication-row small,.communication-row p,.communication-row>div:last-child>span:first-child{font-size:10px;color:var(--muted)}.communication-row p{margin:2px 0 0;line-height:1.45}.communication-row>div:last-child{display:grid;justify-items:end;gap:7px}.local-pilot-note{display:flex;gap:10px;align-items:center;margin:-3px 0 17px;padding:12px 13px;border:1px solid #e5d8bd;border-radius:10px;background:#fff9ed}.local-pilot-note strong{font-size:10px;color:#795c2e}.local-pilot-note span{font-size:10px;color:var(--muted);line-height:1.4}.object-mail-note{margin:0 18px 12px}.communication-workspace>.module-hero>.status-pill{flex:0 0 auto}
@media(max-width:760px){.communication-row{grid-template-columns:1fr}.communication-row>div:last-child{justify-items:start}.local-pilot-note{align-items:flex-start;flex-direction:column}}

/* Kontrollierter Excel-Import */
.import-layout{display:grid;grid-template-columns:minmax(270px,.34fr) minmax(0,1fr);gap:18px;align-items:start}
.import-sidebar{overflow:hidden}.import-upload-form{display:grid;gap:12px;padding:18px;border-bottom:1px solid #e3e9e6}.import-upload-form .panel-head{padding:0}.import-upload-form label{display:grid;gap:7px;font-size:10px;font-weight:750;color:var(--green-dark)}.import-upload-form input{padding:10px;border:1px solid #d8e0dc;border-radius:9px;background:#fff}.import-upload-form p{margin:0;font-size:9px;line-height:1.5;color:var(--muted)}.import-run-list-wrap{padding-bottom:12px}.import-run-list{display:grid}.import-run-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px 11px;align-items:center;width:100%;padding:12px 16px;border:0;border-top:1px solid #edf1ef;background:white;text-align:left;cursor:pointer}.import-run-card:hover,.import-run-card.active{background:#fff8f7}.import-run-card>span:nth-child(2){display:grid;gap:3px;min-width:0}.import-run-card strong,.import-run-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-run-card strong{font-size:10px}.import-run-card small{font-size:8px;color:var(--muted)}.import-run-card em{grid-column:2;justify-self:start}.import-run-kind{display:grid;place-items:center;width:42px;height:32px;border-radius:8px;background:#f4e6e7;color:var(--red);font-size:9px;font-weight:850}.import-review-panel{overflow:hidden}.import-detail-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:18px}.import-detail-head h2{margin:2px 0 4px}.import-detail-head p:last-child{margin:0;color:var(--muted);font-size:9px}.import-detail-head code{font-size:8px}.import-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.import-metrics{display:grid;grid-template-columns:repeat(6,1fr);border-block:1px solid #e3e9e6;background:#f8f9f6}.import-metrics span{display:grid;gap:3px;padding:11px 13px;border-right:1px solid #e3e9e6;color:var(--muted);font-size:8px}.import-metrics span:last-child{border:0}.import-metrics strong{font-size:16px;color:var(--green-dark)}.import-metrics .has-conflict strong{color:var(--red)}.import-error{margin:12px 18px 0;padding:10px 12px;border-radius:8px;background:#fff0f0;color:#9a1d26;font-size:10px}.import-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 18px;border-bottom:1px solid #e3e9e6}.import-actions>label{display:flex;gap:7px;align-items:center;font-size:9px;color:var(--muted)}.import-actions>div{display:flex;gap:8px;flex-wrap:wrap}.import-table-wrap{overflow:auto;max-height:690px}.import-table{width:100%;border-collapse:collapse;min-width:980px}.import-table th{position:sticky;top:0;z-index:1;padding:9px;background:#f8f9f6;border-bottom:1px solid #d8e0dc;text-align:left;color:var(--muted);font-size:8px}.import-table td{padding:11px 9px;border-bottom:1px solid #edf1ef;vertical-align:top;font-size:9px}.import-table td:nth-child(2){min-width:80px}.import-table td:nth-child(2),.import-table td:last-child{display:grid;gap:5px}.import-table ul{margin:7px 0 0;padding-left:15px;color:var(--muted);line-height:1.45}.import-raw{display:block;margin-bottom:8px;color:var(--muted)}.import-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:7px}.import-edit-grid label{display:grid;gap:4px;color:var(--muted);font-size:8px;font-weight:700}.import-edit-grid label.wide{grid-column:1/-1}.import-edit-grid input,.import-edit-grid select{min-width:0;padding:7px 8px;border:1px solid #d8e0dc;border-radius:7px;background:white;color:var(--ink);font:inherit}.import-edit-grid label>span{padding-top:7px;color:var(--ink);font-weight:600}.import-report,.import-events{padding:16px 18px;border-top:1px solid #e3e9e6}.import-report h3,.import-events h3{margin:0 0 10px;color:var(--green-dark);font-size:11px}.import-report p{font-size:10px;color:var(--muted)}.import-report>div{display:flex;gap:7px;flex-wrap:wrap}.import-report span{padding:6px 8px;border-radius:7px;background:#f3f8f5;font-size:8px}.import-events>p{display:grid;grid-template-columns:125px minmax(0,1fr) auto;gap:10px;margin:0;padding:8px 0;border-top:1px solid #edf1ef;font-size:9px}.import-events time,.import-events small{color:var(--muted)}
@media(max-width:1050px){.import-layout{grid-template-columns:1fr}.import-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.import-detail-head,.import-actions{align-items:stretch;flex-direction:column}.import-metrics{grid-template-columns:repeat(2,1fr)}.import-actions>div{display:grid}.import-events>p{grid-template-columns:1fr}.import-edit-grid{grid-template-columns:1fr}.import-edit-grid label.wide{grid-column:auto}}
.hero-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.hero-actions button svg { width:18px; height:18px; }
.procurement-form { margin:0 24px 24px; padding:20px; border:1px solid #dce5e0; border-radius:16px; background:#f8faf8; display:grid; gap:16px; }
.procurement-form.compact { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; }
.procurement-form.compact button { min-height:46px; }
.procurement-form .form-row.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.workflow-branch-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.workflow-branch-picker label { cursor:pointer; display:flex; gap:12px; padding:16px; border:1px solid #d7e1dc; border-radius:14px; background:white; }
.workflow-branch-picker input { margin-top:4px; }
.workflow-branch-picker span { display:grid; gap:4px; }
.workflow-branch-picker small { color:#708079; font-weight:500; line-height:1.4; }
.check-line { display:flex !important; align-items:center; gap:9px; }
.muted-field { opacity:.48; }
.document-chain { padding:0 24px 20px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.document-chain > span { position:relative; min-height:82px; padding:13px; border:1px solid #e1e7e3; border-radius:13px; background:#f5f7f5; display:flex; flex-direction:column; gap:5px; }
.document-chain > span.done { border-color:#9fc7b6; background:#edf7f2; }
.document-chain > span strong { font-size:.87rem; overflow-wrap:anywhere; }
.document-chain > span small { color:#708079; line-height:1.3; }
.chain-detail { margin:0 24px 24px; padding:18px; border:1px solid #dce5e0; border-radius:14px; display:grid; gap:10px; }
.chain-detail > span { color:#62736c; line-height:1.55; }
.chain-detail button { justify-self:start; }
.invoice-match { margin:0 24px 24px; padding:17px 19px; border-radius:14px; display:grid; gap:5px; }
.invoice-match.matched { background:#edf7f2; border:1px solid #9fc7b6; color:#183f32; }
.invoice-match.deviation { background:#fff4e5; border:1px solid #e4b566; color:#6c4606; }
.invoice-match span { line-height:1.45; }
.task-workflow-detail { margin-bottom:20px; scroll-margin-top:90px; }
.task-workflow-detail:empty { display:none; }
.ticket-card.active { border-color:#9fc7b6; box-shadow:0 0 0 2px rgba(47,133,105,.08); }
@media (max-width: 900px) {
  .document-chain { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .workflow-branch-picker, .procurement-form.compact, .procurement-form .form-row.three { grid-template-columns:1fr; }
}

.object-picker{display:grid;gap:9px;padding:0 14px 14px;border-bottom:1px solid #edf1ef;margin-bottom:10px}.object-picker>label:first-child{font-size:9px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.55px}.object-picker select{width:100%;min-width:0;border:1px solid #dce5e1;border-radius:9px;background:#fff;color:var(--ink);padding:10px 32px 10px 10px;font:inherit;font-size:11px}.object-picker-search{display:flex;align-items:center;gap:8px;border:1px solid #dce5e1;border-radius:9px;background:#f8f9f6;padding:0 10px}.object-picker-search:focus-within{border-color:#7d151b;box-shadow:0 0 0 3px rgba(125,21,27,.08);background:#fff}.object-picker-search svg{width:15px;height:15px;color:var(--muted)}.object-picker-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;padding:10px 0;font-size:10px;color:var(--ink)}.object-status-filters{display:flex;flex-wrap:wrap;gap:6px}.object-status-filters button{display:inline-flex;align-items:center;gap:5px;border:1px solid #e1e6e3;border-radius:999px;background:#fff;color:var(--muted);padding:6px 8px;font-size:8px;font-weight:800;cursor:pointer}.object-status-filters button.active{border-color:#7d151b;color:var(--green-dark);box-shadow:0 2px 8px rgba(95,7,13,.08)}.object-status-filters i,.object-process-badge i{width:7px;height:7px;border-radius:50%;background:#9aa7a1;flex:0 0 auto}.object-status-filters button[data-object-status-filter="open"] i,.object-process-badge.open i{background:#c84f45}.object-status-filters button[data-object-status-filter="progress"] i,.object-process-badge.progress i{background:#d39a2d}.object-status-filters button[data-object-status-filter="done"] i,.object-process-badge.done i{background:#348665}.object-status-filters span{display:inline-grid;place-items:center;min-width:16px;height:16px;border-radius:10px;background:#f0f2ef;padding:0 4px}.object-select.process-open{background:#fff3f2;border-left:4px solid #c84f45}.object-select.process-progress{background:#fff9eb;border-left:4px solid #d39a2d}.object-select.process-done{background:#f0f8f3;border-left:4px solid #348665}.object-select.process-none{border-left:4px solid transparent}.object-select.process-open:hover{border-color:#c84f45}.object-select.process-progress:hover{border-color:#d39a2d}.object-select.process-done:hover{border-color:#348665}.object-select.active{outline:2px solid #7d151b;outline-offset:1px}.object-process-badge{display:inline-flex!important;align-items:center;justify-content:flex-end;gap:5px;max-width:86px;text-align:right;line-height:1.25;font-size:8px!important}.object-process-badge.open{color:#a33832}.object-process-badge.progress{color:#94671c}.object-process-badge.done{color:#277352}.object-process-badge.none{color:var(--muted);font-weight:650}

/* Getrennte operative Objektmodule */
.operations-grid{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(0,1.2fr);gap:18px;align-items:start}.operation-form-panel{overflow:hidden}.operation-form{display:grid;gap:14px;padding:0 20px 20px}.operation-form>label,.operation-form .form-row>label{display:grid;gap:6px;color:var(--green-dark);font-size:10px;font-weight:750}.operation-form input,.operation-form select,.operation-form textarea{width:100%;min-width:0;padding:10px 11px;border:1px solid #d8e0dc;border-radius:9px;background:white;color:var(--ink);font:inherit}.operation-form textarea{resize:vertical}.operation-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:12px;border:1px solid #d8e0dc;border-radius:10px}.operation-checks legend{padding:0 5px;color:var(--muted);font-size:9px;font-weight:800}.operation-checks label{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--ink)}.operation-checks input{width:16px;height:16px;padding:0;accent-color:var(--red)}.operation-list{display:grid;padding:0 18px 18px}.operation-record{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:14px 2px;border-top:1px solid #edf1ef}.operation-record:first-child{border-top:0}.operation-record>div{display:grid;gap:4px}.operation-record strong{font-size:11px}.operation-record span,.operation-record p{font-size:9px;line-height:1.45;color:var(--muted)}.operation-record p{grid-column:1/-1;margin:0}.operation-record em{align-self:start;padding:5px 8px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font-size:8px;font-style:normal;font-weight:800}.route-module-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 16px 15px}.route-module-switch{display:flex;gap:10px;align-items:flex-start;padding:13px;border:1px solid #d8e0dc;border-radius:10px;background:#f8f9f6;cursor:pointer}.route-module-switch input{width:18px;height:18px;accent-color:var(--red)}.route-module-switch span{display:grid;gap:4px}.route-module-switch strong{font-size:10px}.route-module-switch small{font-size:8px;line-height:1.4;color:var(--muted)}
.apartment-protocol-workspace .operations-grid{grid-template-columns:minmax(620px,1.45fr) minmax(320px,.55fr)}.protocol-section{display:grid;gap:12px;margin:0;padding:16px;border:1px solid #d8e0dc;border-radius:12px;background:#fbfcfa}.protocol-section legend{padding:0 7px;color:var(--green-dark);font-family:Georgia,serif;font-size:15px;font-weight:700}.protocol-section label{display:grid;gap:6px;color:var(--green-dark);font-size:10px;font-weight:750}.protocol-help{margin:-3px 0 2px;color:var(--muted);font-size:9px;line-height:1.5}.protocol-room-list,.protocol-meter-list{display:grid;gap:10px}.protocol-room-row,.protocol-meter-row{display:grid;grid-template-columns:minmax(150px,.45fr) minmax(0,1fr);gap:10px;padding:12px;border:1px solid #e1e7e3;border-radius:10px;background:#fff}.protocol-row-title{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px}.protocol-row-title strong{font-size:11px}.protocol-row-title span{color:var(--muted);font-size:8px;font-weight:700}.protocol-wide{grid-column:1/-1}.protocol-photo-field{align-content:start;padding:10px;border:1px dashed #b8ccc3;border-radius:9px;background:#f7faf8;cursor:pointer}.protocol-photo-field input{padding:0;border:0;border-radius:0;background:transparent;font-size:9px}.protocol-photo-field span{color:var(--muted);font-size:8px;font-weight:600}.protocol-meter-row{grid-template-columns:repeat(3,minmax(0,1fr))}.protocol-meter-row .protocol-photo-field{grid-column:1/-1}.protocol-key-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.protocol-key-list label{display:grid;grid-template-columns:minmax(0,1fr) 72px;align-items:center;padding:9px 11px;border:1px solid #e1e7e3;border-radius:9px;background:#fff}.protocol-key-list input{text-align:center}.protocol-confirm{grid-template-columns:auto minmax(0,1fr)!important;align-items:start}.protocol-confirm input{width:18px;height:18px;padding:0;accent-color:var(--red)}.protocol-save{position:sticky;bottom:12px;z-index:2;box-shadow:0 8px 20px rgba(91,4,12,.2)}.protocol-record .protocol-photo-chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}.protocol-photo-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #d8e0dc;border-radius:999px;background:#f5f8f6;color:var(--green-dark);font-size:8px;font-weight:750}.protocol-photo-chip svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7}
.protocol-photo-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.protocol-file-option{position:relative;display:flex!important;min-height:44px;align-items:center;justify-content:center;gap:7px;padding:10px 12px;border:1px solid #c9d8d1;border-radius:9px;background:#f5f8f6;color:var(--green-dark)!important;cursor:pointer;text-align:center}.protocol-file-option.camera{border-color:var(--red);background:#fff5f5;color:var(--red)!important}.protocol-file-option svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}.protocol-file-option input{position:absolute;width:1px!important;height:1px;padding:0!important;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}.protocol-meter-group{display:grid;gap:9px;padding:11px;border:1px solid #d8e0dc;border-radius:11px;background:#f5f8f6}.protocol-meter-group>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.protocol-meter-group>header>div{display:grid;gap:2px}.protocol-meter-group>header strong{font-size:12px}.protocol-meter-group>header span{color:var(--muted);font-size:8px}.protocol-meter-group-rows{display:grid;gap:9px}.protocol-add-meter{display:inline-flex;min-height:40px;align-items:center;gap:5px;padding:8px 11px;font-size:9px}.protocol-add-meter svg{width:14px;height:14px}.protocol-remove-meter{grid-column:1/-1;justify-self:end;padding:6px 9px;border:0;background:transparent;color:var(--red);font-size:8px;font-weight:750}.protocol-meter-row>.protocol-photo-actions{grid-column:1/-1}
.protocol-heating-room-selection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0;padding:11px;border:1px solid #d8e0dc;border-radius:10px;background:#fff}.protocol-heating-room-selection legend{padding:0 6px;color:var(--green-dark);font-size:9px;font-weight:800}.protocol-heating-room-selection label{display:flex;min-height:40px;align-items:center;gap:7px;padding:8px;border:1px solid #e1e7e3;border-radius:8px;background:#f8faf9;cursor:pointer}.protocol-heating-room-selection input{width:18px!important;height:18px;padding:0!important;accent-color:var(--red)}.protocol-heating-room-selection span{font-size:9px}.protocol-heating-rooms{display:grid;gap:10px}.protocol-heating-room{display:grid;gap:9px;padding:10px;border:1px solid #c9d8d1;border-radius:10px;background:#fff}.protocol-heating-room>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.protocol-heating-room>header>div{display:grid;gap:2px}.protocol-heating-room>header strong{font-size:11px}.protocol-heating-room>header span{color:var(--muted);font-size:8px}.protocol-heating-room-rows{display:grid;gap:9px}
@media(max-width:1200px){.apartment-protocol-workspace .operations-grid{grid-template-columns:1fr}}@media(max-width:1050px){.operations-grid{grid-template-columns:1fr}}@media(max-width:760px){.operation-checks,.route-module-options,.protocol-key-list{grid-template-columns:1fr}.protocol-room-row,.protocol-meter-row{grid-template-columns:1fr}.protocol-room-row>* ,.protocol-meter-row>*{grid-column:1/-1}.protocol-meter-group>header,.protocol-heating-room>header{align-items:stretch;flex-direction:column}.protocol-add-meter{justify-content:center}.protocol-photo-actions{grid-template-columns:1fr}.protocol-file-option{min-height:48px}.protocol-heating-room-selection{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Dashboard calendar */
.calendar-panel{min-width:0}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px 12px}.calendar-head h2{font-size:24px;text-transform:capitalize}.calendar-actions{display:flex;align-items:center;gap:9px}.calendar-today{padding:8px 12px;font-size:11px}.calendar-stepper,.calendar-view-switch{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#f6f7f4}.calendar-stepper button,.calendar-view-switch button{border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);height:34px;padding:0 11px;cursor:pointer;font-size:11px}.calendar-stepper button{font-size:21px;width:35px;padding:0}.calendar-stepper button:last-child,.calendar-view-switch button:last-child{border-right:0}.calendar-view-switch button.active{background:var(--green-dark);color:#fff}.calendar-legend{display:flex;align-items:center;gap:17px;border-bottom:1px solid var(--line);padding:0 24px 13px;color:var(--muted);font-size:10px}.calendar-legend>span{display:flex;align-items:center;gap:6px}.calendar-legend .text-btn{margin-left:auto}.calendar-dot{width:8px;height:8px;border-radius:2px;background:var(--green);display:inline-block}.calendar-dot.service{background:var(--red)}.calendar-body{height:610px;overflow:auto;background:#fff}.calendar-event{min-width:0;border-left:3px solid var(--green);border-radius:5px;background:#eaf3ef;padding:6px;display:flex;align-items:flex-start;gap:5px;color:var(--ink);overflow:hidden}.calendar-event.service{border-left-color:var(--red);background:var(--red-soft)}.calendar-event.done{opacity:.55}.calendar-event .task-check{width:17px;height:17px;min-width:17px}.calendar-event>i{width:7px;height:7px;min-width:7px;border-radius:50%;background:var(--red);margin-top:3px}.calendar-event div{min-width:0;display:grid;gap:2px}.calendar-event time{font-size:8px;font-weight:750;color:var(--green)}.calendar-event strong{font-size:10px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event span{font-size:9px;color:var(--muted)}.calendar-day-banner{position:sticky;top:0;z-index:2;display:flex;align-items:baseline;gap:9px;padding:12px 18px;background:#f5f7f4;border-bottom:1px solid var(--line)}.calendar-day-banner strong{text-transform:capitalize}.calendar-day-banner span{font-size:11px;color:var(--muted)}.calendar-day-banner em{margin-left:auto;font-size:10px;color:var(--green);font-style:normal}.calendar-time-row{display:grid;grid-template-columns:64px 1fr;min-height:58px}.calendar-time-row>time{padding:9px 12px;color:#899790;font-size:9px;text-align:right;border-right:1px solid var(--line)}.calendar-time-row>div{padding:4px 8px;border-bottom:1px solid #edf1ef;display:grid;gap:4px}.calendar-week-scroll{min-width:760px}.calendar-week-view{display:grid;grid-template-columns:54px repeat(7,minmax(90px,1fr));align-items:stretch}.calendar-week-view>button{height:62px;border:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafbf9;display:grid;place-items:center;align-content:center;gap:4px;cursor:pointer;color:var(--muted)}.calendar-week-view>button span{text-transform:uppercase;font-size:8px;font-weight:700}.calendar-week-view>button strong{font-family:Georgia,serif;font-size:19px;font-weight:500}.calendar-week-view>button.today strong{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:var(--green-dark);color:#fff}.calendar-week-view>time{font-size:8px;text-align:right;padding:8px;color:#899790;border-right:1px solid var(--line);border-bottom:1px solid #edf1ef}.calendar-week-cell{min-height:55px;border-right:1px solid #edf1ef;border-bottom:1px solid #edf1ef;padding:3px;overflow:hidden}.calendar-week-cell .calendar-event{padding:4px}.calendar-week-cell .calendar-event .task-check{display:none}.calendar-month-view{height:100%;min-width:680px;display:grid;grid-template-rows:30px 1fr}.calendar-weekdays,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays span{text-align:center;padding:8px;font-size:9px;text-transform:uppercase;color:var(--muted);font-weight:700;border-right:1px solid var(--line)}.calendar-month-grid{grid-template-rows:repeat(6,minmax(88px,1fr))}.calendar-month-cell{padding:5px;border-top:1px solid var(--line);border-right:1px solid var(--line);overflow:hidden}.calendar-month-cell.other-month{background:#fafbf9}.calendar-date-button{border:0;background:transparent;width:100%;height:25px;padding:0 3px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:var(--ink)}.calendar-date-button>span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;font-size:10px}.calendar-date-button.today>span{background:var(--green-dark);color:#fff}.calendar-date-button>i{font-style:normal;color:var(--green);font-size:8px;background:var(--green-soft);border-radius:10px;padding:2px 5px}.calendar-month-cell.other-month .calendar-date-button{opacity:.38}.calendar-month-cell .calendar-event{margin-top:3px;padding:4px}.calendar-month-cell .calendar-event .task-check{display:none}.calendar-year-view{padding:17px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;background:#f7f8f5}.calendar-year-view>section{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px}.calendar-year-view>section>button{border:0;background:transparent;color:var(--ink);text-transform:capitalize;font-family:Georgia,serif;font-size:15px;padding:2px 4px 8px;cursor:pointer}.calendar-month-view.miniature{min-width:0;height:auto;display:grid;grid-template-rows:20px auto}.miniature .calendar-weekdays span{padding:4px 0;font-size:7px;border:0}.miniature .calendar-month-grid{grid-template-rows:repeat(6,26px)}.miniature .calendar-month-cell{border:0;padding:1px}.miniature .calendar-date-button{height:24px;justify-content:center}.miniature .calendar-date-button>span{font-size:8px;width:21px;height:21px}.miniature .calendar-date-button>i{width:4px;height:4px;padding:0;font-size:0;position:absolute;margin:17px 0 0 15px}.miniature .calendar-month-cell.other-month{background:transparent}
@media(max-width:1100px){.calendar-head{align-items:flex-start}.calendar-actions{flex-wrap:wrap;justify-content:flex-end}.calendar-year-view{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.calendar-head{display:grid;padding:18px}.calendar-actions{justify-content:flex-start}.calendar-view-switch{order:3;width:100%}.calendar-view-switch button{flex:1}.calendar-legend{padding-inline:18px}.calendar-body{height:560px}.calendar-year-view{grid-template-columns:1fr}.calendar-month-view{min-width:620px}}

/* Mitarbeiterverwaltung */
.employee-objects{border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:12px}.employee-objects p{font-size:12px;color:var(--muted);line-height:1.5}.employee-objects>div{max-height:260px;overflow:auto}.employee-objects label{display:flex!important;align-items:center;gap:9px!important;font-weight:500!important}.employee-objects input{width:16px;height:16px;flex:none}.employee-row{width:100%;text-align:left;cursor:pointer;color:var(--ink)}.employee-row small{overflow-wrap:anywhere}#employeeError,#employeeLoginError{color:#a32121;font-size:13px}#employeeLoginForm{padding:24px;min-width:280px}#employeeLoginForm label{display:grid;gap:8px}#employeeLoginForm input{padding:12px;border:1px solid var(--line);border-radius:8px}

/* Gemeinsame Mitarbeiteranmeldung */
body:not(.authenticated)>.sidebar,body:not(.authenticated)>.app-shell,body:not(.authenticated)>.toast{display:none!important}body.authenticated>.login-page{display:none}.login-page{min-height:100dvh;width:100%;display:grid;place-items:center;padding:32px 18px;background:radial-gradient(ellipse at top,#e7eeea,transparent 70%),#f5f5f0}.login-card{width:min(100%,440px);padding:36px;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:0 12px 40px #17382d12}.login-logo{width:112px;height:auto;margin-bottom:30px}.login-card h1{font:32px Georgia,serif;color:var(--ink);margin:10px 0 14px}.login-card p{font-size:14px;line-height:1.5;color:var(--muted)}.login-card .eyebrow{font-size:11px}.login-card form{display:grid;gap:10px;margin-top:25px}.login-card label{font-size:13px;font-weight:700}.login-card input{width:100%;min-height:46px;border:1px solid #cbd7d0;border-radius:8px;padding:12px;font:inherit;margin-bottom:10px}.login-card input:focus{outline:2px solid var(--green-dark);outline-offset:2px}.login-card form p:empty{display:none}.login-card .primary{width:100%;justify-content:center;min-height:46px}.login-card #loginError{color:#a32121;margin:0 0 8px}.login-card .login-help{font-size:12px;margin:24px 0 0}.profile-role{cursor:default}#profileName{font-size:12px;font-weight:650}@media(max-width:600px){.login-card{padding:26px}#profileName{max-width:140px}.top-actions{gap:8px}#logoutButton{padding:9px}}

.environment-label { font-size: .8rem; font-weight: 600; color: #5f070d; }

.contact-delete-button { color: #a52222; border-color: #a52222; }
#contactDeleteHint { color: var(--muted, #596575); font-size: .85rem; line-height: 1.5; }

/* Durchsuchbare Dienstleisterauswahl im Kontext der Servicemeldung. */
.service-contact-tools{display:grid;gap:8px;padding:0 18px 18px}
.service-contact-tools p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.service-contact-tools label{font-size:12px;font-weight:700}
.service-contact-tools input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:12px;background:white;color:var(--ink)}
.service-contact-row{grid-template-columns:minmax(0,1fr) minmax(220px,.6fr)}
.service-contact-row>div{min-width:0;overflow-wrap:anywhere}
.service-contact-trade{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.service-contact-actions button{white-space:normal}
.service-contact-actions button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.service-contact-actions small{line-height:1.5}
.service-contact-tools input:focus-visible,.service-contact-actions button:focus-visible{outline:2px solid var(--green-dark);outline-offset:3px}
@media(max-width:760px){.service-contact-row{grid-template-columns:1fr}}

/* Rechnungsbereich */
.billing-workspace{max-width:1450px}.billing-workspace>.panel{margin-bottom:20px}.billing-form,.billing-filter,.billing-settings{padding:24px}.billing-settings summary{font-weight:750;cursor:pointer}.billing-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;align-items:end;margin:15px 0}.billing-form label,.billing-fields label{display:grid;gap:7px;font-size:12px;font-weight:650}.billing-form input:not([type=checkbox]),.billing-form select,.billing-form textarea,.billing-fields input,.billing-fields select{box-sizing:border-box;width:100%;padding:10px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:white;font:inherit}.billing-form .panel-head{padding:20px 0}.billing-form>p{font-size:12px;line-height:1.6;color:var(--muted)}.billing-table-wrap{overflow:auto;margin:16px 0}.billing-table{width:100%;border-collapse:collapse;text-align:left;min-width:820px}.billing-table th{padding:12px;background:#f0f4f1;font-size:12px}.billing-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top;font-size:12px}.billing-table td:first-child{min-width:270px;width:45%}.billing-table small,.billing-invoice-row small{display:block;margin:6px 0;color:var(--muted)}.billing-table .billing-quantity{min-width:85px}.billing-table .billing-price{min-width:95px}.billing-table textarea{margin-top:6px}.billing-form .billing-confirm,.billing-form .billing-select-all{display:flex;align-items:center;gap:10px;margin:18px 0}.billing-address-hints{border-left:3px solid var(--green-dark);padding:10px 16px;background:#f4f7f4;font-size:12px;line-height:1.6}.billing-invoice-row{display:flex;justify-content:space-between;gap:15px;padding:16px 0;border-bottom:1px solid var(--line)}#billingStatus:not(:empty){padding:14px;background:#fff3e2;border-radius:8px;line-height:1.5}#billingInvoiceDetail{scroll-margin-top:80px}.billing-workspace input:focus-visible,.billing-workspace select:focus-visible{outline:2px solid var(--green-dark);outline-offset:2px}@media(max-width:760px){.billing-form,.billing-filter,.billing-settings{padding:16px}.billing-fields{grid-template-columns:1fr}.billing-invoice-row{align-items:start;flex-direction:column}}
.billing-table td:first-child>label{display:flex;align-items:flex-start;gap:10px}.billing-table td:first-child>label input{flex:0 0 auto;width:auto;margin:2px 0}.billing-table td:nth-child(2){white-space:nowrap}.billing-table .billing-unit{min-width:95px}.billing-table .billing-tax{min-width:76px}
#periodReviewDetail { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--border, #dce5df); }
#periodRuleForm { margin-top: 1.25rem; }
.billing-error { color: #8a1b22; font-weight: 600; }
#periodReviewHistory .hero-actions, #periodRuleList .hero-actions { flex-wrap: wrap; }
#periodReviewHistory .billing-invoice-row, #periodRuleList .billing-invoice-row { gap: 1rem; flex-wrap: wrap; }

.billing-catalog { margin: 1rem 0; padding: 1rem; border: 1px solid var(--border, #dce5e2); border-radius: 12px; }
.billing-catalog-choices { max-height: 250px; overflow-y: auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .65rem; margin: 1rem 0; }
.billing-catalog-choices label { display: flex; align-items: baseline; gap: .5rem; }
.billing-catalog-choices label[hidden] { display: none; }
.billing-catalog-choices input { width: auto; }
[data-billing-manual] input[data-field="title"] { min-width: 240px; }
[data-billing-manual] input[type="date"] { min-width: 145px; }
.route-controls{flex-wrap:wrap}.route-controls input[type="month"]{max-width:180px}.route-matrix input:disabled+span{opacity:.4;cursor:not-allowed}.route-documentation fieldset.route-doc-grid{border:0;padding:0;margin:0;min-width:0}.route-documentation fieldset:disabled{opacity:.65}

/* Aufmaß: Katalog und ausfüllbarer Formularvorschlag. */
.aufmass-entry, .aufmass-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.aufmass-entry { padding:20px; justify-content:space-between; margin-bottom:20px; }
.aufmass-notice { padding:16px; border-left:3px solid #7c2931; background:#faf3f3; line-height:1.6; }
.aufmass-form { display:grid; gap:20px; }
.aufmass-form .panel { padding:24px; }
.aufmass-form h2 { margin-top:0; }
.aufmass-form p { line-height:1.5; color:#655d5e; }
.aufmass-form label:not(.aufmass-toggle):not(.aufmass-file) { display:grid; gap:7px; font-size:13px; }
.aufmass-form input:not([type=checkbox]), .aufmass-form textarea, .aufmass-form select { width:100%; min-width:0; padding:10px; border:1px solid #d4cece; border-radius:6px; font:inherit; background:white; }
.aufmass-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:14px 0; }
.aufmass-service { border:1px solid #ddd5d5; border-radius:8px; margin:8px 0; padding:14px; }
.aufmass-toggle { display:flex; gap:12px; align-items:center; cursor:pointer; }
.aufmass-toggle input { width:20px; height:20px; flex-shrink:0; accent-color:#6b1019; }
.aufmass-toggle small { display:block; color:#75696a; margin-bottom:4px; }
.aufmass-repeat { border-bottom:1px solid #e5dddd; padding-bottom:14px; }
.aufmass-repeat button { align-self:end; justify-self:start; }
.aufmass-file { cursor:pointer; }
.aufmass-file input { display:block; max-width:230px; }
.aufmass-form details { margin-top:16px; }
.aufmass-form summary { cursor:pointer; font-weight:600; }
@media (max-width:650px) { .aufmass-grid { grid-template-columns:1fr; } .aufmass-form .panel { padding:16px; } }
.aufmass-choice { display:grid; gap:12px; align-content:start; min-width:0; }
.aufmass-staff { grid-column:1 / -1; min-width:0; border:1px solid #ddd5d5; border-radius:8px; padding:16px; }
.aufmass-staff > label { max-width:200px; margin-bottom:12px; }
.aufmass-staff-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:12px; align-items:end; margin:12px 0; }
@media (max-width:650px) { .aufmass-staff-row { grid-template-columns:1fr; } }

/* Ticket offers and centrally saved measurements */
.ticket-offer-dialog { width:min(1100px,96vw); max-width:96vw; max-height:94vh; padding:24px; overflow:auto; }
.ticket-offer-dialog > header { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.ticket-offer-dialog > header button { font-size:28px; background:transparent; border:0; cursor:pointer; }
.ticket-offer-dialog .offer-feedback { position:sticky; top:0; z-index:2; background:#fff; color:#650b12; padding:8px; }
.offer-card, .offer-editor { border:1px solid #d7e1dd; border-radius:12px; padding:20px; margin:18px 0; background:#fff; }
.offer-line { padding:16px; background:#f4f7f5; border:1px solid #d7e1dd; border-radius:10px; margin:12px 0; }
.ticket-offer-dialog label { display:flex; flex-direction:column; gap:6px; margin:8px 0; }
.ticket-offer-dialog input, .ticket-offer-dialog select, .ticket-offer-dialog textarea { box-sizing:border-box; width:100%; min-width:0; padding:10px; border:1px solid #cedbd5; border-radius:6px; font:inherit; }
.ticket-offer-dialog input[type=checkbox] { width:auto; align-self:flex-start; }
.ticket-offer-dialog summary { cursor:pointer; padding:12px 0; font-weight:600; }
.ticket-offer-dialog .hero-actions { flex-wrap:wrap; }
.ticket-offer-dialog li { margin:8px 0; overflow-wrap:anywhere; }
@media(max-width:700px) { .ticket-offer-dialog {padding:12px;} .ticket-offer-dialog .form-row {display:grid;grid-template-columns:1fr;} .offer-card,.offer-line {padding:12px;} }
