.header-actions{
  display:flex;
  align-items:center;
  gap:18px
}
.header-actions a,.result-link{
  color:#cae1b6;
  text-decoration:none;
  font-weight:600
}
.access-panel{
  max-width:480px;
  margin:20px auto;
  background:#1a291f;
  border:1px solid #3e513a;
  border-radius:22px;
  padding:30px
}
.access-panel h1{
  font-size:28px
}
.access-panel form{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:24px
}
.access-panel label{
  font-size:12px;
  font-weight:650
}
.access-panel input{
  font:inherit;
  padding:13px;
  border:1px solid #536b49;
  background:#112018;
  border-radius:10px;
  color:#edf3e9
}
.access-panel button{
  margin-top:10px
}
.access-panel #password-note{
  font-size:12px;
  margin:0
}
.fields{
  grid-template-columns:75px 1fr 90px
}
#result{
  border:1px solid #577c3d;
  background:#213720;
  padding:22px;
  border-radius:16px;
  margin:24px 0
}
.result-link{
  display:inline-flex;
  min-height:44px;
  align-items:center
}
@media(max-width:700px){
  .fields{
    grid-template-columns:65px 1fr
  }
  .field:nth-child(3){
    grid-column:auto
  }
  .header-actions{
    gap:10px;
    font-size:11px
  }
  .access-panel{
    padding:23px
  }
  .brand{
    font-size:23px
  }

}
.admin-brand{
  display:flex;
  flex-direction:column;
  gap:8px;
  text-decoration:none
}
.admin-brand .logo-lockup{
  position:relative;
  display:block;
  width:132px;
  height:36px;
  overflow:hidden
}
.admin-brand .company-logo,.admin-brand .logo-green{
  position:absolute;
  left:-6px;
  top:0;
  width:158px;
  height:auto
}
.admin-brand .company-logo{
  filter:brightness(0) invert(1);
  clip-path:polygon(0 0,61% 0,68% 50%,61% 100%,0 100%)
}
.admin-brand .logo-green{
  clip-path:polygon(61% 0,85% 0,85% 100%,61% 100%,68% 50%)
}
.admin-brand-caption{
  font:9px Inter,system-ui,sans-serif;
  letter-spacing:1.5px;
  color:#bdcdb1
}
.intro h1{
  font-family:Manrope,system-ui,sans-serif;
  font-size:clamp(28px,4vw,36px);
  font-weight:800;
  letter-spacing:-1px;
  line-height:1.2;
  margin:8px 0 12px
}
.intro{
  margin-bottom:22px
}
.intro h1{
  font-size:clamp(25px,3vw,30px);
  letter-spacing:-.7px;
  margin:0 0 8px
}
.intro p{
  margin:0;
  font-size:14px
}
.upload-panel{
  padding:20px;
  border-radius:16px
}
.operation{
  margin-bottom:10px
}
.operation label{
  font-size:13px
}
.operation select{
  min-width:190px;
  padding:10px 12px
}
#operation-note{
  margin:0 0 16px;
  font-size:12px
}
.drop-zone{
  padding:22px 18px;
  gap:10px;
  border-radius:12px
}
.upload-icon{
  font-size:24px;
  line-height:1
}
.drop-zone strong{
  font-size:16px
}
.choose-files{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 18px;
  background:#a1c57c;
  color:#16231a;
  border-radius:9px;
  font-size:13px;
  font-weight:700
}
.drop-zone .multiple-note{
  font-size:12px;
  color:#bdcdb1;
  text-align:center
}
.drop-zone small{
  font-size:11px;
  color:#94a78e
}
.drop-zone:focus-within{
  outline:2px solid #b7de84;
  outline-offset:3px
}
@media(max-width:640px){
  .upload-panel{
    padding:16px
  }
  .operation{
    gap:8px
  }
  .operation select{
    min-width:0
  }
  .drop-zone{
    padding:20px 12px
  }

}
.drop-zone .choose-files{
  color:#16231a;
  background:#a1c57c;
  font-weight:750
}
.manage-panel{
  margin-top:34px;
  padding-top:28px;
  border-top:1px solid #344437
}
.manage-panel h2{
  font-size:23px
}
.manage-filters{
  display:grid;
  grid-template-columns:1fr 200px;
  gap:14px;
  margin:20px 0
}
.manage-filters label,.management-dialog label{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:12px;
  font-weight:650
}
.manage-filters input,.management-dialog input,.management-dialog select{
  font:inherit;
  font-size:14px;
  background:#1d2c22;
  border:1px solid #485842;
  border-radius:9px;
  color:#e8f1e0;
  padding:12px;
  min-width:0;
  width:100%
}
.manage-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:15px 0;
  border-bottom:1px solid #2d3a31
}
.manage-row>div:first-child{
  min-width:0;
  display:grid;
  gap:6px
}
.manage-row strong{
  font:700 14px Manrope,system-ui,sans-serif;
  overflow-wrap:anywhere
}
.manage-row span{
  font-size:11px;
  color:#aebbab
}
.manage-actions{
  display:flex;
  gap:8px;
  flex-shrink:0
}
.manage-actions button{
  min-height:44px;
  padding:10px 13px;
  font-size:12px
}
.danger-outline{
  background:transparent;
  color:#e3aaa1;
  border:1px solid #77524d
}
.danger-button{
  background:#b94e45;
  color:#fff
}
.management-dialog{
  width:min(560px,calc(100vw - 32px));
  max-height:90dvh;
  overflow:auto;
  border:1px solid #485842;
  border-radius:20px;
  background:#19271e;
  color:#edf3e9;
  padding:25px
}
.management-dialog::backdrop{
  background:#06100bd9
}
.management-dialog form{
  display:grid;
  gap:16px;
  margin-top:20px
}
.management-dialog h2{
  margin:0 0 15px;
  font-size:23px
}
.edit-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}
.dialog-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:10px
}
.management-error{
  font-size:13px;
  color:#efb9a3;
  margin:0;
  line-height:1.5
}
.management-dialog .code-note{
  font-size:12px;
  margin:0;
  line-height:1.6
}
#manage-more{
  margin-top:20px;
  width:100%
}
@media(max-width:600px){
  .manage-filters{
    grid-template-columns:1fr
  }
  .manage-row{
    align-items:flex-start;
    gap:10px
  }
  .manage-actions{
    flex-direction:column
  }
  .edit-columns{
    grid-template-columns:1fr
  }
  .management-dialog{
    padding:20px
  }
  .dialog-actions button{
    flex:1;
    padding:12px 8px
  }

}
#message{
  margin:0 0 20px;
  font-size:13px;
  line-height:1.5
}
#message:empty{
  display:none
}
.upload-panel .operation{
  display:block;
  margin-bottom:12px
}
.upload-panel .operation select{
  display:block;
  width:100%;
  min-width:0;
  min-height:46px;
  padding:12px 14px;
  border-radius:10px;
  background:#223326;
  border-color:#4b6342;
  font-size:13px;
  font-weight:600
}
.upload-panel #operation-note{
  margin-bottom:18px
}
.upload-panel .operation select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:44px;
  background-image:url("/admin-chevron.svg");
  background-repeat:no-repeat;
  background-position:right 16px center;
  background-size:16px 16px
}
.manage-filters{
  grid-template-columns:minmax(0,1fr) 180px 160px
}
.edit-previews{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}
.edit-previews:has(#edit-new-map-section[hidden]){
  grid-template-columns:1fr
}
.edit-previews h3{
  font:700 12px Inter,system-ui,sans-serif;
  margin:0 0 8px;
  color:#bdcdb1
}
.map-preview-button{
  display:block;
  width:100%;
  padding:0;
  overflow:hidden;
  border:1px solid #485842;
  border-radius:10px;
  background:#e9ede4
}
.map-preview-button img{
  display:block;
  width:100%;
  height:190px;
  object-fit:contain
}
.location-editor{
  padding:16px;
  border:1px solid #485842;
  border-radius:12px;
  margin:0;
  min-width:0
}
.location-editor legend{
  font-size:13px;
  font-weight:700;
  padding:0 6px
}
.location-editor .edit-columns{
  margin-top:14px
}
.map-viewer-dialog{
  width:min(1100px,95vw);
  max-height:94dvh;
  background:#19271e;
  border:1px solid #485842;
  border-radius:16px;
  padding:14px;
  overflow:auto;
  color:#edf3e9
}
.map-viewer-dialog::backdrop{
  background:#06100be6
}
.map-viewer-dialog img{
  display:block;
  width:100%;
  height:auto;
  margin-top:12px;
  background:white
}
.map-viewer-dialog button{
  position:sticky;
  top:0;
  float:right;
  background:#19271e
}
@media(max-width:700px){
  .manage-filters{
    grid-template-columns:1fr
  }
  .edit-previews{
    grid-template-columns:1fr
  }

}
.multipage-preview {
  max-width: 100%;
  display: block;
  margin: 16px 0;
}

