/* glupix.com – Material Design 3 (Material You) Design System */
/* ============================================================
   Google Fonts: Google Sans Display + Roboto loaded in PHP pages
   Color palette: MD3 blue/indigo tonal palette
   Tokens follow MD3 naming conventions
   ============================================================ */

/* ── Google Fonts import (also declared in PHP <head>) ────── */
@import url('https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;700&family=Google+Sans+Display:wght@400;500;700&family=Roboto:wght@300;400;500;700&display=swap');

/* ── MD3 Color Tokens ─────────────────────────────────────── */
:root {
    /* Primary – Blue 600 tonal */
    --md-primary:             #1a73e8;
    --md-on-primary:          #ffffff;
    --md-primary-container:   #d3e3fd;
    --md-on-primary-container:#041e49;

    /* Secondary – Indigo */
    --md-secondary:           #4a5568;
    --md-on-secondary:        #ffffff;
    --md-secondary-container: #e8eaf6;
    --md-on-secondary-container: #1a237e;

    /* Tertiary – Teal */
    --md-tertiary:            #00897b;
    --md-on-tertiary:         #ffffff;
    --md-tertiary-container:  #b2dfdb;

    /* Error */
    --md-error:               #b3261e;
    --md-on-error:            #ffffff;
    --md-error-container:     #f9dedc;
    --md-on-error-container:  #410e0b;

    /* Success */
    --md-success:             #137333;
    --md-success-container:   #e6f4ea;

    /* Surface */
    --md-surface:             #fafafa;
    --md-surface-1:           #f0f4ff;  /* surface + primary@5% */
    --md-surface-2:           #e8f0fe;  /* surface + primary@8% */
    --md-surface-3:           #e1ebfe;
    --md-on-surface:          #1c1b1f;
    --md-on-surface-variant:  #49454f;
    --md-surface-variant:     #e7e0ec;
    --md-outline:             #79747e;
    --md-outline-variant:     #cac4d0;

    /* Background */
    --md-background:          #f8f9fa;
    --md-on-background:       #1c1b1f;

    /* Inverse */
    --md-inverse-surface:     #313033;
    --md-inverse-on-surface:  #f4eff4;
    --md-inverse-primary:     #a8c7fa;

    /* Scrim & Shadow */
    --md-scrim:               rgba(0,0,0,.38);
    --md-shadow:              0 1px 2px rgba(0,0,0,.3), 0 1px 3px 1px rgba(0,0,0,.15);
    --md-shadow-2:            0 1px 2px rgba(0,0,0,.3), 0 2px 6px 2px rgba(0,0,0,.15);
    --md-shadow-3:            0 4px 8px 3px rgba(0,0,0,.15), 0 1px 3px rgba(0,0,0,.3);
    --md-shadow-4:            0 6px 10px 4px rgba(0,0,0,.15), 0 2px 3px rgba(0,0,0,.3);
    --md-shadow-5:            0 8px 12px 6px rgba(0,0,0,.15), 0 4px 4px rgba(0,0,0,.3);

    /* Shape – MD3 shape scale */
    --md-shape-none:          0;
    --md-shape-xs:            4px;
    --md-shape-sm:            8px;
    --md-shape-md:            12px;
    --md-shape-lg:            16px;
    --md-shape-xl:            28px;
    --md-shape-full:          9999px;

    /* Legacy aliases for existing PHP templates */
    --bg:                     var(--md-background);
    --card:                   var(--md-surface);
    --stroke:                 var(--md-outline-variant);
    --text:                   var(--md-on-surface);
    --muted:                  var(--md-on-surface-variant);
    --primary:                var(--md-primary);
    --primary-dark:           #1557b0;
    --accent:                 var(--md-tertiary);
    --dark:                   var(--md-inverse-surface);
    --success:                var(--md-success);
    --danger:                 var(--md-error);
    --shadow:                 var(--md-shadow-3);
    --shadow-sm:              var(--md-shadow-2);
    --radius:                 var(--md-shape-xl);
    --radius-sm:              var(--md-shape-lg);
    --radius-xs:              var(--md-shape-md);
    --container:              1200px;
    --share-theme:            var(--md-primary);
    --share-theme-light:      var(--md-primary-container);
    --inbox-sidebar-w:        360px;

    /* MD3 State layers */
    --md-state-hover-opacity:   0.08;
    --md-state-focus-opacity:   0.12;
    --md-state-pressed-opacity: 0.12;
    --md-state-dragged-opacity: 0.16;

    /* Transitions */
    --md-motion-standard:       cubic-bezier(0.2, 0, 0, 1);
    --md-motion-decelerate:     cubic-bezier(0, 0, 0, 1);
    --md-motion-accelerate:     cubic-bezier(0.3, 0, 1, 1);
    --md-duration-short1:       50ms;
    --md-duration-short2:       100ms;
    --md-duration-short3:       150ms;
    --md-duration-short4:       200ms;
    --md-duration-medium1:      250ms;
    --md-duration-medium2:      300ms;
    --md-duration-medium3:      350ms;
    --md-duration-medium4:      400ms;
    --md-duration-long1:        450ms;
    --md-duration-long2:        500ms;
}

/* ── Reset ───────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body {
    margin: 0; padding: 0;
    background: var(--md-background);
    color: var(--md-on-surface);
    font-family: 'Roboto', 'Google Sans', ui-sans-serif, system-ui, -apple-system, sans-serif;
    font-size: 14px;
    line-height: 1.6;
    min-height: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font-family: inherit; }

/* ── MD3 Typography Scale ─────────────────────────────────── */
.md-display-large   { font-family: 'Google Sans Display', 'Google Sans', sans-serif; font-size: 57px; line-height: 64px; letter-spacing: -.25px; font-weight: 400; }
.md-display-medium  { font-family: 'Google Sans Display', 'Google Sans', sans-serif; font-size: 45px; line-height: 52px; letter-spacing: 0;      font-weight: 400; }
.md-display-small   { font-family: 'Google Sans Display', 'Google Sans', sans-serif; font-size: 36px; line-height: 44px; letter-spacing: 0;      font-weight: 400; }
.md-headline-large  { font-family: 'Google Sans', sans-serif; font-size: 32px; line-height: 40px; letter-spacing: 0;      font-weight: 400; }
.md-headline-medium { font-family: 'Google Sans', sans-serif; font-size: 28px; line-height: 36px; letter-spacing: 0;      font-weight: 400; }
.md-headline-small  { font-family: 'Google Sans', sans-serif; font-size: 24px; line-height: 32px; letter-spacing: 0;      font-weight: 400; }
.md-title-large     { font-family: 'Google Sans', sans-serif; font-size: 22px; line-height: 28px; letter-spacing: 0;      font-weight: 400; }
.md-title-medium    { font-family: 'Google Sans', sans-serif; font-size: 16px; line-height: 24px; letter-spacing: .15px;  font-weight: 500; }
.md-title-small     { font-family: 'Google Sans', sans-serif; font-size: 14px; line-height: 20px; letter-spacing: .1px;   font-weight: 500; }
.md-body-large      { font-size: 16px; line-height: 24px; letter-spacing: .5px;  font-weight: 400; }
.md-body-medium     { font-size: 14px; line-height: 20px; letter-spacing: .25px; font-weight: 400; }
.md-body-small      { font-size: 12px; line-height: 16px; letter-spacing: .4px;  font-weight: 400; }
.md-label-large     { font-size: 14px; line-height: 20px; letter-spacing: .1px;  font-weight: 500; }
.md-label-medium    { font-size: 12px; line-height: 16px; letter-spacing: .5px;  font-weight: 500; }
.md-label-small     { font-size: 11px; line-height: 16px; letter-spacing: .5px;  font-weight: 500; }

/* ── Layout helpers ──────────────────────────────────────── */
.container {
    width: min(calc(100% - 32px), var(--container));
    margin: 0 auto;
}

/* ── MD3 Elevation (tonal + shadow) ──────────────────────── */
.md-elevation-0 { box-shadow: none; background: var(--md-surface); }
.md-elevation-1 { box-shadow: var(--md-shadow);   background: var(--md-surface-1); }
.md-elevation-2 { box-shadow: var(--md-shadow-2); background: var(--md-surface-2); }
.md-elevation-3 { box-shadow: var(--md-shadow-3); background: var(--md-surface-3); }
.md-elevation-4 { box-shadow: var(--md-shadow-4); background: var(--md-surface-3); }
.md-elevation-5 { box-shadow: var(--md-shadow-5); background: var(--md-surface-3); }

