:root{
  --navy-950:#080F1C;
  --navy-900:#0E1B33;
  --navy-800:#16294A;
  --gold-600:#C68A1F;
  --gold-500:#E3A62F;
  --gold-300:#F3D98B;
  --cream:#FAF6EC;
  --cream-dim:#F1EADA;
  --ink:#1B2130;
  --ink-soft:#4B5165;
  --white:#FFFFFF;
  --line:rgba(20,37,67,0.12);
  --danger:#C0442C;
  --danger-bg:rgba(192,68,44,0.1);
  --success-bg:rgba(30,122,61,0.1);
  --success:#1E7A3D;
  --shadow-lg: 0 30px 60px -20px rgba(8,15,28,0.35);
  --shadow-sm: 0 8px 24px -10px rgba(8,15,28,0.18);
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  font-family:'Plus Jakarta Sans', sans-serif;
  background:var(--cream);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Fredoka', sans-serif; font-weight:600; letter-spacing:-0.01em;}
button, input, select, textarea{font-family:inherit;}
a{color:inherit;}

.screen-center{height:100vh; display:flex; align-items:center; justify-content:center; background:var(--navy-950);}

/* ---------- flash messages ---------- */
.flash{padding:14px 18px; border-radius:12px; font-size:0.9rem; font-weight:600; margin-bottom:22px;}
.flash-success{background:var(--success-bg); color:var(--success); border:1px solid rgba(30,122,61,0.25);}
.flash-error{background:var(--danger-bg); color:var(--danger); border:1px solid rgba(192,68,44,0.25);}

/* ---------- auth screen ---------- */
.auth-screen{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 100% at 20% 0%, #14213D 0%, var(--navy-950) 55%); padding:24px;
}
.auth-card{width:100%; max-width:420px; background:var(--white); border-radius:22px; padding:44px 40px; box-shadow:var(--shadow-lg); text-align:center;}
.auth-logo{height:56px; margin-bottom:20px;}
.auth-card h1{font-size:1.5rem; color:var(--navy-900); margin-bottom:8px;}
.auth-sub{color:var(--ink-soft); font-size:0.94rem; margin-bottom:28px;}
.auth-card form{text-align:left;}
.auth-note{margin-top:22px; font-size:0.82rem; color:var(--ink-soft); line-height:1.6;}
.auth-back{display:inline-block; margin-top:16px; font-size:0.86rem; color:var(--gold-600); font-weight:600; text-decoration:none;}

/* ---------- forms ---------- */
.form-group{margin-bottom:18px; text-align:left;}
.form-group label{display:block; font-size:0.8rem; font-weight:700; color:var(--navy-900); margin-bottom:7px;}
.form-group input, .form-group select, .form-group textarea{
  width:100%; padding:12px 14px; border-radius:10px; border:1.5px solid var(--line);
  background:var(--cream); font-size:0.94rem; color:var(--ink);
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{outline:none; border-color:var(--gold-500); background:var(--white);}
.form-group textarea{min-height:90px; resize:vertical;}
.form-row-2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form-error{background:var(--danger-bg); color:var(--danger); border:1px solid rgba(192,68,44,0.3); padding:11px 14px; border-radius:10px; font-size:0.86rem; margin-bottom:16px;}
.form-note{font-size:0.78rem; color:var(--ink-soft); margin-top:6px;}
@media (max-width:640px){.form-row-2{grid-template-columns:1fr;}}

.btn{display:inline-flex; align-items:center; gap:8px; padding:12px 22px; border-radius:100px; font-weight:700; font-size:0.86rem; border:none; cursor:pointer; text-decoration:none;}
.btn-gold{background:var(--gold-500); color:var(--navy-950);}
.btn-gold:hover{background:var(--gold-300);}
.btn-block{width:100%; justify-content:center;}
.link-btn{background:none; border:none; color:var(--ink-soft); font-size:0.84rem; cursor:pointer; text-decoration:underline; padding:0;}

/* ---------- dashboard shell ---------- */
.dash-shell{display:flex; min-height:100vh; background:var(--cream);}
.dash-sidebar{width:250px; flex:none; background:var(--navy-950); color:var(--white); display:flex; flex-direction:column; padding:26px 18px; position:sticky; top:0; height:100vh;}
.dash-brand{display:flex; align-items:center; gap:10px; padding:0 8px 26px; border-bottom:1px solid rgba(255,255,255,0.08); margin-bottom:20px;}
.dash-brand img{height:32px;}
.dash-brand-name{font-family:'Fredoka',sans-serif; font-weight:600; font-size:0.95rem;}
.dash-brand-sub{font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-300);}
.dash-nav{display:flex; flex-direction:column; gap:4px; flex:1;}
.dash-nav-link{display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:10px; color:rgba(255,255,255,0.68); font-size:0.9rem; font-weight:600; text-decoration:none;}
.dash-nav-link:hover{background:rgba(255,255,255,0.06); color:var(--white);}
.dash-nav-link.active{background:rgba(227,166,47,0.15); color:var(--gold-300);}
.dash-user{display:flex; align-items:center; gap:10px; padding:14px 8px; border-top:1px solid rgba(255,255,255,0.08); margin-top:14px;}
.dash-user-avatar{width:38px; height:38px; border-radius:50%; background:var(--gold-500); color:var(--navy-950); display:flex; align-items:center; justify-content:center; font-weight:700; flex:none;}
.dash-user-name{font-size:0.86rem; font-weight:600; color:var(--white);}
.dash-user-role{font-size:0.72rem; color:rgba(255,255,255,0.5);}
.dash-signout{width:100%; margin-top:10px; padding:10px; border-radius:10px; border:1px solid rgba(255,255,255,0.15); background:none; color:rgba(255,255,255,0.75); font-size:0.82rem; font-weight:600; cursor:pointer;}
.dash-signout:hover{background:rgba(255,255,255,0.06);}
.dash-main{flex:1; padding:40px 44px; max-width:1180px;}
@media (max-width:900px){
  .dash-shell{flex-direction:column;}
  .dash-sidebar{width:100%; height:auto; position:static; flex-direction:row; flex-wrap:wrap; align-items:center; padding:16px;}
  .dash-brand{border:none; padding:0; margin:0 16px 0 0;}
  .dash-nav{flex-direction:row; flex-wrap:wrap;}
  .dash-user{margin-left:auto;}
  .dash-signout{width:auto; margin-left:8px;}
  .dash-main{padding:24px 18px;}
}

.page-head{margin-bottom:28px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.page-head h1{font-size:1.7rem; color:var(--navy-900);}
.page-head p{color:var(--ink-soft); margin-top:6px; font-size:0.96rem;}

.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:34px;}
.stat-grid-3{grid-template-columns:repeat(3,1fr);}
@media (max-width:900px){.stat-grid, .stat-grid-3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.stat-grid, .stat-grid-3{grid-template-columns:1fr;}}
.stat-card{background:var(--white); border-radius:16px; padding:24px; box-shadow:var(--shadow-sm); border-top:3px solid var(--gold-500);}
.stat-card.accent-navy{border-top-color:var(--navy-900);}
.stat-value{font-family:'Fredoka',sans-serif; font-size:1.7rem; color:var(--navy-900); font-weight:600;}
.stat-label{font-size:0.82rem; color:var(--ink-soft); margin-top:4px;}

.panel{background:var(--white); border-radius:18px; padding:28px; box-shadow:var(--shadow-sm); margin-bottom:26px;}
.panel-head{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; flex-wrap:wrap;}
.panel-head h2{font-size:1.15rem; color:var(--navy-900);}
.two-col{display:grid; grid-template-columns:1.2fr 1fr; gap:24px;}
@media (max-width:960px){.two-col{grid-template-columns:1fr;}}

.panel-form{background:var(--cream); border-radius:14px; padding:22px; margin-bottom:22px;}
.panel-form-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px;}
.panel-form-head h3{font-size:1rem; color:var(--navy-900);}