/* Keep file activity visible where files are selected, without a top warning. */
#message{color:#bbc7b5}
.drop-zone.is-preparing{cursor:progress;min-height:205px;border-style:solid;background:#1c2b20}
.drop-zone.is-preparing>:not(.upload-progress){display:none}
.drop-zone .upload-progress{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;width:100%;padding:12px;text-align:center;pointer-events:none}
.drop-zone .upload-progress[hidden]{display:none}
.drop-zone .upload-progress strong{font-size:15px;font-weight:700;margin:0;color:#edf2e9}
.drop-zone .upload-file-name{max-width:100%;overflow-wrap:anywhere;font-size:12px;color:#bbc7b5}
.drop-zone .upload-file-count{font-size:11px;color:#bbc7b5}
.upload-spinner,.file-is-busy::before{width:30px;height:30px;border:3px solid #405239;border-top-color:#a8cc80;border-radius:50%;animation:admin-file-spin .9s linear infinite;flex-shrink:0}
#edit-preview-status.file-is-busy{display:flex;align-items:center;gap:12px;color:#dce8d3;padding:14px;border:1px solid #405239;border-radius:10px;background:#1c2b20}
.file-is-busy::before{content:"";display:inline-block;width:22px;height:22px}
@keyframes admin-file-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.upload-spinner,.file-is-busy::before{animation:none}}

.admin-credit{display:block;margin-top:8px;font-size:11px;line-height:1.6;color:#bbc7b5}
