1#botmon__admin { 2 3 section[role="tabpanel"] { 4 margin: .25rem 0; 5 } 6 7 /* icon items */ 8 .has_icon { 9 display: inline-flex; 10 align-items: center; 11 width: auto; 12 white-space: nowrap; 13 } 14 .icon_only { 15 display: inline-grid; 16 grid-template-columns: 20px max-content; 17 width: 20px; max-width: 20px; 18 } 19 20 .has_icon, .icon_only { 21 & { 22 align-items: center; 23 overflow: hidden; 24 column-gap: .2em; 25 min-width: 20px; 26 } 27 28 &::before { 29 content: ''; 30 display: inline-block; 31 width: 20px; min-width: 20px; max-width: 20px; 32 height: 20px; 33 background: transparent none center no-repeat; 34 background-position: 0 0; 35 background-size: 20px; 36 } 37 38 /* user info Icon */ 39 &.user_known::before { background-image: url('img/user.svg') } 40 41 /* IP Address types */ 42 &.ipaddr::before { background-image: url('img/addr.png') } 43 &.ip4::before { background-position-y: -20px } 44 &.ip6::before { background-position-y: -40px } 45 &.ipnet::before { background-position-y: -60px } 46 &.ipother::before { background-image: url('img/more.svg') } 47 48 /* Bot icons */ 49 &.bot::before { background-image: url('img/bots.png') } 50 &.bot_googlebot::before, &.bot_googleads::before, &.bot_googleapi::before, 51 &.bot_googleother::before, &.bot_googinspct::before { background-position-y: -20px } 52 &.bot_bingbot::before { background-position-y: -40px } 53 &.bot_applebot::before { background-position-y: -60px } 54 &.bot_openai::before, &.bot_chatgpt::before { background-position-y: -80px } 55 &.bot_metabots::before, &.bot_metauser::before { background-position-y: -100px } 56 &.bot_ahrefs::before { background-position-y: -120px } 57 &.bot_seznambot::before { background-position-y: -140px } 58 &.bot_claude::before { background-position-y: -160px } 59 &.bot_baidu::before { background-position-y: -180px } 60 &.bot_reddit::before { background-position-y: -200px } 61 &.bot_wayback::before { background-position-y: -220px } 62 &.bot_alibaba::before { background-position-y: -241px } 63 &.bot_ibou::before { background-position-y: -260px } 64 &.bot_discord::before { background-position-y: -280px } 65 &.bot_twitter::before { background-position-y: -300px } 66 &.bot_goognblm::before { background-position-y: -320px } 67 &.bot_whatsapp::before { background-position-y: -340px } 68 &.bot_perplexity::before, &.bot_perplexityusr::before { background-position-y: -360px } 69 &.bot_tiktok::before { background-position-y: -380px } 70 &.bot_claudeusr::before { background-position-y: -400px } 71 &.bot_yahoolp::before { background-position-y: -420px } 72 &.bot_other::before { background-image: url('img/more.svg') } 73 74 /* platform icons */ 75 &.platform::before { background-image: url('img/platforms.png') } 76 &.pf_win10::before { background-position-y: -20px } 77 &.pf_winold::before, dd.platform_winold::before, 78 &.pf_winsrvr:before { background-position-y: -40px } 79 &.pf_macos::before { background-position-y: -60px } 80 &.pf_macosold::before { background-position-y: -80px } 81 &.pf_ios::before { background-position-y: -100px } 82 &.pf_android::before { background-position-y: -120px } 83 &.pf_androidold::before { background-position-y: -140px } 84 &.pf_linux::before { background-position-y: -160px } 85 &.pf_bsd::before { background-position-y: -180px } 86 &.pf_chromium::before { background-position-y: -200px } 87 &.pf_hmos::before { background-position-y: -220px } 88 &.pf_tizen::before { background-position-y: -240px } 89 &.pf_fire::before { background-position-y: -260px } 90 &.pf_app::before { background-position-y: -280px } 91 &.pf_other::before { background-image: url('img/more.svg') } 92 93 /* browser icons */ 94 &.client::before { background-image: url('img/clients.png') } 95 &.cl_firefox::before, &.cl_ffios::before { background-position-y: -20px } 96 &.cl_safari::before { background-position-y: -40px } 97 &.cl_chrome::before { background-position-y: -60px } 98 &.cl_msedge::before { background-position-y: -80px } 99 &.cl_msie::before { background-position-y: -100px } 100 &.cl_opera::before { background-position-y: -120px } 101 &.cl_brave::before { background-position-y: -140px } 102 &.cl_ddg::before { background-position-y: -160px } 103 &.cl_samsung::before { background-position-y: -180px } 104 &.cl_huawei::before { background-position-y: -200px } 105 &.cl_vivaldi::before { background-position-y: -220px } 106 &.cl_aol::before { background-position-y: -240px } 107 &.cl_ya::before { background-position-y: -260px } 108 &.cl_silk::before { background-position-y: -280px } 109 &.cl_ffold::before { background-position-y: -300px } 110 &.cl_chromeold::before { background-position-y: -320px } 111 &.cl_ecosia::before { background-position-y: -340px } 112 &.cl_webkit::before { background-position-y: -360px } 113 &.cl_operaold::before { background-position-y: -380px } 114 &.cl_wget::before { background-position-y: -400px } 115 &.cl_python::before { background-position-y: -420px } 116 &.cl_privacybrowser::before { background-position-y: -440px } 117 &.cl_other::before { background-image: url('img/more.svg') } 118 119 /* Captcha statuses */ 120 &.captcha::before { background-image: url('img/captcha.png') } 121 &.cap_Y::before { background-position-y: -20px } 122 &.cap_N::before, &.cap_YN::before, &.cap_YYN::before { background-position-y: -40px } 123 &.cap_W::before { background-position-y: -60px } 124 &.cap_H::before { background-position-y: -80px } 125 &.cap_X::before, &.cap_undefined::before { background-position-y: -100px } 126 &.cap_YH::before, &.cap_YYH::before { background-position-y: -120px } 127 &.cap_YNH::before { background-position-y: -140px } 128 &.cap_YY::before { background-position-y: -160px } 129 130 /* Country flags */ 131 /* Note: flag images and CSS adapted from: https://github.com/lafeber/world-flags-sprite/ */ 132 &.country::before { 133 content: ''; 134 height: 20px; width: 20px; 135 background:url(img/flags.png) no-repeat 0 0; 136 background-size: 20px auto; 137 } 138 &.ctry_eu::before { background-position-y: -161px } 139 &.ctry_ad::before { background-position-y: -441px } 140 &.ctry_ae::before { background-position-y: -461px } 141 &.ctry_af::before { background-position-y: -481px } 142 &.ctry_ag::before { background-position-y: -501px } 143 &.ctry_ai::before { background-position-y: -521px } 144 &.ctry_al::before { background-position-y: -541px } 145 &.ctry_am::before { background-position-y: -561px } 146 &.ctry_ao::before { background-position-y: -581px } 147 &.ctry_aq::before { background-position-y: -601px } 148 &.ctry_ar::before { background-position-y: -621px } 149 &.ctry_as::before { background-position-y: -641px } 150 &.ctry_at::before { background-position-y: -661px } 151 &.ctry_au::before { background-position-y: -681px } 152 &.ctry_aw::before { background-position-y: -701px } 153 &.ctry_ax::before { background-position-y: -721px } 154 &.ctry_az::before { background-position-y: -741px } 155 &.ctry_ba::before { background-position-y: -761px } 156 &.ctry_bb::before { background-position-y: -781px } 157 &.ctry_bd::before { background-position-y: -801px } 158 &.ctry_be::before { background-position-y: -821px } 159 &.ctry_bf::before { background-position-y: -841px } 160 &.ctry_bg::before { background-position-y: -861px } 161 &.ctry_bh::before { background-position-y: -881px } 162 &.ctry_bi::before { background-position-y: -901px } 163 &.ctry_bj::before { background-position-y: -921px } 164 &.ctry_bm::before { background-position-y: -941px } 165 &.ctry_bn::before { background-position-y: -961px } 166 &.ctry_bo::before { background-position-y: -981px } 167 &.ctry_br::before { background-position-y: -1001px } 168 &.ctry_bs::before { background-position-y: -1021px } 169 &.ctry_bt::before { background-position-y: -1041px } 170 &.ctry_bw::before { background-position-y: -1061px } 171 &.ctry_by::before { background-position-y: -1081px } 172 &.ctry_bz::before { background-position-y: -1101px } 173 &.ctry_ca::before { background-position-y: -1121px } 174 &.ctry_cd::before { background-position-y: -1141px } 175 &.ctry_cf::before { background-position-y: -1161px } 176 &.ctry_cg::before { background-position-y: -1181px } 177 &.ctry_ch::before { background-position-y: -1201px } 178 &.ctry_ci::before { background-position-y: -1221px } 179 &.ctry_ck::before { background-position-y: -1241px } 180 &.ctry_cl::before { background-position-y: -1261px } 181 &.ctry_cm::before { background-position-y: -1281px } 182 &.ctry_cn::before { background-position-y: -1301px } 183 &.ctry_co::before { background-position-y: -1321px } 184 &.ctry_cr::before { background-position-y: -1341px } 185 &.ctry_cu::before { background-position-y: -1361px } 186 &.ctry_cv::before { background-position-y: -1381px } 187 &.ctry_cy::before { background-position-y: -1401px } 188 &.ctry_cz::before { background-position-y: -1421px } 189 &.ctry_de::before { background-position-y: -1441px } 190 &.ctry_dj::before { background-position-y: -1461px } 191 &.ctry_dk::before { background-position-y: -1481px } 192 &.ctry_dm::before { background-position-y: -1501px } 193 &.ctry_do::before { background-position-y: -1521px } 194 &.ctry_dz::before { background-position-y: -1541px } 195 &.ctry_ec::before { background-position-y: -1561px } 196 &.ctry_ee::before { background-position-y: -1581px } 197 &.ctry_eg::before { background-position-y: -1601px } 198 &.ctry_eh::before { background-position-y: -1621px } 199 &.ctry_er::before { background-position-y: -1641px } 200 &.ctry_es::before { background-position-y: -1661px } 201 &.ctry_et::before { background-position-y: -1681px } 202 &.ctry_fi::before { background-position-y: -1701px } 203 &.ctry_fj::before { background-position-y: -1721px } 204 &.ctry_fm::before { background-position-y: -1741px } 205 &.ctry_fo::before { background-position-y: -1761px } 206 &.ctry_fr::before, &.ctry_bl::before, &.ctry_cp::before, &.ctry_mf::before, 207 &.ctry_yt::before { background-position-y: -1781px } 208 &.ctry_ga::before { background-position-y: -1801px } 209 &.ctry_gb::before, &.ctry_bg::before, &.ctry_uk::before, 210 &.ctry_sh::before { background-position-y: -1821px } 211 &.ctry_gd::before { background-position-y: -1841px } 212 &.ctry_ge::before { background-position-y: -1861px } 213 &.ctry_gg::before { background-position-y: -1881px } 214 &.ctry_gh::before { background-position-y: -1901px } 215 &.ctry_gi::before { background-position-y: -1921px } 216 &.ctry_gl::before { background-position-y: -1941px } 217 &.ctry_gm::before { background-position-y: -1961px } 218 &.ctry_gn::before { background-position-y: -1981px } 219 &.ctry_gp::before { background-position-y: -2001px } 220 &.ctry_gq::before { background-position-y: -2021px } 221 &.ctry_gr::before { background-position-y: -2041px } 222 &.ctry_gt::before { background-position-y: -2061px } 223 &.ctry_gu::before { background-position-y: -2081px } 224 &.ctry_gw::before { background-position-y: -2101px } 225 &.ctry_gy::before { background-position-y: -2121px } 226 &.ctry_hk::before { background-position-y: -2141px } 227 &.ctry_hn::before { background-position-y: -2161px } 228 &.ctry_hr::before { background-position-y: -2181px } 229 &.ctry_ht::before { background-position-y: -2201px } 230 &.ctry_hu::before { background-position-y: -2221px } 231 &.ctry_id::before, &.ctry_mc::before { background-position-y: -2241px } 232 &.ctry_ie::before { background-position-y: -2261px } 233 &.ctry_il::before { background-position-y: -2281px } 234 &.ctry_im::before { background-position-y: -2301px } 235 &.ctry_in::before { background-position-y: -2321px } 236 &.ctry_iq::before { background-position-y: -2341px } 237 &.ctry_ir::before { background-position-y: -2361px } 238 &.ctry_is::before { background-position-y: -2381px } 239 &.ctry_it::before { background-position-y: -2401px } 240 &.ctry_je::before { background-position-y: -2421px } 241 &.ctry_jm::before { background-position-y: -2441px } 242 &.ctry_jo::before { background-position-y: -2461px } 243 &.ctry_jp::before { background-position-y: -2481px } 244 &.ctry_ke::before { background-position-y: -2501px } 245 &.ctry_kg::before { background-position-y: -2521px } 246 &.ctry_kh::before { background-position-y: -2541px } 247 &.ctry_ki::before { background-position-y: -2561px } 248 &.ctry_km::before { background-position-y: -2581px } 249 &.ctry_kn::before { background-position-y: -2601px } 250 &.ctry_kp::before { background-position-y: -2621px } 251 &.ctry_kr::before { background-position-y: -2641px } 252 &.ctry_kw::before { background-position-y: -2661px } 253 &.ctry_ky::before { background-position-y: -2681px } 254 &.ctry_kz::before { background-position-y: -2701px } 255 &.ctry_la::before { background-position-y: -2721px } 256 &.ctry_lb::before { background-position-y: -2741px } 257 &.ctry_lc::before { background-position-y: -2761px } 258 &.ctry_li::before { background-position-y: -2781px } 259 &.ctry_lk::before { background-position-y: -2801px } 260 &.ctry_lr::before { background-position-y: -2821px } 261 &.ctry_ls::before { background-position-y: -2841px } 262 &.ctry_lt::before { background-position-y: -2861px } 263 &.ctry_lu::before { background-position-y: -2881px } 264 &.ctry_lv::before { background-position-y: -2901px } 265 &.ctry_ly::before { background-position-y: -2921px } 266 &.ctry_ma::before { background-position-y: -2941px } 267 &.ctry_md::before { background-position-y: -2961px } 268 &.ctry_me::before { background-position-y: -2981px } 269 &.ctry_mg::before { background-position-y: -3001px } 270 &.ctry_mh::before { background-position-y: -3021px } 271 &.ctry_mk::before { background-position-y: -3041px } 272 &.ctry_ml::before { background-position-y: -3061px } 273 &.ctry_mm::before { background-position-y: -3081px } 274 &.ctry_mn::before { background-position-y: -3101px } 275 &.ctry_mo::before { background-position-y: -3121px } 276 &.ctry_mq::before { background-position-y: -3141px } 277 &.ctry_mr::before { background-position-y: -3161px } 278 &.ctry_ms::before { background-position-y: -3181px } 279 &.ctry_mt::before { background-position-y: -3201px } 280 &.ctry_mu::before { background-position-y: -3221px } 281 &.ctry_mv::before { background-position-y: -3241px } 282 &.ctry_mw::before { background-position-y: -3261px } 283 &.ctry_mx::before { background-position-y: -3281px } 284 &.ctry_my::before { background-position-y: -3301px } 285 &.ctry_mz::before { background-position-y: -3321px } 286 &.ctry_na::before { background-position-y: -3341px } 287 &.ctry_nc::before { background-position-y: -3361px } 288 &.ctry_ne::before { background-position-y: -3381px } 289 &.ctry_ng::before { background-position-y: -3401px } 290 &.ctry_ni::before { background-position-y: -3421px } 291 &.ctry_nl::before, 292 &.ctry_bq::before { background-position-y: -3441px } 293 &.ctry_no::before, &.ctry_bv::before , &.ctry_nq::before, 294 &.ctry_sj::before { background-position-y: -3461px } 295 &.ctry_np::before { background-position-y: -3481px } 296 &.ctry_nr::before { background-position-y: -3501px } 297 &.ctry_nz::before { background-position-y: -3521px } 298 &.ctry_om::before { background-position-y: -3541px } 299 &.ctry_pa::before { background-position-y: -3561px } 300 &.ctry_pe::before { background-position-y: -3581px } 301 &.ctry_pf::before { background-position-y: -3601px } 302 &.ctry_pg::before { background-position-y: -3621px } 303 &.ctry_ph::before { background-position-y: -3641px } 304 &.ctry_pk::before { background-position-y: -3661px } 305 &.ctry_pl::before { background-position-y: -3681px } 306 &.ctry_pr::before { background-position-y: -3701px } 307 &.ctry_ps::before { background-position-y: -3721px } 308 &.ctry_pt::before { background-position-y: -3741px } 309 &.ctry_pw::before { background-position-y: -3761px } 310 &.ctry_py::before { background-position-y: -3781px } 311 &.ctry_qa::before { background-position-y: -3801px } 312 &.ctry_re::before { background-position-y: -3821px } 313 &.ctry_ro::before { background-position-y: -3841px } 314 &.ctry_rs::before { background-position-y: -3861px } 315 &.ctry_ru::before { background-position-y: -3881px } 316 &.ctry_rw::before { background-position-y: -3901px } 317 &.ctry_sa::before { background-position-y: -3921px } 318 &.ctry_sb::before { background-position-y: -3941px } 319 &.ctry_sc::before { background-position-y: -3961px } 320 &.ctry_sd::before { background-position-y: -3981px } 321 &.ctry_se::before { background-position-y: -4001px } 322 &.ctry_sg::before { background-position-y: -4021px } 323 &.ctry_si::before { background-position-y: -4041px } 324 &.ctry_sk::before { background-position-y: -4061px } 325 &.ctry_sl::before { background-position-y: -4081px } 326 &.ctry_sm::before { background-position-y: -4101px } 327 &.ctry_sn::before { background-position-y: -4121px } 328 &.ctry_so::before { background-position-y: -4141px } 329 &.ctry_sr::before { background-position-y: -4161px } 330 &.ctry_st::before { background-position-y: -4181px } 331 &.ctry_sv::before { background-position-y: -4201px } 332 &.ctry_sy::before { background-position-y: -4221px } 333 &.ctry_sz::before { background-position-y: -4241px } 334 &.ctry_tc::before { background-position-y: -4261px } 335 &.ctry_td::before { background-position-y: -4281px } 336 &.ctry_tg::before { background-position-y: -4301px } 337 &.ctry_th::before { background-position-y: -4321px } 338 &.ctry_tj::before { background-position-y: -4341px } 339 &.ctry_tl::before { background-position-y: -4361px } 340 &.ctry_tm::before { background-position-y: -4381px } 341 &.ctry_tn::before { background-position-y: -4401px } 342 &.ctry_to::before { background-position-y: -4421px } 343 &.ctry_tr::before { background-position-y: -4441px } 344 &.ctry_tt::before { background-position-y: -4461px } 345 &.ctry_tv::before { background-position-y: -4481px } 346 &.ctry_tw::before { background-position-y: -4501px } 347 &.ctry_tz::before { background-position-y: -4521px } 348 &.ctry_ua::before { background-position-y: -4541px } 349 &.ctry_ug::before { background-position-y: -4561px } 350 &.ctry_us::before { background-position-y: -4581px } 351 &.ctry_uy::before { background-position-y: -4601px } 352 &.ctry_uz::before { background-position-y: -4621px } 353 &.ctry_va::before { background-position-y: -4641px } 354 &.ctry_vc::before { background-position-y: -4661px } 355 &.ctry_ve::before { background-position-y: -4681px } 356 &.ctry_vg::before { background-position-y: -4701px } 357 &.ctry_vi::before { background-position-y: -4721px } 358 &.ctry_vn::before { background-position-y: -4741px } 359 &.ctry_vu::before { background-position-y: -4761px } 360 &.ctry_ws::before { background-position-y: -4781px } 361 &.ctry_ye::before { background-position-y: -4801px } 362 &.ctry_za::before { background-position-y: -4821px } 363 &.ctry_zm::before { background-position-y: -4841px } 364 &.ctry_zw::before { background-position-y: -4861px } 365 &.ctry_sx::before { background-position-y: -4881px } 366 &.ctry_cw::before { background-position-y: -4901px } 367 &.ctry_ss::before { background-position-y: -4921px } 368 &.ctry_nu::before { background-position-y: -4941px } 369 370 &.ctry_local::before { background-image: url('img/addr.png') } /* localhost */ 371 &.ctry_other::before { background-image: url('img/more.svg') } /* other countries */ 372 373 /* Session icons */ 374 &.session::before { background-image: url('img/idtyp.png') } 375 &.typ_dw::before { background-position-y: -20px } 376 &.typ_php::before { background-position-y: -40px } 377 &.typ_ip::before { background-position-y: -60px } 378 &.typ_usr::before { background-position-y: -80px } 379 &.typ_rnd::before { background-position-y: -100px } 380 381 /* External link icons */ 382 &.extlink::before { background-image: url('img/links.png') } 383 &.extlink.ipinfo::before { background-position-y: -40px } 384 &.extlink.abuseipdb::before { background-position-y: -20px } 385 386 /* Common referers icons */ 387 &.referer::before { background-image: url('img/referers.png') } 388 &.ref_null::before { background-position-y: -20px } 389 &.ref_google::before { background-position-y: -40px } 390 &.ref_bing::before { background-position-y: -60px } 391 &.ref_yahoo::before { background-position-y: -80px } 392 &.ref_dokuwiki::before { background-position-y: -100px } 393 &.ref_duckduckgo::before { background-position-y: -120px } 394 &.ref_ecosia::before { background-position-y: -140px } 395 &.ref_yandex::before { background-position-y: -160px } 396 &.ref_chatgpt::before { background-position-y: -180px } 397 &.ref_brave::before { background-position-y: -200px } 398 &.ref_wikipedia::before { background-position-y: -220px } 399 &.ref_denkfehler::before { background-position-y: -240px } 400 &.ref_fallacies::before { background-position-y: -260px } 401 &.ref_facebook::before { background-position-y: -280px } 402 &.ref_discord::before { background-position-y: -300px } 403 &.ref_other::before { background-image: url('img/more.svg') } 404 405 /* seen-by icons */ 406 &.seenby::before { background-image: url('img/stages.png') } 407 &.sb_srv::before { background-position-y: -20px } 408 &.sb_log::before { background-position-y: -40px } 409 &.sb_srvlog::before { background-position-y: -60px } 410 &.sb_tck::before { background-position-y: -80px } 411 &.sb_srvtck::before { background-position-y: -100px } 412 &.sb_logtck::before { background-position-y: -120px } 413 &.sb_srvlogtck::before { background-position-y: -140px } 414 } 415 416 .page_icon { 417 display: inline-flex; 418 column-gap: .25em; 419 align-items: center; 420 } 421 .page_icon::before { 422 content: ''; 423 display: inline-block; 424 width: 20px; min-width: 20px; max-width: 20px; 425 height: 20px; 426 background: transparent url('img/page.svg') center no-repeat; 427 background-position: 0 0; 428 background-size: 20px; 429 } 430 431 /* grid layout for the overview: */ 432 .botmon_bots_grid, .botmon_webmetrics_grid, .botmon_traffic_grid, .botmon_captcha_grid { 433 & { 434 display: grid; 435 grid-gap: 0 .33em; 436 } 437 dl { 438 dd { 439 display: flex; 440 justify-content: space-between; 441 align-items: center; 442 column-gap: .5em; 443 } 444 } 445 } 446 .botmon_bots_grid { 447 &[data-geoip="disabled"] { 448 & { 449 grid-template-columns: 1fr 1fr 1fr; 450 } 451 #botmon__botcountries { 452 display: none; 453 } 454 } 455 &:not([data-geoip="disabled"]) { 456 grid-template-columns: 1fr 1fr 1fr 1fr; 457 } 458 } 459 .botmon_webmetrics_grid { 460 &[data-geoip="disabled"] { 461 & { 462 grid-template-columns: 1fr 1fr 1fr; 463 } 464 #botmon__today__wm_countries { 465 display: none; 466 } 467 } 468 &:not([data-geoip="disabled"]) { 469 grid-template-columns: 1fr 1fr 1fr 1fr; 470 } 471 } 472 .botmon_traffic_grid { 473 & { 474 grid-template-columns: 2fr 1fr; 475 } 476 #botmon__today__wm_pages, #botmon__today__wm_referers { 477 & { 478 max-width: 100%; 479 overflow: hidden; 480 } 481 dd a { 482 white-space: nowrap; 483 overflow: hidden; 484 text-overflow: ellipsis; 485 } 486 } 487 } 488 .botmon_captcha_grid { 489 grid-template-columns: 1fr 1fr 1fr; 490 } 491 492 /* The tabs bar */ 493 #botmon__tabs ul.tabs li { 494 a[aria-selected="true"] { 495 background-color: #DDD; 496 color: #111; 497 } 498 a[aria-selected="false"] { 499 background-color: #EEE; 500 color: #111; 501 } 502 } 503 504 /* the "today" tab: */ 505 #botmon__latest { 506 507 /* item header */ 508 header { 509 background-color: #F0F0F0; 510 color: #333; 511 border: #999 solid 1px; 512 border-radius: .5rem .5rem 0 0; 513 margin: .5rem 0 1pt 0; 514 padding: .25rem .5rem; 515 font-size: 1rem; 516 line-height: 1.25; 517 } 518 519 /* list formatting */ 520 dl { 521 & { 522 border-left: #555 solid 1px; 523 padding-left: .5rem; 524 margin: 0; 525 font-size: 1rem; 526 line-height: 1.5; 527 } 528 &:first-child { 529 border-left: none; 530 padding-left: 0; 531 } 532 dt { 533 margin-bottom: .2em; 534 } 535 dd { 536 padding: 0; margin: 0; 537 } 538 dd.spaced { 539 display: flex; 540 justify-content: space-between; 541 } 542 dd:nth-child(even) { 543 background-color: #EEE; 544 } 545 } 546 547 /* Content */ 548 #botmon__today__content { 549 & details { 550 & { 551 margin: 0 0 1pt 0; 552 text-align: left; 553 } 554 summary { 555 & { 556 display: flex; 557 justify-content: flex-start; 558 align-items: center; 559 column-gap: .25em; 560 font-weight: bold; 561 font-size: 1rem; 562 line-height: 1.5; 563 margin: 0; 564 padding: .25em; 565 color: #333; 566 cursor: pointer; 567 } 568 &::marker { 569 content: none; 570 display: none; 571 } 572 &::before { 573 content: ''; 574 display: inline-block; 575 width: 1.25em; min-width: 1.25em; max-width: 1.25em; 576 height: 1.25em; 577 background: transparent url('img/chevron.svg') center no-repeat; 578 background-size: 1.25em; 579 transform: rotate(-90deg); 580 transition-duration: .25s; 581 } 582 } 583 &[open] { 584 & > summary::before { 585 transform: rotate(0deg); 586 } 587 } 588 & > div { 589 padding: .5rem; 590 border: #999 solid 1px; 591 border-top-width: 0; 592 border-radius: 0 0 .25rem .25rem; 593 } 594 & details summary { 595 & { 596 background-color: transparent; 597 border: transparent none 0; 598 } 599 span.title { 600 flex-grow: 1; 601 } 602 a.ext_info { 603 display: inline-block; 604 width: 1.25em; height: 1.25em; 605 overflow: hidden; 606 border-radius: 50%; 607 } 608 a.ext_info::before { 609 content: ''; 610 display: inline-block; 611 width: 1.25em; height: 1.25em; 612 background: transparent url('img/info.svg') center no-repeat 613 } 614 } 615 } 616 & > details > summary { 617 background-color: #F0F0F0; 618 border: #999 solid 1px; 619 } 620 } 621 622 /* visitor lists: */ 623 #botmon__today__visitorlists { 624 & > details summary { 625 border-radius: .5em; 626 } 627 details ul { 628 margin: 0; 629 padding: 0; 630 list-style: none; 631 } 632 details ul > li { 633 margin: 0 0 0 .75rem; 634 padding: 0; 635 color: #000; 636 } 637 details ul > li > details { 638 border: #ccc solid 1px; 639 border-radius: .5em; 640 } 641 details ul > li > details > summary { 642 display: grid; 643 grid-template-columns: 1.25em minmax(calc(100px + 4em), auto) max-content; 644 justify-items: stretch; 645 justify-content: stretch; 646 align-items: center; 647 column-gap: .5em; 648 font-weight: normal; 649 font-size: 1rem; 650 line-height: 1.5; 651 background-color: #F0F0F0; 652 border-bottom: #CCC solid 1px; 653 border-radius: .7em; 654 overflow: auto; 655 } 656 details ul > li > details > summary.noServer { 657 opacity: 67%; 658 } 659 details ul > li > details > summary > span { 660 display: flex; 661 align-items: center; 662 column-gap: .25em; 663 } 664 details ul > li > details > summary > span:first-child { 665 justify-content: flex-start; 666 } 667 details ul > li > details > summary > span:last-child { 668 justify-content: flex-end; 669 } 670 details ul > li > details > summary > span > span[title] { 671 cursor: help; 672 } 673 674 dl.visitor_details { 675 & { 676 display: grid; 677 grid-template-columns: min-content auto; 678 gap: .25em .5em; 679 border-left: transparent none 0; 680 margin: .5rem .5rem .25rem 0; 681 } 682 dt { 683 grid-column: 1; 684 white-space: nowrap; 685 } 686 dd { 687 grid-column: 2; 688 background-color: transparent; 689 } 690 dd.pages { 691 ul { 692 li { 693 & { 694 display: flex; 695 flex-direction: column; 696 line-height: 1.2rem; 697 margin: 0; 698 padding: 0 .25em; 699 } 700 &:nth-child(odd) { 701 background-color: #DFDFDF; 702 } 703 /*&.detailled { 704 outline: red dotted 1pt; 705 }*/ 706 } 707 } 708 a[hreflang] { 709 overflow: hidden; 710 text-overflow: ellipsis; 711 padding: 2pt 0 0 2pt; 712 713 } 714 a[hreflang]::after { 715 content: attr(hreflang); 716 font-size: smaller; 717 color: #666; 718 border: #666 solid 1px; 719 line-height: 1.25; 720 border-radius: 2pt; 721 padding: 0 1pt; 722 margin-left: .2em; 723 } 724 div.row { 725 & { 726 display: flex; 727 flex-direction: row; 728 justify-content: space-between; 729 align-items: baseline; 730 white-space: nowrap; 731 line-height: 1.35em; 732 } 733 & > div { 734 display: inline-flex; 735 column-gap: .4em; 736 } 737 } 738 span { 739 display: inline-block; 740 } 741 span.first-seen { 742 min-width: 4.2em; 743 text-align: right; 744 } 745 span.visit-length { 746 font-size: smaller; 747 } 748 span.bounce { 749 width: 1em; height: 1em; 750 overflow: hidden; 751 } 752 span.bounce::before { 753 display: inline-block; 754 content: ''; 755 width: 1em; height: 1em; 756 background: transparent url('img/bounce.svg') center no-repeat; 757 background-size: .95em; 758 } 759 span.referer, span.views, span.ip-address, span.user-agent { 760 font-size: smaller; 761 } 762 span.referer, span.ip-address, span.user-agent { 763 margin-left: .67rem; 764 } 765 span.user-agent { 766 line-break: anywhere; 767 text-wrap-mode: wrap; 768 } 769 } 770 } 771 772 dd.eval > ul { 773 li { 774 display: flex; 775 justify-content: space-between; 776 align-items: center; 777 } 778 li:nth-child(odd) { 779 background-color: #DFDFDF; 780 } 781 li.total { 782 border-top: #333 solid 1px; 783 font-style: italic; 784 } 785 } 786 787 /* user agent */ 788 span.agent::before { 789 background-image: url('img/info.svg') 790 } 791 792 /* pages seen */ 793 span.pageseen/*, span.pageviews */{ 794 border: #999 solid 1px; 795 padding: 0 2px; 796 font-size: smaller; 797 border-radius: .5em; 798 margin-right: .25em; 799 min-width: fit-content; 800 } 801 span.pageseen::before { 802 content : ''; 803 display: inline-block; 804 width: 1.25em; min-width: 1.25em; max-width: 1.25em; height: 1.25em; 805 background: transparent url('img/page.svg') center no-repeat; 806 background-size: 1.25em; 807 } 808 /*span.pageviews::before { 809 content : ''; 810 display: inline-block; 811 width: 1.25em; height: 1.25em; 812 background: transparent url('img/views.svg') center no-repeat; 813 background-size: 1.25em; 814 }*/ 815 } 816 817 /* item footer */ 818 footer { 819 & { 820 display: flex; 821 align-items: center; 822 column-gap: .25rem; 823 background-color: #F0F0F0; 824 color: #333; 825 border: #999 solid 1px; 826 border-radius: 0 0 .5rem .5rem; 827 margin: 1pt 0 0 0; 828 padding: .25rem .5rem; 829 line-height: 1.25; 830 } 831 & > svg { 832 width: 1.25em; height: 1.25em; 833 fill: #333; 834 flex-shrink: 0; 835 } 836 & > span { 837 font-size: .96rem; 838 line-height: 1.25rem; 839 } 840 & > span.error { 841 color: #961D1B; 842 font-weight: bold; 843 } 844 } 845 } 846 847 /* the log tab: */ 848 #botmon__log { 849 850 #botmon__loglist { 851 & { 852 border: #999 solid 1px; 853 background-color: #F0F0F0; 854 margin: .5rem 0 0 0; 855 padding: .5em; 856 border-radius: .5em 1pt 1pt .5em; 857 list-style: none inside; 858 display: block; 859 min-height: 24rem; 860 max-height: 32rem; 861 overflow: hidden auto 862 } 863 li { 864 & { 865 margin: 0; padding: 0; 866 } 867 &:nth-child(even) { 868 background-color: #DFDFDF; 869 } 870 &.skipped { color: #626262; font-style: italic;} 871 &.success { color: #217121; } 872 &.error { color: #bb2929; } 873 } 874 } 875 } 876} 877 878/* dark mode overrides */ 879@media (prefers-color-scheme: dark) { 880 body.darkmode.mode_admin #botmon__admin { 881 882 #botmon__tabs ul.tabs li { 883 a[aria-selected="true"] { 884 background-color: #0c0c0d; 885 color: #adadb3; 886 } 887 a[aria-selected="false"] { 888 background-color: #39393D; 889 color: #ADADB3; 890 } 891 } 892 893 #botmon__latest { 894 895 header { 896 background-color: #0c0c0d; 897 color: #adadb3; 898 border-color: #666; 899 } 900 901 /* list formatting */ 902 dl { 903 & { 904 border-left-color: #777; 905 } 906 dt { 907 color: #adadb3; 908 } 909 dd:nth-child(even) { 910 background-color: #333; 911 } 912 } 913 914 #botmon__today__content > details { 915 summary { 916 & { 917 background-color: #0c0c0d; 918 color: #adadb3; 919 border-color: #666; 920 } 921 &::after { 922 color: #76b0fd; 923 } 924 } 925 & > div { 926 border-color: #666; 927 } 928 } 929 930 /* visitor lists: */ 931 #botmon__today__visitorlists { 932 details ul > li { 933 & { 934 color: #aeaeae; 935 } 936 & > details { 937 border-color: #666; 938 } 939 & > details summary { 940 background-color: #171717; 941 } 942 } 943 944 dl.visitor_details { 945 dd.pages { 946 ul li:nth-child(odd) { 947 background-color: #333; 948 } 949 } 950 } 951 952 dd.eval > ul { 953 li:nth-child(odd) { 954 background-color: #333; 955 } 956 li.total { 957 border-top-color: #CCC; 958 } 959 } 960 span.pageseen, span.pageviews { 961 border-color: #555; 962 } 963 964 } 965 966 footer { 967 & { 968 background-color: #0c0c0d; 969 color: #adadb3; 970 border-color: #666; 971 } 972 & > svg { 973 fill: #777; 974 } 975 & > span.error { 976 color: #961D1B; 977 } 978 } 979 } 980 981 #botmon__log { 982 #botmon__loglist { 983 & { 984 border-color: #CCC; 985 background-color: #232327; 986 } 987 li { 988 &:nth-child(even) { background-color: #39393D; } 989 &.info { color: #a2a2a2;} 990 &.success { color: #50b750; } 991 &.error { color: #f87d7d; } 992 } 993 } 994 } 995 996 } 997} 998/* layout overrides for narrow screens: */ 999@media (max-width: 1024px) { 1000 #botmon__admin #botmon__latest { 1001 .botmon_traffic_grid { 1002 & { 1003 grid-template-columns: 1fr !important; 1004 } 1005 dt { 1006 margin: .5em 0; 1007 } 1008 dl { 1009 border-left: transparent none 0; 1010 padding-left: 0; 1011 } 1012 } 1013 } 1014} 1015 1016@media (max-width: 800px) { 1017 #botmon__admin #botmon__latest #botmon__today__visitorlists { 1018 dl.visitor_details { 1019 & { 1020 display: block; 1021 margin-top: .5rem; 1022 } 1023 dt { 1024 margin-left: .67rem; 1025 font-size: smaller; 1026 } 1027 dd { 1028 margin-left: 1.5rem; 1029 } 1030 dd.pages, dd.eval { 1031 margin-left: 0; 1032 } 1033 } 1034 } 1035} 1036 1037@media (max-width: 670px) { 1038 #botmon__admin #botmon__latest { 1039 .botmon_bots_grid, .botmon_webmetrics_grid, .botmon_captcha_grid { 1040 & { 1041 grid-template-columns: 1fr !important; 1042 } 1043 dt { 1044 margin: .5em 0; 1045 } 1046 dl { 1047 border-left: transparent none 0; 1048 padding-left: 0; 1049 } 1050 } 1051 } 1052} 1053 1054@media (max-width: 440px) { 1055 #botmon__admin #botmon__latest #botmon__today__content details > div { padding: .25em; } 1056 #botmon__admin #botmon__latest #botmon__today__visitorlists details ul > li { margin-left: 0; } 1057 #botmon__admin #botmon__latest #botmon__today__visitorlists details ul > li > details > summary { column-gap: .1em; } 1058}