/* ==========================================================================
   MAISON FREYA — Owner Portal (login + dashboard)
   Loaded after style.css; reuses design tokens from the main site.
   ========================================================================== */

/* ---------------- Login split screen ---------------- */
.login-screen{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;}
.login-visual{position:relative;overflow:hidden;background:var(--matte-black);}
.login-visual img{width:100%;height:100%;object-fit:cover;}
.login-visual::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,16,.25),rgba(20,18,16,.82));}
.login-visual-content{position:absolute;left:0;right:0;bottom:0;padding:64px;color:var(--warm-white);z-index:2;}
.login-visual-content .logo{font-family:var(--f-serif);font-size:22px;margin-bottom:60px;}
.login-visual-content h2{color:var(--warm-white);max-width:12ch;}
.login-visual-content p{margin-top:20px;max-width:38ch;color:rgba(250,247,242,.75);font-size:15px;}
.login-form-side{display:flex;align-items:center;justify-content:center;padding:60px;background:var(--warm-white);}
.login-card{width:100%;max-width:400px;}
.login-card .back-link{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:40px;display:inline-flex;align-items:center;gap:8px;}
.login-card .back-link:hover{color:var(--gold);}
.login-card h1{font-size:clamp(28px,3vw,36px);margin-top:20px;}
.login-card .sub{margin-top:14px;color:var(--fg-muted);font-size:14.5px;}
.login-card form{margin-top:40px;display:flex;flex-direction:column;gap:26px;}
.login-card .btn{width:100%;justify-content:center;margin-top:6px;}
.demo-note{
  margin-top:24px;padding:16px 18px;background:var(--ivory);border-left:2px solid var(--gold);
  font-size:12.5px;color:var(--fg-muted);line-height:1.6;
}
.login-divider{display:flex;align-items:center;gap:16px;margin:30px 0;color:var(--fg-muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase;}
.login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:rgba(42,39,34,.15);}
@media(max-width:900px){
  .login-screen{grid-template-columns:1fr;}
  .login-visual{min-height:280px;}
}

/* ---------------- Portal shell ---------------- */
.portal-shell{min-height:100vh;display:grid;grid-template-columns:264px 1fr;background:var(--warm-white);}
.portal-topbar{
  grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;
  padding:20px 40px;border-bottom:1px solid rgba(42,39,34,.1);
}
.portal-topbar .logo{font-family:var(--f-serif);font-size:19px;}
.portal-topbar .logo b{color:var(--gold);font-weight:500;}
.portal-topbar .tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted);margin-left:14px;padding-left:14px;border-left:1px solid rgba(42,39,34,.15);}
.portal-user{display:flex;align-items:center;gap:14px;}
.portal-user .avatar{
  width:36px;height:36px;border-radius:50%;background:var(--charcoal);color:var(--gold-soft);
  display:flex;align-items:center;justify-content:center;font-family:var(--f-serif);font-size:14px;
}
.portal-user .name{font-size:13.5px;}
.portal-user .role{font-size:11px;color:var(--fg-muted);}
.portal-user .logout{margin-left:10px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);border-bottom:1px solid transparent;}
.portal-user .logout:hover{color:var(--gold);border-color:var(--gold);}

.portal-sidebar{
  border-right:1px solid rgba(42,39,34,.1);padding:34px 22px;display:flex;flex-direction:column;
  gap:6px;position:sticky;top:0;align-self:start;height:100vh;
}
.portal-nav-item{
  display:flex;align-items:center;gap:14px;padding:13px 16px;font-size:13.5px;
  color:var(--fg-muted);border-left:2px solid transparent;background:none;border-top:none;border-right:none;border-bottom:none;
  text-align:left;width:100%;
}
.portal-nav-item .ic{width:18px;text-align:center;color:var(--gold);font-size:14px;}
.portal-nav-item:hover{color:var(--charcoal);background:var(--ivory);}
.portal-nav-item.active{color:var(--charcoal);background:var(--ivory);border-left-color:var(--gold);font-weight:500;}
.portal-sidebar-footer{margin-top:auto;padding-top:20px;border-top:1px solid rgba(42,39,34,.1);}
.portal-sidebar-footer a{font-size:12.5px;color:var(--fg-muted);}
.portal-sidebar-footer a:hover{color:var(--gold);}

.portal-main{padding:44px 48px;max-width:1180px;}
.portal-panel{display:none;}
.portal-panel.active{display:block;animation:panelIn .5s ease;}
@keyframes panelIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

.portal-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(42,39,34,.1);margin-top:34px;}
.portal-kpi{background:var(--warm-white);padding:26px;}
.portal-kpi .l{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);}
.portal-kpi .v{font-family:var(--f-serif);font-size:30px;margin-top:12px;}
.portal-kpi .d{margin-top:8px;font-size:12px;color:var(--gold);}

