/*
 * AllGravi public editorial system
 * Scope: unauthenticated marketing, account, waitlist and legal pages only.
 * Product dashboards continue to use the V1 application system.
 */

.public-editorial {
    --public-ink: var(--ink-900);
    --public-ink-2: var(--ink-700);
    --public-muted: var(--editorial-muted);
    --public-line: var(--editorial-line);
    --public-paper: var(--paper);
    --public-paper-2: var(--paper-alt);
    --public-signal: var(--signal);
    --public-signal-dark: var(--signal-edge);
    background: var(--public-paper);
    color: var(--public-ink);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
}

.public-editorial .container { max-width: 1220px; padding-left: 28px; padding-right: 28px; }
.public-editorial main { min-height: calc(100vh - 74px); }
.public-editorial a { text-underline-offset: 3px; }

/* Public shell */
.public-nav { background: rgba(250,250,247,.96); border-bottom: 1px solid var(--public-ink); position: relative; z-index: 20; }
.public-nav-inner { align-items: center; display: flex; height: 74px; justify-content: space-between; }
.public-brand { display: inline-flex; }
.public-brand-logo { display: block; height: 37px; width: auto; }
.public-nav-links { align-items: center; display: flex; gap: 30px; }
.public-nav-link, .public-nav-cta {
    color: var(--public-ink);
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .015em;
    text-decoration: none;
    text-transform: uppercase;
}
.public-nav-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.public-nav-cta { align-items: center; background: var(--public-signal); border: 1px solid var(--public-ink); display: inline-flex; gap: 10px; min-height: 38px; padding: 8px 14px; }
.public-nav-cta:hover { background: var(--public-ink); color: #fff; }

.public-editorial .v1-footer { background: var(--public-ink); border-radius: 0; border-top: 1px solid var(--public-ink); color: #fff; padding: 46px 0 24px; }
.public-editorial .v1-footer-grid { gap: 34px; grid-template-columns: 1.55fr repeat(3, .65fr); }
.public-editorial .v1-footer-brand img { height: 34px; }
.public-editorial .v1-footer p { color: #cfd2d8; font-size: 13px; line-height: 1.55; max-width: 310px; }
.public-editorial .v1-footer h4 { color: var(--public-signal); font-family: var(--font-mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.public-editorial .v1-footer a { color: #eef0f3; font-size: 12px; }
.public-editorial .v1-footer a:hover { color: var(--public-signal); }
.public-editorial .v1-footer-bottom { border-top-color: #3e424b; color: #aeb3bd; font-family: var(--font-mono); font-size: 9px; letter-spacing: .05em; }

/* Shared controls */
.public-editorial .btn { border-radius: 0; box-shadow: none; font-weight: 600; }
.public-editorial .btn-primary { background: var(--public-signal); border: 1px solid var(--public-ink); color: var(--public-ink); }
.public-editorial .btn-primary:hover { background: var(--public-ink); border-color: var(--public-ink); color: #fff; }
.public-editorial .btn-ghost, .public-editorial .btn-secondary, .public-editorial .btn-soft { background: transparent; border: 1px solid var(--public-ink); color: var(--public-ink); }
.public-editorial .btn-ghost:hover, .public-editorial .btn-secondary:hover, .public-editorial .btn-soft:hover { background: var(--public-ink); color: #fff; }
.public-editorial .panel { background: rgba(255,255,255,.62); border: 1px solid var(--public-ink); border-radius: 0; box-shadow: none; }
.public-editorial .kicker {
    color: var(--public-ink);
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 500;
    letter-spacing: .07em;
}
.public-editorial .panel-link { color: var(--public-ink); font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; }
.public-editorial .panel-link::after { content: " →"; }

/* Account and system states */
.public-editorial .v1-auth-shell {
    align-items: flex-start;
    background-image: radial-gradient(rgba(20,22,26,.16) .55px, transparent .55px);
    background-position: right top;
    background-size: 5px 5px;
    min-height: 620px;
    padding: 58px 28px 76px;
}
.public-editorial .v1-auth-card {
    background: rgba(255,255,255,.86);
    border: 1px solid var(--public-ink);
    border-radius: 0;
    box-shadow: none;
    max-width: 560px;
    padding: 0;
    position: relative;
    width: 100%;
}
.public-editorial .v1-auth-card.public-auth-card-wide { max-width: 720px; }
.public-editorial .v1-auth-card::before {
    align-items: center;
    border-bottom: 1px solid var(--public-ink);
    content: "ALLGRAVI / ACCOUNT ACCESS";
    display: flex;
    font-family: var(--font-mono);
    font-size: 8.5px;
    min-height: 38px;
    padding: 0 22px;
}
.public-editorial .v1-auth-card::after { background: var(--public-signal); border: 1px solid var(--public-ink); border-radius: 50%; content: ""; height: 10px; position: absolute; right: 18px; top: 13px; width: 10px; }
.public-editorial .v1-auth-card > * { margin-left: 24px; margin-right: 24px; }
.public-editorial .v1-auth-card > .v1-auth-header { border-bottom: 1px solid var(--public-line); margin: 0; padding: 27px 24px 22px; text-align: left; }
.public-editorial .v1-auth-card .v1-auth-header .kicker { margin-bottom: 11px; }
.public-editorial .v1-auth-card h1 { color: var(--public-ink); font-family: var(--font-display); font-size: clamp(36px, 5vw, 46px); font-weight: 600; letter-spacing: -.025em; line-height: .95; }
.public-editorial .v1-auth-card .v1-auth-sub { color: var(--public-muted); font-size: 13px; line-height: 1.55; margin-top: 9px; }
.public-editorial .v1-auth-card > form { margin-top: 24px; }
.public-editorial .v1-auth-card > .btn:first-of-type { margin-top: 24px; }
.public-editorial .v1-auth-card > .btn:last-of-type { margin-bottom: 24px; }
.public-editorial .v1-auth-card > .btn.w-full { width: calc(100% - 48px); }
.public-editorial .v1-auth-card .v1-auth-footer { border-top: 1px solid var(--public-ink); margin: 26px 0 0; padding: 17px 24px 19px; text-align: left; }
.public-editorial .v1-auth-card .v1-auth-footer p { color: var(--public-muted); font-size: 12px; }
.public-editorial .v1-auth-card .v1-auth-footer a { color: var(--public-ink); font-weight: 600; text-decoration-color: var(--public-signal-dark); }
.public-editorial .v1-form-group + .v1-form-group { margin-top: 17px; }
.public-editorial .v1-label { color: var(--public-ink); font-size: 11px; font-weight: 600; }
.public-editorial .v1-form input[type="text"],
.public-editorial .v1-form input[type="email"],
.public-editorial .v1-form input[type="password"],
.public-editorial .v1-form input[type="url"],
.public-editorial .v1-form input[type="number"],
.public-editorial .v1-form input[type="tel"],
.public-editorial .v1-form select,
.public-editorial .v1-form textarea {
    background: #fff;
    border: 1px solid #93979e;
    border-radius: 0;
    min-height: 45px;
}
.public-editorial .v1-form input:focus, .public-editorial .v1-form select:focus, .public-editorial .v1-form textarea:focus { border-color: var(--public-ink); box-shadow: 0 0 0 3px rgba(174,233,0,.38); }
.public-editorial .v1-error { font-size: 11px; }
.public-editorial .v1-alert { border-radius: 0; }
.public-editorial .v1-auth-card .text-sm, .public-editorial .v1-auth-card .text-xs { font-size: 11.5px; line-height: 1.55; }
.public-editorial .v1-auth-card input[type="checkbox"] { accent-color: var(--public-signal-dark); border-radius: 0 !important; }

/* Signup choice */
.public-choice { padding: 64px 0 78px; }
.public-choice-head { border-bottom: 1px solid var(--public-ink); display: grid; gap: 24px; grid-template-columns: .8fr 1.2fr; margin-bottom: 0; padding-bottom: 30px; }
.public-choice-head h1 { font-family: var(--font-display); font-size: clamp(56px, 7vw, 84px); font-weight: 600; letter-spacing: -.04em; line-height: .85; margin: 15px 0 0; }
.public-choice-head p { align-self: end; color: var(--public-muted); font-size: 15px; line-height: 1.65; margin: 0; max-width: 530px; }
.public-choice-grid { display: grid; grid-template-columns: 1fr 1fr; }
.public-choice-card { color: inherit; display: grid; min-height: 315px; padding: 31px 32px; position: relative; text-decoration: none; }
.public-choice-card + .public-choice-card { border-left: 1px solid var(--public-ink); }
.public-choice-card:hover { background: var(--public-paper-2); }
.public-choice-index { color: var(--public-signal-dark); font-family: var(--font-mono); font-size: 10px; }
.public-choice-card h2 { font-family: var(--font-display); font-size: 43px; font-weight: 600; line-height: .92; margin: 28px 0 12px; }
.public-choice-card p { color: var(--public-muted); font-size: 13px; line-height: 1.6; margin: 0; max-width: 430px; }
.public-choice-action { align-self: end; border-top: 1px solid var(--public-ink); display: flex; font-family: var(--font-mono); font-size: 10px; justify-content: space-between; margin-top: 30px; padding-top: 14px; text-transform: uppercase; }
.public-choice-login { border-top: 1px solid var(--public-ink); color: var(--public-muted); font-size: 12px; padding-top: 18px; text-align: right; }

/* Landing page: retain the product detail, replace the generic SaaS treatment. */
.public-editorial .landing-v1 { background: var(--public-paper); color: var(--public-ink); }
.public-editorial .lp-announce { background: var(--public-ink); border-radius: 0; color: #fff; font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .03em; padding: 10px 18px; }
.public-editorial .lp-announce a { color: var(--public-signal); }
.public-editorial .lp-hero { background-image: radial-gradient(rgba(20,22,26,.15) .55px, transparent .55px); background-position: right top; background-size: 5px 5px; padding: 68px 0 58px; }
.public-editorial .lp-eyebrow { background: transparent; border: 0; border-radius: 0; color: var(--public-ink); font-family: var(--font-mono); font-size: 10px; padding: 0; text-transform: uppercase; }
.public-editorial .lp-pulse { background: var(--public-signal); border: 1px solid var(--public-ink); }
.public-editorial .lp-hero h1 { font-size: clamp(65px, 8vw, 104px); letter-spacing: -.045em; line-height: .82; max-width: 1050px; }
.public-editorial .lp-hero h1 em { color: var(--public-ink); font-style: normal; }
.public-editorial .lp-mark { background: linear-gradient(180deg,transparent 84%,var(--public-signal) 84%); padding-left: 3px; padding-right: 3px; }
.public-editorial .lp-lede { border-top: 1px solid var(--public-ink); color: var(--public-ink-2); font-size: 15px; max-width: 800px; padding-top: 18px; }
.public-editorial .lp-cta-row { margin-top: 28px; }
.public-editorial .lp-commit { border-bottom: 1px solid var(--public-ink); border-top: 1px solid var(--public-ink); margin-top: 45px; padding: 15px 0; }
.public-editorial .lp-commit-label, .public-editorial .lp-commit-items { font-size: 9.5px; }
.public-editorial .lp-section { border-top: 1px solid var(--public-ink); padding: 62px 0; }
.public-editorial .lp-section-head { display: grid; gap: 18px 34px; grid-template-columns: .35fr 1fr; }
.public-editorial .lp-section-head .lp-kicker { grid-column: 1; grid-row: 1 / span 2; }
.public-editorial .lp-kicker { color: var(--public-ink); font-size: 9.5px; }
.public-editorial .lp-kicker::before { background: var(--public-signal); border: 1px solid var(--public-ink); content: ""; display: inline-block; height: 8px; margin-right: 8px; width: 8px; }
.public-editorial .lp-title { font-size: clamp(43px, 5vw, 62px); letter-spacing: -.03em; line-height: .9; }
.public-editorial .lp-title em { color: var(--public-ink); font-style: normal; }
.public-editorial .lp-section-head p { color: var(--public-muted); font-size: 14px; line-height: 1.65; }
.public-editorial .lp-card, .public-editorial .lp-features, .public-editorial .lp-parity, .public-editorial .lp-screen-grid, .public-editorial .lp-audience { border-color: var(--public-ink); border-radius: 0; box-shadow: none; }
.public-editorial .lp-features, .public-editorial .lp-screen-grid, .public-editorial .lp-audience { background: var(--public-ink); gap: 1px; }
.public-editorial .lp-features { background: transparent; display: block; }
.public-editorial .lp-feat { display: grid; gap: 34px; grid-template-columns: minmax(180px,.42fr) 1fr; min-height: 0; padding: 27px 28px; }
.public-editorial .lp-feat + .lp-feat { border-top: 1px solid var(--public-ink); }
.public-editorial .lp-feat h4 { margin-top: 0; }
.public-editorial .lp-feat, .public-editorial .lp-screen-cell, .public-editorial .lp-aud { border-radius: 0; }
.public-editorial .lp-feat .f-num em, .public-editorial .lp-aud.is-flagship .tag, .public-editorial .lp-kpi.is-signal { background: var(--public-signal); }
.public-editorial .lp-feat h3, .public-editorial .lp-aud h3 { font-size: 30px; line-height: .95; }
.public-editorial .lp-feat p, .public-editorial .lp-aud .lp-aud-lede, .public-editorial .lp-screen-cell p { color: var(--public-muted); font-size: 13px; line-height: 1.6; }
.public-editorial .lp-parity-pane + .lp-parity-pane { border-left-color: var(--public-ink); }
.public-editorial .lp-code, .public-editorial .lp-cta-band { border-radius: 0; }
.public-editorial .lp-cta-band { border: 1px solid var(--public-ink); }

/* Preserve breathing room after section rules on the split desktop heading layout. */
@media (min-width: 821px) {
    .public-editorial .landing-v1 .lp-section.is-tight { padding-top: 62px; }
}

/* The dashboard preview is a grid child containing a wide data table. Without an
   explicit minimum it keeps the table's desktop intrinsic width and is clipped. */
@media (max-width: 960px) {
    .public-editorial .landing-v1 .lp-dash-main { min-width: 0; }
}

/* Waitlist and legal pages inherit the same geometry. */
.public-editorial .waitlist-v1 .wl-card, .public-editorial .waitlist-v1 .wl-tile, .public-editorial .waitlist-v1 .wl-step, .public-editorial .waitlist-v1 .wl-cta-card { border-color: var(--public-ink); border-radius: 0; box-shadow: none; }
.public-editorial .waitlist-v1 .wl-card { border: 1px solid var(--public-ink); }
.public-editorial .waitlist-v1 .wl-eyebrow, .public-editorial .waitlist-v1 .pill { border-radius: 0; font-family: var(--font-mono); }
.public-editorial .waitlist-v1 h1, .public-editorial .waitlist-v1 h2 { font-family: var(--font-display); letter-spacing: -.03em; }
.public-editorial .waitlist-v1 input { border-radius: 0; }
.public-editorial .waitlist-v1 .wl-role-card { border-radius: 0; }
.public-editorial .v1-auth-card .rounded-2xl { border-color: var(--public-line) !important; border-radius: 0; }
.public-editorial .legal-page { background: var(--public-paper); }
.public-editorial .legal-layout { gap: 0; }
.public-editorial .legal-document { border-left: 1px solid var(--public-ink); padding-left: 44px; }
.public-editorial .legal-document h1, .public-editorial .legal-document h2 { font-family: var(--font-display); letter-spacing: -.02em; }

@media (max-width: 820px) {
    .public-editorial .container { padding-left: 20px; padding-right: 20px; }
    .public-nav-inner { height: 65px; }
    .public-brand-logo { height: 32px; }
    .public-nav-link { display: none; }
    .public-nav-links { gap: 0; }
    .public-editorial main { min-height: calc(100vh - 65px); }
    .public-editorial .v1-footer-grid { grid-template-columns: 1fr 1fr; }
    .public-editorial .v1-auth-shell { padding: 34px 18px 50px; }
    .public-choice { padding: 42px 0 56px; }
    .public-choice-head { grid-template-columns: 1fr; }
    .public-choice-grid { grid-template-columns: 1fr; }
    .public-choice-card + .public-choice-card { border-left: 0; border-top: 1px solid var(--public-ink); }
    .public-editorial .lp-hero { padding: 48px 0 42px; }
    .public-editorial .lp-section-head { grid-template-columns: 1fr; }
    .public-editorial .lp-section-head .lp-kicker { grid-column: auto; grid-row: auto; }
    .public-editorial .lp-feat { grid-template-columns: 1fr; }
    .public-editorial .legal-document { border-left: 0; border-top: 1px solid var(--public-ink); padding-left: 0; padding-top: 30px; }
}

@media (max-width: 560px) {
    .public-editorial .container { padding-left: 18px; padding-right: 18px; }
    .public-nav-cta { font-size: 9.5px; min-height: 36px; padding: 7px 11px; }
    .public-editorial .v1-footer-grid { grid-template-columns: 1fr; }
    .public-editorial .v1-auth-shell { padding-left: 0; padding-right: 0; }
    .public-editorial .v1-auth-card { border-left: 0; border-right: 0; max-width: none !important; }
    .public-editorial .v1-auth-card > * { margin-left: 18px; margin-right: 18px; }
    .public-editorial .v1-auth-card > .v1-auth-header { margin: 0; padding-left: 18px; padding-right: 18px; }
    .public-editorial .v1-auth-card .v1-auth-footer { margin-left: 0; margin-right: 0; padding-left: 18px; padding-right: 18px; }
    .public-editorial .v1-auth-card > .btn.w-full { width: calc(100% - 36px); }
    .public-choice-head h1 { font-size: 58px; }
    .public-choice-card { min-height: 275px; padding: 27px 0; }
    .public-editorial .lp-hero h1 { font-size: clamp(57px, 18vw, 76px); }
    .public-editorial .lp-commit { align-items: flex-start; }
    .public-editorial .lp-commit-items { grid-template-columns: 1fr 1fr; }
    .public-editorial .landing-v1 .lp-dash { min-height: 0; }
    .public-editorial .landing-v1 .lp-dash-main { padding: 18px 14px 14px; }
    .public-editorial .landing-v1 .lp-dash-head { align-items: flex-start; flex-direction: column; gap: 13px; }
    .public-editorial .landing-v1 .lp-dash-head h2 { font-size: 26px; }
    .public-editorial .landing-v1 .lp-range { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); width: 100%; }
    .public-editorial .landing-v1 .lp-range span { padding: 7px 3px; text-align: center; }
    .public-editorial .landing-v1 .lp-kpi { min-width: 0; padding: 13px 11px; }
    .public-editorial .landing-v1 .lp-kpi .k-value { font-size: clamp(19px, 6vw, 25px); overflow-wrap: anywhere; }
    .public-editorial .landing-v1 .lp-kpi .k-delta { line-height: 1.35; }
    .public-editorial .landing-v1 .lp-chart-card { padding: 15px 11px; }
    .public-editorial .landing-v1 .lp-chart-head { align-items: flex-start; flex-direction: column; gap: 9px; }
    .public-editorial .landing-v1 .lp-legend { flex-wrap: wrap; gap: 6px 11px; }
    .public-editorial .landing-v1 .lp-chart-frame { grid-template-columns: 24px minmax(0, 1fr); }
    .public-editorial .landing-v1 .lp-chart-frame svg { height: 142px; }
    .public-editorial .landing-v1 .lp-table { font-size: 12px; table-layout: fixed; }
    .public-editorial .landing-v1 .lp-table th,
    .public-editorial .landing-v1 .lp-table td { overflow-wrap: anywhere; padding: 10px; }
    .public-editorial .landing-v1 .lp-table th:nth-child(2),
    .public-editorial .landing-v1 .lp-table td:nth-child(2),
    .public-editorial .landing-v1 .lp-table th:nth-child(3),
    .public-editorial .landing-v1 .lp-table td:nth-child(3),
    .public-editorial .landing-v1 .lp-table th:nth-child(4),
    .public-editorial .landing-v1 .lp-table td:nth-child(4),
    .public-editorial .landing-v1 .lp-table th:nth-child(5),
    .public-editorial .landing-v1 .lp-table td:nth-child(5) { display: none; }
    .public-editorial .landing-v1 .lp-table th:first-child,
    .public-editorial .landing-v1 .lp-table td:first-child { width: 62%; }
    .public-editorial .landing-v1 .lp-table th:last-child,
    .public-editorial .landing-v1 .lp-table td:last-child { width: 38%; }
}

@media (prefers-reduced-motion: reduce) { .public-editorial * { scroll-behavior: auto !important; } }
