/* Hotel Titania HMS V4.2 — Responsive UI, fluid typography & Bangla rendering */
:root{
  --ui-font-size:clamp(14px, .12vw + 13.2px, 16px);
  --ui-space:clamp(12px, .8vw, 20px);
  --ui-card-pad:clamp(14px, 1.25vw, 22px);
  --ui-radius:clamp(8px, .55vw, 14px);
  --ui-control-h:44px;
  --bn-font:'Kalpurush','Noto Sans Bengali','Nirmala UI','SolaimanLipi',sans-serif;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;font-synthesis:none;text-rendering:optimizeLegibility}
body{font-size:var(--ui-font-size);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
button,input,select,textarea{font:inherit}
img{image-rendering:auto}
.container{width:min(1380px,calc(100% - clamp(28px,5vw,80px)))}

/* Fluid public site */
.nav-inner{min-height:clamp(72px,6vw,92px);gap:clamp(10px,1.2vw,22px)}
.brand{gap:clamp(8px,1vw,14px);min-width:0}.brand img{width:clamp(62px,5vw,82px);height:clamp(58px,4.6vw,74px)}
.brand strong{font-size:clamp(16px,1.25vw,23px);letter-spacing:clamp(.11em,.8vw,.18em);white-space:nowrap}
.navlinks{gap:clamp(11px,1.3vw,22px);font-size:clamp(12px,.78vw,14px)}
.hero{min-height:clamp(560px,72vh,780px)}.hero-content{padding-block:clamp(76px,8vw,118px) clamp(110px,11vw,160px)}
.hero h1{font-size:clamp(46px,6.5vw,92px)}.hero p{font-size:clamp(16px,1.3vw,20px)}
.section{padding-block:clamp(58px,6vw,92px)}.section-head{margin-bottom:clamp(24px,2.8vw,38px)}
.section-head h2,.page-hero h1{font-size:clamp(34px,4.1vw,58px)}
.card-body,.facility{padding:clamp(17px,1.5vw,28px)}
.cta{padding:clamp(28px,4vw,54px)}.cta h2{font-size:clamp(34px,3.6vw,50px)}

/* Admin: fluid shell */
.admin-layout{grid-template-columns:clamp(220px,16vw,270px) minmax(0,1fr)}
.admin-main{min-width:0;padding:clamp(16px,2.1vw,34px)}
.admin-main h1{font-size:clamp(30px,3vw,44px);line-height:1.12}
.admin-card{padding:var(--ui-card-pad);border-radius:var(--ui-radius)}
.form-grid,.room-form-grid{gap:clamp(10px,1vw,14px)}
.field input,.field select,.field textarea,
#sec-accounting input,#sec-accounting select,#sec-accounting textarea{min-height:var(--ui-control-h);font-size:clamp(14px,.2vw + 13px,16px);line-height:1.45}
textarea{resize:vertical}
.btn{min-height:42px;touch-action:manipulation}
.sidebar{min-width:0}.sidebar button{font-size:clamp(12px,.35vw + 10px,14px);min-height:43px}
.sidebar-profile b,.sidebar-profile span{max-width:clamp(125px,9vw,170px)}
.data-table{font-size:clamp(12px,.2vw + 11px,14px)}
.data-table th,.data-table td{padding:clamp(9px,.8vw,13px)}
.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}

