*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:#050b14;color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.boot{padding:30px}.login{min-height:100vh;background:#000;display:flex;align-items:center;justify-content:center}.login-card{width:min(460px,92vw);background:#111827;border:1px solid #334155;border-radius:22px;padding:30px;box-shadow:0 24px 80px rgba(0,0,0,.7)}.login-card h1{font-size:36px;margin:0 0 18px}.login-card input{width:100%;padding:13px;background:#020617;color:#fff;border:1px solid #64748b;border-radius:10px;margin:6px 0 14px}.layout{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.side{background:#111827;border-right:1px solid #334155;padding:10px;position:sticky;top:0;height:100vh;overflow:auto}.brand{font-size:24px;font-weight:900;margin:5px 0 12px}.userbox{background:#0b2a5b;border-radius:10px;padding:10px;margin-bottom:10px;font-weight:900;line-height:1.35}.nav button{display:block;width:100%;border:0;border-radius:8px;background:#1f2937;color:#fff;text-align:left;font-weight:900;margin:6px 0;padding:10px}.nav button.active{background:#2563eb}.nav button.green{background:#16a34a}.nav button.red{background:#b91c1c;text-align:center}.main{padding:18px;overflow:auto}.main h1{margin:0 0 14px}.btn{border:0;border-radius:8px;background:#2563eb;color:#fff;padding:9px 12px;font-weight:900;margin:2px}.btn.green{background:#16a34a}.btn.red{background:#b91c1c}.btn.gray{background:#475569}.btn.orange{background:#d97706}.btn.purple{background:#7c3aed}.btn.small{font-size:12px;padding:5px 7px}.card{background:#111827;border:1px solid #334155;border-radius:14px;padding:14px;margin:12px 0}.bar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:10px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.kpi{background:#111827;border:1px solid #334155;border-radius:12px;padding:13px}.kpi b{display:block;font-size:24px;margin-top:6px}.ok{background:#052e16;border:2px solid #22c55e;border-radius:10px;padding:10px;margin:10px 0}.warn{background:#450a0a;border:2px solid #ef4444;border-radius:10px;padding:10px;margin:10px 0}.info{background:#0b2a5b;border:1px solid #2563eb;border-radius:10px;padding:10px;margin:10px 0}.yellow{background:#2b210d;border:1px solid #f59e0b;border-radius:10px;padding:10px;margin:10px 0;color:#fde68a}.table-wrap{overflow:auto;border:1px solid #334155;border-radius:12px;max-width:100%}.table{border-collapse:collapse;width:max-content;min-width:100%;font-size:13px}.table th,.table td{border:1px solid #334155;padding:7px;white-space:nowrap;vertical-align:middle}.table th{background:#1e293b;position:sticky;top:0;z-index:1}.table input,.table select,.table textarea,.field{background:#020617;color:#fff;border:1px solid #475569;border-radius:8px;padding:7px;min-width:95px}.table textarea,.field.area{min-height:95px;width:100%}.table input[type=checkbox]{min-width:0;width:20px;height:20px;accent-color:#2563eb}.pill{display:inline-block;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:900;background:#334155;margin:1px}.okp{background:#166534}.warnp{background:#92400e}.badp{background:#991b1b}.bluep{background:#1d4ed8}.month-btn.active{background:#16a34a}.water-card{border-left:8px solid #f59e0b}.water-card.okb{border-left-color:#22c55e}.water-card.badb{border-left-color:#ef4444}.water-val{font-size:24px;font-weight:900}.hide{display:none!important}.mobile-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.mobile-actions .btn{padding:14px}.err{white-space:pre-wrap;background:#7f1d1d;border:2px solid #ef4444;border-radius:12px;padding:14px}textarea{resize:vertical}@media(max-width:900px){body{font-size:14px}.layout{display:block}.side{position:relative;height:auto}.nav{display:grid;grid-template-columns:1fr 1fr;gap:4px}.nav button{margin:0}.main{padding:10px}.table{font-size:12px}.desktop-only{display:none!important}.mobile-first{order:-1}.brand{font-size:22px}.grid{grid-template-columns:1fr 1fr}.kpi b{font-size:19px}}@media(max-width:520px){.grid{grid-template-columns:1fr}.nav{grid-template-columns:1fr}.login-card h1{font-size:28px}.main{padding:8px}.card{padding:10px}.btn{width:100%;margin:3px 0}.bar{display:block}.table th,.table td{padding:5px}}@media print{.side,.no-print,.btn,.bar,input[type=file]{display:none!important}.layout{display:block}.main{padding:0}body{background:#fff;color:#000}.card,.kpi,.table-wrap{border:0;background:#fff;color:#000}.table{font-size:8pt;width:100%;min-width:0}.table th,.table td{border:1px solid #555;color:#000}.table input,.table select,.table textarea{border:0;background:transparent;color:#000;appearance:none;padding:0;min-width:0}.pill{color:#000;border:1px solid #555;background:#fff}}
.wx-week{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0}
.wx-card{background:#111a2a;border:1px solid #284060;border-radius:14px;padding:12px;text-align:center;min-height:150px}
.wx-icon{font-size:36px;line-height:1.1;margin:8px 0}.wx-mini{font-size:24px;text-align:center}.wx-date{font-size:12px;color:#b9c9e2}

/* v1.8 Meteo cockpit */
.wx-cockpit{background:#1d2b38;border:1px solid #3b5062;border-radius:16px;padding:16px;margin:14px 0;box-shadow:0 10px 26px rgba(0,0,0,.25)}
.wx-cockpit-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:10px}
.wx-cockpit-head h2{font-size:28px;margin:0 0 6px}.wx-cockpit-head p{margin:0;color:#d7e4f0}
.wx-cockpit-body{display:grid;grid-template-columns:minmax(480px,1fr) 420px;gap:18px;align-items:stretch}
.wx-chart{background:#172633;border-radius:12px;padding:16px;min-height:270px;position:relative;overflow:hidden}
.wx-chart:before{content:"";position:absolute;left:42px;right:24px;top:80px;bottom:62px;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.16) 0,rgba(255,255,255,.16) 1px,transparent 1px,transparent 38px)}
.wx-chart-title{font-weight:900;font-size:16px;margin-bottom:16px;color:#eef6ff}
.wx-strip{position:relative;z-index:1;display:grid;grid-template-columns:repeat(18,minmax(42px,1fr));gap:8px;align-items:end;min-height:190px;padding:12px 8px 0 8px}
.wx-tick{text-align:center;border-left:1px solid rgba(255,255,255,.08);padding-top:4px}
.wx-tick.major{background:rgba(255,255,255,.04);border-radius:8px}
.wx-tick-label{height:20px;color:#eaf2ff;font-size:12px;font-weight:900}
.wx-tick-icon{font-size:30px;height:42px}
.wx-tick-temp{font-weight:900;color:#fff}.wx-tick-hour{font-size:11px;color:#b8c7d8;margin-top:16px}
.wx-axis{display:flex;justify-content:space-between;color:#aebdca;font-size:12px;margin-top:6px;border-top:2px solid rgba(255,255,255,.25);padding-top:8px}
.wx-list{background:#213240;border-radius:12px;overflow:hidden;border-left:5px solid #f8fafc}
.wx-list-row{display:grid;grid-template-columns:54px 52px 82px 100px 1fr;gap:8px;align-items:center;border-bottom:1px solid rgba(255,255,255,.14);padding:11px 12px}
.wx-list-row.today{background:rgba(255,255,255,.09)}
.wx-list-day{font-size:18px;font-weight:900}.wx-list-icon{font-size:30px}.wx-list-temp span,.wx-list-temp b{display:inline-block;background:#3a5063;padding:4px 7px;border-radius:3px;margin-right:3px}.wx-list-temp b{font-size:18px}
.wx-list-rain{font-weight:900;text-align:right}.wx-list-rain small,.wx-list-level small{color:#d8e1ea}
.wx-temp{font-size:20px;font-weight:900;margin:4px 0}.wx-empty{background:#172633;border:1px solid #3b5062;border-radius:14px;padding:22px;text-align:center;margin:12px 0}
@media(max-width:1100px){.wx-cockpit-body{grid-template-columns:1fr}.wx-list{border-left:0}.wx-strip{grid-template-columns:repeat(9,minmax(54px,1fr));overflow:auto}.wx-tick:nth-child(n+10){display:none}}
@media(max-width:650px){.wx-cockpit{padding:10px}.wx-cockpit-head{display:block}.wx-cockpit-head h2{font-size:20px}.wx-list-row{grid-template-columns:44px 42px 78px 80px 1fr;padding:8px}.wx-chart{min-height:220px}.wx-tick-icon{font-size:24px}.wx-list-day{font-size:15px}}

/* v1.9 MeteoSchweiz look + Pooldata cockpit */
.meteo-panel{background:#1f2f3c;border:1px solid #3c5264;border-radius:14px;padding:22px;margin:18px 0;color:#fff;box-shadow:0 12px 28px rgba(0,0,0,.28)}
.meteo-title-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}
.meteo-title-row h2{font-size:38px;line-height:1.05;margin:0 0 22px;font-weight:900;letter-spacing:.2px}
.meteo-tabs{display:flex;gap:2px}.meteo-tabs span{background:#34495c;padding:15px 24px;font-size:17px;font-weight:800}.meteo-tabs span:first-child{background:#50677a}
.meteo-main{display:grid;grid-template-columns:minmax(650px,1fr) 430px;gap:30px;align-items:stretch}
.meteo-graph{min-height:430px;position:relative}.meteo-switches{display:flex;gap:25px;font-size:20px;margin-bottom:24px;color:#fff}
.graph-area{height:360px;position:relative;background:#20323f;overflow:hidden;border-radius:2px}
.graph-grid{position:absolute;inset:75px 20px 58px 70px;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.18) 0,rgba(255,255,255,.18) 1px,transparent 1px,transparent 40px)}
.graph-icons{position:absolute;left:70px;right:20px;top:44px;bottom:30px}
.graph-tick{position:absolute;top:0;transform:translateX(-50%);text-align:center;width:64px}
.graph-tick.day-start{border-left:2px solid rgba(255,255,255,.42);height:270px}
.graph-day{font-size:12px;height:24px;color:#dbe7f0;font-weight:800}
.graph-symbol{font-size:30px;height:50px;display:flex;align-items:center;justify-content:center}
.graph-hour{font-size:12px;color:#d6e1ea;margin-top:205px}
.temp-svg{position:absolute;left:70px;right:20px;top:75px;width:calc(100% - 90px);height:230px;filter:drop-shadow(0 0 4px rgba(255,87,87,.35))}
.graph-label-left{position:absolute;left:8px;top:165px;writing-mode:vertical-rl;color:#d7e1ea;font-weight:700}
.graph-label-right{position:absolute;right:2px;top:170px;writing-mode:vertical-rl;color:#d7e1ea;font-weight:700}
.meteo-list{background:#2a3d4d;border-left:6px solid #f5f7fb;align-self:start}
.meteo-row{display:grid;grid-template-columns:76px 72px 120px 44px 1fr;align-items:center;gap:8px;min-height:78px;padding:10px 18px;border-bottom:1px solid rgba(255,255,255,.17)}
.meteo-row.today{box-shadow:inset 5px 0 0 #fff;background:#2d4254}
.meteo-day{font-size:25px;font-weight:800}
.meteo-symbol{font-size:42px;text-align:center}
.meteo-temp span{display:inline-block;background:#465d70;border-radius:2px;padding:6px 9px;margin-right:5px;font-size:25px;line-height:1;font-weight:800}
.meteo-drop{font-size:31px;text-align:center}
.meteo-rain b{display:block;font-size:27px;line-height:1.05}.meteo-rain small{display:block;color:#e7eef5;font-size:17px}
.meteo-ki{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.ki-day{background:#172632;border:1px solid #344a5c;border-radius:10px;padding:10px}.ki-day b{display:block;font-size:18px}.ki-day small{display:block;color:#d4e1eb;margin-top:5px}
.pool-cockpit{background:#121c28;border:1px solid #33475d;border-radius:14px;margin:18px 0;padding:16px}.pool-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.pool-head h2{margin:0;font-size:26px}
.pool-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0}.pool-card{position:relative;background:#162334;border:1px solid #31485c;border-left:7px solid #2fbf71;border-radius:10px;padding:14px;min-height:118px}.pool-card.warnc{border-left-color:#f2a51a}.pool-card.crit{border-left-color:#e33434}.pool-card h3{margin:0 0 10px;font-size:18px}.pool-dot{position:absolute;right:12px;top:12px;width:13px;height:13px;background:#2fbf71;border-radius:50%}.pool-card.warnc .pool-dot{background:#f2a51a}.pool-card.crit .pool-dot{background:#e33434}
.pool-values{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pool-values div{background:#0d1724;border-radius:8px;padding:10px}.pool-values small{display:block;color:#9fb0bf;font-weight:900}.pool-values b{font-size:25px;color:#fff}.pool-meta{margin-top:10px;color:#d2dee8;font-weight:800}
@media(max-width:1300px){.meteo-main{grid-template-columns:1fr}.meteo-list{max-width:560px}.pool-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.meteo-panel{padding:12px}.meteo-title-row{display:block}.meteo-title-row h2{font-size:26px}.meteo-tabs span{padding:10px;font-size:13px}.graph-area{height:260px}.meteo-row{grid-template-columns:54px 54px 92px 30px 1fr;min-height:62px;padding:8px}.meteo-day{font-size:18px}.meteo-symbol{font-size:30px}.meteo-temp span{font-size:18px;padding:5px}.meteo-rain b{font-size:20px}.meteo-rain small{font-size:12px}.meteo-ki{grid-template-columns:1fr 1fr}.pool-grid{grid-template-columns:1fr}}

/* v2.0 MeteoSchweiz tile look */
.ms-weather-panel{background:#1f2f3c;border:1px solid #3c5264;border-radius:16px;padding:24px;margin:18px 0;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.28)}
.ms-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.ms-head h2{font-size:28px;font-weight:500;margin:0 0 18px;color:#f5f8fb}.ms-info{font-size:18px;opacity:.85}
.ms-places{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.ms-place-tile{display:inline-grid;grid-template-columns:auto auto auto auto;align-items:center;gap:12px;background:#2b62df;border-radius:999px;padding:0 22px 0 0;min-height:74px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15)}
.ms-place-icon{font-size:58px;margin-left:-52px;line-height:1;filter:drop-shadow(0 2px 1px rgba(0,0,0,.2))}
.ms-place-name{font-size:30px;font-weight:500;white-space:nowrap}
.ms-temp-box{background:#214fbd;padding:10px 16px;border-radius:2px;font-size:30px;line-height:1;font-weight:700}
.ms-forecast{margin-top:18px;background:#243747;border-radius:10px;overflow:hidden;border-left:6px solid #f7fbff}
.ms-forecast-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;background:#1d2c39;border-bottom:1px solid rgba(255,255,255,.15)}
.ms-forecast-head h3{margin:0;font-size:22px}.ms-source{font-size:13px;color:#c8d6e2}
.ms-day-grid{display:grid;grid-template-columns:1fr}
.ms-day-tile{display:grid;grid-template-columns:100px 90px 150px 58px 150px 1fr;align-items:center;gap:14px;min-height:86px;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.18);background:#2a3d4d}
.ms-day-tile.today{box-shadow:inset 6px 0 0 #fff;background:#2e4457}
.ms-day-name{font-size:30px;font-weight:500}
.ms-day-icon{font-size:48px;text-align:center;line-height:1}
.ms-day-temps span{display:inline-block;background:#465f74;padding:8px 12px;margin-right:6px;border-radius:2px;font-size:30px;line-height:1;font-weight:700}
.ms-rain-icon{font-size:34px;text-align:center}
.ms-rain b{display:block;font-size:30px;line-height:1.05;font-weight:500}
.ms-rain small{display:block;font-size:18px;color:#e7eef5}
.ms-level{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.ms-level small{color:#d8e4ee;font-size:14px}
.ms-ki-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}
.ms-ki-card{background:#172632;border:1px solid #344a5c;border-radius:10px;padding:10px}
.ms-ki-card b{display:block;font-size:18px}.ms-ki-card small{display:block;color:#d4e1eb;margin-top:6px}
.ms-empty{background:#172633;border:1px solid #3b5062;border-radius:14px;padding:24px;text-align:center;margin:12px 0}
@media(max-width:1050px){
 .ms-day-tile{grid-template-columns:72px 62px 120px 42px 120px 1fr;gap:8px}
 .ms-day-name{font-size:24px}.ms-day-icon{font-size:38px}.ms-day-temps span{font-size:24px;padding:7px 9px}.ms-rain b{font-size:24px}
 .ms-ki-strip{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
 .ms-weather-panel{padding:12px}.ms-head{display:block}.ms-place-icon{margin-left:-24px;font-size:46px}.ms-place-name{font-size:24px}.ms-temp-box{font-size:22px;padding:8px 10px}
 .ms-day-tile{grid-template-columns:52px 46px 92px 28px 88px;gap:6px;padding:10px;min-height:68px}
 .ms-level{grid-column:1/-1;justify-content:flex-start}
 .ms-day-name{font-size:20px}.ms-day-icon{font-size:31px}.ms-day-temps span{font-size:20px;padding:6px 8px}.ms-rain-icon{font-size:24px}.ms-rain b{font-size:20px}.ms-rain small{font-size:12px}
 .ms-forecast-head{display:block}.ms-ki-strip{grid-template-columns:1fr}
}

/* v2.1 Dashboard Meteo clean: final overrides */
.ms-weather-panel{background:#1e2e3a;border:0;border-radius:0;padding:22px;margin:14px 0 20px;color:#fff;box-shadow:none;width:100%}
.ms-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.ms-head h2{font-size:28px;font-weight:500;margin:0 0 18px;color:#f5f8fb}
.ms-places{display:flex;gap:30px;align-items:center;flex-wrap:wrap;padding-left:56px}
.ms-place-tile{display:inline-grid;grid-template-columns:auto auto auto auto;align-items:center;gap:12px;background:#2d64e2;border-radius:999px;padding:0 20px 0 0;min-height:74px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.18)}
.ms-place-icon{font-size:60px;margin-left:-58px;line-height:1;filter:drop-shadow(0 2px 1px rgba(0,0,0,.2))}
.ms-place-name{font-size:30px;font-weight:500;white-space:nowrap}
.ms-temp-box{background:#204fbf;padding:10px 16px;border-radius:2px;font-size:30px;line-height:1;font-weight:700}
.ms-forecast{margin-top:8px;background:#283b4b;border-radius:0;overflow:hidden;border-left:6px solid #f7fbff;max-width:760px}
.ms-forecast-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;background:#213443;border-bottom:1px solid rgba(255,255,255,.15)}
.ms-forecast-head h3{margin:0;font-size:20px}
.ms-day-grid{display:grid;grid-template-columns:1fr}
.ms-day-tile{display:grid;grid-template-columns:96px 90px 150px 56px 150px 1fr;align-items:center;gap:14px;min-height:86px;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.18);background:#2b3f50}
.ms-day-tile.today{box-shadow:inset 6px 0 0 #fff;background:#304759}
.ms-day-name{font-size:29px;font-weight:500}
.ms-day-icon{font-size:48px;text-align:center;line-height:1}
.ms-day-temps span{display:inline-block;background:#466075;padding:8px 12px;margin-right:6px;border-radius:2px;font-size:29px;line-height:1;font-weight:700}
.ms-rain-icon{font-size:34px;text-align:center}
.ms-rain b{display:block;font-size:29px;line-height:1.05;font-weight:500}
.ms-rain small{display:block;font-size:17px;color:#e7eef5}
.ms-level{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.ms-ki-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}
.wx-week,.wx-card{display:none!important}
@media(max-width:900px){
 .ms-forecast{max-width:none}
 .ms-day-tile{grid-template-columns:70px 58px 118px 38px 112px;gap:8px}
 .ms-level{grid-column:1/-1;justify-content:flex-start}
 .ms-ki-strip{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:650px){
 .ms-weather-panel{padding:12px}.ms-head{display:block}.ms-places{padding-left:30px}.ms-place-icon{font-size:46px;margin-left:-34px}.ms-place-name{font-size:23px}.ms-temp-box{font-size:22px;padding:8px 10px}
 .ms-day-tile{grid-template-columns:50px 44px 88px 26px 82px;gap:5px;padding:9px;min-height:65px}
 .ms-day-name{font-size:19px}.ms-day-icon{font-size:30px}.ms-day-temps span{font-size:19px;padding:6px 7px}.ms-rain-icon{font-size:22px}.ms-rain b{font-size:19px}.ms-rain small{font-size:12px}
 .ms-forecast-head{display:block}.ms-source{font-size:11px}.ms-ki-strip{grid-template-columns:1fr}
}

/* v2.2 Planimport 1:1 */
.plan-import-card{border:1px solid #2f6fed;background:#111b2b;margin-bottom:12px}.plan-import-card h2{margin-top:0}.plan-table th{position:sticky;top:0;z-index:2}.plan-table select,.plan-table input{min-width:135px}.plan-table td:nth-child(3n+1){background:rgba(255,255,255,.015)}

/* v2.3 Dashboard cleaned: no big Meteo block on dashboard */
.dash-weather-compact{margin:14px 0;background:#111d2c;border:1px solid #30445c;border-radius:12px;padding:14px}
.dash-weather-compact h2{margin:0 0 10px}
.dash-weather-row{display:grid;grid-template-columns:repeat(8,minmax(90px,1fr));gap:8px}
.dash-weather-day{background:#182638;border:1px solid #30445c;border-radius:10px;padding:10px;text-align:center}
.dash-weather-day b{display:block;font-size:14px}.dash-weather-day span{display:block;font-size:28px;line-height:1.2}.dash-weather-day small{display:block;color:#cdd9e5;font-size:12px}
@media(max-width:900px){.dash-weather-row{grid-template-columns:repeat(4,1fr)}}
@media(max-width:520px){.dash-weather-row{grid-template-columns:repeat(2,1fr)}}

/* v2.4 Pooldata GCL import */
.pool-values{grid-template-columns:repeat(3,1fr)}

/* v2.5 Buchhaltung/Budget */
.budget-note{background:#132336;border:1px solid #31506f;border-radius:10px;padding:10px;margin:8px 0}

/* v2.6 Buchhaltung / Kontierung */
.invoice-table select{min-width:260px}
.invoice-table small{color:#aebed0}
.kpi small{display:block;color:#aebed0;margin-top:4px;font-size:12px}
.table tr:has(.pill.red), .budget-critical{background:#3a1118}

/* v2.7 Planimport ohne Upload */
.big-textarea{min-height:150px;font-family:Consolas,monospace;white-space:pre;width:100%}.hint{color:#b8c7d8}.table-wrap{max-width:100%;overflow:auto}

/* v2.7.2 Rechte / Mobile */
.hamburger{display:none;background:#2563eb;color:#fff;border:0;border-radius:10px;padding:12px;font-weight:900;width:100%;margin:6px 0}
/* legacy mobile nav disabled in 2.9.6: only .side is controlled in the final mobile block */

/* v2.7.4 planning stability */
.big-textarea{min-height:150px;font-family:Consolas,monospace;white-space:pre;width:100%}
.table-wrap{max-width:100%;overflow:auto}
.table input,.table select{min-width:120px}
.info{background:#082f49;border:1px solid #0ea5e9;border-radius:8px;padding:10px;margin:8px 0;color:#dff6ff}

/* v2.7.5 PDF plan import */
.big-textarea{min-height:170px;font-family:Consolas,monospace;white-space:pre;width:100%}

/* v2.8 KI-Betriebsplanung */
.info{background:#082f49;border:1px solid #0ea5e9;border-radius:8px;padding:10px;margin:8px 0;color:#dff6ff}
.table input,.table select{min-width:125px}

/* v2.8.1 access/security */
.btn.small{padding:6px 8px;font-size:12px}
.info{background:#082f49;border:1px solid #0ea5e9;border-radius:8px;padding:10px;margin:8px 0;color:#dff6ff}

/* v2.8.2 Druck: A4 quer, volle Breite, Wochen bleiben sauber */
@media print{
  @page{size:A4 landscape;margin:6mm}
  html,body{width:297mm;min-height:210mm;background:#fff!important;color:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .side,.no-print,.btn,.bar,input[type=file],textarea{display:none!important}
  .layout{display:block!important}.main{padding:0!important;margin:0!important;overflow:visible!important}
  .card,.table-wrap{border:0!important;background:#fff!important;color:#000!important;margin:0!important;padding:0!important;overflow:visible!important;max-width:none!important}
  .table{width:100%!important;min-width:0!important;font-size:6.8pt!important;border-collapse:collapse!important;table-layout:fixed!important;page-break-inside:auto}
  .table tr{page-break-inside:avoid;break-inside:avoid}.table th,.table td{border:1px solid #555!important;color:#000!important;padding:2px!important;white-space:normal!important;word-break:break-word!important;vertical-align:top!important}
  .table th{background:#e5e7eb!important;position:static!important}.table input,.table select{border:0!important;background:transparent!important;color:#000!important;appearance:none!important;padding:0!important;min-width:0!important;width:100%!important;font-size:6.8pt!important}
}

/* ===== v2.9.5 Mobile App final ===== */
.mobile-top{display:none}.close-menu{display:none}.mobile-backdrop{display:none}
@media(max-width:820px){
  body{font-size:15px;overflow-x:hidden;padding-top:58px}
  .mobile-top{display:flex;position:fixed;top:0;left:0;right:0;height:58px;z-index:10020;background:#0b1220;border-bottom:1px solid #334155;align-items:center;gap:8px;padding:8px}
  .hamburger-btn,.logout-top{border:0;border-radius:10px;color:#fff;font-weight:900;padding:11px 13px}
  .hamburger-btn{background:#2563eb;min-width:92px}.logout-top{background:#b91c1c;margin-left:auto;min-width:82px}
  .mobile-title{font-weight:900;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .layout{display:block!important;min-height:auto!important}
  .side{position:fixed!important;left:-88vw!important;top:0!important;bottom:0!important;width:86vw!important;max-width:340px!important;height:100vh!important;z-index:10030!important;background:#111827!important;border-right:1px solid #334155!important;transition:left .2s ease;overflow:auto!important;padding:10px!important}
  body.mobile-menu-open .side{left:0!important}
  .mobile-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:10025}
  body.mobile-menu-open .mobile-backdrop{display:block}
  .close-menu{display:block;width:100%;border:0;border-radius:10px;background:#475569;color:#fff;font-weight:900;padding:12px;margin-bottom:10px;text-align:center}
  .brand{font-size:20px}.userbox{font-size:14px}
  .nav{display:block!important}.nav button{display:block!important;width:100%!important;margin:6px 0!important;padding:13px 10px!important;text-align:left!important;border-radius:10px!important}
  .nav button.red{text-align:center!important;background:#b91c1c!important}
  .main{margin:0!important;padding:10px!important;width:100%!important;overflow:visible!important}
  .main h1{font-size:22px;margin:8px 0 12px}
  .card{padding:12px;margin:10px 0;border-radius:12px}.grid{grid-template-columns:1fr!important}.kpi b{font-size:21px}
  .bar{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}.btn{width:100%!important;margin:0!important;padding:13px 10px!important}
  .table-wrap{overflow-x:auto!important;border-radius:10px;-webkit-overflow-scrolling:touch}.table{font-size:12px}.table input,.table select{min-width:115px}
  .mobile-first{border:2px solid #2563eb!important;box-shadow:0 0 0 2px rgba(37,99,235,.25)}
}


/* ===== v2.9.6 DESKTOP HARD RESET: Mobile-Menü nur mobil ===== */
@media (min-width:821px){
  body{padding-top:0!important;overflow-x:auto!important}
  .mobile-top,.mobile-backdrop,.close-menu,.hamburger,.hamburger-btn,.logout-top{display:none!important}
  .layout{display:grid!important;grid-template-columns:245px 1fr!important;min-height:100vh!important}
  .side{display:block!important;position:sticky!important;left:auto!important;top:0!important;bottom:auto!important;width:auto!important;max-width:none!important;height:100vh!important;z-index:auto!important;transition:none!important;overflow:auto!important;background:#111827!important;border-right:1px solid #334155!important;padding:10px!important}
  .nav{display:block!important;grid-template-columns:none!important}
  .nav button{display:block!important;width:100%!important;margin:6px 0!important;padding:10px!important;text-align:left!important}
  .nav button.red{text-align:center!important}
  .main{margin:0!important;padding:18px!important;width:auto!important;overflow:auto!important}
  .btn{width:auto!important;margin:2px!important;padding:9px 12px!important}
  .bar{display:flex!important;gap:6px!important;flex-wrap:wrap!important;align-items:center!important}
}

/* v2.11.3 eigene Stempelungen drucken */
@media print{
  body.print-stamps-only .side,
  body.print-stamps-only .mobile-top,
  body.print-stamps-only .mobile-backdrop,
  body.print-stamps-only .no-print,
  body.print-stamps-only .main > *:not(#ownStampPrint){display:none!important;}
  body.print-stamps-only .layout{display:block!important;}
  body.print-stamps-only .main{margin:0!important;padding:0!important;width:100%!important;}
  body.print-stamps-only #ownStampPrint{display:block!important;border:none!important;box-shadow:none!important;color:#000!important;background:#fff!important;}
  body.print-stamps-only table{font-size:9px!important;width:100%!important;border-collapse:collapse!important;}
  body.print-stamps-only th,body.print-stamps-only td{border:1px solid #444!important;color:#000!important;background:#fff!important;padding:3px!important;}
}

/* ===== v2.11.4 A4 Querformat Einsatzplan + Budget-Schutz-Druck ===== */
.print-plan-landscape{margin-top:14px;}
.plan-print-table{font-size:10px;}
.plan-print-table th,.plan-print-table td{vertical-align:top;min-width:68px;}
@media print{
  @page{size:A4 landscape;margin:8mm;}
  body.print-plan-only .side,
  body.print-plan-only .mobile-top,
  body.print-plan-only .mobile-backdrop,
  body.print-plan-only .no-print,
  body.print-plan-only .main > *:not(#fullPlanPrint){display:none!important;}
  body.print-plan-only .layout{display:block!important;}
  body.print-plan-only .main{margin:0!important;padding:0!important;width:100%!important;overflow:visible!important;}
  body.print-plan-only #fullPlanPrint{display:block!important;color:#000!important;background:#fff!important;border:none!important;box-shadow:none!important;}
  body.print-plan-only table{width:100%!important;border-collapse:collapse!important;font-size:7.5px!important;table-layout:fixed!important;}
  body.print-plan-only th,body.print-plan-only td{border:1px solid #333!important;color:#000!important;background:#fff!important;padding:2px!important;word-break:break-word!important;}
  body.print-plan-only h2{color:#000!important;margin:0 0 6px!important;font-size:16px!important;}
  body.print-plan-only small, body.print-plan-only .muted{color:#000!important;font-size:7px!important;}
}

/* ===== v2.12.0 FINAL: Statistik nur SUPERADMIN + PDF/Druck ohne farbige Hintergründe ===== */
@media print{
  @page{size:A4 landscape;margin:8mm;}
  html,body{background:#fff!important;color:#000!important;-webkit-print-color-adjust:economy!important;print-color-adjust:economy!important;}
  *{box-shadow:none!important;text-shadow:none!important;}
  .side,.mobile-top,.mobile-backdrop,.no-print,.btn,.bar,input[type=file],textarea{display:none!important;}
  .layout{display:block!important;}
  .main{margin:0!important;padding:0!important;width:100%!important;overflow:visible!important;background:#fff!important;color:#000!important;}
  .card,.kpi,.table-wrap,.info,.warn,.ok,.yellow,.err,.water-card,.print-card,#fullPlanPrint,#ownStampPrint{background:#fff!important;color:#000!important;border-color:#333!important;box-shadow:none!important;}
  .table,table{border-collapse:collapse!important;width:100%!important;min-width:0!important;background:#fff!important;color:#000!important;}
  .table th,.table td,th,td{background:#fff!important;color:#000!important;border:1px solid #333!important;padding:2px 3px!important;}
  .table th,th{font-weight:900!important;position:static!important;}
  .table input,.table select,.table textarea,input,select,textarea{background:#fff!important;color:#000!important;border:0!important;appearance:none!important;-webkit-appearance:none!important;padding:0!important;box-shadow:none!important;}
  .pill,.okp,.warnp,.badp,.bluep{background:#fff!important;color:#000!important;border:1px solid #333!important;}
  body.print-plan-only table{font-size:7.5px!important;table-layout:fixed!important;}
  body.print-plan-only h2{color:#000!important;background:#fff!important;font-size:16px!important;margin:0 0 6px!important;}
  body.print-stamps-only table{font-size:9px!important;}
}

/* Plan-PDF am Bildschirm darf lesbar bleiben, Druck bleibt weiss */
.plan-role-pro{border-left:4px solid #111!important;}
.plan-role-tech{border-left:4px solid #555!important;}
.plan-role-help{border-left:4px solid #999!important;}
@media print{.plan-role-pro,.plan-role-tech,.plan-role-help{border-left:2px solid #000!important;background:#fff!important;color:#000!important;}}

/* v2.12.2 Mitarbeitende Schnellbearbeitung */
.quick-emp-card{border:2px solid #2563eb;margin-bottom:12px}.quick-grid{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:8px}.quick-grid label{font-weight:700;font-size:12px}.quick-grid input,.quick-grid select{width:100%;margin-top:4px}.perm-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;margin:10px 0;padding:10px;border:1px solid #334155;border-radius:8px}.perm-grid label{font-weight:700;background:#0f172a;padding:8px;border-radius:8px}.table-wrap{overflow:auto}.table th:nth-child(1),.table td:nth-child(1){position:sticky;left:0;z-index:3;background:#111827}.table th:nth-child(2),.table td:nth-child(2){position:sticky;left:90px;z-index:3;background:#111827}.table th:nth-child(3),.table td:nth-child(3){position:sticky;left:220px;z-index:3;background:#111827}.table th:nth-child(4),.table td:nth-child(4){position:sticky;left:360px;z-index:3;background:#111827}
@media(max-width:900px){.quick-grid,.perm-grid{grid-template-columns:1fr 1fr}.table th:nth-child(n),.table td:nth-child(n){position:static}}

/* v2.12.4 foreground notification */
.urgent-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:99999;display:flex;align-items:center;justify-content:center;padding:18px}
.urgent-box{max-width:620px;width:100%;background:#111827;border:3px solid #ef4444;border-radius:18px;padding:24px;box-shadow:0 20px 80px rgba(0,0,0,.55);color:#fff}
.urgent-box h1{font-size:30px;margin:8px 0 16px}.urgent-box p{font-size:18px;line-height:1.45;white-space:normal}.urgent-badge{display:inline-block;background:#ef4444;color:#fff;font-weight:900;padding:8px 12px;border-radius:10px;letter-spacing:.04em}
@media(max-width:820px){.urgent-box{padding:18px}.urgent-box h1{font-size:24px}.urgent-box p{font-size:16px}.urgent-box .bar{display:grid;gap:10px}.urgent-box .btn{width:100%}}

/* v2.12.6 Antwortseite / mobile Push */
.answer-card{border:3px solid #ef4444;border-radius:18px;padding:18px;background:#111827;color:#fff;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.answer-card.okborder{border-color:#22c55e}.answer-card.alertborder{border-color:#ef4444}
.bigbtn{font-size:18px!important;font-weight:900!important;padding:14px 18px!important;border-radius:12px!important}
.urgent-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
@media(max-width:820px){.urgent-actions{display:grid!important;grid-template-columns:1fr!important}.bigbtn{width:100%!important;font-size:19px!important;padding:16px!important}.answer-card{margin:0 -4px;padding:16px}.answer-card h2{font-size:24px}.answer-card p{font-size:17px;line-height:1.45}}

/* v2.12.7 Dashboard-Alarm Schliessung/Absage */
.dash-critical{background:#fff;border:4px solid #b91c1c;border-left-width:14px;color:#7f1d1d;padding:18px 20px;border-radius:14px;margin:0 0 18px 0;box-shadow:0 8px 22px rgba(185,28,28,.20);font-size:16px;line-height:1.45}
.dash-critical b{font-size:20px;display:block;margin-bottom:6px}.dash-critical small{color:#7f1d1d;font-weight:700}
@media(max-width:820px){.dash-critical{position:sticky;top:0;z-index:50;border-width:4px;border-left-width:10px;border-radius:0;margin:-8px -8px 14px -8px;font-size:15px}.dash-critical b{font-size:18px}}

/* v2.12.8 Stempeluhr Statusanzeige */
.clock-panel{border:1px solid #334155;border-radius:16px;padding:12px;background:#0f172a}
.clock-head{display:grid;grid-template-columns:1fr 180px;gap:12px;align-items:center;border-radius:14px;padding:14px;margin-bottom:12px;border:2px solid #475569;background:#111827}
.clock-head small,.clock-timer small{display:block;color:#cbd5e1;font-weight:900;text-transform:uppercase;letter-spacing:.04em;font-size:11px;margin-bottom:5px}
.clock-head span{display:block;color:#e5e7eb;margin-top:7px;font-weight:800}.clock-status-badge{display:inline-block;font-size:30px;line-height:1.05;font-weight:900}.clock-status-badge.in{color:#22c55e}.clock-status-badge.pause{color:#f59e0b}.clock-status-badge.out{color:#ef4444}
.clock-head.in{border-color:#22c55e;background:#052e16}.clock-head.pause{border-color:#f59e0b;background:#451a03}.clock-head.out{border-color:#ef4444;background:#450a0a}
.clock-timer{background:rgba(0,0,0,.22);border-radius:12px;padding:12px;text-align:center}.clock-timer b{font-size:34px;display:block}.clock-actions .btn[disabled]{opacity:.35;cursor:not-allowed;filter:grayscale(1)}
@media(max-width:700px){.clock-head{grid-template-columns:1fr}.clock-status-badge{font-size:26px}.clock-timer b{font-size:30px}.clock-actions .btn{width:100%;padding:13px}}


/* 2.14.1 UI-FIX: Tabellenfelder im Dashboard konsequent dunkel darstellen
   Problem: In hellen Warnboxen wurden einzelne Tabellenzellen weiss geerbt. */
@media screen {
  .table-wrap,
  .table {
    background:#0f172a !important;
    color:#fff !important;
  }
  .table th {
    background:#1e293b !important;
    color:#fff !important;
    border-color:#334155 !important;
  }
  .table td {
    background:#111827 !important;
    color:#fff !important;
    border-color:#334155 !important;
  }
  .table tbody tr:nth-child(even) td {
    background:#0f172a !important;
  }
  .table input,
  .table select,
  .table textarea,
  .field {
    background:#020617 !important;
    color:#fff !important;
    border-color:#475569 !important;
  }
  .dash-critical .table,
  .dash-critical .table th,
  .dash-critical .table td {
    color:#fff !important;
  }
  .dash-critical .table td {
    background:#111827 !important;
  }
  .dash-critical .table tbody tr:nth-child(even) td {
    background:#0f172a !important;
  }
}


/* 2.14.3 UI-FIX: Offene Absagen/Dienständerungen exakt lesbar wie gewünscht.
   Gelbe Tabellenköpfe, weisse/leicht gelbe Felder, schwarze Schrift. */
@media screen {
  .ops-action-card,
  .ops-action-card .table-wrap {
    background:#ffffff !important;
    color:#000000 !important;
  }
  .ops-action-card h1 {
    color:#8b0000 !important;
  }
  .ops-action-card .table,
  .ops-action-card table {
    width:100% !important;
    border-collapse:separate !important;
    border-spacing:0 !important;
    background:#ffffff !important;
    color:#000000 !important;
    border:1px solid #94a3b8 !important;
    border-radius:10px !important;
    overflow:hidden !important;
  }
  .ops-action-card .table th,
  .ops-action-card table th {
    background:#ffd91a !important;
    color:#000000 !important;
    font-weight:900 !important;
    border:1px solid #94a3b8 !important;
    padding:12px 10px !important;
  }
  .ops-action-card .table td,
  .ops-action-card table td {
    background:#ffffff !important;
    color:#000000 !important;
    border:1px solid #cbd5e1 !important;
    padding:14px 10px !important;
    font-weight:600 !important;
  }
  .ops-action-card .table tbody tr:nth-child(even) td,
  .ops-action-card table tbody tr:nth-child(even) td {
    background:#fffbea !important;
    color:#000000 !important;
  }
  .ops-action-card .table td b,
  .ops-action-card table td b {
    color:#000000 !important;
    font-weight:900 !important;
  }
  .ops-action-card p {
    background:#ffffff !important;
    color:#000000 !important;
    font-size:15px !important;
    line-height:1.35 !important;
  }

  .swap-admin-card .table th,
  .swap-admin-card table th {
    background:#ffd91a !important;
    color:#000000 !important;
    font-weight:900 !important;
    border-color:#94a3b8 !important;
  }
  .swap-admin-card .table td,
  .swap-admin-card table td {
    background:#ffffff !important;
    color:#000000 !important;
    border-color:#cbd5e1 !important;
  }
  .swap-admin-card .table tbody tr:nth-child(even) td,
  .swap-admin-card table tbody tr:nth-child(even) td {
    background:#fffbea !important;
    color:#000000 !important;
  }
}


/* 2.14.4 HARD UI-FIX: Aktionstabellen gelb/weiss, schwarze Schrift. Überschreibt auch Sticky-Spalten. */
@media screen {
  .ops-action-card{background:#ffffff!important;color:#000000!important;border:3px solid #c00000!important;border-radius:14px!important;padding:18px!important;}
  .ops-action-card *{color:#000000!important;}
  .ops-action-card h1{color:#8b0000!important;background:#ffffff!important;}
  .ops-action-card .table-wrap{background:#ffffff!important;color:#000000!important;overflow:auto!important;border-radius:10px!important;}
  .ops-action-card table.table,
  .ops-action-card .table{background:#ffffff!important;color:#000000!important;border-collapse:collapse!important;width:100%!important;}
  .ops-action-card table.table thead tr th,
  .ops-action-card table.table tr th,
  .ops-action-card .table tr th,
  .ops-action-card .table th,
  .ops-action-card th,
  .ops-action-card .table th:nth-child(n),
  .ops-action-card table th:nth-child(n){
    background:#ffd91a!important;color:#000000!important;border:1px solid #94a3b8!important;font-weight:900!important;padding:12px 10px!important;position:static!important;left:auto!important;z-index:auto!important;
  }
  .ops-action-card table.table tbody tr td,
  .ops-action-card table.table tr td,
  .ops-action-card .table tr td,
  .ops-action-card .table td,
  .ops-action-card td,
  .ops-action-card .table td:nth-child(n),
  .ops-action-card table td:nth-child(n){
    background:#ffffff!important;color:#000000!important;border:1px solid #cbd5e1!important;font-weight:650!important;padding:14px 10px!important;position:static!important;left:auto!important;z-index:auto!important;
  }
  .ops-action-card table.table tbody tr:nth-child(even) td,
  .ops-action-card .table tbody tr:nth-child(even) td,
  .ops-action-card table tbody tr:nth-child(even) td:nth-child(n){background:#fffbea!important;color:#000000!important;}
  .ops-action-card b{color:#000000!important;font-weight:900!important;}
  .ops-action-card p{background:#ffffff!important;color:#000000!important;padding:12px 0 0 0!important;margin:0!important;}
  .ops-action-card .btn{background:#2563eb!important;color:#ffffff!important;border:0!important;}

  .swap-admin-card .table-wrap{background:#0f172a!important;}
  .swap-admin-card table.table th,
  .swap-admin-card .table th,
  .swap-admin-card th,
  .swap-admin-card .table th:nth-child(n),
  .swap-admin-card table th:nth-child(n){background:#ffd91a!important;color:#000000!important;border:1px solid #94a3b8!important;font-weight:900!important;position:static!important;left:auto!important;z-index:auto!important;}
  .swap-admin-card table.table td,
  .swap-admin-card .table td,
  .swap-admin-card td,
  .swap-admin-card .table td:nth-child(n),
  .swap-admin-card table td:nth-child(n){background:#ffffff!important;color:#000000!important;border:1px solid #cbd5e1!important;position:static!important;left:auto!important;z-index:auto!important;}
  .swap-admin-card table tbody tr:nth-child(even) td,
  .swap-admin-card .table tbody tr:nth-child(even) td{background:#fffbea!important;color:#000000!important;}
}

/* 2.14.18 Wasserwerte Sollwerte Mobile */
.water-targets{border:2px solid #facc15;background:#fff7cc;color:#111827}.water-targets .table th{background:#facc15;color:#111827}.water-targets .table td{background:#fff;color:#111827}.yellow{background:#fff7cc!important;color:#111827!important;border:1px solid #facc15!important;border-radius:12px;padding:12px;margin:8px 0}.field::placeholder{color:#111827;opacity:.85}@media(max-width:820px){.water-targets .table{font-size:13px}.water-targets h2{font-size:20px}.grid{grid-template-columns:1fr!important}.field{font-size:16px!important}}

/* v2.14.19 Budget einfach */
.simple-invoice-card .grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.simple-budget-table th{background:#ffd800!important;color:#000!important;font-weight:900!important}
.simple-budget-table td{background:#fff!important;color:#000!important;border-color:#9aa6b2!important}
.simple-budget-table input,.simple-budget-table select{background:#fff!important;color:#000!important;border:1px solid #64748b!important;border-radius:6px;padding:7px}
.simple-invoice-card input,.simple-invoice-card select{font-size:15px;min-height:42px}

/* v2.14.27 Mobile eigene Seiten: Frischwasser + Wasser-Sollwerte */
.mobile-white-card{background:#fff!important;color:#111!important;border:2px solid #22c55e;border-radius:18px;padding:18px;margin:14px 0;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.mobile-white-card h2,.mobile-white-card h3,.mobile-white-card p,.mobile-white-card small,.mobile-white-card span,.mobile-white-card b{color:#111!important}
.muted-dark{color:#334155!important;font-size:16px;line-height:1.35}.visitor-input-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.visitor-input-row input{font-size:22px;padding:14px;border:2px solid #111;border-radius:12px;max-width:260px;width:100%;background:#fff;color:#111}.freshwater-formula{background:#fff7cc;color:#111;border:1px solid #eab308;border-radius:12px;padding:12px;margin:12px 0;font-size:16px}.freshwater-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.freshwater-grid>div{background:#f8fafc!important;border:1px solid #cbd5e1;border-radius:14px;padding:14px;color:#111}.freshwater-grid small{display:block;color:#475569!important}.freshwater-grid b{display:block;font-size:22px;margin-top:5px}.measure-times{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.measure-times div,.target-list div{background:#f8fafc;border:1px solid #cbd5e1;border-radius:14px;padding:14px;margin:8px 0;color:#111}.measure-times b,.target-list b{display:block;font-size:20px}.measure-times span,.target-list span{display:block;color:#334155!important;margin-top:6px;line-height:1.35}
@media(max-width:760px){.mobile-white-card{margin:16px 0;padding:18px}.freshwater-grid{grid-template-columns:1fr}.visitor-input-row .btn{width:100%;font-size:20px;padding:14px}.target-list div{font-size:17px}.measure-times b,.target-list b{font-size:21px}}

/* v2.14.28 Planbarkeit / KI Einsatzplanung */
.availability-table th{position:sticky;top:0;z-index:2;background:#ffd91a!important;color:#000!important}
.availability-table th:first-child{left:0;z-index:3}
.availability-table td,.availability-table th{min-width:88px;text-align:center}
.availability-table td:first-child,.availability-table th:first-child{position:sticky;left:0;background:#111b2b;color:#fff;min-width:160px}
.availability-table select{width:100%;min-width:82px;font-size:12px;padding:4px;border-radius:6px;background:#fff;color:#000;border:1px solid #667085}
.btn.orange{background:#f59e0b;color:#111;font-weight:800}

/* === v2.14.35 REAL: Besucher/Frischwasser hell-beige, Rest dunkel lassen === */
body.theme-beige-page {
  background:#07111f !important;
}
body.theme-beige-page main.main,
body.theme-beige-page #main {
  background:linear-gradient(180deg,#fffaf0 0%,#fff7e6 100%) !important;
  color:#111827 !important;
}
body.theme-beige-page #main h1,
body.theme-beige-page #main h2,
body.theme-beige-page #main h3,
body.theme-beige-page #main p,
body.theme-beige-page #main b,
body.theme-beige-page #main small,
body.theme-beige-page #main label,
body.theme-beige-page #main span,
body.theme-beige-page #main div {
  color:#111827;
}
body.theme-beige-page #main .card,
body.theme-beige-page #main .visitor-card,
body.theme-beige-page #main .ops-action-card,
body.theme-beige-page #main .kpi {
  background:#ffffff !important;
  color:#111827 !important;
  border:1px solid #ead7b7 !important;
  box-shadow:0 3px 14px rgba(120,80,20,.10) !important;
}
body.theme-beige-page #main .card[style],
body.theme-beige-page #main .ops-action-card[style] {
  background:#ffffff !important;
  color:#111827 !important;
}
body.theme-beige-page #main .grid > div,
body.theme-beige-page #main .freshwater-grid > div {
  background:#ffffff !important;
  color:#111827 !important;
  border:1px solid #ead7b7 !important;
}
body.theme-beige-page #main .info,
body.theme-beige-page #main .yellow,
body.theme-beige-page #main .freshwater-formula {
  background:#eaf5ff !important;
  color:#111827 !important;
  border:1px solid #bfdbfe !important;
}
body.theme-beige-page #main input,
body.theme-beige-page #main select,
body.theme-beige-page #main textarea,
body.theme-beige-page #main .field {
  background:#ffffff !important;
  color:#111827 !important;
  border:1px solid #64748b !important;
}
body.theme-beige-page #main table,
body.theme-beige-page #main .table {
  background:#ffffff !important;
  color:#111827 !important;
  border-collapse:collapse !important;
}
body.theme-beige-page #main table th,
body.theme-beige-page #main .table th,
body.theme-beige-page #main table th:nth-child(n),
body.theme-beige-page #main .table th:nth-child(n) {
  background:#ffd91a !important;
  color:#000000 !important;
  border:1px solid #d6b800 !important;
  font-weight:900 !important;
  position:static !important;
  left:auto !important;
  z-index:auto !important;
}
body.theme-beige-page #main table td,
body.theme-beige-page #main .table td,
body.theme-beige-page #main table td:nth-child(n),
body.theme-beige-page #main .table td:nth-child(n) {
  background:#ffffff !important;
  color:#111827 !important;
  border:1px solid #d8dee7 !important;
  position:static !important;
  left:auto !important;
  z-index:auto !important;
}
body.theme-beige-page #main table tr:nth-child(even) td,
body.theme-beige-page #main .table tr:nth-child(even) td {
  background:#fffbea !important;
  color:#111827 !important;
}
body.theme-beige-page #main .dash-critical,
body.theme-beige-page #main .warning,
body.theme-beige-page #main .alert,
body.theme-beige-page #main .redbox {
  background:#ffffff !important;
  color:#111827 !important;
  border:2px solid #dc2626 !important;
}
body.theme-beige-page #main .btn,
body.theme-beige-page #main button.btn {
  color:#ffffff !important;
}
body.theme-beige-page #main .btn.gray,
body.theme-beige-page #main button.gray {
  background:#475569 !important;
  color:#ffffff !important;
}

/* === v2.14.37 REAL: Mobile Mitarbeitermodus + nächster Einsatz === */
.mobile-employee-main .card{border-radius:18px;margin:14px 0;padding:20px;border:1px solid #334155;}
.mobile-next-shift{border:3px solid #22c55e!important;background:#071c29!important;color:#fff!important;}
.mobile-next-shift h1{font-size:30px;margin:0 0 16px;color:#fff!important;}
.next-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.next-grid>div,.next-note{background:#0f172a;border:1px solid #334155;border-radius:14px;padding:12px;}
.next-grid small,.next-note small{display:block;color:#cbd5e1!important;font-size:14px;margin-bottom:4px;}
.next-grid b,.next-note b{display:block;color:#fff!important;font-size:19px;line-height:1.25;}
.empty-next{font-size:20px;color:#e2e8f0;background:#0f172a;border-radius:14px;padding:16px;}
.mobile-stamp-panel{border:2px solid #2563eb!important;}
.mobile-stamp-panel h2,.mobile-plan-panel h2,.mobile-actions h2{font-size:26px;margin:0 0 14px;color:#fff!important;}
.mobile-quick-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0;}
.mobile-quick-buttons .btn{width:100%;font-size:18px;padding:14px;border-radius:12px;}
.mobile-own-plan th{background:#1e293b!important;color:#fff!important;}
.mobile-own-plan td{font-size:16px;vertical-align:top;}
@media(max-width:760px){.mobile-employee-main{padding:10px!important}.next-grid{grid-template-columns:1fr}.mobile-next-shift h1{font-size:34px}.mobile-quick-buttons{grid-template-columns:1fr}.mobile-quick-buttons .btn{font-size:22px;padding:18px}.mobile-own-plan th,.mobile-own-plan td{font-size:16px}.mobile-stamp-panel .bar{display:grid;grid-template-columns:1fr;gap:10px}.mobile-stamp-panel .btn{font-size:22px;padding:18px;width:100%;}}

/* ===== v2.14.38 Saubere Einsatzplanung wie Excel ===== */
.sg-plan-print{background:#fff;color:#111;border:1px solid #d1d5db;border-radius:10px;padding:14px;margin:12px 0;overflow:auto}
.sg-plan-title{font-size:24px;font-weight:900;margin:0 0 12px;color:#111}
.sg-month-table{width:100%;min-width:1180px;border-collapse:collapse;table-layout:fixed;background:#fff;color:#111}
.sg-month-table th,.sg-month-table td{border:1px solid #4b5563;padding:5px 3px;text-align:center;vertical-align:middle;font-size:12px;line-height:1.12;word-break:break-word}
.sg-month-table th{background:#e5e7eb;color:#111;font-weight:900;position:sticky;top:0;z-index:1}.sg-month-table th small{display:block;font-size:10px;color:#111}.sg-month-table .sg-left{position:sticky;left:0;z-index:2;text-align:left;font-weight:900;width:220px;background:#f3f4f6;color:#111}.sg-month-table td small{display:block;font-size:10px;color:#374151;margin-top:2px}.sg-pro td{background:#eaf5ff}.sg-tech td{background:#fff7df}.sg-pool td{background:#efffed}.sg-helper td{background:#f8f0ff}.sg-cash td{background:#fff0f0}.sg-note td{background:#fafafa}.sg-day-edit{border:1px solid #334155;border-radius:10px;margin:8px 0;background:#0f172a}.sg-day-edit summary{cursor:pointer;padding:12px;display:flex;justify-content:space-between;gap:10px}.sg-day-grid{display:grid;grid-template-columns:1fr;gap:8px;padding:10px}.sg-shift-edit{display:grid;grid-template-columns:34px 1fr 1fr 140px;gap:8px;align-items:center}.sg-shift-edit select,.sg-shift-edit input,.sg-day-grid select{min-width:0;width:100%}
@media(max-width:820px){.sg-plan-print{padding:8px}.sg-month-table{min-width:1050px}.sg-month-table th,.sg-month-table td{font-size:11px;padding:4px 2px}.sg-month-table .sg-left{width:170px}.sg-shift-edit{grid-template-columns:28px 1fr;}.sg-shift-edit input{grid-column:2}}
@media print{.no-print,.side,.mobile-top,.mobile-backdrop,.bar,.card:not(.sg-plan-print),textarea,input[type=file],button{display:none!important}.layout{display:block!important}.main{margin:0!important;padding:0!important;background:#fff!important}.sg-plan-print{display:block!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important;overflow:visible!important}.sg-plan-title{font-size:22pt!important;margin:0 0 7mm!important}.sg-month-table{min-width:0!important;width:100%!important;table-layout:fixed!important}.sg-month-table th,.sg-month-table td{font-size:10pt!important;padding:4px 3px!important;color:#000!important;border:1px solid #333!important;line-height:1.12!important;overflow-wrap:anywhere!important}.sg-month-table td small{font-size:7.2pt!important;color:#000!important}.sg-month-table .sg-left{position:static!important;width:48mm!important;background:#f3f4f6!important}.sg-month-table th{position:static!important;background:#e5e7eb!important}@page{size:A3 landscape;margin:7mm}html,body{background:#fff!important;color:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* v2.14.53 volle Namen im Monatsplan */
.sg-fullname{font-weight:900;font-size:12px;line-height:1.12;white-space:normal;overflow-wrap:anywhere;color:#111;}
@media print{.sg-fullname{font-size:8.5pt!important;font-weight:900!important;line-height:1.05!important;color:#000!important}.sg-month-table td small{font-size:6.8pt!important}}


/* === BADI 2.14.56 PRINT SAFETY === */
@media print {
  html, body { margin:0 !important; padding:0 !important; background:#fff !important; }
  nav, aside, .sidebar, .no-print, button, input, textarea, select { }
  .print-empty, .empty-print-page { display:none !important; }
  table { page-break-inside:auto; }
  tr { page-break-inside:avoid; page-break-after:auto; }
}

/* 2.16.00 Excel-Saisonplan */
.xl-plan{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff}
.xl-plan th,.xl-plan td{border:1px solid #1f2937;padding:6px;vertical-align:top;font-size:12px;line-height:1.2}
.xl-plan th{background:#e5e7eb;color:#111;font-weight:800;text-align:center}
.xl-slot{border-bottom:1px solid #d1d5db;margin-bottom:5px;padding-bottom:4px}
.xl-slot:last-child{border-bottom:0}
.xl-slot b{display:block;font-weight:900;color:#111}
.xl-slot span{display:block;font-weight:800;color:#111}
.xl-slot small{display:block;color:#374151}
.xl-slot em{display:block;font-style:normal;color:#111;font-size:11px}
.xl-plan .sum{font-weight:900;background:#f9fafb}
@media print{.xl-plan th,.xl-plan td{font-size:8pt;padding:1mm}.xl-slot b{font-size:8pt}.xl-slot small{font-size:6.5pt}}

/* 2.16.01 Excel-Saisonplan */
.xl-plan{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff}
.xl-plan th,.xl-plan td{border:1px solid #1f2937;padding:6px;vertical-align:top;font-size:12px;line-height:1.2}
.xl-plan th{background:#e5e7eb;color:#111;font-weight:800;text-align:center}
.xl-slot{border-bottom:1px solid #d1d5db;margin-bottom:5px;padding-bottom:4px}
.xl-slot:last-child{border-bottom:0}.xl-slot b{display:block;font-weight:900;color:#111}.xl-slot span{display:block;font-weight:800;color:#111}.xl-slot small{display:block;color:#374151}.xl-slot em{display:block;font-style:normal;color:#111;font-size:11px}.xl-plan .sum{font-weight:900;background:#f9fafb}

/* 2.16.02 */
.xl-plan th,.xl-plan td{font-size:12px}.xl-plan .sum{font-weight:900;background:#fafafa}