/* ── MD3 Filled Button ───────────────────────────────────── */
.btn {
    position: relative; overflow: hidden;
    border: 0; cursor: pointer;
    border-radius: var(--md-shape-full);
    padding: 0 24px; height: 40px;
    font-family: 'Google Sans', 'Roboto', sans-serif;
    font-size: 14px; font-weight: 500; letter-spacing: .1px;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    transition: box-shadow var(--md-duration-short4) var(--md-motion-standard);
    white-space: nowrap;
}
.btn::after {
    content: ''; position: absolute; inset: 0; border-radius: inherit;
    background: currentColor; opacity: 0;
    transition: opacity var(--md-duration-short2) var(--md-motion-standard);
}
.btn:hover::after  { opacity: var(--md-state-hover-opacity); }
.btn:active::after { opacity: var(--md-state-pressed-opacity); }
.btn:focus-visible { outline: 3px solid var(--md-primary); outline-offset: 2px; }
.btn:disabled { opacity: .38; pointer-events: none; }

.btn-primary   { color: var(--md-on-primary); background: var(--md-primary); box-shadow: var(--md-shadow); }
.btn-primary:hover { box-shadow: var(--md-shadow-2); }

.btn-tonal     { color: var(--md-on-primary-container); background: var(--md-primary-container); }
.btn-tonal:hover { box-shadow: var(--md-shadow); }

.btn-secondary {
    color: var(--md-primary); background: transparent;
    border: 1px solid var(--md-outline);
}
.btn-secondary:hover { background: rgba(26,115,232,.08); }

.btn-text {
    color: var(--md-primary); background: transparent; padding: 0 12px;
}
.btn-text:hover { background: rgba(26,115,232,.08); }

.btn-dark      { color: var(--md-inverse-on-surface); background: var(--md-inverse-surface); }
.btn-danger    { color: var(--md-on-error); background: var(--md-error); }

.btn-ghost {
    color: var(--md-on-surface-variant); background: transparent;
    border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-shape-sm);
    padding: 0 16px; height: 36px;
    font-family: 'Google Sans', sans-serif;
    font-size: 13px; font-weight: 500;
    display: inline-flex; align-items: center; gap: 6px;
    transition: background var(--md-duration-short4) var(--md-motion-standard);
    cursor: pointer;
}
.btn-ghost:hover { background: rgba(0,0,0,.08); }

.btn-small  { height: 36px; padding: 0 16px; font-size: 13px; }
.btn-block  { width: 100%; }
.btn-icon {
    width: 40px; height: 40px; padding: 0; border-radius: var(--md-shape-full);
    background: transparent; border: 0; cursor: pointer;
    color: var(--md-on-surface-variant);
    display: inline-flex; align-items: center; justify-content: center;
    transition: background var(--md-duration-short4) var(--md-motion-standard);
}
.btn-icon:hover { background: rgba(0,0,0,.08); }

/* ── MD3 Card ────────────────────────────────────────────── */
.card {
    border-radius: var(--md-shape-xl);
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    box-shadow: var(--md-shadow);
}
.card-filled {
    background: var(--md-surface-1);
    border: 0;
    border-radius: var(--md-shape-xl);
}
.card-outlined {
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-shape-xl);
    box-shadow: none;
}

/* ── MD3 Navigation Bar (Top App Bar) ────────────────────── */
.site-header {
    position: sticky; top: 0; z-index: 40;
    background: var(--md-surface-2);
    border-bottom: 1px solid var(--md-outline-variant);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    transition: box-shadow var(--md-duration-medium2) var(--md-motion-standard);
}
.site-header.scrolled { box-shadow: var(--md-shadow-2); }

.nav-row {
    display: flex; align-items: center; gap: 12px;
    justify-content: space-between;
    padding: 12px 0;
}

/* ── MD3 Brand ───────────────────────────────────────────── */
.brand {
    display: inline-flex; align-items: center; gap: 12px;
    text-decoration: none;
}
.brand img {
    height: 60px; border-radius: var(--md-shape-md);
    object-fit: cover;
}
.brand strong {
    display: block;
    font-family: 'Google Sans', sans-serif;
    font-size: 18px; font-weight: 700; letter-spacing: -.3px;
    color: var(--md-on-surface);
}
.brand small {
    display: block;
    color: var(--md-on-surface-variant);
    font-size: 11px; letter-spacing: .3px; margin-top: 1px;
}

/* ── MD3 Navigation links ────────────────────────────────── */
.top-nav {
    display: inline-flex; align-items: center; gap: 4px;
}
.top-nav a {
    padding: 8px 16px; border-radius: var(--md-shape-full);
    color: var(--md-on-surface-variant);
    font-family: 'Google Sans', sans-serif;
    font-size: 14px; font-weight: 500;
    transition: background var(--md-duration-short4) var(--md-motion-standard), color var(--md-duration-short4);
}
.top-nav a:hover { background: rgba(26,115,232,.08); color: var(--md-primary); }
.nav-cta {
    background: var(--md-primary-container);
    color: var(--md-on-primary-container) !important;
    font-weight: 600 !important;
}
.nav-cta:hover { background: rgba(211,227,253,.8) !important; }

/* ── MD3 Language Selector ───────────────────────────────── */
.lang-switch {
    position: relative;
    display: inline-flex; align-items: center; gap: 2px;
}
.lang-switch a {
    padding: 6px 12px; border-radius: var(--md-shape-full);
    color: var(--md-on-surface-variant);
    font-family: 'Google Sans', sans-serif;
    font-size: 13px; font-weight: 500; letter-spacing: .3px;
    transition: background var(--md-duration-short4) var(--md-motion-standard);
}
.lang-switch a:hover { background: rgba(0,0,0,.08); }
.lang-switch a.active {
    background: var(--md-primary-container);
    color: var(--md-on-primary-container);
    font-weight: 700;
}

/* ── MD3 Language Selector Dropdown Widget ───────────────── */
.lang-widget {
    position: relative; display: inline-block;
}
.lang-widget-trigger {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 6px 12px 6px 14px; border-radius: var(--md-shape-full);
    border: 1px solid var(--md-outline-variant);
    background: var(--md-surface);
    color: var(--md-on-surface);
    font-family: 'Google Sans', sans-serif;
    font-size: 13px; font-weight: 500;
    cursor: pointer;
    transition: background var(--md-duration-short4) var(--md-motion-standard),
                box-shadow var(--md-duration-short4);
    user-select: none;
}
.lang-widget-trigger:hover { background: var(--md-surface-1); box-shadow: var(--md-shadow); }
.lang-widget-trigger .lang-flag { font-size: 16px; }
.lang-widget-trigger .lang-chevron {
    width: 16px; height: 16px;
    transition: transform var(--md-duration-short4) var(--md-motion-standard);
}
.lang-widget-trigger[aria-expanded="true"] .lang-chevron { transform: rotate(180deg); }

.lang-widget-menu {
    position: absolute; top: calc(100% + 8px); right: 0;
    min-width: 180px;
    background: var(--md-surface);
    border-radius: var(--md-shape-lg);
    box-shadow: var(--md-shadow-3);
    border: 1px solid var(--md-outline-variant);
    padding: 8px 0;
    z-index: 100;
    opacity: 0; transform: scaleY(.92) translateY(-8px);
    transform-origin: top right;
    pointer-events: none;
    transition: opacity var(--md-duration-short4) var(--md-motion-decelerate),
                transform var(--md-duration-short4) var(--md-motion-decelerate);
}
.lang-widget-menu.open {
    opacity: 1; transform: scaleY(1) translateY(0);
    pointer-events: auto;
}
.lang-widget-menu a {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 16px;
    color: var(--md-on-surface);
    font-family: 'Google Sans', sans-serif;
    font-size: 14px; font-weight: 400;
    transition: background var(--md-duration-short2);
}
.lang-widget-menu a:hover { background: var(--md-surface-1); }
.lang-widget-menu a.active {
    background: var(--md-primary-container);
    color: var(--md-on-primary-container);
    font-weight: 500;
}
.lang-widget-menu a .check {
    margin-left: auto; color: var(--md-primary);
    opacity: 0;
}
.lang-widget-menu a.active .check { opacity: 1; }
.lang-widget-label { font-size: 11px; font-weight: 700; color: var(--md-on-surface-variant); letter-spacing: .8px; padding: 4px 16px 2px; text-transform: uppercase; }

