:root{
    --er-blue:#1455d9;
    --er-dark:#101828;
    --er-soft:#f5f8ff;
    --er-border:#e6eaf2;
}
body{background:#fff;color:#1f2937;}
a{color:var(--er-blue);text-decoration:none}a:hover{text-decoration:underline}.navbar .nav-link{font-weight:600;color:#344054}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#1455d9,#2dd4bf);color:#fff;font-weight:800;font-size:.88rem}.brand-mark-light{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25)}.hero{background:radial-gradient(circle at top left,rgba(20,85,217,.18),transparent 35%),linear-gradient(180deg,#f7faff,#fff);padding:86px 0 60px}.hero h1{font-size:clamp(2.3rem,5vw,4.8rem);line-height:1.02;letter-spacing:-.05em}.hero-card{border:1px solid var(--er-border);border-radius:28px;background:rgba(255,255,255,.88);box-shadow:0 22px 70px rgba(16,24,40,.12);overflow:hidden}.feature-card,.dash-card,.pricing-card{border:1px solid var(--er-border);border-radius:22px;background:#fff;box-shadow:0 14px 34px rgba(16,24,40,.06)}.feature-icon{width:46px;height:46px;border-radius:14px;background:var(--er-soft);display:flex;align-items:center;justify-content:center;color:var(--er-blue);font-size:1.35rem}.btn-primary{background:var(--er-blue);border-color:var(--er-blue);box-shadow:0 10px 22px rgba(20,85,217,.22)}.btn-primary:hover{background:#0f46b8;border-color:#0f46b8}.section-pad{padding:70px 0}.soft-section{background:var(--er-soft)}.mini-kpi{border-radius:18px;background:#f8fafc;border:1px solid var(--er-border);padding:18px}.footer a{color:rgba(255,255,255,.72)}.footer a:hover{color:#fff}.dashboard-shell{background:#f8fafc;min-height:calc(100vh - 74px)}.sidebar-card{border:1px solid var(--er-border);border-radius:22px;background:#fff;position:sticky;top:86px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;color:#344054;font-weight:600}.sidebar-link:hover,.sidebar-link.active{background:#eef4ff;color:var(--er-blue);text-decoration:none}.table-clean th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#667085}.contractor-hero{background:linear-gradient(135deg,#0f172a,#1647b8);color:#fff;padding:60px 0}.profile-logo{width:92px;height:92px;border-radius:22px;object-fit:cover;background:#fff;border:4px solid rgba(255,255,255,.28)}.profile-logo-sm{width:44px;height:44px;border-radius:12px;object-fit:cover;background:#f2f4f7}.cover-img{height:230px;object-fit:cover;width:100%;border-radius:22px}.required:after{content:' *';color:#dc3545}.form-help{font-size:.85rem;color:#667085}.empty-state{border:1px dashed #cbd5e1;background:#f8fafc;border-radius:22px;padding:35px;text-align:center}.lead-preview{background:#fff7ed;border:1px solid #fed7aa;border-radius:16px;padding:14px}.badge-soft{background:#eef4ff;color:#1455d9;border:1px solid #dbe7ff}.install-wrap{min-height:100vh;background:linear-gradient(135deg,#f5f8ff,#fff);display:flex;align-items:center}.install-card{max-width:850px;margin:auto;border:1px solid var(--er-border);border-radius:28px;background:#fff;box-shadow:0 30px 90px rgba(16,24,40,.12)}
@media(max-width:991px){.hero{padding:56px 0 40px}.section-pad{padding:48px 0}.sidebar-card{position:static}.hero-card{border-radius:22px}}

/* Package 02 lead system */
.lead-photo-thumb{
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    border-radius:14px;
    border:1px solid rgba(15,23,42,.12);
    background:#f8fafc;
}
.note-box{
    border:1px solid rgba(15,23,42,.10);
    background:#f8fafc;
    border-radius:12px;
    padding:.75rem;
}
.required:after{
    content:' *';
    color:#dc3545;
}
.table-clean td, .table-clean th{ vertical-align: middle; }

/* Package 03 quotes */
.quote-summary-box{border:1px solid var(--er-border);border-radius:18px;background:#fff;padding:1rem;}
.quote-total-card{border-radius:20px;background:linear-gradient(135deg,#eef4ff,#ffffff);border:1px solid #dbe7ff;}
.quote-item-row{border:1px solid rgba(15,23,42,.08);border-radius:14px;background:#f8fafc;padding:.5rem;}
.quote-public-shell{background:#f8fafc;min-height:100vh;}
.quote-public-card{border:1px solid var(--er-border);border-radius:26px;background:#fff;box-shadow:0 18px 45px rgba(16,24,40,.08);}
.print-only{display:none;}
@media print{
    nav,.footer,.no-print,.sidebar-card,.btn{display:none!important;}
    .dashboard-shell,.quote-public-shell{background:#fff!important;}
    .dash-card,.quote-public-card{box-shadow:none!important;border:0!important;}
    .print-only{display:block;}
}

/* Package 06 contractor profile pro */
.contractor-pro-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#0f172a,#123f9d);color:#fff;padding:78px 0 64px;}
.contractor-pro-hero .container{z-index:2;}
.contractor-cover-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.24;filter:saturate(1.05);}
.contractor-cover-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,23,42,.96),rgba(15,23,42,.68));}
.trust-pill{display:inline-flex;align-items:center;gap:.45rem;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#fff;border-radius:999px;padding:.48rem .75rem;font-weight:700;font-size:.86rem;backdrop-filter:blur(5px);}
.quote-card-pro{border:1px solid rgba(255,255,255,.35);border-radius:26px;background:rgba(255,255,255,.96);color:#1f2937;box-shadow:0 20px 60px rgba(0,0,0,.24);}
.gallery-card{position:relative;overflow:hidden;border-radius:20px;border:1px solid var(--er-border);background:#fff;margin:0;box-shadow:0 12px 30px rgba(16,24,40,.06);}
.gallery-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.gallery-card figcaption{padding:.85rem;display:flex;flex-direction:column;gap:.15rem;}
.gallery-card figcaption span{font-size:.85rem;color:#667085;}
.contractor-side-card{top:94px;}
@media(max-width:991px){.contractor-pro-hero{padding:50px 0 42px}.contractor-side-card{position:static!important;}}

/* Package 07 lead marketplace */
.marketplace-lead-card{transition:transform .16s ease, box-shadow .16s ease;}
.marketplace-lead-card:hover{transform:translateY(-2px);box-shadow:0 18px 45px rgba(16,24,40,.10);}
.marketplace-price-box{min-width:160px;}
.credit-pack{border:1px solid var(--er-border);border-radius:18px;background:#f8fafc;}

/* Package 15: reviews and trust signals */
.review-card { position: relative; overflow: hidden; }
.review-card:before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background: rgba(13,110,253,.25); }
.review-page .feature-card { box-shadow: 0 18px 45px rgba(15,23,42,.08); }
.trust-pill .bi-patch-check-fill,
.trust-pill .bi-shield-fill-check { color: #b8f7d4; }
.trust-score-ring { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: #f1f5f9; font-weight: 800; }

/* Package 17: Contractor Directory */
.directory-hero{background:linear-gradient(180deg,#f7faff,#fff);padding:76px 0 56px;}
.directory-filter-card{border:1px solid var(--er-border);border-radius:22px;background:#fff;box-shadow:0 14px 34px rgba(16,24,40,.06);}
.directory-card{border:1px solid var(--er-border);border-radius:24px;background:#fff;box-shadow:0 14px 34px rgba(16,24,40,.06);overflow:hidden;transition:transform .16s ease, box-shadow .16s ease;}
.directory-card:hover{transform:translateY(-2px);box-shadow:0 20px 55px rgba(16,24,40,.10);}
.directory-cover{width:100%;height:150px;object-fit:cover;display:block;background:#eef4ff;}
.directory-cover-empty{background:radial-gradient(circle at top left,rgba(20,85,217,.24),transparent 36%),linear-gradient(135deg,#eef4ff,#f8fafc);}
.directory-trust-row{display:flex;flex-wrap:wrap;gap:.35rem;}
.directory-trust-row span{display:inline-flex;align-items:center;gap:.32rem;border:1px solid var(--er-border);border-radius:999px;padding:.28rem .48rem;background:#f8fafc;color:#475467;font-size:.74rem;font-weight:700;}
.min-w-0{min-width:0;}


/* Package 24: Website Widgets */
.widget-code-box{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.86rem;background:#0f172a;color:#e2e8f0;border-radius:16px;padding:1rem;}
.widget-preview-frame{width:100%;min-height:720px;border:0;border-radius:18px;background:#fff;box-shadow:0 14px 34px rgba(16,24,40,.08);}

/* Package 30 calendar/scheduling */
.calendar-grid .calendar-head .col { padding: .65rem .5rem; border-right: 1px solid rgba(15,23,42,.08); }
.calendar-grid .calendar-head .col:last-child { border-right: 0; }
.calendar-week { min-height: 130px; border-top: 1px solid rgba(15,23,42,.08); }
.calendar-day { min-height: 130px; padding: .55rem; border-right: 1px solid rgba(15,23,42,.08); background: #fff; }
.calendar-day:last-child { border-right: 0; }
.calendar-today { box-shadow: inset 0 0 0 2px rgba(37,99,235,.25); background: rgba(37,99,235,.04); }
.calendar-job { display:block; background:#f8fafc; color:#0f172a; border-left:4px solid #2563eb; border-radius:.5rem; padding:.25rem .4rem; line-height:1.2; }
.calendar-job:hover { background:#eef2ff; color:#0f172a; }
.schedule-dot { display:inline-block; width:.65rem; height:.65rem; border-radius:50%; margin-right:.4rem; vertical-align:middle; }
@media (max-width: 767px) {
  .calendar-grid { overflow-x:auto; }
  .calendar-grid .row { min-width: 760px; }
}

/* Package 35: Final Branding / UI Polish */
:root{
  --er-primary: var(--er-blue);
  --er-accent: #2dd4bf;
  --er-shadow: 0 18px 45px rgba(16,24,40,.08);
  --er-radius: 22px;
}
.er-body{font-smoothing:antialiased;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
.er-main-nav{backdrop-filter:saturate(180%) blur(14px);background:rgba(255,255,255,.94)!important;box-shadow:0 10px 30px rgba(16,24,40,.04);}
.er-navbar-brand{letter-spacing:-.02em;}
.brand-logo-img{max-height:38px;width:auto;display:block;}
.footer .brand-logo-img{max-height:34px;filter:brightness(0) invert(1);opacity:.94;}
.brand-text{display:inline-flex;align-items:center;}
.brand-mark{background:linear-gradient(135deg,var(--er-primary),var(--er-accent));box-shadow:0 10px 25px rgba(20,85,217,.22);}
.hero{position:relative;overflow:hidden;}
.hero:after{content:"";position:absolute;right:-120px;top:-160px;width:420px;height:420px;border-radius:999px;background:radial-gradient(circle,rgba(45,212,191,.20),rgba(45,212,191,0) 65%);pointer-events:none;}
.hero .container{position:relative;z-index:1;}
.btn{border-radius:999px;font-weight:700;}
.btn-lg{padding:.85rem 1.25rem;}
.btn-primary{background:linear-gradient(135deg,var(--er-primary),#0f46b8);border-color:var(--er-primary);}
.btn-outline-dark:hover,.btn-outline-secondary:hover{box-shadow:0 12px 26px rgba(16,24,40,.10);}
.form-control,.form-select{border-radius:14px;border-color:#d9e2ef;padding:.68rem .85rem;}
.form-control:focus,.form-select:focus{border-color:var(--er-primary);box-shadow:0 0 0 .22rem rgba(20,85,217,.12);}
.form-control-color{height:46px;padding:.35rem;}
.dash-card,.feature-card,.pricing-card,.directory-card,.quote-public-card,.sidebar-card{box-shadow:var(--er-shadow);border-radius:var(--er-radius);}
.dash-card{overflow:hidden;}
.table-responsive{border-radius:18px;}
.table-clean tbody tr{transition:background-color .15s ease;}
.table-clean tbody tr:hover{background:#f8fafc;}
.sidebar-card{max-height:calc(100vh - 110px);overflow:auto;scrollbar-width:thin;}
.sidebar-link{font-size:.92rem;}
.sidebar-link i{width:1.15rem;text-align:center;color:#667085;}
.sidebar-link.active i,.sidebar-link:hover i{color:var(--er-primary);}
.badge-soft{background:color-mix(in srgb,var(--er-primary) 10%,#fff);border-color:color-mix(in srgb,var(--er-primary) 18%,#fff);color:var(--er-primary);}
.mini-kpi{box-shadow:0 10px 26px rgba(16,24,40,.04);}
.brand-preview-panel{border:1px solid var(--er-border);border-radius:24px;background:radial-gradient(circle at top right,rgba(45,212,191,.12),transparent 35%),linear-gradient(180deg,#fff,#f8fafc);padding:1.25rem;}
.eyebrow{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;background:#eef4ff;color:var(--er-primary);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:.35rem .65rem;margin-bottom:.75rem;}
.empty-state{background:radial-gradient(circle at top left,rgba(20,85,217,.08),transparent 42%),#f8fafc;}
.alert{border-radius:18px;border:0;box-shadow:0 10px 30px rgba(16,24,40,.06);}
@media(max-width:991px){
  .navbar-nav{gap:.15rem;padding-top:.75rem;}
  .navbar .btn{width:100%;margin:.35rem 0 0!important;}
  .sidebar-card{max-height:none;}
}
@media(max-width:575px){
  .brand-logo-img{max-height:32px;max-width:170px;}
  .hero h1{font-size:2.35rem;}
  .dash-card,.feature-card,.pricing-card{border-radius:18px;}
  .container{padding-left:1rem;padding-right:1rem;}
}
