@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Montserrat:wght@400;500;600&display=swap');
:root{--tla-charcoal:#22241f;--tla-black:#171915;--tla-ivory:#f7f4ed;--tla-cream:#eee8dc;--tla-stone:#d8d0c2;--tla-gold:#b89254;--tla-bronze:#8c6a38;--tla-white:#fff;--tla-muted:#747067;--tla-success:#2f694d;--tla-warning:#9a681e;--tla-error:#963e37;--tla-info:#425b69;--tla-bg:var(--tla-ivory);--tla-panel:#fff;--tla-text:var(--tla-charcoal);--tla-border:var(--tla-stone);--sidebar-w:270px}
[data-theme=dark]{--tla-bg:#171915;--tla-panel:#252720;--tla-text:#f7f4ed;--tla-border:#46483f;--tla-muted:#b6b0a4}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--tla-bg);color:var(--tla-text);font-family:Montserrat,Arial,sans-serif;font-size:15px;line-height:1.6}h1,h2,h3,h4,h5,.display-font{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;letter-spacing:.01em}a{color:var(--tla-bronze)}a:hover{color:var(--tla-gold)}img{max-width:100%}.btn,.form-control,.form-select,.card,.alert,.modal-content,.dropdown-menu{border-radius:2px}.btn{font-weight:600;letter-spacing:.02em;padding:.7rem 1rem}.btn-dark{background:var(--tla-charcoal);border-color:var(--tla-charcoal)}.btn-gold{background:var(--tla-gold);border:1px solid var(--tla-gold);color:#171915}.btn-outline-gold{border:1px solid var(--tla-gold);color:var(--tla-text)}.btn-outline-gold:hover{background:var(--tla-gold);color:#171915}.form-control,.form-select{background:var(--tla-panel);border:1px solid var(--tla-border);color:var(--tla-text);min-height:46px}.form-control:focus,.form-select:focus{border-color:var(--tla-gold);box-shadow:0 0 0 .15rem rgba(184,146,84,.18);background:var(--tla-panel);color:var(--tla-text)}.form-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.card,.panel{background:var(--tla-panel);border:1px solid var(--tla-border);box-shadow:0 8px 28px rgba(0,0,0,.04)}.panel{padding:24px}.metric{padding:22px;border:1px solid var(--tla-border);background:var(--tla-panel)}.metric-value{font-family:'Cormorant Garamond',Georgia,serif;font-size:2.2rem;line-height:1}.metric-label{text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--tla-muted);margin-top:6px}.badge-status{display:inline-block;padding:.3rem .5rem;border:1px solid currentColor;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.status-published,.status-approved,.status-active,.status-verified_guest{color:var(--tla-success)}.status-pending,.status-scheduled,.status-awaiting_verification{color:var(--tla-warning)}.status-rejected,.status-failed,.status-spam,.status-disabled{color:var(--tla-error)}.stars{color:var(--tla-gold);letter-spacing:.08em;white-space:nowrap}.table{color:var(--tla-text);border-color:var(--tla-border)}.table>:not(caption)>*>*{background:transparent;border-color:var(--tla-border);padding:.9rem}.table thead th{text-transform:uppercase;font-size:.7rem;letter-spacing:.08em;color:var(--tla-muted);font-weight:600}.table-responsive{border:1px solid var(--tla-border)}.site-header{border-bottom:1px solid var(--tla-border);background:rgba(247,244,237,.94);backdrop-filter:blur(12px);position:sticky;top:0;z-index:1000}.site-header .navbar-brand img{height:48px;width:auto}.public-hero{padding:90px 0 70px;background:linear-gradient(120deg,#f7f4ed 0%,#eee8dc 100%);border-bottom:1px solid var(--tla-border);position:relative;overflow:hidden}.public-hero:after{content:'';position:absolute;right:-100px;top:-180px;width:520px;height:520px;border:1px solid rgba(184,146,84,.35);transform:rotate(45deg)}.public-hero h1{font-size:clamp(3rem,7vw,6rem);line-height:.92}.review-card{height:100%;background:var(--tla-panel);border:1px solid var(--tla-border);padding:24px;transition:transform .2s ease,border-color .2s ease}.review-card:hover{transform:translateY(-3px);border-color:var(--tla-gold)}.review-card h3{font-size:1.7rem}.review-meta{font-size:.78rem;color:var(--tla-muted);text-transform:uppercase;letter-spacing:.06em}.verified-badge{display:inline-flex;gap:6px;align-items:center;color:var(--tla-success);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.public-footer{background:var(--tla-charcoal);color:#f7f4ed;padding:52px 0 28px;margin-top:80px}.public-footer a{color:#d8c39b}.admin-shell{min-height:100vh}.admin-sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);background:var(--tla-charcoal);color:#fff;padding:24px 18px;overflow:auto;z-index:1040}.admin-sidebar .brand{padding:0 8px 20px;border-bottom:1px solid rgba(255,255,255,.15);margin-bottom:16px}.admin-sidebar .brand img{height:52px;width:auto}.admin-sidebar nav a{display:flex;align-items:center;gap:10px;color:#e9e5dc;text-decoration:none;padding:10px 12px;border-left:2px solid transparent;font-size:.87rem}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{background:rgba(255,255,255,.06);border-left-color:var(--tla-gold);color:#fff}.admin-main{margin-left:var(--sidebar-w);min-height:100vh}.admin-topbar{height:72px;border-bottom:1px solid var(--tla-border);background:var(--tla-panel);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:1030}.admin-content{padding:28px}.page-title{font-size:2.7rem;margin:0}.section-kicker{text-transform:uppercase;letter-spacing:.15em;color:var(--tla-bronze);font-size:.72rem;font-weight:600}.mobile-menu-button{display:none}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(360px,45%) 1fr;background:var(--tla-ivory)}.login-art{background:var(--tla-charcoal) url('../illustrations/khanga-login.svg') center/cover no-repeat;position:relative;display:flex;align-items:flex-end;padding:52px;color:#fff}.login-art:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,25,21,.15),rgba(23,25,21,.75))}.login-art-content{position:relative;z-index:1;max-width:560px}.login-art h1{font-size:4.2rem;line-height:.95}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px}.login-form{width:min(100%,480px)}.login-form .logo{height:65px;margin-bottom:38px}.login-form h2{font-size:3.4rem}.filter-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.content-divider{height:1px;background:var(--tla-border);margin:24px 0}.empty-state{text-align:center;padding:70px 25px;border:1px dashed var(--tla-border);background:var(--tla-panel)}.media-thumb{width:82px;height:62px;object-fit:cover;border:1px solid var(--tla-border)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.gallery-grid img,.gallery-grid video{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--tla-border)}.timeline{border-left:1px solid var(--tla-gold);padding-left:22px}.timeline-item{position:relative;padding-bottom:20px}.timeline-item:before{content:'';position:absolute;left:-27px;top:7px;width:9px;height:9px;background:var(--tla-gold)}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:2000}.widget-preview{border:1px dashed var(--tla-gold);padding:24px;background:var(--tla-panel)}.code-block{background:#171915;color:#eee8dc;padding:16px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.bar-chart-row{display:grid;grid-template-columns:160px 1fr 50px;gap:12px;align-items:center;margin:10px 0}.bar-track{height:10px;background:var(--tla-cream)}.bar-fill{height:100%;background:var(--tla-gold)}
@media(max-width:991.98px){.admin-sidebar{transform:translateX(-100%);transition:transform .2s ease}.admin-sidebar.open{transform:translateX(0)}.admin-main{margin-left:0}.mobile-menu-button{display:inline-flex}.admin-content{padding:20px}.page-title{font-size:2.2rem}.login-page{grid-template-columns:1fr}.login-art{min-height:330px;padding:28px}.login-art h1{font-size:3rem}.login-form-wrap{padding:34px 22px}.public-hero{padding:65px 0 52px}}
@media(max-width:575.98px){.login-page{display:block;min-height:100vh;background:#f7f4ed}.login-art{min-height:250px;align-items:center;text-align:center;background-image:url('../illustrations/khanga-login.svg');padding:24px}.login-art-content{margin:auto}.login-art h1{font-size:2.35rem}.login-art p{font-size:.9rem}.login-form-wrap{margin-top:-22px;position:relative;z-index:2;background:#f7f4ed;border-top:2px solid #b89254;padding:28px 20px 40px}.login-form .logo{height:52px;margin-bottom:20px}.login-form h2{font-size:2.45rem}.admin-topbar{padding:0 16px}.admin-content{padding:16px}.panel{padding:18px}.filter-bar>*{width:100%}.public-hero h1{font-size:3.1rem}.bar-chart-row{grid-template-columns:100px 1fr 38px}.review-card{padding:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