/* ── MD3 Chip ─────────────────────────────────────────────── */
.chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 16px; border-radius: var(--md-shape-full);
    font-family: 'Google Sans', sans-serif;
    font-size: 13px; font-weight: 500;
    border: 1px solid var(--md-outline);
    background: transparent; color: var(--md-on-surface-variant);
}
.chip-filled {
    background: var(--md-secondary-container);
    border-color: transparent;
    color: var(--md-on-secondary-container);
}
.chip-assist {
    background: var(--md-surface-1);
    border-color: var(--md-outline-variant);
    color: var(--md-on-surface);
}
/* legacy alias */
.pill {
    display: inline-flex; padding: 4px 12px; border-radius: var(--md-shape-full);
    background: var(--md-primary-container); color: var(--md-on-primary-container);
    font-family: 'Google Sans', sans-serif;
    font-size: 12px; font-weight: 600; letter-spacing: .3px;
}
.success-pill { background: var(--md-success-container); color: var(--md-success); }
.new-pill     { background: var(--md-error-container); color: var(--md-error); animation: pulse-badge 2s ease-in-out infinite; }

/* ── Hero – Landing ──────────────────────────────────────── */
.hero { padding: 64px 0 48px; }
.hero-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 40px; align-items: center;
}
.eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 6px 16px; border-radius: var(--md-shape-full);
    margin-bottom: 16px;
    background: var(--md-primary-container);
    color: var(--md-on-primary-container);
    font-family: 'Google Sans', sans-serif;
    font-weight: 600; font-size: 13px; letter-spacing: .5px;
}
.hero-copy h1 {
    font-family: 'Google Sans Display', 'Google Sans', sans-serif;
    font-size: clamp(2.4rem, 5vw, 3.8rem);
    line-height: 1.05; letter-spacing: -.03em;
    margin: 0 0 16px; font-weight: 400;
    color: var(--md-on-surface);
}
.hero-copy h1 em { font-style: normal; color: var(--md-primary); font-weight: 700; }
.hero-copy p { color: var(--md-on-surface-variant); line-height: 1.7; font-size: 16px; margin: 0; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-top: 28px; }

/* Hero visual card */
.hero-visual {
    position: relative;
    border-radius: var(--md-shape-xl);
    overflow: hidden;
    background: var(--md-surface-2);
    border: 1px solid var(--md-outline-variant);
    box-shadow: var(--md-shadow-3);
    padding: 28px;
}
.hero-device {
    
    border-radius: 28px;
    background: linear-gradient(160deg, var(--md-primary-container) 0%, var(--md-surface) 60%);
    display: flex;
    flex-direction: column;
    align-items: center;
    /* justify-content: center; */
    gap: 16px;
    padding: 0;
    position: relative;
    overflow: hidden;
}
.hero-device::before {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(circle at 60% 30%, rgba(26,115,232,.12) 0%, transparent 60%);
    pointer-events: none;
}
.scan-ring {
    width: 136px; height: 136px; border-radius: 50%;
    border: 10px solid transparent;
    background: linear-gradient(var(--md-surface), var(--md-surface)) padding-box,
                conic-gradient(from 0deg, var(--md-primary), var(--md-tertiary), var(--md-primary)) border-box;
    animation: spin 3.6s linear infinite;
    flex-shrink: 0;
}
.scan-label {
    font-family: 'Google Sans', sans-serif;
    font-size: 13px; font-weight: 600; letter-spacing: .5px;
    color: var(--md-on-surface-variant);
}
.hero-device-steps {
    display: flex; justify-content: space-between;
    gap: 8px; width: 100%; margin-top: 8px;
}
.hero-device-step {
    flex: 1; text-align: center;
    padding: 8px 4px; border-radius: var(--md-shape-sm);
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    font-family: 'Google Sans', sans-serif;
    font-size: 11px; font-weight: 600;
    color: var(--md-on-surface-variant);
}
.hero-device-step strong {
    display: block;
    color: var(--md-primary); font-size: 13px;
}

/* ── Sections ─────────────────────────────────────────────── */
.section       { padding: 32px 0 64px; }
.section-soft  { padding-top: 12px; }
.section-heading { margin-bottom: 28px; }
.section-heading h2 {
    font-family: 'Google Sans Display', 'Google Sans', sans-serif;
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
    line-height: 1.1; letter-spacing: -.02em;
    margin: 0 0 10px; font-weight: 400;
    color: var(--md-on-surface);
}
.section-heading p { color: var(--md-on-surface-variant); line-height: 1.7; margin: 0; }

.steps-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.step-card {
    border-radius: var(--md-shape-xl);
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    padding: 28px 24px;
    box-shadow: var(--md-shadow);
    transition: box-shadow var(--md-duration-medium1) var(--md-motion-standard),
                transform var(--md-duration-medium1);
}
.step-card:hover { box-shadow: var(--md-shadow-3); transform: translateY(-2px); }
.step-num {
    display: inline-flex; width: 44px; height: 44px;
    border-radius: var(--md-shape-md); align-items: center; justify-content: center;
    background: var(--md-primary-container); color: var(--md-on-primary-container);
    font-family: 'Google Sans', sans-serif;
    font-weight: 700; font-size: 15px; margin-bottom: 18px;
}
.step-card h3 {
    font-family: 'Google Sans', sans-serif;
    margin: 0 0 8px; font-size: 18px; font-weight: 500;
    color: var(--md-on-surface);
}
.step-card p { color: var(--md-on-surface-variant); line-height: 1.6; margin: 0; font-size: 14px; }

.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.feature-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.feature-list li {
    display: flex; gap: 12px; align-items: flex-start;
    color: var(--md-on-surface-variant); font-size: 14px; line-height: 1.6;
}
.feature-list li::before {
    content: '';
    display: inline-block; width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px;
    background: var(--md-primary-container);
    border-radius: var(--md-shape-xs);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 24 24' stroke-width='2.5' stroke='%231a73e8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: center;
}
.security-card {
    background: var(--md-surface-1);
    border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-shape-xl);
    padding: 28px;
}
.security-card h3 {
    font-family: 'Google Sans', sans-serif;
    font-size: 20px; font-weight: 500; margin: 0 0 10px;
    color: var(--md-on-surface);
}
.security-card p { color: var(--md-on-surface-variant); line-height: 1.6; margin: 0; }
.portal-box {
    margin-top: 24px; padding: 20px 22px; border-radius: var(--md-shape-lg);
    background: var(--md-primary-container);
    border: 1px solid rgba(26,115,232,.18);
}
.portal-box strong {
    display: block;
    font-family: 'Google Sans', sans-serif;
    font-size: 16px; font-weight: 600;
    color: var(--md-on-primary-container);
    margin-bottom: 6px;
}
.portal-box p { color: var(--md-on-primary-container); opacity: .8; margin-bottom: 16px; }

/* ── Auth layout ─────────────────────────────────────────── */
.auth-page { min-height: 100vh; background: var(--md-surface-1); }
.auth-shell {
    width: min(calc(100% - 28px), 1100px);
    margin: 0 auto; padding: 32px 0 48px;
}
.auth-brand  { margin: 0 auto 28px; width: fit-content; }
.auth-layout { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 24px; align-items: stretch; }
.auth-info {
    padding: 40px 36px;
    background: var(--md-primary);
    border-radius: var(--md-shape-xl);
    color: var(--md-on-primary);
    display: flex; flex-direction: column; gap: 16px;
    position: relative; overflow: hidden;
}
.auth-info::before {
    content: '';
    position: absolute; top: -80px; right: -80px;
    width: 280px; height: 280px; border-radius: 50%;
    background: rgba(255,255,255,.07);
    pointer-events: none;
}
.auth-info::after {
    content: '';
    position: absolute; bottom: -60px; left: -60px;
    width: 200px; height: 200px; border-radius: 50%;
    background: rgba(255,255,255,.05);
    pointer-events: none;
}
.auth-info .eyebrow { background: rgba(255,255,255,.15); color: var(--md-on-primary); }
.auth-info h1 {
    font-family: 'Google Sans Display', sans-serif;
    font-size: clamp(1.9rem, 3.5vw, 2.8rem);
    line-height: 1.08; letter-spacing: -.03em;
    margin: 0; font-weight: 400; color: var(--md-on-primary);
}
.auth-info p { color: rgba(255,255,255,.8); line-height: 1.7; margin: 0; }
.auth-info .lang-switch { margin-top: auto; }
.auth-info .lang-switch a { color: rgba(255,255,255,.7); }
.auth-info .lang-switch a:hover { background: rgba(255,255,255,.12); color: white; }
.auth-info .lang-switch a.active { background: rgba(255,255,255,.2); color: white; font-weight: 700; }
.auth-forms { display: flex; flex-direction: column; gap: 20px; }
.auth-forms .card { padding: 32px 28px; }
.auth-forms h2 {
    font-family: 'Google Sans', sans-serif;
    font-size: 22px; font-weight: 500; margin: 0 0 22px;
    color: var(--md-on-surface);
}

