:root{--nav:#071426;--nav2:#102746;--gold:#e7b451;--gold2:#ffd982;--ink:#101828;--muted:#667085;--line:#e6eaf0;--bg:#f4f6f9;--white:#fff;--success:#12b76a;--danger:#f04438;--blue:#2e90fa}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.app-nav{height:64px;background:linear-gradient(110deg,#071426,#102746);z-index:1040}.app-nav .navbar-brand span{color:var(--gold2)}.app-shell{min-height:calc(100vh - 64px);display:flex}.sidebar{width:250px;background:#fff;border-right:1px solid var(--line);position:fixed;top:64px;bottom:0;left:0;z-index:1030;overflow-y:auto;padding:18px 12px}.sidebar .section-label{font-size:10px;font-weight:800;letter-spacing:.12em;color:#98a2b3;padding:12px 12px 7px}.side-link{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;color:#475467;text-decoration:none;font-size:13px;font-weight:600;margin:2px 0}.side-link i{width:20px;font-size:16px}.side-link:hover{background:#f6f8fb;color:#101828}.side-link.active{background:#fff6e4;color:#9a6a12;box-shadow:inset 3px 0 0 var(--gold)}.main-content{margin-left:250px;width:calc(100% - 250px);padding:25px}.mobile-menu{display:none}.metric-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;height:100%;box-shadow:0 7px 24px rgba(16,24,40,.035);transition:.2s}.metric-card:hover{transform:translateY(-3px);box-shadow:0 14px 35px rgba(16,24,40,.07)}.metric-top{display:flex;justify-content:space-between;align-items:center}.metric-icon{width:43px;height:43px;border-radius:13px;background:#fff4dc;color:#9a6a12;display:grid;place-items:center;font-size:19px}.metric-card strong{display:block;font-size:27px;margin:14px 0 2px}.metric-card small{color:var(--muted)}.trend-up{color:var(--success);font-size:11px;font-weight:800}.trend-down{color:var(--danger);font-size:11px;font-weight:800}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px;box-shadow:0 7px 24px rgba(16,24,40,.035)}.panel-title{font-size:16px;font-weight:800}.mini-stat{border:1px solid var(--line);border-radius:12px;padding:13px}.mini-stat b{display:block;font-size:18px}.mini-stat small{color:var(--muted)}.pipeline-bar{height:9px;border-radius:999px;background:#edf0f4;overflow:hidden}.pipeline-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#d59d38,#ffd982)}.chart{height:230px;position:relative}.chart svg{width:100%;height:100%}.legend{font-size:11px;color:var(--muted)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;background:var(--gold)}.quick{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none;background:#fff;transition:.2s}.quick:hover{border-color:#d6b05e;transform:translateY(-2px)}.quick-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#f5f7fa;color:#344054}.activity{position:relative;padding-left:26px;padding-bottom:18px}.activity:before{content:"";position:absolute;left:7px;top:7px;bottom:-3px;width:1px;background:#e3e7ed}.activity:last-child:before{display:none}.activity-dot{position:absolute;left:0;top:3px;width:15px;height:15px;border-radius:50%;background:#fff;border:4px solid var(--gold)}.activity b{font-size:12px}.activity small{display:block;color:var(--muted);margin-top:3px}.table>:not(caption)>*>*{padding:12px 10px}.status{font-size:10px;font-weight:800;border-radius:999px;padding:5px 8px}.status-success{background:#e8f8ef;color:#087443}.status-warning{background:#fff5dc;color:#9a6a12}.status-danger{background:#ffebe9;color:#b42318}.avatar{width:30px;height:30px;border-radius:50%;background:#dce8f5;display:grid;place-items:center;font-size:11px;font-weight:800}.filter-control{border:1px solid var(--line);border-radius:10px;padding:8px 11px;background:#fff;font-size:12px}.login-shell{min-height:100vh;background:radial-gradient(circle at 15% 20%,rgba(231,180,81,.15),transparent 30%),linear-gradient(135deg,#071426,#102746);display:grid;place-items:center;padding:24px}.login-card{width:min(460px,100%);background:#fff;border-radius:24px;padding:34px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.brand-mark{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#dca846,#ffe19a);color:#111;font-size:24px}.form-control,.form-select{min-height:46px;border-color:#dce2ea}.form-control:focus,.form-select:focus{border-color:#d8a644;box-shadow:0 0 0 .2rem rgba(216,166,68,.13)}.btn-gold{background:linear-gradient(135deg,#dfa947,#ffda84);border:0;color:#111;font-weight:800}.error-box{background:#fff0f0;color:#b42318;border:1px solid #fecdca;border-radius:10px;padding:11px 13px;font-size:14px}@media(max-width:991px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.show{transform:translateX(0);box-shadow:20px 0 50px rgba(0,0,0,.12)}.main-content{margin-left:0;width:100%;padding:18px}.mobile-menu{display:inline-grid;place-items:center;border:0;background:transparent;color:#fff;font-size:22px}.app-nav .navbar-brand{font-size:15px}.app-nav .navbar-brand small{display:none}}@media(max-width:575px){.main-content{padding:14px}.metric-card strong{font-size:23px}.panel{padding:15px}.login-card{padding:24px}}


/* Phase 4 — Follow-up & communication UI */
.kpi-bar{height:3px;border-radius:99px;background:var(--kpi-tone);margin-top:14px;opacity:.85}
.mini-stat{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);gap:16px}
.type-chip{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.1);padding:5px 9px;border-radius:999px;font-size:.72rem;color:#d9dee8;white-space:nowrap}
.next-actions{border:1px solid var(--line);border-radius:16px;padding:12px}
.next-action{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--line)}
.next-action:last-child{border-bottom:0}
.next-action.overdue{border-left:3px solid var(--danger);padding-left:9px}
.timeline{position:relative;margin-top:4px}
.timeline:before{content:"";position:absolute;left:8px;top:5px;bottom:5px;width:1px;background:rgba(255,255,255,.12)}
.timeline-item{position:relative;display:flex;gap:16px;padding:0 0 20px}
.timeline-dot{position:relative;z-index:1;width:17px;height:17px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px rgba(212,175,55,.08);flex:0 0 17px}
.timeline-content{flex:1;border-bottom:1px solid var(--line);padding-bottom:15px}
.followup-list{display:grid;gap:8px}
.followup-row{display:grid;grid-template-columns:82px 1fr auto;align-items:center;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;color:inherit;transition:.2s}
.followup-row:hover{transform:translateY(-1px);border-color:rgba(212,175,55,.35);background:rgba(255,255,255,.02)}
.followup-time{font-weight:700;color:var(--gold)}
.followup-main{min-width:0;display:grid;gap:2px}
.followup-main strong,.followup-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.followup-main span{font-size:.82rem;color:var(--muted)}
.empty-state{padding:30px 10px;text-align:center;border:1px dashed var(--line);border-radius:16px}
.empty-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;background:rgba(25,135,84,.12);color:#6fe3a8;font-size:20px}
@media(max-width:767.98px){
 .followup-row{grid-template-columns:1fr auto}
 .followup-time{grid-column:1/-1}
 .crm-table{min-width:950px}
}


