:root{--black:#080808;--dark:#111111;--card:#1a1a1a;--card2:#222222;--border:#2a2a2a;--border2:#383838;--red:#cc0000;--red2:#e60000;--red3:#990000;--white:#ffffff;--gray:#8a8a8a;--gray2:#555555;--gray3:#333333;--sw:260px;--hh:62px;} *{margin:0;padding:0;box-sizing:border-box;} html,body{height:100%;overflow-x:hidden;} body{background:var(--black);color:var(--white);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;} ::-webkit-scrollbar{width:5px;height:5px;} ::-webkit-scrollbar-track{background:var(--dark);} ::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px;} ::-webkit-scrollbar-thumb:hover{background:var(--gray2);}
/* SIDEBAR */ #sidebar{position:fixed;top:0;left:0;width:var(--sw);height:100vh;background:var(--dark);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:200;overflow-y:auto;transition:transform .25s;} .sb-logo{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:11px;flex-shrink:0;} .sb-logomark{width:36px;height:36px;background:var(--red);border-radius:7px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;color:#fff;flex-shrink:0;letter-spacing:-1px;} .sb-logotext .n1{font-size:13px;font-weight:800;color:#fff;letter-spacing:.3px;} .sb-logotext .n2{font-size:10px;color:var(--gray);text-transform:uppercase;letter-spacing:1.2px;} .sb-nav{flex:1;padding:10px 0;} .sb-section-lbl{padding:14px 20px 4px;font-size:9px;font-weight:700;color:var(--gray2);text-transform:uppercase;letter-spacing:1.8px;} .nav-item{display:flex;align-items:center;gap:10px;padding:9px 20px;cursor:pointer;border-left:3px solid transparent;transition:all .15s;color:var(--gray);font-size:13px;font-weight:500;user-select:none;position:relative;} .nav-item:hover{background:rgba(204,0,0,.07);color:#fff;border-left-color:rgba(204,0,0,.4);} .nav-item.active{background:rgba(204,0,0,.12);color:#fff;border-left-color:var(--red);} .nav-icon{width:16px;text-align:center;font-size:14px;flex-shrink:0;} .nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:9px;font-weight:800;padding:2px 6px;border-radius:10px;} .sb-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0;} .sb-avatar{width:32px;height:32px;background:var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0;} .sb-user .u1{font-size:13px;font-weight:700;color:#fff;} .sb-user .u2{font-size:10px;color:var(--gray);}
/* HEADER */ #header{position:fixed;top:0;left:var(--sw);right:0;height:var(--hh);background:var(--dark);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;gap:14px;z-index:199;} #page-title{font-size:15px;font-weight:800;color:#fff;white-space:nowrap;min-width:0;} .h-search{flex:1;max-width:380px;position:relative;} .h-search input{width:100%;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:8px 12px 8px 34px;color:#fff;font-size:13px;outline:none;transition:border-color .15s;} .h-search input:focus{border-color:var(--red);} .h-search input::placeholder{color:var(--gray2);} .h-search-ic{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--gray2);font-size:13px;pointer-events:none;} .h-actions{margin-left:auto;display:flex;align-items:center;gap:10px;} .h-btn{background:none;border:1px solid var(--border);color:var(--gray);border-radius:7px;padding:7px 13px;cursor:pointer;font-size:12px;font-weight:700;transition:all .15s;display:flex;align-items:center;gap:6px;white-space:nowrap;} .h-btn:hover{border-color:var(--red);color:#fff;} .h-btn.primary{background:var(--red);border-color:var(--red);color:#fff;} .h-btn.primary:hover{background:var(--red2);} .notif-wrap{position:relative;} .notif-dot{width:7px;height:7px;background:var(--red);border-radius:50%;position:absolute;top:-1px;right:-1px;border:2px solid var(--dark);} .mob-menu-btn{display:none;background:none;border:1px solid var(--border);color:#fff;border-radius:7px;padding:7px 11px;cursor:pointer;font-size:16px;}
/* MAIN */ #main{margin-left:var(--sw);margin-top:var(--hh);padding:28px;min-height:calc(100vh - var(--hh));} .section{display:none;} .section.active{display:block;}
/* PAGE HEADER */ .pg-head{margin-bottom:24px;} .pg-title{font-size:22px;font-weight:900;color:#fff;margin-bottom:3px;} .pg-sub{color:var(--gray);font-size:13px;}
/* STAT CARDS GRID */ .stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-bottom:24px;} .stat-card{background:var(--card);border:1px solid var(--border);border-radius:11px;padding:18px 20px;position:relative;overflow:hidden;transition:border-color .2s;} .stat-card:hover{border-color:var(--border2);} .stat-card.acc{border-left:3px solid var(--red);} .stat-card.suc{border-left:3px solid #10b981;} .stat-card.wrn{border-left:3px solid #f59e0b;} .stat-card.inf{border-left:3px solid #3b82f6;} .stat-card.pur{border-left:3px solid #8b5cf6;} .stat-lbl{font-size:10px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;} .stat-val{font-size:26px;font-weight:900;color:#fff;line-height:1;margin-bottom:4px;} .stat-chg{font-size:11px;color:#10b981;} .stat-chg.dn{color:#ef4444;} .stat-icon{position:absolute;right:16px;top:16px;font-size:22px;opacity:.25;}
/* GENERIC CARD */ .card{background:var(--card);border:1px solid var(--border);border-radius:11px;padding:22px;margin-bottom:18px;} .card-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;} .card-title{font-size:14px;font-weight:800;color:#fff;} .card-sub{font-size:11px;color:var(--gray);margin-top:2px;} .card-act{background:none;border:1px solid var(--border);color:var(--gray);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:11px;font-weight:700;transition:all .15s;} .card-act:hover{border-color:var(--red);color:#fff;}
/* GRID HELPERS */ .g2{display:grid;grid-template-columns:1fr 1fr;gap:18px;} .g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;} .g4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
/* TABLE */ .tbl-wrap{overflow-x:auto;} table{width:100%;border-collapse:collapse;} th{text-align:left;padding:10px 14px;font-size:10px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);white-space:nowrap;} td{padding:12px 14px;font-size:13px;color:#e5e7eb;border-bottom:1px solid var(--border);} tr:last-child td{border-bottom:none;} tr:hover td{background:rgba(255,255,255,.02);}
/* BADGES */ .badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;} .b-green{background:rgba(16,185,129,.15);color:#10b981;} .b-red{background:rgba(239,68,68,.15);color:#ef4444;} .b-yellow{background:rgba(245,158,11,.15);color:#f59e0b;} .b-blue{background:rgba(59,130,246,.15);color:#60a5fa;} .b-purple{background:rgba(139,92,246,.15);color:#a78bfa;} .b-gray{background:rgba(156,163,175,.12);color:#9ca3af;} .b-red-s{background:var(--red);color:#fff;} .b-orange{background:rgba(249,115,22,.15);color:#fb923c;}
/* PROGRESS */ .prog-wrap{background:var(--border);border-radius:4px;height:6px;overflow:hidden;} .prog-fill{height:100%;border-radius:4px;background:var(--red);transition:width .6s ease;} .prog-fill.green{background:#10b981;} .prog-fill.yellow{background:#f59e0b;} .prog-fill.blue{background:#3b82f6;}
/* BRIEFING */ .brief-card{background:linear-gradient(135deg,#150505,#1a1a1a);border:1px solid rgba(204,0,0,.25);border-radius:12px;padding:22px;margin-bottom:22px;position:relative;overflow:hidden;} .brief-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--red),transparent);} .brief-hd{display:flex;align-items:center;gap:10px;margin-bottom:10px;} .ai-pulse{width:9px;height:9px;background:var(--red);border-radius:50%;animation:pulse 2s infinite;} @keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(.85);}} .brief-lbl{font-size:10px;font-weight:800;color:var(--red);text-transform:uppercase;letter-spacing:1.2px;} .brief-text{font-size:14px;color:#e5e7eb;line-height:1.75;} .brief-time{font-size:11px;color:var(--gray);margin-top:10px;}
/* QUICK ACTIONS */ .qa-row{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:22px;} .qa-btn{background:var(--card);border:1px solid var(--border);color:#fff;border-radius:8px;padding:9px 15px;cursor:pointer;font-size:12px;font-weight:700;transition:all .15s;display:flex;align-items:center;gap:7px;} .qa-btn:hover{border-color:var(--red);background:rgba(204,0,0,.09);} .qa-btn.red{background:var(--red);border-color:var(--red);} .qa-btn.red:hover{background:var(--red2);}
/* ALERT BAR */ .alert-bar{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25);border-radius:8px;padding:11px 15px;font-size:13px;color:#fca5a5;margin-bottom:12px;display:flex;align-items:center;gap:10px;} .alert-icon{color:#ef4444;font-size:15px;flex-shrink:0;}
/* KANBAN */ .kanban{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;} .k-col{min-width:215px;flex-shrink:0;} .k-col-hd{padding:9px 13px;background:var(--card);border:1px solid var(--border);border-radius:8px 8px 0 0;font-size:10px;font-weight:800;color:var(--gray);text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;justify-content:space-between;} .k-cnt{font-size:10px;background:var(--border);color:var(--gray);padding:2px 7px;border-radius:10px;} .k-cards{background:rgba(255,255,255,.015);border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px;padding:10px;min-height:180px;display:flex;flex-direction:column;gap:9px;} .lead-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px;cursor:pointer;transition:border-color .15s;} .lead-card:hover{border-color:var(--red);} .lc-name{font-size:13px;font-weight:800;color:#fff;margin-bottom:3px;} .lc-type{font-size:11px;color:var(--gray);margin-bottom:8px;} .lc-budget{font-size:13px;color:#10b981;font-weight:800;} .lc-city{font-size:11px;color:var(--gray);margin-top:3px;} .lc-date{font-size:10px;color:var(--gray2);margin-top:6px;padding-top:6px;border-top:1px solid var(--border);}
/* PROJECT CARDS */ .proj-card{background:var(--card);border:1px solid var(--border);border-radius:11px;padding:18px;margin-bottom:14px;cursor:pointer;transition:all .15s;} .proj-card:hover{border-color:var(--red);} .proj-card-hd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px;gap:10px;} .proj-name{font-size:14px;font-weight:800;color:#fff;margin-bottom:2px;} .proj-client{font-size:12px;color:var(--gray);} .proj-meta{display:flex;gap:18px;margin-bottom:14px;flex-wrap:wrap;} .pm-item{font-size:12px;color:var(--gray);} .pm-item span{color:#fff;font-weight:700;} .prog-row{display:flex;align-items:center;gap:10px;margin-top:10px;} .prog-label{font-size:11px;color:var(--gray);white-space:nowrap;} .prog-pct{font-size:11px;color:#fff;font-weight:700;white-space:nowrap;}
/* CLIENT CARDS */ .client-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:20px;} .client-card{background:var(--card);border:1px solid var(--border);border-radius:11px;overflow:hidden;cursor:pointer;transition:border-color .2s;} .client-card:hover{border-color:var(--red);} .cc-top{background:linear-gradient(135deg,#1a0505,#1a1a1a);padding:20px;text-align:center;border-bottom:1px solid var(--border);} .cc-avatar{width:54px;height:54px;background:var(--red);border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;color:#fff;} .cc-name{font-size:15px;font-weight:800;color:#fff;margin-bottom:3px;} .cc-proj{font-size:11px;color:rgba(255,255,255,.5);} .cc-body{padding:14px;} .cc-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px;} .cc-row:last-child{border-bottom:none;} .cc-row .lbl{color:var(--gray);} .cc-row .val{color:#fff;font-weight:600;text-align:right;}
/* VENDOR CARDS */ .vendor-card{background:var(--card);border:1px solid var(--border);border-radius:11px;padding:18px;margin-bottom:14px;} .vc-hd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;gap:10px;} .vc-name{font-size:14px;font-weight:800;color:#fff;margin-bottom:2px;} .vc-spec{font-size:12px;color:var(--gray);} .rating-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;} .rat-lbl{font-size:12px;color:var(--gray);width:110px;flex-shrink:0;} .rat-track{flex:1;background:var(--border);border-radius:4px;height:6px;overflow:hidden;} .rat-fill{height:100%;border-radius:4px;background:#f59e0b;} .rat-num{font-size:12px;font-weight:800;color:#fff;width:26px;text-align:right;flex-shrink:0;} .vc-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);} .vc-tag{font-size:11px;color:var(--gray);background:var(--card2);border:1px solid var(--border);border-radius:5px;padding:3px 8px;}
/* RENO TIMELINE */ .reno-row{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--border);} .reno-row:last-child{border-bottom:none;} .reno-phase{width:155px;flex-shrink:0;font-size:13px;font-weight:600;color:#fff;} .reno-bar{flex:1;} .reno-status{width:95px;flex-shrink:0;text-align:right;} .reno-contractor{font-size:11px;color:var(--gray);margin-top:2px;}
/* ADU */ .adu-block{background:var(--card);border:1px solid var(--border);border-radius:11px;padding:18px;margin-bottom:14px;} .adu-block-title{font-size:13px;font-weight:800;color:#fff;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border);} .info-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:13px;} .info-row:last-child{border-bottom:none;} .info-lbl{color:var(--gray);} .info-val{color:#fff;font-weight:600;text-align:right;} .info-val.green{color:#10b981;} .info-val.red{color:#ef4444;} .info-val.yellow{color:#f59e0b;}
/* DESIGN CARDS */ .design-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:14px;margin-bottom:20px;} .design-card{background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .15s;cursor:pointer;} .design-card:hover{border-color:var(--red);} .dc-preview{height:110px;display:flex;align-items:center;justify-content:center;font-size:32px;background:var(--card2);} .dc-body{padding:12px;} .dc-name{font-size:12px;font-weight:800;color:#fff;margin-bottom:3px;} .dc-meta{font-size:11px;color:var(--gray);}
/* COLOR SWATCHES */ .swatches{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px;} .sw{width:36px;height:36px;border-radius:7px;border:2px solid var(--border);cursor:pointer;transition:transform .15s;} .sw:hover{transform:scale(1.12);}
/* PROC CARDS */ .proc-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;gap:13px;align-items:flex-start;margin-bottom:11px;transition:border-color .15s;} .proc-card:hover{border-color:var(--red);} .proc-icon{width:42px;height:42px;background:var(--card2);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;} .proc-name{font-size:13px;font-weight:800;color:#fff;margin-bottom:2px;} .proc-vendor{font-size:11px;color:var(--gray);margin-bottom:7px;} .proc-meta{display:flex;gap:14px;flex-wrap:wrap;} .proc-cost{font-size:13px;color:#10b981;font-weight:800;} .proc-eta{font-size:11px;color:var(--gray);}
/* PERMIT CARDS */ .permit-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:17px;margin-bottom:13px;transition:border-color .15s;} .permit-card.alert{border-left:3px solid #ef4444;} .permit-card.ok{border-left:3px solid #10b981;} .perm-hd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px;gap:10px;} .perm-title{font-size:13px;font-weight:800;color:#fff;margin-bottom:2px;} .perm-city{font-size:12px;color:var(--gray);} .perm-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;} .perm-field{font-size:11px;color:var(--gray);margin-bottom:2px;} .perm-val{font-size:12px;color:#fff;font-weight:600;}
/* FINANCIAL */ .fin-hd-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:13px;margin-bottom:22px;} .fin-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;} .fin-lbl{font-size:10px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;} .fin-val{font-size:22px;font-weight:900;color:#fff;margin-bottom:2px;} .fin-sub{font-size:11px;color:var(--gray);}
/* CALENDAR */ .cal-list{display:flex;flex-direction:column;gap:11px;} .cal-item{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:13px 17px;display:flex;gap:15px;align-items:flex-start;transition:border-color .15s;} .cal-item:hover{border-color:var(--red);} .cal-date{text-align:center;min-width:42px;flex-shrink:0;} .cal-mon{font-size:9px;color:var(--gray);text-transform:uppercase;font-weight:700;letter-spacing:.5px;} .cal-day{font-size:22px;font-weight:900;color:var(--red);line-height:1;} .cal-title{font-size:14px;font-weight:800;color:#fff;margin-bottom:3px;} .cal-meta{font-size:12px;color:var(--gray);}
/* TIMELINE (site visits) */ .tl{padding-left:22px;position:relative;} .tl::before{content:'';position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--border);} .tl-item{position:relative;margin-bottom:22px;} .tl-dot{position:absolute;left:-19px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--red);border:2px solid var(--dark);} .tl-dot.green{background:#10b981;} .tl-dot.yellow{background:#f59e0b;} .tl-date{font-size:10px;color:var(--gray);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;} .tl-title{font-size:14px;font-weight:800;color:#fff;margin-bottom:3px;} .tl-body{font-size:13px;color:var(--gray);line-height:1.6;}
/* VISIT CARDS */ .visit-card{background:var(--card);border:1px solid var(--border);border-radius:11px;padding:18px;margin-bottom:15px;} .vis-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;} .vis-title{font-size:14px;font-weight:800;color:#fff;margin-bottom:2px;} .vis-date{font-size:12px;color:var(--gray);} .vis-section{margin-bottom:11px;} .vis-sec-title{font-size:10px;font-weight:800;color:var(--red);text-transform:uppercase;letter-spacing:.8px;margin-bottom:5px;} .vis-text{font-size:13px;color:#e5e7eb;line-height:1.6;} .vis-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px;}
/* DOC VAULT */ .doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;} .doc-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px;cursor:pointer;transition:border-color .15s;text-align:center;} .doc-card:hover{border-color:var(--red);} .doc-icon{font-size:30px;margin-bottom:9px;} .doc-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:3px;} .doc-meta{font-size:10px;color:var(--gray);}
/* AI COMMAND */ .ai-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:12px;} .ai-btn{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;cursor:pointer;text-align:left;transition:all .15s;display:flex;align-items:flex-start;gap:11px;} .ai-btn:hover{border-color:var(--red);background:rgba(204,0,0,.06);transform:translateY(-1px);} .ai-btn-icon{font-size:20px;flex-shrink:0;margin-top:1px;} .ai-btn-title{font-size:13px;font-weight:800;color:#fff;margin-bottom:3px;} .ai-btn-desc{font-size:11px;color:var(--gray);}
/* BI CHARTS */ .bar-row{display:flex;align-items:center;gap:12px;margin-bottom:10px;} .bar-lbl{font-size:12px;color:var(--gray);width:145px;flex-shrink:0;text-align:right;} .bar-track{flex:1;background:var(--border);border-radius:4px;height:20px;overflow:hidden;position:relative;} .bar-fill{height:100%;border-radius:4px;display:flex;align-items:center;padding-left:10px;font-size:10px;font-weight:800;color:#fff;transition:width .9s ease;} .bar-fill.red{background:var(--red);} .bar-fill.blue{background:#3b82f6;} .bar-fill.green{background:#10b981;} .bar-fill.yellow{background:#f59e0b;} .bar-fill.purple{background:#8b5cf6;} .bar-fill.orange{background:#f97316;}
/* LESSONS */ .lesson-card{background:var(--card);border:1px solid var(--border);border-radius:11px;padding:18px;margin-bottom:15px;} .les-proj{font-size:15px;font-weight:900;color:#fff;margin-bottom:4px;} .les-type{font-size:11px;color:var(--gray);margin-bottom:14px;} .les-section{margin-bottom:13px;} .les-sec-title{font-size:10px;font-weight:800;color:var(--gray);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;} .les-list{list-style:none;} .les-list li{font-size:13px;color:#e5e7eb;padding:3px 0 3px 15px;position:relative;line-height:1.5;} .les-list li::before{content:'→';position:absolute;left:0;color:var(--red);}
/* MODAL */ .modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:500;display:none;align-items:center;justify-content:center;padding:20px;} .modal-overlay.show{display:flex;} .modal{background:var(--card);border:1px solid var(--border2);border-radius:14px;padding:28px;max-width:620px;width:100%;max-height:88vh;overflow-y:auto;position:relative;} .modal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;} .modal-title{font-size:17px;font-weight:900;color:#fff;} .modal-close{background:none;border:none;color:var(--gray);cursor:pointer;font-size:22px;line-height:1;padding:2px;transition:color .15s;} .modal-close:hover{color:#fff;} .modal-badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;color:var(--red);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;} .ai-output{background:var(--dark);border:1px solid var(--border);border-radius:8px;padding:18px;font-size:13px;line-height:1.85;color:#e5e7eb;white-space:pre-wrap;margin-bottom:18px;max-height:360px;overflow-y:auto;} .modal-actions{display:flex;gap:10px;flex-wrap:wrap;} .m-btn{background:var(--card2);border:1px solid var(--border);color:#fff;border-radius:7px;padding:9px 16px;cursor:pointer;font-size:12px;font-weight:700;transition:all .15s;} .m-btn:hover{border-color:var(--red);} .m-btn.primary{background:var(--red);border-color:var(--red);} .m-btn.primary:hover{background:var(--red2);}
/* FORM */ .form-group{margin-bottom:14px;} .form-label{display:block;font-size:10px;font-weight:800;color:var(--gray);text-transform:uppercase;letter-spacing:.8px;margin-bottom:5px;} .form-input{width:100%;background:var(--dark);border:1px solid var(--border);border-radius:7px;padding:9px 13px;color:#fff;font-size:13px;outline:none;transition:border-color .15s;} .form-input:focus{border-color:var(--red);} .form-input::placeholder{color:var(--gray2);} textarea.form-input{resize:vertical;min-height:90px;} .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
/* TABS */ .tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:22px;gap:0;overflow-x:auto;} .tab{padding:10px 17px;font-size:12px;font-weight:700;color:var(--gray);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;white-space:nowrap;} .tab:hover{color:#fff;} .tab.active{color:#fff;border-bottom-color:var(--red);} .tab-content{display:none;} .tab-content.active{display:block;}
/* FILTERS */ .filters{display:flex;gap:9px;margin-bottom:18px;flex-wrap:wrap;align-items:center;} .f-select{background:var(--card);border:1px solid var(--border);color:#fff;border-radius:7px;padding:8px 12px;font-size:12px;cursor:pointer;outline:none;} .f-select:focus{border-color:var(--red);} .f-input{background:var(--card);border:1px solid var(--border);color:#fff;border-radius:7px;padding:8px 12px;font-size:12px;outline:none;flex:1;min-width:180px;} .f-input:focus{border-color:var(--red);} .f-input::placeholder{color:var(--gray2);} .f-btn{background:var(--card);border:1px solid var(--border);color:var(--gray);border-radius:7px;padding:8px 13px;cursor:pointer;font-size:12px;font-weight:700;transition:all .15s;} .f-btn:hover{border-color:var(--red);color:#fff;} .f-btn.active{background:var(--red);border-color:var(--red);color:#fff;}
/* CONTRACTOR TABLE */ .contr-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:15px;margin-bottom:11px;display:flex;gap:14px;align-items:flex-start;} .contr-avatar{width:40px;height:40px;border-radius:8px;background:var(--red3);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;color:#fff;flex-shrink:0;} .contr-name{font-size:13px;font-weight:800;color:#fff;margin-bottom:2px;} .contr-spec{font-size:11px;color:var(--gray);margin-bottom:7px;} .contr-meta{display:flex;gap:10px;flex-wrap:wrap;}
/* STARS */ .stars{color:#f59e0b;letter-spacing:1px;}
/* DONUT */ .donut-wrap{display:flex;flex-direction:column;align-items:center;} .donut{width:130px;height:130px;border-radius:50%;position:relative;margin-bottom:14px;} .donut-inner{position:absolute;inset:22px;background:var(--card);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;} .donut-pct{font-size:16px;font-weight:900;color:#fff;} .donut-lbl{font-size:9px;color:var(--gray);} .legend{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;} .leg-item{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--gray);} .leg-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
/* DIVIDER */ .divider{height:1px;background:var(--border);margin:18px 0;}
/* TASK LIST */ .task-list{list-style:none;} .task-item{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);} .task-item:last-child{border-bottom:none;} .task-check{width:16px;height:16px;border:2px solid var(--border2);border-radius:4px;flex-shrink:0;margin-top:1px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;} .task-check:hover{border-color:var(--red);} .task-check.done{background:var(--red);border-color:var(--red);} .task-check.done::after{content:'✓';color:#fff;font-size:9px;font-weight:900;} .task-text{font-size:13px;color:#e5e7eb;flex:1;} .task-text.done{text-decoration:line-through;color:var(--gray);} .task-assign{font-size:11px;color:var(--gray);white-space:nowrap;}
/* SCROLLABLE */ .scroll-section{overflow-y:auto;}
/* MOBILE OVERLAY */ #sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:199;}
/* TAG */ .tag{display:inline-flex;padding:2px 7px;background:var(--card2);border:1px solid var(--border);border-radius:4px;font-size:10px;color:var(--gray);margin:2px;}
/* RESPONSIVE */ @media(max-width:1100px){.g3{grid-template-columns:1fr 1fr;}.g4{grid-template-columns:1fr 1fr;}} @media(max-width:768px){ #sidebar{transform:translateX(-100%);transition:transform .25s;} #sidebar.open{transform:translateX(0);} #sb-overlay.show{display:block;} #main{margin-left:0;} #header{left:0;} .mob-menu-btn{display:flex;} .g2,.g3,.g4{grid-template-columns:1fr;} .stat-grid{grid-template-columns:1fr 1fr;} .h-search{max-width:200px;} .perm-grid{grid-template-columns:1fr 1fr;} .form-row{grid-template-columns:1fr;} #page-title{display:none;} } @media(max-width:480px){.stat-grid{grid-template-columns:1fr;}.h-search{display:none;}}