:root{--bg:#0b1018;--panel:#111a27;--aqua:#13283a;--aqua2:#17354a;--sky:#15263b;--blue:#2c84d8;--teal:#16c1b7;--yellow:#e9c46a;--muted:#aab6c5;--line:#34506c;--entry:#355c7d;--danger:#ff626d;color-scheme:dark}
*{box-sizing:border-box}html,body{height:100%;width:100%;margin:0}body{background:var(--bg);font-family:'Segoe UI',Arial,sans-serif;color:#fff;font-size:13px}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background .12s;border:1px solid transparent;color:#fff;background:var(--entry);padding:7px 11px;font-weight:600}button:hover:not(:disabled){background:var(--blue)}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.hidden{display:none!important}#app{height:100vh;min-height:480px;display:flex;flex-direction:column;overflow:hidden}
.menubar{height:34px;flex:0 0 34px;background:#d6d6d6;color:#161616;display:flex;align-items:stretch;z-index:9;border-bottom:1px solid #b0b0b0}.menu-dropdown{position:relative}.menubtn{font-size:15px;color:#181818;background:transparent;padding:4px 11px;height:100%;border:0;font-weight:400}.menubtn:hover,.menubtn.active{background:#b3c9e2}.menu-items{display:none;position:absolute;top:100%;left:0;min-width:245px;background:var(--panel);border:1px solid var(--line);box-shadow:0 6px 16px #0009;padding:4px;z-index:20;max-height:80vh;overflow:auto}.menu-dropdown.open .menu-items{display:block}.menu-items button{background:none;border:0;font-size:13px;font-weight:400;text-align:left;width:100%;white-space:nowrap;display:block;padding:8px 12px}.menu-items button:hover{background:var(--blue)}.menu-items .separator{height:1px;background:#466077;margin:5px 6px}.menu-items .menu-label{color:var(--teal);font-size:11px;padding:7px 10px 2px;font-weight:700}
.toolbar{height:67px;flex:0 0 67px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding-right:12px;overflow:hidden}.toolbar-tools{display:flex;align-items:stretch;height:100%;gap:3px;flex-shrink:0}.tool{border:1px solid #5d819e;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:61px;padding:2px 8px 1px;margin:3px 0;font-size:14px}.tool img{width:22px;height:22px;object-fit:contain;image-rendering:auto;margin-bottom:3px}.tool:hover{background:var(--aqua)}.about-tool{min-width:84px}.powercontrol{flex:0 0 auto;text-align:center;margin-left:9px;white-space:nowrap}.minor{display:block;color:var(--muted);font-size:10px;margin-bottom:3px}.smallbutton{padding:6px 11px;background:var(--blue);border:2px solid #fff;font-size:11px}.clockcheck{font-size:12px;color:#d4e2ef;white-space:nowrap;flex:0 0 auto;max-width:145px;overflow:hidden;text-overflow:ellipsis}.clock{color:#ffe36e;font-size:clamp(18px,1.65vw,26px);font-weight:800;white-space:nowrap;text-align:center;flex:1 1 auto;min-width:180px}.cat-display{display:flex;align-items:center;gap:11px;font-size:clamp(12px,1.1vw,19px);font-weight:700;white-space:nowrap;flex:0 0 auto;color:#e7f2ff}.cat-display #cat-mode{color:#b3c6d6}.cat-display #cat-label{font-size:17px}.dot{width:19px;height:19px;border-radius:100%;background:#a0a0a0;display:inline-block}.dot.on{background:#35d49a}.dot.error{background:#ff626d}
.empty-screen{position:relative;flex:1;overflow:hidden}.empty-screen img{width:100%;height:100%;object-fit:fill;display:block}.workspace{flex:1;display:grid;grid-template-columns:minmax(350px,45fr) minmax(330px,39fr) minmax(165px,16fr);gap:4px;padding:10px 10px 0;min-height:0}.left-panel{border:1px solid var(--line);background:var(--aqua);display:flex;flex-direction:column;min-height:0;min-width:0;padding:11px 8px}.qso-head{border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;min-height:230px;height:38%;padding:10px 6px 7px;gap:10px;overflow:hidden}.elapsed-box{border:2px solid #ffe36e;padding:4px 11px;font-size:21px;line-height:30px;font-weight:750;background:var(--aqua)}#callsign{width:min(240px,50%);min-width:160px;min-height:48px;text-transform:uppercase;text-align:center;border:3px solid #06090d;background:var(--yellow);color:#111;font-size:22px;font-weight:750;letter-spacing:1px}.lastspot{color:#ffe36e;font-size:12px;font-weight:650;max-width:100%;text-align:center}.dupe-panel{position:absolute;right:10px;top:25px;background:var(--aqua);border:4px solid var(--danger);text-align:center;padding:6px 12px;z-index:2}.dupe-panel strong{display:block;color:red;font-size:23px}.dupe-panel div{font-weight:650}.qso-info{flex:1;align-self:stretch;margin:0 12px;border:3px solid #355c7d;display:flex;flex-direction:column;justify-content:center;text-align:center;cursor:pointer;min-height:40px;padding:5px 6px;overflow:hidden;color:#fff}.qso-info #info-name{font-size:clamp(13px,1.3vw,19px);font-weight:750}.qso-info #info-address{font-size:12px;color:var(--muted)}.qso-info .info-worked{font-size:12px;color:var(--yellow);font-weight:700}.qso-mini{width:100%;display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap}.qso-mini button{background:var(--panel);padding:4px 8px;font-size:10px}.qso-count{margin-left:8px;color:var(--yellow);font-weight:650;font-size:12px}.logbox{flex:1;min-height:0;margin-top:7px;border:1px solid var(--line);overflow:auto;background:var(--aqua)}.qso-table{width:100%;border-collapse:separate;border-spacing:0;text-align:center;table-layout:fixed}.qso-table th{background:var(--aqua2);border:1px solid #365874;color:#e7f2ff;padding:7px 2px;font-size:clamp(10px,.92vw,14px);position:sticky;top:0;z-index:2;white-space:nowrap}.qso-table th:nth-child(1){width:8%}.qso-table th:nth-child(2){width:11%}.qso-table th:nth-child(3){width:21%}.qso-table th:nth-child(4){width:20%}.qso-table th:nth-child(5){width:11%}.qso-table th:nth-child(6){width:13%}.qso-table th:nth-child(7){width:16%}.qso-table td{font-size:clamp(11px,1vw,16px);padding:10px 2px;line-height:1.4;border-bottom:1px solid #365874;background:var(--aqua);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-weight:700}.qso-table tr:hover td{background:#28445a}.qso-table tr.selected td{background:var(--blue);color:#fff}.qso-table td:first-child{color:var(--yellow)}.qso-table .placeholder td{padding:30px 6px;color:var(--muted);font-size:12px;font-weight:400}.qso-table tr{cursor:pointer}
.center-panel{display:grid;grid-template-rows:58% 42%;gap:8px;min-width:0;min-height:0}.activity-panel{border:2px solid var(--line);background:var(--sky);display:flex;flex-direction:column;text-align:center;padding:8px 12px 10px;min-height:0;overflow:auto}.activity-title,.activity-location{font-weight:700;font-size:clamp(19px,2vw,30px);color:#ffe36e;line-height:1.35}.activity-extra{color:var(--yellow);font-size:14px;flex:1;min-height:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-overflow:ellipsis}.online-panel{background:var(--panel);border:2px solid var(--line);padding:10px 12px;flex:0 0 auto}.online-buttons{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.online-buttons button{font-size:12px;padding:7px 10px}.btn-blue{background:var(--blue)}.btn-yellow{background:var(--yellow);color:#1a1a1a}.btn-grey{background:var(--entry)}.online-state{color:var(--muted);margin:6px 0 8px;font-size:12px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.metric{background:var(--aqua);border:1px solid var(--line);padding:4px 8px;text-align:left;min-width:0}.metric>span{display:block;color:var(--teal);font-size:10px;margin-bottom:8px}.metric>div{display:flex;gap:4px;align-items:center;justify-content:space-between;margin-bottom:8px}.metric small{color:var(--muted);font-size:10px;white-space:nowrap}.metric b{font-size:14px;white-space:nowrap}.dxcluster-panel{min-height:0;display:flex;flex-direction:column;border:2px solid var(--line);background:var(--panel);padding:0 7px 8px}.dxc-heading{display:flex;gap:10px;align-items:center;padding:7px 2px;flex-wrap:wrap}.dxc-heading strong{font-size:14px}.dxc-heading span{font-size:12px;color:var(--muted)}.dxc-heading select{margin-left:auto;max-width:190px;background:#e3e3e3;color:#111;font-size:12px;padding:4px;border:1px solid #666}.dxc-buttons{display:flex;gap:5px;align-items:center;flex-wrap:wrap;padding:4px 0}.dxc-buttons button{font-size:12px;padding:6px 8px}.dxc-console{flex:1;min-height:40px;overflow:auto;background:#08131f;border:1px solid #395c78;font:13px/1.6 Consolas,monospace;color:#d9f2ff;padding:8px;white-space:pre-wrap;overflow-wrap:anywhere}.dxc-console .status-line{color:#ffe36e}.dxc-console .spot-line{color:#35d49a}
.bandmap-panel{border:2px solid var(--line);background:var(--aqua);min-height:0;min-width:0;display:flex;flex-direction:column;padding-bottom:8px;align-items:stretch}.bandmap-title{background:var(--blue);font-weight:700;padding:5px 7px;font-size:14px}.vfo-display{border:1px solid var(--line);background:var(--panel);padding:7px;text-align:center;font:12px Consolas,monospace;margin:5px 5px 0;min-height:37px}.bandmap-panel canvas{min-height:80px;flex:1;width:100%;display:block;cursor:crosshair;margin-top:4px}.bands{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;padding:4px 5px}.bands button{font-size:11px;padding:3px 7px;background:var(--entry);border:1px solid var(--line)}.bands button.active{background:var(--blue)}.band-legend{display:flex;justify-content:center;gap:16px;font-weight:750;font-size:14px}.band-legend span:nth-child(1){color:#45d06f}.band-legend span:nth-child(2){color:#4da3ff}.band-legend span:nth-child(3){color:#ff5a5a}#clear-bandmap{align-self:center;padding:5px 12px;font-size:11px;margin-top:5px}
.statusbar{flex:0 0 25px;height:25px;background:#0a111b;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:#becdde;gap:10px;font-size:11px;padding:2px 12px;white-space:nowrap;overflow:hidden}.statusbar>span{overflow:hidden;text-overflow:ellipsis}#bridge-state{color:var(--teal)}
.modal-backdrop{position:fixed;inset:0;background:#000c;z-index:30;display:flex;align-items:center;justify-content:center;padding:18px}.dialog{width:min(890px,98vw);max-height:min(92vh,950px);min-height:150px;background:var(--bg);border:2px solid var(--line);box-shadow:0 12px 70px #000e;display:flex;flex-direction:column;padding:0 16px 15px;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin:0 -16px 10px;padding:10px 16px;background:var(--panel)}.modal-head h2{font-weight:700;font-size:19px;margin:0}.modal-head button{background:transparent;padding:5px 10px;font-size:20px}.modal-body{min-height:0;overflow:auto}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:13px}.modal-actions button{min-width:110px}.form-section{border:1px solid var(--line);padding:12px;margin-bottom:10px;background:var(--panel)}.form-section h3{color:#e7f2ff;font-size:15px;font-weight:700;margin:0 0 12px}.form-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.cols4{grid-template-columns:repeat(4,minmax(0,1fr))}.form-field{display:block;color:#d6e2f0;font-size:12px;font-weight:600;min-width:0}.form-field input,.form-field textarea,.form-field select{display:block;width:100%;margin-top:4px;min-width:0;background:var(--entry);border:1px solid #8af2ea;outline:none;color:#fff;font-size:15px;font-weight:700;padding:9px 10px;resize:vertical;border-radius:0}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal)}.form-field input.valid-ref{color:var(--yellow)}.form-field .reference-name{font-size:11px;font-weight:400;display:block;color:var(--muted);margin-top:4px;min-height:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.form-field .reference-name.invalid{color:var(--danger)}.form-hint{font-size:12px;color:var(--muted);margin:8px 0 0}.form-error{color:#ff737e;font-size:12px;margin:5px 0 10px;min-height:14px}.form-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.form-row>*{flex:1}.modal-scrolltable{width:100%;border-collapse:collapse;table-layout:auto}.modal-scrolltable th,.modal-scrolltable td{border-bottom:1px solid #304d64;padding:9px 8px;text-align:left}.modal-scrolltable th{color:var(--yellow)}.modal-scrolltable tr:hover td{background:#253b50}.modal-scrolltable td button{font-size:11px;padding:5px 8px}.danger{background:#9d2633}.text-note{color:var(--muted);font-size:12px;line-height:1.5}.toggle-row{display:flex;align-items:center;gap:9px;margin:8px 0}.toggle-row input{accent-color:var(--teal);width:18px;height:18px}.searchbox{background:var(--entry);color:#fff;padding:9px;width:100%;border:1px solid var(--line)}.settings-section{padding:12px;border:1px solid var(--line);background:var(--aqua);margin:7px 0}.settings-section h3{margin:0 0 10px;color:var(--yellow)}.buttonbar{display:flex;gap:6px;flex-wrap:wrap}.buttonbar button{font-size:12px}.toast{position:fixed;z-index:50;right:20px;bottom:36px;background:#19344a;color:#fff;padding:14px 17px;border:1px solid var(--teal);max-width:420px;box-shadow:0 4px 15px #0009}
@media(max-width:1250px){.toolbar{gap:5px}.toolbar .powercontrol{margin-left:0}.clockcheck{display:none}.tool{min-width:48px;padding:2px 3px;font-size:12px}.about-tool{min-width:64px}.workspace{grid-template-columns:minmax(290px,42fr) minmax(310px,41fr) minmax(145px,17fr);padding:5px}.qso-head{height:38%}.online-panel{padding:5px}.metric{padding:4px}.metric b{font-size:12px}.metric small{font-size:9px}.bandmap-panel .bands button{padding:3px 5px;font-size:10px}}
@media(max-width:850px){#app{min-width:820px}.workspace{min-width:800px}.toolbar{min-width:815px}.cat-display{gap:5px}.statusbar{min-width:820px}.form-grid.cols4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.workspace.swapped{grid-template-columns:minmax(330px,39fr) minmax(350px,45fr) minmax(165px,16fr)}.workspace.swapped .center-panel{grid-column:1;grid-row:1}.workspace.swapped .left-panel{grid-column:2;grid-row:1}.workspace.swapped .bandmap-panel{grid-column:3;grid-row:1}

/* DME Logger Web 0.0.3: ajustes tomados del escritorio Windows 3.2.9. */
.account-button{background:#27415b;border:1px solid #4b7191;color:#e7f2ff;padding:7px 12px;margin-left:6px;white-space:nowrap;max-width:115px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.cat-warning{color:#ffe36e;font-size:15px;white-space:nowrap;font-weight:800;animation:flash-frequency 1s steps(1,end) infinite}
@keyframes flash-frequency{0%,49%{opacity:1}50%,100%{opacity:0}}
.cat-display #cat-freq:empty{display:none}
.locator-section{display:flex;flex-direction:column;align-items:center;text-align:center;padding:15px 10px 12px}
.locator-section>.form-field{width:206px;max-width:100%;text-align:center;font-size:13px;font-weight:400}
.locator-section>.form-field input{width:206px;max-width:100%;height:35px;padding:5px 8px;text-align:center;color:#ffe36e;border:2px solid #8af2ea;font-size:15px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;margin-top:4px}
.locator-section .form-hint{max-width:100%;font-size:11px}
.reference-picker{display:block;position:relative;min-width:0}
.reference-picker input.ref-input{width:100%;padding:8px 10px}
.reference-picker input::placeholder{color:#c6d0dd;opacity:1}
.reference-suggestions{position:absolute;top:100%;left:0;right:0;z-index:36;max-height:205px;overflow:auto;background:#172d41;border:1px solid #3bc6c0;box-shadow:0 6px 18px #000a;padding:3px;min-width:min(330px,80vw)}
.reference-option{display:flex;width:100%;align-items:baseline;gap:8px;padding:7px;text-align:left;background:#192f44;border:0;border-bottom:1px solid #324f68;font-weight:400}
.reference-option b{color:#ffe36e;min-width:80px;white-space:nowrap}
.reference-option span{color:#dce7ef;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reference-option:hover,.reference-option.active{background:#2f6680}
.modal-scrolltable input[type=radio]{accent-color:#16c1b7;cursor:pointer;width:18px;height:18px}
@media(max-width:1350px){.cat-warning{font-size:12px}.account-button{padding:5px}.toolbar{gap:5px}.clock{min-width:150px}}
@media(max-width:1050px){.cat-warning{max-width:125px;white-space:normal;text-align:center;line-height:1.1}.clock{font-size:16px}}

.disabled-credentials{opacity:.45}
