/* Scoped to administration: report, map and Potree presentation stay unchanged. */
#adminModal { --admin-blue:#2464a8; --admin-navy:#173b66; --admin-pale:#edf4fc; padding:20px; }
#adminModal .admin-card { width:min(1260px,97vw); height:min(940px,94dvh); border:1px solid #d7e2ef; border-radius:20px; box-shadow:0 24px 80px #061c3e55; }
#adminModal .admin-head { padding:20px 26px; gap:18px; background:#fff; }
#adminModal .admin-brand { display:flex; gap:20px; align-items:center; min-width:0; }
#adminModal .admin-brand img { width:150px; height:52px; object-fit:contain; }
#adminModal h2 { font-size:23px; margin:0 0 4px; color:var(--admin-navy); letter-spacing:-.4px; }
#adminModal .admin-subtitle { margin:0; font-size:13px; color:#63768d; }
#adminModal #adminMessage:empty { display:none; }
#adminModal #adminMessage { margin-top:8px; line-height:1.45; font-size:13px; font-weight:600; }
#adminModal #adminClose { border:1px solid #d8e2ee; border-radius:10px; color:var(--admin-navy); padding:10px 16px; margin:0; flex-shrink:0; }
#adminModal .admin-tabs { padding:0 26px 16px; gap:9px; border-bottom:1px solid #d9e4f0; background:white; }
#adminModal .admin-tabs button { display:flex; align-items:center; gap:9px; border:1px solid #d9e4f0; padding:11px 17px; border-radius:10px; color:#49617e; margin:0; font-size:13px; font-weight:650; background:white; }
#adminModal .admin-tabs button span { font-size:11px; opacity:.65; }
#adminModal .admin-tabs button.active { color:white; background:var(--admin-blue); border-color:var(--admin-blue); box-shadow:0 3px 8px #2464a826; }
#adminModal .admin-body { min-height:0; padding:24px 26px 30px; background:#f3f6fb; scroll-padding-top:85px; }
#adminModal .admin-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
#adminModal .admin-metric { background:#fff; border:1px solid #dce5f0; border-radius:12px; padding:16px 18px; border-left:4px solid #9aadc3; }
#adminModal .admin-metric[data-tone="good"] { border-left-color:#269777; }
#adminModal .admin-metric[data-tone="blue"] { border-left-color:var(--admin-blue); }
#adminModal .admin-metric[data-tone="warn"] { border-left-color:#cf9126; }
#adminModal .admin-metric strong { font-size:27px; font-weight:750; color:var(--admin-navy); display:block; line-height:1.15; margin-bottom:5px; }
#adminModal .admin-metric span { font-size:12px; color:#60718a; }
#adminModal .admin-section-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin:0 0 15px; }
#adminModal .admin-section-head h3 { font-size:18px; color:var(--admin-navy); margin:0 0 5px; }
#adminModal .admin-hint { color:#536982; font-size:13px; line-height:1.6; margin:0; }
#adminModal .admin-storage { border:1px solid #dce5f0; padding:14px 18px; background:#fff; border-radius:12px; margin-bottom:20px; }
#adminModal .admin-storage-head { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:12px; color:#586c84; margin-bottom:9px; }
#adminModal .admin-storage-head strong { color:var(--admin-navy); }
#adminModal .admin-storage progress { width:100%; height:8px; display:block; border:0; border-radius:10px; overflow:hidden; accent-color:var(--admin-blue); }
#adminModal progress::-webkit-progress-bar { background:#e8eef5; }
#adminModal progress::-webkit-progress-value { background:var(--admin-blue); border-radius:10px; }
#adminModal .admin-storage[data-tone="warn"] progress::-webkit-progress-value { background:#bf7a16; }
#adminModal .admin-storage[data-tone="danger"] progress::-webkit-progress-value { background:#b83d3d; }
#adminModal .admin-filters { display:flex; align-items:end; flex-wrap:wrap; gap:10px; padding:12px; background:#e9eff7; border-radius:12px; margin:0 0 17px; }
#adminModal .admin-filters label { display:grid; gap:5px; color:#4e6580; font-size:11px; font-weight:650; flex:1 1 160px; margin:0; min-width:0; }
#adminModal .admin-filters label:first-child { flex:2 1 250px; }
#adminModal input:not([type="checkbox"]), #adminModal select { width:100%; border:1px solid #ccd9e7; border-radius:8px; background:white; color:#203b5d; padding:10px 11px; min-width:0; font:inherit; font-size:13px; }
#adminModal input::placeholder { color:#8795a7; }
#adminModal input[type="checkbox"] { width:17px; height:17px; accent-color:var(--admin-blue); flex-shrink:0; }
#adminModal :focus-visible { outline:3px solid #7db4ec; outline-offset:2px; }
#adminModal .admin-result-count { font-size:12px; color:#6b7c91; margin:0 0 11px; }
#adminModal .admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; align-items:start; }
#adminModal .admin-row { border:1px solid #d9e3ef; border-radius:13px; padding:17px 18px; min-width:0; box-shadow:0 2px 4px #1a3b6410; }
#adminModal .admin-row[hidden] { display:none; }
#adminModal .admin-row-head { gap:10px; align-items:flex-start; margin-bottom:13px; }
#adminModal .admin-row-title { min-width:0; }
#adminModal .admin-row-title strong { color:var(--admin-navy); font-size:15px; display:block; overflow-wrap:anywhere; margin:4px 0 0; }
#adminModal .admin-eyebrow { font-size:10px; color:#7890a9; text-transform:uppercase; letter-spacing:.9px; font-weight:700; }
#adminModal .admin-badges { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
#adminModal .admin-badge { display:inline-flex; align-items:center; border-radius:6px; padding:4px 7px; font-size:11px; font-weight:700; line-height:1.35; background:#edf1f6; color:#546880; }
#adminModal .admin-badge[data-tone="good"] { background:#e6f5ee; color:#217354; }
#adminModal .admin-badge[data-tone="blue"] { background:#e8f1fc; color:#245f9f; }
#adminModal .admin-badge[data-tone="warn"] { background:#fff2d9; color:#8b5b08; }
#adminModal .admin-badge[data-tone="danger"] { background:#fceaea; color:#a42d36; }
#adminModal .admin-facts { display:flex; gap:12px 22px; flex-wrap:wrap; padding:11px 0 13px; border-top:1px solid #edf1f6; color:#536a84; font-size:12px; line-height:1.5; }
#adminModal .admin-facts span { display:grid; gap:2px; }
#adminModal .admin-facts small { color:#7a8ba0; font-size:10px; }
#adminModal .admin-actions { display:flex; gap:7px; flex-wrap:wrap; align-items:center; }
#adminModal .small-button, #adminModal .danger-button { min-height:38px; border-radius:8px; padding:9px 11px; font-size:12px; font-weight:650; line-height:1.3; margin:0; }
#adminModal .small-button { background:white; border:1px solid #ccd9e8; color:#31577e; }
#adminModal .small-button.admin-accent, #adminModal .primary { background:var(--admin-blue); border-color:var(--admin-blue); color:white; }
#adminModal button:hover:not(:disabled) { filter:brightness(.96); }
#adminModal button:disabled { cursor:default; opacity:.45; }
#adminModal .admin-secondary-actions { margin-top:9px; }
#adminModal details { margin-top:12px; border-top:1px solid #e6edf5; padding-top:11px; }
#adminModal summary { cursor:pointer; color:#426383; font-size:12px; font-weight:650; line-height:1.5; padding:2px 0; }
#adminModal details > .admin-hint { margin:9px 0; }
#adminModal .admin-sensitive summary { color:#94636a; font-size:11px; font-weight:500; }
#adminModal .admin-sensitive .danger-button { margin-top:9px; }
#adminModal .danger-button { border:1px solid #ebc4c9; color:#a33742; background:#fff5f5; }
#adminModal .source-warning { margin:0 0 12px; padding:9px 11px; border-radius:8px; font-size:12px; }
#adminModal .source-details { margin:0; }
#adminModal .admin-diagnostic:not([open]) { display:none; }
#adminModal .admin-diagnostic[open] { display:block; }
#adminModal .admin-form { margin:12px 0 0; padding:0; border:0; background:transparent; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
#adminModal .admin-form label, #adminModal .admin-user-fields label { display:grid; gap:6px; font-size:12px; color:#526b88; font-weight:600; margin:0; }
#adminModal .admin-form button[type="submit"] { justify-self:start; padding:11px 18px; border-radius:8px; margin:0; font-size:12px; }
#adminModal .admin-create { padding:15px 18px; background:white; border:1px solid #d5e1ef; border-radius:12px; margin:0 0 20px; }
#adminModal .admin-create > summary { font-size:13px; color:var(--admin-blue); }
#adminModal .admin-user-fields { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin:12px 0; }
#adminModal .admin-user-fields label { flex:1 1 170px; }
#adminModal .admin-user-fields label.admin-check { display:flex; flex:0 1 auto; gap:7px; align-items:center; align-self:center; }
#adminModal .access-grid { border:1px solid #e0e7f1; border-radius:8px; padding:9px; margin:10px 0; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); background:#f8fafd; }
#adminModal .access-grid label { font-size:11px; padding:5px; min-height:30px; display:flex; align-items:center; gap:7px; }
#adminModal .admin-audit-grid { grid-template-columns:1fr; gap:7px; }
#adminModal .admin-audit-row { display:grid; grid-template-columns:minmax(130px,1fr) 160px minmax(140px,1fr) minmax(120px,1fr); align-items:center; gap:15px; padding:13px 17px; }
#adminModal .admin-audit-row strong { font-size:13px; color:var(--admin-navy); overflow-wrap:anywhere; }
#adminModal .admin-audit-row time, #adminModal .admin-audit-row .admin-ip { font-size:12px; color:#687e96; overflow-wrap:anywhere; }
#adminModal .admin-audit-row .admin-badge { justify-self:start; }
#adminModal .admin-empty { padding:30px; border:1px dashed #bdcbdd; border-radius:12px; color:#647c96; text-align:center; font-size:13px; }
@media(max-width:900px) {
  #adminModal .admin-grid { grid-template-columns:1fr; }
  #adminModal .admin-audit-row { grid-template-columns:minmax(130px,1fr) 160px 1fr; }
  #adminModal .admin-ip { grid-column:1/-1; }
  #adminModal .small-button, #adminModal .danger-button, #adminModal summary { min-height:44px; }
  #adminModal summary { display:flex; align-items:center; gap:7px; }
  #adminModal summary::before { content:'›'; font-size:18px; }
  #adminModal details[open] > summary::before { transform:rotate(90deg); }
}
@media(max-width:600px) {
  #adminModal { padding:0; }
  #adminModal .admin-card { width:100vw; height:100dvh; border:0; border-radius:0; }
  #adminModal .admin-head { padding:16px; gap:10px; }
  #adminModal .admin-brand { gap:0; }
  #adminModal .admin-brand img { display:none; }
  #adminModal h2 { font-size:20px; }
  #adminModal .admin-subtitle { font-size:11px; }
  #adminModal #adminClose { font-size:12px; padding:10px; min-height:44px; }
  #adminModal .admin-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; padding:0 12px 12px; overflow:visible; }
  #adminModal .admin-tabs button { padding:10px 3px; justify-content:center; font-size:11px; min-width:0; min-height:44px; }
  #adminModal .admin-tabs button span { display:none; }
  #adminModal .admin-body { padding:18px 12px 25px; }
  #adminModal .admin-overview { gap:6px; margin-bottom:14px; }
  #adminModal .admin-metric { padding:11px 9px; border-left-width:3px; border-radius:9px; }
  #adminModal .admin-metric strong { font-size:23px; }
  #adminModal .admin-metric span { font-size:10px; line-height:1.3; display:block; }
  #adminModal .admin-section-head { gap:10px; }
  #adminModal .admin-section-head h3 { font-size:16px; }
  #adminModal .admin-hint { font-size:11px; }
  #adminModal .admin-filters { padding:10px; gap:9px; }
  #adminModal .admin-filters label { flex:1 1 115px; }
  #adminModal .admin-filters label:first-child { flex-basis:100%; }
  #adminModal .admin-row { padding:14px; }
  #adminModal .admin-row-head { flex-direction:column; }
  #adminModal .admin-badges { justify-content:flex-start; }
  #adminModal .admin-form { grid-template-columns:1fr; }
  #adminModal .admin-audit-row { grid-template-columns:1fr auto; gap:8px; }
  #adminModal .admin-audit-row time { grid-column:1/-1; }
  #adminModal .admin-storage { padding:12px; }
}
