*{box-sizing:border-box}body{margin:0;background:#f8fafc;color:#1e293b;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none;color:inherit}.topbar{height:68px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100% - 1200px)/2));position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px}.brand-icon{width:40px;height:40px;border-radius:12px;background:#16a34a;color:#fff;display:grid;place-items:center;font-size:22px}.brand strong{font-size:20px;color:#0f172a}.brand strong span{color:#16a34a}.brand small{display:block;color:#64748b;font-size:10px}.topbar nav{display:flex;gap:6px}.topbar nav a,.userbar a{padding:9px 12px;border-radius:9px;color:#475569;font-size:14px}.topbar nav a.active,.topbar nav a:hover{background:#f1f5f9;color:#15803d}.container{max-width:1200px;margin:auto;padding:34px 20px}.hero{background:linear-gradient(110deg,#0f172a,#14532d,#0f172a);color:white;padding:70px 20px}.hero-inner{max-width:1050px;margin:auto;text-align:center}.hero h1{font-size:clamp(32px,5vw,56px);margin:15px 0}.hero p{color:#cbd5e1;max-width:700px;margin:0 auto 30px;font-size:17px}.badge,.tag{display:inline-block;padding:6px 10px;border-radius:999px;background:#dcfce7;color:#166534;font-size:12px;font-weight:700}.search-card{background:#fff;padding:15px;border-radius:16px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;text-align:left;box-shadow:0 20px 50px #0005}.search-card input,.search-card select,input,select,textarea{width:100%;border:1px solid #cbd5e1;background:#f8fafc;border-radius:10px;padding:11px 12px;font:inherit}.btn{border:0;border-radius:10px;padding:10px 15px;background:#e2e8f0;color:#334155;cursor:pointer;font-weight:700}.btn-primary{background:#16a34a;color:#fff}.btn-success{background:#059669;color:#fff}.btn-danger{background:#dc2626;color:#fff}.btn-sm{padding:6px 9px;font-size:12px}.btn-full{width:100%}.section-head,.page-title,.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.room-card,.panel,.stat{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 3px 12px #0f172a08}.room-card img{width:100%;height:190px;object-fit:cover}.room-body{padding:18px}.room-body h3{font-size:21px;margin:12px 0 7px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag.gray{background:#f1f5f9;color:#475569}.tag.warning{background:#fef3c7;color:#92400e}.tag.status{margin-left:auto}.facilities{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0}.facilities span{font-size:11px;background:#ecfdf5;color:#166534;padding:5px 7px;border-radius:7px}.room-footer{border-top:1px solid #f1f5f9;padding-top:14px;display:flex;justify-content:space-between;align-items:end}.room-footer small,.stat small{display:block;color:#94a3b8;font-size:11px}.room-footer strong{display:block;color:#16a34a;font-size:18px}.muted{color:#64748b;font-size:13px;line-height:1.6}footer{text-align:center;padding:25px;border-top:1px solid #e2e8f0;color:#64748b;font-size:13px}.page-title h1{margin:0 0 5px}.tabs{display:flex;gap:8px;overflow:auto;border-bottom:1px solid #e2e8f0;margin:20px 0 25px}.tabs a{padding:12px 14px;white-space:nowrap;color:#64748b;font-weight:700;font-size:13px;border-bottom:2px solid transparent}.tabs a.active{color:#16a34a;border-color:#16a34a}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat{padding:20px}.stat strong{display:block;font-size:27px;margin:7px 0}.stat span{font-size:11px;color:#64748b}.two-col,.three-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.three-col{grid-template-columns:repeat(3,1fr)}.panel{padding:20px;margin-bottom:18px}.panel h2{font-size:17px;margin:0 0 16px}.panel-head a{font-size:12px;color:#16a34a;font-weight:700}.list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #f1f5f9}.list-row:last-child{border-bottom:0}.list-row small{display:block;color:#64748b;font-size:11px;margin-top:3px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:12px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:top}th{background:#f8fafc;color:#64748b;font-size:11px;text-transform:uppercase}td small{display:block;color:#64748b;margin-top:4px}.inline-form{display:flex;gap:6px;align-items:center}.inline-form select{width:auto;padding:7px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;padding:18px;background:#f8fafc;border-radius:12px;margin-bottom:18px}.form-grid .wide{grid-column:1/-1}label{display:block;font-size:12px;font-weight:700;color:#334155;margin-bottom:12px}label input,label select,label textarea{display:block;margin-top:6px;font-weight:400}.notice{padding:17px;border-bottom:1px solid #e2e8f0}.notice h3{margin:7px 0}.notice small{color:#16a34a}.tenant-hero{background:#0f172a;color:#fff;border-radius:16px;padding:25px;display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.tenant-hero h1{margin:0 0 6px}.tenant-hero p{color:#94a3b8;margin:0}.tenant-hero small{display:block;color:#94a3b8}.tenant-hero strong{display:block;color:#4ade80;font-size:18px;margin-top:5px}.detail-list div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f1f5f9;font-size:13px}.narrow{max-width:700px;margin:auto}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#f0fdf4,#f8fafc)}.auth-card{width:min(430px,100%);background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:30px;box-shadow:0 20px 60px #0f172a15}.auth-card h1{margin:25px 0 6px}.auth-card .brand{margin-bottom:20px}.alert{padding:12px 14px;border-radius:10px;margin:12px 0;font-size:13px}.alert.error{background:#fee2e2;color:#991b1b}.alert.success{background:#dcfce7;color:#166534}.demo-box{background:#f8fafc;border-radius:10px;padding:12px;margin-top:20px;font-size:12px;line-height:1.8}.back-link{display:block;text-align:center;margin-top:20px;color:#16a34a;font-size:13px}.hidden{display:none!important}@media(max-width:900px){.room-grid,.three-col{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.search-card{grid-template-columns:1fr 1fr}.search-card .btn{grid-column:1/-1}}@media(max-width:650px){.topbar nav{display:none}.room-grid,.two-col,.three-col,.stats,.form-grid{grid-template-columns:1fr}.tenant-hero{display:block}.tenant-hero>div+div{margin-top:18px}.search-card{grid-template-columns:1fr}.hero{padding:50px 15px}.container{padding:25px 14px}.inline-form{flex-wrap:wrap}}
.room-gallery{display:flex;gap:6px;padding:8px 12px 0;overflow:auto}.room-gallery img{width:62px!important;height:46px!important;border-radius:7px;object-fit:cover;flex:0 0 auto}.dark .room-gallery{background:transparent}


/* =========================================================
   KOSHUB PREMIUM DESIGN SYSTEM
   Frontend + Admin/Pengawas + Penyewa
   ========================================================= */
:root{
  --kh-green:#079455;
  --kh-green-dark:#056b3f;
  --kh-green-soft:#eafaf3;
  --kh-gold:#b98216;
  --kh-gold-2:#d5a53b;
  --kh-ink:#132033;
  --kh-muted:#64748b;
  --kh-line:#e8edf2;
  --kh-bg:#f7f8fa;
  --kh-card:#ffffff;
  --kh-shadow:0 16px 45px rgba(15,23,42,.08);
  --kh-shadow-sm:0 8px 24px rgba(15,23,42,.07);
}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--kh-bg);color:var(--kh-ink)}