/* ── MD3 Pattern Lock ────────────────────────────────────── */
.pattern-lock-wrap {
    display: flex; flex-direction: column; align-items: center; gap: 20px;
    padding: 28px 20px 20px;
}
.pattern-lock-title {
    font-family: 'Google Sans', sans-serif;
    font-size: 20px; font-weight: 500; color: var(--md-on-surface);
    text-align: center; margin: 0;
}
.pattern-lock-sub {
    font-size: 13px; color: var(--md-on-surface-variant); text-align: center; margin: 0;
    margin-top: -8px;
}
#patternCanvas {
    touch-action: none;
    cursor: crosshair;
    border-radius: var(--md-shape-md);
    display: block;
}
.pattern-lock-status {
    font-family: 'Google Sans', sans-serif;
    font-size: 13px; font-weight: 500;
    color: var(--md-on-surface-variant); text-align: center;
    min-height: 20px;
    transition: color var(--md-duration-short4);
}
.pattern-lock-status.error { color: var(--md-error); }
.pattern-lock-status.success { color: var(--md-success); }
.pattern-lock-dots {
    display: flex; gap: 8px; align-items: center; justify-content: center;
}
.pattern-dot-indicator {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--md-outline-variant);
    transition: background var(--md-duration-short4);
}
.pattern-dot-indicator.filled { background: var(--md-primary); }

/* ── Forms (MD3 Filled Text Field) ──────────────────────── */
.form-stack, .form-grid { display: grid; gap: 16px; }
.form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* MD3 Text Field */
.md-field {
    position: relative; display: flex; flex-direction: column; gap: 4px;
}
.md-field label, label span, legend {
    font-family: 'Google Sans', 'Roboto', sans-serif;
    font-size: 12px; font-weight: 500; letter-spacing: .4px;
    color: var(--md-on-surface-variant); display: block;
}
label, fieldset { display: grid; gap: 6px; }
label span, legend { font-size: 12px; color: var(--md-on-surface-variant); font-weight: 500; letter-spacing: .4px; }

input, select, textarea {
    width: 100%;
    border: 1px solid var(--md-outline);
    background: var(--md-surface);
    border-radius: var(--md-shape-xs);
    padding: 14px 16px;
    font-family: 'Roboto', sans-serif;
    font-size: 14px; font-weight: 400;
    color: var(--md-on-surface); outline: none;
    transition: border-color var(--md-duration-short4) var(--md-motion-standard),
                box-shadow var(--md-duration-short4);
}
input:hover, select:hover, textarea:hover { border-color: var(--md-on-surface); }
input:focus, select:focus, textarea:focus {
    border-color: var(--md-primary);
    border-width: 2px;
    box-shadow: none;
    padding: 13px 15px; /* compensate 1px border width increase */
}
input[type="color"] { padding: 8px; height: 44px; cursor: pointer; }

/* fieldset */
.fields-fieldset {
    padding: 20px 20px 16px; margin: 0;
    border-radius: var(--md-shape-lg);
    border: 1px solid var(--md-outline-variant);
    grid-column: 1/-1;
    background: var(--md-surface-1);
}
.fieldset-header {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; margin-bottom: 16px; flex-wrap: wrap;
}
fieldset legend {
    font-family: 'Google Sans', sans-serif;
    font-size: 14px; font-weight: 600; color: var(--md-on-surface);
    letter-spacing: .1px;
}
.field-checkbox-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.checkbox-chip {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 14px; border-radius: var(--md-shape-sm);
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    cursor: pointer;
    transition: border-color var(--md-duration-short4), background var(--md-duration-short4);
}
.checkbox-chip:has(input:checked) {
    background: var(--md-primary-container);
    border-color: var(--md-primary);
}
.checkbox-chip input { width: 18px; height: 18px; accent-color: var(--md-primary); }
.checkbox-chip span  { color: var(--md-on-surface); font-size: 13px; font-weight: 500; }

.add-custom-field-row {
    display: flex; gap: 10px; margin-top: 16px; padding-top: 16px;
    border-top: 1px solid var(--md-outline-variant); align-items: flex-end;
}
.add-custom-field-row input { flex: 1; }

/* ── MD3 Alert / Snackbar ────────────────────────────────── */
.alert {
    padding: 14px 18px; border-radius: var(--md-shape-sm);
    margin-top: 12px; font-size: 13px; font-weight: 500;
    display: flex; align-items: flex-start; gap: 10px;
    font-family: 'Google Sans', sans-serif;
}
.alert.success {
    background: var(--md-success-container); color: var(--md-success);
    border: 1px solid rgba(19,115,51,.2);
}
.alert.error {
    background: var(--md-error-container); color: var(--md-on-error-container);
    border: 1px solid rgba(179,38,30,.2);
}

/* ── Dashboard ───────────────────────────────────────────── */
.dashboard-page { min-height: 100vh; background: var(--md-background); }
.dashboard-main { padding-bottom: 48px; }
.hero-small {
    display: flex; justify-content: space-between; gap: 20px;
    align-items: flex-start; margin: 32px 0 24px; flex-wrap: wrap;
}
.hero-small h1 {
    font-family: 'Google Sans Display', sans-serif;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    margin: 0 0 8px; font-weight: 400; letter-spacing: -.02em;
    color: var(--md-on-surface);
}
.stats-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.stat-card {
    min-width: 160px; padding: 20px 24px;
    border-radius: var(--md-shape-xl);
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    box-shadow: var(--md-shadow);
}
.stat-card strong {
    display: block; font-family: 'Google Sans Display', sans-serif;
    font-size: 40px; letter-spacing: -.03em; font-weight: 400;
    color: var(--md-primary); line-height: 1;
}
.stat-card span { color: var(--md-on-surface-variant); font-size: 12px; font-weight: 500; margin-top: 4px; display: block; }
.card-heading { margin-bottom: 20px; }
.card-heading h2 {
    font-family: 'Google Sans', sans-serif;
    font-size: 20px; font-weight: 500; margin: 0;
    color: var(--md-on-surface);
}
.dashboard-form-card { padding: 28px 32px; }
.profiles-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; margin-top: 28px; }

/* Profile card */
.profile-card {
    border-radius: var(--md-shape-xl);
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    box-shadow: var(--md-shadow);
    padding: 24px; display: grid; gap: 18px;
    transition: box-shadow var(--md-duration-medium1) var(--md-motion-standard),
                transform var(--md-duration-medium1);
}
.profile-card:hover { box-shadow: var(--md-shadow-3); transform: translateY(-2px); }
.profile-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.profile-card-top h3 {
    font-family: 'Google Sans', sans-serif;
    margin: 6px 0 4px; font-size: 20px; font-weight: 500;
    color: var(--md-on-surface);
}
.profile-card-top p { color: var(--md-on-surface-variant); margin: 0; font-size: 14px; }
.profile-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.theme-dot {
    width: 20px; height: 20px; border-radius: 50%;
    flex-shrink: 0; border: 2px solid rgba(0,0,0,.08);
    box-shadow: var(--md-shadow);
}

