    html, body { height:100%; margin:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; }
    #app { display:grid; grid-template-rows:auto 1fr auto; height:100%; background:#ffffff; color:#111; }
    header { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; padding:.6rem .8rem; background:#f5f5f7; color:#111; border-bottom:1px solid #ddd; }
    header h1 { font-size:1rem; margin:0 .6rem 0 0; }
    .btn { border:1px solid #ccc; background:#f0f0f2; color:#111; padding:.35rem .6rem; border-radius:.5rem; cursor:pointer; }
    .btn:hover { background:#e4e4e8; }
    a.btn { text-decoration:none; display:inline-block; }
    .btn.active { outline:2px solid #22d3ee; }
    .btn.ghost { background:transparent; border-color:#ccc; }
    #map { width:100%; height:100%; }
    .legend { background:#f5f5f7; color:#111; padding:.6rem .7rem; border-radius:.6rem; font-size:.85rem; box-shadow:0 2px 10px rgba(0,0,0,.1); border:1px solid #ddd; position:relative; }
    .legend-close { position:absolute; top:2px; right:6px; background:none; border:none; color:#666; font-size:1.1rem; cursor:pointer; line-height:1; padding:2px; }
    .legend-close:hover { color:#333; }
    .legend-show { position:fixed; bottom:24px; left:10px; z-index:800; background:#f5f5f7; color:#111; border:1px solid #ddd; border-radius:.5rem; width:32px; height:32px; font-size:1rem; cursor:pointer; display:none; box-shadow:0 2px 10px rgba(0,0,0,.1); }
    .legend .row { margin:.25rem 0; }
    .sw { display:inline-block; width:14px; height:14px; margin-right:.45rem; vertical-align:middle; border:1px solid #0006; }
    .error-banner { position:absolute; left:10px; top:60px; z-index:1000; background:#ffe8e8; color:#5a0000; padding:.45rem .6rem; border:1px solid #f5b1b1; border-radius:.4rem; display:none; }
    .footer { background:#f5f5f7; color:#111; padding:.8rem; border-top:1px solid #ddd; }
    .popup b { color:#111 }
    .kv { display:grid; grid-template-columns:auto 1fr; gap:.15rem .6rem; }
    .badge { display:inline-block; font-size:.75rem; border-radius:.4rem; padding:.05rem .4rem; margin-left:.4rem; vertical-align:baseline; border:1px solid #0006; }
    .muted { opacity:.75; }

    /* securitytxt-specific */
    .issues { font-size:.95rem; margin-bottom:4px; }
    .issues .bad { color:#ef4444; }
    .issues .warn { color:#f59e0b; }
    pre.raw { background:#0d0f16; border:1px solid #ddd; border-radius:8px; padding:10px; overflow:auto; color:#dbeafe; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.85rem; margin-top:4px; max-height:65vh; }

    #list-view { overflow:auto; background:#ffffff; display:none; }
    #list-view .list-inner { padding:.5rem .8rem 2rem; }
    #list-view table { width:100%; border-collapse:collapse; font-size:.85rem; }
    #list-view th { background:#f0f0f2; padding:.7rem; text-align:left; border-bottom:1px solid #ccc; position:sticky; top:0; cursor:pointer; user-select:none; z-index:1; }
    #list-view td { padding:.7rem; border-bottom:1px solid #eee; vertical-align:top; }
    #list-view th .arrow { margin-left:.3rem; font-size:.7rem; }
    .search-box { background:#f0f0f2; border:1px solid #ccc; color:#111; padding:.35rem .5rem; border-radius:.4rem; font-size:.85rem; width:14rem; }
    .list-summary { font-size:.85rem; margin-bottom:.5rem; opacity:.8; }
    .status-green { color:#16a34a; }
    .status-orange { color:#d97706; }
    .status-red { color:#dc2626; }
    @media(max-width:700px){ #list-view { overflow-x:auto; } }

    /* Leaflet popup dark theme */
    .leaflet-popup-content-wrapper { background:#ffffff; border:1px solid #ddd; color:#111; }
    .leaflet-popup-tip { background:#ffffff; border:1px solid #ddd; }
      .map-spinner{position:absolute;top:50%;left:50%;z-index:1000;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem}.map-spinner .dot{width:40px;height:40px;border:4px solid #ddd;border-top:4px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.map-spinner span{font-size:.85rem;color:#888}