/* property row (overview) */
.prop-row{
  display:grid;grid-template-columns:auto 1fr auto auto auto;gap:24px;align-items:center;
  padding:20px 0;border-top:1px solid rgba(42,39,34,.1);
}
.prop-row:last-child{border-bottom:1px solid rgba(42,39,34,.1);}
.prop-row img{width:64px;height:64px;object-fit:cover;}
.prop-row h4{font-family:var(--f-serif);font-size:16px;font-weight:500;}
.prop-row .city{font-size:12.5px;color:var(--fg-muted);margin-top:3px;}
.badge-row{display:flex;gap:6px;flex-wrap:wrap;}
.pf-badge{
  display:inline-flex;align-items:center;gap:6px;font-size:10.5px;letter-spacing:.04em;
  padding:5px 10px;border:1px solid rgba(42,39,34,.15);color:var(--fg-muted);white-space:nowrap;
}
.pf-badge i{width:7px;height:7px;border-radius:50%;display:inline-block;}
.prop-row .metric{text-align:right;}
.prop-row .metric .v{font-family:var(--f-serif);font-size:17px;}
.prop-row .metric .l{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);}

.activity-feed{margin-top:18px;}
.activity-item{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-top:1px solid rgba(42,39,34,.08);font-size:13.5px;}
.activity-item span:last-child{color:var(--fg-muted);font-size:12px;white-space:nowrap;}

/* property cards grid */
.pcard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:34px;}
.pcard{border:1px solid rgba(42,39,34,.12);background:var(--warm-white);}
.pcard .pcard-img{height:180px;overflow:hidden;position:relative;}
.pcard .pcard-img img{width:100%;height:100%;object-fit:cover;}
.pcard .status-pill{
  position:absolute;top:14px;left:14px;background:var(--warm-white);color:var(--charcoal);
  font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;
}
.pcard .body{padding:22px;}
.pcard .body h4{font-family:var(--f-serif);font-size:18px;}
.pcard .body .city{font-size:12.5px;color:var(--fg-muted);margin-top:4px;}
.pcard .badge-row{margin-top:14px;}
.pcard .pcard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid rgba(42,39,34,.1);}
.pcard .pcard-stats .v{font-family:var(--f-serif);font-size:16px;}
.pcard .pcard-stats .l{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);margin-top:2px;}
.pcard .body .btn{width:100%;justify-content:center;margin-top:20px;padding:13px;}

/* calendar */
.cal-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-top:30px;}
.cal-controls select{background:var(--ivory);border:1px solid rgba(42,39,34,.15);padding:11px 16px;font-size:13px;min-width:220px;}
.cal-nav{display:flex;align-items:center;gap:18px;}
.cal-nav button{background:none;border:1px solid rgba(42,39,34,.2);width:36px;height:36px;font-size:14px;}
.cal-nav button:hover{border-color:var(--gold);color:var(--gold);}
.cal-nav .label{font-family:var(--f-serif);font-size:18px;min-width:150px;text-align:center;}
.cal-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:22px;}
.cal-legend span{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--fg-muted);}
.cal-legend i{width:9px;height:9px;border-radius:50%;display:inline-block;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:rgba(42,39,34,.1);margin-top:24px;border:1px solid rgba(42,39,34,.1);}
.cal-wd{background:var(--ivory);padding:10px;text-align:center;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);}
.cal-day{background:var(--warm-white);min-height:88px;padding:10px;position:relative;font-size:12.5px;cursor:pointer;transition:background .3s;}
.cal-day:hover{background:var(--ivory);}
.cal-day.empty{background:transparent;cursor:default;}
.cal-day .dnum{color:var(--fg-muted);}
.cal-day.today .dnum{color:var(--warm-white);background:var(--charcoal);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.cal-day .booking-chip{
  margin-top:8px;font-size:10px;padding:3px 6px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.cal-info{margin-top:24px;padding:22px 26px;background:var(--ivory);display:none;}
.cal-info.show{display:block;}
.cal-info .row{display:flex;justify-content:space-between;font-size:13.5px;padding:8px 0;border-top:1px solid rgba(42,39,34,.1);}
.cal-info .row:first-child{border-top:none;}

/* income */
.income-filters{display:flex;gap:16px;margin-top:30px;flex-wrap:wrap;}
.income-filters select{background:var(--ivory);border:1px solid rgba(42,39,34,.15);padding:11px 16px;font-size:13px;}
.income-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1px;background:rgba(42,39,34,.1);margin-top:14px;}
.income-panel{background:var(--warm-white);padding:30px;}
.income-panel h4{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:24px;}
.chart-bars-labeled{display:flex;align-items:flex-end;gap:14px;height:160px;}
.chart-bars-labeled .bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;}
.chart-bars-labeled .bar{width:100%;background:linear-gradient(180deg,var(--gold-soft),var(--gold));transform-origin:bottom;}
.chart-bars-labeled .bar-label{margin-top:10px;font-size:11px;color:var(--fg-muted);}
.donut-wrap{display:flex;align-items:center;gap:30px;}
.donut{width:150px;height:150px;border-radius:50%;flex-shrink:0;}
.donut-legend{flex:1;}
.donut-legend .dl-row{display:flex;justify-content:space-between;font-size:12.5px;padding:8px 0;border-top:1px solid rgba(42,39,34,.08);}
.donut-legend .dl-row:first-child{border-top:none;}
.donut-legend .dl-row span:first-child{display:flex;align-items:center;gap:8px;}
.donut-legend .dl-row i{width:8px;height:8px;border-radius:50%;display:inline-block;}
.tx-table{width:100%;border-collapse:collapse;margin-top:14px;}
.tx-table th{text-align:left;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);padding:12px 10px;border-bottom:1px solid rgba(42,39,34,.15);}
.tx-table td{padding:14px 10px;font-size:13px;border-bottom:1px solid rgba(42,39,34,.08);}

