.cloud-main{max-width:1200px;margin:0 auto;padding:3rem 1.5rem 6rem}.google-sign-in{display:flex;min-height:54px;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;padding:12px 19px;border:0;border-radius:10px;background:linear-gradient(135deg,#07599c,#003663);color:#fff;font-size:1rem;font-weight:800;text-decoration:none}.google-sign-in:hover{background:#075b9d}.google-mark{display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:#fff;color:#4285f4;font-weight:900}.login-card #auth-message{margin-top:12px;color:#b42318;font-size:.82rem}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:3rem 0 1rem}.section-heading h2{margin:.2rem 0}.class-grid{display:grid;gap:1.25rem}.cloud-class{background:#fff;border:1px solid #dbe4e8;border-radius:18px;padding:1.4rem;box-shadow:0 8px 30px rgba(24,48,64,.06)}.class-head{display:flex;justify-content:space-between;gap:1rem;align-items:start}.class-head h3{font-size:1.45rem;margin:0}.class-actions{display:flex;gap:.5rem;flex-wrap:wrap}.member-form{display:grid;grid-template-columns:1fr auto;gap:.6rem;margin:1rem 0}.member-form textarea{min-height:70px}.member-list{display:grid;gap:.45rem;margin:1rem 0}.member{display:flex;justify-content:space-between;align-items:center;background:#f3f7f8;border-radius:10px;padding:.55rem .7rem}.member small{color:#60727b}.unit-list{display:grid;gap:.8rem;margin-top:1.25rem}.cloud-unit{border-top:1px solid #e2e9ec;padding-top:.9rem}.unit-title{display:flex;justify-content:space-between;align-items:center}.assignment-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 0}.empty-card{color:#667780;border:1px dashed #bdcbd1;border-radius:14px;padding:1.5rem}.turnstile{min-height:65px;margin:.75rem 0}@media(max-width:760px){.member-form{grid-template-columns:1fr}.class-head{display:block}.class-actions{margin-top:.75rem}}

/* The account portal uses light surfaces, independently of the review studio. */
body.cloud-portal {
  color-scheme: light;
  --bg: #f4f7fb;
  --panel: #ffffff;
  --soft: #e9f1f8;
  --line: #9aafc0;
  --text: #17324d;
  --muted: #52677b;
  --mint: #075b9d;
  --mint-ink: #ffffff;
  --warm: #075b9d;
  --danger: #b42318;
}
.cloud-portal .portal-topbar { min-height: 68px; background: #fff; border-bottom-color: #dbe4ed; }
.cloud-portal .brand-mark { border-color: #9aafc0; }
.cloud-portal button, .cloud-portal .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  font-weight: 600;
}
.cloud-portal button:hover, .cloud-portal .button:hover {
  background: #dbeaf6;
  border-color: #075b9d;
  color: #17324d;
}
.cloud-portal button.primary, .cloud-portal .button,
.cloud-portal form button:not([type="button"]) {
  background: #075b9d;
  border-color: #075b9d;
  color: #fff;
}
.cloud-portal button.primary:hover, .cloud-portal .button:hover,
.cloud-portal form button:not([type="button"]):hover {
  background: #034678;
  border-color: #034678;
  color: #fff;
}
.cloud-portal button.secondary, .cloud-portal .button.secondary,
.cloud-portal button.quiet, .cloud-portal button[data-close], .cloud-portal #logout {
  background: #fff;
  border-color: #8ba3b7;
  color: #174d76;
}
.cloud-portal button.secondary:hover, .cloud-portal .button.secondary:hover,
.cloud-portal button.quiet:hover, .cloud-portal button[data-close]:hover, .cloud-portal #logout:hover {
  background: #e9f1f8;
  border-color: #075b9d;
  color: #123d5e;
}
.cloud-portal button.quiet.danger { border-color: #c6847e; color: #b42318; }
.cloud-portal button.quiet.danger:hover { background: #fff0ee; border-color: #b42318; color: #8f1c13; }
.cloud-portal button:disabled, .cloud-portal form button:disabled { opacity: 1; background: #e2e8ee; border-color: #9aafc0; color: #52677b; cursor: not-allowed; }
.cloud-portal input, .cloud-portal select, .cloud-portal textarea { background: #fff; }
.cloud-portal input::placeholder, .cloud-portal textarea::placeholder { color: #52677b; opacity: 1; }
.cloud-portal dialog { border-color: #9aafc0; }
.cloud-portal dialog::backdrop { background: #102c48a6; }
.cloud-portal .status.error { color: #b42318; }
.cloud-portal #message.error { background: #fff0ee; border: 1px solid #b42318; color: #8f1c13; }
.cloud-portal .cloud-class { color: var(--text); }
.cloud-portal .class-head > div:first-child, .cloud-portal .assignment-row > div, .cloud-portal .member > span { min-width: 0; overflow-wrap: anywhere; }
.cloud-portal .class-head small, .cloud-portal .assignment-row p { color: var(--muted); }
.cloud-portal .assignment-row .button, .cloud-portal .member button { flex-shrink: 0; }
.cloud-portal .member-form { align-items: end; }
.cloud-portal .unit-title { gap: 1rem; }
.cloud-portal .unit-title h4 { min-width: 0; overflow-wrap: anywhere; }
.cloud-portal .unit-title button { flex-shrink: 0; }
.cloud-portal .heading h1 { font-size: clamp(1.65rem, 3vw, 2.2rem); font-weight: 650; }
.cloud-portal .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.participating-class > .hierarchy-summary { font-size: 1.25rem; }
.hierarchy-summary { display: flex; align-items: center; gap: .75rem; min-height: 48px; cursor: pointer; list-style: none; border-radius: 8px; padding: .5rem; }
.hierarchy-summary::-webkit-details-marker { display: none; }
.hierarchy-summary::before { content: '›'; flex: none; width: 1rem; color: #075b9d; font-size: 1.5rem; line-height: 1; text-align: center; }
details[open] > .hierarchy-summary::before { transform: rotate(90deg); }
.hierarchy-summary:hover { background: #e9f1f8; }
.hierarchy-summary:focus-visible { outline: 3px solid #075b9d; outline-offset: 3px; }
.hierarchy-heading { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.hierarchy-heading .eyebrow { margin: 0 0 .2rem; }
.hierarchy-heading { margin: 0; }
h3.hierarchy-heading { font-size: 1.35rem; }
h4.hierarchy-heading { font-size: 1.05rem; }
.hierarchy-count { flex: none; color: var(--muted); font-size: .8rem; }
.participating-units, .participating-assignments { list-style: none; margin: .75rem 0 0 1rem; padding: 0 0 0 1rem; border-left: 2px solid #b7ccdf; }
.participating-units > li + li { margin-top: 1rem; }
.participating-unit { padding: .5rem; border: 1px solid #dbe4ed; border-radius: 12px; background: #f7fafd; }
.participating-assignments { margin-bottom: .5rem; }
.cloud-portal .participating-assignments .assignment-row { padding: .85rem; background: #fff; border: 1px solid #dbe4ed; border-radius: 9px; }
.participating-assignments .assignment-row + .assignment-row { margin-top: .6rem; }
.participating-class .empty-card { margin: .75rem .5rem; font-size: .9rem; }
@media (max-width: 760px) {
  .participating-units, .participating-assignments { margin-left: .25rem; padding-left: .65rem; }
  .hierarchy-summary { flex-wrap: wrap; gap: .5rem; }
  .hierarchy-count { margin-left: auto; }
  .cloud-portal:not(.landing-mode) .cloud-main { padding: 2rem 1rem 4rem; }
  .cloud-portal .cloud-class { padding: 1rem; }
  .cloud-portal .assignment-row { align-items: stretch; flex-direction: column; gap: .5rem; }
  .cloud-portal .unit-title { align-items: flex-start; flex-wrap: wrap; }
  .cloud-portal .member { gap: .75rem; flex-wrap: wrap; }
  .cloud-portal .heading-actions, .cloud-portal .class-actions { flex-wrap: wrap; }
  .cloud-portal .account-actions .button, .cloud-portal .account-actions button { min-height: 44px; }
}
