:root{
  --portal-surface:#ffffffd9;
  --portal-surface-strong:#fff;
  --portal-border:#dbe7e1;
  --portal-shadow:0 18px 45px rgba(20,54,46,.08);
  --portal-shadow-soft:0 10px 24px rgba(15,23,42,.06);
  --portal-accent:#173f35;
  --portal-accent-2:#24594a;
  --portal-sub:#61736c;
}
body.theme-saas-portal{background:linear-gradient(180deg,#f6fbf8 0%,#f2f7f5 42%,#eef4fb 100%);color:#16322b}
body.theme-saas-portal .portal-header{
  position:sticky;top:0;z-index:10;
  min-height:72px;padding:10px 16px;
  background:rgba(23,63,53,.88);
  backdrop-filter:blur(18px);
  box-shadow:0 10px 30px rgba(23,63,53,.18)
}
body.theme-saas-portal .portal-brand{gap:6px;width:min(156px,34vw)}
body.theme-saas-portal .portal-brand img{max-height:32px}
body.theme-saas-portal .portal-brand small{font-size:.63rem;letter-spacing:.14em;color:#d9e9e4;text-transform:uppercase}
body.theme-saas-portal .company-pill{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);padding:7px 12px;font-size:.72rem;backdrop-filter:blur(8px)}
body.theme-saas-portal .portal-main{width:min(880px,calc(100% - 32px));margin:26px auto 104px}
body.theme-saas-portal .welcome-saas-card,
body.theme-saas-portal .panel,
body.theme-saas-portal .hero-card,
body.theme-saas-portal .thread-list a,
body.theme-saas-portal .action-card{background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.9));border:1px solid var(--portal-border);box-shadow:var(--portal-shadow);border-radius:26px}
body.theme-saas-portal .welcome-saas-card{
  background:
    radial-gradient(circle at top right,rgba(95,116,255,.1),transparent 28%),
    radial-gradient(circle at bottom left,rgba(23,63,53,.08),transparent 26%),
    linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.92));
}
body.theme-saas-portal .eyebrow{font-size:.74rem;font-weight:800;letter-spacing:.16em;color:#4c806f;text-transform:uppercase}
body.theme-saas-portal .welcome h1,
body.theme-saas-portal .hero-card h1{font-size:clamp(1.3rem,3vw,1.85rem);letter-spacing:-.03em;color:#12342c}
body.theme-saas-portal .welcome p{color:#5a6d66;line-height:1.8}
body.theme-saas-portal .portal-shortcuts{margin-bottom:20px}
body.theme-saas-portal .action-card-saas{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:16px;padding:22px 22px;text-decoration:none;color:inherit}
body.theme-saas-portal .action-card-saas .action-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,#173f35,#2f6a59);color:#fff;font-size:1.75rem;box-shadow:0 16px 28px rgba(23,63,53,.16)}
body.theme-saas-portal .action-card-saas strong{display:flex;align-items:center;gap:8px;font-size:1.12rem;color:#16322b;line-height:1.35}
body.theme-saas-portal .action-card-saas small{display:block;margin-top:4px;color:#61736c;line-height:1.7}
body.theme-saas-portal .panel-saas{padding:26px}
body.theme-saas-portal .panel-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:8px}
body.theme-saas-portal .panel-head h2{margin:.15em 0 0;color:#16322b;font-size:1.32rem;letter-spacing:-.03em}
body.theme-saas-portal .panel-head-badge{display:inline-grid;place-items:center;min-width:48px;height:36px;padding:0 12px;border-radius:999px;background:#eef5f2;color:#245345;font-weight:800;font-size:.85rem}
body.theme-saas-portal .announcement-row{padding:16px 10px;border-top:1px solid #e4ede9;color:#15342d}
body.theme-saas-portal .announcement-row:hover,body.theme-saas-portal .announcement-row:focus-visible{background:#f8fcfa}
body.theme-saas-portal .announcement-row strong{font-size:1rem;line-height:1.45}
body.theme-saas-portal .announcement-row small{color:#71847d}
body.theme-saas-portal .announcement-row>b{font-size:1.8rem;color:#7f948d}
body.theme-saas-portal .thread-list a{padding:20px}
body.theme-saas-portal input,
body.theme-saas-portal textarea,
body.theme-saas-portal select{border-radius:16px;border-color:#d3dfd9;background:rgba(255,255,255,.95)}
body.theme-saas-portal input:focus,
body.theme-saas-portal textarea:focus,
body.theme-saas-portal select:focus{outline:3px solid rgba(79,70,229,.12);border-color:#6d61ff}
body.theme-saas-portal .primary,
body.theme-saas-portal .chat-send,
body.theme-saas-portal .bottom-nav button{border-radius:16px;background:linear-gradient(135deg,#173f35,#27584b);box-shadow:0 12px 24px rgba(23,63,53,.16)}
body.theme-saas-portal .primary:hover,
body.theme-saas-portal .chat-send:hover{transform:translateY(-1px)}
body.theme-saas-portal .personal-chat{background:linear-gradient(180deg,#e8f1ee,#edf4f1);border:1px solid #dbe7e1;box-shadow:var(--portal-shadow);border-radius:28px;overflow:hidden}
body.theme-saas-portal .chat-partner{background:rgba(255,255,255,.9);backdrop-filter:blur(8px);padding:14px 18px}
body.theme-saas-portal .chat-partner-icon{background:linear-gradient(135deg,#173f35,#2f6a59);box-shadow:0 10px 18px rgba(23,63,53,.15)}
body.theme-saas-portal .chat-timeline{padding:20px 16px 14px}
body.theme-saas-portal .bubble{box-shadow:0 8px 16px rgba(15,23,42,.05);border-radius:20px}
body.theme-saas-portal .mine .bubble{background:#dff4e8}
body.theme-saas-portal .line-composer{padding:12px 14px 14px;background:rgba(255,255,255,.86);backdrop-filter:blur(8px)}
body.theme-saas-portal .line-composer textarea{border-radius:22px;background:#f7faf9}
body.theme-saas-portal .bottom-nav{
  left:50%;transform:translateX(-50%);bottom:12px;width:min(760px,calc(100% - 24px));
  border:1px solid #dce6e2;border-radius:22px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);
  box-shadow:0 18px 35px rgba(15,23,42,.08);padding:8px
}
body.theme-saas-portal .bottom-nav a,
body.theme-saas-portal .bottom-nav form,
body.theme-saas-portal .bottom-nav button{border-radius:16px;min-height:48px}
body.theme-saas-portal .bottom-nav a:hover,
body.theme-saas-portal .bottom-nav button:hover{background:#f3f8f5}
body.theme-saas-portal .portal-notification-button{background:#ffffff1c;border-color:#ffffff36;box-shadow:0 10px 20px rgba(0,0,0,.08)}
body.theme-saas-portal .flash{border-radius:18px;box-shadow:var(--portal-shadow-soft)}
@media(max-width:640px){
  body.theme-saas-portal .portal-main{width:calc(100% - 20px);margin:16px auto 92px}
  body.theme-saas-portal .welcome-saas-card,
  body.theme-saas-portal .panel,
  body.theme-saas-portal .action-card,
  body.theme-saas-portal .thread-list a{border-radius:22px}
  body.theme-saas-portal .action-card-saas{grid-template-columns:1fr;justify-items:start}
  body.theme-saas-portal .action-card-saas .action-icon{width:58px;height:58px}
  body.theme-saas-portal .panel-head{align-items:flex-start;flex-direction:column}
  body.theme-saas-portal .bottom-nav{bottom:8px;width:calc(100% - 16px)}
}
@media(max-width:520px){
  body.theme-saas-portal .portal-header{min-height:60px;padding:7px 12px}
  body.theme-saas-portal .portal-brand{width:112px;gap:2px}
  body.theme-saas-portal .portal-brand img{max-height:28px}
  body.theme-saas-portal .portal-brand small{font-size:.54rem}
  body.theme-saas-portal .company-pill{display:none}
  body.theme-saas-portal .personal-chat{border-radius:22px}
}


/* v0.1.40: prevent the bottom-nav primary button rule from painting logout green. */
body.theme-saas-portal .bottom-nav .portal-logout-button{
  background:transparent;
  color:#b91c1c;
  border:0;
  box-shadow:none;
}
body.theme-saas-portal .bottom-nav .portal-logout-button:hover{
  background:#fff1f2;
  color:#991b1b;
  box-shadow:none;
}

/* v0.1.42: unify portal card spacing and typography rhythm. */
body.theme-saas-portal{
  --portal-card-padding:26px;
  --portal-card-gap:20px;
  --portal-copy-line-height:1.85;
}
body.theme-saas-portal .portal-main > .welcome-saas-card,
body.theme-saas-portal .portal-main > .portal-shortcuts > .action-card-saas,
body.theme-saas-portal .portal-main > .panel-saas,
body.theme-saas-portal .portal-main > .hero-card,
body.theme-saas-portal .portal-main > .announcement-detail.panel{
  padding:var(--portal-card-padding);
}
body.theme-saas-portal .portal-main > .welcome-saas-card{
  margin:0 0 var(--portal-card-gap);
}
body.theme-saas-portal .portal-main > .portal-shortcuts{
  margin:0 0 var(--portal-card-gap);
}
body.theme-saas-portal .portal-main > .panel-saas{
  margin:0 0 var(--portal-card-gap);
}
body.theme-saas-portal .welcome-saas-card .eyebrow,
body.theme-saas-portal .panel-saas .eyebrow,
body.theme-saas-portal .hero-card .eyebrow{
  margin:0 0 14px;
  line-height:1.35;
}
body.theme-saas-portal .welcome-saas-card h1,
body.theme-saas-portal .hero-card h1{
  margin:0 0 16px;
  line-height:1.45;
}
body.theme-saas-portal .welcome-saas-card > p:last-child,
body.theme-saas-portal .hero-card > p,
body.theme-saas-portal .action-card-saas small,
body.theme-saas-portal .panel-saas .muted,
body.theme-saas-portal .announcement-body{
  line-height:var(--portal-copy-line-height);
}
body.theme-saas-portal .welcome-saas-card > p:last-child,
body.theme-saas-portal .hero-card > p:last-of-type,
body.theme-saas-portal .panel-saas > .muted{
  margin-bottom:0;
}
body.theme-saas-portal .action-card-saas{
  gap:14px;
}
body.theme-saas-portal .action-card-saas strong{
  line-height:1.45;
}
body.theme-saas-portal .action-card-saas small{
  margin-top:0;
}
body.theme-saas-portal .panel-head{
  margin-bottom:14px;
}
body.theme-saas-portal .panel-head h2{
  line-height:1.4;
}
body.theme-saas-portal .announcement-row{
  line-height:1.6;
}
@media(max-width:640px){
  body.theme-saas-portal{
    --portal-card-padding:24px;
    --portal-card-gap:18px;
  }
  body.theme-saas-portal .portal-main > .welcome-saas-card,
  body.theme-saas-portal .portal-main > .portal-shortcuts > .action-card-saas,
  body.theme-saas-portal .portal-main > .panel-saas,
  body.theme-saas-portal .portal-main > .hero-card,
  body.theme-saas-portal .portal-main > .announcement-detail.panel{
    padding:var(--portal-card-padding);
  }
}

/* v0.1.43: fix outer card gutters; v0.1.42 accidentally reset horizontal auto margins. */
body.theme-saas-portal{
  --portal-page-gutter:clamp(18px,5.8vw,24px);
}
body.theme-saas-portal .portal-main > .welcome-saas-card,
body.theme-saas-portal .portal-main > .portal-shortcuts,
body.theme-saas-portal .portal-main > .panel-saas{
  margin-left:auto;
  margin-right:auto;
}
@media(max-width:640px){
  body.theme-saas-portal .portal-main{
    width:100%;
    padding-left:var(--portal-page-gutter);
    padding-right:var(--portal-page-gutter);
    margin-top:16px;
    margin-bottom:92px;
  }
  body.theme-saas-portal .portal-main > .welcome,
  body.theme-saas-portal .portal-main > .portal-grid,
  body.theme-saas-portal .portal-main > .panel,
  body.theme-saas-portal .portal-main > .hero-card,
  body.theme-saas-portal .portal-main > .personal-chat,
  body.theme-saas-portal .portal-main > .flash{
    width:100%;
    margin-left:0;
    margin-right:0;
  }
  body.theme-saas-portal .portal-main > .welcome-saas-card,
  body.theme-saas-portal .portal-main > .portal-shortcuts,
  body.theme-saas-portal .portal-main > .panel-saas{
    margin-left:0;
    margin-right:0;
  }
  body.theme-saas-portal .portal-main > .hero-card{
    margin-left:0;
    margin-right:0;
  }
  body.theme-saas-portal .portal-main > .personal-chat{
    margin-left:0;
    margin-right:0;
  }
}

/* v0.1.62 AI support refinements */
body.theme-saas-portal .portal-ai-concierge,body.theme-saas-portal .portal-ai-hero,body.theme-saas-portal .portal-ai-chat,body.theme-saas-portal .portal-ai-handoff{border:1px solid var(--portal-border);box-shadow:var(--portal-shadow);border-radius:28px}
body.theme-saas-portal .portal-ai-chat{background:#fff}
body.theme-saas-portal .portal-ai-handoff{background:linear-gradient(135deg,#f5faf8,#fff)}

/* v0.1.63: compact header logout action. */
body.theme-saas-portal .portal-header-logout{background:#ffffff1c;border-color:#ffffff36;box-shadow:0 10px 20px rgba(0,0,0,.08)}
body.theme-saas-portal .portal-header-logout:hover,body.theme-saas-portal .portal-header-logout:focus-visible{background:#ffffff2b}

/* v0.1.64: compact floating three-tab navigation. */
body.theme-saas-portal .bottom-nav{
  width:min(540px,calc(100% - 24px));
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  padding:7px 8px calc(7px + env(safe-area-inset-bottom));
  border-radius:24px;
}
body.theme-saas-portal .bottom-nav .bottom-nav-item{min-height:60px;border-radius:17px}
body.theme-saas-portal .bottom-nav .bottom-nav-item:hover,
body.theme-saas-portal .bottom-nav .bottom-nav-item:focus-visible{background:#f0f6f3}
body.theme-saas-portal .bottom-nav .bottom-nav-item.is-active{background:linear-gradient(180deg,#edf7f2,#e5f1eb);color:#173f35;box-shadow:inset 0 0 0 1px rgba(36,89,74,.06)}
@media(max-width:640px){body.theme-saas-portal .bottom-nav{width:calc(100% - 16px);gap:4px}}
