:root{--fb-blue:#008bd2;--fb-blue-dark:#006aa6;--fb-header:#0b76b8;--fb-line:#c9c9c9;--fb-bg:#f2f2f0;--fb-nav:#f4f4f2;--fb-text:#303943;--fb-link:#0075bd;--ok:#55aa4f;--warn:#e1a021;--bad:#cf4242;--panel:#fff;--muted:#6e7479}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Segoe UI",Arial,sans-serif;color:var(--fb-text);background:var(--fb-bg);line-height:1.42}button,input,select{font:inherit}button{cursor:pointer}a{color:var(--fb-link)}.hidden{display:none!important}
/* Launcher / assignments */
.topbar{background:#0b76b8;color:#fff;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-size:1.25rem;font-weight:700}.brand small{display:block;font-size:.76rem;font-weight:400;opacity:.85}.top-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:0;border-radius:3px;padding:9px 14px;background:#0788cf;color:#fff;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn:hover{background:#006fae}.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.65)}.hero{max-width:1100px;margin:34px auto 22px;padding:0 20px}.hero-card{background:#fff;border:1px solid #c9c9c9;border-top:6px solid var(--fb-blue);padding:30px;box-shadow:0 2px 8px rgba(0,0,0,.08)}.hero h1{font-weight:400;font-size:clamp(2rem,5vw,3rem);margin:0 0 12px;color:#1c4f70}.hero p{max-width:800px;font-size:1.06rem}.launch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px}.launch-card{border:1px solid #c8c8c8;background:#fafafa;padding:22px;text-decoration:none;color:inherit}.launch-card:hover{background:#f2f8fc;border-color:#65aeda}.launch-card h2{color:#0879bb;font-weight:500}.launch-card .num{width:35px;height:35px;border-radius:50%;background:#0788cf;color:white;display:grid;place-items:center;font-weight:700}.muted{color:#68737c}.info-strip{max-width:1100px;margin:0 auto 34px;padding:0 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.info-strip>div{background:#fff;border:1px solid #c9c9c9;padding:15px}.info-strip strong{display:block;color:#0b6fa8;margin-bottom:4px}.footer{padding:22px;text-align:center;color:#68737c}.assignment-wrap{max-width:1000px;margin:25px auto;padding:0 20px 50px}.assignment-header,.task{background:#fff;border:1px solid #c9c9c9;border-top:4px solid var(--fb-blue);padding:22px;margin:15px 0}.assignment-header h1,.task h2{font-weight:500;color:#205f84}.task-number{display:inline-grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--fb-blue);color:#fff;font-weight:700;margin-right:7px}.meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.meta div{border:1px solid #ccc;padding:9px}.answer{height:70px;border-bottom:1px dotted #999;margin:10px 0}.checkbox-line{display:flex;gap:8px;align-items:flex-start;margin:5px 0}.check{width:16px;height:16px;border:1px solid #777;margin-top:3px;flex:none}
/* Router shell */
.router-ui{background:#efefed}.fritz-header{height:64px;background:linear-gradient(#0c78b9,#0870ad);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 34px 0 42px}.fritz-brand{display:flex;align-items:center;gap:14px;font-size:1.45rem}.fritz-brand small{display:block;font-size:.72rem;font-weight:400;opacity:.85}.rl-diamond{width:64px;height:64px;background:#f3d313;color:#d10b1c;border:2px solid #222;transform:rotate(45deg);display:grid;place-items:center;font-weight:900;font-size:1.35rem;text-shadow:1px 1px #fff;box-shadow:0 1px 2px #222}.rl-diamond>*{transform:rotate(-45deg)}.rl-diamond.small{width:44px;height:44px;font-size:1rem}.fritz-brand .rl-diamond{transform:rotate(45deg) scale(.78)}.header-links{display:flex;align-items:center;gap:28px}.header-links a,.link-button{color:#fff;text-decoration:none;background:none;border:0;padding:0}.header-links a:hover,.link-button:hover{text-decoration:underline}.kebab{font-size:1.7rem}.blue-strip{height:46px;background:linear-gradient(90deg,#1199dd,#0686ca);color:#fff;padding-left:282px;display:flex;align-items:center;justify-content:space-between;padding-right:34px;font-size:1.05rem}.sim-pill{font-size:.7rem;border:1px solid rgba(255,255,255,.65);padding:2px 8px;border-radius:2px;letter-spacing:.08em}.fritz-layout{display:grid;grid-template-columns:250px minmax(0,1fr);max-width:1440px;margin:0 auto;min-height:calc(100vh - 145px);background:#fff}.fritz-nav{background:linear-gradient(90deg,#f9f9f7,#efefec);border-right:1px solid #c9c9c9;padding:12px 0 20px}.fnav{width:100%;text-align:left;border:0;background:transparent;padding:9px 20px;color:#343b42;font-size:1rem;display:flex;align-items:center;gap:10px}.fnav:hover{background:#e7f4fb}.fnav.active{background:linear-gradient(90deg,#009ee6,#0789cc);color:#fff}.fnav .ico{width:22px;text-align:center;color:#65737c;font-size:1.05rem}.fnav.active .ico{color:#fff}.group-toggle .chev{margin-left:auto}.subnav{display:none}.subnav.open{display:block}.fnav.sub{padding-left:52px;font-size:.93rem}.fnav.nav-link{text-decoration:none}.fritz-content{padding:22px 28px 44px;min-width:0;background:#fff}.rpanel{display:none}.rpanel.active{display:block}.rpanel>h1{font-size:1.48rem;font-weight:400;color:#4c5760;margin:0 0 13px}.model-line{display:flex;justify-content:space-between;gap:20px;margin:2px 0 18px;color:#555}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 34px}.fbox{margin:0 0 22px}.fbox h2{font-size:1.05rem;font-weight:500;color:#fff;background:linear-gradient(90deg,#078dd0 0,#078dd0 46%,transparent 46%);border-bottom:2px solid #078dd0;margin:0 0 10px;padding:3px 8px}.fbox h2 small{font-weight:400}.status-list{display:grid;gap:8px;padding:2px 8px}.status-row{display:grid;grid-template-columns:18px minmax(110px,.45fr) 1fr;gap:8px;align-items:start}.status-list.compact .status-row{grid-template-columns:18px minmax(140px,.55fr) 1fr}.dot{width:10px;height:10px;border-radius:50%;background:#aaa;margin-top:6px}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.bad{background:var(--bad)}.status-row .name{color:#1577bb}.tabbar{border-bottom:1px solid #aaa;margin:0 0 18px;display:flex;gap:2px}.tabbar span{padding:7px 12px;background:#eee;border:1px solid #ccc;border-bottom:0}.tabbar .active{background:#fff;color:#0878b7;border-top:3px solid #078fd0;padding-top:5px}.form-classic{display:grid;gap:12px 20px;padding:5px 8px}.form-classic.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-classic.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-classic.four{grid-template-columns:2fr 1.5fr 1fr 1fr}.form-classic label,.classic-label{display:flex;flex-direction:column;gap:5px;font-size:.93rem}.form-classic input,.form-classic select,.login-body input,.event-filter select{border:1px solid #9ea9b1;background:#fff;padding:7px 8px;min-height:34px;border-radius:2px}.form-classic input:focus,.form-classic select:focus,.login-body input:focus{outline:2px solid #7ac6eb;outline-offset:1px}.hint{font-size:.88rem;color:#69727a;margin:6px 8px 12px}.check-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;margin:8px}.inline-check{margin-top:27px}.button-row{display:flex;justify-content:flex-end;gap:9px;padding:12px 8px 0;flex-wrap:wrap}.classic-primary,.classic-secondary,.classic-danger{border:1px solid #727c82;border-radius:2px;padding:7px 15px;background:linear-gradient(#fff,#dedede);color:#29333a}.classic-primary{background:linear-gradient(#18a5e7,#0787c8);border-color:#0578b3;color:#fff}.classic-danger{background:linear-gradient(#ef6c6c,#c83b3b);border-color:#a72f2f;color:#fff}.wide{width:100%;font-size:1rem;padding:10px}.classic-message{margin:12px 8px;padding:9px 11px;border-left:4px solid #2b86bb;background:#eef8fd}.classic-message.success{border-color:#5aa750;background:#f1faef}.classic-message.warn{border-color:#e0a024;background:#fff8e8}.classic-message.error{border-color:#ca3b3b;background:#fff0f0}.kv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 20px;padding:5px 8px}.kv-grid>div{display:flex;justify-content:space-between;border-bottom:1px dotted #c7c7c7;padding:5px 0;gap:12px}.classic-table{width:100%;border-collapse:collapse;font-size:.92rem}.classic-table th{background:#e9e9e7;font-weight:600;text-align:left}.classic-table th,.classic-table td{border-bottom:1px solid #d0d0d0;padding:7px 8px;vertical-align:middle}.classic-table button{padding:4px 9px}.badge{display:inline-block;padding:2px 7px;border-radius:8px;font-size:.76rem;background:#e4e4e4}.badge.ok{background:#e5f4e3;color:#2b7226}.badge.warn{background:#fff1d3;color:#875900}.badge.bad{background:#f9dddd;color:#8b2626}.traffic-chart{display:flex;height:180px;border-left:1px solid #777;border-bottom:1px solid #777;margin:12px 18px 8px;position:relative;background:repeating-linear-gradient(to top,#f3f8fb 0,#f3f8fb 44px,#dce8ef 45px)}.chart-scale{width:52px;margin-left:-57px;display:flex;flex-direction:column;justify-content:space-between;font-size:.75rem;color:#666;align-items:flex-end;padding-right:6px}.chart-area{position:relative;flex:1;overflow:hidden}.download-fill,.upload-fill{position:absolute;bottom:0;left:0;width:100%;transition:height .6s;opacity:.45}.download-fill{background:#118bce;height:30%}.upload-fill{background:#69aa4f;height:10%;width:70%;right:0;left:auto}.legend{display:flex;gap:28px;padding:0 18px}.mesh-map{display:flex;align-items:center;justify-content:center;gap:0;padding:28px}.mesh-node{border:2px solid #78a7bf;background:#f2faff;padding:16px 22px;text-align:center;min-width:170px}.mesh-node.master{border-color:#078bcf}.mesh-line{height:4px;width:110px;background:#6ba8c7}.meter{height:16px;background:#e4e4e4;border:1px solid #bbb;margin:12px 8px 5px}.meter span{display:block;height:100%;background:#0b91d4;width:32%}.smart-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:8px}.smart-card{border:1px solid #c8c8c8;background:#fafafa;padding:14px}.smart-card h3{margin:0 0 7px;color:#1279b6;font-weight:500}.smart-card .temp{font-size:1.5rem}.diag-results{display:grid;gap:8px;padding:12px 8px}.diag-item{padding:9px 10px;border-left:4px solid #5aa750;background:#f3faf1}.diag-item.warn{border-color:#dfa022;background:#fff8e8}.diag-item.bad{border-color:#c83c3c;background:#fff0f0}.event-filter{display:flex;justify-content:space-between;gap:10px;padding:0 8px 10px}.file-label{display:inline-flex;align-items:center}.file-label input{display:none}.fritz-footer{height:35px;border-top:1px solid #c8c8c8;background:#f4f4f2;display:flex;justify-content:center;align-items:center;gap:16px;font-size:.8rem;color:#66717a}.fritz-footer a{text-decoration:none}
/* Login */
.login-screen{position:fixed;inset:0;background:rgba(237,237,234,.97);z-index:9999;display:grid;place-items:center;padding:20px}.login-shell{width:min(470px,96vw);background:#fff;border:1px solid #aaa;box-shadow:0 12px 42px rgba(0,0,0,.24)}.router-login-head{height:104px;background:linear-gradient(#0b83c5,#0777b6);color:#fff;display:flex;align-items:center;gap:26px;padding:0 30px;font-size:1.45rem}.router-login-head span{display:block;font-size:.82rem;font-weight:400;opacity:.9}.login-body{padding:27px 38px 30px}.login-body h1{font-size:1.32rem;font-weight:500;margin-top:0}.password-row{display:flex}.password-row input{flex:1}.icon-button{width:42px;border:1px solid #9ea9b1;border-left:0;background:#eee}.device-label{margin-top:18px;border-top:1px solid #ddd;padding-top:12px;font-size:.9rem}.device-label summary{color:#0877b7;cursor:pointer}.device-label div{margin-top:9px;background:#f6f6f4;border:1px solid #ccc;padding:10px}.sim-note{font-size:.78rem;color:#70777c;border-top:1px solid #ddd;padding-top:12px;margin-bottom:0}
@media(max-width:950px){.fritz-layout{grid-template-columns:1fr}.fritz-nav{display:flex;overflow-x:auto;border-bottom:1px solid #bbb;padding:0}.fnav{min-width:max-content;padding:10px 13px}.subnav{display:flex!important}.fnav.sub{padding-left:13px}.group-toggle{display:none}.blue-strip{padding-left:18px}.overview-grid{grid-template-columns:1fr}.form-classic.four,.form-classic.three{grid-template-columns:repeat(2,1fr)}.header-links{gap:12px}.fritz-header{padding:0 15px}.fritz-brand{font-size:1.05rem}}
@media(max-width:650px){.form-classic.two,.form-classic.three,.form-classic.four,.kv-grid,.smart-grid,.launch-grid,.info-strip,.meta{grid-template-columns:1fr}.fritz-content{padding:16px 12px 35px}.header-links a{display:none}.overview-grid{gap:10px}.model-line{flex-direction:column;gap:3px}.fbox h2{background:linear-gradient(90deg,#078dd0 0,#078dd0 80%,transparent 80%)}.status-row,.status-list.compact .status-row{grid-template-columns:15px 115px 1fr}.router-login-head{padding:0 20px}.login-body{padding:24px 20px}.fritz-brand .rl-diamond{display:none}.form-classic span{display:none}}
@media print{body{background:#fff}.topbar,.no-print,.fritz-header,.blue-strip,.fritz-nav,.fritz-footer,.button-row{display:none!important}.assignment-wrap{max-width:none;margin:0;padding:0}.assignment-header,.task{box-shadow:none;break-inside:avoid}.answer{height:85px}@page{size:A4;margin:14mm}}

/* RouterLab V3: Virtuelles Haus */
.lab-body{background:#e9eef2;color:#2d3740}.lab-wrap{max-width:1600px;margin:0 auto;padding:18px}.lab-toolbar{background:#fff;border:1px solid #c6d0d7;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 16px;margin-bottom:14px}.lab-toolbar select{padding:7px;margin-left:10px;min-width:260px}.btn.small{padding:7px 10px;font-size:.86rem}.lab-status{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.lab-status>span{display:flex;align-items:center;gap:6px}.lab-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:16px}.world-panel,.inspector-panel{background:#fff;border:1px solid #c6d0d7}.world-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid #d6dde2}.world-head h1{margin:0;font-size:1.35rem;color:#177eb7}.world-head p{margin:4px 0 0;color:#687781}.internet-zone{background:linear-gradient(#e9f5ff,#dceefa);min-height:125px;padding:12px 15px;border-bottom:1px solid #a8c8dc}.zone-title{font-weight:700;color:#276c94;margin-bottom:9px}.router-strip{display:grid;grid-template-columns:1.3fr 1.8fr 1fr;gap:12px;align-items:center;background:#edf0f2;padding:13px 16px;border-top:1px solid #fff;border-bottom:1px solid #bbb}.router-appliance{display:flex;align-items:center;gap:10px}.router-appliance span,.usb-device span{display:block;font-size:.78rem;color:#5e6a72}.router-icon{font-size:2.2rem}.router-ports{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.port{background:#29343b;color:#fff;border-radius:2px;padding:6px;text-align:center;font-size:.75rem;min-width:0}.port span{display:block;color:#c6eaff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usb-device{background:#fff;border:1px solid #bac3c8;padding:8px}.house-plan{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(205px,auto);background:#b4b8ad;gap:8px;padding:8px}.room{background:#fbfaf4;border:4px solid #6c6c67;padding:9px;position:relative;min-height:205px}.room.garden{background:#edf7e5}.room h2{font-size:.93rem;margin:0 0 7px;color:#5d6468;font-weight:600;border-bottom:1px solid #d3d3cd;padding-bottom:5px}.devices{display:flex;flex-wrap:wrap;gap:7px;align-content:flex-start;min-height:65px}.device-card{border:1px solid #aebac1;background:#fff;display:flex;gap:7px;align-items:center;text-align:left;padding:7px 8px;width:190px;max-width:100%;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.06);position:relative}.device-card:hover{border-color:#078bcf;background:#f3fbff}.device-card.offline{opacity:.78}.device-card.has-issue{border-left:4px solid #d19a1b}.dev-icon{font-size:1.6rem}.dev-main{min-width:0;display:flex;flex-direction:column}.dev-main b,.dev-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-main small{font-size:.7rem;color:#69767e}.dev-led{width:8px;height:8px;border-radius:50%;background:#aaa;position:absolute;right:6px;top:6px}.dev-led.on{background:#58a84e;box-shadow:0 0 5px #58a84e}.inspector-panel{padding:14px;min-height:700px}.inspector-panel h2{font-size:1rem;color:#147daf;border-bottom:2px solid #168fca;padding-bottom:4px}.topology{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.84rem}.topo-node{border:1px solid #aaa;padding:7px;text-align:center;background:#f8f8f6}.topo-node.up{border-left:4px solid #56a54e}.topo-node.down{border-left:4px solid #c64a43}.topo-line{text-align:center}.topo-branch,.topo-empty{padding:4px 0}.topo-branch small{color:#62727a}.mini-log{font-size:.78rem}.mini-log>div{display:grid;grid-template-columns:62px 1fr;gap:5px;padding:5px 0;border-bottom:1px solid #e2e4e5}.mini-log time{color:#777}.packet-panel{margin-top:18px}.packet{border-left:4px solid #5da650;background:#f1f8ef;padding:6px 8px;margin-bottom:6px;display:grid;font-size:.76rem}.packet.bad{border-color:#c94a44;background:#fff1f0}.packet span{font-family:ui-monospace,monospace}.packet small{color:#617078}.device-modal{position:fixed;inset:0;background:rgba(19,34,44,.62);z-index:10000;display:grid;place-items:center;padding:24px}.device-window{background:#fff;width:min(900px,96vw);max-height:92vh;overflow:auto;box-shadow:0 16px 48px rgba(0,0,0,.35);border:1px solid #62737d;position:relative}.modal-close{position:absolute;right:11px;top:9px;border:0;background:transparent;font-size:2rem;color:#fff;z-index:2;cursor:pointer}.device-head{background:linear-gradient(#108ccf,#057dbd);color:#fff;padding:20px 58px 18px 22px;display:flex;gap:15px;align-items:center}.device-head h1{margin:0;font-size:1.4rem}.device-head p{margin:4px 0 0;font-size:.84rem}.dev-big{font-size:2.6rem}.device-tabs{display:flex;background:#e8ecee;border-bottom:1px solid #b4bec4;overflow:auto}.device-tabs button{border:0;border-right:1px solid #c5ced3;background:transparent;padding:10px 15px}.device-tabs button.active{background:#fff;color:#087dbb;font-weight:700;border-top:3px solid #078dce;padding-top:7px}.device-pane{padding:18px 22px 25px}.facts{display:grid;grid-template-columns:150px 1fr;gap:7px 12px;border:1px solid #ccd4d8;padding:12px;margin-bottom:14px}.facts span{color:#65747d}.device-message{padding:9px;border-left:4px solid #c79b22;background:#fff7e6;margin-bottom:15px}.device-message.success{border-color:#5aa750;background:#f2faef}.connect-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.connect-box{border:1px solid #c9d1d5;padding:12px}.connect-box h3{margin-top:0;color:#1479ad}.connect-box label{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.connect-box input,.connect-box select{padding:7px;border:1px solid #9da9af}.wifi-list{display:grid;gap:5px;margin-bottom:10px}.wifi-option{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;padding:7px;background:#f4f6f7;border:1px solid #ddd}.wifi-option span{display:flex;flex-direction:column}.wifi-option small{color:#60717b}.button-row.left{justify-content:flex-start}.browser{border:1px solid #9da9af;background:#f2f2f2}.browser-bar{display:flex;padding:7px;gap:5px;background:#dfe5e8}.browser-bar input{flex:1;padding:7px;border:1px solid #9da9af}.browser-bar button,.browser-shortcuts button{padding:7px;border:1px solid #a8b2b8;background:#fff}.browser-shortcuts{display:flex;flex-wrap:wrap;gap:5px;padding:7px;border-top:1px solid #bcc6cb}.browser-page{min-height:280px;background:#fff;padding:24px}.browser-page.ok{border-top:4px solid #5aa750}.browser-page.bad{border-top:4px solid #c74c45}.browser-page pre{white-space:pre-wrap;font-family:inherit}.share-list{display:grid;gap:10px}.share-card{border:1px solid #c7d0d4;padding:12px}.share-card h3{margin:0 0 5px;color:#147db3}.share-card details{margin:8px 0}.file-item{padding:3px 0 3px 20px}.terminal-output{background:#0c1114;color:#d7e4ea;font-family:Consolas,monospace;white-space:pre-wrap;min-height:300px;max-height:430px;overflow:auto;padding:14px}.terminal-input{display:flex;background:#141a1e;color:#fff;padding:8px;align-items:center;gap:8px}.terminal-input input{flex:1;background:#0c1114;color:#e7f2f7;border:1px solid #53636b;padding:7px}.terminal-input button{padding:7px}.print-job{padding:8px;border-bottom:1px solid #ddd}.hidden{display:none!important}
@media(max-width:1100px){.lab-grid{grid-template-columns:1fr}.inspector-panel{min-height:auto}.house-plan{grid-template-columns:repeat(2,1fr)}.router-strip{grid-template-columns:1fr}.lab-toolbar{align-items:flex-start;flex-direction:column}.lab-status{gap:10px}}
@media(max-width:650px){.house-plan{grid-template-columns:1fr}.connect-grid{grid-template-columns:1fr}.facts{grid-template-columns:1fr}.router-ports{grid-template-columns:repeat(2,1fr)}.lab-toolbar select{display:block;margin:6px 0;min-width:0;width:100%}}

.launch-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.launch-grid.three{grid-template-columns:1fr}}

/* V3.1: richer virtual house and router */
.world-panel{overflow:hidden;background:#eef3f5}.internet-zone{position:relative;background:linear-gradient(180deg,#dff3ff 0,#edf8ff 75%,#d7e8ef 100%);min-height:145px;border-bottom:0}.internet-zone:before{content:none!important}.router-zone{position:relative;min-height:240px;background:linear-gradient(180deg,#e9eef1,#dce3e7);display:flex;align-items:center;justify-content:center;padding:28px 24px 24px;border-top:1px solid #c5d3da;border-bottom:1px solid #aebbc2}.wan-cable{position:absolute;left:25px;top:50%;display:flex;align-items:center;gap:10px;color:#497080;font-size:.78rem;font-weight:700}.wan-cable i{display:block;width:110px;height:4px;background:#75b7d6;box-shadow:0 1px 0 #fff}.router-device{width:min(760px,82%);min-height:168px;position:relative;display:grid;grid-template-columns:1.2fr .9fr;border-radius:30px 30px 20px 20px;background:linear-gradient(155deg,#fbfbfb 0,#e7e9eb 40%,#cfd3d6 100%);border:2px solid #aeb4b7;box-shadow:0 16px 28px rgba(35,53,63,.22),inset 0 1px 1px #fff;z-index:2}.router-device:after{content:"";position:absolute;left:7%;right:7%;bottom:-11px;height:13px;background:#9aa1a5;border-radius:0 0 30px 30px;filter:blur(.2px)}.router-face{padding:24px 26px 18px;position:relative}.router-logo{font-size:1.7rem;font-weight:900;font-style:italic;color:#d61624;letter-spacing:-.06em;text-shadow:0 1px #fff}.router-logo span{color:#197fb6}.router-model{font-size:.75rem;color:#657078;margin:2px 0 18px}.router-led-row{display:flex;gap:14px;flex-wrap:wrap;font-size:.68rem;color:#5f686d}.router-led-row span{display:flex;align-items:center;gap:4px}.router-led-row i{width:9px;height:9px;border-radius:50%;background:#a7aeb1;box-shadow:inset 0 1px 2px #7b8387}.router-led-row i.on{background:#55b858;box-shadow:0 0 8px rgba(78,184,83,.85)}.router-live{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;margin-top:14px;font-size:.74rem;color:#46545c}.router-live b{grid-column:1/-1;color:#1f6f98}.router-back{border-left:1px solid #b8c0c4;padding:18px 20px;background:rgba(239,242,243,.65);border-radius:0 28px 18px 0}.router-back-title{text-transform:uppercase;letter-spacing:.12em;font-size:.63rem;color:#69757b;margin-bottom:9px}.router-ports{grid-template-columns:repeat(2,1fr)}.router-ports .port{position:relative;border-radius:4px;background:linear-gradient(#37444a,#202a2f);box-shadow:inset 0 0 0 2px #13191c;padding:8px 5px}.router-ports .port:before{content:"";display:block;width:22px;height:8px;background:#d5b33e;margin:0 auto 3px;border-radius:1px}.usb-device{margin-top:8px;border-radius:4px;background:#f7f8f8}.router-antenna{position:absolute;top:-38px;width:12px;height:64px;background:linear-gradient(90deg,#b8bec1,#f2f3f3,#9fa6aa);border:1px solid #949da1;border-radius:8px;transform-origin:bottom}.router-antenna.left{left:45px;transform:rotate(-18deg)}.router-antenna.right{right:45px;transform:rotate(18deg)}.wifi-waves{position:absolute;right:5%;top:20px;width:100px;height:100px;opacity:.32}.wifi-waves span{position:absolute;right:0;bottom:0;border:3px solid #0b8ac8;border-left-color:transparent;border-bottom-color:transparent;border-radius:0 100% 0 0;transform:rotate(-45deg)}.wifi-waves span:nth-child(1){width:28px;height:28px}.wifi-waves span:nth-child(2){width:55px;height:55px}.wifi-waves span:nth-child(3){width:82px;height:82px}.house-plan{position:relative;background:#6d7770;gap:10px;padding:10px;grid-auto-rows:minmax(230px,auto)}.house-plan:before{content:"HAUSNETZ";position:absolute;right:14px;top:12px;font-size:.62rem;letter-spacing:.25em;color:rgba(255,255,255,.55);z-index:1}.room{overflow:hidden;border:5px solid #626864;border-radius:2px;background:linear-gradient(135deg,#fffef7,#f5f1e3);box-shadow:inset 0 0 24px rgba(90,77,55,.06);padding:12px;min-height:230px}.room:after{content:"";position:absolute;right:-12px;bottom:24px;width:36px;height:70px;border:4px solid #9b8065;border-right:0;background:#e7d5bb;opacity:.55}.room:nth-child(2){background:linear-gradient(135deg,#fffaf7,#f1e7df)}.room:nth-child(3){background:linear-gradient(135deg,#f7fbff,#eaf3f9)}.room:nth-child(4){background:linear-gradient(135deg,#fffdf0,#f3ebce)}.room:nth-child(5){background:linear-gradient(135deg,#faf5ff,#eee5f6)}.room.garden{background:linear-gradient(180deg,#eaf6df,#d9efca)}.room.garden:before{content:"";position:absolute;inset:auto 0 0;height:28%;background:repeating-linear-gradient(100deg,rgba(57,137,54,.08) 0 4px,transparent 4px 10px)}.room h2{position:relative;z-index:2;background:rgba(255,255,255,.66);display:inline-block;padding:4px 8px;border:1px solid rgba(130,140,140,.25);border-radius:3px;margin-bottom:10px}.devices{position:relative;z-index:3}.device-card{border-radius:6px;box-shadow:0 3px 8px rgba(35,52,61,.09);transition:transform .12s,border-color .12s,box-shadow .12s}.device-card:hover{transform:translateY(-2px);box-shadow:0 7px 16px rgba(35,52,61,.15)}.device-card.connected{background:linear-gradient(#fff,#f4fbf3)}.device-card.offline{background:linear-gradient(#fff,#f2f3f3)}.browser-page{padding:0;min-height:360px;overflow:hidden}.browser-render{min-height:360px;background:#fff}.fake-site-head{background:#143c67;color:#fff;padding:18px 24px;display:flex;align-items:center;justify-content:space-between}.fake-site-head strong{font-size:1.25rem}.fake-site-nav{display:flex;gap:15px;font-size:.82rem;opacity:.92}.fake-hero{padding:34px 28px;background:linear-gradient(120deg,#eaf3fa,#fff)}.fake-hero h2{font-size:1.75rem;margin:0 0 8px;color:#183a59}.fake-content{padding:22px 28px;display:grid;grid-template-columns:2fr 1fr;gap:22px}.fake-news{border-top:4px solid #2a84bd;background:#f5f8fa;padding:14px}.fake-search{display:grid;place-items:center;min-height:355px;background:#fbfbfb}.fake-search-box{width:min(560px,80%);text-align:center}.fake-search-logo{font-size:2.1rem;font-weight:700;letter-spacing:-.08em;color:#2780b6}.fake-search-box input{width:100%;margin:20px 0 10px;padding:13px;border:1px solid #b9c3c8;border-radius:22px}.device-web{padding:24px}.device-web .device-web-head{display:flex;align-items:center;gap:13px;border-bottom:1px solid #d8dfe2;padding-bottom:13px;margin-bottom:16px}.device-web .bigicon{font-size:2.6rem}.real-web-wrap{position:relative;min-height:380px;background:#fff}.real-web-note{padding:9px 12px;background:#fff5d8;border-bottom:1px solid #d8c99a;font-size:.78rem}.real-web-frame{width:100%;height:420px;border:0;background:#fff}.real-web-fallback{padding:16px 20px}.sync-indicator{font-size:.72rem;color:#547381;background:#edf6fa;border:1px solid #c1d9e5;padding:4px 8px;border-radius:12px}
@media(max-width:800px){.router-device{width:96%;grid-template-columns:1fr}.router-back{border-left:0;border-top:1px solid #b8c0c4;border-radius:0 0 18px 18px}.wan-cable{display:none}.router-zone{padding-top:50px}.router-live{grid-template-columns:1fr}.fake-content{grid-template-columns:1fr}}

/* RouterLab V3.2: echte Registerkarten */
.tabbar{display:flex;gap:0;border-bottom:1px solid #aeb8be;margin:4px 0 16px;background:#eef1f3;overflow-x:auto}
.tabbar button{appearance:none;border:0;border-right:1px solid #c2c9cd;background:transparent;color:#3f4c54;padding:10px 15px;font:inherit;cursor:pointer;white-space:nowrap}
.tabbar button:hover{background:#f8fbfc;color:#087ab7}
.tabbar button.active{background:#fff;color:#087ab7;font-weight:700;border-top:3px solid #078dce;padding-top:7px}
.tab-pane{display:none}
.tab-pane.active{display:block}
.form-classic textarea,.classic-label textarea{width:100%;box-sizing:border-box;border:1px solid #9ea9b1;padding:8px;font:inherit;resize:vertical;background:#fff}

/* RouterLab V3.5 refinements */
.tabbar{border-bottom:0!important;background:transparent!important;align-items:flex-end;gap:4px;margin-bottom:18px}
.tabbar button{appearance:none;border:1px solid #c7cdd1;border-bottom:1px solid #c7cdd1;background:linear-gradient(#f8f8f8,#eceeed);color:#48545c;padding:8px 14px;border-radius:3px 3px 0 0;box-shadow:none;min-height:35px}
.tabbar button:hover{background:#f5fbfe;color:#0878b7;border-color:#9dc9df}
.tabbar button.active{background:#fff;color:#0878b7;border-color:#8fbfd6;border-top:3px solid #078fd0;border-bottom-color:#fff;padding-top:6px;position:relative;z-index:2}
.tab-pane{border-top:1px solid #cbd5da;padding-top:14px;margin-top:-19px}
.tab-pane.active{display:block}

.vpn-profile-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start;padding:12px 8px}
.vpn-qr-wrap{text-align:center;border:1px solid #cbd3d8;background:#fff;padding:16px}
.vpn-qr-wrap canvas{max-width:100%;height:auto;image-rendering:pixelated;border:10px solid #fff;box-shadow:0 1px 8px rgba(0,0,0,.08)}
.vpn-qr-wrap p{margin:8px 0 2px}.vpn-qr-wrap small{color:#67737b}
.vpn-config-details{margin-top:14px;border:1px solid #ccd4d8;background:#f8fafb;padding:10px}
.vpn-config-details summary{cursor:pointer;color:#0878b7;font-weight:600}
.vpn-config-details pre{white-space:pre-wrap;overflow:auto;background:#111a20;color:#d8edf7;padding:12px;font:12px/1.45 Consolas,monospace}
.vpn-device-pane .phone-vpn-visual{display:flex;align-items:center;gap:18px;border:1px solid #d4dce0;background:#f8fbfc;padding:16px;margin-bottom:14px}
.vpn-device-pane .phone-vpn-visual h3{margin:0 0 5px;color:#1479ad}
.vpn-app-card{display:flex;align-items:center;gap:12px;border:1px solid #c7d0d5;background:#f7f8f9;padding:14px;margin-bottom:15px;border-radius:10px}.vpn-app-card.connected{background:#edf8ec;border-color:#8dbd88}.vpn-app-icon{width:45px;height:45px;border-radius:12px;background:#1d262d;color:#fff;display:grid;place-items:center;font-weight:800}.vpn-app-card div:nth-child(2){display:flex;flex-direction:column;flex:1}.vpn-app-card small{color:#68747b}.vpn-switch{width:46px;height:25px;border-radius:20px;background:#aeb7bc;position:relative}.vpn-switch:after{content:"";position:absolute;width:19px;height:19px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.2s}.vpn-switch.on{background:#58a84e}.vpn-switch.on:after{left:24px}

/* Realistischere Gerätezeichnungen */
.hardware{width:48px;height:42px;position:relative;display:inline-block;flex:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.15))}.hardware.big{width:70px;height:62px;transform:scale(1.08);margin:0 3px}.hardware i{position:absolute;display:block}.hardware .hw-led{width:5px;height:5px;border-radius:50%;background:#858f94;right:4px;bottom:4px;z-index:6}.hardware.powered .hw-led{background:#5ec05b;box-shadow:0 0 6px #60c65d;animation:deviceLed 2.2s infinite}.device-card.connected .dev-led,.router-led-row i.on{animation:deviceLed 2.5s infinite}.device-card.connected:hover .dev-led{animation-duration:.7s}
@keyframes deviceLed{0%,72%,100%{opacity:1;box-shadow:0 0 5px currentColor}78%{opacity:.22;box-shadow:none}84%{opacity:1}90%{opacity:.35}96%{opacity:1}}
.hardware.laptop .hw-screen{left:6px;top:2px;width:36px;height:25px;background:linear-gradient(145deg,#1b252b,#496373);border:3px solid #2e3336;border-radius:2px}.hardware.laptop .hw-body{left:2px;top:29px;width:44px;height:8px;background:linear-gradient(#d8dcde,#878e92);clip-path:polygon(8% 0,92% 0,100% 100%,0 100%)}
.hardware.desktop .hw-body{left:12px;top:2px;width:25px;height:38px;border-radius:3px;background:linear-gradient(90deg,#313a3f,#69757a);border:2px solid #20282c}.hardware.desktop .hw-body:before{content:"";position:absolute;left:5px;right:5px;top:8px;height:2px;background:#111}.hardware.desktop .hw-body:after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#79c06e;left:7px;bottom:6px}
.hardware.phone .hw-body{left:12px;top:0;width:24px;height:42px;border-radius:6px;background:#20272b;border:2px solid #111}.hardware.phone .hw-screen{left:15px;top:5px;width:18px;height:29px;background:linear-gradient(155deg,#72b7df,#193a57);border-radius:2px}.hardware.phone .hw-body:after{content:"";position:absolute;bottom:2px;left:9px;width:4px;height:4px;border-radius:50%;background:#91999d}
.hardware.tablet .hw-body{left:6px;top:1px;width:36px;height:40px;border-radius:5px;background:#252c30;border:2px solid #111}.hardware.tablet .hw-screen{left:10px;top:5px;width:28px;height:31px;background:linear-gradient(155deg,#7fc3e7,#315469)}
.hardware.printer .hw-body{left:5px;top:14px;width:39px;height:24px;border-radius:4px;background:linear-gradient(#dadfe2,#8e989d);border:1px solid #747e83}.hardware.printer .hw-paper{left:12px;top:0;width:25px;height:22px;background:#fff;border:1px solid #c5c5c5}.hardware.printer .hw-screen{left:28px;top:19px;width:9px;height:4px;background:#75b9d8}
.hardware.nas .hw-body{left:8px;top:1px;width:32px;height:40px;border-radius:4px;background:linear-gradient(90deg,#252c30,#59666c);border:2px solid #1f2528}.hardware.nas .hw-body:before,.hardware.nas .hw-body:after{content:"";position:absolute;left:5px;right:5px;height:8px;border:1px solid #79868c;background:#384247}.hardware.nas .hw-body:before{top:7px}.hardware.nas .hw-body:after{top:20px}
.hardware.tv .hw-screen{left:3px;top:3px;width:42px;height:28px;background:linear-gradient(145deg,#172126,#42718a);border:3px solid #171c1f;border-radius:2px}.hardware.tv .hw-body{left:19px;top:32px;width:11px;height:7px;background:#555}.hardware.tv .hw-body:after{content:"";position:absolute;left:-8px;bottom:-2px;width:27px;height:3px;background:#777}
.hardware.console .hw-body{left:3px;top:11px;width:42px;height:24px;border-radius:8px 4px 4px 8px;background:linear-gradient(145deg,#202427,#565d61);border:2px solid #171a1c}.hardware.console .hw-body:before{content:"";position:absolute;width:9px;height:9px;border-radius:50%;left:8px;top:6px;border:2px solid #90999e}.hardware.console .hw-body:after{content:"";position:absolute;width:3px;height:3px;border-radius:50%;right:8px;top:9px;background:#62ba58;box-shadow:6px 2px #4c91c8}
.hardware.camera .hw-body{left:7px;top:10px;width:35px;height:23px;border-radius:12px 4px 4px 12px;background:linear-gradient(#f4f5f4,#aab2b6);border:1px solid #899398}.hardware.camera .hw-screen{left:9px;top:14px;width:15px;height:15px;border-radius:50%;background:radial-gradient(circle,#142534 0 35%,#4c83a3 36% 55%,#1d2529 56%);border:2px solid #777}.hardware.camera .hw-antenna{right:5px;top:1px;width:3px;height:18px;background:#777;transform:rotate(15deg)}
.hardware.speaker .hw-body{left:10px;top:4px;width:29px;height:35px;border-radius:14px 14px 9px 9px;background:repeating-linear-gradient(90deg,#323a3e 0 2px,#454f54 2px 4px);border:1px solid #252c2f}.hardware.speaker .hw-screen{left:17px;top:8px;width:15px;height:3px;background:#63b2dc;border-radius:3px}
.hardware.repeater .hw-body{left:10px;top:5px;width:29px;height:33px;border-radius:5px;background:linear-gradient(#fff,#cdd3d6);border:1px solid #929b9f}.hardware.repeater .hw-antenna:before,.hardware.repeater .hw-antenna:after{content:"";position:absolute;width:3px;height:17px;background:#9aa1a5;top:-2px}.hardware.repeater .hw-antenna:before{left:14px;transform:rotate(-15deg)}.hardware.repeater .hw-antenna:after{left:31px;transform:rotate(15deg)}
.hardware.server .hw-body{left:4px;top:7px;width:40px;height:28px;border-radius:3px;background:linear-gradient(#5d6870,#2c3439);border:2px solid #1c2226}.hardware.server .hw-body:before{content:"";position:absolute;left:5px;right:5px;top:7px;height:3px;background:#14191c;box-shadow:0 7px #14191c}.hardware.server .hw-led{bottom:9px}
.hardware.generic .hw-body{left:8px;top:7px;width:32px;height:30px;background:#66747b;border-radius:4px}
.dev-icon{display:none!important}.device-card{min-height:62px;padding:9px 9px}.device-head .hardware{filter:drop-shadow(0 3px 3px rgba(0,0,0,.25))}.device-head .hardware .hw-led{animation:deviceLed 2s infinite}.router-led-row i.on:nth-child(2),.router-led-row i.on:nth-child(3){animation-duration:1.6s}.wifi-waves span{animation:wifiPulse 2.8s infinite}.wifi-waves span:nth-child(2){animation-delay:.3s}.wifi-waves span:nth-child(3){animation-delay:.6s}@keyframes wifiPulse{0%,100%{opacity:.15;transform:rotate(-45deg) scale(.92)}50%{opacity:.75;transform:rotate(-45deg) scale(1.05)}}
@media(max-width:700px){.vpn-profile-grid{grid-template-columns:1fr}.hardware.big{transform:none}}
.tab-pane{border-top:0!important;margin-top:0!important;padding-top:0!important}
.contract-card{border:1px solid #b9cbd4;border-left:5px solid #078bcf;background:#f5fbfe;padding:12px 14px;margin:14px 0}.contract-card>strong{display:block;color:#176d9b;margin-bottom:8px;font-size:1.05rem}.contract-card .classic-table{background:#fff}.contract-card code{font-weight:700;color:#8d2533}
/* RouterLab v3.5 – zusätzliche interaktive Hardware */
.port.occupied{position:relative;padding-bottom:34px}.unplug-port{position:absolute;left:6px;right:6px;bottom:5px;border:1px solid #9eafb8;background:#f7f8f9;border-radius:3px;font-size:10px;padding:4px;cursor:pointer}.unplug-port:hover{background:#fff1ee;border-color:#c85e52}
.room{transition:background .35s ease,box-shadow .35s ease}.room.room-lit{background:linear-gradient(145deg,#fffef2,#fff7c8);box-shadow:inset 0 0 30px rgba(255,210,45,.24)}.room-lamp{float:right;margin-left:8px;font-size:21px;filter:drop-shadow(0 0 5px rgba(255,210,0,.45))}
.hardware.dect{width:27px;height:46px;border-radius:10px 10px 8px 8px;background:linear-gradient(#272d35,#101317);border:2px solid #646d77}.hardware.dect .hw-screen{display:block;position:absolute;left:5px;right:5px;top:6px;height:14px;border-radius:2px;background:#b7d9ca}.hardware.dect .hw-body{display:block;position:absolute;left:8px;right:8px;bottom:6px;height:16px;background:radial-gradient(circle,#c7cbd0 1px,transparent 2px);background-size:5px 5px}.hardware.dect.powered .hw-led{display:block;background:#67c75a;animation:deviceBlink 1.5s infinite}
.device-card.kind-dect .dev-main small:last-child{display:none}.device-card.kind-dect{min-height:86px}
.smart-app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:14px}.smart-app-card{border:1px solid #c8d0d5;border-radius:8px;padding:14px;background:#fff;display:grid;gap:8px}.smart-app-card.disabled{opacity:.55;background:#f2f3f4}.smart-app-card strong{font-size:20px}.smart-app-card button{padding:8px;border:1px solid #9aa8b0;background:#f4f7f8;border-radius:4px;cursor:pointer}
.camera-feed{position:relative;min-height:290px;overflow:hidden;border-radius:8px;background:linear-gradient(#9bc9e5 0 48%,#95bd69 48% 100%);border:8px solid #242a30;box-shadow:inset 0 0 30px rgba(0,0,0,.15)}.camera-feed .cam-sky{position:absolute;inset:0;background:radial-gradient(circle at 80% 17%,rgba(255,255,220,.9) 0 22px,transparent 23px)}.camera-feed .cam-house{position:absolute;left:14%;bottom:15%;width:45%;height:37%;background:#d9d1c5;border:2px solid #766f65}.camera-feed .cam-house:before{content:"";position:absolute;left:-10%;right:-10%;top:-35%;height:45%;background:#7e4030;clip-path:polygon(50% 0,100% 100%,0 100%)}.camera-feed .cam-house:after{content:"";position:absolute;left:18%;bottom:0;width:20%;height:42%;background:#79543c;box-shadow:86px -24px 0 -9px #8ec6dc}.camera-feed .cam-tree{position:absolute;right:13%;bottom:11%;width:18px;height:100px;background:#6b4a2c}.camera-feed .cam-tree:before{content:"";position:absolute;width:110px;height:115px;border-radius:55%;background:#427840;left:-45px;top:-75px}.camera-time,.cam-label{position:absolute;background:rgba(0,0,0,.62);color:white;padding:5px 8px;font:12px/1.2 monospace}.cam-time{left:10px;top:10px}.cam-label{right:10px;bottom:10px}.camera-off{min-height:220px;display:grid;place-items:center;background:#171b20;color:#e5e9ec;border-radius:8px;font-size:28px}
.phone-call-screen{padding:28px;text-align:center;border-radius:12px;background:linear-gradient(160deg,#20262c,#0d1115);color:#fff;min-height:210px;display:grid;align-content:center;gap:8px}.phone-call-screen.ringing{animation:ringPulse .8s infinite alternate}.phone-call-icon{font-size:54px}.phone-call-screen h3{margin:0;font-size:25px}.phone-call-screen p{margin:0;font-size:18px}.dialer{display:grid;grid-template-columns:1fr auto auto;gap:10px;margin-top:14px}.dialer input{min-width:0;padding:10px;font-size:18px}
.vpn-switch{width:46px;height:24px;border-radius:14px;border:1px solid #8e9ba3;background:#aeb8be;position:relative;cursor:pointer}.vpn-switch:before{content:"";position:absolute;width:18px;height:18px;border-radius:50%;left:2px;top:2px;background:white;transition:left .2s}.vpn-switch.on{background:#47a25a}.vpn-switch.on:before{left:24px}.vpn-switch:disabled{opacity:.4;cursor:not-allowed}
.reservation-window{max-width:560px}.smart-card.unpaired{opacity:.7;background:#f3f3f3}.smart-card.paired{border-color:#93b999}
@keyframes ringPulse{from{box-shadow:0 0 0 rgba(86,186,104,0)}to{box-shadow:0 0 24px rgba(86,186,104,.65)}}
@media(max-width:700px){.dialer{grid-template-columns:1fr}.camera-feed{min-height:220px}}
.device-card.ringing{animation:ringCard .65s infinite alternate;border-color:#43a05a;box-shadow:0 0 0 3px rgba(67,160,90,.16)}
@keyframes ringCard{from{transform:translateX(-1px)}to{transform:translateX(1px)}}
.smart-fixture-layer{position:absolute;right:10px;bottom:8px;display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;pointer-events:none}.smart-fixture-layer span{font-size:11px;background:rgba(255,255,255,.86);border:1px solid rgba(110,120,125,.25);padding:3px 6px;border-radius:10px}.room{position:relative}


/* RouterLab V3.5 – realistische Hausgeräte und LAN-Linkanzeigen */
.port-title{display:flex;align-items:center;gap:6px}.port-link-led{width:8px;height:8px;border-radius:50%;display:inline-block;background:#667176;box-shadow:inset 0 0 0 1px #3e474b}.port-link-led.on{background:#48c247;box-shadow:0 0 6px rgba(72,194,71,.9),inset 0 0 0 1px #2b8a2a;animation:lanActivity 2.8s steps(2,end) infinite}.port.occupied{border-color:#6fa76e;background:linear-gradient(#f6fff4,#e5f4e1)}@keyframes lanActivity{0%,84%,100%{opacity:1}88%,92%{opacity:.35}}
.smart-fixture-layer{inset:38px 7px 7px;right:7px;bottom:7px;display:block;pointer-events:none}.fixture{pointer-events:auto;position:absolute;font:inherit;color:#29383f}.fixture small{position:absolute;white-space:nowrap;font-size:9px;line-height:1.1;background:rgba(255,255,255,.9);border:1px solid rgba(80,95,100,.28);border-radius:3px;padding:2px 4px}.fixture.unpaired{filter:saturate(.65);opacity:.8}.fixture.paired{opacity:1}
.ceiling-light,.wall-light{border:0;background:transparent;padding:0;cursor:pointer}.ceiling-light{top:1px;left:45%;width:54px;height:62px}.ceiling-light:before{content:"";position:absolute;left:25px;top:-10px;width:3px;height:18px;background:#555}.ceiling-light .shade{position:absolute;left:9px;top:7px;width:38px;height:24px;border-radius:22px 22px 5px 5px;background:linear-gradient(#d6d8d8,#8f989d);border:1px solid #777}.ceiling-light .bulb{position:absolute;left:21px;top:27px;width:15px;height:17px;border-radius:4px 4px 10px 10px;background:#c4c7bf;border:1px solid #8b8d88}.ceiling-light.on .bulb,.wall-light.on .bulb{background:#fff3a7;box-shadow:0 0 12px 6px rgba(255,222,74,.72)}.ceiling-light small{top:46px;left:2px}.wall-light{right:12px;top:8px;width:45px;height:55px}.wall-light .shade{position:absolute;right:4px;top:5px;width:28px;height:20px;border-radius:14px 14px 4px 4px;background:#c9cfd0;border:1px solid #858f92}.wall-light .bulb{position:absolute;right:12px;top:24px;width:12px;height:14px;border-radius:0 0 9px 9px;background:#bbb}.wall-light small{right:0;top:42px}
.radiator{left:8px;bottom:5px;width:142px;height:76px}.radiator-body{position:absolute;left:0;bottom:10px;width:103px;height:39px;border:1px solid #9ca3a7;border-radius:3px;background:linear-gradient(#fafafa,#d9dddd);display:flex;gap:3px;padding:4px}.radiator-body i{flex:1;border-radius:2px;background:linear-gradient(90deg,#c8cdcf,#f8f9f9,#bdc4c6);border:1px solid #b6bdc0}.thermostat-knob{position:absolute;left:105px;bottom:22px;min-width:30px;height:21px;line-height:21px;border-radius:10px;background:#f6f6f6;border:1px solid #8d969a;text-align:center;font-size:9px;font-weight:700}.radiator small{left:0;bottom:-2px}.heat-waves{position:absolute;left:13px;bottom:50px;width:85px;height:29px;opacity:var(--heat);filter:saturate(calc(.4 + var(--heat)));transition:opacity .3s}.heat-waves i{position:absolute;bottom:0;width:13px;height:30px;border-left:3px solid rgb(var(--heat-r),70,35);border-radius:50%;animation:heatRise 1.9s ease-in-out infinite;opacity:calc(.25 + var(--heat)*.75)}.heat-waves i:nth-child(1){left:8px}.heat-waves i:nth-child(2){left:36px;animation-delay:.35s}.heat-waves i:nth-child(3){left:64px;animation-delay:.7s}@keyframes heatRise{0%{transform:translateY(7px) scale(.85);opacity:.25}50%{transform:translateY(-3px) scale(1.05);opacity:1}100%{transform:translateY(-11px) scale(.92);opacity:.15}}
.desk-power{right:8px;bottom:6px;width:145px;height:78px;border:0;background:transparent;cursor:pointer;text-align:left}.wall-socket{position:absolute;left:0;bottom:18px;width:33px;height:38px;background:#f6f3e8;border:1px solid #aaa99f;border-radius:4px;box-shadow:inset 0 0 0 2px #fff}.wall-socket i,.wall-socket i:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#4b4b48;top:12px;left:7px}.wall-socket i:after{left:14px;top:0}.smart-plug{position:absolute;left:28px;bottom:19px;width:27px;height:32px;border-radius:5px;background:linear-gradient(#fff,#cfd5d6);border:1px solid #848f92}.plug-led{position:absolute;right:4px;top:4px;width:5px;height:5px;border-radius:50%;background:#777}.desk-power.on .plug-led{background:#4bc14b;box-shadow:0 0 5px #4bc14b}.power-cable{position:absolute;left:53px;bottom:29px;width:41px;height:18px;border-bottom:3px solid #333;border-right:3px solid #333;border-radius:0 0 12px 0}.desk-lamp{position:absolute;right:4px;bottom:17px;width:48px;height:50px}.lamp-base{position:absolute;bottom:0;left:5px;width:34px;height:6px;background:#51595d;border-radius:50%}.lamp-arm{position:absolute;left:21px;bottom:5px;width:3px;height:35px;background:#555;transform:rotate(12deg);transform-origin:bottom}.lamp-head{position:absolute;left:18px;top:2px;width:24px;height:13px;border-radius:12px 12px 4px 4px;background:#555;transform:rotate(-12deg)}.desk-power.on .lamp-head:after{content:"";position:absolute;left:2px;top:10px;width:25px;height:29px;background:linear-gradient(rgba(255,227,106,.7),rgba(255,227,106,0));clip-path:polygon(24% 0,76% 0,100% 100%,0 100%)}.desk-power small{right:0;bottom:-1px}
.kitchen-window{right:8px;top:5px;width:112px;height:91px;border:0;background:transparent;cursor:pointer}.window-frame{position:absolute;inset:0 0 18px;border:5px solid #f3f2ec;background:#b9ddeb;box-shadow:0 0 0 1px #899ba2,inset 0 0 12px rgba(64,115,140,.15);perspective:220px}.window-frame:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background:#f6f5ef}.window-sash{position:absolute;left:4px;top:4px;width:45px;height:60px;border:4px solid #f7f6ef;background:rgba(186,224,239,.66);transform-origin:left center;transition:transform .45s ease,box-shadow .45s ease}.kitchen-window.open .window-sash{transform:rotateY(-58deg);box-shadow:10px 3px 10px rgba(0,0,0,.22)}.glass{position:absolute;inset:2px;background:linear-gradient(145deg,rgba(255,255,255,.35),rgba(101,180,214,.2))}.handle{position:absolute;right:2px;top:25px;width:3px;height:12px;background:#555;border-radius:2px}.contact-sensor{position:absolute;left:2px;bottom:0;height:17px;display:flex;align-items:center;gap:4px;font-size:8px;background:rgba(255,255,255,.92);border:1px solid #aaa;padding:1px 4px;border-radius:3px}.contact-sensor i{width:6px;height:12px;background:#bbb;border-radius:2px}.contact-sensor.paired i{background:#4cbd4c}.contact-sensor b{font-weight:600}.kitchen-radiator{left:8px;bottom:5px}
@media(max-width:700px){.fixture{transform:scale(.88);transform-origin:bottom left}.kitchen-window{transform-origin:top right}.desk-power{transform-origin:bottom right}}
.smart-fixture-layer{z-index:4}


/* RouterLab V3.7 – LAN ports: only the small rectangular link/activity lamp changes colour */
.router-ports .port{border:0;appearance:none;font:inherit;cursor:pointer;transition:box-shadow .15s,transform .15s}
.router-ports .port:hover,.router-ports .port:focus-visible{box-shadow:inset 0 0 0 2px #13191c,0 0 0 2px rgba(0,139,210,.35);outline:none;transform:translateY(-1px)}
.router-ports .port:before{background:#d28a2f!important;box-shadow:inset 0 0 0 1px #8c5b1c,0 0 3px rgba(210,138,47,.35)!important}
.router-ports .port.occupied{background:linear-gradient(#37444a,#202a2f)!important;border-color:transparent!important;padding-bottom:8px!important}
.router-ports .port.occupied:before{background:#45c14c!important;box-shadow:inset 0 0 0 1px #257e2a,0 0 7px rgba(69,193,76,.95)!important;animation:rlPortBlink 1.45s steps(2,end) infinite}
.port-link-led,.unplug-port{display:none!important}
@keyframes rlPortBlink{0%,72%,100%{opacity:1}78%{opacity:.28}84%{opacity:1}90%{opacity:.42}}
.port-popover{position:fixed;z-index:12000;width:270px;background:#fff;border:1px solid #8699a4;border-radius:7px;box-shadow:0 12px 30px rgba(21,43,56,.28);padding:0;overflow:hidden;color:#29383f}
.port-popover:before{content:"";position:absolute;top:-7px;left:calc(50% - 7px);width:12px;height:12px;background:#fff;border-left:1px solid #8699a4;border-top:1px solid #8699a4;transform:rotate(45deg)}
.port-popover-head{position:relative;z-index:1;background:#eef7fb;border-bottom:1px solid #cbdbe4;padding:9px 11px;display:flex;justify-content:space-between;align-items:center;color:#176d99}
.port-popover-close{border:0;background:transparent;font-size:20px;line-height:1;color:#53636d;padding:0 3px}
.port-popover-device{display:grid;gap:3px;padding:11px;font-size:12px}.port-popover-device strong{font-size:14px;color:#213d4d}.port-popover-device span{color:#5b6971}
.port-popover-empty{margin:0;padding:14px;color:#687781}.port-popover-unplug{margin:0 11px 12px;width:calc(100% - 22px);padding:7px 10px;border:1px solid #a44c45;background:linear-gradient(#fff7f5,#f4dedb);color:#8f342d;border-radius:4px}.port-popover-unplug:hover{background:#fbecea}

/* Büro: realistischere Wandsteckdose, Smart-Plug, Netzstecker und Lampenkabel */
.desk-power{right:4px!important;bottom:4px!important;width:190px!important;height:102px!important}
.wall-socket{left:0!important;bottom:26px!important;width:42px!important;height:50px!important;background:linear-gradient(#fbfaf4,#e7e3d9)!important;border:1px solid #a9a69c!important;border-radius:5px!important;box-shadow:inset 0 0 0 3px #fff,0 1px 3px rgba(0,0,0,.16)!important}
.wall-socket:before{content:"";position:absolute;inset:7px;border:1px solid #c4c1b7;border-radius:50%;background:#f5f2e8}
.wall-socket i,.wall-socket i:after{z-index:2;top:20px!important;left:11px!important;width:6px!important;height:6px!important;background:#3f403d!important}.wall-socket i:after{left:14px!important;top:0!important}
.smart-plug{left:35px!important;bottom:25px!important;width:38px!important;height:47px!important;border-radius:8px!important;background:linear-gradient(100deg,#fdfefe,#d7dcde)!important;border:1px solid #7f8b90!important;box-shadow:2px 2px 5px rgba(0,0,0,.18)!important}
.smart-plug:before{content:"SMART";position:absolute;left:5px;bottom:5px;font-size:6px;color:#647078;letter-spacing:.08em}.smart-plug:after{content:"";position:absolute;right:-8px;top:17px;width:9px;height:14px;background:#30383c;border-radius:2px 4px 4px 2px}
.plug-led{right:6px!important;top:6px!important;width:6px!important;height:6px!important}
.power-cable{left:73px!important;bottom:46px!important;width:63px!important;height:29px!important;border-bottom:4px solid #292d2f!important;border-right:4px solid #292d2f!important;border-radius:0 0 18px 0!important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.5))}
.power-cable:before{content:"";position:absolute;left:-6px;bottom:-8px;width:12px;height:16px;background:#303638;border-radius:3px;transform:rotate(90deg)}
.desk-lamp{right:0!important;bottom:23px!important;width:58px!important;height:62px!important}.lamp-base{width:42px!important;height:8px!important}.lamp-arm{height:44px!important;left:27px!important}.lamp-head{left:22px!important;width:30px!important;height:15px!important}.desk-power small{right:2px!important;bottom:0!important}

/* RouterLab V3.7 – Arbeitsaufträge / Druckauswahl */
.assignment-page{--rl-blue:#087fbe;--rl-dark:#135474;--rl-soft:#edf7fc}
.assignment-page .topbar{background:linear-gradient(90deg,#075f93,#0b8fd1);box-shadow:0 2px 10px rgba(15,69,99,.22)}
.assignment-page .brand-mark{display:flex;align-items:center;gap:12px}.assignment-page .brand-badge{width:42px;height:42px;border-radius:10px;background:#fff;color:#087fbe;display:grid;place-items:center;font-weight:900;letter-spacing:-.08em;box-shadow:inset 0 0 0 2px rgba(255,255,255,.4)}
.assignment-page .assignment-wrap{max-width:1080px}.assignment-page .assignment-header{border:0;border-radius:10px;border-top:6px solid var(--rl-blue);box-shadow:0 5px 18px rgba(20,61,83,.10);padding:26px 28px}.assignment-page .assignment-header h1{font-size:2rem;margin:0 0 10px;color:var(--rl-dark)}
.assignment-tools{display:flex;justify-content:space-between;gap:15px;align-items:center;flex-wrap:wrap;margin:18px 0 0;padding:13px 15px;background:var(--rl-soft);border:1px solid #c4e1ef;border-radius:8px}.assignment-tools .tool-actions{display:flex;gap:8px;flex-wrap:wrap}.assignment-tools button{border:1px solid #8fb8cb;border-radius:5px;background:#fff;color:#176e98;padding:8px 11px;font-weight:600}.assignment-tools button.primary{background:#087fbe;color:#fff;border-color:#087fbe}.assignment-tools .selection-status{font-size:.88rem;color:#4e6876;font-weight:600}
.student-meta{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:14px;margin:18px 0}.student-meta label{display:grid;gap:5px;color:#315668;font-weight:600}.student-meta input{border:0;border-bottom:2px solid #84afc4;background:#f9fcfe;padding:8px 6px;min-height:38px;color:#263b46}.student-meta input:focus{outline:2px solid #8ad0ef;outline-offset:2px}
.assignment-page .task{position:relative;border:1px solid #c7d8e1;border-left:5px solid var(--rl-blue);border-top:0;border-radius:8px;padding:22px 132px 24px 24px;margin:18px 0;box-shadow:0 3px 12px rgba(21,64,88,.07);transition:opacity .15s,border-color .15s,background .15s}.assignment-page .task:hover{border-color:#7ab8d6}.assignment-page .task h2{margin:0 0 10px;color:#155e83;font-size:1.28rem}.assignment-page .task.print-excluded{opacity:.48;background:#f4f5f5;border-left-color:#aab4b9}.assignment-page .task.print-excluded:after{content:"Nicht zum Drucken ausgewählt";position:absolute;right:14px;bottom:10px;font-size:.72rem;color:#7b858a}
.task-select{position:absolute;left:-1px;top:-1px;transform:translate(-46%,-34%);z-index:5;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.task-select input{position:absolute;opacity:0;pointer-events:none}.task-select-ui{width:31px;height:31px;border-radius:8px;background:#fff;border:2px solid #7facbf;display:grid;place-items:center;box-shadow:0 2px 6px rgba(21,64,88,.16);transition:.15s}.task-select-ui:after{content:"✓";font-size:19px;color:#fff;font-weight:900;transform:scale(0);transition:.12s}.task-select input:checked+.task-select-ui{background:#0786c5;border-color:#0786c5}.task-select input:checked+.task-select-ui:after{transform:scale(1)}.task-select input:focus-visible+.task-select-ui{outline:3px solid #a4daf3;outline-offset:2px}.task-select-text{background:#fff;border:1px solid #d4e0e6;border-radius:999px;padding:3px 7px;font-size:.68rem;color:#55717e;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.task-graphic{position:absolute;right:18px;top:18px;width:92px;height:76px;border-radius:9px;background:linear-gradient(145deg,#f4fbff,#e0f2fa);border:1px solid #c2deeb;display:grid;place-items:center;color:#087fbe}.task-graphic svg{width:66px;height:54px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.task-graphic .fill{fill:#d9f0fa;stroke:#087fbe}.assignment-page .task-number{background:linear-gradient(#1399d6,#087bb7);box-shadow:0 2px 4px rgba(0,86,132,.2)}
.print-running-header,.print-running-footer{display:none}.print-title-brand{display:none}
@media(max-width:700px){.student-meta{grid-template-columns:1fr}.assignment-page .task{padding-right:24px;padding-top:105px}.task-graphic{left:24px;right:auto;top:18px}.task-select{left:14px;top:12px;transform:none}.task-select-text{display:none}}
@media print{
  @page{size:A4;margin:28mm 14mm 19mm}
  body.assignment-page{background:#fff;color:#1f313a;font-size:10.5pt}
  .assignment-page .topbar,.assignment-tools,.task-select,.task-select-text,.assignment-page>.footer{display:none!important}
  .assignment-page .assignment-wrap{max-width:none;margin:0;padding:0}
  .assignment-page .assignment-header{border:0;box-shadow:none;border-radius:0;padding:0 0 6mm;margin:0 0 5mm}
  .assignment-page .assignment-header h1{font-size:18pt;color:#125f86;margin-bottom:2mm}.assignment-page .assignment-header>p,.assignment-page .assignment-header>.classic-message,.assignment-page .assignment-header>.muted,.student-meta{display:none!important}
  .assignment-page .task{box-shadow:none;border:1px solid #9bb6c4;border-left:4px solid #087fbe;border-radius:4px;padding:5mm 29mm 5mm 5mm;margin:0 0 5mm;break-inside:avoid-page;page-break-inside:avoid}
  .assignment-page .task.print-excluded{display:none!important}.assignment-page .task.print-excluded:after{display:none!important}.assignment-page .task h2{font-size:13pt;margin-bottom:2mm}.assignment-page .task p,.assignment-page .task li{font-size:10pt}.assignment-page .task-graphic{width:22mm;height:18mm;right:4mm;top:4mm;background:#fff;border-color:#9dc8db}.assignment-page .task-graphic svg{width:17mm;height:14mm}.answer{height:20mm;margin:3mm 0;border-bottom:1px dotted #8b9ba3}
  .print-running-header{display:grid!important;position:fixed;left:0;right:0;top:-21mm;height:18mm;grid-template-columns:auto 1fr;gap:8mm;align-items:end;border-bottom:1.5px solid #087fbe;padding:0 0 3mm;background:#fff;z-index:100}
  .print-brand{font-weight:900;font-size:14pt;color:#087fbe;line-height:1}.print-brand small{display:block;font-size:7.5pt;letter-spacing:.08em;color:#3d677a;margin-top:1.5mm;font-weight:600}.print-meta{display:grid;grid-template-columns:1.5fr 1fr .75fr;gap:4mm}.print-field{border-bottom:1px solid #7e98a4;padding:0 1mm 1.5mm;font-size:8.5pt;min-height:7mm}.print-field b{font-size:7pt;text-transform:uppercase;letter-spacing:.06em;color:#517180;display:block}.print-running-footer{display:flex!important;position:fixed;left:0;right:0;bottom:-13mm;height:8mm;justify-content:space-between;align-items:center;border-top:1px solid #b8ccd6;padding-top:2mm;color:#5a7582;font-size:7.5pt;background:#fff;z-index:100}
  .print-title-brand{display:block;color:#4f7485;font-size:8pt;margin-top:1mm}
}


/* RouterLab V3.7 – robuste A4-Druckansicht der Arbeitsaufträge */
.task-print-header,.task-print-footer{display:none}
@media print{
  @page{size:A4 portrait;margin:11mm 12mm 11mm}
  html,body.assignment-page{background:#fff!important;color:#172f3c!important;font-size:10.3pt!important;margin:0!important;padding:0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .assignment-page .topbar,
  .assignment-page .assignment-header,
  .assignment-page>.footer,
  .assignment-tools,
  .student-meta,
  .task-select,
  .task-select-text,
  .print-running-header,
  .print-running-footer{display:none!important}
  .assignment-page .assignment-wrap{max-width:none!important;width:auto!important;margin:0!important;padding:0!important}
  .assignment-page .task{display:block;position:relative!important;width:100%!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;opacity:1!important;break-inside:auto!important;page-break-inside:auto!important}
  .assignment-page .task.print-excluded{display:none!important}
  .assignment-page .task.print-selected:not(.print-last){break-after:page!important;page-break-after:always!important}
  .assignment-page .task.print-last{break-after:auto!important;page-break-after:auto!important}
  .task-print-header{display:block!important;margin:0 0 5mm!important;padding:0 0 3.5mm!important;border-bottom:1.2pt solid #087fbe!important}
  .task-print-brandrow{display:flex!important;justify-content:space-between!important;align-items:flex-end!important;gap:8mm!important}
  .task-print-brand{font-size:15pt!important;line-height:1!important;font-weight:800!important;color:#087fbe!important;letter-spacing:-.02em!important}
  .task-print-brand small{display:block!important;margin-top:1.4mm!important;font-size:7pt!important;line-height:1.2!important;letter-spacing:.08em!important;color:#446c80!important;font-weight:700!important;text-transform:uppercase!important}
  .task-print-sheet-title{text-align:right!important;color:#315e74!important;font-size:8.2pt!important;line-height:1.25!important;max-width:75mm!important}
  .task-print-meta{display:grid!important;grid-template-columns:1.45fr .85fr .78fr!important;gap:5mm!important;margin-top:4mm!important}
  .task-print-meta-field{min-width:0!important;border-bottom:1pt solid #7899aa!important;padding:0 1mm 1.5mm!important;min-height:8mm!important;color:#172f3c!important;font-size:9.5pt!important;overflow:hidden!important}
  .task-print-meta-field b{display:block!important;margin-bottom:.8mm!important;font-size:6.8pt!important;line-height:1!important;color:#5b7887!important;text-transform:uppercase!important;letter-spacing:.065em!important}
  .task-print-meta-value{display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-weight:600!important}
  .task-print-content{position:relative!important;border:1pt solid #a6c3d2!important;border-left:3.5pt solid #087fbe!important;border-radius:2.5mm!important;padding:5mm 34mm 5mm 5mm!important;min-height:0!important;box-sizing:border-box!important}
  /* Im Druck ist rechts dauerhaft eine eigene Grafikspalte reserviert.
     So kann kein Aufgabeninhalt unter die Grafik laufen. */
  .task-print-content>h2,
  .task-print-content>p,
  .task-print-content>ul,
  .task-print-content>.contract-card,
  .task-print-content>.checkbox-line,
  .task-print-content>.answer,
  .task-print-content>.classic-table{margin-left:0!important;margin-right:0!important;max-width:none!important;width:auto!important;box-sizing:border-box!important}
  .assignment-page .task h2{font-size:13pt!important;line-height:1.2!important;margin:0 0 2.5mm!important;padding:0!important;color:#155e83!important;font-weight:650!important}
  .assignment-page .task-number{width:8mm!important;height:8mm!important;margin-right:2mm!important;font-size:9.5pt!important;vertical-align:middle!important}
  .assignment-page .task p,.assignment-page .task li{font-size:9.7pt!important;line-height:1.37!important}
  .assignment-page .task ul{padding-left:6mm!important;margin-top:2mm!important;margin-bottom:3mm!important}
  .assignment-page .task li{margin:.8mm 0!important}
  .assignment-page .task .contract-card{font-size:9.2pt!important;margin:2mm 0 3mm!important;padding:3mm!important}
  .assignment-page .task .classic-table{font-size:8.8pt!important}
  .assignment-page .task .classic-table td,.assignment-page .task .classic-table th{padding:1.5mm 2mm!important}
  .assignment-page .task code{font-size:.92em!important}
  .assignment-page .task .answer{height:16mm!important;margin:3mm 0!important;border-bottom:1px dotted #8b9ba3!important}
  .assignment-page .task .checkbox-line{font-size:9.4pt!important;margin:1.2mm 0!important}
  .assignment-page .task .check{width:4mm!important;height:4mm!important;margin-top:.5mm!important}
  .task-graphic{display:grid!important;position:absolute!important;left:auto!important;right:5mm!important;top:5mm!important;width:22mm!important;height:18mm!important;margin:0!important;border-radius:2mm!important;background:#f7fcff!important;border:1pt solid #abd0e1!important;box-shadow:none!important;color:#087fbe!important}
  .task-graphic svg{width:16mm!important;height:13mm!important;stroke-width:1.8!important}
  .task-print-footer{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:8mm!important;margin-top:4mm!important;padding-top:2.5mm!important;border-top:1px solid #c0d4de!important;color:#5a7582!important;font-size:7pt!important}
  .task-print-footer .task-print-page-label{font-weight:700!important;color:#477084!important}
}

/* RouterLab V3.10 – einheitliche Hauptnavigation */
.site-header{min-height:70px;padding-top:10px;padding-bottom:10px}
.brand-mark{display:flex;align-items:center;gap:12px;min-width:max-content}
.brand-badge{width:42px;height:42px;border-radius:9px;background:#fff;color:#087fbe;display:grid;place-items:center;font-weight:900;letter-spacing:-.08em;box-shadow:inset 0 0 0 2px rgba(255,255,255,.45)}
.header-right{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.site-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.site-nav .nav-item{color:#fff;text-decoration:none;padding:9px 12px;border-radius:3px;border:1px solid transparent;font-weight:600;white-space:nowrap}
.site-nav .nav-item:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28)}
.site-nav .nav-item.active{background:#fff;color:#087fbe;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.header-actions{display:flex;align-items:center;gap:8px;padding-left:10px;border-left:1px solid rgba(255,255,255,.35)}
.site-router-header{min-height:64px;height:auto;padding-top:8px;padding-bottom:8px;gap:18px}
.router-header-right{display:flex;align-items:center;justify-content:flex-end;gap:20px;min-width:0}
.router-site-nav{display:flex;align-items:center;gap:3px;flex-wrap:wrap}
.router-site-nav a{color:#fff;text-decoration:none;padding:8px 10px;border-radius:3px;border:1px solid transparent;white-space:nowrap}
.router-site-nav a:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);text-decoration:none}
.router-site-nav a.active{background:#fff;color:#087fbe;border-color:#fff;font-weight:700}
.router-actions{display:flex;align-items:center;gap:14px;padding-left:16px;border-left:1px solid rgba(255,255,255,.35)}
@media(max-width:1050px){.site-header{align-items:flex-start}.header-right{width:100%;justify-content:flex-start}.site-nav{flex:1}.site-router-header{align-items:flex-start;flex-wrap:wrap}.router-header-right{width:100%;justify-content:space-between}.router-site-nav{flex:1}}
@media(max-width:720px){.brand-mark{min-width:0}.site-nav .nav-item{padding:7px 8px;font-size:.86rem}.header-actions{border-left:0;padding-left:0}.router-header-right{align-items:flex-start;flex-direction:column;gap:8px}.router-actions{border-left:0;padding-left:0}.router-site-nav a{padding:6px 7px;font-size:.82rem}}

/* RouterLab V3.13 – räumlich getrennte Geräte- und Smart-Home-Zonen */
.house-plan{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  grid-template-areas:
    "office office office office living living living living kitchen kitchen kitchen kitchen"
    "hall hall hall child child child child child garden garden garden garden"!important;
  grid-template-rows:minmax(360px,auto) minmax(285px,auto)!important;
  align-items:stretch;
  gap:10px!important;
}
.room[data-room="Arbeitszimmer"]{grid-area:office}
.room[data-room="Wohnzimmer"]{grid-area:living}
.room[data-room="Küche"]{grid-area:kitchen}
.room[data-room="Flur"]{grid-area:hall}
.room[data-room="Kinderzimmer"]{grid-area:child}
.room[data-room="Garten"]{grid-area:garden}

.house-plan .room{
  min-width:0;
  min-height:0!important;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.house-plan .room h2{
  flex:0 0 auto;
  margin-bottom:8px;
  z-index:6;
}
.house-plan .room-lamp{display:none!important}

/* Gerätekarten laufen ausschließlich in einem festen Raster. */
.house-plan .room .devices{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:minmax(58px,auto);
  align-content:start;
  gap:8px!important;
  width:100%;
  min-width:0;
  min-height:0!important;
  padding:0 0 118px!important;
  box-sizing:border-box;
  position:relative;
  z-index:4;
}
.house-plan .room[data-room="Arbeitszimmer"] .devices{padding-bottom:124px!important}
.house-plan .room[data-room="Wohnzimmer"] .devices{padding-right:72px!important;padding-bottom:96px!important}
.house-plan .room[data-room="Küche"] .devices{padding-right:124px!important;padding-bottom:100px!important}
.house-plan .room[data-room="Flur"] .devices{grid-template-columns:1fr!important;padding-right:62px!important;padding-bottom:24px!important}
.house-plan .room[data-room="Kinderzimmer"] .devices{padding-bottom:32px!important}
.house-plan .room[data-room="Garten"] .devices{grid-template-columns:1fr!important;padding-bottom:30px!important}

/* Im Raum nur noch kompakte Geräteübersicht; Details gibt es per Klick. */
.house-plan .device-card{
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  min-height:58px!important;
  padding:6px 24px 6px 6px!important;
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr)!important;
  gap:7px!important;
  align-items:center!important;
  border-radius:7px!important;
}
.house-plan .device-card .hardware{transform:scale(.88);transform-origin:center}
.house-plan .device-card .dev-main{display:block!important;min-width:0!important}
.house-plan .device-card .dev-main b{display:block;font-size:.84rem;line-height:1.12;margin-bottom:3px}
.house-plan .device-card .dev-main small{display:block;font-size:.66rem;line-height:1.15;color:#6c7b83}
.house-plan .device-card .dev-main small:nth-of-type(1),
.house-plan .device-card .dev-main small:nth-of-type(3){display:none!important}
.house-plan .device-card .dev-main small:nth-of-type(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.house-plan .device-card .dev-led{right:7px;top:8px}
.house-plan .device-card:hover{transform:translateY(-1px)!important}

/* Smart-Home-Ausstattung besitzt eine eigene räumliche Ebene. */
.house-plan .smart-fixture-layer{
  z-index:3!important;
  inset:38px 7px 7px!important;
  pointer-events:none!important;
}
.house-plan .smart-fixture-layer .fixture{pointer-events:auto!important}

/* Möbel-/Ausstattungszonen bleiben frei von Gerätekarten. */
.room[data-room="Arbeitszimmer"]:before{
  content:"";
  position:absolute;
  right:10px;bottom:8px;
  width:205px;height:104px;
  border-top:5px solid rgba(126,94,62,.42);
  border-left:5px solid rgba(126,94,62,.32);
  background:linear-gradient(180deg,rgba(199,169,127,.12),rgba(199,169,127,.04));
  z-index:1;
}
.room[data-room="Arbeitszimmer"]:after{
  content:"Schreibtisch";
  position:absolute;
  right:18px;bottom:98px;
  width:auto;height:auto;border:0;background:transparent;
  color:rgba(92,72,51,.58);font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  z-index:2;
}
.room[data-room="Wohnzimmer"]:before{
  content:"";position:absolute;left:175px;right:14px;bottom:10px;height:68px;
  background:linear-gradient(135deg,rgba(190,167,145,.16),rgba(228,211,191,.22));
  border:1px solid rgba(150,126,103,.28);border-radius:4px;z-index:1;
}
.room[data-room="Wohnzimmer"] .ceiling-light{left:auto!important;right:10px!important;top:2px!important}
.room[data-room="Flur"] .wall-light{right:6px!important;top:4px!important}
.room[data-room="Küche"] .kitchen-window{right:3px!important;top:3px!important}
.room[data-room="Küche"] .kitchen-radiator{left:7px!important;bottom:3px!important}

/* Deutliche, aber unaufdringliche Funktionszonen. */
.room-zone-label{
  display:none;
}
.house-plan .room[data-room="Arbeitszimmer"] .desk-power{z-index:5}
.house-plan .room[data-room="Wohnzimmer"] .radiator,
.house-plan .room[data-room="Küche"] .radiator{z-index:5}
.house-plan .room[data-room="Küche"] .kitchen-window{z-index:5}

/* Tablet/kleinere Breiten: Räume weiterhin übersichtlich, ohne Überlagerungen. */
@media(max-width:1250px){
  .house-plan{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-areas:"office living" "kitchen child" "hall garden"!important;grid-template-rows:auto!important}
  .house-plan .room{min-height:330px!important}
}
@media(max-width:760px){
  .house-plan{grid-template-columns:1fr!important;grid-template-areas:"office" "living" "kitchen" "child" "hall" "garden"!important}
  .house-plan .room{min-height:350px!important}
  .house-plan .room .devices{grid-template-columns:1fr!important;padding-right:0!important;padding-bottom:125px!important}
  .house-plan .room[data-room="Küche"] .devices{padding-right:105px!important}
  .house-plan .room[data-room="Wohnzimmer"] .devices{padding-right:64px!important}
}


/* RouterLab V3.13 – Grundriss, Lesbarkeit und Bedienflächen */
.lab-grid{grid-template-columns:minmax(0,1fr) 270px!important;gap:12px!important}
.inspector-panel{padding:10px!important;min-width:0!important}
.inspector-panel h2{font-size:.92rem!important;margin:8px 0 7px!important}
.topology{font-size:.75rem!important}.topo-node{padding:5px!important}.topo-branch,.topo-empty{padding:2px 0!important}
.mini-log{font-size:.7rem!important}.mini-log>div{grid-template-columns:48px 1fr!important;gap:4px!important;padding:3px 0!important}

/* Arbeitszimmer und Kinderzimmer tauschen die Position; das große untere Feld gehört dem Arbeitszimmer. */
.house-plan{
  grid-template-areas:
    "child child child child living living living living kitchen kitchen kitchen kitchen"
    "hall hall hall office office office office office garden garden garden garden"!important;
  grid-template-rows:minmax(350px,auto) minmax(315px,auto)!important;
}

/* Schmale Räume verwenden eine Spalte, damit Namen lesbar bleiben. */
.house-plan .room[data-room="Küche"] .devices{
  grid-template-columns:1fr!important;
  padding-right:122px!important;
  padding-bottom:100px!important;
}
.house-plan .room[data-room="Küche"] .device-card{min-height:62px!important}
.house-plan .room[data-room="Küche"] .device-card .dev-main b{
  white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.15!important;
}
.house-plan .room[data-room="Flur"] .devices{grid-template-columns:1fr!important}

/* Kinderzimmer erhält Platz für Tablet, TV und Konsole. */
.house-plan .room[data-room="Kinderzimmer"] .devices{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding-bottom:96px!important}
.room[data-room="Kinderzimmer"]:before{
  content:"";position:absolute;left:15px;right:15px;bottom:10px;height:58px;
  border:1px solid rgba(119,92,138,.22);background:linear-gradient(180deg,rgba(172,144,193,.10),rgba(172,144,193,.04));
  border-radius:5px;z-index:1;
}
.room[data-room="Kinderzimmer"]:after{
  content:"TV / Gaming";position:absolute;right:20px;bottom:54px;color:rgba(93,68,108,.52);font-size:9px;letter-spacing:.08em;text-transform:uppercase;z-index:2;
}

/* Das größere Arbeitszimmer reserviert unten rechts weiterhin den Schreibtischbereich. */
.house-plan .room[data-room="Arbeitszimmer"] .devices{padding-bottom:126px!important}

/* Klickbare Smart-Home-Ausstattung liegt sicher über dem Raum, ohne die Karten zu verdecken. */
.house-plan .smart-fixture-layer{z-index:7!important;pointer-events:none!important}
.house-plan .smart-fixture-layer .fixture{z-index:8!important;pointer-events:auto!important}
.house-plan .room .devices{z-index:4!important}

/* Das ganze Küchenfenster ist eine Klickfläche. */
.room[data-room="Küche"] .kitchen-window{
  right:3px!important;top:3px!important;width:118px!important;height:104px!important;z-index:12!important;pointer-events:auto!important;
}
.room[data-room="Küche"] .kitchen-window:after{
  content:"";position:absolute;inset:-7px;z-index:20;background:transparent;cursor:pointer;
}
.room[data-room="Küche"] .kitchen-window .window-frame,
.room[data-room="Küche"] .kitchen-window .contact-sensor{pointer-events:none!important}

/* Lampen sind wieder direkt anklickbar und bekommen eine etwas größere Trefferfläche. */
.room[data-room="Wohnzimmer"] .ceiling-light,
.room[data-room="Flur"] .wall-light{z-index:12!important;pointer-events:auto!important;cursor:pointer!important}
.room[data-room="Wohnzimmer"] .ceiling-light:after,
.room[data-room="Flur"] .wall-light:after{content:"";position:absolute;inset:-10px;background:transparent}

/* Smart-Plug steckt sichtbar direkt in der Wandsteckdose. */
.room[data-room="Arbeitszimmer"] .desk-power{right:4px!important;bottom:4px!important}
.room[data-room="Arbeitszimmer"] .smart-plug{left:29px!important;bottom:27px!important}
.room[data-room="Arbeitszimmer"] .power-cable{left:66px!important;bottom:47px!important;width:69px!important}

@media(max-width:1250px){
  .lab-grid{grid-template-columns:minmax(0,1fr) 235px!important}
  .house-plan{grid-template-areas:"child living" "kitchen office" "hall garden"!important}
  .house-plan .room[data-room="Küche"] .devices{grid-template-columns:1fr!important;padding-right:112px!important}
}
@media(max-width:900px){
  .lab-grid{grid-template-columns:1fr!important}.inspector-panel{min-height:0!important}
}
@media(max-width:760px){
  .house-plan{grid-template-areas:"child" "living" "kitchen" "office" "hall" "garden"!important}
  .house-plan .room[data-room="Küche"] .devices{grid-template-columns:1fr!important;padding-right:108px!important}
}

/* RouterLab V3.16: Außenwelt / Café */
.scene-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.scene-switch{display:flex;gap:5px}.scene-switch .btn.active{background:#177eaf;color:#fff;border-color:#0f688f}.scene-panel.hidden{display:none!important}.cafe-world{background:#f0e7d9;border-top:1px solid #c8bba7}.cafe-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:12px 16px;background:#fff;border-bottom:1px solid #c9d3d8}.cafe-toolbar label{display:grid;gap:4px;font-size:.78rem;font-weight:700}.cafe-toolbar select{min-width:190px;padding:7px;border:1px solid #aebcc4}.cafe-interior{position:relative;min-height:520px;overflow:hidden;background:linear-gradient(#f7f0e5 0 72%,#b8895d 72%);border-bottom:1px solid #9b7655}.cafe-interior:before{content:"";position:absolute;left:0;right:0;top:72%;height:7px;background:#7b5b42;box-shadow:0 12px 18px rgba(0,0,0,.12)}.cafe-sign{position:absolute;left:34px;top:28px;background:#342b28;color:#fff;padding:13px 24px;border-radius:4px;font:900 1.4rem Georgia,serif;letter-spacing:.12em;box-shadow:0 5px 10px rgba(0,0,0,.18)}.cafe-sign small{display:block;font:.65rem Arial,sans-serif;letter-spacing:.08em;color:#e8d7b7;text-align:center}.cafe-window{position:absolute;right:40px;top:28px;width:210px;height:130px;border:10px solid #efe6d7;background:linear-gradient(#a8d7ec,#eaf7ff 58%,#b7d8a0 59%);box-shadow:0 2px 8px rgba(0,0,0,.15),inset 0 0 0 3px #8d7059}.cafe-window:after,.cafe-window:before{content:"";position:absolute;background:#efe6d7}.cafe-window:after{left:50%;top:0;bottom:0;width:7px}.cafe-window:before{top:50%;left:0;right:0;height:7px}.cafe-table{position:absolute;left:39%;top:53%;width:235px;height:24px;background:#754a2e;border-radius:50%;box-shadow:0 9px 0 #51331f}.cafe-table:before,.cafe-table:after{content:"";position:absolute;top:21px;width:12px;height:125px;background:#5b3b27}.cafe-table:before{left:42px}.cafe-table:after{right:42px}.cafe-chair{position:absolute;top:64%;width:70px;height:78px;border:9px solid #594432;border-bottom-width:15px}.cafe-chair.left{left:30%}.cafe-chair.right{right:27%}.cafe-ap{position:absolute;width:160px;padding:10px 12px 10px 42px;background:#fff;border:1px solid #9db1bb;border-radius:7px;box-shadow:0 5px 14px rgba(0,0,0,.14);font-size:.72rem}.cafe-ap i{position:absolute;left:12px;top:13px;width:20px;height:20px;border:4px solid #1887bb;border-left-color:transparent;border-bottom-color:transparent;border-radius:0 100% 0 0;transform:rotate(-45deg)}.cafe-ap b{display:block;color:#155f84}.cafe-ap small{display:block;color:#596b74;line-height:1.25;margin-top:3px}.cafe-ap.real{left:26px;top:180px}.cafe-ap.evil{left:26px;top:275px;border-color:#d49a31;background:#fff9eb}.cafe-devices{position:absolute;left:23%;right:20%;bottom:38px;z-index:3;display:grid;grid-template-columns:repeat(3,minmax(165px,1fr));gap:12px}.cafe-note{padding:12px 16px;background:#fff7dd;border-top:1px solid #ddc77f;color:#5d502a}.public-ap em{font-style:normal;font-size:.65rem;background:#eaf4f8;color:#286b89;padding:2px 5px;margin-left:5px}.device-card.unknown-device{border-color:#d89a3a}
@media(max-width:900px){.cafe-devices{left:12%;right:12%;grid-template-columns:1fr 1fr}.cafe-window{width:160px}.cafe-table{left:35%}}
/* V3.16 cafe scenario workflow */
.cafe-control-panel{background:#fff;border-bottom:1px solid #c9d3d8;padding:16px}
.cafe-control-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}
.cafe-control-head h2{margin:2px 0 4px;color:#176f9c;font-size:1.25rem}.cafe-control-head p{margin:0;color:#61717a;max-width:760px}
.scenario-kicker{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:800;color:#7a8a93}
.scenario-state{background:#eaf5fb;border:1px solid #a8d0e4;color:#165f82;padding:8px 12px;border-radius:5px;font-weight:700;white-space:nowrap}
.cafe-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cafe-step{position:relative;display:grid;grid-template-columns:34px 1fr;gap:10px;border:1px solid #cbd5da;background:#f8fafb;padding:12px;min-width:0}
.cafe-step h3{margin:0 0 6px;color:#176f9c;font-size:1rem}.cafe-step p{margin:0 0 9px;font-size:.82rem;color:#64747d}.cafe-step label{display:grid;gap:4px;font-size:.76rem;font-weight:700;margin-bottom:8px}.cafe-step select{width:100%;padding:7px;border:1px solid #aebcc4;background:#fff}.step-no{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#177eaf;color:#fff;font-weight:800}.step-status{margin:8px 0;padding:7px 8px;background:#fff;border-left:3px solid #9aaab3;font-size:.76rem;color:#586971}.cafe-step.done{border-color:#7fb979;background:#f2faef}.cafe-step.done .step-no{background:#58a84e}.cafe-step.active{border-color:#5ea7cc;box-shadow:inset 0 0 0 1px #5ea7cc}.danger-step{border-color:#dfc48c;background:#fffaf0}.btn.danger{background:#b24a3b;border-color:#963b30;color:#fff}.btn.danger:hover{background:#963b30}.danger-step.armed{border-color:#d26a55;background:#fff2ef}.danger-step.armed .step-no{background:#b24a3b}
@media(max-width:1050px){.cafe-steps{grid-template-columns:1fr}.scenario-state{white-space:normal}.cafe-control-head{flex-direction:column}}

/* RouterLab V3.16 – Lesbarkeit und Raumproportionen */
/* Der Garten wird schmaler; das Arbeitszimmer gewinnt den frei werdenden Platz. */
.house-plan{
  grid-template-areas:
    "child child child child living living living living kitchen kitchen kitchen kitchen"
    "hall hall hall office office office office office office garden garden garden"!important;
}

/* Wohnzimmer bewusst einspaltig: längere Gerätenamen bleiben vollständig lesbar. */
.house-plan .room[data-room="Wohnzimmer"] .devices{
  grid-template-columns:1fr!important;
  padding-right:70px!important;
  padding-bottom:96px!important;
}

/* Gerätetitel etwas dezenter und kompakter, ohne die Statusinformationen zu verkleinern. */
.house-plan .device-card .dev-main b{
  font-size:.76rem!important;
  line-height:1.12!important;
}
.house-plan .room[data-room="Küche"] .device-card .dev-main b,
.house-plan .room[data-room="Wohnzimmer"] .device-card .dev-main b{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}

/* Kinderzimmer: echter wandständiger Schreibtisch links und TV-/Gaming-Möbel rechts. */
.room[data-room="Kinderzimmer"]:before{
  content:""!important;
  position:absolute!important;
  left:8px!important;
  bottom:7px!important;
  width:176px!important;
  height:76px!important;
  border:0!important;
  border-radius:2px!important;
  background:
    linear-gradient(#7b573c,#7b573c) 10px 31px/8px 43px no-repeat,
    linear-gradient(#7b573c,#7b573c) calc(100% - 18px) 31px/8px 43px no-repeat,
    linear-gradient(180deg,#bd8e60,#956944) 0 14px/100% 18px no-repeat!important;
  box-shadow:none!important;
  z-index:1!important;
}
.room[data-room="Kinderzimmer"]:after{
  content:""!important;
  position:absolute!important;
  right:8px!important;
  bottom:8px!important;
  width:126px!important;
  height:78px!important;
  border:0!important;
  border-radius:2px!important;
  background:
    linear-gradient(#1d252a,#070a0c) 18px 0/90px 50px no-repeat,
    linear-gradient(#70777b,#4e565a) 60px 50px/7px 9px no-repeat,
    linear-gradient(180deg,#a77e59,#806044) 0 59px/126px 17px no-repeat!important;
  box-shadow:none!important;
  opacity:1!important;
  z-index:1!important;
}
.house-plan .room[data-room="Kinderzimmer"] .devices{padding-bottom:104px!important}

/* Bei mittleren Bildschirmbreiten bekommt die rechte Spalte etwas weniger Platz. */
@media(max-width:1250px) and (min-width:761px){
  .house-plan{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)!important}
  .house-plan .room[data-room="Wohnzimmer"] .devices{grid-template-columns:1fr!important}
}

/* RouterLab V3.19 – Evil-Twin-Unterrichtsszenario */
.evil-portal{max-width:620px;margin:18px auto;border:1px solid #b9c8da;background:#f7fbff;border-radius:10px;overflow:hidden}.evil-portal-brand{background:#153e6f;color:#fff;padding:18px 22px;display:flex;align-items:center;gap:10px;font-size:20px}.evil-portal-brand span{margin-left:auto;font-size:12px;opacity:.85}.evil-portal-card{padding:22px}.evil-portal-card label{display:block;margin:12px 0;font-weight:700}.evil-portal-card input{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid #9dafc3;border-radius:5px;background:#fff}.evil-http-demo{border:2px solid #b54141;border-radius:8px;overflow:hidden;background:#fff}.fake-site-head.danger{background:#7b1d1d;color:#fff;padding:12px 16px}.evil-http-body{padding:20px}.evil-http-body h2{margin-top:0}.cafe-steps{grid-template-columns:repeat(4,minmax(0,1fr))}.cafe-step code{font-size:.9em}.device-card[data-device="hackerLaptop"]{border-color:#844e4e;background:linear-gradient(#fff,#fff5f5)}.device-card[data-device="hackerLaptop"] .status-dot{background:#c85555}@media(max-width:1150px){.cafe-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.cafe-steps{grid-template-columns:1fr}}


/* RouterLab V3.19 – responsive Hausansicht und Audio-Status */
.audio-toggle.active{background:#eaf7ee!important;border-color:#78b88a!important;color:#216c39!important}

/* Auf großen Bildschirmen bleibt die Übersicht schlank, damit das Haus Priorität hat. */
.lab-grid{
  grid-template-columns:minmax(0,1fr) clamp(210px,17vw,245px)!important;
  gap:12px!important;
  align-items:start;
}
.world-panel,.house-plan,.room,.devices{min-width:0}
.inspector-panel{min-width:0!important;overflow-wrap:anywhere}

/* Stabiler Desktop-Grundriss: Innenräume bekommen mehr Raum, Garten bleibt schmal. */
.house-plan{
  grid-template-columns:repeat(12,minmax(58px,1fr))!important;
  grid-template-areas:
    "child child child child living living living living kitchen kitchen kitchen kitchen"
    "hall hall office office office office office office office garden garden garden"!important;
  gap:10px!important;
}
.house-plan .room{min-width:240px!important}
.house-plan .room[data-room="Arbeitszimmer"] .devices,
.house-plan .room[data-room="Kinderzimmer"] .devices{grid-template-columns:repeat(2,minmax(150px,1fr))!important}
.house-plan .room[data-room="Wohnzimmer"] .devices,
.house-plan .room[data-room="Küche"] .devices,
.house-plan .room[data-room="Flur"] .devices,
.house-plan .room[data-room="Garten"] .devices{grid-template-columns:1fr!important}

/* Karten dürfen nie bis zur Unlesbarkeit schrumpfen. */
.house-plan .device-card{min-width:0!important}
.house-plan .device-card .dev-main{min-width:0!important}
.house-plan .device-card .dev-main b{overflow-wrap:anywhere}

/* Schon bei mittlerer Breite wandert die Netzwerkübersicht unter das Haus. */
@media(max-width:1180px){
  .lab-grid{grid-template-columns:1fr!important}
  .inspector-panel{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:10px 18px!important;
    border-top:1px solid #cbd6dc;
  }
  .inspector-panel>h2{margin-top:4px!important}
  .packet-panel{grid-column:1/-1}
  .house-plan{
    grid-template-columns:repeat(2,minmax(320px,1fr))!important;
    grid-template-areas:
      "child living"
      "kitchen office"
      "hall garden"!important;
    grid-template-rows:auto!important;
  }
  .house-plan .room{min-width:0!important;min-height:340px!important}
  .house-plan .room[data-room="Arbeitszimmer"] .devices,
  .house-plan .room[data-room="Kinderzimmer"] .devices{grid-template-columns:repeat(2,minmax(145px,1fr))!important}
}

/* Tablet / schmales Browserfenster: zwei lesbare Spalten statt gequetschter 12-Spalten-Fläche. */
@media(max-width:860px){
  .house-plan{grid-template-columns:repeat(2,minmax(280px,1fr))!important;overflow-x:auto;padding-bottom:4px}
  .house-plan .room{min-height:345px!important}
  .inspector-panel{grid-template-columns:1fr!important}
  .packet-panel{grid-column:auto}
}

/* Smartphone: Räume nacheinander, Karten konsequent einspaltig. */
@media(max-width:680px){
  .house-plan{
    grid-template-columns:1fr!important;
    grid-template-areas:"child" "living" "kitchen" "office" "hall" "garden"!important;
    overflow-x:visible!important;
  }
  .house-plan .room{min-height:360px!important;min-width:0!important}
  .house-plan .room .devices,
  .house-plan .room[data-room="Arbeitszimmer"] .devices,
  .house-plan .room[data-room="Kinderzimmer"] .devices{
    grid-template-columns:1fr!important;
  }
  .house-plan .room[data-room="Küche"] .devices{padding-right:104px!important}
  .world-head{align-items:flex-start!important;gap:10px!important}
  .scene-actions{width:100%}
  .lab-toolbar{align-items:flex-start!important}
  .lab-status{justify-content:flex-start!important}
}

/* Bei sehr schmalen Ansichten werden feste Ausstattungen etwas kleiner, bleiben aber am Raum verankert. */
@media(max-width:430px){
  .house-plan .room{min-height:390px!important}
  .room[data-room="Küche"] .kitchen-window{transform:scale(.88);transform-origin:top right}
  .room[data-room="Arbeitszimmer"] .desk-power{transform:scale(.88);transform-origin:bottom right}
  .room[data-room="Wohnzimmer"] .ceiling-light{transform:scale(.9);transform-origin:top right}
}

/* RouterLab V3.19 – Korrektur Desktop-Grundriss
   Räume dürfen ihre CSS-Grid-Zelle niemals durch eine starre Mindestbreite überlaufen. */
@media(min-width:1181px){
  .house-plan{
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    grid-template-areas:
      "child child child child living living living living kitchen kitchen kitchen kitchen"
      "hall hall hall office office office office office office garden garden garden"!important;
  }
  .house-plan .room{
    min-width:0!important;
    width:auto!important;
    max-width:none!important;
  }
  .house-plan .room[data-room="Flur"] .devices{
    min-width:0!important;
    padding-right:62px!important;
  }
  .house-plan .room[data-room="Arbeitszimmer"]{
    min-width:0!important;
  }
  .house-plan .room h2{
    max-width:100%;
    box-sizing:border-box;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
}
