*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#f4f7fb;color:#172033}.topbar{background:#fff;border-bottom:1px solid #e5eaf1;padding:13px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand b{display:block;font-size:13px}.brand span{display:block;font-size:11px;color:#64748b;margin-top:3px}.logo{width:42px;height:42px;border-radius:12px;background:#0f766e;color:#fff;display:grid;place-items:center;font-weight:800}.topbar nav{display:flex;gap:5px}.topbar nav a{padding:8px 10px;text-decoration:none;color:#334155}.container{max-width:1150px;margin:auto;padding:28px 18px 60px}.hero{background:linear-gradient(135deg,#0f766e,#155e75);color:#fff;border-radius:24px;padding:40px;margin-bottom:24px}.hero.compact{padding:28px}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:800;opacity:.8}.hero h1{font-size:clamp(28px,5vw,44px);margin:8px 0}.hero p{line-height:1.6;margin:0}.card{background:#fff;border:1px solid #e5eaf1;border-radius:18px;padding:22px;box-shadow:0 8px 25px #0f172a0a;margin-bottom:18px}.form{max-width:800px;margin:auto}.form label,.login label{display:block;font-weight:700;font-size:13px;margin:15px 0}.form input,.form select,.form textarea,.login input,.filter input,.filter select{width:100%;margin-top:7px;padding:12px;border:1px solid #d8dee8;border-radius:11px;background:#fff;font:inherit}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.badge{display:inline-block;background:#e6fffb;color:#0f766e;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}.btn{display:inline-block;border:1px solid #d8dee8;background:#fff;color:#243047;padding:10px 14px;border-radius:10px;text-decoration:none;font-weight:700;cursor:pointer}.btn.primary{background:#0f766e;color:#fff;border-color:#0f766e;width:100%;padding:13px}.btn.sm{font-size:11px;padding:7px 9px}.btn.danger{color:#b42318}.preview{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0}.preview div{aspect-ratio:1;overflow:hidden;border-radius:10px;background:#eee}.preview img{width:100%;height:100%;object-fit:cover}.alert{padding:13px 16px;border-radius:12px;margin:14px 0}.success{background:#dcfce7;color:#166534}.error{background:#fee2e2;color:#991b1b}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stats div{background:#fff;border:1px solid #e5eaf1;border-radius:16px;padding:18px}.stats b{font-size:28px;display:block}.stats span,.muted{color:#64748b;font-size:12px}.filter{display:flex;gap:8px}.filter input{flex:1;margin:0}.filter select{width:190px;margin:0}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:11px;border-bottom:1px solid #eef2f6;text-align:left;white-space:nowrap}td small{display:block;color:#64748b;margin-top:3px}.inline,.useredit{display:inline}.inline select{border:1px solid #ddd;border-radius:8px;padding:6px;font-size:11px}.status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800}.status.ok{background:#dcfce7;color:#166534}.status.wait{background:#fef3c7;color:#92400e}.status.bad{background:#fee2e2;color:#991b1b}.row{display:flex;justify-content:space-between;align-items:center}.row h3{margin:10px 0 5px}.row p{margin:0;color:#64748b;font-size:12px}.empty{text-align:center;color:#64748b}.login{max-width:460px;margin:70px auto}.hint{margin-top:15px;padding:10px;background:#f8fafc;border-radius:10px;font-size:11px;color:#64748b}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.gallery a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:15px;background:#ddd}.gallery img{width:100%;height:100%;object-fit:cover}.detail h1{margin:10px 0}.qrgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.qr{text-align:center}.qrcode{display:flex;justify-content:center;margin:15px}.useredit input[name=new_password]{width:150px;margin:0;padding:7px}.useredit label{font-size:11px}.useredit label input{width:auto;margin:0}.qr small{word-break:break-all;color:#64748b;font-size:9px}footer{text-align:center;padding:28px;color:#64748b;font-size:12px}@media(max-width:700px){.topbar{align-items:flex-start}.topbar nav{display:none}.two,.stats{grid-template-columns:1fr}.filter{flex-direction:column}.filter select{width:100%}.preview{grid-template-columns:repeat(3,1fr)}.hero{padding:27px}.brand b{font-size:10px}.brand span{font-size:9px}}@media print{.topbar,footer,.btn{display:none!important}.container{padding:0}.qrgrid{grid-template-columns:repeat(3,1fr)}.card{box-shadow:none;break-inside:avoid}}
.hero-actions{margin-top:18px}.btn.light{background:#fff;color:#0f766e;border-color:#fff}.public-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.public-card{background:#fff;border:1px solid #e5eaf1;border-radius:16px;overflow:hidden;box-shadow:0 7px 20px #0f172a0a}.public-card a{text-decoration:none;color:inherit}.public-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.pc-body{padding:15px}.pc-body h3{margin:9px 0 6px;font-size:17px}.pc-body p{margin:0;color:#64748b;font-size:12px}.qrurl{font-size:9px;color:#64748b;word-break:break-all}.cards-print{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.account-card{background:#fff;border:2px solid #0f766e;border-radius:16px;padding:20px;min-height:260px}.ac-head{font-size:10px;text-align:center;line-height:1.5}.account-card h2{text-align:center;font-size:18px;margin:15px 0 4px}.account-card h3{text-align:center;margin:0}.account-card p{text-align:center}.credentials{background:#f8fafc;border-radius:10px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px;font-size:12px}.credentials code{font-size:13px;background:#fff;padding:4px;border-radius:5px}.small{font-size:10px!important;color:#64748b}@media(max-width:700px){.cards-print{grid-template-columns:1fr}}@media print{.hero,.topbar,footer,.btn{display:none!important}.cards-print{grid-template-columns:1fr 1fr}.account-card{break-inside:avoid}}

.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.account-form{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.account-form label{font-size:12px;font-weight:700}.account-form input,.account-form select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #d8dee8;border-radius:9px}.account-form .btn{align-self:end}.village-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.vlink{display:flex;justify-content:space-between;gap:5px;padding:10px;background:#f8fafc;border-radius:10px;text-decoration:none;color:#1e293b;font-size:11px}.vlink span{color:#0f766e}.bar-row{display:grid;grid-template-columns:140px 1fr 40px;align-items:center;gap:10px;margin:9px 0;font-size:11px}.bar-row>div{height:18px;background:#edf2f7;border-radius:9px;overflow:hidden}.bar-row i{display:block;height:100%;background:#0f766e;border-radius:9px}.month-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.month-grid div{padding:14px;background:#f8fafc;border-radius:10px;text-align:center}.month-grid b{display:block;font-size:11px;color:#64748b}.month-grid strong{display:block;font-size:25px;margin-top:5px}@media(max-width:700px){.account-form{grid-template-columns:1fr}.bar-row{grid-template-columns:95px 1fr 30px}.month-grid{grid-template-columns:repeat(3,1fr)}}

.locked{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;padding:14px;margin-bottom:14px}
.locked span{display:block;font-size:9px;color:#047857;font-weight:800}
.locked strong{display:block;font-size:18px;margin:3px 0}.locked small{color:#64748b}
.dropbox{border:2px dashed #cbd5e1;border-radius:16px;padding:24px;text-align:center;background:#f8fafc}
.drop-icon{font-size:38px}.dropbox h3{margin:5px 0}.dropbox p{color:#64748b;font-size:12px}
.dropbox input[type=file]{display:none}.fileinfo{margin:12px 0;font-size:12px;color:#475569}
.badtext{color:#dc2626}.upload-submit{width:100%;padding:14px}.upload-submit:disabled{opacity:.45}
.preview{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:12px 0}
.preview-item{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}
.preview-item img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.preview-item span{display:block;font-size:9px;padding:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.preview{grid-template-columns:repeat(3,1fr)}}

/* ===== MOBILE / HP OPTIMIZATION ===== */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{min-width:320px;overflow-x:hidden;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font-size:16px}
.mobile-nav{display:none}
@media(max-width:700px){
  body{padding-bottom:70px}
  .topbar{position:sticky;top:0;padding:9px 12px;min-height:58px;z-index:100}
  .brand{gap:8px;min-width:0}
  .brand b{font-size:9px;line-height:1.25;white-space:normal}
  .brand span{font-size:8px;line-height:1.2}
  .logo{width:36px;height:36px;min-width:36px;border-radius:9px}
  .topbar nav{display:none!important}
  .container{width:100%;padding:14px 12px 24px}
  .hero{border-radius:16px;padding:22px 17px;margin-bottom:14px}
  .hero.compact{padding:19px 16px}
  .hero h1{font-size:25px;line-height:1.2;margin:7px 0}
  .hero p{font-size:13px;line-height:1.45}
  .card{border-radius:14px;padding:15px;margin-bottom:12px}
  .card h2{font-size:19px;margin-top:4px}
  .two,.stats,.account-form{grid-template-columns:1fr}
  .stats{gap:8px}
  .stats div{padding:13px;border-radius:12px}
  .stats b{font-size:23px}
  .filter{display:flex;flex-direction:column;gap:8px}
  .filter input,.filter select{width:100%;margin:0}
  .btn{min-height:44px;padding:10px 13px;display:inline-flex;align-items:center;justify-content:center}
  .btn.primary{min-height:48px}
  .toolbar{gap:7px}
  .toolbar .btn{flex:1}
  .village-links{grid-template-columns:1fr 1fr;gap:7px}
  .vlink{min-height:46px;padding:10px 9px;font-size:10px;align-items:center}
  .gallery,.public-grid{grid-template-columns:1fr 1fr;gap:8px}
  .gallery a{border-radius:10px}
  .preview{grid-template-columns:repeat(3,1fr);gap:7px}
  .preview-item{border-radius:8px}
  .preview-item span{font-size:8px}
  .dropbox{padding:20px 12px;border-radius:13px}
  .drop-icon{font-size:34px}
  .dropbox h3{font-size:17px}
  .dropbox p{font-size:11px}
  .tablewrap{margin:0 -15px;padding:0 15px}
  table{font-size:11px;min-width:650px}
  th,td{padding:9px 7px}
  .bar-row{grid-template-columns:80px 1fr 28px;gap:7px}
  .month-grid{grid-template-columns:repeat(3,1fr);gap:7px}
  .month-grid div{padding:10px 5px}
  .month-grid strong{font-size:21px}
  .qrgrid{grid-template-columns:1fr}
  .cards-print{grid-template-columns:1fr}
  .account-card{min-height:0;padding:15px}
  .credentials{grid-template-columns:1fr}
  .login{max-width:none;margin:25px auto}
  .login .card{padding:18px}
  .form input,.form select,.form textarea,.login input,.filter input,.filter select{padding:12px;border-radius:10px}
  .mobile-nav{
    display:flex;position:fixed;left:0;right:0;bottom:0;height:64px;
    background:#fff;border-top:1px solid #dbe3ec;z-index:999;
    padding:5px 6px calc(5px + env(safe-area-inset-bottom));
    box-shadow:0 -5px 18px rgba(15,23,42,.10);
    justify-content:space-around
  }
  .mobile-nav a{
    flex:1;max-width:110px;text-decoration:none;color:#64748b;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:2px;font-size:10px;font-weight:700;border-radius:10px
  }
  .mobile-nav a span{font-size:20px;line-height:20px}
  .mobile-nav a:active{background:#f1f5f9}
  footer{padding:15px 10px;font-size:10px}
}
@media(max-width:380px){
  .village-links,.gallery,.public-grid{grid-template-columns:1fr}
  .brand b{font-size:8px}
}
