@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap");


:root {
  --ink: #090909;
  --ink-soft: #343434;
  --paper: #f4f2ed;
  --line: #d9d9d7;
  --muted: #666663;
  --blue: #090909;
  --blue-dark: #343434;
  --sky: #e8e8e5;
  --white: #ffffff;
  --danger: #b42318;
}

* { box-sizing: border-box; }
html { background: var(--paper); }
body { margin: 0; min-width: 320px; background: linear-gradient(135deg, #ffffff 0, var(--paper) 52%, #e7e6e1 100%); color: var(--ink); font-family: "Montserrat", Arial, Helvetica, sans-serif; font-size: 16px; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }

.hub-shell { min-height: 100vh; background: linear-gradient(135deg, #fff 0, var(--paper) 52%, #e7e6e1 100%); color: var(--ink); font-family: "Montserrat", Arial, Helvetica, sans-serif; }
.hub-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 80px; padding: 18px max(28px, calc((100vw - 1320px) / 2 + 28px)); background: #ffffffeb; border-bottom: 1px solid var(--line); }
.hub-wordmark { display: flex; align-items: center; gap: 12px; font-size: 1.15rem; letter-spacing: -.035em; }
.hub-wordmark strong { color: var(--ink); font-weight: 800; }
.hub-logo { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; background: var(--ink); color: white; }
.hub-account { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.hub-user { display: flex; align-items: center; gap: 9px; color: var(--ink-soft); font-size: .875rem; font-weight: 600; margin-right: 8px; }
.hub-avatar { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--sky); font-size: .75rem; font-weight: 800; }
.hub-account button { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--ink-soft); font-size: .875rem; font-weight: 700; }
.hub-account button:hover { border-color: #a8a8a4; background: #fafaf8; }
.hub-content { max-width: 1320px; margin: auto; padding: 38px 28px 64px; }
.hub-intro { margin-bottom: 24px; }
.hub-intro .eyebrow { color: var(--muted); font-size: .75rem; }
.hub-content h1 { font-size: clamp(1.55rem, 2.3vw, 2rem); line-height: 1.2; margin: 0; letter-spacing: -.04em; }
.hub-tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; max-width: 1080px; }
.hub-tool { display: grid; grid-template-columns: 46px minmax(0, 1fr); align-content: start; gap: 0 16px; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: #ffffffed; color: inherit; text-decoration: none; box-shadow: 0 8px 22px #25394d08; transition: border-color .15s, box-shadow .15s, transform .15s; }
.hub-tool:hover { border-color: #8d8d89; box-shadow: 0 12px 26px #0909090d; transform: translateY(-2px); }
.hub-tool-icon { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--line); border-radius: 12px; background: #fafaf8; color: var(--ink); }
.hub-tool-copy { display: block; min-width: 0; }
.hub-tool h2 { font-size: 1.0625rem; font-weight: 800; line-height: 1.4; letter-spacing: -.025em; margin: 1px 0 7px; }
.hub-tool p { color: var(--muted); font-size: .875rem; line-height: 1.6; margin: 0; max-width: 36ch; }
.hub-tool-action { grid-column: 1 / -1; border-top: 1px solid #e8e8e5; padding-top: 13px; margin-top: 19px; color: var(--ink-soft); font-size: .875rem; font-weight: 700; }
.hub-tool:hover .hub-tool-action { color: var(--ink); }
.hub-tool-disabled { background: #fafaf8; box-shadow: none; color: var(--muted); }
.hub-tool-disabled:hover { transform: none; border-color: var(--line); box-shadow: none; }
.hub-shell button:focus-visible, .hub-tool:focus-visible { outline: 3px solid var(--ink-soft); outline-offset: 4px; }
@media(max-width: 760px) { .hub-header { align-items: flex-start; flex-direction: column; gap: 16px; padding: 20px 16px; }.hub-account { width: 100%; }.hub-user { margin-right: auto; }.hub-content { padding: 28px 16px 48px; }.hub-tools { grid-template-columns: 1fr; }.hub-tool { padding: 20px; } }
@media(max-width: 420px) { .hub-user { width: 100%; margin-bottom: 4px; }.hub-tool { gap: 0 12px; } }
@media(prefers-reduced-motion: reduce) { .hub-tool { transition: none; }.hub-tool:hover { transform: none; } }
@media print { .hub-shell { display: none; } }

/* Room for the personal meetings module in the current Hub layout. */
.hub-tools{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
/* DPTO mobile application */
.hub-logo { overflow: hidden; border: 0; }
.hub-logo img { display: block; width: 100%; height: 100%; }
.hub-subtitle { margin: 10px 0 0; font-size: .875rem; color: var(--muted); }
.hub-tool-action { display: flex; align-items: center; justify-content: space-between; }
.hub-install-link { display: flex; align-items: center; gap: 13px; max-width: 380px; margin-top: 32px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: #ffffffb8; color: var(--ink); font-size: .875rem; font-weight: 700; text-decoration: none; }
.hub-install-link span { flex: 1; }
.hub-install-link small { display: block; margin-top: 4px; font-size: .75rem; font-weight: 500; color: var(--muted); }
html[data-app="installed"] .hub-install-link { display: none; }

html{line-height:1.5;-webkit-text-size-adjust:100%}h1,h2,p{margin-top:0}a{color:inherit;text-decoration:inherit}svg{display:block;vertical-align:middle}img{display:block;max-width:100%}.eyebrow{margin:0 0 7px;font-size:.75rem;font-weight:800;letter-spacing:.16em}.hub-shell{min-height:calc(100vh - 40px)}
.rsvp-brand-bar{background:#050505;color:#fff;font-family:"Montserrat",Arial,sans-serif;width:100%}
.rsvp-brand-inner{max-width:1240px;margin:0 auto;height:40px;padding:9px 20px;display:flex;align-items:center;gap:16px}
.rsvp-brand-logo{display:flex;align-items:center;flex-shrink:0;height:22px}
.rsvp-brand-logo img{display:block;width:auto;height:22px;filter:invert(1);mix-blend-mode:screen}
.rsvp-brand-logo:focus-visible{outline:3px solid #fff;outline-offset:5px;border-radius:4px}
.rsvp-brand-tagline{margin:0;padding-left:16px;border-left:1px solid #444;flex:1;min-width:0;font-size:.75rem;line-height:1.2;color:#fff}
.rsvp-brand-module{padding:2px 6px;border:1px solid #555;border-radius:4px;font-size:.625rem;white-space:nowrap}
@media(max-width:600px){.rsvp-brand-inner{padding:9px 8px;gap:8px}.rsvp-brand-tagline{padding-left:8px;font-size:.625rem;line-height:1.1}.rsvp-brand-module{padding:2px 4px;font-size:.5625rem}}