.empty-state{color:var(--ink-soft); font-size:0.9rem; padding:24px 0; text-align:center;}
.hidden{display:none !important;}

.table-wrap{overflow-x:auto;}
.data-table{width:100%; border-collapse:collapse; font-size:0.88rem;}
.data-table th{text-align:left; padding:10px 14px; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-soft); border-bottom:2px solid var(--line); white-space:nowrap;}
.data-table td{padding:14px; border-bottom:1px solid var(--line); vertical-align:top;}
.cell-strong{font-weight:700; color:var(--navy-900);}
.cell-muted{color:var(--ink-soft); font-size:0.82rem;}

.status-pill{border:none; padding:6px 12px; border-radius:100px; font-size:0.76rem; font-weight:700; background:var(--cream-dim); color:var(--navy-900); cursor:pointer;}
.status-new{background:#EAF0FA; color:#1F3560;}
.status-contacted{background:#FDF3D8; color:var(--gold-600);}
.status-inspection_scheduled{background:#E6F0EA; color:#2A6B45;}
.status-negotiating{background:#F5E4C8; color:#8A5A12;}
.status-closed_won{background:#DFF3E4; color:#1E7A3D;}
.status-closed_lost{background:#F8E3E0; color:var(--danger);}
.status-in_progress{background:#EAF0FA; color:#1F3560;}

.role-pill{display:inline-block; padding:5px 12px; border-radius:100px; font-size:0.74rem; font-weight:700; background:var(--navy-900); color:var(--gold-300); text-transform:capitalize;}
.row-actions{display:flex; gap:8px; flex-wrap:wrap;}
.reset-inline{display:flex; gap:8px; margin-top:8px;}
.reset-inline input{padding:8px 12px; border-radius:8px; border:1.5px solid var(--line); font-size:0.82rem; width:200px;}

.reminder-buckets{display:flex; flex-direction:column; gap:22px;}
.reminder-bucket-head{display:flex; align-items:center; gap:10px; font-size:0.9rem; font-weight:700; color:var(--navy-900); margin-bottom:12px;}
.reminder-dot{width:9px; height:9px; border-radius:50%; background:var(--navy-900);}
.tone-danger .reminder-dot{background:var(--danger);}
.tone-danger .reminder-bucket-head{color:var(--danger);}
.tone-warn .reminder-dot{background:var(--gold-500);}
.tone-warn .reminder-bucket-head{color:var(--gold-600);}
.reminder-count{margin-left:auto; background:var(--cream-dim); color:var(--ink-soft); font-size:0.74rem; padding:2px 10px; border-radius:100px; font-weight:700;}
.reminder-item{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border-radius:12px; background:var(--cream); margin-bottom:8px; flex-wrap:wrap;}
.tone-danger .reminder-item{background:var(--danger-bg);}
.tone-warn .reminder-item{background:#FBF0D6;}
.reminder-title{font-weight:700; color:var(--navy-900); font-size:0.92rem;}
.reminder-meta{font-size:0.78rem; color:var(--ink-soft); margin-top:2px;}
.reminder-actions{display:flex; gap:8px;}
.chip-btn{border:none; padding:7px 14px; border-radius:100px; font-size:0.76rem; font-weight:700; background:var(--navy-900); color:var(--gold-300); cursor:pointer;}
.chip-btn-muted{background:var(--cream-dim); color:var(--ink-soft);}
.chip-btn-danger{background:var(--danger-bg); color:var(--danger);}
.confirm-row{display:flex; gap:8px; align-items:center;}

.activity-feed{display:flex; flex-direction:column; gap:16px; list-style:none;}
.activity-item{display:flex; gap:12px; align-items:flex-start;}
.activity-dot{width:8px; height:8px; border-radius:50%; background:var(--gold-500); margin-top:6px; flex:none;}
.activity-text{font-size:0.9rem; color:var(--ink); line-height:1.5;}
.activity-detail{color:var(--ink-soft);}
.activity-time{font-size:0.74rem; color:var(--ink-soft); margin-top:2px;}

.back-link{font-size:0.84rem; color:var(--gold-600); font-weight:700; text-decoration:none;}
.detail-grid{display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px;}
.detail-grid > div{display:flex; flex-direction:column; gap:4px;}
.detail-label{font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-soft);}
.detail-value{font-size:0.94rem; color:var(--navy-900); font-weight:600;}
@media (max-width:640px){.detail-grid{grid-template-columns:1fr;}}
.mini-list{list-style:none;}
.mini-list li{padding:12px 0; border-bottom:1px solid var(--line);}
.mini-list li:last-child{border-bottom:none;}
.mini-list-title{font-weight:700; color:var(--navy-900); font-size:0.92rem;}
.mini-list-meta{font-size:0.8rem; color:var(--ink-soft); margin-top:4px;}
.client-name-link{color:var(--navy-900); font-weight:700; text-decoration:none;}
.client-name-link:hover{color:var(--gold-600); text-decoration:underline;}

.filter-toolbar{display:flex; gap:12px; margin-bottom:20px; flex-wrap:wrap; align-items:center;}
.filter-toolbar input[type="text"]{
  flex:1; min-width:220px; padding:11px 16px; border-radius:10px; border:1.5px solid var(--line);
  background:var(--cream); font-size:0.9rem;
}
.filter-toolbar select{padding:11px 14px; border-radius:10px; border:1.5px solid var(--line); background:var(--cream); font-size:0.9rem;}
.filter-toolbar .btn-gold{padding:11px 20px;}
.filter-clear{font-size:0.82rem; color:var(--ink-soft); text-decoration:underline;}

/* ---------- analytics ---------- */
.metric-row{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:26px;}
@media (max-width:900px){.metric-row{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.metric-row{grid-template-columns:1fr;}}
.metric-card{background:var(--white); border-radius:16px; padding:22px; box-shadow:var(--shadow-sm);}
.metric-card .metric-label{font-size:0.78rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.05em;}
.metric-card .metric-value{font-family:'Fredoka',sans-serif; font-size:1.6rem; color:var(--navy-900); font-weight:600; margin-top:6px;}
.metric-delta{font-size:0.8rem; font-weight:700; margin-top:6px; display:inline-flex; align-items:center; gap:4px;}
.metric-delta.up{color:var(--success);}
.metric-delta.down{color:var(--danger);}
.metric-delta.flat{color:var(--ink-soft);}

.chart-block{margin-bottom:8px;}
.chart-rows{display:flex; flex-direction:column; gap:14px;}
.chart-row{display:grid; grid-template-columns:110px 1fr 100px; gap:14px; align-items:center;}
.chart-row .chart-label{font-size:0.86rem; color:var(--ink-soft); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.chart-row .chart-track{background:var(--cream-dim); border-radius:8px; height:22px; overflow:hidden; position:relative;}
.chart-row .chart-fill{background:linear-gradient(90deg, var(--gold-600), var(--gold-500)); height:100%; border-radius:8px; transition:width 0.6s ease;}
.chart-row .chart-fill.navy{background:linear-gradient(90deg, var(--navy-900), var(--navy-800));}
.chart-row .chart-value{font-size:0.84rem; color:var(--navy-900); font-weight:700; text-align:right;}
@media (max-width:640px){.chart-row{grid-template-columns:80px 1fr 76px; gap:8px;}}

.funnel-rows{display:flex; flex-direction:column; gap:10px;}
.funnel-row{display:grid; grid-template-columns:160px 1fr 60px; gap:14px; align-items:center;}
.funnel-row .funnel-label{font-size:0.84rem; color:var(--ink-soft); font-weight:600;}
.funnel-row .funnel-track{background:var(--cream-dim); border-radius:8px; height:20px; overflow:hidden;}
.funnel-row .funnel-fill{height:100%; border-radius:8px;}
.funnel-row .funnel-count{font-size:0.84rem; font-weight:700; color:var(--navy-900); text-align:right;}
@media (max-width:640px){.funnel-row{grid-template-columns:110px 1fr 44px; gap:8px;}}

.source-table-wrap{overflow-x:auto;}
.conversion-badge{font-size:0.78rem; font-weight:700; padding:3px 9px; border-radius:100px; background:var(--success-bg); color:var(--success);}
.conversion-badge.mid{background:#FDF3D8; color:var(--gold-600);}
.conversion-badge.low{background:var(--danger-bg); color:var(--danger);}
