:root{--bg: #0b0e14;--card: #131722;--card-border: #232838;--text: #e6e9f0;--text-dim: #8b93a7;--green: #4ade80;--blue: #60a5fa;--purple: #c084fc;--orange: #fb923c;--red: #f87171}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.dashboard{padding:20px;max-width:1000px;margin:0 auto}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.header h1{font-size:18px;font-weight:600;margin:0}.status-pill{display:flex;align-items:center;gap:6px;font-size:13px;padding:4px 10px;border-radius:999px;background:var(--card);border:1px solid var(--card-border)}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.online{background:var(--green);box-shadow:0 0 6px var(--green)}.status-dot.offline{background:var(--red)}.online-players{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.online-player-card{position:relative;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:12px;background:linear-gradient(135deg,#4ade8024,#4ade8008);border:1px solid rgba(74,222,128,.4);box-shadow:0 0 14px #4ade8026;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.online-player-card:hover{transform:translateY(-1px);box-shadow:0 0 20px #4ade804d;border-color:var(--green)}.online-player-pulse{position:absolute;top:6px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);animation:online-pulse 1.6s ease-in-out infinite}@keyframes online-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.online-player-avatar{border-radius:6px;image-rendering:pixelated;flex-shrink:0}.online-player-info{display:flex;flex-direction:column;gap:1px}.online-player-name{font-size:14px;font-weight:700;color:var(--text)}.online-player-dimension{font-size:11px;color:var(--text-dim)}.online-player-cta{margin-left:6px;font-size:11px;color:var(--green);white-space:nowrap}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--card-border)}.tab{padding:8px 14px;font-size:13px;color:var(--text-dim);cursor:pointer;border-bottom:2px solid transparent;-webkit-user-select:none;user-select:none}.tab.active{color:var(--text);border-bottom-color:var(--blue)}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px}.card{background:var(--card);border:1px solid var(--card-border);border-radius:12px;padding:14px 16px}.stat-value{font-size:26px;font-weight:700;line-height:1.1}.stat-label{font-size:12px;color:var(--text-dim);margin-top:4px}.stat-card.green .stat-value{color:var(--green)}.stat-card.blue .stat-value{color:var(--blue)}.player-list{font-size:12px;color:var(--text-dim);margin-top:8px;line-height:1.6;word-break:break-word}.player-link{color:var(--green);cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.player-link:hover{color:var(--text)}.perf-card{grid-column:span 2}.perf-title{font-size:13px;font-weight:600;margin-bottom:14px;color:var(--text)}.gauge-row{display:flex;justify-content:space-around;flex-wrap:wrap;gap:12px}.gauge{display:flex;flex-direction:column;align-items:center;gap:6px}.gauge-label{font-size:12px;color:var(--text-dim)}.gauge-value{font-size:15px;font-weight:700;fill:var(--text)}.map-frame-wrap{border:1px solid var(--card-border);border-radius:12px;overflow:hidden;height:480px;background:var(--card)}.map-frame-wrap iframe{width:100%;height:100%;border:0}.offline-banner{text-align:center;padding:40px 20px;color:var(--text-dim);max-width:480px;margin:0 auto;line-height:1.6}.offline-banner a,.field-hint a{color:var(--blue)}.field-hint{font-size:12px;color:var(--text-dim);line-height:1.5;margin:6px 0 0}.refresh-time{font-size:11px;color:var(--text-dim);text-align:right;margin-top:4px}.settings-form{background:var(--card);border:1px solid var(--card-border);border-radius:12px;padding:20px;max-width:420px}.settings-intro{font-size:13px;color:var(--text-dim);margin:0 0 18px;line-height:1.5}.field-label{display:block;font-size:12px;color:var(--text-dim);margin:14px 0 6px}.field-label:first-of-type{margin-top:0}.field-input{width:100%;background:var(--bg);border:1px solid var(--card-border);border-radius:8px;padding:9px 10px;color:var(--text);font-size:14px}.field-input:focus{outline:2px solid var(--blue);outline-offset:1px}.field-error{color:var(--red);font-size:13px;margin-top:12px}.save-button{margin-top:18px;background:var(--blue);color:#0b0e14;border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer}.save-button:disabled{opacity:.6;cursor:default}.markers-panel{background:var(--card);border:1px solid var(--card-border);border-radius:12px;padding:14px 16px;margin-top:12px}.markers-header{display:flex;align-items:center;justify-content:space-between}.markers-header-actions{display:flex;gap:8px}.marker-confirm{display:flex;align-items:center;gap:6px}.markers-title{font-size:13px;font-weight:600}.markers-toggle{background:transparent;border:1px solid var(--card-border);color:var(--text);border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer}.markers-toggle:hover{border-color:var(--blue)}.marker-form{display:flex;flex-direction:column;gap:8px;margin-top:12px}.marker-coords{display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr;gap:8px}.marker-list{margin-top:12px;display:flex;flex-direction:column;gap:6px}.marker-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;padding:6px 0;border-top:1px solid var(--card-border)}.marker-row-clickable{cursor:pointer;border-radius:6px;margin:0 -6px;padding:6px}.marker-row-clickable:hover{background:var(--bg)}.marker-row-label{color:var(--text)}.marker-star{background:transparent;border:none;color:var(--text-dim);font-size:14px;cursor:pointer;padding:0 6px 0 0;vertical-align:-1px}.marker-star.favorited{color:#fbbf24}.marker-row-coords{color:var(--text-dim);font-size:12px}.marker-delete{background:transparent;border:none;color:var(--red);font-size:12px;cursor:pointer;padding:2px 6px}.marker-delete:hover{text-decoration:underline}
