
/* Project Cloud homeowner account */
.client-auth-screen{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:28px 18px;
  background:
    radial-gradient(circle at 50% 8%,rgba(58,207,223,.17),transparent 30%),
    linear-gradient(180deg,#ffffff 0%,#eefafa 66%,#ffffff 100%);
}
.client-auth-card{
  width:min(560px,100%);
  padding:34px;
  border:1px solid rgba(19,120,200,.13);
  border-radius:30px;
  background:rgba(255,255,255,.95);
  box-shadow:0 26px 70px rgba(17,83,90,.12);
  text-align:center;
}
.client-portal-logo{
  width:min(390px,90%);
  margin:0 auto 10px;
}
.client-auth-card h1{
  margin:10px 0 8px;
  color:#073b72;
  font-size:clamp(34px,5vw,48px);
  line-height:1;
  letter-spacing:-.04em;
}
.client-auth-card>p{
  margin:0 auto 20px;
  color:var(--muted);
  line-height:1.55;
  max-width:470px;
}
.client-auth-card .field{text-align:left}
.client-create-profile-btn{margin-top:9px}
.client-login-divider{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--muted);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:16px 0 8px;
}
.client-login-divider:before,.client-login-divider:after{content:"";height:1px;background:var(--line);flex:1}
.client-auth-foot,.client-invite-note{margin-top:15px;font-size:12px;color:var(--muted)}
.client-auth-foot a,.client-rep-access{color:#547985;text-decoration:none}
.client-rep-access{display:inline-block;margin-top:12px;font-size:11px}
.client-auth-foot a:hover,.client-rep-access:hover{text-decoration:underline}
.client-form-grid,.client-profile-grid,.client-project-editor-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 14px;
  text-align:left;
}
.client-span-2{grid-column:1/-1}
.client-privacy-check{
  display:flex;
  gap:9px;
  align-items:flex-start;
  text-align:left;
  margin:14px 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}
.client-privacy-check input{width:auto;margin-top:3px}

.client-portal-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 12% 7%,rgba(65,210,220,.11),transparent 24%),
    linear-gradient(180deg,#fff,#f1fbfb 65%,#fff);
  color:var(--ink);
}
.client-portal-header{
  width:min(1260px,calc(100% - 36px));
  margin:0 auto;
  padding:22px 0 15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-bottom:1px solid rgba(19,120,200,.10);
}
.client-portal-brand{width:min(300px,44vw)}
.client-portal-brand .client-portal-logo{width:100%;margin:0}
.client-portal-user{
  display:flex;
  align-items:center;
  gap:12px;
  color:#47666d;
  font-size:13px;
  font-weight:750;
}
.client-portal-tabs{
  width:min(1260px,calc(100% - 36px));
  margin:18px auto 0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  padding:7px;
  border:1px solid rgba(19,120,200,.12);
  border-radius:18px;
  background:rgba(255,255,255,.78);
  box-shadow:0 10px 26px rgba(17,83,90,.06);
}
.client-portal-tabs button{
  background:transparent;
  color:#547078;
  border-radius:13px;
  padding:12px 14px;
}
.client-portal-tabs button.active{
  background:linear-gradient(135deg,var(--a),var(--b));
  color:#fff;
  box-shadow:0 8px 18px rgba(19,120,200,.17);
}
.client-portal-content{
  width:min(1260px,calc(100% - 36px));
  margin:20px auto 0;
  padding-bottom:70px;
}
.client-tab-panel{display:none}
.client-tab-panel.active{display:block}
.client-section-head{max-width:780px;margin:0 0 18px}
.client-section-head h1{
  margin:9px 0 7px;
  color:#073b72;
  font-size:clamp(30px,4vw,48px);
  line-height:1.04;
  letter-spacing:-.035em;
}
.client-section-head p{margin:0;color:var(--muted);line-height:1.55}
.client-section-head-row{
  max-width:none;
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:end;
}
.client-profile-grid{
  max-width:840px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:rgba(255,255,255,.92);
  box-shadow:0 12px 30px rgba(17,83,90,.06);
  margin-bottom:14px;
}

