/* Duifmelden Mijn GPS v0.5.0 – Clubdashboard redesign */
:root{--hok-ink:#163d40;--hok-accent:#0f6f6d;--hok-mid:#248a84;--hok-pale:#e8f5f2}
[hidden]{display:none!important}
.brand-logo{height:55px;width:66px;object-fit:contain;border-radius:10px;background:#fff;padding:4px}
.site-header{min-height:86px;padding:14px max(24px,calc((100vw - 1450px)/2));gap:18px}
.logo-wrap{display:grid;place-items:center}.brand{gap:13px}.brand h1{font-size:28px;font-weight:850;letter-spacing:-.045em;line-height:1.1}.brand h1 span{font-size:1em;letter-spacing:-.045em;font-weight:600;color:#8be1cf;text-transform:none}.brand-caption{color:#a4cfca;font-size:9px;letter-spacing:.16em;font-weight:850;margin-bottom:4px}.brand-caption span{font-weight:650;color:#78aca8}.topbar-right{gap:18px}.top-online{color:#e6f4f0;display:flex;align-items:center;gap:9px;font-weight:750;font-size:13px}.status-dot{display:inline-block;width:9px;height:9px;background:#e8bd72;border-radius:50%;box-shadow:0 0 0 4px #ffffff20}.status-dot.is-online{background:#48d598;box-shadow:0 0 0 4px #48d5982b}.status-dot.is-error{background:#f3a5a5}.hok-logout{background:#ffffff16;color:white;text-decoration:none;border:1px solid #ffffff38;padding:9px 12px;border-radius:10px;font-weight:750;font-size:12px}.hok-logout:hover{background:#ffffff22}
.main-wrap{max-width:1490px;padding:31px 24px 10px}.welcome-row{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.welcome-row h2{font-size:31px;line-height:1.1;margin:8px 0;color:#153d40;letter-spacing:-.035em}.welcome-row p{color:#70868a;font-size:14px;margin:0}.headline-accent{font-size:22px;color:#3a9e94}.eyebrow-sep{color:#cad6d3;margin:0 6px}.welcome-actions{display:flex;gap:11px;align-items:center}.source-badge{font-size:11px;border:1px solid #d8e9e4;background:#fff;padding:10px 13px;white-space:normal;max-width:215px;text-align:center}.source-badge.live{background:#e9f8f1;color:#227e54}.refresh-btn{color:#154b4b;background:#e6f3ef;border:1px solid #cfe7e0;font-size:12px;white-space:nowrap}
.hok-tabs{display:flex;align-items:center;gap:2px;margin:0 0 19px;padding:5px 6px;background:white;border:1px solid #e5efed;border-radius:14px;width:max-content;max-width:100%;overflow-x:auto;box-shadow:0 6px 17px #073e4010}.hok-tabs button{flex:0 0 auto;border:0;background:transparent;color:#537375;font-size:12px;font-weight:800;padding:12px 17px;border-radius:10px;white-space:nowrap;cursor:pointer}.hok-tabs button.active{background:#0c6060;color:#fff;box-shadow:0 5px 14px #0f5c5e24}.hok-tabs button:hover:not(.active){background:#e8f4f1}.hok-tab{display:none}.hok-tab.active{display:block}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.metric-card{background:#fff;border-radius:17px;border:1px solid #e5eeeb;box-shadow:0 8px 25px #083f4110;padding:19px 21px 17px;min-height:150px;position:relative;overflow:hidden}.metric-card:before{content:'';position:absolute;inset:0 auto 0 0;width:3px;background:#2fa7a0;opacity:.65}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:5px;color:#70878b;font-size:10px;letter-spacing:.10em;font-weight:850}.metric-icon{display:grid;place-items:center;border-radius:11px;background:#e8f5f2;color:#0e6f69;font-size:21px;width:34px;height:34px;line-height:1}.metric-value{font-size:31px;font-weight:900;color:#0c5152;letter-spacing:-.04em;margin:10px 0 8px;line-height:1.1}.metric-value.compact{font-size:21px;letter-spacing:-.015em;margin-top:13px}.metric-bottom{font-size:11px;color:#73888b;display:flex;gap:7px;align-items:center;line-height:1.4}.micro-dot{width:7px;height:7px;background:#b2c2c1;display:inline-block;border-radius:50%;flex:0 0 auto}.micro-dot.online{background:#29a56b}.micro-dot.offline{background:#df7b70}
.dashboard-primary{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.8fr);gap:19px;align-items:stretch;margin-bottom:19px}.map-card{padding:19px 19px 13px;min-width:0;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head .eyebrow{font-size:10px}.panel-head h3{font-size:20px;color:#123f40;margin:5px 0 3px;line-height:1.2;letter-spacing:-.02em}.panel-head p{font-size:12px;color:#829599;margin:0}.outline-link{border:1px solid #d5e9e6;background:white;border-radius:11px;padding:9px 11px;color:#0d6564;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.outline-link:hover{background:#f1f9f7}.map-frame{height:372px;border:1px solid #d6e7e4;background:linear-gradient(35deg,#dcece5,#e8f1e9 60%,#dce9e6);border-radius:13px;position:relative;overflow:hidden}.real-map{position:absolute;inset:0;z-index:1}.real-map:empty{background-color:#dfece9;background-image:linear-gradient(45deg,transparent 48%,#c6dad3 49%,#c6dad3 51%,transparent 52%),linear-gradient(-45deg,transparent 48%,#c8ded6 49%,#c8ded6 51%,transparent 52%);background-size:120px 120px}.map-overlay{position:absolute;z-index:650;left:16px;right:16px;bottom:17px;max-width:440px;padding:12px 15px;background:#fffefaee;backdrop-filter:blur(14px);box-shadow:0 8px 24px #0d45472b;border:1px solid #ffffffb0;border-radius:13px;display:flex;align-items:flex-start;gap:11px;pointer-events:none}.map-overlay-dot{height:11px;width:11px;background:#f2c36b;box-shadow:0 0 0 4px #f2c36b24;border-radius:50%;margin-top:3px;flex:0 0 auto}.map-overlay strong{display:block;color:#174a4b;font-size:12px;line-height:1.35}.map-overlay span:last-child{font-size:11px;color:#718888;display:block;margin-top:4px;line-height:1.45}.map-footer{display:flex;align-items:center;flex-wrap:wrap;gap:17px;margin:12px 2px 0;color:#6f8888;font-size:10px;font-weight:650}.map-footer>span{display:flex;align-items:center;gap:6px}.legend-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.legend-dot.teal{background:#45a9a1}.legend-dot.silver{background:#afc2c0}.map-foot-note{margin-left:auto}.leaflet-control-attribution{font-size:9px!important}
.side-column{display:flex;flex-direction:column;gap:16px;min-width:0}.scanner-highlight{border-radius:19px;background:linear-gradient(148deg,#084648,#0b6363 68%,#118079);padding:21px 22px;color:white;min-height:380px;position:relative;overflow:hidden;box-shadow:0 13px 35px #08434530;flex:1}.scanner-highlight:after{content:'';position:absolute;width:240px;height:240px;border:1px solid #ffffff13;border-radius:50%;right:-97px;top:46px;box-shadow:0 0 0 42px #ffffff08,0 0 0 85px #ffffff06;pointer-events:none}.side-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px;font-weight:850;letter-spacing:.10em;color:#b5e3db;position:relative;z-index:1}.pill-state{padding:7px 9px;background:#ffffff20;color:#e0f4ef;border:1px solid #ffffff29;border-radius:20px;letter-spacing:.04em;font-size:9px}.pill-state.on{background:#dcf8e8;color:#075a34;border-color:transparent}.pill-state.off{background:#fff2e1;color:#824b13;border-color:transparent}.scanner-symbol{font-size:46px;line-height:1;margin-top:19px;color:#91e0d7;position:relative;z-index:1}.scanner-highlight h3{margin:10px 0 4px;font-size:22px;word-break:break-word;line-height:1.2;position:relative;z-index:1}.scanner-highlight p{margin:0 0 16px;font-size:11px;color:#b7dedc;position:relative;z-index:1}.scanner-lines{position:relative;z-index:1}.scanner-lines div{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid #ffffff25;font-size:11px}.scanner-lines span{color:#b2d6d5}.scanner-lines strong{color:#fff;font-weight:750;text-align:right;max-width:65%;overflow-wrap:anywhere}.side-card-link{display:flex;align-items:center;justify-content:space-between;margin-top:10px;width:100%;border:0;background:transparent;padding:9px 0 0;color:#bbefde;font-weight:850;font-size:11px;cursor:pointer;position:relative;z-index:1}.mini-info{padding:15px;display:flex;gap:12px;align-items:flex-start;flex-shrink:0}.mini-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#e5f5f0;color:#0c6762;font-size:18px;flex-shrink:0;font-weight:850}.mini-info strong{font-size:11px;color:#154748}.mini-info p{margin:5px 0 0;font-size:10px;line-height:1.5;color:#879a9a}
.dashboard-secondary{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.92fr);gap:19px;align-items:start}.table-card,.activity-card{padding:21px;min-height:285px;min-width:0}.table-scroll{overflow-x:auto}.hok-table{width:100%;border-collapse:collapse}.hok-table th{text-align:left;padding:12px 9px;color:#899e9e;border-bottom:1px solid #dfeae6;font-size:10px;letter-spacing:.09em;font-weight:850;text-transform:uppercase;white-space:nowrap}.hok-table td{text-align:left;padding:15px 9px;border-bottom:1px solid #eaf0ef;font-size:12px;color:#486467}.hok-table td:first-child{font-weight:850;color:#164f4f}.hok-table tr:last-child td{border-bottom:0}.ring-chip{background:#e8f5f1;border-radius:8px;padding:5px 7px;color:#0b6763;font-weight:800;font-size:11px;white-space:nowrap;display:inline-block}.ring-chip.masked{color:#7a8e8f;background:#f0f4f3}.rssi-mark{color:#347d70;font-weight:800}.empty-row{text-align:center!important;padding:24px 12px!important;color:#809393!important;font-weight:500!important}.activity-feed{display:grid;gap:2px;min-height:160px}.activity-item{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f0}.activity-item:last-child{border-bottom:0}.timeline-spot{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#e2f4f0;color:#188078;font-size:14px;flex:0 0 auto}.activity-copy{min-width:0;flex:1}.activity-copy strong{display:block;font-size:11px;color:#1c4e4f;overflow-wrap:anywhere}.activity-copy span{font-size:10px;color:#819395;display:block;margin-top:3px}.activity-when{font-size:10px;color:#789192;flex:0 0 auto}.activity-footer{margin-top:10px;padding-top:11px;border-top:1px solid #eef2f1;color:#809193;font-size:10px;line-height:1.5}.empty-state{padding:24px;color:#8b9e9d;font-size:12px;text-align:center}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 20px}.section-heading h2{font-size:29px;margin:7px 0;color:#164446;letter-spacing:-.035em}.section-heading p{font-size:13px;color:#839697;margin:0}.ring-panel{padding:22px}.ring-disclaimer{background:#f3f9f7;color:#547579;font-size:12px;line-height:1.6;padding:13px 17px;border:1px solid #e1efeb;border-radius:12px;margin:0 0 18px}.ring-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.ring-card{background:linear-gradient(140deg,#f4fbf8,#fff);border:1px solid #daeae6;border-radius:14px;padding:14px;min-width:0}.ring-card .mini-cap{font-size:10px;letter-spacing:.09em;color:#7c9692;font-weight:850}.ring-card strong{display:block;overflow-wrap:anywhere;color:#164f4d;margin-top:7px;font-size:14px}.ring-card span{display:block;color:#7c9290;margin-top:6px;font-size:11px}.ring-card button{font-size:11px;margin-top:11px}.ring-card.empty{grid-column:1/-1;color:#899998;text-align:center;padding:35px 12px}.name-button{padding:8px 11px;background:#e4f3ef;border:1px solid #cfe8e2;color:#125e5a;border-radius:9px;font-weight:850;cursor:pointer;font-size:11px}.name-button:hover{background:#d6ede7}.name-button:disabled{opacity:.5;cursor:not-allowed}.full-map-card{padding:20px}.full-map-frame{height:530px}.full-map-explain{display:flex;gap:13px;align-items:flex-start;padding:20px 3px 4px}.full-map-explain strong{font-size:14px;color:#164c4c}.full-map-explain p{margin:6px 0 0;color:#728b8b;font-size:12px;line-height:1.6}.empty-feature{min-height:300px;padding:50px 30px;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column}.empty-feature h3{margin:13px 0 4px;color:#175252;font-size:22px}.empty-feature p{font-size:13px;max-width:460px;line-height:1.7;color:#7a9091}.feature-icon{font-size:42px;color:#2ca89b;background:#e7f6f0;border-radius:24px;padding:18px}.empty-feature .btn{margin-top:8px}.scanner-details-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,.7fr);gap:18px}.detail-card,.detail-note{padding:25px}.detail-head{display:flex;gap:15px;align-items:center;margin-bottom:21px}.detail-symbol{background:#e2f4ef;color:#187e75;border-radius:18px;padding:18px;font-size:30px}.detail-head h3{font-size:23px;color:#164746;margin:6px 0 0}.detail-rows div{padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e6efed;color:#70898b;font-size:13px}.detail-rows strong{color:#154e4d;font-size:13px;text-align:right;overflow-wrap:anywhere}.detail-note h3{color:#185150;margin:18px 0 6px}.detail-note p{font-size:13px;line-height:1.7;color:#829696}
.login-stage{display:grid;grid-template-columns:.85fr 1fr;min-height:540px;border-radius:26px;background:linear-gradient(140deg,#073c40,#096262 70%,#167f75);overflow:hidden;box-shadow:0 25px 80px #073f4033;margin:30px 0}.login-decor{position:relative;display:grid;place-items:center;overflow:hidden}.decor-orbit{border:1px solid #ffffff24;position:absolute;border-radius:50%;width:330px;height:330px;box-shadow:0 0 0 58px #ffffff08,0 0 0 120px #ffffff05}.orbit-2{width:170px;height:170px;box-shadow:none;border:1px dashed #ffffff44}.decor-center{width:125px;height:125px;background:#ffffff14;border:1px solid #ffffff40;border-radius:35px;display:grid;place-items:center;color:#d8fff5;font-size:42px;font-weight:950;letter-spacing:-.1em;z-index:1}.decor-label{position:absolute;bottom:45px;color:#b7dcd9;font-size:11px;letter-spacing:.20em;font-weight:750}.login-card{background:#fff;border:0;border-radius:24px;margin:38px;align-self:center;padding:43px 40px;box-shadow:0 20px 70px #063a3e52}.login-card h2{font-size:37px;letter-spacing:-.05em;color:#164c4c;margin:12px 0}.login-card h2 span{color:#2d9b90}.login-card>p{color:#789090;line-height:1.65;font-size:14px;margin-bottom:28px}.login-form{display:grid;gap:10px}.login-form label{font-weight:800;font-size:12px;color:#335f61}.input-line{display:flex;gap:10px;flex-wrap:wrap}.input-line input{flex:1 1 170px;min-width:0;font-size:17px;font-weight:750;letter-spacing:.12em;padding:13px 15px;border:1px solid #cfdedc;border-radius:11px;color:#245458;outline:none;text-transform:uppercase}.input-line input:focus{border-color:#2a9c91;box-shadow:0 0 0 3px #2a9c911a}.submit-btn{padding:14px 17px;flex:1 0 auto;white-space:nowrap}.login-help{font-size:12px;color:#698581;line-height:1.5;margin-top:15px;min-height:20px}.login-help.error{color:#a63838}.login-foot{margin-top:29px;border-top:1px solid #edf3f1;padding-top:16px;color:#96a7a6;font-size:11px}.site-footer{background:transparent;border:0;box-shadow:none;display:flex;align-items:center;gap:14px;margin-top:26px;padding:20px 24px 25px;border-top:1px solid #e2eae7;border-radius:0}.site-footer strong{display:block;font-size:12px}.site-footer strong span{font-weight:550}.site-footer small{display:block;font-size:10px;margin-top:3px;color:#869b9d}.site-footer>span:nth-of-type(1){margin-left:auto}.footer-version{color:#91a5a5}
@media(max-width:1150px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-primary{grid-template-columns:minmax(0,1.3fr) minmax(250px,.8fr)}.dashboard-secondary{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr)}.scanner-highlight{min-height:360px}.ring-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:880px){.dashboard-primary,.dashboard-secondary,.scanner-details-layout{grid-template-columns:1fr}.scanner-highlight{min-height:auto}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.map-frame{height:340px}.login-stage{grid-template-columns:1fr}.login-decor{display:none}.login-card{margin:25px;max-width:650px}.main-wrap{padding:20px 16px 8px}.site-header{padding:13px 18px}}
@media(max-width:600px){.brand-logo{height:46px;width:52px}.brand h1{font-size:24px}.brand-caption{font-size:8px}.brand-caption span{display:none}.top-online{font-size:11px}.welcome-row{align-items:flex-start;flex-direction:column}.welcome-row h2{font-size:26px}.welcome-actions{width:100%;justify-content:space-between}.metrics{gap:9px}.metric-card{padding:14px 13px;min-height:135px}.metric-value{font-size:25px}.metric-value.compact{font-size:17px}.metric-top{font-size:9px}.metric-icon{width:28px;height:28px;font-size:16px}.map-card,.table-card,.activity-card,.ring-panel,.full-map-card{padding:15px}.panel-head h3{font-size:18px}.panel-head p{display:none}.map-frame{height:310px}.full-map-frame{height:440px}.map-overlay{bottom:10px;left:9px;right:9px;padding:10px}.map-foot-note{margin-left:0}.ring-cards{grid-template-columns:1fr}.section-heading{flex-direction:column;align-items:flex-start}.section-heading h2{font-size:25px}.login-card{padding:30px 24px;margin:16px}.login-card h2{font-size:30px}.site-footer{flex-wrap:wrap}.site-footer>span:nth-of-type(1){margin-left:0}}

/* v0.5.1: geautoriseerde scanner-hokpositie op beide kaarten */
.hok-home-icon{background:none!important;border:none!important;overflow:visible!important}
.hok-home-icon .hok-house-symbol{position:absolute;top:0;left:33px;width:33px;height:33px;display:flex;align-items:center;justify-content:center;font-family:Arial,sans-serif;font-size:29px;font-weight:900;line-height:1;color:#fff;background:#0c625f;border:3px solid #fff;border-radius:11px;box-shadow:0 3px 14px #153f3b66;transform:rotate(-3deg)}
.hok-home-icon .hok-house-label{position:absolute;top:34px;left:7px;width:84px;box-sizing:border-box;background:#064743;color:#fff;border:2px solid #fff;border-radius:16px;box-shadow:0 3px 10px #163f3d55;text-align:center;padding:3px 5px;font-size:10px;font-weight:900;letter-spacing:.045em;white-space:nowrap}
.hok-popup{min-width:158px;display:grid;gap:4px;font-family:inherit;color:#154a49}.hok-popup strong{font-size:15px}.hok-popup span{font-size:12px;color:#577c79}.hok-popup small{font-size:10px;color:#78918d}
.map-locate-btn,.map-auto-btn{background:#e9f6f2;border:1px solid #ceeae2;color:#0b635c;padding:7px 10px;border-radius:9px;font-size:10px;font-weight:850;cursor:pointer}.map-locate-btn:hover,.map-auto-btn:hover{background:#d8efe7}
.map-auto-btn{background:#fff;color:#517873}.map-locate-btn:focus-visible,.map-auto-btn:focus-visible{outline:3px solid #36b6a3;outline-offset:2px}
.map-footer .map-locate-btn,.map-footer .map-auto-btn{flex:0 0 auto}.map-footer .map-auto-btn[hidden],.full-map-toolbar .map-auto-btn[hidden]{display:none!important}
.full-map-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:0 0 13px;color:#59827c;font-size:12px;font-weight:750}.full-map-toolbar>div{display:flex;flex-wrap:wrap;gap:7px}
@media(max-width:600px){.map-footer{gap:9px}.map-footer .map-foot-note{display:none}.full-map-toolbar{font-size:11px}}

/* v0.5.2: herkende ringen en controle van een eigen MAC-adres */
.ring-data-note{font-size:11px;color:#698580;margin:0 0 16px;line-height:1.5}
.ring-check-form{margin-top:22px;padding:20px;border-radius:14px;background:#f3faf7;border:1px solid #deeee8}
.ring-check-form label{display:block;font-size:13px;font-weight:850;color:#174e4d;margin-bottom:12px}
.ring-check-fields{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ring-check-fields input{flex:1 1 230px;min-width:0;background:#fff;border:1px solid #cadfd9;border-radius:10px;padding:11px 13px;font-size:14px;letter-spacing:.04em;color:#174e4d;text-transform:uppercase}
.ring-check-fields input:focus-visible{outline:3px solid #b0e3d8;outline-offset:1px}
.ring-check-fields button{white-space:nowrap;margin:0;padding:12px 16px}
.ring-check-result{font-size:12px;color:#698480;margin:12px 0 0;line-height:1.5}
.ring-check-result.ring-check-ok{color:#106b48}.ring-check-result.ring-check-warn{color:#98621e}
@media(max-width:600px){.ring-check-fields button{width:100%}}

/* v0.5.3: echte individuele GPS-punten uit de PigeonGrid-routecache */
.route-chooser{display:flex;align-items:center;flex-wrap:wrap;gap:11px;padding:12px 14px;margin:0 0 12px;background:#eff8f5;border:1px solid #d8eae4;border-radius:12px}
.route-chooser label{font-size:12px;font-weight:850;color:#174f4e;white-space:nowrap}
.route-chooser select{min-width:210px;flex:1 1 220px;max-width:430px;min-height:38px;border:1px solid #c6e0d8;border-radius:10px;background:#fff;padding:6px 12px;color:#165653;font-size:13px;font-weight:750}
.route-chooser select:disabled{opacity:.65}
.route-chooser span{font-size:11px;color:#698882;line-height:1.45}
.gps-routes-info{margin:0 0 12px;padding:11px 14px;border-left:3px solid #0a8c84;background:#f7faf9;color:#557c78;font-size:12px;line-height:1.65;border-radius:0 8px 8px 0}
.gps-map-button{margin-left:7px!important;background:#d8efe9!important;border-color:#a9d8cb!important}
.gps-ring-popup{min-width:200px;display:grid;gap:4px;color:#13504b}
.gps-ring-popup strong{font-size:13px}.gps-ring-popup span{font-size:11px;color:#71918b}.gps-ring-popup small{font-size:11px;color:#536e70}
@media(max-width:600px){.route-chooser{padding:10px;gap:8px}.route-chooser select{max-width:none;flex:1 1 100%}.route-chooser span{flex:1 1 100%}.gps-map-button{margin-left:0!important;margin-right:7px}}