/* ---------------- Admin console additions ---------------- */
.status-badge{
  display:inline-flex;align-items:center;gap:7px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  padding:5px 11px;border:1px solid rgba(42,39,34,.15);white-space:nowrap;
}
.status-badge i{width:7px;height:7px;border-radius:50%;display:inline-block;}
.status-badge.pending{color:#8a6a2c;border-color:rgba(185,154,91,.4);}
.status-badge.pending i{background:var(--gold);}
.status-badge.active{color:#3c6e58;border-color:rgba(60,110,88,.3);}
.status-badge.active i{background:#3c6e58;}
.status-badge.suspended{color:#9c4a3c;border-color:rgba(156,74,60,.3);}
.status-badge.suspended i{background:#9c4a3c;}
.status-badge.rejected{color:var(--fg-muted);border-color:rgba(42,39,34,.15);}
.status-badge.rejected i{background:var(--stone-dark);}

.approval-card{border:1px solid rgba(42,39,34,.12);background:var(--warm-white);padding:26px 28px;margin-top:18px;}
.approval-card .ac-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;}
.approval-card .ac-head h4{font-family:var(--f-serif);font-size:19px;font-weight:500;}
.approval-card .ac-sub{font-size:12.5px;color:var(--fg-muted);margin-top:4px;}
.approval-card .ac-time{font-size:11.5px;color:var(--fg-muted);white-space:nowrap;}
.ac-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:20px;padding-top:20px;border-top:1px solid rgba(42,39,34,.08);}
.ac-grid .l{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);}
.ac-grid .v{font-size:13.5px;margin-top:5px;}
.approval-card .ac-notes{margin-top:18px;font-size:13px;color:var(--fg-muted);line-height:1.6;background:var(--ivory);padding:14px 16px;}
.approval-card .ac-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap;}
.approval-card .ac-actions .btn{padding:12px 22px;}
.btn-reject{border-color:rgba(156,74,60,.4);color:#9c4a3c;}
.btn-reject::before{background:#9c4a3c;}
.btn-reject:hover span{color:var(--warm-white);}
.empty-state{padding:60px 20px;text-align:center;color:var(--fg-muted);font-size:14px;border:1px dashed rgba(42,39,34,.2);margin-top:18px;}

.admin-search{display:flex;gap:16px;margin-top:30px;flex-wrap:wrap;align-items:center;}
.admin-search input{flex:1;min-width:220px;background:var(--ivory);border:1px solid rgba(42,39,34,.15);padding:12px 16px;font-size:13.5px;}
.admin-search select{background:var(--ivory);border:1px solid rgba(42,39,34,.15);padding:12px 16px;font-size:13px;}

.data-table{width:100%;border-collapse:collapse;margin-top:20px;}
.data-table th{text-align:left;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);padding:12px 10px;border-bottom:1px solid rgba(42,39,34,.15);}
.data-table td{padding:15px 10px;font-size:13.5px;border-bottom:1px solid rgba(42,39,34,.08);vertical-align:middle;}
.data-table .row-actions{display:flex;gap:14px;}
.data-table .row-actions button{background:none;border:none;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted);}
.data-table .row-actions button:hover{color:var(--gold);}
.data-table .row-actions button.danger:hover{color:#9c4a3c;}

@media(max-width:1000px){
  .portal-shell{grid-template-columns:1fr;}
  .portal-sidebar{position:relative;height:auto;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid rgba(42,39,34,.1);}
  .portal-sidebar-footer{display:none;}
  .portal-main{padding:34px 22px;}
  .portal-kpis{grid-template-columns:repeat(2,1fr);}
  .pcard-grid{grid-template-columns:1fr;}
  .income-grid{grid-template-columns:1fr;}
  .prop-row{grid-template-columns:auto 1fr;row-gap:10px;}
  .prop-row .badge-row,.prop-row .metric{grid-column:2;}
  .ac-grid{grid-template-columns:repeat(2,1fr);}
  .data-table{display:block;overflow-x:auto;white-space:nowrap;}
}