/* QR */
.qr-preview {
    position: relative; padding: 16px; border-radius: var(--md-shape-lg);
    background: white; border: 1px solid var(--md-outline-variant);
}
.qr-preview img { width: 100%; border-radius: var(--md-shape-md); }
.qr-overlay-logo { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.qr-overlay-logo img { width: 44px; height: 44px; border-radius: var(--md-shape-md); background: white; padding: 4px; box-shadow: var(--md-shadow-2); }

/* Requested fields list */
.requested-list { display: flex; flex-wrap: wrap; gap: 6px; }
.requested-list span {
    padding: 4px 10px; border-radius: var(--md-shape-full);
    background: var(--md-surface-1); color: var(--md-on-surface-variant);
    font-size: 12px; font-weight: 500; border: 1px solid var(--md-outline-variant);
}

/* Link/copy boxes */
.link-box {
    padding: 14px 16px; border-radius: var(--md-shape-sm);
    background: var(--md-surface-1); border: 1px solid var(--md-outline-variant);
    display: grid; gap: 4px;
}
.link-box code {
    display: block; overflow-wrap: anywhere;
    font-family: 'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px; color: var(--md-on-surface);
}
.link-box small { color: var(--md-on-surface-variant); font-size: 11px; }
.copy-grid { display: grid; grid-template-columns: 1fr 1fr; border-radius: var(--md-shape-sm); overflow: hidden; border: 1px solid var(--md-outline-variant); }
.copy-button {
    appearance: none; border: 0; padding: 12px 14px;
    cursor: pointer; text-align: left;
    font-family: 'Google Sans', sans-serif; font-size: 12px; font-weight: 500;
    background: var(--md-surface-1); color: var(--md-on-surface-variant);
    transition: background var(--md-duration-short4);
    border-right: 1px solid var(--md-outline-variant);
}
.copy-button:last-child { border-right: none; }
.copy-button:hover { background: var(--md-surface-2); color: var(--md-primary); }
.copy-button.copied { color: var(--md-success); }

/* ── Cloud Inbox ─────────────────────────────────────────── */
.cloud-page {
    min-height: 100vh; display: flex; flex-direction: column;
    background: var(--md-background);
}
.inbox-topbar {
    display: flex; align-items: center; gap: 16px;
    padding: 12px 24px;
    background: var(--md-surface-2);
    border-bottom: 1px solid var(--md-outline-variant);
    position: sticky; top: 0; z-index: 30;
    flex-wrap: wrap;
    backdrop-filter: blur(20px);
}
.inbox-topbar-center {
    flex: 1; display: flex; align-items: center; gap: 12px;
    justify-content: center; flex-wrap: wrap;
}
.inbox-profile-label {
    font-family: 'Google Sans', sans-serif;
    font-size: 14px; font-weight: 500; color: var(--md-on-surface);
}
.inbox-topbar-right { display: flex; align-items: center; gap: 12px; }
.inbox-layout {
    flex: 1; display: flex;
    height: calc(100vh - 64px); overflow: hidden;
}
.inbox-sidebar {
    width: var(--inbox-sidebar-w); flex-shrink: 0;
    display: flex; flex-direction: column;
    border-right: 1px solid var(--md-outline-variant);
    background: var(--md-surface); overflow: hidden;
}
.inbox-sidebar-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; padding: 12px 16px;
    border-bottom: 1px solid var(--md-outline-variant); flex-shrink: 0;
}
.inbox-tabs { display: flex; gap: 4px; }
.inbox-tab {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 8px 16px; border-radius: var(--md-shape-full);
    border: 0; background: transparent;
    font-family: 'Google Sans', sans-serif;
    font-size: 13px; font-weight: 500;
    color: var(--md-on-surface-variant); cursor: pointer;
    transition: background var(--md-duration-short4), color var(--md-duration-short4);
}
.inbox-tab.active { background: var(--md-secondary-container); color: var(--md-on-secondary-container); }
.inbox-tab:hover:not(.active) { background: rgba(0,0,0,.06); color: var(--md-on-surface); }
.inbox-tab-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 18px; height: 18px; padding: 0 5px; border-radius: var(--md-shape-full);
    background: var(--md-error); color: var(--md-on-error);
    font-size: 11px; font-weight: 700;
    animation: pulse-badge 2.5s ease-in-out infinite;
}
.inbox-list {
    flex: 1; overflow-y: auto; overscroll-behavior: contain;
}
.inbox-list::-webkit-scrollbar { width: 4px; }
.inbox-list::-webkit-scrollbar-thumb { background: var(--md-outline-variant); border-radius: 4px; }
.inbox-row {
    display: flex; gap: 12px; align-items: flex-start;
    width: 100%; padding: 16px 18px;
    border: 0; border-bottom: 1px solid var(--md-outline-variant);
    background: transparent; text-align: left;
    cursor: pointer; font: inherit;
    transition: background var(--md-duration-short3);
    position: relative;
}
.inbox-row:hover   { background: rgba(26,115,232,.06); }
.inbox-row.selected{ background: var(--md-secondary-container); }
.inbox-row-unread  { background: var(--md-surface); }
.inbox-row-seen    { background: var(--md-surface-1); }
.inbox-row-seen .inbox-row-from  { font-weight: 400; color: var(--md-on-surface-variant); }
.inbox-row-seen .inbox-row-dot   { opacity: 0; }
.inbox-row-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--md-primary); flex-shrink: 0; margin-top: 7px;
    transition: opacity var(--md-duration-medium2);
}
.inbox-row-body { flex: 1; min-width: 0; }
.inbox-row-top {
    display: flex; justify-content: space-between; align-items: baseline;
    gap: 8px; margin-bottom: 4px;
}
.inbox-row-from {
    font-family: 'Google Sans', sans-serif;
    font-size: 14px; font-weight: 700; color: var(--md-on-surface);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 180px;
}
.inbox-row-date  { font-size: 11px; color: var(--md-on-surface-variant); white-space: nowrap; flex-shrink: 0; }
.inbox-row-subject { font-size: 13px; font-weight: 500; color: var(--md-on-surface); margin-bottom: 3px; }
.inbox-row-preview {
    font-size: 12px; color: var(--md-on-surface-variant);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.inbox-empty {
    padding: 48px 24px; text-align: center;
    color: var(--md-on-surface-variant); font-size: 14px; font-weight: 500;
}
.inbox-detail {
    flex: 1; overflow-y: auto; background: var(--md-background);
    display: flex; flex-direction: column;
}
.inbox-detail-empty {
    flex: 1; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 16px;
    color: var(--md-on-surface-variant);
}
.inbox-detail-empty svg { opacity: .3; }
.inbox-detail-empty p { font-size: 14px; font-weight: 500; margin: 0; font-family: 'Google Sans', sans-serif; }
.inbox-detail-content {
    flex: 1; padding: 32px 36px; max-width: 880px; width: 100%; margin: 0 auto;
}
.inbox-detail-header {
    display: flex; justify-content: space-between;
    align-items: flex-start; gap: 18px; margin-bottom: 24px; flex-wrap: wrap;
}
.inbox-detail-meta { display: flex; gap: 16px; align-items: flex-start; }
.inbox-detail-avatar {
    width: 48px; height: 48px; border-radius: 50%;
    background: var(--md-primary); color: var(--md-on-primary);
    display: flex; align-items: center; justify-content: center;
    font-family: 'Google Sans', sans-serif;
    font-weight: 600; font-size: 18px; flex-shrink: 0;
}
.inbox-detail-from    { font-family: 'Google Sans', sans-serif; font-size: 16px; font-weight: 600; color: var(--md-on-surface); }
.inbox-detail-subject { font-size: 13px; color: var(--md-on-surface-variant); font-weight: 400; margin-top: 2px; }
.inbox-detail-date    { font-size: 12px; color: var(--md-on-surface-variant); margin-top: 3px; }
.inbox-detail-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.inbox-detail-divider { height: 1px; background: var(--md-outline-variant); margin-bottom: 28px; }
.inbox-detail-fields {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
}
.detail-field {
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-shape-lg); padding: 16px 18px;
    display: flex; flex-direction: column; gap: 6px;
    box-shadow: var(--md-shadow);
}
.detail-field-label {
    font-size: 11px; font-weight: 600; color: var(--md-on-surface-variant);
    text-transform: uppercase; letter-spacing: .6px;
}
.detail-field-value-row {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.detail-field-value {
    font-family: 'Google Sans', sans-serif;
    font-size: 15px; font-weight: 500; color: var(--md-on-surface);
    overflow-wrap: anywhere;
}
.detail-copy-btn {
    flex-shrink: 0; appearance: none; border: 0;
    background: transparent; color: var(--md-primary);
    font-family: 'Google Sans', sans-serif;
    font-size: 12px; font-weight: 500; cursor: pointer;
    padding: 4px 8px; border-radius: var(--md-shape-xs);
    transition: background var(--md-duration-short4);
}
.detail-copy-btn:hover { background: var(--md-primary-container); }

/* ── Share page ──────────────────────────────────────────── */
.share-page { min-height: 100vh; background: var(--md-background); }
.share-wrap { min-height: 100vh; display: flex; flex-direction: column; }
.share-consent-layout {
    background: #ebedef;
    color: #0f172a;
}
.share-consent-topbar {
    padding: 26px 24px 8px;
}
.share-consent-topbar .share-brand strong {
    font-size: 48px;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: #0f172a;
}
.share-consent-shell {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 84px 24px 48px;
}
.share-consent-card {
    width: min(760px, 100%);
    background: #f5f6f8;
    border-radius: 48px;
    box-shadow: 0 12px 40px rgba(15, 23, 42, .08);
    padding: 48px 52px 42px;
}
.share-consent-avatar {
    margin: 0 auto 28px;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    font-size: 42px;
}
.share-consent-title {
    margin: 0;
    text-align: center;
    font-family: 'Google Sans', sans-serif;
    font-size: 28px;
    line-height: 1.12;
    letter-spacing: -0.03em;
    color: #0f172a;
}
.share-consent-subtitle {
    margin: 42px 0 24px;
    font-family: 'Google Sans', sans-serif;
    font-size: 18px;
    color: #0f172a;
    letter-spacing: -0.02em;
}
.share-consent-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 20px;
}
.share-consent-list li {
    display: flex;
    gap: 18px;
    align-items: center;
    color: #344054;
    font-size: 22px;
}
.share-consent-list svg {
    color: #1f6ad7;
    flex-shrink: 0;
}
.share-consent-copy { margin: 34px 0 0; color: #334155; font-size: 16px; line-height: 1.45; }
.share-consent-copy a {
    color: #0f57ba;
    text-decoration: none;
    font-weight: 600;
}
.share-consent-editor {
    margin-top: 28px;
    padding: 20px;
    border: 1px solid #d6dae0;
    border-radius: 22px;
    background: #fff;
}
.share-consent-editor-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.share-consent-editor-head label { font-size: 14px; font-weight: 600; color: #1f2937; }
.share-consent-editor input {
    width: 100%;
    border: 1px solid #cfd5de;
    border-radius: 12px;
    min-height: 46px;
    padding: 10px 12px;
    font-size: 15px;
    color: #111827;
    background: #fff;
}
.share-consent-editor input:focus {
    border-color: #1e64c8;
    outline: 2px solid rgba(30, 100, 200, .16);
}
.share-consent-editor-grid { margin-top: 16px; display: grid; gap: 12px; }
.share-consent-field { display: grid; gap: 6px; }
.share-consent-field label { font-size: 13px; font-weight: 600; color: #344054; }
.share-consent-editor .share-load-btn {
    border: 0;
    border-radius: 999px;
    min-height: 36px;
    padding: 0 14px;
    font-size: 12px;
    font-weight: 600;
    color: #0f57ba;
    background: #e8f0fe;
    cursor: pointer;
}
.share-consent-actions {
    display: flex;
    justify-content: flex-end;
    gap: 32px;
    margin-top: 36px;
}
.share-cancel-btn,
.share-allow-btn {
    border: 0;
    border-radius: 999px;
    min-width: 176px;
    height: 56px;
    font-family: 'Google Sans', sans-serif;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
}
.share-cancel-btn {
    background: transparent;
    color: #0f57ba;
}
.share-allow-btn {
    background: #1e64c8;
    color: #fff;
    box-shadow: 0 10px 18px rgba(30, 100, 200, .28);
}
@media (max-width: 960px) {
    .share-consent-topbar .share-brand strong { font-size: 34px; }
    .share-consent-shell { padding-top: 62px; }
    .share-consent-card { border-radius: 32px; padding: 40px 26px 30px; }
    .share-consent-avatar { width: 84px; height: 84px; font-size: 30px; margin-bottom: 20px; }
    .share-consent-title { font-size: 28px; }
    .share-consent-subtitle { margin-top: 30px; font-size: 24px; }
    .share-consent-list li { font-size: 20px; }
    .share-consent-copy { margin-top: 36px; font-size: 18px; }
    .share-cancel-btn, .share-allow-btn { min-width: 136px; height: 52px; font-size: 18px; }
    .share-consent-actions { gap: 12px; margin-top: 34px; }
    .share-consent-editor-head { flex-direction: column; align-items: flex-start; }
    .share-consent-editor .share-load-btn { width: 100%; }
}
.share-topbar {
    position: sticky; top: 0; z-index: 30;
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; padding: 12px 20px;
    background: rgba(248,249,250,.92);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--md-outline-variant);
}
.share-brand {
    display: inline-flex; align-items: center; gap: 10px;
    text-decoration: none;
}
.share-brand img { width: 32px; height: 32px; border-radius: var(--md-shape-sm); }
.share-brand strong {
    font-family: 'Google Sans', sans-serif;
    font-size: 16px; font-weight: 700; color: var(--md-on-surface);
}

.share-hero {
    padding: 28px 20px 24px;
    display: flex; align-items: center; gap: 18px;
    border-bottom: 1px solid var(--md-outline-variant);
}
.share-hero-avatar {
    width: 64px; height: 64px; border-radius: var(--md-shape-lg);
    display: flex; align-items: center; justify-content: center;
    font-family: 'Google Sans', sans-serif;
    font-size: 26px; font-weight: 700; color: white;
    flex-shrink: 0; box-shadow: var(--md-shadow-2);
}
.share-hero-company {
    font-family: 'Google Sans', sans-serif;
    font-size: 18px; font-weight: 600; color: var(--md-on-surface);
    margin-bottom: 2px;
}
.share-hero-title {
    font-size: 13px; color: var(--md-on-surface-variant); font-weight: 500;
}
.share-hero-subtitle {
    font-size: 12px; color: var(--md-on-surface-variant); margin-top: 6px;
}

.share-body { flex: 1; padding: 20px; max-width: 540px; margin: 0 auto; width: 100%; }
.share-form { display: flex; flex-direction: column; gap: 0; }

.share-section { margin-bottom: 24px; }
.share-section-label {
    display: flex; align-items: center; gap: 8px;
    font-family: 'Google Sans', sans-serif;
    font-size: 12px; font-weight: 600; letter-spacing: .6px;
    text-transform: uppercase; color: var(--md-on-surface-variant);
    margin-bottom: 14px;
    padding-bottom: 10px; border-bottom: 1px solid var(--md-outline-variant);
}
.share-field { display: grid; gap: 6px; margin-bottom: 16px; }
.share-field label {
    font-family: 'Google Sans', sans-serif;
    font-size: 12px; font-weight: 500; color: var(--md-on-surface-variant); letter-spacing: .3px;
}
.share-input-row { display: flex; gap: 8px; align-items: flex-start; }
.share-input-row input { flex: 1; }
.share-load-btn {
    flex-shrink: 0;
    width: 44px; height: 44px; border-radius: var(--md-shape-sm);
    background: var(--md-surface-1); border: 1px solid var(--md-outline-variant);
    color: var(--md-primary); cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    transition: background var(--md-duration-short4), box-shadow var(--md-duration-short4);
}
.share-load-btn:hover { background: var(--md-primary-container); box-shadow: var(--md-shadow); }
.share-error-banner {
    background: var(--md-error-container);
    color: var(--md-on-error-container);
    padding: 14px 18px; border-radius: var(--md-shape-sm);
    font-size: 13px; font-weight: 500;
    margin-bottom: 20px;
    border: 1px solid rgba(179,38,30,.2);
}
.share-submit-row { margin-top: 12px; display: grid; gap: 10px; }

/* Share Success Modal */
.share-success-modal {
    position: fixed; inset: 0;
    background: var(--md-scrim);
    display: none; align-items: center; justify-content: center;
    z-index: 90; padding: 24px;
}
.share-success-modal.open { display: flex; }
.share-success-box {
    width: min(440px, 100%);
    background: var(--md-surface); border-radius: var(--md-shape-xl);
    padding: 32px 28px; box-shadow: var(--md-shadow-5); text-align: center;
    animation: md-scale-in var(--md-duration-medium3) var(--md-motion-decelerate) both;
}
.share-success-icon {
    width: 72px; height: 72px; border-radius: 50%;
    background: var(--md-success-container); color: var(--md-success);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 18px;
}
.share-success-box h3 {
    font-family: 'Google Sans', sans-serif;
    margin: 0 0 8px; font-size: 24px; font-weight: 500; color: var(--md-on-surface);
}
.share-success-box p { margin: 0; color: var(--md-on-surface-variant); line-height: 1.6; }
.share-success-actions { display: grid; gap: 10px; margin-top: 24px; }

/* Share Web Share modal */
.share-modal {
    position: fixed; inset: 0;
    background: var(--md-scrim);
    display: none; align-items: flex-end; justify-content: center;
    z-index: 95; padding: 0;
}
.share-modal.open { display: flex; }
.share-modal-sheet {
    width: min(480px, 100%);
    background: var(--md-surface);
    border-radius: var(--md-shape-xl) var(--md-shape-xl) 0 0;
    padding: 0 0 32px;
    box-shadow: var(--md-shadow-5);
    animation: md-slide-up var(--md-duration-medium3) var(--md-motion-decelerate) both;
}
.share-modal-handle {
    width: 36px; height: 4px; border-radius: var(--md-shape-full);
    background: var(--md-outline-variant); margin: 14px auto 20px;
}
.share-modal-title {
    font-family: 'Google Sans', sans-serif;
    font-size: 18px; font-weight: 500; color: var(--md-on-surface);
    padding: 0 24px 16px; border-bottom: 1px solid var(--md-outline-variant); margin: 0;
}
.share-modal-options {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 4px; padding: 20px 24px;
}
.share-option-btn {
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    padding: 14px 8px; border-radius: var(--md-shape-lg);
    border: 0; background: transparent; cursor: pointer;
    font-family: 'Google Sans', sans-serif;
    font-size: 11px; font-weight: 500;
    color: var(--md-on-surface-variant);
    transition: background var(--md-duration-short4);
}
.share-option-btn:hover { background: var(--md-surface-1); color: var(--md-on-surface); }
.share-option-icon {
    width: 52px; height: 52px; border-radius: var(--md-shape-lg);
    display: flex; align-items: center; justify-content: center;
    background: var(--md-surface-2);
    color: var(--md-on-surface);
    box-shadow: var(--md-shadow);
    transition: box-shadow var(--md-duration-short4), background var(--md-duration-short4);
}
.share-option-btn:hover .share-option-icon { background: var(--md-surface-3); box-shadow: var(--md-shadow-2); }
.share-modal-copy {
    margin: 4px 24px 0;
    display: flex; align-items: center; gap: 10px;
    background: var(--md-surface-1);
    border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-shape-sm); padding: 12px 16px;
}
.share-modal-copy code {
    flex: 1; font-family: 'Roboto Mono', monospace; font-size: 12px;
    color: var(--md-on-surface-variant); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.share-modal-close {
    display: block; width: calc(100% - 48px); margin: 16px 24px 0;
}

/* Share Info modal */
.share-info-modal {
    position: fixed; inset: 0;
    background: var(--md-scrim);
    display: none; align-items: center; justify-content: center;
    z-index: 89; padding: 24px;
}
.share-info-modal.open { display: flex; }
.share-info-box {
    width: min(520px,100%); background: var(--md-surface);
    border-radius: var(--md-shape-xl); padding: 32px 28px 28px;
    box-shadow: var(--md-shadow-5); text-align: left;
    position: relative; overflow: hidden;
    animation: md-scale-in var(--md-duration-medium3) var(--md-motion-decelerate) both;
}
.share-info-box::before {
    content: '';
    position: absolute; inset: 0 0 auto 0; height: 4px;
    background: linear-gradient(90deg, var(--md-primary), var(--md-tertiary));
}
.share-info-icon {
    width: 64px; height: 64px; border-radius: 50%;
    background: var(--md-primary-container); color: var(--md-primary);
    display: flex; align-items: center; justify-content: center;
    margin: 0 0 20px;
}
.share-info-box h3 {
    font-family: 'Google Sans Display', sans-serif;
    margin: 0 0 12px; font-size: 26px; font-weight: 400; line-height: 1.1;
    color: var(--md-on-surface); letter-spacing: -.02em;
}
.share-info-lead { margin: 0 0 16px; color: var(--md-on-surface-variant); line-height: 1.7; font-size: 14px; }
.share-info-points { display: grid; gap: 10px; margin: 20px 0 0; }
.share-info-point {
    display: flex; gap: 14px; align-items: flex-start;
    padding: 14px; border-radius: var(--md-shape-lg);
    background: var(--md-surface-1); border: 1px solid var(--md-outline-variant);
}
.share-info-point svg { flex-shrink: 0; margin-top: 2px; color: var(--md-primary); }
.share-info-point div { color: var(--md-on-surface-variant); font-size: 13px; line-height: 1.6; }
.share-info-highlight {
    margin-top: 20px; padding: 16px 18px; border-radius: var(--md-shape-lg);
    background: var(--md-primary-container); border: 1px solid rgba(26,115,232,.2);
    font-size: 13px; line-height: 1.65; color: var(--md-on-primary-container);
}
.share-info-actions { display: grid; gap: 10px; margin-top: 24px; }
.share-info-mini { margin-top: 12px; color: var(--md-on-surface-variant); font-size: 12px; text-align: center; }

/* ── Security Gate (MD3 Dialog) ──────────────────────────── */
.sg-backdrop {
    position: fixed; inset: 0; z-index: 80;
    background: var(--md-background);
    display: flex; align-items: center; justify-content: center;
    padding: 24px;
}
.sg-card {
    width: min(400px, 100%);
    background: var(--md-surface);
    border-radius: var(--md-shape-xl);
    box-shadow: var(--md-shadow-5);
    border: 1px solid var(--md-outline-variant);
    overflow: hidden;
    animation: md-scale-in var(--md-duration-medium3) var(--md-motion-decelerate) both;
}
.sg-brand {
    display: flex; align-items: center; gap: 12px;
    padding: 24px 28px 0;
    font-family: 'Google Sans', sans-serif;
    font-size: 16px; font-weight: 700; color: var(--md-on-surface);
}
.sg-brand img { width: 32px; height: 32px; border-radius: var(--md-shape-sm); }
.sg-icon {
    display: flex; align-items: center; justify-content: center;
    width: 64px; height: 64px; border-radius: 50%;
    background: var(--md-primary-container); color: var(--md-primary);
    margin: 20px auto 0;
}
.sg-card h2 {
    font-family: 'Google Sans', sans-serif;
    font-size: 22px; font-weight: 500; margin: 16px 28px 8px;
    color: var(--md-on-surface); text-align: center;
}
.sg-card p {
    font-size: 13px; color: var(--md-on-surface-variant);
    line-height: 1.6; text-align: center; margin: 0 28px 20px;
}
.sg-field {
    margin: 0 28px 14px; display: grid; gap: 6px;
}
.sg-field label {
    font-family: 'Google Sans', sans-serif;
    font-size: 12px; font-weight: 500; color: var(--md-on-surface-variant); letter-spacing: .3px;
}
.sg-btn {
    display: block; width: calc(100% - 56px); margin: 4px 28px;
    border: 0; border-radius: var(--md-shape-full);
    padding: 14px 24px; cursor: pointer;
    font-family: 'Google Sans', sans-serif; font-size: 14px; font-weight: 500;
    background: var(--md-primary); color: var(--md-on-primary);
    transition: box-shadow var(--md-duration-short4), opacity var(--md-duration-short4);
    text-align: center;
}
.sg-btn:hover { box-shadow: var(--md-shadow-2); opacity: .95; }
.sg-btn-outline {
    background: transparent; border: 1.5px solid var(--md-primary);
    color: var(--md-primary);
}
.sg-btn-outline:hover { background: var(--md-primary-container); }
.sg-divider {
    display: flex; align-items: center; gap: 12px;
    margin: 16px 28px;
    color: var(--md-on-surface-variant); font-size: 12px;
}
.sg-divider::before, .sg-divider::after {
    content: ''; flex: 1; height: 1px; background: var(--md-outline-variant);
}
.sg-error {
    margin: 12px 28px;
    background: var(--md-error-container); color: var(--md-on-error-container);
    padding: 12px 16px; border-radius: var(--md-shape-sm);
    font-size: 13px; font-weight: 500;
    animation: md-shake .4s var(--md-motion-standard);
}
.sg-device-info {
    display: flex; gap: 10px; align-items: flex-start;
    padding: 14px 28px 24px; margin-top: 8px;
    font-size: 12px; color: var(--md-on-surface-variant); line-height: 1.6;
}
.sg-device-info svg { flex-shrink: 0; margin-top: 2px; }
.sg-method-note {
    font-size: 12px; color: var(--md-on-surface-variant);
    line-height: 1.5; text-align: center; margin: 10px 28px;
}
.sg-btn-secondary {
    display: block; width: calc(100% - 56px); margin: 4px 28px;
    border: 1px solid var(--md-outline); border-radius: var(--md-shape-full);
    padding: 13px 24px; cursor: pointer;
    font-family: 'Google Sans', sans-serif; font-size: 14px; font-weight: 500;
    background: var(--md-surface); color: var(--md-on-surface);
    transition: background var(--md-duration-short4);
    text-align: center;
}
.sg-btn-secondary:hover { background: var(--md-surface-1); }
.sg-link-btn {
    display: block; text-align: center; margin: 8px 28px 24px;
    background: none; border: none; color: var(--md-primary);
    font-family: 'Google Sans', sans-serif;
    font-size: 13px; font-weight: 500; cursor: pointer;
    text-decoration: underline; text-underline-offset: 2px;
}
.sg-recovery-box {
    margin: 0 28px 20px;
    background: var(--md-surface-1); border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-shape-lg); padding: 18px;
}
.sg-recovery-box h3 {
    margin: 0 0 6px; font-family: 'Google Sans', sans-serif;
    font-size: 15px; font-weight: 500; color: var(--md-on-surface); text-align: left;
}
.sg-recovery-box p { font-size: 12px; text-align: left; margin: 0 0 14px; }

/* ── Print page ───────────────────────────────────────────── */
.print-page { min-height: 100vh; background: white; display: flex; flex-direction: column; }
.print-content { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px 24px; gap: 28px; text-align: center; }
.print-card {
    width: min(400px, 100%);
    background: white; border: 2px solid var(--md-outline-variant);
    border-radius: var(--md-shape-xl); padding: 36px 32px;
    box-shadow: var(--md-shadow-4);
}
.print-brand { margin-bottom: 24px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.print-brand img { width: 56px; height: 56px; border-radius: var(--md-shape-md); }
.print-brand strong { font-family: 'Google Sans', sans-serif; font-size: 20px; font-weight: 700; }
.print-qr { width: 100%; border-radius: var(--md-shape-lg); border: 1px solid var(--md-outline-variant); }
.print-label { font-family: 'Google Sans', sans-serif; font-size: 22px; font-weight: 600; color: var(--md-on-surface); margin-top: 20px; }
.print-sub { font-size: 13px; color: var(--md-on-surface-variant); margin-top: 6px; }
.print-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-top: 16px; }
@media print {
    .print-actions, .site-header { display: none !important; }
    body { background: white !important; }
}

/* ── Narrow card (error states) ──────────────────────────── */
.narrow-card { width: min(480px, calc(100% - 32px)); margin: 48px auto; padding: 36px 32px; }
.share-404 {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 16px; min-height: 100vh; padding: 24px; text-align: center;
    color: var(--md-on-surface-variant);
}
.share-404 h1 { font-family: 'Google Sans', sans-serif; font-size: 24px; font-weight: 500; color: var(--md-on-surface); margin: 0; }
.share-404-icon { color: var(--md-error); }

/* ── Centered page ───────────────────────────────────────── */
.centered-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--md-surface-1); }

