/* MOLO TUNIS — Luxury Management Dashboard */
:root{
 --bg:#111114;--panel:#17171a;--panel2:#1c1c20;--cream:#f5efe6;--cream2:#e8dfc9;
 --gold:#d4af37;--muted:#a6a095;--line:rgba(245,239,230,.10);--line2:rgba(245,239,230,.18);
 --green:#7eb89a;--yellow:#d9b86c;--red:#d47c76;--blue:#91a9c5;
 --serif:'Cormorant Garamond',Georgia,serif;--sans:'Plus Jakarta Sans',sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--cream);font-family:var(--sans)}
body{overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#38383c;border-radius:20px}
.hidden{display:none!important}.app{min-height:100vh;display:flex}.login-screen{min-height:100vh;display:grid;grid-template-columns:44% 56%;background:#0d0d0f}
.login-panel{padding:7vh 7vw;display:flex;flex-direction:column;justify-content:center;max-width:650px;margin:auto;width:100%}
.login-visual{position:relative;min-height:100vh;background:linear-gradient(135deg,rgba(17,17,20,.1),rgba(17,17,20,.8)),url('assets/molo-hero.jpg') center/cover no-repeat;display:flex;align-items:flex-end;padding:7vw}
.visual-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,17,20,.1),rgba(17,17,20,.85))}
.visual-copy{position:relative;z-index:1;max-width:560px}.visual-copy span{font-size:11px;letter-spacing:.2em;color:var(--cream2)}.visual-copy h2{font:500 clamp(52px,6vw,94px)/.8 var(--serif);margin:20px 0}.visual-copy em{color:var(--cream2);font-style:italic}.visual-copy p{color:#c3bdb3;max-width:440px}
.brand-mark{display:inline-flex;flex-direction:column;align-items:center;width:max-content}.brand-mark span{width:58px;height:58px;border-radius:50%;background:var(--cream);color:#111;display:grid;place-items:center;font:600 25px var(--serif);position:relative}.brand-mark span:after{content:"";position:absolute;height:2px;background:#111;left:0;right:0;top:51%}.brand-mark small{font-size:8px;letter-spacing:.35em;margin-top:5px;color:var(--cream2)}
.brand-mark.compact span{width:48px;height:48px;font-size:20px}.brand-mark.compact small{font-size:7px}
.login-copy{margin:50px 0 30px}.eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.login-copy h1{font:500 58px/.9 var(--serif);margin:14px 0}.login-copy p{color:var(--muted);max-width:470px;line-height:1.7}
form label{display:block;font-size:12px;color:var(--muted);margin-bottom:15px}form input{width:100%;margin-top:8px;background:#151519;border:1px solid var(--line2);border-radius:10px;padding:14px;color:var(--cream);outline:none}form input:focus{border-color:var(--cream2);box-shadow:0 0 0 3px rgba(232,223,201,.06)}
.primary-btn,.secondary-btn{border:0;border-radius:10px;padding:14px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600}.primary-btn{background:var(--cream);color:#111;width:100%;margin-top:8px}.primary-btn:hover{background:#fff}.secondary-btn{background:#242428;color:var(--cream);border:1px solid var(--line)}.demo-hint{font-size:11px;color:#777;margin-top:14px;text-align:center}
.sidebar{width:255px;background:#121215;border-right:1px solid var(--line);padding:28px 16px 18px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:50}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;padding:0 10px 24px}.close-sidebar{display:none;background:none;border:0;color:var(--muted);font-size:22px}
.venue-status{margin:0 5px 24px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#17171a;font-size:11px;color:var(--cream)}.venue-status span{width:7px;height:7px;background:var(--green);display:inline-block;border-radius:50%;box-shadow:0 0 9px var(--green);margin-right:7px}.venue-status small{display:block;color:#777;margin:4px 0 0 14px}
nav{display:flex;flex-direction:column;gap:4px}.nav-item{border:0;background:transparent;color:#92908b;text-align:left;padding:12px 12px;border-radius:9px;display:flex;align-items:center;gap:11px;font-size:12px}.nav-item i{font-size:18px}.nav-item:hover,.nav-item.active{background:#202024;color:var(--cream)}.nav-item.active{box-shadow:inset 2px 0 var(--cream2)}.nav-item b{margin-left:auto;background:#302f2b;color:var(--cream2);font-size:9px;padding:3px 6px;border-radius:10px}
.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding:16px 6px 0}.profile-mini{display:flex;gap:10px;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;background:var(--cream2);color:#171717;display:grid;place-items:center;font-size:10px;font-weight:700}.profile-mini b,.profile-mini span{display:block}.profile-mini b{font-size:11px}.profile-mini span{font-size:9px;color:#777;margin-top:2px}.logout{border:0;background:none;color:#777;font-size:11px;padding:14px 0 0}.logout:hover{color:var(--cream)}
.main{margin-left:255px;min-width:0;width:calc(100% - 255px)}.topbar{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:rgba(17,17,20,.88);backdrop-filter:blur(15px);position:sticky;top:0;z-index:40}.topbar-left{display:flex;align-items:center;gap:12px}.topbar h2{font:500 25px var(--serif);margin:2px 0 0}.menu-btn{display:none;background:#1b1b1f;border:1px solid var(--line);color:var(--cream);width:40px;height:40px;border-radius:9px}.topbar-actions{display:flex;align-items:center;gap:10px}.icon-btn{position:relative;background:#19191c;border:1px solid var(--line);color:var(--cream);width:38px;height:38px;border-radius:9px}.icon-btn .dot{position:absolute;width:5px;height:5px;background:var(--red);border-radius:50%;top:8px;right:9px}.date-pill,.profile-pill{height:38px;border:1px solid var(--line);border-radius:9px;padding:0 12px;display:flex;align-items:center;gap:8px;color:#9d9992;font-size:10px}.profile-pill{color:var(--cream);padding-right:8px}.profile-pill .avatar{width:28px;height:28px}
.content{padding:30px 32px 50px;max-width:1600px}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:25px}.page-head h1{font:500 38px/.95 var(--serif);margin:8px 0}.page-head p{color:#817e78;font-size:12px;margin:0}.actions{display:flex;gap:8px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:18px;min-width:0}.kpi-top{display:flex;justify-content:space-between;align-items:center;color:#777;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.kpi i{font-size:17px;color:var(--cream2)}.kpi-value{font:500 31px var(--serif);margin:12px 0 5px}.trend{font-size:10px}.trend.up{color:var(--green)}.trend.warn{color:var(--yellow)}
.grid-2{display:grid;grid-template-columns:1.45fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:18px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-title{font:500 22px var(--serif)}.panel-sub{font-size:10px;color:#777}.link-btn{border:0;background:none;color:var(--cream2);font-size:10px}
.reservation-list{display:flex;flex-direction:column}.reservation-row{display:grid;grid-template-columns:62px 1fr auto auto;gap:14px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.reservation-row:first-child{border-top:0}.time{font:500 18px var(--serif);color:var(--cream2)}.guest b{font-size:12px;display:block}.guest span{font-size:10px;color:#777}.table-tag{font-size:9px;color:#a9a49b;border:1px solid var(--line2);padding:5px 7px;border-radius:5px}.status{font-size:9px;padding:5px 8px;border-radius:20px}.confirmed{color:var(--green);background:rgba(126,184,154,.1)}.pending{color:var(--yellow);background:rgba(217,184,108,.1)}.cancelled{color:var(--red);background:rgba(212,124,118,.1)}
.event-card{border:1px solid var(--line);border-radius:11px;padding:15px;background:linear-gradient(135deg,#1c1c20,#151518)}.event-date{font-size:9px;letter-spacing:.14em;color:var(--cream2);text-transform:uppercase}.event-card h3{font:500 25px var(--serif);margin:9px 0 4px}.event-card p{font-size:10px;color:#777}.event-meta{display:flex;justify-content:space-between;margin-top:15px;padding-top:12px;border-top:1px solid var(--line);font-size:10px;color:#aaa}
.activity{display:flex;gap:10px;padding:11px 0;border-top:1px solid var(--line)}.activity:first-child{border-top:0}.activity-dot{width:7px;height:7px;border-radius:50%;background:var(--cream2);margin-top:5px;flex:0 0 auto}.activity b{font-size:11px}.activity span{display:block;font-size:9px;color:#777;margin-top:2px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.search{flex:1;min-width:180px;background:#18181c;border:1px solid var(--line);color:var(--cream);padding:11px 12px;border-radius:8px;outline:none}.filter{background:#18181c;border:1px solid var(--line);color:#aaa;padding:10px;border-radius:8px;font-size:10px}.data-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.data-table{width:100%;border-collapse:collapse;min-width:720px}.data-table th{text-align:left;padding:11px 12px;color:#777;font-size:9px;text-transform:uppercase;letter-spacing:.1em;background:#151519}.data-table td{padding:13px 12px;border-top:1px solid var(--line);font-size:10px}.data-table td strong{font-size:11px}.row-actions{display:flex;gap:5px}.small-btn{background:#222226;border:1px solid var(--line);color:#bdb9b0;padding:6px 8px;border-radius:6px;font-size:9px}.small-btn:hover{color:var(--cream);border-color:var(--line2)}
.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.event-large{min-height:220px;position:relative;overflow:hidden;border-radius:12px;padding:20px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(180deg,transparent,#0d0d0f),#222}.event-large h3{font:500 30px var(--serif);margin:4px 0}.event-large p{font-size:10px;color:#b8b4ad}.event-large .event-top{position:absolute;top:15px;left:15px}.pill{font-size:9px;border:1px solid var(--line2);padding:5px 8px;border-radius:20px;color:var(--cream2)}
.chart{height:210px;display:flex;align-items:flex-end;gap:10px;padding:18px 4px 0}.bar-wrap{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.bar{width:100%;max-width:35px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--cream2),#6f695e);min-height:5px}.bar-wrap span{font-size:8px;color:#666}.legend{display:flex;gap:14px;font-size:9px;color:#777}.legend i{display:inline-block;width:7px;height:7px;background:var(--cream2);border-radius:50%;margin-right:5px}
.progress{height:7px;background:#28282b;border-radius:10px;overflow:hidden}.progress i{display:block;height:100%;background:var(--cream2);border-radius:10px}.metric-line{margin:14px 0}.metric-line>div{display:flex;justify-content:space-between;font-size:10px;margin-bottom:6px;color:#999}.metric-line strong{color:var(--cream)}
.staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.staff-card{padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:11px}.staff-card .avatar{margin-bottom:12px}.role{font-size:9px;color:#777;text-transform:uppercase;letter-spacing:.1em}.staff-card h3{font:500 21px var(--serif);margin:4px 0}.staff-card p{font-size:10px;color:#777}
.setting-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-top:1px solid var(--line)}.setting-row:first-child{border-top:0}.setting-row b{font-size:11px}.setting-row span{display:block;font-size:9px;color:#777;margin-top:3px}.toggle{width:38px;height:21px;background:#333;border-radius:20px;padding:3px;border:0}.toggle i{display:block;width:15px;height:15px;border-radius:50%;background:#888;transition:.2s}.toggle.on{background:var(--cream2)}.toggle.on i{background:#111;transform:translateX(17px)}
.toast{position:fixed;right:22px;bottom:22px;background:#f5efe6;color:#111;padding:12px 16px;border-radius:9px;font-size:11px;box-shadow:0 15px 40px #0008;transform:translateY(20px);opacity:0;pointer-events:none;transition:.25s;z-index:100}.toast.show{transform:none;opacity:1}
.mobile-overlay{display:none}

@media(max-width:1050px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.event-grid,.staff-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){
 .login-screen{grid-template-columns:1fr}.login-visual{display:none}.login-panel{padding:40px 24px}.login-copy{margin-top:40px}.login-copy h1{font-size:48px}
 .sidebar{transform:translateX(-105%);transition:transform .25s;box-shadow:25px 0 70px #0008}.sidebar.open{transform:translateX(0)}.close-sidebar{display:block}.mobile-overlay{display:block;position:fixed;inset:0;background:#0009;z-index:45;opacity:0;pointer-events:none;transition:.25s}.mobile-overlay.show{opacity:1;pointer-events:auto}
 .main{margin-left:0;width:100%}.menu-btn{display:block}.topbar{padding:0 16px;height:74px}.date-pill{display:none}.profile-pill span{display:none}.content{padding:22px 16px 40px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:32px}.actions{width:100%}.actions>*{flex:1}
 .grid-2,.grid-3,.event-grid,.staff-grid{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.reservation-row{grid-template-columns:52px 1fr auto}.reservation-row .table-tag{display:none}
}
@media(max-width:480px){.kpis{grid-template-columns:1fr}.topbar h2{font-size:22px}.content{padding:18px 12px 30px}.panel{padding:14px}.login-panel{padding:30px 18px}.login-copy h1{font-size:42px}.reservation-row{gap:9px}.status{display:none}}

.task-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-top:1px solid var(--line)}.task-row:first-child{border-top:0}.task-row>div{flex:1}.task-row b{display:block;font-size:11px}.task-row span{display:block;font-size:9px;color:#777;margin-top:3px}.task-check{width:28px;height:28px;border-radius:7px;background:#1d1d21;border:1px solid var(--line2);color:#777}.task-check.done{background:var(--cream2);color:#111}.arrived{color:var(--blue);background:rgba(145,169,197,.11)}.modal{position:fixed;inset:0;z-index:200;display:none}.modal.show{display:block}.modal-backdrop{position:absolute;inset:0;background:#000b;backdrop-filter:blur(5px)}.modal-card{position:relative;width:min(560px,calc(100% - 28px));max-height:90vh;overflow:auto;margin:5vh auto;background:#18181c;border:1px solid var(--line2);border-radius:15px;padding:22px;box-shadow:0 30px 100px #000}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modal-head h3{font:500 31px var(--serif);margin:6px 0 0}.close-modal{border:0;background:#242428;color:#aaa;width:34px;height:34px;border-radius:8px}.modal-form label{display:block;font-size:10px;color:#888;margin-bottom:12px}.modal-form input,.modal-form select{width:100%;margin-top:7px;background:#111114;border:1px solid var(--line2);color:var(--cream);border-radius:8px;padding:11px;outline:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}@media(max-width:480px){.form-grid{grid-template-columns:1fr}.modal-card{margin:2vh auto;padding:16px}}
.task-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-top:1px solid var(--line)}.task-row:first-child{border-top:0}.task-row>div{flex:1}.task-row b{display:block;font-size:11px}.task-row span{display:block;font-size:9px;color:#777;margin-top:3px}.task-check{width:28px;height:28px;border-radius:7px;background:#1d1d21;border:1px solid var(--line2);color:#777}.task-check.done{background:var(--cream2);color:#111}.task-check i{font-size:15px}.modal{position:fixed;inset:0;z-index:200;display:none}.modal.show{display:block}.modal-backdrop{position:absolute;inset:0;background:#000b;backdrop-filter:blur(5px)}.modal-card{position:relative;width:min(560px,calc(100% - 28px));max-height:90vh;overflow:auto;margin:5vh auto;background:#18181c;border:1px solid var(--line2);border-radius:15px;padding:22px;box-shadow:0 30px 100px #000}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modal-head h3{font:500 31px var(--serif);margin:6px 0 0}.close-modal{border:0;background:#242428;color:#aaa;width:34px;height:34px;border-radius:8px}.modal-form label{display:block;font-size:10px;color:#888;margin-bottom:12px}.modal-form input,.modal-form select,.modal-form textarea{width:100%;margin-top:7px;background:#111114;border:1px solid var(--line2);color:var(--cream);border-radius:8px;padding:11px;outline:none;box-sizing:border-box}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.detail-grid>div{background:#121215;border:1px solid var(--line);border-radius:9px;padding:12px}.detail-grid span{display:block;color:#777;font-size:9px;margin-bottom:4px}.detail-grid b{font-size:11px}@media(max-width:480px){.form-grid,.detail-grid{grid-template-columns:1fr}.modal-card{margin:2vh auto;padding:16px}}

/* Extra mobile polish */
@media (max-width: 900px){
  .sidebar{width:78px}
  .sidebar .brand-text,.sidebar .nav-label,.sidebar .user-meta{display:none}
  .main{margin-left:78px}
  .content{padding:22px 18px}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .topbar{gap:10px}
}
@media (max-width: 640px){
  .login-screen{display:block}
  .login-visual{display:none}
  .login-panel{min-height:100vh;padding:32px 20px}
  .app{display:block}
  /* Mobile navigation: hamburger opens a horizontal menu panel from the left. */
  .sidebar{position:fixed;z-index:100;left:0;right:auto;top:0;bottom:auto;width:min(92vw,430px);height:auto;max-height:82vh;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:18px 14px 14px;border-right:1px solid var(--line2);border-top:0;border-radius:0 0 16px 0;overflow-y:auto;box-shadow:25px 20px 70px #0008}
  .sidebar nav{display:flex;width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:5px}
  .sidebar .nav-item{display:flex!important;flex:0 0 auto;flex-direction:row;align-items:center;gap:8px;padding:9px 10px;min-width:0;border-radius:9px;font-size:10px;text-align:left}
  .sidebar .nav-item i{font-size:17px}
  .sidebar .brand,.sidebar .user-box,.sidebar .logout{display:flex}
  .sidebar-footer{margin-top:14px}
  .main{margin-left:0;padding-bottom:0}
  .topbar{position:sticky;top:0;z-index:50;padding:12px 14px;min-height:62px}
  .content{padding:14px}
  .page-head{flex-direction:column;align-items:flex-start;gap:12px}
  .page-head .primary-btn{width:100%!important}
  .kpis{grid-template-columns:1fr 1fr;gap:9px}
  .kpi{padding:12px}
  .kpi-value{font-size:25px}
  .panel{padding:14px;overflow:hidden}
  .data-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .data-table{min-width:720px}
  .filters{flex-direction:column;align-items:stretch}
  .search,.filter{width:100%}
  .chart{height:220px}
}
@media (max-width: 390px){
  .kpis{grid-template-columns:1fr}
  .content{padding:11px}
}

.event-large{background-size:cover;background-position:center}.event-large p{max-width:90%}@media(max-width:640px){.topbar{position:sticky;top:0}.page-head .actions{display:flex;flex-wrap:wrap;width:100%}.page-head .actions>*{flex:1;min-width:140px}.event-grid{grid-template-columns:1fr}.event-large{min-height:300px}}

.event-form-intro{padding:12px 14px;border:1px solid rgba(212,175,55,.18);background:rgba(212,175,55,.05);border-radius:10px;margin-bottom:14px}.event-form-intro p{margin:4px 0 0;color:#888;font-size:10px}.field-help{display:block;margin-top:5px;color:#666;font-size:9px}.toggle-field{display:flex!important;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line2);border-radius:9px;background:#111114}.toggle-field input{width:17px!important;height:17px!important;margin:0!important}.toggle-field span{display:flex;flex-direction:column;gap:4px}.toggle-field small{color:#777;font-size:9px}.event-large{background-color:#19191c}.event-large:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.82));pointer-events:none}.event-large>*{position:relative;z-index:1}.event-ticket-chip{color:#f3d98e!important;border-color:rgba(212,175,55,.4)!important}