/* Accounting Bangla — Kalpurush first, better rhythm */
#sec-accounting.acct-lang-bn,
#sec-accounting.acct-lang-bn input,
#sec-accounting.acct-lang-bn select,
#sec-accounting.acct-lang-bn textarea,
#sec-accounting.acct-lang-bn button,
#sec-accounting.acct-lang-bn .data-table{
  font-family:var(--bn-font)!important;
  font-weight:400;
  letter-spacing:0;
}
#sec-accounting.acct-lang-bn{font-size:clamp(15px,.22vw + 14px,17px);line-height:1.68}
#sec-accounting.acct-lang-bn h1,#sec-accounting.acct-lang-bn h2,#sec-accounting.acct-lang-bn h3,#sec-accounting.acct-lang-bn h4{font-family:var(--bn-font)!important;line-height:1.35;letter-spacing:0}
#sec-accounting.acct-lang-bn .field label{font-size:clamp(12px,.15vw + 11px,14px);text-transform:none;letter-spacing:0;line-height:1.45}
#sec-accounting.acct-lang-bn .acct-kpi span{font-size:clamp(12px,.15vw + 11px,14px);text-transform:none;letter-spacing:0;line-height:1.35}
#sec-accounting.acct-lang-bn .acct-kpi b{font-size:clamp(20px,1.35vw,25px);line-height:1.25}
#sec-accounting.acct-lang-bn .acct-subnav button{font-size:clamp(14px,.18vw + 13px,16px);line-height:1.35}
#sec-accounting.acct-lang-bn .data-table{font-size:clamp(13px,.2vw + 12px,15px);line-height:1.5}
#sec-accounting.acct-lang-bn .acct-note-example span{font-size:clamp(13px,.15vw + 12px,14px);line-height:1.62}
#sec-accounting .acct-title-row{gap:14px;flex-wrap:wrap}
#sec-accounting .acct-title-actions{align-items:center}
#sec-accounting .acct-subnav{scrollbar-width:thin;overscroll-behavior-x:contain}
#sec-accounting .acct-subnav button{min-height:42px}
#sec-accounting .acct-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}
#sec-accounting .acct-two-col,#sec-accounting .acct-entry-layout{gap:clamp(12px,1.4vw,20px)}
#sec-accounting .acct-report-grid{gap:10px}
#sec-accounting .acct-report-output{overflow:hidden}
#sec-accounting .acct-report-output .table-wrap{overflow-x:auto}

/* Wide / high-resolution screens: prevent over-stretching */
@media (min-width:1600px){
  :root{--ui-font-size:16px}.admin-main{max-width:1560px;width:100%;margin-inline:auto}.container{max-width:1440px}
  #sec-accounting .acct-kpi-grid{grid-template-columns:repeat(6,1fr)}
}
@media (min-width:2200px){
  :root{--ui-font-size:17px;--ui-control-h:48px}.admin-main{max-width:1800px}.container{max-width:1680px}
}