/* ── Animations ───────────────────────────────────────────── */
@keyframes spin            { to { transform: rotate(360deg); } }
@keyframes pulse-badge     { 0%,100% { opacity: 1; } 50% { opacity: .5; } }
@keyframes md-scale-in     { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: scale(1); } }
@keyframes md-slide-up     { from { transform: translateY(100%); } to { transform: translateY(0); } }
@keyframes md-shake        { 0%,100% { transform: translateX(0); } 20%,60% { transform: translateX(-6px); } 40%,80% { transform: translateX(6px); } }
@keyframes md-fade-in      { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes sgFadeOut        { to { opacity: 0; } }
@keyframes sgFadeIn         { from { opacity: 0; } to { opacity: 1; } }
.anim-in { animation: md-fade-in var(--md-duration-medium3) var(--md-motion-decelerate) both; }
.sg-error-shake { animation: md-shake .4s var(--md-motion-standard) !important; }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 900px) {
    .hero-grid        { grid-template-columns: 1fr; }
    .auth-layout      { grid-template-columns: 1fr; }
    .two-col          { grid-template-columns: 1fr; }
    .steps-grid       { grid-template-columns: 1fr; }
    .profiles-grid    { grid-template-columns: 1fr; }
    .form-grid        { grid-template-columns: 1fr; }
    .field-checkbox-grid { grid-template-columns: repeat(2, 1fr); }
    .inbox-layout     { flex-direction: column; height: auto; }
    .inbox-sidebar    { width: 100%; height: 320px; border-right: none; border-bottom: 1px solid var(--md-outline-variant); }
    .inbox-detail     { height: auto; }
    .dashboard-form-card { padding: 20px 20px; }
}
@media (max-width: 600px) {
    .hero              { padding: 40px 0 32px; }
    .hero-copy h1      { font-size: 2rem; }
    .section-heading h2 { font-size: 1.6rem; }
    .top-nav           { display: none; }
    .field-checkbox-grid { grid-template-columns: 1fr 1fr; }
    .share-modal-options { grid-template-columns: repeat(3, 1fr); }
    .auth-info h1      { font-size: 1.8rem; }
    .auth-forms .card  { padding: 24px 20px; }
    .dashboard-form-card { padding: 18px 16px; }
    .share-body        { padding: 16px; }
}

