/*!
 * RustyCluster™ - Real-time DX Cluster Web Interface
 * Copyright (c) 2025 Stuart E. Green (G5STU) - All Rights Reserved
 * Unauthorized copying, modification, distribution, or use of this software
 * via any medium is strictly prohibited without express written permission.
 * https://rustycluster.com
 */
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0;background:#111;color:#eee}.container{display:flex;min-height:100vh}.sidebar{width:115px;background:#1a1a1a;padding:20px;scrollbar-width:none;-ms-overflow-style:none;border-right:1px solid #333;display:flex;flex-direction:column}.sidebar::-webkit-scrollbar{display:none}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(5px)}.modal-content{background:#1a1a1a;border:2px solid #2d7;border-radius:12px;padding:30px;max-width:500px;width:90%;box-shadow:0 10px 40px rgba(0,0,0,.5),0 0 30px rgba(34,221,119,.3)}.modal-content h2{color:#2d7;margin-top:0;margin-bottom:15px;font-size:1.5rem}.modal-content p{color:#ccc;margin:10px 0;line-height:1.5}.modal-note{color:#f88;font-size:.95rem;margin:15px 0!important}.modal-privacy{color:#8c8;font-size:.9rem;margin:15px 0!important;padding:10px;background:rgba(136,204,136,.1);border-left:3px solid #8c8;border-radius:4px}.modal-privacy i{margin-right:6px}.form-field{margin:15px 0}.form-field label{display:block;color:#aaa;font-size:.9rem;margin-bottom:6px;font-weight:500}.form-field .optional{color:#777;font-size:.85rem;font-weight:400}.callsign-input-group{display:flex;gap:10px;margin:20px 0}.callsign-input{width:100%;padding:12px 16px;background:#222;border:2px solid #444;border-radius:6px;color:#fff;font-size:1.1rem;text-transform:uppercase;font-weight:700;letter-spacing:1px;box-sizing:border-box}.callsign-input:focus{outline:0;border-color:#2d7;box-shadow:0 0 0 3px rgba(34,221,119,.2)}.save-btn-full{width:100%;padding:14px 24px;background:#2d7;border:none;border-radius:6px;color:#020;font-weight:700;font-size:1rem;cursor:pointer;transition:.2s;margin-top:10px}.save-btn-full:hover{background:#3e8;transform:translateY(-1px);box-shadow:0 4px 12px rgba(34,221,119,.4)}.save-btn{padding:12px 24px;background:#2d7;border:none;border-radius:6px;color:#020;font-weight:700;font-size:1rem;cursor:pointer;transition:.2s}.save-btn:hover{background:#3e8;transform:translateY(-1px);box-shadow:0 4px 12px rgba(34,221,119,.4)}.skip-btn{width:100%;padding:10px;background:0 0;border:1px solid #555;border-radius:6px;color:#999;font-size:.95rem;cursor:pointer;transition:.2s;margin-top:10px}.skip-btn:hover{background:#222;border-color:#666;color:#ccc}.modal-footer{font-size:.85rem;color:#888;margin-top:15px!important;text-align:center}.user-callsign{margin-left:20px;padding:6px 12px;background:rgba(34,221,119,.2);border:1px solid #2d7;border-radius:4px;color:#2d7;font-weight:700;cursor:pointer;transition:.2s;display:inline-block}.user-callsign:hover{background:rgba(34,221,119,.3);transform:translateY(-1px);box-shadow:0 2px 8px rgba(34,221,119,.3)}.user-callsign i{margin-right:5px}.online-users{margin-left:20px;padding:6px 12px;background:rgba(68,136,255,.2);border:1px solid #48f;border-radius:4px;color:#48f;font-weight:700;display:inline-block;transition:.2s}.online-users i{margin-right:5px}.mb-2{margin-bottom:10px}.sidebar h3{margin-top:0;margin-bottom:15px;font-size:1rem;color:#aaa}.filter-section-title{margin-top:25px}.band-button{display:block;width:100%;padding:12px;margin-bottom:8px;border:none;border-radius:4px;font-size:1rem;font-weight:700;cursor:pointer;transition:.2s}.band-button.active,.band-button.all-active{background:#2d7;color:#020}.text-right{text-align:right}.text-center{text-align:center}.band-button.inactive{background:#fff;color:#333}.band-button:hover{opacity:.8}.activity-button{display:flex;align-items:center;gap:8px;font-size:.9rem}.activity-button i{width:16px;text-align:center}.main-content{flex:1;padding:20px}.right-sidebar{width:300px;background:#1a1a1a;padding:20px;border-left:1px solid #333}.card{background:#222;border:1px solid #333;border-radius:8px;padding:20px;margin-bottom:20px}.card h3{margin-top:0;margin-bottom:15px;font-size:1.1rem;color:#aaa}.utc-time{font-size:3rem;font-weight:700;color:#fff;text-align:center;margin:10px 0;font-family:'Courier New',monospace;letter-spacing:.05em}.utc-date{font-size:.95rem;color:#aaa;text-align:center;margin-top:5px}.solar-data{display:grid;grid-template-columns:1fr 1fr;gap:15px}.solar-item{text-align:center}.solar-label{font-size:.8rem;color:#aaa;margin-bottom:5px}.solar-value{font-size:1.8rem;font-weight:700;color:#2d7;font-family:'Courier New',monospace}.weather-info{text-align:center;padding:10px 0}.weather-location{font-size:1rem;color:#aaa;margin-bottom:10px}.weather-temp{font-size:2.2rem;font-weight:700;color:#fff;font-family:'Courier New',monospace;margin:10px 0}.weather-desc{font-size:1rem;color:#ccc;text-transform:capitalize}.spot-form{display:flex;flex-direction:column;gap:12px}.flag-img{margin-right:5px;vertical-align:middle}.activity-icons{white-space:nowrap;font-size:14px}.activity-icons i{margin:0 3px;opacity:.8}.activity-icons .fa-tree{color:#2d7}.activity-icons .fa-campground{color:#fb3}.activity-icons .fa-mountain{color:#4af}.activity-icons .fa-umbrella-beach{color:#f5a}.activity-icons .fa-lightbulb{color:#ff6}.activity-icons .fa-tent{color:#f83}.activity-icons .fa-chess-rook{color:#a9a}.activity-icons .fa-cube,.activity-icons .fa-train{color:#888}.activity-icons .fa-tower-broadcast{color:#5cf}.activity-icons .fa-car{color:#fc6}.activity-icons .fa-ship{color:#09f}.activity-icons .fa-plane{color:#9cf}.creator-info{text-align:center;padding:10px 0}.creator-info p{margin:8px 0}.creator-info .club-name a{font-size:1.2em;font-weight:700;color:#e02ff0;text-decoration:none}.creator-info .tagline{font-style:italic;color:#999;font-size:.9em}.donate-btn{display:inline-block;margin-top:12px;padding:8px 16px;background:#0070ba;color:#fff;text-decoration:none;border-radius:4px;font-size:.9em;transition:background .3s}.donate-btn:hover{background:#feffff}.donate-btn i{margin-right:5px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:.85rem;color:#aaa;font-weight:500}.form-group input{background:#1a1a1a;border:1px solid #333;color:#eee;padding:8px 10px;border-radius:4px;font-size:.95rem;font-family:inherit}.form-group input:focus{outline:0;border-color:#2d7}.form-group input::placeholder{color:#666}.submit-btn{background:#2d7;color:#020;border:none;padding:12px;border-radius:4px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s;margin-top:5px}.submit-btn:hover{background:#3e8}.submit-btn i{margin-right:8px}h1{margin-top:0}#status{margin-bottom:10px;font-size:.9rem}#status span{padding:2px 6px;border-radius:4px}#status .connecting{background:#444}#status .open{background:#2d7;color:#020}#status .closed{background:#a33}.tabs{display:flex;gap:10px;margin-bottom:15px;border-bottom:2px solid #333}.tabs button{background:0 0;border:none;color:#999;padding:10px 20px;cursor:pointer;font-size:.95rem;border-bottom:3px solid transparent;transition:.3s;margin-bottom:-2px}.tabs button:hover{color:#fff;background:rgba(255,255,255,.05)}.tabs button.active{color:#2d7;border-bottom-color:#2d7}.tabs button i{margin-right:6px}.tab-badge{background:#f44;color:#fff;font-size:.7rem;font-weight:600;padding:2px 6px;border-radius:10px;margin-left:6px;display:inline-block;min-width:18px;text-align:center}#globe-container{width:100%;height:calc(100vh - 150px);position:relative}#globe-container canvas{display:block;width:100%!important;height:100%!important}.map-view{width:100%;height:auto;min-height:calc(100vh - 150px);position:relative;align-items:flex-start;justify-content:center;padding-top:20px;flex-direction:column}.latest-spots{width:100%;max-width:100%;box-sizing:border-box;padding:0 0 10px}.latest-spots h3{color:#aaa;font-size:.9rem;margin:0 0 10px;text-transform:uppercase;letter-spacing:.5px}.latest-spots h3 i{margin-right:6px;color:#2d7}.latest-spots-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.latest-spot-card{background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:10px;transition:.2s}.latest-spot-card:hover{background:#222;border-color:#2d7;transform:translateY(-2px)}.latest-spot-card.user-spot-card{background:rgba(255,50,50,.15);border-color:#f33}.latest-spot-card.user-spot-card:hover{background:rgba(255,50,50,.25)}.spot-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}.spot-card-dx{font-size:1.1rem;font-weight:700;color:#2d7;letter-spacing:.5px;flex:1}.spot-card-time{font-size:.7rem;color:#666;white-space:nowrap}.user-spot-card .spot-card-dx{color:#f33}.spot-card-freq{font-size:.95rem;color:#fff;margin-bottom:6px}.spot-card-meta{font-size:.75rem;color:#999;margin-bottom:4px;display:flex;gap:6px;align-items:center}.spot-card-continent{background:rgba(34,221,119,.2);color:#2d7;padding:2px 4px;border-radius:3px;font-weight:600}.spot-card-flag{width:16px;height:12px;border-radius:2px;display:inline-block;flex-shrink:0;vertical-align:middle}.spot-card-country{color:#888;font-size:.7rem}.spot-card-spotter{font-size:.7rem;color:#666;padding-top:4px;border-top:1px solid #2a2a2a;margin-bottom:6px}.spot-card-qrz-link{display:block;margin-top:8px;padding:6px 8px;background:rgba(0,255,100,.1);border:1px solid rgba(0,255,100,.3);border-radius:4px;color:#00ff64;text-decoration:none;text-align:center;font-size:.7rem;transition:.2s}.spot-card-qrz-link:hover{background:rgba(0,255,100,.2);border-color:rgba(0,255,100,.5);transform:translateY(-1px)}.spot-card-qrz-link i{margin-right:4px}.map-toggle{background:rgba(0,0,0,.7);border:1px solid #444;color:#999;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9rem;transition:.3s}.map-toggle:hover{background:rgba(0,0,0,.9);color:#fff}.map-toggle.active{background:#2d7;color:#020;border-color:#2d7}.map-toggle i{margin-right:5px}.hot-stations-view{width:100%}.hot-stations{width:100%;max-width:100%;box-sizing:border-box}.hot-stations h3{color:#aaa;font-size:.9rem;margin:0 0 15px;text-transform:uppercase;letter-spacing:.5px}.hot-stations h3 i{margin-right:6px;color:#ff6b35}.empty-state{text-align:center;padding:60px 20px;max-width:500px;margin:0 auto}.empty-state i{font-size:4rem;color:#ff6b35;opacity:.3;margin-bottom:20px;display:block}.empty-state h4{color:#aaa;font-size:1.5rem;margin:0 0 15px}.empty-state p{color:#666;font-size:.95rem;line-height:1.6;margin:10px 0}.empty-state p.hint{color:#888;font-style:italic;margin-top:20px}.empty-state strong{color:#2d7}.hot-stations-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.hot-station-card{background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:10px;transition:.2s}.hot-station-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.3);border-color:#ff6b35}.hot-station-count{background:rgba(255,107,53,.2);color:#ff6b35;padding:2px 6px;border-radius:3px;font-size:.7rem;font-weight:600}.stats-view{width:100%;max-width:1400px;margin:0 auto;padding:0}.stats-content{width:100%}.stats-content h3{color:#aaa;font-size:1.2rem;margin:0 0 20px;text-transform:uppercase;letter-spacing:.5px}.stats-content h3 i{margin-right:8px;color:#2d7}.stats-note{background:rgba(0,255,100,.05);border-left:3px solid #2d7;padding:12px 15px;margin:0 0 20px;border-radius:4px;color:#aaa;font-size:.9rem;line-height:1.5}.stats-note i{color:#2d7;margin-right:8px}.stats-note strong{color:#2d7;font-weight:600}.chart-container{position:relative;height:600px;background:rgba(0,0,0,.3);border:1px solid #333;border-radius:8px;padding:20px}.telnet-view{width:100%;max-width:1200px;margin:0 auto}.telnet-content{width:100%}.telnet-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:25px;align-items:start;width:100%;margin-bottom:40px}.telnet-card{background:rgba(255,255,255,.02);border:1px solid #333;border-radius:8px;padding:30px;box-shadow:0 4px 6px rgba(0,0,0,.3);overflow-wrap:break-word;word-wrap:break-word}.telnet-card h2{color:#2d7;margin:0 0 15px;font-size:1.5rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.telnet-card h2 i{font-size:1.3rem}.beta-badge{background:#fb3;color:#000;padding:3px 10px;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:.5px}.card-description{color:#aaa;line-height:1.6;margin-bottom:20px;font-size:1rem}.feature-list{list-style:none;padding:0;margin:0 0 25px}.feature-list li{padding:8px 0;color:#999;display:flex;align-items:center;gap:10px;font-size:.95rem}.feature-list li i{color:#2d7;font-size:.9rem;width:16px;flex-shrink:0}.feature-list li i.fa-clock{color:#fb3}.server-address{background:rgba(0,0,0,.3);border:1px solid #444;border-radius:6px;padding:15px;margin:20px 0;text-align:center}.server-address code{color:#2d7;font-size:1.2rem;font-weight:700;font-family:'Courier New',monospace}.usage-note{color:#888;font-size:.9rem;line-height:1.5;margin:15px 0 0;text-align:center}.terms-section{background:rgba(255,255,255,.02);border:1px solid #333;border-radius:8px;padding:30px;margin-top:30px}.terms-section h3{color:#2d7;margin:0 0 20px;font-size:1.3rem;display:flex;align-items:center;gap:10px}.terms-section h4{color:#aaa;margin:20px 0 10px;font-size:1.1rem}.terms-content{color:#999;line-height:1.6}.terms-content p{margin:10px 0}.terms-content strong{color:#ccc}.terms-list{list-style:none;padding:0;margin:15px 0}.terms-list li{padding:6px 0 6px 20px;position:relative}.terms-list li:before{content:"-";color:#2d7;position:absolute;left:0;font-weight:700}.terms-footer{margin-top:25px;padding-top:20px;border-top:1px solid #333;color:#666;text-align:center}#map2d-container{width:100%;max-width:100%;aspect-ratio:2/1;position:relative;background:#0a0a0a;border-radius:12px;overflow:hidden}.map-controls{position:absolute;top:10px;right:10px;z-index:10;display:flex;gap:10px}#map2d-container canvas{display:block;width:100%;height:100%;border-radius:12px}.map-tooltip{position:fixed;pointer-events:none;transform:translate(10px,-50%);z-index:1000;animation:.2s ease-in fadeIn}@keyframes fadeIn{from{opacity:0;transform:translate(10px,-50%) scale(.9)}to{opacity:1;transform:translate(10px,-50%) scale(1)}}.tooltip-content{background:rgba(0,0,0,.95);border:1px solid #2d7;border-radius:6px;padding:10px 14px;box-shadow:0 4px 12px rgba(0,0,0,.5),0 0 20px rgba(34,221,119,.3);backdrop-filter:blur(10px);min-width:150px}.tooltip-dx-label{font-size:.7rem;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.tooltip-callsign{font-size:1.1rem;font-weight:700;color:#2d7;margin-bottom:4px;letter-spacing:.5px}.tooltip-freq{font-size:.95rem;color:#fff;margin-bottom:6px}.tooltip-meta{font-size:.85rem;color:#bbb;margin-bottom:4px;display:flex;gap:8px;align-items:center}.tooltip-continent{background:rgba(34,221,119,.2);color:#2d7;padding:2px 6px;border-radius:3px;font-weight:600;font-size:.75rem}.tooltip-comment{font-size:.85rem;color:#ccc;font-style:italic;margin:6px 0;padding:4px 0;border-top:1px solid #2a2a2a;border-bottom:1px solid #2a2a2a}.tooltip-spotter{font-size:.8rem;color:#999;margin-top:6px;padding-top:6px;border-top:1px solid #333}.spotter-label{font-size:.7rem;color:#777;text-transform:uppercase;letter-spacing:.5px}.click-hint{font-size:.75rem;color:#666;font-style:italic}.tooltip-qrz-link{display:block;margin-top:8px;padding:8px;background:rgba(0,255,100,.1);border:1px solid rgba(0,255,100,.3);border-radius:4px;color:#00ff64;text-decoration:none;text-align:center;font-size:.75rem;transition:.2s}.tooltip-qrz-link:hover{background:rgba(0,255,100,.2);border-color:rgba(0,255,100,.5);transform:translateY(-1px)}.tooltip-qrz-link i{margin-right:4px}table{width:100%;border-collapse:collapse;font-size:.85rem}thead{position:sticky;top:0;background:#222;z-index:1}td,th{border:1px solid #333;padding:4px 6px;text-align:left;white-space:nowrap}td.comment{white-space:normal}td.country{font-size:.8rem;color:#aaa}td.continent{font-size:.8rem;color:#aaa;text-align:center}td.mode,th.mode{font-size:.75rem;font-weight:700;color:#2d7;text-align:center}.flag{font-size:1.2rem;margin-right:6px}tbody tr:nth-child(odd){background:#181818}tbody tr:nth-child(2n){background:#141414}tbody tr.new{background:rgba(0,255,100,.2)!important;transition:background-color .5s ease-out}tbody tr.recent{background:rgba(0,255,100,.08)!important;transition:background-color .5s ease-out}tbody tr.fading{background:rgba(0,255,100,.03)!important;transition:background-color .5s ease-out}tbody tr.user-spot{background:rgba(255,50,50,.15)!important;border-left:3px solid #f33}tbody tr.user-spot:hover{background:rgba(255,50,50,.25)!important}@keyframes flash{from{background-color:#264f26}to{background-color:inherit}}.mobile-menu{display:none;gap:10px;margin-bottom:15px}.burger-btn{background:#222;border:1px solid #333;color:#eee;padding:10px 15px;border-radius:4px;cursor:pointer;font-size:1.2rem;transition:background .2s}.burger-btn:hover{background:#333}.close-btn{display:none;position:absolute;top:10px;right:10px;background:#a33;border:none;color:#fff;padding:8px 12px;border-radius:4px;cursor:pointer;font-size:1rem;z-index:10}.close-btn:hover{background:#c44}@media (max-width:932px){.mobile-menu{display:flex}.right-sidebar,.sidebar{position:fixed;top:0;bottom:0;z-index:100;transform:translateX(-100%);transition:transform .3s;width:100%!important;overflow-y:auto;box-sizing:border-box}.right-sidebar{transform:translateX(100%);right:0;padding:60px 20px 20px}.right-sidebar.mobile-visible,.sidebar.mobile-visible{transform:translateX(0)}.main-content.hidden{display:none}.close-btn{display:block}.sidebar{left:0;padding:60px 20px 20px}.band-button{margin-bottom:10px}.utc-time{font-size:2.5rem}table td:nth-child(10),table td:nth-child(5),table td:nth-child(6),table td:nth-child(7),table td:nth-child(8),table td:nth-child(9),table th:nth-child(10),table th:nth-child(5),table th:nth-child(6),table th:nth-child(7),table th:nth-child(8),table th:nth-child(9){display:none}.telnet-cards{grid-template-columns:1fr;gap:15px}.telnet-card{padding:15px}.telnet-card h2{font-size:1.2rem}.modal-content{margin:30px;width:calc(100% - 60px);padding:20px}.hot-stations-grid,.latest-spots-grid{grid-template-columns:repeat(2,1fr);gap:8px}.latest-spot-card{padding:8px}.spot-card-country{display:none}.spot-card-dx{font-size:1rem}.spot-card-freq{font-size:.85rem}.map-view{padding-top:5px;min-height:calc(100vh - 100px)}.latest-spots{padding:0 0 10px}.stats-view{padding:0;width:100%;overflow:hidden}.stats-content{padding:10px;width:100%;box-sizing:border-box}.stats-content h3{font-size:1rem;margin:0 0 10px}.chart-container{padding:8px;height:400px;width:100%;box-sizing:border-box;overflow:hidden}.stats-note{margin:0 0 10px;padding:10px;font-size:.8rem}.tabs button{padding:10px 12px}.tab-text{display:none!important}.tabs button i{margin-right:0!important}}.footer{background:#1a1a1a;border-top:1px solid #333;text-align:center;padding:20px;margin-top:40px;font-size:.9rem;color:#999}