/* Laptop / tablet landscape */
@media (max-width:1180px){
  .admin-layout{grid-template-columns:210px minmax(0,1fr)}
  .admin-main{padding:20px}
  .pro-kpis,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #sec-accounting .acct-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Tablet / small laptop: horizontal admin navigation */
@media (max-width:900px){
  .admin-layout{display:block}
  .sidebar{position:sticky;top:0;z-index:25;display:flex;gap:7px;overflow-x:auto;overflow-y:hidden;padding:9px 12px;border-right:0;border-bottom:1px solid var(--line);box-shadow:0 5px 18px rgba(6,22,44,.05);scroll-snap-type:x proximity;background:rgba(255,255,255,.98);backdrop-filter:blur(10px)}
  .sidebar-profile{display:none}.sidebar button{flex:0 0 auto;min-width:auto;width:auto;white-space:nowrap;padding:10px 12px;margin:0;scroll-snap-align:start}
  .admin-main{padding:16px}
  .dashboard-heading{align-items:flex-start;gap:10px;flex-wrap:wrap}
  .dashboard-columns{grid-template-columns:1fr}
  .form-grid,.room-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #sec-accounting .acct-subnav{position:sticky;top:62px;z-index:20;margin-inline:-4px;padding:7px;overflow-x:auto;flex-wrap:nowrap}
  #sec-accounting .acct-guide-card{position:static}
  #sec-accounting .acct-entry-layout,#sec-accounting .acct-two-col{grid-template-columns:1fr}
  #sec-accounting .acct-breakdown{grid-template-columns:repeat(2,1fr)}
}

/* Phone */
@media (max-width:640px){
  :root{--ui-font-size:15px;--ui-card-pad:14px;--ui-control-h:46px}
  .container{width:min(100% - 24px,1380px)}
  .topbar{display:none}.nav-inner{min-height:68px}.brand img{width:58px;height:54px}.brand strong{font-size:15px;letter-spacing:.12em}
  .navlinks{top:68px;padding:14px;gap:6px}.navlinks a{width:100%;padding:10px 4px}.navlinks .btn{margin-top:5px}
  .hero{min-height:520px}.hero-content{padding-block:64px 104px}.hero-mark{width:125px}.hero-note{gap:10px}
  .booking-card{grid-template-columns:1fr;padding:14px}.booking-bar{margin-top:-28px}
  .section-head{display:block}.section-head .btn{margin-top:10px}
  .grid-3,.grid-4,.split,.footer-grid,.values,.progress-grid{grid-template-columns:1fr}
  .room-card img,.room-image-wrap{height:230px}.cta{padding:28px 20px}.page-hero{padding:72px 0 50px}
  .admin-header .container{width:calc(100% - 20px)}.admin-brand img{width:50px!important;height:48px!important}.admin-brand strong{font-size:17px}.admin-brand span{font-size:9px}
  .sidebar{top:0;padding:7px 9px;gap:6px}.sidebar button{min-height:40px;padding:9px 10px;font-size:13px}.sidebar button i{width:15px}
  .admin-main{padding:12px}.admin-main h1{font-size:29px;margin-bottom:8px}.admin-card{margin-bottom:12px}
  .pro-kpis,.admin-grid,.form-grid,.room-form-grid{grid-template-columns:1fr}
  .admin-title-row,.section-head,.room-admin-top,.dashboard-heading{align-items:flex-start;flex-direction:column}
  .acct-title-actions{width:100%;display:grid!important;grid-template-columns:1fr 1fr}.acct-title-actions>.btn{width:100%}.acct-lang-switch{grid-column:1/-1;width:100%}.acct-lang-switch button{flex:1}
  #sec-accounting .acct-subnav{top:54px;margin:0 -2px 12px;padding:6px;border-radius:10px}
  #sec-accounting .acct-subnav button{padding:9px 10px;min-height:40px}
  #sec-accounting .acct-kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.acct-kpi{padding:12px;border-radius:11px}
  #sec-accounting .acct-breakdown{grid-template-columns:1fr 1fr;padding:9px}.acct-breakdown>div{min-width:0}
  #sec-accounting .acct-report-grid{grid-template-columns:1fr}
  #sec-accounting .acct-report-heading{align-items:flex-start;gap:8px;flex-direction:column}
  #sec-accounting .data-table{min-width:720px}
  #sec-accounting .table-wrap{margin-inline:-2px;padding-bottom:5px}
  #sec-accounting .acct-row-actions{min-width:100px}
  #sec-accounting .acct-guide-list>div{align-items:flex-start}
  #sec-accounting.acct-lang-bn{font-size:16px}
  #sec-accounting.acct-lang-bn .field label{font-size:13px}
}

/* Very small phones */
@media (max-width:390px){
  .brand strong{max-width:150px;white-space:normal;line-height:1.15}.brand img{width:52px;height:50px}
  .admin-main{padding:10px}.admin-card{padding:12px}
  #sec-accounting .acct-kpi-grid{grid-template-columns:1fr}
  #sec-accounting .acct-breakdown{grid-template-columns:1fr}
  .acct-title-actions{grid-template-columns:1fr}
  .acct-lang-switch{grid-column:1}
}

/* Accessibility and smoother motion */
:focus-visible{outline:3px solid color-mix(in srgb,var(--gold) 55%,transparent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media (hover:none){.card:hover,.btn:hover{transform:none}.btn,.sidebar button,.acct-subnav button{min-height:44px}}
@supports(padding:max(0px)){.whatsapp{right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom))}}