/* Pricing + billing */
.pricing-grid { display:flex; gap:18px; overflow-x:auto; padding-bottom:8px; }
.pricing-card { min-width:230px; flex:1 0 230px; border:1px solid var(--md-outline-variant); border-radius:24px; padding:24px; background:var(--md-surface); box-shadow:var(--md-shadow); display:flex; flex-direction:column; gap:10px; }
.pricing-card-highlight { border-color: var(--md-primary); box-shadow: var(--md-shadow-3); }
.pricing-badge { display:inline-flex; align-self:flex-start; padding:4px 10px; border-radius:999px; background:var(--md-primary-container); color:var(--md-on-primary-container); font-weight:600; font-size:12px; }
.pricing-price { margin:0; font-size:36px; font-weight:700; line-height:1.1; }
.pricing-price span { font-size:16px; color:var(--md-on-surface-variant); font-weight:500; }
.pricing-subtitle { margin:0; color:var(--md-on-surface-variant); }
.pricing-card ul { margin:0 0 4px; padding-left:18px; color:var(--md-on-surface-variant); }
.coupon-box { margin-top:auto; display:flex; flex-direction:column; gap:8px; }
.coupon-box label { font-size:13px; color:var(--md-on-surface-variant); }
.coupon-row { display:flex; gap:8px; }
.coupon-row input { flex:1; height:40px; border-radius:12px; border:1px solid var(--md-outline-variant); padding:0 12px; }
.coupon-feedback { margin:0; font-size:12px; min-height:18px; color:var(--md-on-surface-variant); }
.coupon-feedback.ok { color: var(--md-success); }
.coupon-feedback.error { color: var(--md-error); }
.pricing-final { margin:0; font-weight:600; }
.pricing-legal { text-align:center; color:var(--md-on-surface-variant); font-size:12px; margin-top:14px; }
@media (max-width: 900px) {
    .pricing-card { min-width:280px; flex-basis:280px; }
}
