body{font-family:Arial,Helvetica,sans-serif}.font-serif{font-family:Georgia,'Times New Roman',serif}.admin-input{margin-top:7px;width:100%;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.06);padding:12px 14px;color:#fff;outline:none}.admin-input:focus{border-color:#c6a35b}.admin-btn{border-radius:999px;background:#c6a35b;padding:12px 20px;font-weight:700;color:#18301d;transition:.2s}.admin-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.admin-input-light{margin-top:7px;width:100%;border:1px solid #dce5dc;border-radius:14px;background:#fff;padding:12px 14px;outline:none}.admin-input-light:focus{border-color:#789e73;box-shadow:0 0 0 4px rgba(120,158,115,.12)}.admin-file{margin-top:7px;width:100%;border:1px dashed #cfd9cf;border-radius:14px;background:#fff;padding:12px}.admin-card{border:1px solid #e1e7df;background:#fff;border-radius:26px;padding:26px;box-shadow:0 12px 45px rgba(35,55,38,.06)}.admin-card h2{font-family:Georgia,'Times New Roman',serif;margin-top:7px;font-size:28px}.admin-card p{margin-top:6px;color:#718075;font-size:14px;line-height:1.6}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#527f4d}.stat{border:1px solid #dfe7dc;background:#fff;border-radius:22px;padding:20px}.stat div{font-size:12px;color:#7b867d;text-transform:uppercase;letter-spacing:.14em}.stat b{display:block;margin-top:8px;font-family:Georgia,'Times New Roman',serif;font-size:32px}.admin-table{width:100%;min-width:980px;border-collapse:collapse;font-size:13px}.admin-table th{padding:12px 10px;text-align:left;border-bottom:1px solid #e5ebe4;color:#748074;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.admin-table td{padding:13px 10px;border-bottom:1px solid #eef2ed;vertical-align:top}.admin-table tr:hover td{background:#fafcf9}
label{display:block;font-size:13px;font-weight:600}

.upload-box{border:1px dashed #cfd9cf;border-radius:18px;background:#fbfdfb;padding:14px}.upload-picker{display:flex;align-items:center;gap:14px;cursor:pointer;min-height:76px}.upload-picker-icon{width:44px;height:44px;border-radius:14px;background:#e8f0e7;color:#527f4d;display:grid;place-items:center;font-size:28px;line-height:1}.upload-picker strong{display:block;color:#203025;font-size:14px}.upload-picker small{display:block;color:#7b867d;margin-top:4px;font-size:12px}.visually-hidden-file{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.photo-title-list{display:grid;gap:10px}.photo-title-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:start}.photo-title-index{display:grid;place-items:center;min-height:46px;border-radius:12px;background:#f0f4ef;color:#527f4d;font-weight:700;font-size:12px}.photo-title-field{display:block}.photo-title-label{display:block;margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#708073}.photo-title-field input{width:100%;border:1px solid #dce5dc;border-radius:12px;background:#fff;padding:11px 12px;outline:none}.photo-title-field input:focus{border-color:#789e73;box-shadow:0 0 0 4px rgba(120,158,115,.12)}
.admin-field {
  display: grid;
  gap: 8px;
  margin-bottom: 20px;
}

.admin-field label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #173a34;
}

.admin-field input {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;

  border: 1px solid #d8e1d9;
  border-radius: 12px;

  background: #fbfcfa;
  color: #1b2b26;

  outline: none;
}

.admin-field input:focus {
  border-color: #8eaa92;
  box-shadow: 0 0 0 4px rgba(91,135,111,.10);
}

.admin-field small {
  color: #718078;
  font-size: 12px;
}

.admin-submit {
  min-height: 48px;
  padding: 12px 22px;

  border: 0;
  border-radius: 999px;

  background: #173a34;
  color: #fff;

  font-weight: 700;
  cursor: pointer;

  transition: .2s ease;
}

.admin-submit:hover {
  background: #2d6858;
  transform: translateY(-1px);
}

