
/* RELEASE 2.5.0 — BACKEND READY, PWA & BETRIEBSZENTRALE */
.offline-page{min-height:100vh;background:#090909;color:#fff;display:grid;place-items:center;padding:40px}
.offline-page section{max-width:850px}
.offline-page h1{font-size:clamp(4rem,10vw,8rem);line-height:.9;letter-spacing:-.06em}
.offline-page h1 em{font-style:normal;color:#df3540}
.offline-page p{color:rgba(255,255,255,.65);font-size:1.1rem;line-height:1.7;max-width:650px}
.offline-page section>div{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}

.ops-app{min-height:100vh;background:#eeeae5;color:#151515;display:grid;grid-template-columns:270px 1fr;font-family:Inter,Arial,sans-serif}
.ops-sidebar{background:#0b0b0b;color:#fff;padding:28px 20px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:50}
.ops-brand{color:#fff;text-decoration:none;padding:0 8px 24px;border-bottom:1px solid rgba(255,255,255,.12)}
.ops-brand img{width:180px;max-width:100%}.ops-brand span{display:block;margin-top:10px;color:rgba(255,255,255,.48);font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;font-weight:900}
.ops-sidebar nav{display:grid;gap:6px;margin-top:25px}
.ops-sidebar nav button{border:0;border-left:3px solid transparent;background:transparent;color:rgba(255,255,255,.65);padding:13px 14px;text-align:left;font:inherit;font-weight:800;cursor:pointer}
.ops-sidebar nav button:hover,.ops-sidebar nav button.active{background:rgba(255,255,255,.07);color:#fff;border-left-color:#d62f38}
.ops-side-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:18px 10px 0;display:grid;gap:7px}
.ops-side-foot span{font-size:.61rem;text-transform:uppercase;letter-spacing:.13em;color:#d62f38;font-weight:900}
.ops-side-foot strong{font-size:.8rem}.ops-side-foot a{color:#d62f38;text-decoration:none;font-size:.75rem;font-weight:800}
.ops-main{min-width:0}.ops-topbar{height:82px;background:#fff;border-bottom:1px solid rgba(0,0,0,.1);display:flex;justify-content:space-between;align-items:center;padding:0 35px;position:sticky;top:0;z-index:30}
.ops-topbar>div:first-of-type{display:grid;gap:3px}.ops-topbar span{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:#a91f25;font-weight:900}
.ops-actions{display:flex;gap:8px}.ops-actions button,.ops-primary{border:1px solid rgba(0,0,0,.12);background:#fff;padding:11px 14px;font:inherit;font-weight:850;cursor:pointer}
.ops-actions .ops-primary,.ops-primary{background:#a91f25;color:#fff;border-color:#a91f25}
.ops-menu{display:none}
.ops-content{padding:42px;max-width:1550px;margin:0 auto}.ops-view{display:none}.ops-view.active{display:block}
.ops-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:28px}
.ops-heading p{margin:0;color:#a91f25;font-size:.64rem;text-transform:uppercase;letter-spacing:.13em;font-weight:900}
.ops-heading h1{font-size:clamp(2.5rem,5vw,5rem);line-height:.94;letter-spacing:-.055em;margin:8px 0 0}
.ops-heading>span{color:#716a63;font-weight:750}
.ops-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
.ops-stats article,.ops-card,.ops-table-card,.ops-object-grid article{background:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 15px 40px rgba(0,0,0,.035)}
.ops-stats article{padding:22px;display:grid;gap:8px}.ops-stats span{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:#746d66;font-weight:900}.ops-stats strong{font-size:2.3rem}.ops-stats small{color:#746d66}
.ops-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.ops-card{padding:27px}.ops-card.wide{min-width:0}
.ops-card-head{display:flex;justify-content:space-between;gap:18px;align-items:start;margin-bottom:20px}.ops-card-head span{font-size:.61rem;text-transform:uppercase;letter-spacing:.12em;color:#a91f25;font-weight:900}.ops-card-head h2{font-size:1.55rem;margin:6px 0 0}.ops-card-head button,.ops-card-head a{border:0;background:none;color:#a91f25;text-decoration:none;font-weight:850;cursor:pointer}
.ops-ticket-mini{display:grid;grid-template-columns:130px 1fr;gap:5px 15px;width:100%;padding:15px 0;border:0;border-top:1px solid rgba(0,0,0,.1);background:#fff;text-align:left;font:inherit;cursor:pointer}.ops-ticket-mini strong{align-self:center}.ops-ticket-mini small{grid-column:2;color:#746d66}
.ops-job-mini{display:grid;grid-template-columns:70px 1fr;gap:4px 14px;padding:15px 0;border-top:1px solid rgba(0,0,0,.1)}.ops-job-mini strong{grid-row:1/3;font-size:1.2rem}.ops-job-mini small{color:#746d66}
.ops-status{display:inline-flex;width:max-content;padding:6px 8px;border-radius:999px;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.ops-status.neu{background:#ececec;color:#555}.ops-status.bearbeitung,.ops-status.warning,.ops-status.geplant{background:#fff0d8;color:#a45e00}.ops-status.erledigt,.ops-status.ok{background:#e4f3eb;color:#167649}
.ops-filterbar{display:flex;gap:10px;margin-bottom:14px}.ops-filterbar input,.ops-filterbar select{padding:13px;border:1px solid rgba(0,0,0,.14);background:#fff;font:inherit}.ops-filterbar input{flex:1}
.ops-table-card{overflow:hidden}.ops-table{overflow-x:auto}.ops-row{display:grid;grid-template-columns:145px 1.2fr 1fr 130px 110px;gap:16px;align-items:center;padding:17px 20px;border-top:1px solid rgba(0,0,0,.1);min-width:900px}.ops-row small{display:block;color:#746d66;margin-top:4px}.ops-row button{border:0;background:#111;color:#fff;padding:9px 10px;font-weight:800}.ops-head{background:#111;color:#fff;border:0;font-size:.61rem;text-transform:uppercase;letter-spacing:.11em;font-weight:900}.contact-table .ops-row{grid-template-columns:1fr 1fr 1fr 1.2fr}
.ops-object-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ops-object-grid article{padding:27px}.ops-object-grid article>span{font-size:.61rem;text-transform:uppercase;letter-spacing:.12em;color:#a91f25;font-weight:900}.ops-object-grid h2{font-size:1.65rem}.ops-object-grid p{color:#746d66}.ops-object-grid dl{margin-top:24px}.ops-object-grid dl div{display:flex;justify-content:space-between;border-top:1px solid rgba(0,0,0,.1);padding:10px 0}.ops-object-grid dd{margin:0;font-weight:750}
.ops-schedule{display:grid;gap:10px}.ops-schedule article{background:#fff;border:1px solid rgba(0,0,0,.1);display:grid;grid-template-columns:150px 1fr;gap:25px;padding:23px}.ops-schedule time{font-size:.8rem;color:#746d66}.ops-schedule time strong{display:block;font-size:1.8rem;color:#111;margin-top:6px}.ops-schedule h2{margin:9px 0 5px}.ops-schedule p{margin:0;color:#746d66}
.ops-system-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.ops-system-grid .ops-card h2{margin-top:18px}.ops-system-grid .ops-card p{color:#746d66;line-height:1.65}.ops-api-card{margin-top:14px}.ops-api-card pre{background:#111;color:#e9e4de;padding:22px;overflow:auto;line-height:1.7}
.ops-empty{padding:20px;color:#746d66}.ops-overlay{display:none}
.ops-modal[hidden]{display:none}.ops-modal{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:100;display:grid;place-items:center;padding:20px}.ops-dialog{background:#fff;width:min(620px,100%);padding:35px;position:relative}.ops-dialog>button{position:absolute;right:15px;top:10px;border:0;background:none;font-size:2rem}.ops-dialog>span{font-size:.61rem;text-transform:uppercase;letter-spacing:.12em;color:#a91f25;font-weight:900}.ops-dialog h2{font-size:2.2rem;letter-spacing:-.04em}.ops-dialog form{display:grid;gap:14px}.ops-dialog label{display:grid;gap:7px}.ops-dialog label span{font-size:.61rem;text-transform:uppercase;letter-spacing:.11em;font-weight:850}.ops-dialog input,.ops-dialog select{padding:13px;border:1px solid rgba(0,0,0,.15);font:inherit}
.ops-toast{position:fixed;right:25px;bottom:25px;background:#111;color:#fff;padding:14px 18px;z-index:150;transform:translateY(120px);opacity:0;transition:.25s}.ops-toast.show{transform:none;opacity:1}
@media(max-width:1100px){.ops-stats{grid-template-columns:repeat(2,1fr)}.ops-grid{grid-template-columns:1fr}.ops-object-grid{grid-template-columns:1fr}}
@media(max-width:800px){.ops-app{grid-template-columns:1fr}.ops-sidebar{position:fixed;left:0;transform:translateX(-102%);transition:.25s;width:270px}.ops-app.menu-open .ops-sidebar{transform:none}.ops-app.menu-open .ops-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:40}.ops-menu{display:block;border:0;background:#111;color:#fff;width:40px;height:40px}.ops-topbar{padding:0 16px}.ops-actions button:first-child{display:none}.ops-content{padding:28px 18px}.ops-heading{align-items:flex-start;flex-direction:column}.ops-stats{grid-template-columns:1fr}.ops-system-grid{grid-template-columns:1fr}.ops-schedule article{grid-template-columns:100px 1fr}}
