:root {
  --bg: #f6f9fd;
  --surface: rgba(255, 255, 255, 0.95);
  --surface-strong: #ffffff;
  --border: rgba(17, 85, 204, 0.14);
  --text: #0c1b3a;
  --muted: #4b5b7c;
  --blue: #1155cc;
  --blue-deep: #0b2f7d;
  --blue-soft: #e8f0ff;
  --shadow: 0 20px 55px rgba(11, 47, 125, 0.08);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at top left, rgba(17, 85, 204, 0.09), transparent 24%),
    radial-gradient(circle at top right, rgba(17, 85, 204, 0.06), transparent 18%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 36%, #edf4fb 100%);
  font-family: "Inter", Arial, Helvetica, sans-serif;
}
a { color: inherit; text-decoration: none; }

/* Home */
.home-shell {
  position: relative;
  overflow: hidden;
  max-width: 1320px;
  margin: 0 auto;
  padding: 28px 22px 30px;
}
.home-ornament { position: absolute; pointer-events: none; }
.home-ornament-left {
  top: -70px;
  left: -90px;
  width: 360px;
  height: 360px;
  border-left: 14px solid rgba(17, 85, 204, 0.08);
  border-radius: 50%;
  box-shadow: inset 0 0 0 12px rgba(17, 85, 204, 0.05);
}
.home-ornament-right {
  top: 54px;
  right: 0;
  width: 230px;
  height: 230px;
  background: radial-gradient(circle, rgba(17, 85, 204, 0.2) 0 3px, transparent 3px) 0 0 / 24px 24px;
  opacity: 0.55;
}
.home-dots {
  position: absolute;
  top: 40px;
  right: 44px;
  width: 130px;
  height: 130px;
  background: radial-gradient(circle, rgba(17, 85, 204, 0.24) 0 3px, transparent 3px) 0 0 / 22px 22px;
  opacity: 0.5;
}
.home-hero,
.home-banner,
.home-process,
.home-service-card,
.home-summary-card,
.home-card {
  position: relative;
  z-index: 1;
}
.home-hero {
  display: grid;
  justify-items: center;
  text-align: center;
  padding: 30px 20px 18px;
}
.home-logo {
  width: min(330px, 72vw);
  height: auto;
  display: block;
  margin-bottom: 8px;
  filter: drop-shadow(0 14px 30px rgba(17, 85, 204, 0.06));
}
.home-kicker,
.home-banner-kicker,
.home-process-kicker,
.home-service-label {
  margin: 0;
  color: var(--blue);
  font-family: "IBM Plex Mono", monospace;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 0.74rem;
}
.home-hero h1 {
  margin: 14px 0 0;
  max-width: 13ch;
  font-size: clamp(3rem, 6vw, 5.8rem);
  line-height: 0.95;
  letter-spacing: -0.06em;
  font-weight: 800;
}
.home-hero h1 span,
.home-summary-card h3,
.home-card h2,
.home-service-card h3,
.home-process-head h2,
.home-banner-copy h2 {
  color: var(--blue-deep);
}
.home-subtitle {
  max-width: 760px;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 1.08rem;
  line-height: 1.7;
}
.home-capabilities {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 24px;
  padding: 14px 16px;
  border: 1px solid var(--blue);
  border-radius: 999px;
  background: #fff;
  box-shadow: var(--shadow);
}
.home-capabilities span { color: var(--blue); font-weight: 700; font-size: 0.95rem; }
.home-cta-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin-top: 24px;
}
.home-cta {
  min-height: 52px;
  border-radius: 999px;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  border: 1px solid var(--border);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
.home-cta:hover { transform: translateY(-1px); box-shadow: 0 16px 34px rgba(17, 85, 204, 0.12); }
.home-cta-primary { background: linear-gradient(135deg, var(--blue), #1d77e8); color: #fff; border-color: transparent; }
.home-cta-secondary { background: #fff; color: var(--blue); }
.home-cta-call { background:#0c1b3a; color:#fff; border-color:#0c1b3a; }
.home-cta-call:hover { box-shadow:0 16px 34px rgba(12,27,58,.18); }
.home-card-grid,
.home-service-grid,
.home-summary-grid {
  display: grid;
  gap: 16px;
  margin-top: 22px;
}
.home-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-card {
  min-height: 280px;
  padding: 26px 24px 22px;
  border: 1px solid var(--border);
  border-radius: 28px;
  background: var(--surface);
  box-shadow: var(--shadow);
}
.home-card-icon {
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background: var(--blue-soft);
  display: grid;
  place-items: center;
  margin: 0 auto 16px;
  position: relative;
}
.home-card-icon::before {
  content: "";
  width: 38px;
  height: 38px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--blue), var(--blue-deep));
  box-shadow: 0 10px 22px rgba(17, 85, 204, 0.2);
}
.home-card-icon-bars::before {
  clip-path: polygon(0 100%, 0 60%, 18% 60%, 18% 40%, 36% 40%, 36% 18%, 54% 18%, 54% 0, 72% 0, 72% 32%, 90% 32%, 90% 52%, 100% 52%, 100% 100%);
}
.home-card-icon-lock::before {
  clip-path: polygon(28% 42%, 28% 31%, 34% 17%, 50% 10%, 66% 17%, 72% 31%, 72% 42%, 78% 42%, 78% 82%, 22% 82%, 22% 42%);
}
.home-card h2,
.home-service-card h3,
.home-summary-card h3,
.home-process-head h2 {
  margin: 0;
  letter-spacing: -0.04em;
}
.home-card h2 { text-align: center; font-size: 1.35rem; }
.home-card p { margin: 10px 0 0; text-align: center; color: var(--muted); line-height: 1.7; }
.home-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 18px;
  padding: 22px 24px;
  border-radius: 24px;
  background: linear-gradient(135deg, #1763dd, #0b47aa);
  color: #fff;
  box-shadow: 0 20px 50px rgba(11, 71, 170, 0.24);
}
.home-banner-copy h2 { color: #fff; font-size: clamp(1.5rem, 3vw, 2.3rem); }
.home-banner-copy p:last-child { margin: 10px 0 0; max-width: 56ch; line-height: 1.7; color: rgba(255, 255, 255, 0.9); }
.home-banner-chip {
  min-width: 128px;
  min-height: 128px;
  border-radius: 28px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.12);
  font-size: 1.1rem;
  font-weight: 800;
}
.home-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.home-summary-card {
  padding: 18px 16px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  text-align: center;
}
.home-summary-card p { margin: 8px 0 0; color: var(--muted); line-height: 1.55; }
.home-service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-service-card {
  padding: 22px 20px;
  border-radius: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}
.home-service-card p { color: var(--muted); line-height: 1.7; }
.home-process {
  margin-top: 18px;
  padding: 24px;
  border-radius: 28px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow);
}
.home-process-head h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.home-process-list {
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
  display: grid;
  gap: 12px;
}
.home-process-list li {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid rgba(17, 85, 204, 0.1);
  background: linear-gradient(180deg, #fff, #f7fbff);
}
.home-process-list li span {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 16px;
  background: var(--blue-soft);
  color: var(--blue);
  font-weight: 800;
}
.home-process-list li p { margin: 0; color: var(--text); font-weight: 600; }

.portfolio { margin-top: 22px; padding: 30px; border: 1px solid var(--border); border-radius: 28px; background: rgba(255,255,255,.96); box-shadow: var(--shadow); }
.portfolio-head { display:flex; align-items:end; justify-content:space-between; gap:24px; }
.portfolio-head h2 { margin: 8px 0 0; color:var(--blue-deep); font-size:clamp(2rem,4vw,3.4rem); letter-spacing:-.05em; line-height:1; }
.portfolio-head p:not(.home-banner-kicker) { max-width: 620px; margin:12px 0 0; color:var(--muted); line-height:1.65; }
.portfolio-filters { display:flex; flex-wrap:wrap; gap:8px; margin:26px 0 16px; padding-bottom:14px; border-bottom:1px solid #e1eaf4; }
.portfolio-filters button { min-height:38px; padding:0 14px; border:1px solid #cfdeef; border-radius:999px; background:#fff; color:#4c6682; font:600 .86rem "Inter", Arial, sans-serif; cursor:pointer; }
.portfolio-filters button:hover, .portfolio-filters button.is-active { border-color:var(--blue); background:var(--blue); color:#fff; }
.portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.portfolio-card { overflow:hidden; border:1px solid #d8e4f1; border-radius:20px; background:#fff; transition:transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease; }
.portfolio-card:hover { transform:translateY(-4px); border-color:#94b9e5; box-shadow:0 22px 48px #164d9820; }
.portfolio-card[hidden] { display:none; }
.portfolio-card-featured { grid-column:span 2; }
.portfolio-media { position:relative; min-height:190px; overflow:hidden; background:#eaf1f8; }
.portfolio-media img { display:block; width:100%; height:220px; object-fit:cover; transition:transform 350ms ease; }
.portfolio-card-featured .portfolio-media img { height:280px; }
.portfolio-card:hover .portfolio-media img { transform:scale(1.035); }
.portfolio-media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,#071a3dba); pointer-events:none; }
.portfolio-media span { position:absolute; z-index:1; left:14px; bottom:13px; color:#fff; font-size:.74rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.portfolio-card-body { padding:20px; }
.portfolio-label { margin:0; color:var(--blue); font:600 .72rem "IBM Plex Mono",monospace; letter-spacing:.15em; text-transform:uppercase; }
.portfolio-card h3 { margin:8px 0 0; color:var(--blue-deep); font-size:1.25rem; letter-spacing:-.025em; }
.portfolio-card-body p:not(.portfolio-label) { min-height:50px; margin:10px 0 16px; color:var(--muted); line-height:1.55; font-size:.92rem; }
.portfolio-card a { color:var(--blue); font-weight:800; font-size:.9rem; }
.portfolio-card a span { display:inline-block; margin-left:5px; transition:transform 180ms ease; }
.portfolio-card a:hover span { transform:translate(3px,-3px); }
.home-contact { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:22px; padding:30px; border-radius:28px; background:#082f78; color:#fff; box-shadow:0 22px 55px #082f7830; }
.home-contact h2 { margin:8px 0 0; color:#fff; font-size:clamp(1.9rem,4vw,3.2rem); line-height:1; letter-spacing:-.05em; }
.home-contact p:not(.home-banner-kicker) { max-width:620px; margin:12px 0 0; color:#d7e8ff; line-height:1.65; }
.home-contact .home-banner-kicker { color:#86bdff; }
.home-contact-actions { display:grid; gap:10px; min-width:220px; }
.home-contact-actions .home-cta { width:100%; }
.home-cta-whatsapp { border-color:#35c879; background:#16a765; color:#fff; }
.home-cta-whatsapp:hover { box-shadow:0 16px 34px #16a76555; }

.home-appointment {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);
  gap:22px;
  align-items:stretch;
  margin-top:22px;
  padding:30px;
  border:1px solid var(--border);
  border-radius:28px;
  background:linear-gradient(145deg,#ffffff,#f2f7ff);
  box-shadow:var(--shadow);
}
.home-appointment-copy {
  display:grid;
  align-content:center;
}
.home-appointment-copy h2 {
  margin:10px 0 0;
  max-width:13ch;
  color:var(--blue-deep);
  font-size:clamp(2rem,4vw,3.5rem);
  line-height:1;
  letter-spacing:-.05em;
}
.home-appointment-copy p:not(.home-banner-kicker) {
  max-width:560px;
  margin:14px 0 0;
  color:var(--muted);
  line-height:1.7;
}
.appointment-card {
  display:grid;
  gap:15px;
  padding:22px;
  border:1px solid #ccdcf0;
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 42px #123b7a12;
}
.appointment-mode {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:5px;
  border-radius:14px;
  background:#eef4fc;
}
.appointment-mode label {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  border-radius:10px;
  color:#425b7a;
  font-weight:800;
  cursor:pointer;
}
.appointment-mode label:has(input:checked) {
  background:#fff;
  color:var(--blue);
  box-shadow:0 5px 14px #123b7a14;
}
.appointment-mode input { accent-color:var(--blue); }
.appointment-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.appointment-card label {
  display:grid;
  gap:7px;
  color:#294563;
  font-size:.82rem;
  font-weight:800;
}
.appointment-card input,
.appointment-card select,
.appointment-card textarea {
  width:100%;
  border:1px solid #c6d8ec;
  border-radius:12px;
  background:#fbfdff;
  color:#10284d;
  font:600 .95rem "Inter", Arial, sans-serif;
  padding:12px 13px;
  outline:none;
}
.appointment-card textarea { resize:vertical; min-height:86px; }
.appointment-card input:focus,
.appointment-card select:focus,
.appointment-card textarea:focus {
  border-color:var(--blue);
  box-shadow:0 0 0 4px #e4efff;
}
.appointment-card .home-cta {
  width:100%;
  border:0;
  cursor:pointer;
}
.appointment-note {
  margin:0;
  color:#607795;
  font-size:.84rem;
  line-height:1.5;
  text-align:center;
}

.home-proof {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: 22px;
  align-items: stretch;
  margin-top: 22px;
  padding: 30px;
  border: 1px solid rgba(17, 85, 204, .18);
  border-radius: 28px;
  background: #fff;
  box-shadow: var(--shadow);
}
.home-proof-copy h2 { margin: 10px 0 0; max-width: 18ch; color: var(--blue-deep); font-size: clamp(1.8rem, 3vw, 3rem); line-height: 1.04; letter-spacing: -.045em; }
.home-proof-copy > p:not(.home-banner-kicker) { max-width: 56ch; color: var(--muted); line-height: 1.7; }
.home-proof-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 22px; }
.home-proof-tags span { padding: 8px 11px; border: 1px solid #cbdcf1; border-radius: 999px; background: #f7fbff; color: #31577f; font-size: .82rem; font-weight: 700; }
.home-proof-preview { align-self: center; padding: 24px; border: 1px solid #d8e4f2; border-radius: 20px; background: linear-gradient(180deg, #fafdff, #edf5ff); }
.proof-chart-head { display: flex; justify-content: space-between; gap: 12px; color: var(--blue-deep); font-weight: 800; }
.proof-chart-head small { color: #69809b; font-weight: 600; }
.proof-bars { display: grid; gap: 17px; margin-top: 30px; }
.proof-bars i { position: relative; display: block; height: 34px; width: var(--bar); min-width: 120px; border-radius: 7px 12px 12px 7px; background: linear-gradient(90deg, #1155cc, #3d8ae8); font-style: normal; box-shadow: 0 8px 18px #1155cc22; }
.proof-bars b, .proof-bars em { position: absolute; top: 8px; color: #fff; font-size: .78rem; }
.proof-bars b { left: 12px; }.proof-bars em { right: 12px; font-style: normal; font-weight: 800; }
.proof-axis { display: flex; justify-content: space-between; margin-top: 11px; color: #7187a2; font-size: .7rem; }
.home-case-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 22px; }
.home-case-card { display: grid; grid-template-columns: 46px 1fr; gap: 14px; padding: 22px; border: 1px solid var(--border); border-radius: 22px; background: rgba(255,255,255,.94); box-shadow: var(--shadow); }
.home-case-number { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: var(--blue); color: #fff; font: 700 .78rem "IBM Plex Mono", monospace; }
.home-case-card h3 { margin: 6px 0 0; color: var(--blue-deep); font-size: 1.15rem; line-height: 1.15; }
.home-case-card p:last-child { margin: 10px 0 0; color: var(--muted); line-height: 1.6; font-size: .94rem; }

@media (max-width: 800px) {
  .home-proof, .home-case-grid, .portfolio-grid { grid-template-columns: 1fr; }
  .home-proof { padding: 22px; }
  .home-proof-copy h2 { max-width: none; }
  .portfolio { padding: 22px; }
  .portfolio-head { align-items:flex-start; flex-direction:column; }
  .portfolio-card-featured { grid-column:auto; }
  .home-contact { align-items:flex-start; flex-direction:column; padding:22px; }
  .home-contact-actions { width:100%; }
  .home-appointment { grid-template-columns:1fr; padding:22px; }
  .home-appointment-copy h2 { max-width:none; }
  .appointment-grid { grid-template-columns:1fr; }
  .appointment-mode { grid-template-columns:1fr; }
}

/* Delivery page */
.appbar {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(16px);
}
.appbar-left { display: flex; align-items: center; gap: 14px; min-width: 0; }
.brand-mark {
  display: grid;
  place-items: center;
  width: 92px;
  height: 92px;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(17, 85, 204, 0.06), rgba(255, 255, 255, 0.96));
  border: 1px solid rgba(17, 85, 204, 0.12);
  box-shadow: 0 14px 28px rgba(17, 85, 204, 0.12);
  flex: none;
}
.brand-logo {
  width: 82px;
  height: 82px;
  object-fit: cover;
  border-radius: 22px;
  background: #fff;
  flex: none;
}
.appbar-kicker, .eyebrow {
  margin: 0 0 4px;
  color: var(--muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.appbar h1 { margin: 0; font-size: 1rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.appbar-right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.status-pill, .subtle-chip, .button {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  border-radius: 999px;
  border: 1px solid var(--border);
  padding: 0 12px;
  background: #fff;
  color: #3c4757;
  font-size: 0.88rem;
}
.workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 20px;
  padding: 20px;
  max-width: 1600px;
  margin: 0 auto;
}
.viewer-shell, .panel {
  border: 1px solid var(--border);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: var(--shadow);
}
.viewer-shell {
  padding: 18px;
  position: relative;
  overflow: hidden;
}
.viewer-shell::before {
  content: "";
  position: absolute;
  inset: auto -120px -120px auto;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  border: 8px solid rgba(17, 85, 204, 0.08);
  pointer-events: none;
}
.viewer-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.viewer-head h2 { margin: 0; font-size: clamp(1.4rem, 2vw, 2rem); letter-spacing: -0.04em; color: var(--blue-deep); }
.viewer-head-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.doc-stage {
  position: relative;
  min-height: 1800px;
  border-radius: 24px;
  border: 1px solid var(--border);
  background: #e8ebef;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(17, 85, 204, 0.05);
}
.doc-frame { width: 100%; height: 1800px; border: 0; background: #fff; display: block; }
.doc-cover {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, rgba(238, 241, 244, 0.32), rgba(238, 241, 244, 0.84));
  backdrop-filter: blur(6px);
  transition: opacity 180ms ease;
}
.cover-card {
  width: min(420px, calc(100% - 32px));
  padding: 22px;
  border-radius: 22px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: var(--shadow);
}
.cover-logo {
  display: block;
  width: 122px;
  max-width: 100%;
  height: auto;
  margin: 0 0 14px;
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(17, 85, 204, 0.12);
}
.cover-card h3 { margin: 0 0 8px; font-size: 1.6rem; letter-spacing: -0.04em; color: var(--blue-deep); }
.cover-card p { margin: 0 0 18px; color: var(--muted); line-height: 1.65; }
.sidebar-column { display: grid; gap: 14px; align-content: start; }
.panel { padding: 18px; }
.panel h3 { margin: 0; font-size: 1.05rem; color: var(--blue-deep); }
.payment-stack { display: grid; gap: 10px; margin-top: 14px; }
.project-board { display: grid; gap: 12px; margin-top: 6px; }
.project-row {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: linear-gradient(180deg, #fff, #f8fbff);
  box-shadow: var(--shadow);
}
.project-row-copy strong { display: block; font-size: 1rem; color: var(--blue-deep); }
.project-row-copy small { display: block; margin-top: 4px; color: var(--muted); }
.project-chip {
  min-width: 76px;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(17, 85, 204, 0.16);
  color: var(--blue);
  font-weight: 700;
  font-size: 0.82rem;
  background: #fff;
}
.project-list { display: grid; gap: 10px; margin-top: 14px; }
.project-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: linear-gradient(180deg, #fff, #f8fbff);
}
.project-item strong { display: block; color: var(--blue-deep); }
.project-item small { display: block; color: var(--muted); margin-top: 2px; }
.project-dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  flex: none;
  box-shadow: 0 0 0 4px rgba(17, 85, 204, 0.08);
  background: #94a3b8;
}
.project-dot.is-done,
.project-row.is-done .project-dot { background: #16a34a; box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.12); }
.project-dot.is-progress,
.project-row.is-progress .project-dot { background: #f59e0b; box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.14); }
.project-dot.is-waiting,
.project-row.is-waiting .project-dot { background: #ef4444; box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.12); }
.project-item.is-done .project-dot { background: #16a34a; box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.12); }
.project-item.is-progress .project-dot { background: #f59e0b; box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.14); }
.project-item.is-waiting .project-dot { background: #ef4444; box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.12); }
.status-legend { display: grid; gap: 10px; margin-top: 14px; }
.status-legend div { display: flex; align-items: center; gap: 10px; color: var(--muted); }
.status-legend small { font-weight: 600; }
.button {
  justify-content: center;
  min-height: 44px;
  padding: 0 16px;
  font-weight: 600;
  cursor: pointer;
}
.button.primary {
  background: linear-gradient(145deg, rgba(17, 85, 204, 0.96), rgba(15, 157, 88, 0.76));
  color: #fff;
  border-color: transparent;
}
.button.ghost { background: #f9fafb; }
.fineprint { margin: 14px 0 0; color: var(--muted); line-height: 1.6; font-size: 0.92rem; }
.download-btn.disabled { opacity: 0.42; pointer-events: none; }
.is-unlocked .doc-cover { opacity: 0; pointer-events: none; }
.is-unlocked .status-pill { border-color: rgba(15, 157, 88, 0.25); background: rgba(15, 157, 88, 0.08); color: #0f9d58; }
.is-unlocked .button.download-btn { border-color: rgba(15, 157, 88, 0.25); }

@media (max-width: 1180px) {
  .workspace { grid-template-columns: 1fr; }
  .sidebar-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .appbar, .viewer-head { flex-direction: column; align-items: flex-start; }
  .appbar-right { justify-content: flex-start; }
  .sidebar-column, .home-card-grid, .home-summary-grid, .home-service-grid {
    grid-template-columns: 1fr;
  }
  .doc-stage, .doc-frame { min-height: 1500px; height: 1500px; }
  .workspace { padding: 12px; }
}

@media (max-width: 760px) {
  .home-shell { padding: 18px 14px 22px; }
  .home-hero { padding-inline: 6px; }
  .home-hero h1 { max-width: 100%; font-size: clamp(2.7rem, 12vw, 4.5rem); }
  .home-banner { flex-direction: column; align-items: stretch; }
  .home-banner-chip { min-width: 0; min-height: 72px; }
}

/* Secure portal v6 */
[hidden]{display:none!important}.portal-page{min-height:100vh;background:radial-gradient(circle at 15% 5%,#eaf3ff 0,transparent 30%),linear-gradient(135deg,#f8fbff,#eef4fb);color:#071a3d}.portal-bar{min-height:112px;padding:18px clamp(22px,5vw,72px);display:flex;align-items:center;justify-content:space-between;gap:24px;background:#ffffffeb;border-bottom:1px solid #d9e4f3;backdrop-filter:blur(18px);position:sticky;top:0;z-index:20}.portal-brand{display:flex;align-items:center;gap:16px;color:inherit;text-decoration:none}.portal-brand img{width:74px;height:74px;object-fit:contain;mix-blend-mode:multiply}.portal-brand span{display:grid;gap:5px}.portal-brand small,.kicker{color:#1261d8;font:600 12px/1.2 monospace;letter-spacing:.2em}.portal-brand strong{font-size:20px}.quiet-button{appearance:none;border:1px solid #cad9ed;border-radius:999px;background:#fff;color:#173154;padding:12px 18px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}.viewer-shell,.admin-shell,.project-access-shell{width:min(1220px,calc(100% - 40px));margin:0 auto;padding:60px 0 90px}.portal-intro{display:grid;grid-template-columns:1fr 210px;gap:40px;align-items:end;margin-bottom:34px}.portal-intro h1,.admin-heading h1,.auth-card h1,.project-hero-card h1{margin:8px 0 14px;font-size:clamp(36px,5vw,68px);line-height:.98;letter-spacing:-.055em}.portal-intro p{max-width:720px;color:#526987;font-size:19px;line-height:1.65}.security-mark{border-left:1px solid #b8cae1;padding-left:24px}.security-mark span{color:#1b6fe5;font:700 42px/1 monospace}.security-mark p{margin:8px 0 0;font-size:14px;line-height:1.4}.live-board{padding:14px;border-radius:28px;background:#fffc;border:1px solid #d5e2f3;box-shadow:0 22px 70px #183f701a}.live-board .project-row{min-height:116px;display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;gap:20px;align-items:center;padding:20px 24px;color:inherit;text-decoration:none;border:1px solid transparent;border-radius:20px;transition:.2s ease}.live-board .project-row+.project-row{border-top-color:#e0e8f3;border-radius:0}.live-board .project-row:hover{transform:translateY(-2px);background:#fff;border-color:#b8d2f5;box-shadow:0 14px 32px #17468217}.project-row-copy{display:grid;gap:7px;min-width:0}.project-row-copy strong{font-size:20px}.project-row-copy small{color:#657b98}.project-dot,.dot{width:12px;height:12px;border-radius:50%;background:#ef4a54;box-shadow:0 0 0 6px #fee9eb}.is-done .project-dot,.project-dot.is-done,.dot.done{background:#18a85a;box-shadow:0 0 0 6px #e0f5e9}.is-progress .project-dot,.project-dot.is-progress,.dot.progress{background:#f59e0b;box-shadow:0 0 0 6px #fff2d9}.is-review .project-dot,.project-dot.is-review,.dot.review{background:#287be0;box-shadow:0 0 0 6px #e2efff}.progress-track{height:5px;max-width:420px;overflow:hidden;border-radius:9px;background:#e6edf6}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1261d8,#35b98a)}.project-percent{font:700 14px monospace;color:#536b89}.project-chip{min-width:92px;text-align:center;border:1px solid #bcd2ef;border-radius:999px;padding:10px 16px;color:#0d5fd1;font-weight:800}.status-legend{display:flex;flex-wrap:wrap;gap:28px;margin-top:25px;color:#536b89}.status-legend span{display:flex;align-items:center;gap:11px}.status-legend .dot{width:8px;height:8px}.auth-card{width:min(520px,100%);margin:6vh auto;padding:clamp(30px,5vw,56px);border-radius:30px;background:#fffffff2;border:1px solid #d3e1f2;box-shadow:0 30px 90px #15396926}.auth-card>p:not(.kicker){color:#5d718e;font-size:17px;line-height:1.6}.secure-form{display:grid;gap:17px;margin-top:28px}.secure-form label{display:grid;gap:8px;color:#243e61;font-size:13px;font-weight:800}.secure-form input,.secure-form select{width:100%;box-sizing:border-box;border:1px solid #c7d7ea;border-radius:13px;background:#fafdff;padding:14px 15px;color:#071a3d;font:inherit;outline:none}.secure-form input:focus,.secure-form select:focus{border-color:#1769db;box-shadow:0 0 0 4px #e3efff}.secure-form .home-cta{width:100%;justify-content:center;border:0;cursor:pointer}.form-message{min-height:20px;margin:0;color:#c33542;font-size:14px}.back-link{display:inline-block;margin-top:25px;color:#1b62c8;text-decoration:none;font-weight:700}.admin-heading,.project-hero-card{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px}.admin-heading h1{font-size:clamp(42px,5vw,64px)}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.admin-stats article{padding:24px;border:1px solid #d4e1f1;border-radius:20px;background:#fff}.admin-stats span{color:#647996}.admin-stats strong{display:block;margin-top:8px;font-size:34px}.admin-grid{display:grid;grid-template-columns:minmax(330px,.85fr) minmax(430px,1.15fr);gap:22px}.admin-project-list,.admin-editor{min-height:490px;border:1px solid #d4e1f1;border-radius:26px;background:#ffffffe0;overflow:hidden}.admin-project-row{width:100%;display:grid;grid-template-columns:14px 1fr auto;gap:18px;align-items:center;padding:22px;border:0;border-bottom:1px solid #e2eaf4;background:transparent;color:inherit;text-align:left;cursor:pointer}.admin-project-row:hover{background:#f4f8fe}.admin-project-row span:nth-child(2){display:grid;gap:6px}.admin-project-row small{color:#6b7e98}.admin-project-row b{color:#1261d8}.admin-editor{padding:28px}.editor-empty{min-height:360px;display:grid;place-content:center;text-align:center;color:#687c97}.editor-empty span,.empty-document span,.document-lock span{width:62px;height:62px;margin:0 auto 15px;display:grid;place-items:center;border-radius:20px;background:#0d5ece;color:#fff;font-weight:900}.editor-empty h2{color:#122a4b}.admin-edit-form{margin:0}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check-row{grid-template-columns:auto 1fr!important;align-items:center}.check-row input{width:20px!important;height:20px}.editor-actions{display:flex;gap:12px;align-items:center}.editor-actions .home-cta{width:auto}.project-dialog,.credential-dialog{width:min(560px,calc(100% - 30px));border:0;border-radius:26px;padding:30px;color:#071a3d;box-shadow:0 35px 100px #071a3d55}.project-dialog::backdrop,.credential-dialog::backdrop{background:#071a3dcc;backdrop-filter:blur(8px)}.dialog-head{display:flex;justify-content:space-between;gap:20px}.dialog-head h2{margin:6px 0}.dialog-head button{border:0;background:transparent;font-size:32px;cursor:pointer}.credential-result dl{display:grid;grid-template-columns:100px 1fr;margin:24px 0;border-top:1px solid #dbe5f1}.credential-result dt,.credential-result dd{margin:0;padding:14px 0;border-bottom:1px solid #dbe5f1}.credential-result dt{color:#6a7e98}.credential-result dd{font-family:monospace;font-weight:800;word-break:break-all}.project-hero-card{padding:30px;border-radius:26px;background:linear-gradient(135deg,#082b68,#075dcc);color:#fff;box-shadow:0 24px 65px #0d4fae33}.project-hero-card h1{font-size:clamp(34px,4vw,56px)}.project-hero-card p{color:#bfd9ff}.project-hero-card .kicker{color:#77b2ff}.status-pill{padding:12px 18px;border-radius:999px;background:#ffffff19;border:1px solid #ffffff44;font-weight:800}.client-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px}.document-stage,.side-card{border:1px solid #d2e0f1;border-radius:25px;background:#fff;box-shadow:0 18px 55px #163e7612}.document-stage{overflow:hidden}.document-toolbar{display:flex;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #dce6f1;color:#415a7a}.live-dot{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:#16a765;box-shadow:0 0 0 5px #e0f7ea}.drive-frame{position:relative;height:720px;overflow:hidden;background:#e9eef5}.drive-frame iframe{width:100%;height:100%;border:0}.drive-frame.is-locked iframe{height:460px;pointer-events:none}.document-lock{position:absolute;inset:360px 0 0;display:grid;place-content:center;padding:40px;text-align:center;background:linear-gradient(180deg,#f7faffd9 0,#f7faff 18%);backdrop-filter:blur(8px)}.document-lock h2{margin:0}.document-lock p{max-width:460px;color:#5d728e;line-height:1.6}.project-sidebar{display:grid;align-content:start;gap:18px}.side-card{padding:25px}.side-card h3{font-size:21px}.side-card p:not(.kicker){color:#617592;line-height:1.6}.big-number{display:block;margin:8px 0 16px;font-size:50px}.progress-track.large{height:9px}.side-card .home-cta{width:100%;box-sizing:border-box;justify-content:center;margin-top:8px}.side-card button:disabled{opacity:.55}.empty-document{min-height:560px;display:grid;place-content:center;text-align:center;color:#617592}.empty-document h2{color:#143159}
@media(max-width:800px){.portal-bar{min-height:82px;padding:12px 18px}.portal-brand img{width:56px;height:56px}.portal-brand strong{font-size:15px}.portal-intro{grid-template-columns:1fr}.security-mark{display:none}.viewer-shell,.admin-shell,.project-access-shell{width:min(100% - 24px,1220px);padding-top:35px}.live-board .project-row{grid-template-columns:14px 1fr auto;padding:18px 14px}.project-percent{display:none}.project-chip{grid-column:2/4;justify-self:start}.admin-grid,.client-layout{grid-template-columns:1fr}.admin-stats{grid-template-columns:repeat(3,1fr)}.admin-stats article{padding:16px}.admin-stats strong{font-size:26px}.admin-heading,.project-hero-card{align-items:flex-start;flex-direction:column}.form-columns{grid-template-columns:1fr}.drive-frame{height:600px}.portal-intro h1,.auth-card h1{font-size:42px}}
.payment-card{padding:28px;background:linear-gradient(155deg,#fff 55%,#f1f7ff);border-color:#bfd4ef}.payment-card h3{margin:8px 0 10px;font-size:24px;letter-spacing:-.025em}.payment-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0 16px;padding:5px;border-radius:13px;background:#edf3fb}.payment-tabs button{border:0;border-radius:9px;padding:10px;background:transparent;color:#73849a;font:inherit;font-weight:800}.payment-tabs button.is-active{background:#fff;color:#0b5dcc;box-shadow:0 4px 15px #173a6812}.bank-details{margin:0 0 18px;border:1px solid #d9e5f3;border-radius:16px;background:#fbfdff;overflow:hidden}.bank-details div{display:grid;grid-template-columns:80px 1fr;gap:12px;padding:11px 14px;border-bottom:1px solid #e4ebf4}.bank-details div:last-child{border:0}.bank-details dt{color:#75879d;font-size:12px}.bank-details dd{margin:0;color:#173154;font:700 13px/1.4 monospace;overflow-wrap:anywhere}.payment-report-form{display:grid;gap:12px}.payment-report-form label{display:grid;gap:6px;color:#36506f;font-size:12px;font-weight:800}.payment-report-form input{width:100%;box-sizing:border-box;border:1px solid #cad9eb;border-radius:11px;background:#fff;padding:11px 12px;color:#102b50;font:inherit}.payment-report-form .home-cta{margin-top:2px;border:0;cursor:pointer}.payment-notice{display:grid;grid-template-columns:12px 1fr;gap:5px 10px;margin-top:18px;padding:15px;border:1px solid #f4ce80;border-radius:14px;background:#fff8e9;color:#684916}.payment-notice span{width:10px;height:10px;margin-top:4px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 5px #ffedc7}.payment-notice small{grid-column:2;color:#8b6a2f}.payment-notice.is-neutral{grid-template-columns:1fr;border-color:#d3e1f1;background:#f6f9fd;color:#294767}.payment-notice.is-neutral small{grid-column:1;color:#687e98}.gateway-note{display:grid;gap:5px;margin-top:18px;padding-top:16px;border-top:1px solid #dae5f2}.gateway-note strong{color:#294563;font-size:13px}.gateway-note small{color:#71849c;line-height:1.5}.delivery-card button{border:1px solid #d4dfec;background:#f7f9fc;color:#8999ad}.admin-payment-box{display:grid;gap:14px;margin:8px 0;padding:20px;border:1px solid #cbdcf0;border-radius:18px;background:#f5f9ff}.admin-payment-report{display:grid;gap:6px;padding:14px;border:1px solid #f2c96f;border-radius:12px;background:#fff8e8;color:#664716}.admin-payment-report span{font-family:monospace}.admin-payment-report small{color:#80632e}
.stripe-checkout{display:grid;gap:8px;margin-top:18px;padding:18px;border:1px solid #d8d9f4;border-radius:16px;background:linear-gradient(145deg,#fff,#f5f3ff)}.stripe-checkout strong{color:#25215d}.stripe-checkout small{color:#6f7190;line-height:1.5}.stripe-button{margin-top:5px;border:0;background:#635bff;color:#fff;cursor:pointer}.stripe-button:hover{background:#5149e8}.stripe-button:disabled{cursor:wait;opacity:.65}
.admin-access-box{display:grid;gap:8px;padding:20px;border:1px solid #bcd6f6;border-radius:18px;background:linear-gradient(145deg,#f8fbff,#edf5ff)}.admin-access-box>span{color:#627997;font-size:12px;font-weight:800}.admin-access-box>strong{color:#102d55;font-family:monospace;font-size:15px;overflow-wrap:anywhere}.admin-access-box>small{color:#6d7f96;line-height:1.5}.admin-access-box .danger-button{margin-top:6px;border-color:#e9b9bd;color:#a72d38;background:#fff}.admin-access-box .danger-button:hover{border-color:#d97a82;background:#fff5f6}.admin-access-box .danger-button:disabled{cursor:wait;opacity:.6}
.admin-stats{grid-template-columns:repeat(4,1fr)}.admin-appointments-panel{margin-bottom:22px;border:1px solid #d4e1f1;border-radius:24px;background:#ffffffe0;overflow:hidden}.admin-section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid #e2eaf4}.admin-section-head h2{margin:4px 0 0;font-size:24px}.admin-appointments{display:grid}.appointment-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:16px;padding:18px 22px;border-bottom:1px solid #e2eaf4}.appointment-row:last-child{border-bottom:0}.appointment-row strong,.appointment-row small{display:block}.appointment-row small{margin-top:5px;color:#6b7e98}.appointment-reminders{display:flex;gap:7px;flex-wrap:wrap}.appointment-reminders span{padding:6px 9px;border-radius:999px;background:#fff8e9;color:#8a5b13;font-size:12px;font-weight:800}.appointment-reminders span.is-sent{background:#eaf8f0;color:#147346}.appointment-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media(max-width:900px){.admin-stats{grid-template-columns:repeat(2,1fr)}.appointment-row{grid-template-columns:1fr}.appointment-actions{justify-content:flex-start}}@media(max-width:800px){.admin-stats{grid-template-columns:repeat(2,1fr)!important}}
.admin-file-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.admin-file-list li{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid #d9e5f3;border-radius:12px;background:#fff}.admin-file-list strong,.admin-file-list span{display:block}.admin-file-list span{margin-top:4px;color:#6b7e98;font-size:12px}.admin-file-list li>div:last-child{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.intake-files a{display:inline-flex;margin-top:8px;color:#0d5fcf;font-weight:800;text-decoration:none}@media(max-width:800px){.admin-file-list li{grid-template-columns:1fr}.admin-file-list li>div:last-child{justify-content:flex-start}}
.client-main-stack{display:grid;gap:22px}.client-project>.quote-panel{margin:0 0 22px}.quote-payment-layout{display:grid;grid-template-columns:minmax(0,1fr) 356px;gap:22px;align-items:start;margin:0 0 22px}.quote-payment-layout>.quote-panel{margin:0}.quote-payment-side{display:grid;gap:18px;align-content:start}.quote-payment-side .payment-card{position:sticky;top:132px}.payment-card h3{line-height:1.15}.payment-card .bank-details div:first-child{background:#f1f7ff}.payment-card .bank-details div:first-child dd{color:#0d4fae;font-size:15px}@media(max-width:980px){.quote-payment-layout{grid-template-columns:1fr}.quote-payment-side .payment-card{position:static}}
.quote-steps ol{display:grid!important;gap:14px!important}.quote-steps li{display:flex!important;align-items:flex-start!important;gap:13px!important;grid-template-columns:none!important;max-width:100%!important}.quote-steps li::before{flex:0 0 30px!important}.quote-steps li strong,.quote-steps li span{display:block!important;max-width:none!important;width:auto!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important}.quote-steps li strong{margin-bottom:3px}.quote-steps li span{color:#506985;line-height:1.55}
.admin-danger-zone{display:grid;gap:10px;margin-top:10px;padding:20px;border:1px solid #f0b8be;border-radius:18px;background:#fff7f8}.admin-danger-zone h3{margin:0;color:#8f1d2a;font-size:21px}.admin-danger-zone p:not(.kicker){margin:0;color:#6f3b43;line-height:1.55}.admin-danger-zone .danger-button{justify-self:start;border-color:#dc7c86;color:#a72d38;background:#fff}.admin-danger-zone .danger-button:hover{background:#fff0f2;border-color:#c94d5a}.admin-danger-zone .danger-button:disabled{cursor:wait;opacity:.65}

/* Client delivery reader */
.document-toolbar-label{display:flex;align-items:center;min-width:0;font-weight:700}.document-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.document-open-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px solid #b9d1ef;border-radius:999px;background:#f7fbff;color:#0d5fcf;font-size:13px;font-weight:800;text-decoration:none}.document-open-link:hover{background:#edf5ff;border-color:#8bb5e9}.receipt-field{padding:14px;border:1px dashed #a9c5e8;border-radius:14px;background:#f8fbff}.receipt-field input[type=file]{padding:6px;background:transparent}.receipt-field input[type=file]::file-selector-button{min-height:36px;margin-right:10px;padding:0 12px;border:1px solid #b9cde6;border-radius:9px;background:#fff;color:#173154;font:700 12px/1 inherit;cursor:pointer}.receipt-field small{color:#6d829d;font-weight:500;line-height:1.45}.payment-report-form .home-cta{min-height:48px}

@media (max-width: 800px) {
  html { -webkit-text-size-adjust: 100%; }
  .portal-page { overflow-x: hidden; }
  .portal-bar {
    min-height: auto;
    padding: 10px max(12px, env(safe-area-inset-left)) 10px max(12px, env(safe-area-inset-right));
    gap: 10px;
  }
  .portal-brand { min-width: 0; gap: 10px; }
  .portal-brand img { width: 46px; height: 46px; flex: 0 0 auto; }
  .portal-brand span { min-width: 0; }
  .portal-brand small { font-size: 9px; letter-spacing: .14em; }
  .portal-brand strong {
    display: block;
    max-width: 52vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 14px;
  }
  .portal-bar .quiet-button { min-height: 44px; padding: 10px 13px; font-size: 13px; white-space: nowrap; }
  .project-access-shell { width: 100%; padding: 12px 0 max(48px, env(safe-area-inset-bottom)); }
  .client-project { width: 100%; }
  .project-hero-card { margin: 0 12px 12px; padding: 18px; border-radius: 20px; gap: 14px; }
  .project-hero-card h1 { margin-bottom: 8px; font-size: clamp(27px, 8vw, 38px); line-height: 1.04; }
  .project-hero-card p { margin-bottom: 0; }
  .status-pill { padding: 9px 12px; font-size: 12px; }
  .client-layout { display: flex; flex-direction: column; gap: 14px; }
  .document-stage { order: 1; border-radius: 0; border-inline: 0; box-shadow: none; }
  .project-sidebar { order: 2; margin: 0 12px; gap: 12px; }
  .document-toolbar { padding: 12px; flex-direction: column; align-items: stretch; gap: 10px; }
  .document-toolbar-actions { width: 100%; justify-content: space-between; }
  .document-open-link { min-height: 42px; flex: 1; }
  .drive-frame { height: max(72dvh, 620px); min-height: 620px; }
  .drive-frame.is-locked { height: 620px; }
  .drive-frame.is-locked iframe { height: 480px; }
  .document-lock { inset: 390px 0 0; padding: 28px 18px; }
  .side-card { padding: 20px; border-radius: 20px; }
  .payment-tabs button { min-height: 44px; }
  .bank-details div { grid-template-columns: 70px minmax(0, 1fr); }
  .payment-report-form .home-cta { min-height: 50px; }
  .receipt-field input[type=file] { font-size: 14px; }
}

@media (max-width: 430px) {
  .portal-brand strong { max-width: 46vw; }
  .project-hero-card h1 { font-size: 29px; }
  .project-hero-card .status-pill { align-self: flex-start; }
  .document-toolbar-actions { align-items: stretch; }
  .document-toolbar-actions > span { align-self: center; font-size: 12px; }
  .drive-frame { height: 75dvh; min-height: 560px; }
  .drive-frame.is-locked { height: 590px; }
  .bank-details div { grid-template-columns: 62px minmax(0, 1fr); padding-inline: 12px; }
}
.portfolio-note{margin:18px 0 0;color:#647892;font-size:14px;line-height:1.6;text-align:center}
.portfolio-media img{cursor:zoom-in;transition:transform .2s ease,filter .2s ease}.portfolio-media img:hover,.portfolio-media img:focus{transform:scale(1.02);filter:brightness(1.04);outline:3px solid #2c70d8;outline-offset:3px}.lightbox-open{overflow:hidden}.portfolio-lightbox{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}.portfolio-lightbox[hidden]{display:none}.portfolio-lightbox-backdrop{position:absolute;inset:0;background:rgba(8,24,54,.82);backdrop-filter:blur(5px)}.portfolio-lightbox-dialog{position:relative;z-index:1;width:min(1100px,100%);max-height:calc(100vh - 40px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#f8fbff;border:1px solid #c9d9ef;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.3);overflow:hidden}.lightbox-close{position:absolute;right:16px;top:14px;z-index:2;width:42px;height:42px;border:1px solid #c7d8ee;border-radius:50%;background:#fff;color:#123263;font-size:28px;line-height:1;cursor:pointer}.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 70px 16px 24px;border-bottom:1px solid #dbe6f4}.lightbox-toolbar h2{margin:3px 0;font-size:clamp(20px,3vw,30px);color:#102957}.lightbox-toolbar p:last-child{margin:4px 0 0;color:#6b7e98}.lightbox-tools{display:flex;gap:8px}.lightbox-tools button,.lightbox-navigation button{border:1px solid #c5d8ee;border-radius:9px;background:#fff;color:#155bc3;padding:9px 13px;font-weight:700;cursor:pointer}.lightbox-tools button:hover,.lightbox-navigation button:hover{background:#eaf3ff}.lightbox-stage{min-height:320px;display:grid;place-items:center;overflow:hidden;background:#e8f0fa;cursor:grab;touch-action:none}.lightbox-stage:active{cursor:grabbing}.lightbox-stage img{max-width:92%;max-height:calc(100vh - 240px);object-fit:contain;user-select:none;transform-origin:center;transition:transform .18s ease}.lightbox-navigation{display:flex;justify-content:space-between;padding:14px 20px;background:#fff;border-top:1px solid #dbe6f4}@media(max-width:600px){.portfolio-lightbox{padding:8px}.portfolio-lightbox-dialog{max-height:calc(100vh - 16px);border-radius:12px}.lightbox-toolbar{padding:18px 58px 12px 16px;align-items:flex-start}.lightbox-tools{position:absolute;left:16px;bottom:62px}.lightbox-stage{min-height:260px}.lightbox-stage img{max-width:98%;max-height:calc(100vh - 210px)}.lightbox-navigation{padding:12px}.lightbox-navigation button{font-size:13px}}