/* Header */
.topbar{height:76px;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-bottom:1px solid rgba(226,232,240,.8);box-shadow:0 4px 20px rgba(15,23,42,.04);padding-left:max(22px,calc((100% - 1360px)/2));padding-right:max(22px,calc((100% - 1360px)/2))}
.topbar .brand{gap:12px}.topbar .brand-icon{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,var(--kh-gold),#8d6110);box-shadow:0 8px 18px rgba(185,130,22,.22)}
.topbar .brand strong{font-size:21px;letter-spacing:-.02em}.topbar .brand strong span{color:var(--kh-gold)}.topbar .brand small{font-size:10px;color:#718096;letter-spacing:.02em}
.topbar nav{gap:4px}.topbar nav a{padding:11px 14px;border-radius:10px;font-weight:650;color:#334155}.topbar nav a.active,.topbar nav a:hover{background:#fff8e8;color:#9a680e}

/* Frontend hero */
.hero{padding:0 20px 62px;background:linear-gradient(115deg,#0f3c2c,#145b40 48%,#0c2e22);position:relative;overflow:visible}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,20,14,.72),rgba(4,20,14,.20),rgba(4,20,14,.35));pointer-events:none}
.hero-inner{max-width:1360px;position:relative;z-index:1;text-align:left;padding-top:76px;padding-bottom:0}
.hero .badge{background:rgba(213,165,59,.16);border:1px solid rgba(213,165,59,.55);color:#fff5d6;padding:9px 15px;font-size:12px}
.hero h1{max-width:760px;font-size:clamp(40px,5.2vw,72px);line-height:1.03;letter-spacing:-.045em;margin:20px 0 14px;color:#fff}
.hero p{max-width:700px;margin:0 0 28px;color:#dbe8e1;font-size:17px}
.search-card{max-width:1280px;margin:28px auto -92px;padding:16px;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.8);border-radius:22px;box-shadow:0 22px 60px rgba(2,12,8,.22);grid-template-columns:1.05fr 1fr .8fr .95fr 1.2fr auto;align-items:end}
.search-card input,.search-card select{background:#f8fafc;border-color:#e3e8ef;min-height:46px}.search-card .btn{min-height:46px;border-radius:13px;padding:0 22px;background:linear-gradient(135deg,var(--kh-gold),#a56f0b);box-shadow:0 8px 20px rgba(185,130,22,.22)}
.price-filter{min-width:0}.price-filter-head strong{color:var(--kh-gold)}.price-filter input[type=range]{accent-color:var(--kh-gold)}

/* Room listing */
main.container{max-width:1360px;padding-top:112px}
.section-head{margin-bottom:20px}.section-head h2{font-size:32px;letter-spacing:-.03em;margin:0 0 5px}.section-head .muted{font-size:14px}
.room-grid{gap:24px}.room-card-modern{border:1px solid #e7ebef;border-radius:22px;box-shadow:var(--kh-shadow-sm);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;cursor:pointer;position:relative}
.room-card-modern:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(15,23,42,.13);border-color:#d6dee7}
.room-cover-button{display:block;position:relative;overflow:hidden;background:#e8edf1}.room-cover-button:after{content:"Lihat detail →";position:absolute;left:16px;bottom:14px;padding:8px 12px;border-radius:999px;background:rgba(15,23,42,.72);color:#fff;font-size:11px;font-weight:700;opacity:0;transform:translateY(5px);transition:.2s ease}.room-card-modern:hover .room-cover-button:after{opacity:1;transform:none}
.room-card-modern .room-cover-button img{display:block;width:100%;height:250px;object-fit:cover;transition:transform .35s ease}.room-card-modern:hover .room-cover-button img{transform:scale(1.035)}
.room-card-modern .room-body{padding:18px 20px 20px}.room-card-modern .tags{margin-top:-39px;margin-bottom:18px;position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:7px}.room-card-modern .tag{padding:8px 11px;border:1px solid rgba(255,255,255,.65);background:rgba(255,255,255,.94);box-shadow:0 5px 14px rgba(15,23,42,.08);color:#14532d}.room-card-modern .tag.status{background:#dcfce7;color:#15803d;border-color:#bbf7d0}
.room-card-modern h3{font-size:24px;letter-spacing:-.025em;margin:0 0 8px}.room-card-modern h3 a:hover{color:var(--kh-gold)!important}.room-card-modern .muted{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px}
.room-card-modern .facilities{gap:7px;margin:15px 0 20px}.room-card-modern .facilities span{padding:6px 9px;border:1px solid #b9efd4;background:#effbf5;color:#16724b;font-size:11px}
.room-card-modern .room-footer{padding-top:16px;align-items:center}.room-card-modern .room-footer small{font-size:10px}.room-card-modern .room-footer strong{font-size:22px;color:var(--kh-gold)}.room-card-modern .room-footer .btn{border-radius:11px}.room-card-modern .room-footer .btn-primary{background:linear-gradient(135deg,var(--kh-green),#047a46)}

/* Premium modals */
.modal{background:rgba(7,15,12,.78);backdrop-filter:blur(8px);padding:22px}.modal-card,.gallery-modal-card{border:1px solid rgba(255,255,255,.15);border-radius:24px;box-shadow:0 35px 100px rgba(0,0,0,.42)}
.modal-close{width:40px;height:40px;right:14px;top:14px;background:rgba(255,255,255,.95);box-shadow:0 8px 22px rgba(0,0,0,.15);font-size:25px}.modal-close:hover{background:#fff;color:#a56f0b;transform:scale(1.04)}

/* Admin / pengawas */
.admin-shell{background:linear-gradient(135deg,#f8fafb,#f4f7f6 55%,#fbfaf6)}
.admin-topbar{height:76px;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-bottom:1px solid var(--kh-line);box-shadow:0 5px 22px rgba(15,23,42,.05);padding:0 26px}
.admin-topbar .brand strong{font-size:20px}.admin-topbar .brand strong span{color:var(--kh-gold)}
.sidebar-toggle{border-color:#e4e9ee;border-radius:11px;background:#fff;box-shadow:0 4px 12px rgba(15,23,42,.05)}
.admin-sidebar{top:76px;height:calc(100vh - 76px);width:266px;flex-basis:266px;background:rgba(255,255,255,.96);border-right:1px solid var(--kh-line);box-shadow:8px 0 28px rgba(15,23,42,.025)}
.admin-sidebar.collapsed{width:78px;flex-basis:78px}.sidebar-inner{padding:18px 12px}.sidebar-title{color:#94a3b8;letter-spacing:.1em}.sidebar-link{min-height:42px;border-radius:12px;font-size:13px;color:#526071}.sidebar-link:hover{background:#fff8e8;color:#8d610e}.sidebar-link.active{background:linear-gradient(90deg,#fff4d9,#fffaf0);color:#9a680e;box-shadow:inset 3px 0 0 var(--kh-gold)}.sidebar-icon{font-size:17px}.sidebar-divider{background:#edf0f3;margin:17px 8px}
.admin-content{padding:32px clamp(20px,3vw,46px)}.page-title{margin-bottom:24px}.page-title h1{font-size:32px;letter-spacing:-.035em}.page-title .muted{margin-top:4px}
.panel,.stat{border:1px solid #e8edf1;border-radius:18px;box-shadow:var(--kh-shadow-sm)}.panel{padding:22px}.panel h2{font-size:18px}.panel-head{margin-bottom:4px}.panel-head a{color:#a16e11}.stats{gap:16px}.stat{padding:21px;position:relative;overflow:hidden}.stat:after{content:"";position:absolute;width:90px;height:90px;right:-30px;top:-30px;border-radius:50%;background:linear-gradient(135deg,rgba(213,165,59,.16),rgba(7,148,85,.08))}.stat strong{font-size:30px;color:#132033;position:relative;z-index:1}.stat small,.stat span{position:relative;z-index:1}.two-col,.three-col{gap:20px}
.tabs{gap:6px;border-bottom:0;background:#eef2f4;padding:5px;border-radius:14px}.tabs a{border:0;border-radius:10px;padding:11px 15px}.tabs a.active{background:#fff;color:#9a680e;box-shadow:0 4px 14px rgba(15,23,42,.08);border:0}
.form-grid{background:#f8fafb;border:1px solid #e8edf1;border-radius:14px}.btn{border-radius:11px}.btn-primary{background:linear-gradient(135deg,var(--kh-green),#047a46);box-shadow:0 7px 17px rgba(7,148,85,.16)}.btn-primary:hover{filter:brightness(1.03);transform:translateY(-1px)}
.table-wrap{border:1px solid #e8edf1;border-radius:14px}.table-wrap table{margin:0}.table-wrap th{background:#f8fafb}.table-wrap th:first-child{border-radius:14px 0 0 0}.table-wrap th:last-child{border-radius:0 14px 0 0}
.theme-toggle{border-radius:11px!important}.userbar{color:#64748b}.userbar b{color:#132033}

/* Penyewa */
body:has(.tenant-hero){background:linear-gradient(135deg,#f7f9f8,#f7f6f2)}
body:has(.tenant-hero) .topbar{height:76px}.tenant-hero{position:relative;overflow:hidden;border-radius:24px;padding:30px 32px;background:linear-gradient(125deg,#0d4732,#0a7a4a 58%,#b98216);box-shadow:0 22px 50px rgba(8,73,47,.17)}
.tenant-hero:after{content:"";position:absolute;width:250px;height:250px;right:-70px;top:-120px;border-radius:50%;background:rgba(255,255,255,.10)}.tenant-hero h1{font-size:32px;letter-spacing:-.035em}.tenant-hero p{color:#d9eee5}.tenant-hero small{color:#d8e9e1}.tenant-hero strong{color:#fff;font-size:24px}.tenant-stat-grid{gap:16px}.tenant-stat{background:#fff;border:1px solid #e7ecef;border-radius:16px;box-shadow:var(--kh-shadow-sm)}
body:has(.tenant-hero) .panel{border-radius:18px;box-shadow:var(--kh-shadow-sm)}body:has(.tenant-hero) .panel h2{font-size:18px}body:has(.tenant-hero) .detail-list div{padding:14px 0}body:has(.tenant-hero) .tag{border-radius:999px}

/* Login */
.auth-page{background:radial-gradient(circle at top right,#fff8e8 0,#f7faf9 34%,#eef7f2 100%)}.auth-card{border-radius:24px;border-color:#e7ecef;box-shadow:0 28px 80px rgba(15,23,42,.12)}

@media(max-width:1050px){.search-card{grid-template-columns:repeat(3,1fr)}.search-card .price-filter{grid-column:1/-1}.search-card .btn{grid-column:1/-1}.room-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.hero{padding-bottom:40px}.hero-inner{padding-top:50px}.hero h1{font-size:42px}.search-card{margin-bottom:-62px;grid-template-columns:1fr}.search-card .price-filter,.search-card .btn{grid-column:auto}main.container{padding-top:85px}.room-grid{grid-template-columns:1fr}.room-card-modern .room-cover-button img{height:230px}.admin-topbar{height:70px}.admin-sidebar{top:70px;height:calc(100vh - 70px)}.tenant-hero{padding:25px 22px}.tenant-hero h1{font-size:26px}}
@media(max-width:650px){.topbar{height:68px}.topbar .brand strong{font-size:18px}.hero h1{font-size:36px}.hero p{font-size:15px}.section-head h2{font-size:27px}.room-card-modern .room-body{padding:17px}.room-card-modern h3{font-size:22px}.admin-content{padding:22px 14px}.page-title h1{font-size:27px}}


/* KOSHUB Frontend Layout V5 - container/search/card refinement */
main.container{max-width:1280px;padding-left:24px;padding-right:24px}
.hero-inner{max-width:1280px;padding-left:24px;padding-right:24px}
.hero-inner > .badge,
.hero-inner > h1,
.hero-inner > p{display:block;width:min(700px,100%);margin-left:auto;text-align:right}
.hero-inner > .badge{width:max-content;margin-right:0;margin-bottom:14px}
.hero-inner > h1{margin-right:0}
.hero-inner > p{margin-right:0}
.premium-search{width:min(960px,100%);margin-left:auto;margin-right:0}
.premium-search .search-submit{min-width:118px;padding:10px 14px;font-size:13px;white-space:nowrap}
.room-grid-responsive{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
@media(max-width:1100px){
  main.container{padding-left:20px;padding-right:20px}
  .hero-inner{padding-left:20px;padding-right:20px}
  .room-grid-responsive{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .hero-inner > .badge,.hero-inner > h1,.hero-inner > p{width:100%;text-align:right}
  .hero-inner > .badge{width:max-content;margin-left:auto}
  .premium-search{width:100%;margin-left:0;margin-right:0}
  .room-grid-responsive{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
@media(max-width:650px){
  main.container{padding-left:14px;padding-right:14px}
  .hero-inner{padding-left:14px;padding-right:14px}
  .room-grid-responsive{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .room-card-premium .room-content{padding:12px}
  .room-card-premium .room-title-row{gap:8px;align-items:flex-start}
  .room-card-premium .room-title-row h3{font-size:17px}
  .room-card-premium .room-price strong{font-size:14px}
  .room-card-premium .room-price small{font-size:9px}
  .room-card-premium .room-location,.room-card-premium .room-specs,.room-card-premium .room-amenities{font-size:10px}
  .room-card-premium .room-actions{gap:6px;flex-direction:column}
  .room-card-premium .room-actions a{width:100%;font-size:10px;padding:8px 7px}
}