.client-project-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:16px;
}
.client-project-card{
  display:block;
  padding:0;
  overflow:hidden;
  text-align:left;
  color:var(--ink);
  border:1px solid rgba(19,120,200,.12);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 28px rgba(17,83,90,.08);
  transition:transform .18s ease,box-shadow .18s ease;
}
.client-project-card:hover{transform:translateY(-2px);box-shadow:0 17px 34px rgba(17,83,90,.12)}
.client-project-image{
  height:165px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#edfafa,#f8ffff);
  border-bottom:1px solid rgba(19,120,200,.09);
}
.client-project-image>img{width:100%;height:100%;object-fit:cover}
.client-project-logo-wrap{width:76%;opacity:.72}
.client-project-logo-wrap .client-portal-logo{width:100%;margin:0}
.client-project-card-copy{display:grid;gap:5px;padding:15px}
.client-project-category{
  width:max-content;
  padding:4px 7px;
  border-radius:999px;
  background:#e8f8f6;
  color:#0b7c78;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.client-project-card-copy strong{font-size:18px;color:#073b72}
.client-project-card-copy small{color:var(--muted);min-height:16px}
.client-project-meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:7px;
  padding-top:9px;
  border-top:1px solid var(--line);
  color:#668084;
  font-size:10px;
  text-transform:capitalize;
}
.client-empty-state{
  grid-column:1/-1;
  display:grid;
  justify-items:center;
  gap:7px;
  padding:48px 18px;
  border:1px dashed var(--line);
  border-radius:22px;
  background:rgba(255,255,255,.75);
  color:var(--muted);
  text-align:center;
}
.client-empty-state strong{color:#073b72;font-size:20px}

.all-quote-hero{
  max-width:920px;
  padding:26px;
  border:1px solid rgba(19,120,200,.13);
  border-radius:24px;
  background:
    radial-gradient(circle at 100% 0,rgba(40,202,211,.12),transparent 36%),
    rgba(255,255,255,.94);
  box-shadow:0 14px 34px rgba(17,83,90,.08);
}
.all-quote-hero h1{
  margin:10px 0 10px;
  font-size:clamp(32px,4vw,52px);
  line-height:1;
  color:#073b72;
  letter-spacing:-.04em;
}
.all-quote-hero p{margin:0;color:#55757b;line-height:1.65;font-size:15px}
.all-quote-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
  max-width:920px;
}
.all-quote-card{
  display:grid;
  gap:6px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:17px;
  background:#fff;
}
.all-quote-card strong{color:#073b72}
.all-quote-card span{color:var(--muted);font-size:13px;line-height:1.5}
.all-quote-start{margin-top:16px}

.service-category-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
}
.service-category-card{
  padding:18px;
  border:1px solid rgba(19,120,200,.12);
  border-radius:20px;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 26px rgba(17,83,90,.06);
}
.service-category-card h2{margin:0 0 12px;color:#073b72}
.service-subcategory-list{display:grid;gap:8px}
.service-subcategory-list button{
  display:grid;
  gap:4px;
  text-align:left;
  padding:12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#faffff;
  color:var(--ink);
}
.service-subcategory-list button:hover{background:#effaf8}
.service-subcategory-list strong{color:#073b72}
.service-subcategory-list span{font-size:12px;color:var(--muted);line-height:1.4}
.service-subcategory-list small{font-size:10px;color:#0a918f;font-weight:850}

.client-project-editor{
  width:min(900px,calc(100vw - 36px));
  max-height:90vh;
  overflow:auto;
  padding:22px;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 28px 70px rgba(0,0,0,.2);
}
.client-project-editor-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding-bottom:13px;
  border-bottom:1px solid var(--line);
  margin-bottom:13px;
}
.client-project-editor-head h2{margin:7px 0 0;color:#073b72}
.client-specifics{
  padding:12px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#f8fcfc;
}
.client-specifics>p{margin:4px 0 10px;color:var(--muted);font-size:12px}
.client-specific-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.client-specific-grid label{
  display:flex;
  gap:7px;
  align-items:center;
  padding:8px;
  border:1px solid rgba(19,120,200,.09);
  border-radius:10px;
  background:#fff;
  font-size:12px;
  font-weight:700;
}
.client-specific-grid input{width:auto}

@media(max-width:760px){
  .client-form-grid,.client-profile-grid,.client-project-editor-grid{grid-template-columns:1fr}
  .client-span-2{grid-column:auto}
  .client-portal-header{align-items:flex-start;flex-direction:column}
  .client-portal-brand{width:min(320px,86vw)}
  .client-portal-tabs{grid-template-columns:repeat(2,1fr)}
  .client-section-head-row{align-items:flex-start;flex-direction:column}
  .all-quote-grid{grid-template-columns:1fr}
  .client-specific-grid{grid-template-columns:1fr}
  .client-auth-card{padding:28px 20px}
}
