[hidden] { display:none !important }
.srOnly { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%) }
#ui { --fg:#1c3035; --mut:#52676b; --ln:#d4ddda; --in:#fff; --ac:#205c55; --bg:#fafbf8; color:var(--fg); color-scheme:light; max-width:1152px; padding:0 clamp(16px,4vw,52px) 32px }
body { background:#f5f6f1 }
#ui *, #ui *::before { box-sizing:border-box }
#ui h1, #ui h2, .wordmark { font-family:Georgia,serif; font-weight:normal }
#ui h1 { font-size:clamp(30px,4vw,46px); line-height:1.13; letter-spacing:-.035em }
#ui h2 { font-size:26px; margin:0 0 12px }
#ui button, #ui input, #ui select, #ui textarea { border-radius:7px; padding:9px 12px }
#ui button { font-weight:550 }
#ui button:hover:not(:disabled) { border-color:var(--ac); background:#e5eeea; color:#193f3a }
#ui button.p { color:white }
#ui button.p:hover { background:#184740; color:white }
#ui button:disabled { opacity:.5; cursor:default }
#ui :focus-visible { outline:3px solid #a37532; outline-offset:2px }
#ui label { gap:5px; color:var(--mut); font-weight:600 }
#ui textarea { width:100%; border:1px solid var(--ln); font:14px/1.6 monospace; resize:vertical }
#authPanel { margin:clamp(26px,12vh,130px) auto 0; max-width:890px; display:grid; grid-template-columns: .95fr 1.05fr; background:white; border:1px solid var(--ln); border-radius:22px; overflow:hidden; box-shadow:0 22px 60px #1d403315 }
.authArt { padding:32px; background:#193f40; color:#f7edcf; display:flex; flex-direction:column; justify-content:space-between; gap:16px }
.wordmark { font-size:24px; letter-spacing:-.03em }
.atlas { width:min(90%,250px); margin:0 auto; color:#c9ad77 }
.eyebrow { font:700 10px/1.5 system-ui,sans-serif; letter-spacing:.17em; color:#60756c }
.authArt .eyebrow { color:#d5c59c }
#ui .authArt h2 { font-size:34px; line-height:1.1; margin:8px 0 0 }
.authFields { align-self:center; padding:clamp(24px,5vw,56px) }
.authFields h1 { margin:9px 0 }
#login { margin-top:26px }
#login input, #signIn { width:100%; min-height:42px }
#login label[for="password"] { margin:16px 0 5px }
.passwordField { position:relative }
#login #password { padding-right:66px }
#reveal { position:absolute; right:3px; top:3px; border:0; font-size:12px }
#signIn { margin-top:22px }
#cloudStatus { color:#8a392f; margin-bottom:0 }
.mast,.sectionHead,.filters,.selection,#actions nav { display:flex; align-items:center; flex-wrap:wrap; gap:12px }
.mast,.sectionHead { justify-content:space-between }
.mast { padding:22px 0 14px; border-bottom:1px solid var(--ln) }
#identity { font-size:12px; color:var(--mut); overflow-wrap:anywhere }
#actions nav { gap:4px; margin:16px 0 24px }
#actions nav button { background:transparent; border:1px solid transparent }
#actions nav button[aria-current="page"] { background:#dae9df; color:#194e44 }
.sectionHead { margin:20px 0 }
.sectionHead h1 { margin-top:5px }
.panel,#fm fieldset { background:white; border:1px solid var(--ln); border-radius:12px; min-width:0 }
.filters,.selection,.tools,.importBox,#fm fieldset { padding:18px }
.filters { align-items:end }
.filters label:first-child { flex:1 1 220px }
.filters input { width:100% }
.tableFrame { overflow:auto; max-height:58vh }
.records th,.records td { border:0; border-bottom:1px solid #e3e9e5; text-align:left; padding:12px; white-space:nowrap }
.records th { position:sticky; top:0; background:#eff3ed; color:#4d625a; font-size:12px; font-weight:650 }
.records td:first-child,.records th:first-child { text-align:center }
.records input { width:16px; height:16px; accent-color:var(--ac) }
.records tr:hover td { background:#fafbf7 }
.records td.empty { text-align:center; white-space:normal; padding:36px }
.selection { font-size:13px; gap:8px }
#tableSummary { margin-right:auto }
.tools,.importBox { margin-top:16px }
.tools summary { cursor:pointer; font-weight:600 }
.tools .bar { margin:16px 0 0 }
#ui .danger { color:#8a392f }
.importBox textarea { margin:8px 0 12px }
.importBox .sub { margin:8px 0 0 }
#st { white-space:pre-line; overflow-wrap:anywhere }
#st:not(:empty) { border-left:3px solid #88a895; background:#eaf0e9; padding:10px 14px }
#fm { margin-top:24px }
#fm legend { font-weight:650; color:var(--fg) }
#coordinateFields { max-width:560px; margin:8px 0 16px }
#fm .coordinateRow { display:grid; grid-template-columns:minmax(80px,1fr) repeat(3,minmax(0,1fr)); align-items:end; gap:10px; padding:12px 0; border-bottom:1px solid var(--ln) }
#fm .coordinateRow strong { align-self:center }
#fm .coordinateRow input,#fm .coordinateRow select { width:100%; min-width:0 }
#fm .g { max-width:520px; grid-template-columns:minmax(54px,70px) minmax(78px,1fr) repeat(3,minmax(37px,65px)) }
#fm .g input,#fm .g select { min-width:0; width:100%; padding:7px 4px }
@media(max-width:650px){
  #authPanel { grid-template-columns:1fr; max-width:430px }
  .authArt { padding:20px 24px; position:relative; overflow:hidden }
  .atlas { position:absolute; right:-20px; top:-25px; width:175px; opacity:.35 }
  #ui .authArt h2 { font-size:24px }
  .authArt h2 br { display:none }
  .filters,.selection,.tools,.importBox,#fm fieldset { padding:12px }
  #ui nav button { padding:8px }
  .mast { align-items:start }
}
@media print { #preview[hidden] {display:block !important} }
.analysisCards { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; margin:20px 0 }
.analysisCard { padding:20px; display:flex; flex-direction:column; gap:8px }
.analysisCard strong { font:40px/1.1 Georgia,serif; color:#205c55 }
.analysisCard small,.analysisMuted { color:#52676b }
.analysisPanel { padding:20px; margin:18px 0 }
.analysisPanel p { color:#52676b; line-height:1.6 }
.analysisTable { width:100% }
.analysisTable th:first-child { text-align:left; white-space:normal; min-width:170px }
.analysisTable tbody th { position:static; background:transparent; font-size:14px; color:#1c3035 }
.analysisBar { display:flex; width:150px; height:12px; background:#edf1ed; border-radius:6px; overflow:hidden }
.result0 { background:#ac7548 }
.result1 { background:#aab5a2 }
.result2 { background:#28766b }
.analysisLegend { display:flex; flex-wrap:wrap; gap:16px; margin-top:16px; font-size:12px }
.analysisLegend i { display:inline-block; width:10px; height:10px; margin-right:6px; border-radius:2px }