/* Gallery admin icon actions */
.gallery-admin-icon{width:36px;height:36px;display:grid;place-items:center;border:1px solid #e2e8e3;border-radius:10px;background:#fff;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease;color:#52665a;padding:0}
.gallery-admin-icon:hover{transform:translateY(-1px);background:#f5f8f4;border-color:#cbd8cd}
.gallery-admin-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gallery-admin-delete{color:#b44d4d}
.gallery-admin-delete:hover{background:#fff5f5;border-color:#efcaca}
.gallery-edit-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px}
.gallery-edit-modal[hidden]{display:none}
.gallery-edit-backdrop{position:absolute;inset:0;background:rgba(15,27,20,.52);backdrop-filter:blur(3px)}
.gallery-edit-dialog{position:relative;width:min(100%,520px);max-height:90vh;overflow:auto;border:1px solid #e4e9e5;border-radius:22px;background:#fff;padding:22px;box-shadow:0 24px 70px rgba(15,30,22,.22)}
.gallery-edit-close{width:34px;height:34px;border:0;border-radius:50%;background:#f2f5f2;color:#52605a;font-size:24px;line-height:1;cursor:pointer}
.gallery-modal-open{overflow:hidden}
.admin-btn-secondary{background:#eef2ee!important;color:#405147!important;border:1px solid #dce4dd!important}
.admin-btn-small{padding:9px 13px;font-size:12px;white-space:nowrap}.admin-danger-btn{background:#fff1f2!important;color:#b42318!important;border:1px solid #fecdd3!important}.admin-danger-btn:hover{background:#ffe4e6!important}.account-pass-input{min-width:180px;padding:9px 12px!important}.admin-table td{vertical-align:middle}

/* Gallery ordering: Superadmin only. Existing gallery edit/delete icons remain visible. */
.gallery-access-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 12px;background:#f1f5f2;color:#52665a;font-size:12px;font-weight:700}
.gallery-access-super{background:#ecfdf3;color:#047857}
.gallery-order-panel{padding:16px;border:1px solid #d9e9dd;border-radius:18px;background:rgba(240,250,243,.72)}
.gallery-sort-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.gallery-sort-item{position:relative;cursor:grab;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease,border-color .18s ease}
.gallery-sort-item:active{cursor:grabbing}.gallery-sort-item:hover{border-color:#cbd8cd;box-shadow:0 8px 24px rgba(35,55,38,.08)}
.gallery-sort-item.gallery-dragging{opacity:.45;transform:scale(.98)}
.gallery-sort-number{position:absolute;left:8px;top:8px;display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:rgba(23,58,52,.9);color:#fff;font-size:12px;font-weight:800;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.gallery-drag-handle{position:absolute;right:8px;top:8px;display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,.92);color:#52665a;font-size:17px;font-weight:800;letter-spacing:-3px;line-height:1;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.gallery-move-btn{width:32px;height:32px;border:1px solid #dce4dd;border-radius:10px;background:#fff;color:#405147;font-weight:800;cursor:pointer}.gallery-move-btn:hover{background:#f3f7f2;border-color:#bfcdbf}
@media(max-width:640px){.gallery-sort-list{grid-template-columns:1fr}.gallery-sort-item{cursor:default}.gallery-drag-handle{display:none}}

/* Monthly gallery folders */
.gallery-folder-list{display:grid;gap:16px}
.gallery-month-folder{border:1px solid #dfe8e1;border-radius:18px;background:#fff;overflow:hidden}
.gallery-month-folder>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#f7faf7;cursor:pointer;color:#294333}
.gallery-month-folder>summary::-webkit-details-marker{display:none}
.gallery-month-folder>summary>span:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gallery-month-folder>summary small{font-size:11px;color:#7b887f;font-weight:600}
.gallery-folder-chevron{font-size:18px;transition:transform .2s ease}
.gallery-month-folder[open] .gallery-folder-chevron{transform:rotate(180deg)}
.gallery-sort-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 16px 16px}
@media(max-width:1000px){.gallery-sort-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.gallery-sort-list{grid-template-columns:1fr}.gallery-sort-item{cursor:default}.gallery-drag-handle{display:none}}

/* GALLERY FINAL: 3 columns on desktop, monthly folders, stable thumbnails */
.gallery-sort-list-month{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px}
.gallery-sort-item img{display:block;width:100%;height:220px;object-fit:cover}
.gallery-sort-item{min-width:0}
@media(max-width:1000px){.gallery-sort-list-month{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.gallery-sort-list-month{grid-template-columns:1fr;padding:12px}.gallery-sort-item img{height:220px}}

.gallery-upload-options{display:grid;gap:12px}.gallery-featured-toggle{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #dfe7e0;border-radius:14px;background:#f8fbf8;cursor:pointer}.gallery-featured-toggle input{margin-top:3px;accent-color:#526f5c}.gallery-featured-toggle span{display:grid;gap:3px}.gallery-featured-toggle strong{font-size:12px;color:#33483a}.gallery-featured-toggle small{font-size:10px;color:#829087}.gallery-admin-album-badge,.gallery-admin-featured-badge{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:800}.gallery-admin-album-badge{background:#eef4ef;color:#607266}.gallery-admin-featured-badge{background:#f8f0dc;color:#8a6c28}

/* FINAL UI/UX UPGRADE — Dashboard */
:root{--hc-green:#173a34;--hc-green-2:#2d6858;--hc-gold:#c6a35b;--hc-bg:#f4f0e6;--hc-border:#e1e7df}
html{scroll-behavior:smooth}
body{background:linear-gradient(180deg,#f7f4ec 0%,#f1f4ef 100%)!important;color:#203025}
.admin-quick-nav{position:sticky;top:78px;z-index:40;display:flex;gap:8px;align-items:center;overflow-x:auto;padding:8px;border:1px solid rgba(225,231,223,.9);border-radius:18px;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);box-shadow:0 8px 28px rgba(35,55,38,.06);scrollbar-width:none}
.admin-quick-nav::-webkit-scrollbar{display:none}
.admin-quick-nav a{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;min-height:40px;padding:0 14px;border:1px solid transparent;border-radius:12px;color:#526258;font-size:12px;font-weight:800;text-decoration:none;white-space:nowrap;transition:.2s ease}
.admin-quick-nav a:hover,.admin-quick-nav a:focus-visible{background:#f1f6f1;border-color:#dce7dd;color:var(--hc-green)}
.admin-quick-nav span{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e9f1e9;color:#3d6c4c;font-size:10px}
.admin-card{scroll-margin-top:145px;transition:box-shadow .2s ease,border-color .2s ease}
.admin-card:hover{border-color:#d6e1d7;box-shadow:0 18px 55px rgba(35,55,38,.075)}
.logo-installed-state{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #d9e8dc;border-radius:16px;background:#f3faf4;color:#284f38}
.logo-installed-state small{display:block;margin-top:3px;color:#708073;font-size:12px;font-weight:500}
.logo-installed-check{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#dcefe0;color:#26733f;font-weight:900}
.admin-table-wrap{border:1px solid #e5ebe5;border-radius:16px;overflow:auto}
.upload-box{transition:.2s ease}.upload-box:hover{border-color:#9fbaa3;background:#f8fbf8}
.admin-input-light,.admin-file{min-height:46px}
.admin-btn:focus-visible,.admin-submit:focus-visible,.gallery-admin-icon:focus-visible,.gallery-move-btn:focus-visible{outline:3px solid rgba(198,163,91,.35);outline-offset:2px}
@media(max-width:820px){
  .admin-quick-nav{top:69px;margin-inline:-4px}
  main.mx-auto{padding-top:18px!important}
  .admin-card{border-radius:20px;padding:20px}
  .admin-card h2{font-size:24px;line-height:1.2}
  .stat{border-radius:17px;padding:15px}.stat b{font-size:26px}
  .gallery-sort-list-month{gap:10px}
}
@media(max-width:560px){
  header .mx-auto{padding-inline:14px!important}
  header .font-serif{font-size:19px}
  header .text-xs{font-size:9px}
  header a{padding:9px 11px!important;font-size:11px!important}
  .admin-quick-nav{border-radius:14px;padding:6px}
  .admin-quick-nav a{min-height:36px;padding-inline:11px}
  .admin-card{padding:16px;border-radius:18px}
  .admin-table{min-width:900px}
  .gallery-sort-list-month{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}
  .gallery-sort-item img{height:150px}
  .gallery-sort-item .p-3{padding:10px!important}
  .gallery-move-btn{width:30px;height:30px}
  .gallery-admin-icon{width:32px;height:32px}
  .gallery-admin-icon svg{width:15px;height:15px}
}
@media(max-width:390px){.gallery-sort-list-month{grid-template-columns:1fr}.gallery-sort-item img{height:210px}}

/* Login page readability upgrade */
.admin-login-page{min-height:100vh;margin:0;font-family:Arial,Helvetica,sans-serif;color:#fff;background:#173329 url('../images/bg-hero.jpg') center/cover no-repeat fixed;position:relative;overflow-x:hidden}
.admin-login-overlay{position:fixed;inset:0;background:linear-gradient(135deg,rgba(7,25,19,.88),rgba(15,48,38,.78) 48%,rgba(7,24,18,.9));z-index:0}
.admin-login-wrap{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:28px 18px}
.admin-login-card{width:min(100%,430px);padding:34px 34px 28px;border:1px solid rgba(255,255,255,.2);border-radius:28px;background:rgba(10,31,24,.92);box-shadow:0 30px 80px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(16px)}
.admin-login-brand{display:flex;justify-content:center;margin-bottom:20px}
.admin-login-brand img{width:78px;height:78px;object-fit:cover;border-radius:50%;background:#fff;padding:5px;border:2px solid rgba(226,198,133,.7);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.admin-login-heading{text-align:center}.admin-login-kicker{display:block;color:#e7cf9b;font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.admin-login-heading h1{margin:8px 0 0;font:400 34px/1.1 Georgia,'Times New Roman',serif;color:#fff}.admin-login-heading p{margin:8px 0 0;color:rgba(255,255,255,.72);font-size:14px}
.admin-login-form{margin-top:25px;display:grid;gap:16px}.admin-login-form label{display:block;color:#fff;font-size:13px;font-weight:700}.admin-login-form .admin-input{display:block;margin-top:8px;min-height:50px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.1);color:#fff;border-radius:14px;padding:13px 15px;font-size:15px}.admin-login-form .admin-input::placeholder{color:rgba(255,255,255,.48)}.admin-login-form .admin-input:focus{border-color:#e2c585;background:rgba(255,255,255,.14);box-shadow:0 0 0 4px rgba(226,197,133,.14)}
.admin-login-submit{min-height:50px;margin-top:3px;box-shadow:0 10px 25px rgba(0,0,0,.2)}
.admin-login-error{margin-top:18px;padding:12px 14px;border:1px solid rgba(248,113,113,.35);border-radius:13px;background:rgba(127,29,29,.42);color:#fecaca;font-size:13px;line-height:1.5}
.admin-login-back{display:block;margin-top:20px;text-align:center;color:rgba(255,255,255,.68);font-size:13px;text-decoration:none;transition:.2s}.admin-login-back:hover{color:#fff}
@media(max-width:480px){.admin-login-wrap{padding:18px 14px}.admin-login-card{padding:28px 20px 23px;border-radius:23px}.admin-login-brand img{width:68px;height:68px}.admin-login-heading h1{font-size:30px}}


/* =========================================================
   FINAL LOGIN UI/UX — 2026-09-15
   Scoped to .admin-login-page so dashboard styles remain untouched.
   ========================================================= */
.admin-login-page{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#081a14 url('../images/bg-hero.jpg') center/cover no-repeat fixed}
.admin-login-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.admin-login-bg span{position:absolute;border:1px solid rgba(226,197,133,.18);border-radius:50%;filter:blur(.2px)}
.admin-login-bg span:nth-child(1){width:520px;height:520px;right:-220px;top:-170px;box-shadow:0 0 90px rgba(226,197,133,.08)}
.admin-login-bg span:nth-child(2){width:340px;height:340px;left:-160px;bottom:-120px}
.admin-login-bg span:nth-child(3){width:120px;height:120px;right:18%;bottom:14%;background:rgba(226,197,133,.035)}
.admin-login-overlay{background:linear-gradient(120deg,rgba(4,18,13,.94),rgba(11,39,30,.86) 52%,rgba(4,18,13,.93))}
.admin-login-wrap{padding:32px 18px}
.admin-login-card{position:relative;width:min(100%,460px);padding:38px 38px 26px;border:1px solid rgba(255,255,255,.16);border-radius:30px;background:linear-gradient(145deg,rgba(17,45,35,.96),rgba(8,28,21,.94));box-shadow:0 36px 100px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.09);backdrop-filter:blur(20px);overflow:hidden}
.admin-login-card:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(226,197,133,.65),transparent)}
.admin-login-logo-ring{width:86px;height:86px;padding:4px;border-radius:50%;background:linear-gradient(135deg,#e6c77f,#8c6a32);box-shadow:0 14px 38px rgba(0,0,0,.3)}
.admin-login-brand img{width:100%;height:100%;border:4px solid #102d23;padding:4px}
.admin-login-heading h1{font-size:36px;letter-spacing:-.025em}
.admin-login-heading p{color:rgba(255,255,255,.62)}
.admin-login-form{gap:18px;margin-top:28px}
.admin-login-form label>span{display:block;color:rgba(255,255,255,.88);font-size:12px;letter-spacing:.04em;margin-bottom:8px}
.admin-login-form .admin-input{margin-top:0;width:100%;box-sizing:border-box;min-height:54px;border-radius:15px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.075);transition:border-color .2s,background .2s,box-shadow .2s,transform .2s}
.admin-login-form .admin-input:hover{background:rgba(255,255,255,.09)}
.admin-login-form .admin-input:focus{outline:none;border-color:#e2c585;background:rgba(255,255,255,.11);box-shadow:0 0 0 4px rgba(226,197,133,.11),0 10px 30px rgba(0,0,0,.12)}
.admin-password-wrap{position:relative}.admin-password-wrap .admin-input{padding-right:82px!important}
.admin-password-toggle{position:absolute;right:8px;top:8px;height:38px;padding:0 11px;border:0;border-radius:10px;background:rgba(255,255,255,.08);color:#e7cf9b;font-size:11px;font-weight:800;cursor:pointer}.admin-password-toggle:hover{background:rgba(226,197,133,.13);color:#fff}
.admin-login-submit{min-height:54px;border-radius:15px!important;font-weight:800;letter-spacing:.01em;transition:transform .2s,box-shadow .2s,filter .2s}.admin-login-submit:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(0,0,0,.28);filter:brightness(1.05)}
.admin-login-footer{margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;gap:14px}.admin-login-footer>span{font-size:10px;letter-spacing:.06em;color:rgba(255,255,255,.38)}.admin-login-footer .admin-login-back{margin:0;color:rgba(255,255,255,.72);white-space:nowrap}.admin-login-footer .admin-login-back:hover{color:#fff}
@media(max-width:520px){.admin-login-wrap{padding:18px 14px}.admin-login-card{padding:30px 20px 22px;border-radius:24px}.admin-login-heading h1{font-size:31px}.admin-login-footer{align-items:flex-start;flex-direction:column}.admin-login-footer .admin-login-back{white-space:normal}.admin-login-logo-ring{width:76px;height:76px}}

/* =========================================================
   DASHBOARD STABILITY PATCH — no external utility framework
   Keeps the existing dashboard markup intact while replacing the
   missing Tailwind utility layer with a lightweight local system.
   Login styles remain scoped to .admin-login-page.
   ========================================================= */
body:not(.admin-login-page){margin:0;min-height:100vh;line-height:1.5}
body:not(.admin-login-page),body:not(.admin-login-page) *{box-sizing:border-box}
body:not(.admin-login-page) a{color:inherit}
body:not(.admin-login-page) button,body:not(.admin-login-page) input,body:not(.admin-login-page) select,body:not(.admin-login-page) textarea{font:inherit}
body:not(.admin-login-page) header{position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(255,255,255,.1);background:#18301d;color:#fff}
body:not(.admin-login-page) header>.mx-auto{display:flex;align-items:center;justify-content:space-between;gap:20px}
body:not(.admin-login-page) header a{text-decoration:none}
.mx-auto{width:100%;margin-left:auto;margin-right:auto}
.max-w-7xl{max-width:80rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pt-2{padding-top:.5rem}.pt-8{padding-top:2rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-10{padding:2.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}
.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-10{margin-top:2.5rem}.mb-8{margin-bottom:2rem}.mx-2{margin-left:.5rem;margin-right:.5rem}
.space-y-4>*+*{margin-top:1rem}.space-y-8>*+*{margin-top:2rem}
.flex{display:flex}.grid{display:grid}.block{display:block}.hidden{display:none}.relative{position:relative}.static{position:static}.sticky{position:sticky}.shrink-0{flex-shrink:0}.flex-1{flex:1 1 0%}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}
.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-8{gap:2rem}
.w-full{width:100%}.h-auto{height:auto}.max-w-xs{max-width:20rem}.min-w-0{min-width:0}.overflow-x-auto{overflow-x:auto}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}
.rounded-full{border-radius:9999px}.rounded-2xl{border-radius:1rem}.rounded-lg{border-radius:.5rem}
.border{border:1px solid #e1e7df}.border-b{border-bottom:1px solid #e1e7df}.border-t{border-top:1px solid #e1e7df}.border-dashed{border-style:dashed}.border-white\/10{border-color:rgba(255,255,255,.1)}.border-white\/20{border-color:rgba(255,255,255,.2)}
.bg-white{background:#fff}.bg-slate-100{background:#f1f5f9}.bg-[#f4f0e6]{background:#f4f0e6}.bg-[#18301d]{background:#18301d}.bg-[#c6a35b]{background:#c6a35b}.bg-emerald-100{background:#d1fae5}.bg-red-100{background:#fee2e2}.bg-amber-50{background:#fffbeb}
.text-white{color:#fff}.text-[#203025]{color:#203025}.text-[#18301d]{color:#18301d}.text-[#c6a35b]{color:#c6a35b}.text-slate-300{color:#cbd5e1}.text-slate-400{color:#94a3b8}.text-slate-500{color:#64748b}.text-slate-700{color:#334155}.text-slate-800{color:#1e293b}.text-emerald-800{color:#065f46}.text-red-800{color:#991b1b}.text-amber-800{color:#92400e}.text-red-600{color:#dc2626}
.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[11px\]{font-size:11px;line-height:1rem}
.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-serif{font-family:Georgia,'Times New Roman',serif}.uppercase{text-transform:uppercase}.tracking-\[\.2em\]{letter-spacing:.2em}.leading-5{line-height:1.25rem}.text-center{text-align:center}
.z-50{z-index:50}.top-0{top:0}.md\:top-0{top:0}.md\:right-0{right:0}.md\:absolute{position:absolute}
.grid-cols-1{grid-template-columns:minmax(0,1fr)}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.md\:col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}
.admin-dashboard-main{width:100%}
main.mx-auto{position:relative}
#social{margin-top:2rem}
#social .admin-card-heading{margin-bottom:1.5rem}
.settings-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.settings-form .admin-field{margin-bottom:0}.settings-form .admin-submit{grid-column:1/-1;width:max-content}
.datetime-box{min-width:220px}
@media(max-width:1024px){.lg\:grid-cols-12{grid-template-columns:1fr}.lg\:col-span-5,.lg\:col-span-7{grid-column:auto}.settings-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.md\:flex-row{flex-direction:column}.md\:items-end{align-items:stretch}.md\:justify-between{justify-content:space-between}.md\:text-right{text-align:center}.md\:px-52{padding-left:0;padding-right:0}.md\:grid-cols-2,.md\:grid-cols-4{grid-template-columns:1fr}.md\:col-span-2{grid-column:auto}.md\:absolute{position:static}.settings-form{grid-template-columns:1fr}.settings-form .admin-submit{width:100%}.datetime-box{min-width:0}.admin-quick-nav{top:69px}}
@media(max-width:560px){.grid-cols-2{grid-template-columns:1fr}.sm\:flex-row{flex-direction:column}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:items-end{align-items:stretch}.sm\:grid-cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}body:not(.admin-login-page) header>.mx-auto{padding-left:14px;padding-right:14px;gap:10px}body:not(.admin-login-page) header .font-serif{font-size:19px;line-height:1.1}body:not(.admin-login-page) header .text-xs{font-size:9px}.datetime-box{font-size:11px}.admin-card p{line-height:1.55}}
@media(max-width:390px){.sm\:grid-cols-3{grid-template-columns:1fr}}


/* =========================================================
   RESPONSIVE ADMIN REFINEMENT — desktop + mobile
   Deterministic local CSS; no runtime Tailwind dependency.
   ========================================================= */
html { overflow-x: hidden; }
body:not(.admin-login-page) {
  overflow-x: hidden;
  background: linear-gradient(180deg,#f7f4ec 0%,#f1f4ef 100%) !important;
}
body:not(.admin-login-page) header {
  box-shadow: 0 8px 28px rgba(24,48,29,.10);
}
body:not(.admin-login-page) header > .mx-auto,
body:not(.admin-login-page) main.mx-auto,
body:not(.admin-login-page) footer.mx-auto {
  max-width: 1240px;
}
body:not(.admin-login-page) main.mx-auto {
  padding-top: 28px;
}
.admin-quick-nav {
  margin-bottom: 0;
}
.admin-card {
  width: 100%;
  min-width: 0;
}
.admin-card h2 {
  color: #173a34;
  margin-bottom: 0;
}
.admin-card > p,
.admin-card-heading p {
  max-width: 820px;
}
.stat {
  min-width: 0;
}
.stat > div {
  min-width: 0;
}
.admin-input-light,
.admin-file,
.admin-field input,
.admin-field select,
.admin-field textarea {
  max-width: 100%;
}
.admin-table-wrap,
#inbox > .overflow-x-auto,
#accounts .overflow-x-auto {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.admin-table {
  table-layout: auto;
}
.admin-table th,
.admin-table td {
  word-break: normal;
}
.admin-table td .flex {
  align-items: center;
}
#inbox .datetime-box {
  line-height: 1.45;
}
#inbox .datetime-box #date-part,
#inbox .datetime-box #time-part {
  white-space: nowrap;
}
.settings-form {
  align-items: start;
}
.settings-form .admin-field {
  min-width: 0;
}
.admin-submit,
.admin-btn {
  min-height: 46px;
}
.gallery-sort-list-month {
  align-items: start;
}
.gallery-sort-item {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.gallery-sort-item > .relative {
  flex: 0 0 auto;
}
.gallery-sort-item > .p-3 {
  flex: 1;
  min-width: 0;
}
.gallery-sort-item img {
  background: #f1f5f0;
}
.gallery-sort-item .truncate {
  max-width: 100%;
}
.gallery-sort-item .mt-3 {
  flex-wrap: wrap;
}
.gallery-sort-item .mt-3 > span {
  min-width: 0;
}
.gallery-sort-item .mt-3 > div {
  flex-wrap: wrap;
  justify-content: flex-end;
}
.gallery-edit-dialog form label {
  color: #304338;
  font-size: 13px;
  font-weight: 700;
}
.gallery-edit-dialog textarea {
  resize: vertical;
  min-height: 110px;
}
.gallery-edit-dialog .flex.justify-end {
  flex-wrap: wrap;
}
#social .admin-eyebrow {
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #527f4d;
}
#social .admin-card-heading h2 {
  margin-top: 7px;
}
#social .admin-card-heading p {
  margin-top: 6px;
  color: #718075;
  font-size: 14px;
  line-height: 1.6;
}

/* Tablet */
@media (max-width: 900px) {
  body:not(.admin-login-page) main.mx-auto {
    padding-top: 22px;
  }
  .admin-quick-nav {
    top: 72px;
  }
  .gallery-sort-list-month {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .gallery-sort-item img {
    height: 210px;
  }
}

/* Phone */
@media (max-width: 640px) {
  body:not(.admin-login-page) header > .mx-auto {
    min-height: 68px;
    padding: 11px 14px !important;
  }
  body:not(.admin-login-page) header .font-serif {
    font-size: 18px;
  }
  body:not(.admin-login-page) header .text-xs {
    font-size: 8px;
    letter-spacing: .16em;
  }
  body:not(.admin-login-page) header a {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px !important;
    font-size: 11px !important;
  }
  body:not(.admin-login-page) header > .mx-auto > div:last-child {
    gap: 6px;
  }

  body:not(.admin-login-page) main.mx-auto {
    width: 100%;
    padding: 18px 12px 28px !important;
    gap: 16px;
  }
  body:not(.admin-login-page) footer.mx-auto {
    padding: 0 12px 24px;
  }

  .admin-quick-nav {
    position: sticky;
    top: 68px;
    margin: 0;
    padding: 5px;
    border-radius: 14px;
    gap: 5px;
  }
  .admin-quick-nav a {
    min-height: 36px;
    padding: 0 11px;
    border-radius: 10px;
    font-size: 11px;
  }

  .stat {
    min-height: 72px;
    padding: 13px;
    border-radius: 16px;
  }
  .stat > div {
    font-size: 9px;
    letter-spacing: .08em;
  }
  .stat b {
    margin-top: 4px;
    font-size: 25px;
  }

  .admin-card {
    padding: 17px;
    border-radius: 18px;
  }
  .admin-card h2 {
    font-size: 22px;
    line-height: 1.22;
  }
  .admin-card > p,
  .admin-card-heading p,
  #social .admin-card-heading p {
    font-size: 13px;
    line-height: 1.55;
  }

  /* Reservation header */
  #inbox > .relative.flex {
    align-items: stretch;
    margin-bottom: 18px;
    padding-top: 0;
  }
  #inbox > .relative.flex > div:first-child {
    padding: 0 !important;
  }
  #inbox .datetime-box {
    width: 100%;
    padding: 9px 11px;
    border: 1px solid #e4e9e3;
    border-radius: 12px;
    background: #f7faf6;
    text-align: center !important;
  }
  #inbox .datetime-box #date-part,
  #inbox .datetime-box #time-part {
    white-space: normal;
  }
  #inbox .datetime-box .mx-2 {
    margin-inline: 6px;
  }

  /* Tables become readable stacked cards instead of forcing the whole page wide. */
  #inbox > .mt-6,
  #accounts .mt-7 {
    overflow: visible;
  }
  #inbox .admin-table,
  #accounts .admin-table {
    min-width: 0;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 10px;
  }
  #inbox .admin-table thead,
  #accounts .admin-table thead {
    display: none;
  }
  #inbox .admin-table tbody,
  #inbox .admin-table tr,
  #accounts .admin-table tbody,
  #accounts .admin-table tr {
    display: block;
    width: 100%;
  }
  #inbox .admin-table tr,
  #accounts .admin-table tr {
    margin-bottom: 10px;
    border: 1px solid #e2e9e2;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(35,55,38,.045);
    overflow: hidden;
  }
  #inbox .admin-table td,
  #accounts .admin-table td {
    display: grid;
    grid-template-columns: 92px minmax(0,1fr);
    gap: 10px;
    align-items: start;
    width: 100%;
    padding: 10px 12px;
    border-bottom: 1px solid #eef2ed;
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: anywhere;
  }
  #inbox .admin-table td:last-child,
  #accounts .admin-table td:last-child {
    border-bottom: 0;
  }
  #inbox .admin-table td::before,
  #accounts .admin-table td::before {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #7b887f;
  }
  #inbox .admin-table td:nth-child(1)::before { content: "Tanggal"; }
  #inbox .admin-table td:nth-child(2)::before { content: "Nama"; }
  #inbox .admin-table td:nth-child(3)::before { content: "Kontak"; }
  #inbox .admin-table td:nth-child(4)::before { content: "Visit"; }
  #inbox .admin-table td:nth-child(5)::before { content: "Peserta"; }
  #inbox .admin-table td:nth-child(6)::before { content: "Paket"; }
  #inbox .admin-table td:nth-child(7)::before { content: "Pesan"; }
  #inbox .admin-table td:nth-child(8)::before { content: "Status"; }
  #inbox .admin-table td:nth-child(9)::before { content: "Aksi"; }

  #accounts .admin-table td:nth-child(1)::before { content: "Username"; }
  #accounts .admin-table td:nth-child(2)::before { content: "Jenis"; }
  #accounts .admin-table td:nth-child(3)::before { content: "Status"; }
  #accounts .admin-table td:nth-child(4)::before { content: "Login terakhir"; }
  #accounts .admin-table td:nth-child(5)::before { content: "Aksi"; }

  #inbox .admin-table td[colspan] {
    display: block;
    padding: 28px 14px;
    text-align: center;
  }
  #inbox .admin-table td[colspan]::before {
    display: none;
  }

  #accounts .admin-table td:last-child > div {
    display: grid;
    gap: 8px;
    width: 100%;
  }
  #accounts .admin-table td:last-child form {
    width: 100%;
  }
  #accounts .admin-table .account-pass-input {
    min-width: 0;
    width: 100%;
  }
  #accounts .admin-table td:last-child form.flex {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 6px;
  }
  #accounts .admin-table td:last-child form:not(.flex) button {
    width: 100%;
  }

  /* Forms */
  .settings-form,
  #accounts form.grid,
  #settings form.grid {
    grid-template-columns: 1fr !important;
  }
  .settings-form .admin-submit,
  #accounts form.grid > div,
  #settings form.grid > button {
    width: 100%;
  }
  .admin-field {
    margin-bottom: 0;
  }
  .admin-field input,
  .admin-input-light,
  .admin-file {
    min-height: 46px;
    font-size: 14px;
  }
  #settings form.grid label {
    min-width: 0;
  }
  #settings form.grid label.md\:col-span-2 {
    grid-column: auto;
  }

  /* Gallery */
  .gallery-sort-list-month {
    grid-template-columns: 1fr;
    padding: 10px;
    gap: 10px;
  }
  .gallery-sort-item img {
    height: 220px;
  }
  .gallery-sort-item .p-3 {
    padding: 12px !important;
  }
  .gallery-sort-item .mt-3 {
    align-items: center;
  }
  .gallery-sort-item .mt-3 > div {
    width: 100%;
    justify-content: flex-start;
  }
  .gallery-move-btn,
  .gallery-admin-icon {
    width: 34px;
    height: 34px;
  }
  .gallery-month-folder > summary {
    padding: 12px 13px;
    font-size: 13px;
  }
  .gallery-edit-modal {
    padding: 10px;
  }
  .gallery-edit-dialog {
    width: 100%;
    max-height: calc(100vh - 20px);
    padding: 17px;
    border-radius: 18px;
  }
  .gallery-edit-dialog .flex.justify-end {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }
  .gallery-edit-dialog .flex.justify-end > button {
    width: 100%;
  }

  #social .settings-form {
    gap: 14px;
  }
}

/* Very small phones */
@media (max-width: 390px) {
  body:not(.admin-login-page) main.mx-auto {
    padding-inline: 9px !important;
  }
  body:not(.admin-login-page) header > .mx-auto {
    padding-inline: 10px !important;
  }
  body:not(.admin-login-page) header a {
    padding-inline: 9px !important;
    font-size: 10px !important;
  }
  .admin-card {
    padding: 14px;
  }
  .admin-quick-nav a {
    padding-inline: 9px;
    font-size: 10px;
  }
  #inbox .admin-table td,
  #accounts .admin-table td {
    grid-template-columns: 78px minmax(0,1fr);
    padding: 9px 10px;
    font-size: 11px;
  }
  .gallery-sort-item img {
    height: 205px;
  }
}