/* Phase 5 — Property & Inventory */
.project-card{overflow:hidden;position:relative}
.project-card:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--gold),transparent)}
.inventory-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.inventory-grid>div{padding:11px 8px;border:1px solid var(--line);border-radius:12px;text-align:center;background:rgba(255,255,255,.015)}
.inventory-grid strong{display:block;font-size:1.1rem}
.inventory-grid span{display:block;font-size:.68rem;color:var(--muted);margin-top:2px}
.detail-box{padding:14px;border:1px solid var(--line);border-radius:13px;height:100%}
.detail-box span{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}
.detail-box strong{display:block;margin-top:5px;font-size:.9rem}
@media(max-width:767.98px){.inventory-grid{grid-template-columns:repeat(3,1fr)}}


/* Phase 6 — Booking & Sales */
.booking-summary{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border:1px solid rgba(212,175,55,.3);border-radius:16px;background:linear-gradient(135deg,rgba(212,175,55,.10),rgba(255,255,255,.02))}
.booking-summary span{color:var(--muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}.booking-summary strong{font-size:1.45rem;color:var(--gold)}
.schedule-row,.doc-row{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}
.schedule-row:last-child,.doc-row:last-child{border-bottom:0}
.schedule-row span{display:block;color:var(--muted);font-size:.78rem;margin-top:3px}

/* Phase 7 - Customer Management */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form-grid .full{grid-column:1/-1}
.form-grid label,.stack-form label{font-size:13px;font-weight:700;display:flex;flex-direction:column;gap:7px}
.form-section{grid-column:1/-1;padding-top:8px;border-bottom:1px solid var(--border,#e5e7eb)}
.form-section h3{margin:0 0 4px}.form-actions{display:flex;justify-content:flex-end;gap:10px}
.filter-bar{display:grid;grid-template-columns:1fr 180px auto;gap:10px}
.two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-bottom:18px}
.doc-list{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.doc-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border:1px solid var(--border,#e5e7eb);border-radius:12px}
.doc-actions{display:flex;align-items:center;gap:8px}.stack-form{display:flex;flex-direction:column;gap:12px}
.status-active,.status-verified,.status-confirmed,.status-completed{color:#067647;background:#ecfdf3}
.status-inactive,.status-pending,.status-draft{color:#475467;background:#f2f4f7}
.status-blocked,.status-rejected,.status-cancelled{color:#b42318;background:#fef3f2}
@media(max-width:900px){.two-col{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.filter-bar{grid-template-columns:1fr}.doc-row{align-items:flex-start;flex-direction:column}.doc-actions{width:100%;justify-content:space-between}}

/* Phase 8 - Customer Portal / Admin credential controls */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form-grid .full{grid-column:1/-1}
.form-grid label{font-size:13px;font-weight:700;display:flex;flex-direction:column;gap:7px}
.form-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center}
@media(max-width:800px){.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.form-actions{flex-wrap:wrap;justify-content:stretch}.form-actions .btn{flex:1}}

/* Phase 9 - Collections */
.badge-status{display:inline-flex;padding:.32rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;background:#eef2f7;color:#334155}
.badge-status.overdue{background:#fee2e2;color:#991b1b}.badge-status.partial{background:#fef3c7;color:#92400e}.badge-status.paid{background:#dcfce7;color:#166534}.badge-status.pending{background:#e0e7ff;color:#3730a3}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-grid small{display:block;color:#64748b}.detail-grid strong{display:block;margin-top:4px}
.receipt-wrap{max-width:860px;margin:24px auto}.receipt-card{background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:36px;box-shadow:0 18px 60px rgba(15,23,42,.08)}.receipt-brand{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #e5e7eb;padding-bottom:22px}.receipt-brand h1{margin:4px 0 0;font-size:28px}.receipt-no{font-weight:800;font-size:18px}.receipt-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:22px 0}.receipt-meta span,.receipt-customer h3{display:block;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.receipt-customer{padding:18px;background:#f8fafc;border-radius:14px}.receipt-customer h3{margin:0 0 7px}.amount-box{margin:22px 0;padding:22px;border-radius:14px;background:linear-gradient(135deg,#fff7df,#fef3c7);display:flex;justify-content:space-between;align-items:center}.amount-box span{font-weight:700}.amount-box strong{font-size:28px}.receipt-table{width:100%;border-collapse:collapse}.receipt-table td{padding:12px;border-bottom:1px solid #e5e7eb}.receipt-table td:last-child{text-align:right;font-weight:700}.receipt-foot{margin-top:22px;color:#64748b;font-size:12px}
@media(max-width:700px){.receipt-card{padding:20px}.receipt-meta{grid-template-columns:1fr}.receipt-brand{flex-direction:column}.amount-box{align-items:flex-start;flex-direction:column;gap:8px}.detail-grid{grid-template-columns:1fr}}
@media print{.no-print,.sidebar,.topbar,.page-head{display:none!important}.receipt-wrap{margin:0;max-width:none}.receipt-card{box-shadow:none;border:0;border-radius:0}}

/* Phase 10 - Document Management */
.document-paper{background:#fff;min-height:700px;padding:42px;box-shadow:0 14px 45px rgba(15,23,42,.07)}
.document-paper-head{display:flex;justify-content:space-between;border-bottom:2px solid #e5e7eb;padding-bottom:18px;margin-bottom:35px;font-size:13px}
.document-paper h2{text-align:center;margin-bottom:35px}.document-body{min-height:380px;line-height:1.85;white-space:normal}
.document-sign{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:70px;padding-top:12px}.document-sign div{border-top:1px solid #334155;padding-top:8px;font-size:12px}
.timeline-item{padding:0 0 16px 15px;margin:0 0 14px;border-left:2px solid #e2e8f0}.timeline-item strong{display:block}.timeline-item small{color:#64748b}
@media(max-width:700px){.document-paper{padding:20px;min-height:500px}.document-sign{gap:20px;margin-top:40px}}
@media print{.document-paper{box-shadow:none;padding:0}.document-body{min-height:500px}}

/* Phase 11 - Reports & BI */
.bi-chart{height:300px;padding:25px 10px 10px}.bars{height:100%;display:flex;align-items:flex-end;gap:12px;overflow-x:auto}.bar-item{height:100%;min-width:45px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.bar{width:30px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#d9a441,#f5d27a);min-height:6px}.bar-item small{color:#64748b}.bar-item strong{font-size:11px}.report-list{display:flex;flex-direction:column;gap:2px}.report-row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #eef2f7}.report-row strong{font-size:13px}
@media print{.sidebar,.topbar,.page-head,.no-print{display:none!important}.main-content{margin:0!important}.panel{box-shadow:none;break-inside:avoid}}

/* Phase 12 - Follow-up Automation */
.priority-pill{display:inline-flex;padding:.3rem .6rem;border-radius:999px;font-size:.72rem;font-weight:700;background:#e2e8f0}.priority-pill.low{background:#e2e8f0}.priority-pill.medium{background:#dbeafe;color:#1e40af}.priority-pill.high{background:#fef3c7;color:#92400e}.priority-pill.urgent{background:#fee2e2;color:#991b1b}
.timeline{display:flex;flex-direction:column;gap:4px}.timeline-item{padding:12px 0 12px 16px;border-left:2px solid #e2e8f0}.timeline-item strong{font-size:14px}.timeline-item small{color:#64748b}

/* Phase 14 — Site Visit */
.site-visit-card{border:1px solid rgba(15,23,42,.08);border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.05)}


/* Phase 17 — Legal Documentation Engine */
.document-generated-body{font-size:15px;line-height:1.8;color:#172033}.document-generated-body h3,.document-generated-body h4{margin-top:24px;margin-bottom:12px}.legal-table{width:100%;border-collapse:collapse;margin:16px 0}.legal-table th,.legal-table td{border:1px solid #dbe2ea;padding:9px;text-align:left}.legal-table th{background:#f8fafc}.signature-row{display:flex;flex-direction:column;padding:10px;border:1px solid var(--line);border-radius:10px}.signature-row span,.signature-row small{color:var(--muted);font-size:.78rem}@media print{.document-generated-body{font-size:12pt}.legal-table{font-size:10pt}}
