/*
 * Calma Design System 1.0
 * One authority for public, product, tool, guide, legal and private surfaces.
 */

:root {
    color-scheme: light;
    --ink-950: #171b1f;
    --ink-900: #23282d;
    --ink-800: #30373d;
    --ink-700: #424b53;
    --ink-600: #5b6670;
    --ink-500: #727d86;
    --smoke-50: #fbfcfc;
    --smoke-75: #f7f8f8;
    --smoke-100: #f1f3f4;
    --smoke-150: #e9edef;
    --smoke-200: #dce2e5;
    --steel-300: #b4c1c8;
    --steel-400: #8fa1ab;
    --steel-500: #697f8b;
    --steel-600: #526773;
    --signal: #5c7482;
    --signal-strong: #3f5967;
    --signal-soft: #e8eef1;
    --accent-blue: #557b91;
    --accent-teal: #4e7b70;
    --accent-amber: #9a713e;
    --accent-plum: #746582;
    --white: #fff;
    --danger: #a44747;
    --warning: #956829;
    --success: #3e7164;

    --font-brand: "Cinzel", Georgia, serif;
    --font-ui: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-navigation: var(--font-ui);
    --text-xs: .75rem;
    --text-sm: .875rem;
    --text-base: 1rem;
    --text-lg: 1.0625rem;
    --text-xl: clamp(1.25rem, 1.8vw, 1.45rem);
    --text-2xl: clamp(1.65rem, 2.7vw, 2.15rem);
    --text-3xl: clamp(2.1rem, 4vw, 3.5rem);

    --space-1: .25rem;
    --space-2: .5rem;
    --space-3: .75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;

    --radius-sm: .55rem;
    --radius-md: .8rem;
    --radius-lg: 1.15rem;
    --radius-xl: 1.55rem;
    --radius-round: 999px;
    --line: rgba(49, 61, 70, .13);
    --line-strong: rgba(49, 61, 70, .22);

    /* Three levels only: navigation, response/card, composer/dialog. */
    --elevation-nav: 0 1px 1px rgba(20, 26, 31, .04), 0 8px 24px rgba(20, 26, 31, .055);
    --elevation-card: 0 1px 2px rgba(20, 26, 31, .045), 0 12px 32px rgba(20, 26, 31, .075);
    --elevation-focus: 0 2px 5px rgba(20, 26, 31, .06), 0 20px 50px rgba(20, 26, 31, .12);

    --motion-fast: 120ms;
    --motion-base: 190ms;
    --motion-slow: 280ms;
    --ease-out: cubic-bezier(.2, .72, .25, 1);
    --content: 1180px;

}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 0; scroll-behavior: smooth; background: var(--smoke-100); }
body {
    min-height: 100vh;
    margin: 0;
    overflow-x: hidden;
    background: var(--smoke-100);
    color: var(--ink-900);
    font: 400 var(--text-base)/1.58 var(--font-ui);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
.public-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(circle at 9% 5%, rgba(255,255,255,.98) 0, rgba(255,255,255,.52) 17rem, transparent 35rem),
        radial-gradient(circle at 91% 28%, rgba(177,202,214,.16) 0, transparent 30rem),
        linear-gradient(180deg, #f8fafb 0, var(--smoke-100) 42rem);
    background-attachment: fixed;
}
.public-page main { flex: 1 0 auto; }
.public-page .public-footer { margin-top: auto; }
button, input, select, textarea { color: inherit; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: var(--signal-strong); text-underline-offset: .18em; }
img, svg, video { max-width: 100%; }
h1, h2, h3, h4, p { overflow-wrap: anywhere; }
h1, h2 { color: var(--ink-950); font-family: var(--font-ui); letter-spacing: -.035em; }
h1 { font-weight: 700; }
h2 { font-weight: 700; }
h3, h4 { color: var(--ink-900); font-weight: 650; letter-spacing: -.015em; }
::selection { background: var(--steel-300); color: var(--ink-950); }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--signal) 44%, transparent); outline-offset: 3px; }

.skip-link {
    position: fixed; z-index: 10000; top: var(--space-3); left: var(--space-3); padding: .7rem 1rem;
    border-radius: var(--radius-md); background: var(--ink-950); color: var(--white); transform: translateY(-180%);
}
.skip-link:focus { transform: none; }

.button, .btn, .btn-action, .button-primary, .btn-o, .btn-s, .primary-action, .collaboration-submit {
    min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
    padding: .65rem 1rem; border: 1px solid transparent; border-radius: var(--radius-md); cursor: pointer;
    color: var(--white); background: var(--ink-900); font-weight: 650; text-decoration: none;
    box-shadow: 0 1px 1px rgba(20, 26, 31, .08); transition: transform var(--motion-fast) var(--ease-out), background var(--motion-base), box-shadow var(--motion-base), border-color var(--motion-base);
}
.button:hover, .btn:hover, .btn-action:hover, .button-primary:hover, .primary-action:hover { background: var(--ink-800); transform: translateY(-1px); box-shadow: var(--elevation-nav); }
.signal-text { color: var(--signal-strong); }
.button-secondary, .btn-o { border-color: var(--line-strong); background: var(--white); color: var(--ink-900); box-shadow: none; }
.button-secondary:hover, .btn-o:hover { background: var(--smoke-75); }
.button.is-pressed, button.is-pressed, .tool-card.is-pressed, .topic-card.is-pressed { transform: translateY(1px) scale(.995); }

/* Public shell */
.public-header { position: sticky; z-index: 100; top: 0; padding: .7rem 1rem 0; background: linear-gradient(var(--smoke-100) 70%, transparent); }
.public-nav {
    width: min(var(--content), calc(100vw - 2rem)); min-height: 4.25rem; margin: 0 auto; padding: .55rem .65rem;
    display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(1rem, 3vw, 2.5rem);
    border: 1px solid var(--line); border-radius: var(--radius-lg); background: rgba(255,255,255,.92); box-shadow: var(--elevation-nav); backdrop-filter: blur(18px) saturate(115%);
}
.brand-lockup, .product-brand { display: flex; align-items: center; gap: .75rem; color: var(--ink-900); text-decoration: none; }

/* Firm attribution stays textual: no secondary symbol competes with Calma. */
.pb-credit {
    width: max-content;
    max-width: 100%;
    color: var(--ink-700);
    font-family: var(--font-ui);
    font-weight: 650;
    line-height: 1.2;
    text-decoration: none;
    vertical-align: middle;
    white-space: normal;
}
.pb-credit--dark { color: var(--smoke-100); }
.pb-credit--xs { font-size: .66rem; }
.pb-credit--sm { font-size: .78rem; }
.pb-credit--md { font-size: .9rem; }
.pb-credit--lg { font-size: 1.02rem; }
.pb-credit:hover,.pb-credit:focus-visible { color: #397cdd; }
.pb-credit:focus-visible { border-radius: .2rem; outline: 2px solid #397cdd; outline-offset: .24rem; }
.brand-endorsement-label { color: var(--ink-500); font-size: .6rem; letter-spacing: .055em; text-transform: uppercase; }
.brand-avatar, .product-brand-avatar {
    width: 2.75rem; aspect-ratio: 1; flex: 0 0 auto; display: block; overflow: hidden; border-radius: 50%;
    border: 1px solid var(--line-strong); background: var(--smoke-150); box-shadow: inset 0 0 0 3px var(--white);
}
.brand-avatar video, .product-brand-avatar video { width: 100%; height: 100%; display: block; object-fit: cover; }
.brand-avatar { width: 3rem; border-radius: .72rem; box-shadow: inset 0 0 0 2px var(--white),0 3px 10px rgba(20,26,31,.12); }
.brand-avatar .calma-motion-poster,.brand-avatar video { object-position: center 24%; }
.calma-motion-avatar { position: relative; isolation: isolate; }
.calma-motion-poster { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; }
.calma-motion-avatar > video { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; opacity: 0; visibility: hidden; transform: translateZ(0); transition: opacity 180ms linear; }
.calma-motion-avatar > video.is-active { z-index: 2; opacity: 1; visibility: visible; }
.calma-motion-avatar > video.is-retiring { z-index: 1; opacity: 1; visibility: visible; }
.calma-motion-avatar.is-crossfading-live > video.is-retiring { opacity: 0; }
.calma-motion-avatar.is-poster-only > video:first-child { opacity: 1; visibility: visible; }
.brand-lockup-copy { display: grid; line-height: 1.15; }
.brand-lockup-copy strong { font: 700 1.08rem/1.15 var(--font-brand); letter-spacing: .015em; }
.brand-lockup-copy span { margin-top: .25rem; color: var(--ink-600); font-size: .66rem; }
.public-links { margin: 0; padding: 0; display: flex; justify-content: center; gap: .2rem; list-style: none; }
.public-links a { display: block; padding: .6rem .7rem; border-radius: .55rem; color: var(--ink-600); font-size: var(--text-sm); font-weight: 600; text-decoration: none; transition: color var(--motion-base), background var(--motion-base); }
.public-links a:hover, .public-links a.is-active { background: var(--smoke-100); color: var(--ink-950); }
.public-actions { display: flex; align-items: center; gap: .45rem; }
.public-actions .button { min-height: 2.5rem; padding: .5rem .85rem; font-size: var(--text-sm); }
.public-menu-button { width: 2.6rem; height: 2.6rem; display: none; place-items: center; border: 1px solid var(--line); border-radius: .7rem; background: var(--white); cursor: pointer; }

.public-footer { padding: 1rem 1rem max(1rem, env(safe-area-inset-bottom)); }
.public-footer-inner {
    width: min(var(--content), calc(100vw - 2rem)); min-height: 7rem; margin: 0 auto; padding: 1.35rem 1.5rem;
    display: flex; align-items: center; justify-content: space-between; gap: 2rem; border: 1px solid var(--line);
    position: relative; overflow: hidden; isolation: isolate; border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at 9% 0%, rgba(143,161,171,.22), transparent 36%),
        linear-gradient(135deg, var(--ink-800), var(--ink-950));
    color: var(--white); box-shadow: var(--elevation-focus), inset 0 1px 0 rgba(255,255,255,.1);
}
.public-footer-inner::after { content: ""; position: absolute; z-index: -1; right: -5rem; bottom: -8rem; width: 18rem; height: 18rem; border: 1px solid rgba(255,255,255,.07); border-radius: 50%; }
.public-footer-brand { display: grid; justify-items: start; }
.public-footer-brand > strong { font: 700 1.38rem/1.08 var(--font-brand); letter-spacing: .015em; }
.public-footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .2rem 1.1rem; }
.public-footer-links a { padding: .36rem 0; color: var(--smoke-200); font-size: .69rem; text-decoration: none; transition: color var(--motion-base), transform var(--motion-base); }
.public-footer-links a:hover { color: var(--white); transform: translateY(-1px); }

/* Public/editorial composition */
.home-hero, .hero { position: relative; overflow: clip; isolation: isolate; }
.home-hero-inner, .hero-inner, .shell, .premium-container, .feed-container, .resource-main {
    width: min(var(--content), calc(100% - 2.5rem)); margin-inline: auto;
}
.home-hero-inner { min-height: 39rem; padding: 5rem 0; display: grid; grid-template-columns: minmax(0,1.05fr) minmax(22rem,.95fr); align-items: center; gap: clamp(2.5rem, 7vw, 6rem); }
.home-hero::before { content: ""; position: absolute; z-index: -1; width: 31rem; height: 31rem; top: 4rem; right: -13rem; border-radius: 50%; background: radial-gradient(circle, rgba(143,161,171,.2), transparent 67%); }
.home-hero h1, .hero h1 { margin: 0; font-size: var(--text-3xl); line-height: 1.02; }
.home-hero-copy, .hero-copy, .lead, .intro { color: var(--ink-600); font-size: var(--text-lg); }
.home-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.8rem; }
.home-note, .fine, .micro { color: var(--ink-600); font-size: var(--text-sm); }
.eyebrow, .epigraph, .step-label, .category-tag {
    margin: 0 0 .75rem; color: var(--steel-600); font-size: var(--text-xs); font-weight: 750; letter-spacing: .065em; text-transform: uppercase;
}
.product-preview {
    position: relative; padding: 1.2rem; border: 1px solid var(--line); border-radius: var(--radius-xl);
    background: linear-gradient(145deg, var(--white), var(--smoke-100)); box-shadow: var(--elevation-focus);
}
.product-preview::before { content: ""; position: absolute; inset: .55rem; border: 1px solid rgba(105,127,139,.14); border-radius: calc(var(--radius-xl) - .35rem); pointer-events: none; }
.preview-top, .preview-brand { position: relative; display: flex; align-items: center; gap: .55rem; }
.preview-top { justify-content: space-between; margin-bottom: 1rem; color: var(--ink-600); font-size: var(--text-xs); }
.preview-brand { color: var(--ink-900); font-weight: 700; }
.preview-brand-mark { width: 2.15rem; height: 2.15rem; display: grid; place-items: center; border-radius: 50%; background: var(--ink-900); color: var(--white); font-family: var(--font-brand); }
.preview-message { position: relative; padding: 1.4rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-nav); }
.preview-message strong { display: block; margin-bottom: .55rem; }
.preview-message p { margin: 0; color: var(--ink-700); }
.preview-steps { position: relative; display: grid; grid-template-columns: repeat(3,1fr); gap: .55rem; margin-top: .7rem; }
.preview-step { padding: .75rem; border-radius: var(--radius-sm); background: var(--signal-soft); color: var(--ink-800); font-size: var(--text-xs); font-weight: 650; }

.home-text-link {
    min-height: 2.75rem; display: inline-flex; align-items: center; padding: .65rem .2rem;
    color: var(--ink-700); font-weight: 650; text-decoration: underline; text-underline-offset: .18em;
}
.home-text-link:hover { color: var(--ink-950); }
.home-hero-visual { display: grid; justify-items: center; gap: 1.15rem; }
.home-hero-portrait {
    position: relative; width: 10.5rem; height: 10.5rem; flex: 0 0 auto; overflow: hidden; border-radius: 1.2rem;
    border: 1px solid var(--line-strong); background: var(--smoke-150);
    box-shadow: inset 0 0 0 3px var(--white), var(--elevation-card);
}
.home-hero-portrait .calma-motion-poster, .home-hero-portrait video { object-position: center 22%; }
.home-chat-preview {
    width: 100%; padding: 1rem 1.05rem 1.1rem; border: 1px solid var(--line);
    border-radius: var(--radius-xl); background: var(--smoke-75); box-shadow: var(--elevation-focus);
}
.home-chat-preview .message-row { width: 100%; margin: 0; }
.home-chat-preview .bubble.ai { max-width: 100%; }
.home-chat-preview .bubble.ai p:last-child { margin-bottom: 0; }
.home-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.home-card {
    min-height: 9.25rem; padding: 1.15rem; border: 1px solid var(--line); border-radius: var(--radius-lg);
    background: var(--white); box-shadow: var(--elevation-card); color: var(--ink-900); text-decoration: none;
    transition: transform var(--motion-base) var(--ease-out), border-color var(--motion-base), box-shadow var(--motion-base);
}
.home-card:hover { border-color: var(--steel-400); transform: translateY(-3px); box-shadow: var(--elevation-focus); }
.home-card strong { display: block; margin: 0 0 .45rem; }
.home-card span { display: block; color: var(--ink-600); font-size: .84rem; line-height: 1.5; }
.home-legal-line { max-width: 42rem; margin: 0 auto; text-align: center; color: var(--ink-600); font-size: .84rem; line-height: 1.5; }
.home-firm-strip {
    display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 1.4rem;
    padding: 1.25rem 1.4rem; border: 1px solid var(--line); border-radius: var(--radius-lg);
    background: var(--white); box-shadow: var(--elevation-card);
}
.home-firm-strip .eyebrow { margin-bottom: .35rem; }
.home-firm-strip p { margin: 0; color: var(--ink-600); font-size: .84rem; line-height: 1.5; }

.public-section { width: min(var(--content), calc(100% - 2.5rem)); margin: 0 auto; padding: clamp(3.5rem, 8vw, 6.2rem) 0; }
.topics-section { border-block: 1px solid var(--line); background: var(--smoke-75); }
.section-heading { max-width: 47rem; margin-bottom: 1.2rem; }
.section-heading h2, .final-cta h2 { margin: 0; font-size: var(--text-2xl); line-height: 1.12; }
.section-heading p:not(.eyebrow), .final-cta p { color: var(--ink-600); }
.steps-grid, .topics-grid, .scope-grid, .tools-grid, .plans-grid, .grid, .resource-grid, .areas-grid, .paths-grid, .key-grid { display: grid; gap: 1rem; }
.steps-grid, .tools-grid, .plans-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.topics-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.scope-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.step-card, .topic-card, .scope-card, .tool-card, .plan-summary, .card-premium, .resource-card, .news-card, .area-card, .path-card, .article-card, .content-card, .panel, .section-box, .glass-card, .form-container, .collaboration-form-shell {
    border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-card);
}
.step-card, .topic-card, .scope-card, .tool-card, .plan-summary, .card-premium, .resource-card, .news-card, .area-card, .path-card { padding: 1.5rem; }
.topic-card, .tool-card, .card-premium, .resource-card, .guide-link { color: var(--ink-900); text-decoration: none; transition: transform var(--motion-base) var(--ease-out), border-color var(--motion-base), box-shadow var(--motion-base); }
.topic-card:hover, .tool-card:hover, .card-premium:hover, .resource-card:hover, .guide-link:hover { border-color: var(--steel-400); transform: translateY(-3px); box-shadow: var(--elevation-focus); }
.step-number, .icon, .resource-icon { width: 2.7rem; height: 2.7rem; display: grid; place-items: center; margin-bottom: 1.25rem; border-radius: .75rem; background: var(--signal-soft); color: var(--signal-strong); }
.step-card h3, .topic-card strong, .tool-card h3, .plan-summary h3, .card-premium h3, .resource-card h3 { margin: 0 0 .5rem; }
.step-card p, .topic-card span, .tool-card p, .plan-summary p, .card-premium p, .resource-card p { color: var(--ink-600); }
.status, .tool-status, .category-count, .date-tag, .guide-label, .badge, .status-tag { display: inline-flex; align-items: center; padding: .3rem .55rem; border-radius: var(--radius-round); background: var(--signal-soft); color: var(--signal-strong); font-size: var(--text-xs); font-weight: 650; }
.firm-card, .closing-card, .cta {
    padding: clamp(2rem,5vw,3.25rem); border: 1px solid rgba(255,255,255,.09); border-radius: var(--radius-xl);
    background: linear-gradient(145deg, var(--ink-900), var(--ink-800)); color: var(--white); box-shadow: var(--elevation-focus);
}
.firm-card { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 2rem; }
.firm-card h2, .closing-card h2, .cta h2 { color: var(--white); }
.firm-card p, .closing-card p, .cta p { color: var(--smoke-200); }
.firm-card .button, .closing-card .button, .cta .button { background: var(--white); color: var(--ink-900); }
.plan-summary.is-featured { border-color: var(--steel-400); box-shadow: var(--elevation-focus); }
.plan-price { color: var(--signal-strong); font-size: var(--text-xl); font-weight: 700; }
.faq-list { max-width: 56rem; }
.faq-list details, .faq { margin-bottom: .65rem; padding: 0 1.2rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.faq-list summary, .faq summary { min-height: 3.7rem; display: flex; align-items: center; font-weight: 650; cursor: pointer; }
.final-cta { text-align: center; }

/* Dense public explanation: scoped away from the product/chat shell. */
.about-page .home-hero-inner { min-height: 31rem; padding: 3rem 0; gap: clamp(2rem,5vw,4rem); }
.about-page .home-hero-copy { max-width: 42rem; font-size: .96rem; line-height: 1.58; }
.about-page .home-note { max-width: 42rem; margin-bottom: 0; font-size: .75rem; line-height: 1.48; }
.about-page .trust-strip { border-block: 1px solid var(--line); background: rgba(255,255,255,.58); }
.about-page .trust-strip-inner { width: min(var(--content),calc(100% - 2.5rem)); min-height: 2.7rem; margin: 0 auto; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .35rem 1.5rem; color: var(--ink-600); font-size: .7rem; }
.about-page .trust-strip-inner span { display: inline-flex; align-items: center; gap: .45rem; }
.about-page .trust-strip-inner span::before { content: ""; width: .34rem; height: .34rem; border-radius: 50%; background: var(--accent-blue); box-shadow: 0 0 0 3px color-mix(in srgb,var(--accent-blue) 10%,transparent); }
.about-page .public-section { padding: 2.65rem 0; }
.about-page .section-heading { margin-bottom: 1rem; }
.about-page .section-heading h2 { font-size: clamp(1.35rem,2.25vw,1.75rem); }
.about-page .section-heading > p:not(.eyebrow) { margin: .45rem 0 0; font-size: .84rem; line-height: 1.52; }
.about-page .step-card,.about-page .topic-card,.about-page .scope-card,.about-page .tool-card,.about-page .plan-summary { padding: 1.15rem; }
.about-page .step-card p,.about-page .tool-card p,.about-page .plan-summary p,.about-page .scope-card li { font-size: .78rem; line-height: 1.5; }
.about-page .topic-card span { margin-top: .28rem; display: block; font-size: .75rem; line-height: 1.46; }
.about-page .firm-card { padding: 1.75rem 2rem; }
.about-page .firm-card h2 { margin: 0 0 .4rem; font-size: 1.3rem; }
.about-page .firm-card p { margin: 0; font-size: .8rem; line-height: 1.55; }
.about-page .faq-list { max-width: 40rem; }
.about-page .faq-list summary { min-height: 3rem; font-size: .84rem; }
.about-page .faq-list details p { margin-top: 0; font-size: .78rem; }
.about-page .faq-section { padding-bottom: 1.15rem; }
.about-page .final-cta { padding-block: 1.85rem; }
.about-page .final-cta p { max-width: 46rem; margin: .45rem auto .9rem; font-size: .8rem; line-height: 1.5; }
.about-page .home-tools, .about-page .home-guides, .about-page .home-firm { padding-top: 2.15rem; padding-bottom: 2.15rem; }
.about-page .home-legal { padding-block: 1.15rem; }
.about-page .home-card { min-height: 9.25rem; padding: 1.15rem; }
.about-page .home-firm-strip { padding: 1.15rem 1.25rem; }
.about-page .topics-section { border-block: 0; background: transparent; }

/* Home: direct product entry, built as a single visual system. */
.calma-home main {
    overflow: hidden;
    background:
        radial-gradient(circle at 84% 8%, rgba(105,127,139,.13), transparent 27rem),
        linear-gradient(180deg, #fbfcfd 0%, var(--smoke-75) 45%, #fbfcfd 100%);
}
.calma-home-shell { width: min(var(--content), calc(100% - 2.5rem)); margin-inline: auto; }
.calma-home-hero { position: relative; min-height: 42rem; display: grid; align-items: center; isolation: isolate; border-bottom: 1px solid rgba(76,91,101,.12); }
.calma-home-hero__glow {
    position: absolute; z-index: -1; width: 38rem; height: 38rem; right: -12rem; top: -8rem; border-radius: 50%;
    background: radial-gradient(circle, rgba(77,134,164,.18), rgba(143,161,171,.08) 42%, transparent 69%);
    filter: blur(1px); pointer-events: none;
}
.calma-home-hero__grid { padding-block: clamp(4.4rem,7vw,6.7rem); display: grid; grid-template-columns: minmax(0,1fr) minmax(25rem,.88fr); align-items: center; gap: clamp(3rem,7vw,6.3rem); }
.calma-home-hero__copy { max-width: 42rem; }
.calma-home-kicker { margin: 0 0 .85rem; color: var(--steel-600); font-size: .7rem; font-weight: 750; letter-spacing: .075em; line-height: 1.35; text-transform: uppercase; }
.calma-home-kicker > span { width: .45rem; height: .45rem; display: inline-block; margin-right: .42rem; border-radius: 50%; background: var(--accent-blue); box-shadow: 0 0 0 5px color-mix(in srgb,var(--accent-blue) 10%,transparent), 0 0 18px color-mix(in srgb,var(--accent-blue) 45%,transparent); vertical-align: .05rem; }
.calma-home-hero h1 { max-width: 44rem; margin: 0; color: var(--ink-950); font-size: clamp(2.55rem,4.7vw,4.5rem); font-weight: 700; letter-spacing: -.052em; line-height: .98; text-wrap: balance; }
.calma-home-lead { max-width: 39rem; margin: 1.35rem 0 0; color: var(--ink-600); font-size: clamp(.98rem,1.4vw,1.08rem); line-height: 1.65; }
.calma-home-actions { margin-top: 1.75rem; display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }
.calma-home-actions .button { min-height: 3rem; padding-inline: 1.15rem; }
.calma-home-primary { gap: .55rem; box-shadow: 0 15px 32px rgba(20,26,31,.18); }
.calma-home-micro { margin: .8rem 0 0; display: flex; align-items: flex-start; gap: .42rem; color: var(--ink-600); font-size: .7rem; line-height: 1.5; }
.calma-home-micro i { margin-top: .12rem; color: var(--steel-500); }
.calma-home-trust { margin: 1.65rem 0 0; padding: 1rem 0 0; display: flex; flex-wrap: wrap; gap: .65rem 1.2rem; border-top: 1px solid var(--line); list-style: none; }
.calma-home-trust li { display: inline-flex; align-items: center; gap: .43rem; color: var(--ink-700); font-size: .72rem; font-weight: 650; }
.calma-home-trust i { color: var(--steel-600); }

.calma-home-product {
    position: relative; padding: 1.05rem; overflow: hidden; border: 1px solid rgba(255,255,255,.09); border-radius: 1.55rem;
    background:
        radial-gradient(circle at 82% -8%, rgba(115,173,202,.3), transparent 38%),
        linear-gradient(145deg, #303941, #171c20 68%);
    box-shadow: 0 32px 72px rgba(20,26,31,.25), inset 0 1px 0 rgba(255,255,255,.12);
}
.calma-home-product::after { content: ""; position: absolute; inset: .52rem; border: 1px solid rgba(255,255,255,.07); border-radius: 1.18rem; pointer-events: none; }
.calma-home-product__top { position: relative; z-index: 1; min-height: 3.4rem; padding: .15rem .2rem .8rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--white); }
.calma-home-product__identity { display: flex; align-items: center; gap: .72rem; }
.calma-home-product__identity > span:last-child { display: grid; gap: .12rem; }
.calma-home-product__identity strong { font-size: .82rem; }
.calma-home-product__identity small { color: var(--smoke-200); font-size: .64rem; }
.calma-home-product__avatar { width: 2.65rem; height: 2.65rem; border: 1px solid rgba(255,255,255,.2); border-radius: .72rem; box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.calma-home-available { display: inline-flex; align-items: center; gap: .4rem; color: var(--smoke-100); font-size: .65rem; font-weight: 650; }
.calma-home-available > span { width: .46rem; height: .46rem; border-radius: 50%; background: #86d6c4; box-shadow: 0 0 0 4px rgba(134,214,196,.12), 0 0 13px rgba(134,214,196,.55); }
.calma-home-user-message { position: relative; z-index: 1; width: 82%; margin-left: auto; padding: .82rem .92rem; border: 1px solid rgba(188,214,226,.62); border-radius: 1rem 1rem .3rem 1rem; background: #eef7fb; color: var(--ink-900); font-size: .76rem; line-height: 1.48; box-shadow: 0 8px 22px rgba(0,0,0,.12); }
.calma-home-file { position: relative; z-index: 1; width: 84%; margin: .65rem 0 0 auto; padding: .67rem .75rem; display: grid; grid-template-columns: 2rem minmax(0,1fr) auto; align-items: center; gap: .6rem; border: 1px solid rgba(255,255,255,.12); border-radius: .78rem; background: rgba(255,255,255,.08); color: var(--white); }
.calma-home-file > i:first-child { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: .55rem; background: rgba(255,255,255,.1); color: #f1b4b4; }
.calma-home-file > i:last-child { color: #86d6c4; font-size: .7rem; }
.calma-home-file span { min-width: 0; display: grid; gap: .12rem; }
.calma-home-file strong { overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.calma-home-file small { color: var(--smoke-200); font-size: .59rem; }
.calma-home-answer { position: relative; z-index: 1; margin-top: .72rem; padding: 1rem; border-radius: 1rem 1rem 1rem .3rem; background: rgba(255,255,255,.97); box-shadow: 0 10px 25px rgba(0,0,0,.15); }
.calma-home-answer__line { width: 76%; height: .42rem; display: block; margin-bottom: .46rem; border-radius: 1rem; background: linear-gradient(90deg,var(--smoke-200),var(--smoke-100)); }
.calma-home-answer__line.is-wide { width: 94%; }
.calma-home-answer__steps { margin-top: .9rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .45rem; }
.calma-home-answer__steps span { min-height: 2.4rem; padding: .48rem .35rem; display: grid; place-items: center; gap: .22rem; border: 1px solid var(--line); border-radius: .62rem; background: var(--smoke-75); color: var(--ink-700); font-size: .58rem; font-weight: 700; }
.calma-home-answer__steps i { color: var(--steel-600); }
.calma-home-composer { position: relative; z-index: 1; min-height: 3.25rem; margin-top: .72rem; padding: .5rem .55rem .5rem .9rem; display: flex; align-items: center; justify-content: space-between; gap: .7rem; border: 1px solid rgba(255,255,255,.12); border-radius: .9rem; background: rgba(255,255,255,.96); color: var(--ink-500); font-size: .69rem; box-shadow: 0 10px 24px rgba(0,0,0,.14); }
.calma-home-send { width: 2.22rem; height: 2.22rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: .68rem; background: var(--ink-900); color: var(--white); }

.calma-home-process { padding: 2.15rem 0; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.72); }
.calma-home-heading { max-width: 43rem; }
.calma-home-heading h2 { margin: 0; color: var(--ink-950); font-size: clamp(1.65rem,2.7vw,2.35rem); letter-spacing: -.035em; line-height: 1.08; text-wrap: balance; }
.calma-home-heading > p:not(.calma-home-kicker) { margin: .72rem 0 0; color: var(--ink-600); font-size: .88rem; line-height: 1.58; }
.calma-home-heading--row { max-width: none; display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.calma-home-heading--row > div { max-width: 43rem; }
.calma-home-steps { margin: 1.7rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .9rem; list-style: none; }
.calma-home-steps li { min-height: 9.7rem; padding: 1.15rem; display: grid; grid-template-columns: 2.15rem minmax(0,1fr); gap: .85rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: rgba(255,255,255,.8); box-shadow: 0 9px 23px rgba(20,26,31,.055); }
.calma-home-steps li > span { width: 2.15rem; height: 2.15rem; display: grid; place-items: center; border-radius: .65rem; background: var(--signal-soft); color: var(--signal-strong); font-size: .65rem; font-weight: 800; }
.calma-home-steps h3 { margin: .25rem 0 .45rem; color: var(--ink-900); font-size: .92rem; }
.calma-home-steps p { margin: 0; color: var(--ink-600); font-size: .75rem; line-height: 1.5; }

.calma-home-section { padding: clamp(3.4rem,6vw,5rem) 0; }
.calma-home-inline-link { min-height: 2.75rem; display: inline-flex; align-items: center; gap: .45rem; flex: 0 0 auto; color: var(--ink-800); font-size: .75rem; font-weight: 700; text-decoration: none; }
.calma-home-inline-link:hover { color: var(--steel-700); }
.calma-home-inline-link.is-light { color: var(--smoke-100); }
.calma-home-card-grid { margin-top: 1.5rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.calma-home-card { min-height: 13.6rem; padding: 1.25rem; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 1.15rem; background: rgba(255,255,255,.9); color: var(--ink-900); text-decoration: none; box-shadow: 0 12px 30px rgba(20,26,31,.07), inset 0 1px 0 rgba(255,255,255,.9); transition: transform var(--motion-base) var(--ease-out), border-color var(--motion-base), box-shadow var(--motion-base); }
.calma-home-card:hover { transform: translateY(-4px); border-color: var(--steel-400); box-shadow: 0 20px 42px rgba(20,26,31,.11); }
.calma-home-card__icon { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; margin-bottom: 1.1rem; border-radius: .78rem; background: linear-gradient(145deg,var(--signal-soft),#edf4f7); color: var(--signal-strong); box-shadow: inset 0 0 0 1px rgba(105,127,139,.1); }
.calma-home-card strong { margin-bottom: .48rem; font-size: .94rem; line-height: 1.25; }
.calma-home-card > span:not(.calma-home-card__icon) { color: var(--ink-600); font-size: .76rem; line-height: 1.52; }
.calma-home-card em { margin-top: auto; padding-top: 1rem; display: flex; align-items: center; gap: .4rem; color: var(--ink-800); font-size: .69rem; font-style: normal; font-weight: 750; }

.calma-home-professional { padding: 1.2rem 0; }
.calma-home-professional__inner { position: relative; padding: clamp(1.8rem,4vw,2.6rem); overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 2.5rem; border: 1px solid rgba(255,255,255,.09); border-radius: 1.45rem; background: radial-gradient(circle at 92% -10%,rgba(108,164,193,.24),transparent 34%),linear-gradient(140deg,var(--ink-900),var(--ink-800)); color: var(--white); box-shadow: 0 24px 52px rgba(20,26,31,.17); }
.calma-home-professional .calma-home-kicker { color: #a9c8d7; }
.calma-home-professional h2 { margin: 0; color: var(--white); font-size: clamp(1.55rem,2.6vw,2.15rem); letter-spacing: -.03em; }
.calma-home-professional p { max-width: 46rem; margin: .7rem 0 0; color: var(--smoke-200); font-size: .82rem; line-height: 1.58; }
.calma-home-professional .calma-home-professional__fine { color: var(--smoke-300); font-size: .68rem; }
.calma-home-professional__actions { display: grid; justify-items: stretch; gap: .55rem; text-align: center; }
.calma-home-professional__actions .button { min-height: 3rem; white-space: nowrap; background: var(--white); color: var(--ink-950); }
.calma-home-professional__actions .button:hover { background: var(--smoke-100); }

.calma-home-guide-grid { margin-top: 1.45rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; }
.calma-home-guide-grid a { min-height: 7.4rem; padding: 1rem 1.05rem; display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: auto 1fr; gap: .45rem .7rem; align-items: end; border-block: 1px solid var(--line); color: var(--ink-900); text-decoration: none; transition: border-color var(--motion-base), transform var(--motion-base); }
.calma-home-guide-grid a:hover { border-color: var(--steel-500); transform: translateY(-2px); }
.calma-home-guide-grid span { grid-column: 1 / -1; color: var(--steel-600); font-size: .62rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.calma-home-guide-grid strong { font-size: .86rem; line-height: 1.35; }
.calma-home-guide-grid i { color: var(--steel-600); font-size: .72rem; }
.calma-home-faq { border-top: 1px solid var(--line); background: rgba(255,255,255,.55); }
.calma-home-faq__grid { display: grid; grid-template-columns: minmax(16rem,.72fr) minmax(0,1fr); gap: clamp(3rem,7vw,6rem); align-items: start; }
.calma-home-faq .faq-list { max-width: none; }
.calma-home-faq .faq-list details { margin-bottom: .55rem; background: rgba(255,255,255,.88); }
.calma-home-faq .faq-list summary { min-height: 3.35rem; font-size: .8rem; }
.calma-home-faq .faq-list details p { margin-top: 0; color: var(--ink-600); font-size: .75rem; line-height: 1.55; }
.calma-home-closing { padding: 1.4rem 0 3.8rem; }
.calma-home-closing__inner { min-height: 8.2rem; padding: 1.4rem 1.55rem; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 1.2rem; border: 1px solid var(--line); border-radius: 1.25rem; background: rgba(255,255,255,.92); box-shadow: 0 16px 38px rgba(20,26,31,.08); }
.calma-home-closing__mark { width: 3.2rem; height: 3.2rem; display: grid; place-items: center; border-radius: .9rem; background: var(--ink-900); color: var(--white); box-shadow: 0 10px 22px rgba(20,26,31,.18); }
.calma-home-closing h2 { margin: 0; font-size: 1.15rem; }
.calma-home-closing p { margin: .32rem 0 0; color: var(--ink-600); font-size: .76rem; }
.calma-home-closing .button { min-height: 2.85rem; }

@media (max-width: 920px) {
    .calma-home-hero__grid { grid-template-columns: 1fr; gap: 2.4rem; }
    .calma-home-hero__copy { max-width: 45rem; }
    .calma-home-product { width: min(100%,35rem); margin-inline: auto; }
    .calma-home-steps,.calma-home-card-grid,.calma-home-guide-grid { grid-template-columns: 1fr 1fr; }
    .calma-home-steps li:last-child,.calma-home-card:last-child,.calma-home-guide-grid a:last-child { grid-column: 1 / -1; }
    .calma-home-professional__inner { grid-template-columns: 1fr; gap: 1.35rem; }
    .calma-home-professional__actions { justify-items: start; text-align: left; }
}

@media (max-width: 680px) {
    .calma-home-shell { width: calc(100% - 1.5rem); }
    .calma-home-hero { min-height: auto; }
    .calma-home-hero__grid { padding-block: 3rem 2.7rem; gap: 2rem; }
    .calma-home-hero h1 { font-size: clamp(2.2rem,11vw,3.15rem); line-height: 1.01; }
    .calma-home-lead { font-size: .91rem; line-height: 1.6; }
    .calma-home-actions { align-items: stretch; }
    .calma-home-actions .button { width: 100%; justify-content: center; }
    .calma-home-trust { display: grid; grid-template-columns: 1fr; gap: .58rem; }
    .calma-home-product { padding: .78rem; border-radius: 1.2rem; }
    .calma-home-product__top { padding-inline: .08rem; }
    .calma-home-user-message,.calma-home-file { width: 94%; }
    .calma-home-answer { padding: .85rem; }
    .calma-home-answer__steps { gap: .3rem; }
    .calma-home-process { padding: 1.75rem 0; }
    .calma-home-section { padding: 3rem 0; }
    .calma-home-heading--row { display: block; }
    .calma-home-heading--row .calma-home-inline-link { margin-top: .65rem; }
    .calma-home-steps,.calma-home-card-grid,.calma-home-guide-grid { grid-template-columns: 1fr; }
    .calma-home-steps li:last-child,.calma-home-card:last-child,.calma-home-guide-grid a:last-child { grid-column: auto; }
    .calma-home-steps li { min-height: auto; }
    .calma-home-card { min-height: 12.7rem; }
    .calma-home-professional { padding-inline: .75rem; }
    .calma-home-professional__inner { width: 100%; padding: 1.45rem; border-radius: 1.15rem; }
    .calma-home-professional__actions,.calma-home-professional__actions .button { width: 100%; }
    .calma-home-professional__actions .button { justify-content: center; white-space: normal; text-align: center; }
    .calma-home-faq__grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .calma-home-closing { padding: .8rem 0 2.8rem; }
    .calma-home-closing__inner { grid-template-columns: auto minmax(0,1fr); }
    .calma-home-closing .button { grid-column: 1 / -1; justify-content: center; }
}

/* Tool and guide families */
.calma-tool-page main, .calma-tools-index main, .legal-hub-page main, .legal-guide-page main, .editorial main { width: min(var(--content), calc(100% - 2.5rem)); margin: 0 auto; padding: 1.25rem 0 2.25rem; }
.hero { padding: clamp(1.75rem, 4vw, 3rem) 0 2.25rem; }
.calma-tools-index .hero, .legal-hub-page .hero { max-width: 52rem; }
.calma-tools-index .hero { padding: 1.2rem 0 1.1rem; }
.legal-hub-page main { padding-top: .5rem; }
.legal-hub-page .hero { margin-inline: auto; padding: 1rem 0 .75rem; text-align: center; }
.legal-hub-page .hero-copy { margin-inline: auto; }
.legal-hub-page .trust-row { justify-content: center; }
.calma-tools-index .hero h1, .legal-hub-page .hero h1 { font-size: var(--text-2xl); }
.hero-copy { max-width: 45rem; }
.calma-tools-index .hero-copy, .legal-hub-page .hero-copy { font-size: .94rem; line-height: 1.58; }
.trust, .trust-row, .meta-strip { display: flex; flex-wrap: wrap; gap: .55rem 1.05rem; padding: .7rem 0; color: var(--ink-600); font-size: .72rem; }
.grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.tools-index-grid { grid-template-columns: repeat(6,minmax(0,1fr)); align-items: stretch; }
.tools-index-grid > .card-premium { grid-column: span 2; }
.card-premium { position: relative; min-height: 11.5rem; display: flex; flex-direction: column; }
.tools-index-grid .card-premium { min-height: 11.5rem; padding: 1.05rem; background: linear-gradient(145deg,rgba(255,255,255,.99),rgba(245,248,249,.94)); box-shadow: 0 1px 2px rgba(20,26,31,.045),0 13px 31px rgba(20,26,31,.075),inset 0 1px 0 rgba(255,255,255,.98); font-size: .875rem; }
.tool-card-heading { display: flex; align-items: center; gap: .68rem; margin-bottom: .68rem; }
.tool-card-heading .icon { width: 2.35rem; height: 2.35rem; flex: 0 0 auto; margin: 0; box-shadow: inset 0 0 0 1px rgba(105,127,139,.1), 0 7px 17px rgba(20,26,31,.07); }
.tool-card-heading h2 { margin: 0; font-size: .9rem; line-height: 1.24; }
.tools-index-grid .card-premium p { margin: 0; font-size: .74rem; line-height: 1.5; }
.card-premium .tool-access { margin-top: auto; padding-top: .68rem; display: flex; align-items: center; justify-content: space-between; gap: .7rem; color: var(--signal-strong); font-size: .67rem; font-weight: 650; line-height: 1.35; }
.card-premium .tool-access > i { flex: 0 0 auto; transition: transform var(--motion-base) var(--ease-out); }
.card-premium:hover .tool-access > i { transform: translateX(3px); }
.tools-index-grid .card-premium:nth-child(4n + 1) .icon { background: color-mix(in srgb, var(--accent-teal) 13%, white); color: var(--accent-teal); }
.tools-index-grid .card-premium:nth-child(4n + 2) .icon { background: color-mix(in srgb, var(--accent-blue) 13%, white); color: var(--accent-blue); }
.tools-index-grid .card-premium:nth-child(4n + 3) .icon { background: color-mix(in srgb, var(--accent-plum) 13%, white); color: var(--accent-plum); }
.tools-index-grid .card-premium:nth-child(4n) .icon { background: color-mix(in srgb, var(--accent-amber) 14%, white); color: var(--accent-amber); }
.tools-assurance { margin-top: 1.15rem; padding: .8rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(145deg,var(--smoke-75),var(--white)); box-shadow: var(--elevation-nav); }
.tools-assurance > div { min-width: 0; padding: .8rem; display: grid; grid-template-columns: 2.25rem minmax(0,1fr); align-items: center; gap: .75rem; }
.tools-assurance__icon { width: 2.25rem; height: 2.25rem; display: grid; place-items: center; border-radius: .65rem; background: var(--signal-soft); color: var(--signal-strong); }
.tools-assurance > div > span:last-child { display: grid; gap: .18rem; }
.tools-assurance strong { color: var(--ink-900); font-size: .78rem; }
.tools-assurance small { color: var(--ink-600); font-size: .7rem; line-height: 1.48; }
.guide-tools, .feed-controls { margin: 1.2rem 0 2rem; display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; }
.guide-search, .search-wrap { position: relative; flex: 1 1 19rem; }
.guide-search input, .search-wrap input { width: 100%; min-height: 3rem; padding: .7rem 2.7rem .7rem 1rem; border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--white); }
.guide-search i, .search-icon { position: absolute; top: 50%; right: 1rem; transform: translateY(-50%); color: var(--ink-500); }
.filter-row, .filters { display: flex; flex-wrap: wrap; gap: .45rem; }
.filter-button, .filter-btn { min-height: 2.5rem; padding: .5rem .8rem; border: 1px solid var(--line); border-radius: var(--radius-round); background: var(--white); cursor: pointer; }
.filter-button.active, .filter-btn.active, .filter-button[aria-pressed="true"] { border-color: var(--ink-900); background: var(--ink-900); color: var(--white); }
.guide-section { margin-top: 1.25rem; }
.resource-section { margin-top: 1.35rem; }
.legal-hub-page .resource-section > .section-heading h2 { font-size: clamp(1.3rem,2.2vw,1.6rem); line-height: 1.18; }
.legal-hub-page .resource-section > .section-heading p { margin: .45rem 0 0; font-size: .84rem; }
.category-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding-bottom: .9rem; border-bottom: 1px solid var(--line); }
.guide-grid, .resource-grid { margin-top: 1rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: .8rem; }
.resource-card { padding: 1.2rem; font-size: .875rem; }
.resource-card .resource-icon { width: 2.35rem; height: 2.35rem; margin-bottom: .85rem; }
.resource-card h3 { font-size: .9rem; line-height: 1.28; }
.resource-card p { margin: 0 0 .8rem; font-size: .78rem; line-height: 1.52; }
.resource-card a { font-size: .72rem; font-weight: 650; }
.resource-card:nth-child(3n + 1) .resource-icon { background: color-mix(in srgb, var(--accent-blue) 12%, white); color: var(--accent-blue); }
.resource-card:nth-child(3n + 2) .resource-icon { background: color-mix(in srgb, var(--accent-teal) 12%, white); color: var(--accent-teal); }
.resource-card:nth-child(3n) .resource-icon { background: color-mix(in srgb, var(--accent-plum) 12%, white); color: var(--accent-plum); }
.guide-link { min-height: 12rem; padding: 1.15rem; display: flex; flex-direction: column; gap: .55rem; align-self: start; border: 1px solid var(--line); border-radius: var(--radius-md); background: linear-gradient(145deg,var(--white),var(--smoke-75)); }
.guide-link .guide-label { align-self: flex-start; }
.guide-link h4 { margin: .1rem 0 0; font-size: .95rem; line-height: 1.28; }
.guide-link p { margin: 0; color: var(--ink-600); font-size: .78rem; line-height: 1.52; }
.guide-link .guide-arrow { margin-top: auto; padding-top: .3rem; color: var(--signal-strong); font-size: .72rem; font-weight: 650; }
.legal-hub-page .guide-section > .section-heading { margin-bottom: .8rem; }
.legal-hub-page .guide-tools { margin: .8rem 0 1.25rem; }
.legal-hub-page .guide-category { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-nav); overflow: clip; }
.legal-hub-page .guide-category + .guide-category { margin-top: .65rem; }
.legal-hub-page .category-head { min-height: 4.6rem; align-items: center; padding: .7rem .9rem; border: 0; cursor: pointer; list-style: none; }
.legal-hub-page .category-head::-webkit-details-marker { display: none; }
.legal-hub-page .category-head h3 { margin: 0 0 .2rem; font-size: 1rem; line-height: 1.28; }
.legal-hub-page .category-head p { margin: 0; color: var(--ink-600); font-size: .74rem; line-height: 1.45; }
.legal-hub-page .category-meta { display: inline-flex; align-items: center; gap: .65rem; color: var(--ink-500); white-space: nowrap; }
.legal-hub-page .category-chevron { transition: transform var(--motion-base) var(--ease-out); }
.legal-hub-page .guide-category[open] .category-chevron { transform: rotate(180deg); }
.legal-hub-page .guide-category[open] .category-head { border-bottom: 1px solid var(--line); background: var(--smoke-75); }
.legal-hub-page .guide-category:not([open]) > .guide-grid { display: none; }
.legal-hub-page .guide-grid { margin: 0; padding: .8rem; align-items: stretch; gap: .7rem; }
.legal-hub-page .guide-link { height: 11.75rem; min-height: 11.75rem; padding: .9rem; gap: .35rem; overflow: hidden; }
.legal-hub-page .guide-link .guide-label { padding: .22rem .42rem; font-size: .62rem; }
.legal-hub-page .guide-link h4 { font-size: .86rem; line-height: 1.25; }
.legal-hub-page .guide-link p { display: -webkit-box; overflow: hidden; font-size: .72rem; line-height: 1.43; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.legal-hub-page .guide-link .guide-arrow { font-size: .67rem; }
.legal-hub-page .closing-card { min-height: 0; margin-top: 1.25rem; padding: 1.35rem 1.6rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.legal-hub-page .closing-card h2 { margin: 0 0 .35rem; font-size: 1.25rem; }
.legal-hub-page .closing-card p { max-width: 49rem; margin: 0; font-size: .78rem; line-height: 1.52; }

/* Individual legal guides: readable editorial measure with real gutters. */
.legal-guide-page main { padding-top: .75rem; }
.legal-guide-page .crumbs { margin: 0 0 .65rem; display: flex; flex-wrap: wrap; align-items: center; gap: .28rem .48rem; color: var(--ink-500); font-size: .66rem; }
.legal-guide-page .crumbs a { color: var(--ink-600); text-decoration: none; }
.legal-guide-page article > .hero {
    margin-bottom: .85rem; padding: 1.35rem 1.5rem; border: 1px solid var(--line); border-radius: var(--radius-lg);
    background: radial-gradient(circle at 94% -15%,rgba(121,163,184,.18),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.98),rgba(246,249,250,.95));
    box-shadow: var(--elevation-card),inset 0 1px 0 rgba(255,255,255,.96);
}
.legal-guide-page article > .hero h1 { max-width: 54rem; margin: 0; font-size: clamp(1.55rem,2.65vw,2.25rem); line-height: 1.08; text-wrap: balance; }
.legal-guide-page article > .hero .lead { max-width: 55rem; margin: .65rem 0 0; font-size: .86rem; line-height: 1.58; }
.legal-guide-page .reviewed { margin-top: .8rem; padding: .55rem .65rem; border-top: 1px solid var(--line); color: var(--ink-600); font-size: .62rem; }
.legal-guide-page .layout { grid-template-columns: minmax(0,1fr) minmax(15rem,.36fr); gap: .85rem; }
.legal-guide-page .article {
    min-width: 0; padding: 1.35rem 1.5rem; border: 1px solid var(--line); border-radius: var(--radius-lg);
    background: rgba(255,255,255,.96); box-shadow: var(--elevation-card),inset 0 1px 0 rgba(255,255,255,.98);
}
.legal-guide-page .article > :first-child { margin-top: 0; }
.legal-guide-page .article h2 { margin: 1.3rem 0 .48rem; font-size: .98rem; line-height: 1.3; letter-spacing: -.018em; }
.legal-guide-page .article p,.legal-guide-page .article li { color: var(--ink-700); font-size: .78rem; line-height: 1.65; }
.legal-guide-page .article p { margin: .48rem 0; }
.legal-guide-page .article ul { margin: .55rem 0; padding-left: 1.15rem; }
.legal-guide-page .article li + li { margin-top: .34rem; }
.legal-guide-page .key-grid { margin: .65rem 0 1rem; padding: 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; list-style: none; }
.legal-guide-page .key-grid li { position: relative; margin: 0; padding: .72rem .75rem .72rem 1.75rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--smoke-75); }
.legal-guide-page .key-grid li::before { content: ""; position: absolute; top: .95rem; left: .78rem; width: .42rem; height: .42rem; border-radius: 50%; background: var(--accent-blue); box-shadow: 0 0 0 4px color-mix(in srgb,var(--accent-blue) 10%,transparent); }
.legal-guide-page .section-block { margin-top: 1.05rem; padding-top: .15rem; border-top: 1px solid var(--line); }
.legal-guide-page .trust { margin-top: 1.15rem; padding: .85rem; display: block; border: 1px solid var(--line); border-radius: .75rem; background: var(--smoke-75); }
.legal-guide-page .trust h2 { margin-top: 0; }
.legal-guide-page .source-list,.legal-guide-page .related-list { display: grid; gap: .38rem; }
.legal-guide-page .source-list a,.legal-guide-page .related-list a { font-weight: 620; }
.legal-guide-page .faq { padding: 0; border: 0; background: transparent; }
.legal-guide-page .faq details { margin-top: .5rem; padding: 0 .8rem; border: 1px solid var(--line); border-radius: .68rem; background: var(--smoke-75); }
.legal-guide-page .faq summary { min-height: 2.8rem; font-size: .76rem; }
.legal-guide-page .faq details p { padding-bottom: .72rem; }
.legal-guide-page aside { position: sticky; top: 5.6rem; }
.legal-guide-page aside .cta { padding: 1.1rem; border-radius: var(--radius-lg); box-shadow: 0 16px 38px rgba(20,26,31,.14),inset 0 1px 0 rgba(255,255,255,.09); }
.legal-guide-page aside .cta h2 { margin: 0; font-size: .94rem; letter-spacing: -.015em; }
.legal-guide-page aside .cta p { margin: .55rem 0; font-size: .71rem; line-height: 1.5; }
.legal-guide-page aside .cta .button { width: 100%; min-height: 2.55rem; margin-top: .45rem; padding: .52rem .7rem; font-size: .7rem; text-align: center; }
.legal-guide-page aside .cta .fine { margin-bottom: 0; color: var(--smoke-200); font-size: .62rem; }
.feed-container { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.feed-container > .empty, .feed-container > .feed-controls { grid-column: 1 / -1; }
.news-card { min-width: 0; margin: 0; display: flex; flex-direction: column; }
.news-title { margin: .6rem 0; font-size: var(--text-xl); }
.news-summary, .expanded-content, .source-box { color: var(--ink-700); }
.source-box, .news-footer { display: flex; align-items: center; justify-content: space-between; gap: .65rem 1rem; }
.source-box { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.news-footer { margin-top: auto; padding-top: 1rem; }
.news-footer, .byline { color: var(--ink-600); font-size: var(--text-sm); }

/* Forms, tools and results */
.info-main { width: min(58rem, calc(100% - 2.5rem)); margin: 0 auto; padding: 2.5rem 0 5rem; }
.content-card { padding: clamp(1.5rem, 5vw, 3.25rem); }
.content-card > :first-child { margin-top: 0; }
.content-card h1, h1.page-title { margin: 0 0 2rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); font-size: var(--text-2xl); }
.content-card h2 { margin: 2.5rem 0 .8rem; font-size: var(--text-xl); }
.content-card h3 { margin: 2rem 0 .6rem; }
.content-card p, .content-card li { color: var(--ink-700); }
.content-card li + li { margin-top: .45rem; }
.data-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: var(--radius-md); }
.data-table, .comp-table { width: 100%; border-collapse: collapse; background: var(--white); }
.data-table th, .data-table td, .comp-table th, .comp-table td { padding: .8rem 1rem; border-bottom: 1px solid var(--line); text-align: left; }
.data-table th, .comp-table th { background: var(--smoke-100); }

.calculator-deck, .layout, .audit-grid, .calc-grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(19rem,.92fr); gap: 1.2rem; align-items: start; }
.calculator-deck > *,.layout > *,.audit-grid > *,.calc-grid > * { min-width: 0; }
.calculator-header, .audit-header, .tool-intro { margin-bottom: 1.5rem; }
.calculator-brand-row, .calculator-brand-copy, .audit-attribution { display: flex; align-items: center; gap: .75rem; }
.calculator-brand-mark { width: 3rem; height: 3rem; border-radius: 50%; overflow: hidden; }
.section-box, .panel, .result-panel, .empty-state-card, .form-container, .collaboration-form-shell { padding: 1.35rem; }
.section-box + .section-box { margin-top: .8rem; }
.step-title, .det-section-title { margin: 0 0 1rem; font-size: var(--text-lg); }
.form-row, .form-grid, .collaboration-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .9rem; }
.form-group, .collaboration-field, .input-wrap { min-width: 0; display: grid; gap: .4rem; }
.form-group.full, .collaboration-field--full { grid-column: 1 / -1; }
.lbl, label, .label { color: var(--ink-700); font-size: var(--text-sm); font-weight: 600; }
input:not([type="checkbox"]):not([type="radio"]), select, textarea, .input-dark {
    width: 100%; min-height: 2.9rem; padding: .72rem .8rem; border: 1px solid var(--line-strong); border-radius: var(--radius-sm);
    background: var(--smoke-50); color: var(--ink-900); box-shadow: inset 0 1px 1px rgba(20,26,31,.025);
}
textarea { min-height: 7rem; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--steel-500); background: var(--white); outline: 3px solid rgba(105,127,139,.15); }
.hint, .fine-print, .privacy, .upload-privacy, .technical { color: var(--ink-600); font-size: var(--text-xs); }
.date-row, .det-row, .sal-row, .fq-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--line); }
.pending-amounts-group { display: grid; gap: .15rem; }
.sal-row--spaced, .field-spacer { margin-top: .65rem; }
.fq-label { margin-bottom: 0; }
.fq-row--last, .det-row--last { border-bottom: 0; }
.det-row--formula { padding: .2rem 0 .55rem; border-bottom: 0; color: var(--ink-600); font-size: var(--text-xs); }
.det-section-title--secondary { margin-top: .35rem; }
.epigraph--centered { text-align: center; }
.loader-status { margin-top: 1.25rem; }
.audit-convention { color: var(--signal-strong); font: 650 var(--text-sm) var(--font-ui); }
.audit-error-state { height: 100%; align-items: center; justify-content: center; color: var(--ink-600); text-align: center; }
.audit-error-state--fatal { color: var(--danger); }
.legal-revision-note { margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--ink-600); font-size: var(--text-xs); }
.highlight, .source, .rule-result, .pay-structure-note, .legal-notice, .warning-box { padding: .9rem 1rem; border-left: 3px solid var(--steel-500); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; background: var(--signal-soft); color: var(--ink-700); }
.result-panel, .result, .analysis-text { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-card); }
.result-panel, .result { position: sticky; top: 6.4rem; }
.total-amount, .date-result { color: var(--ink-950); font-size: var(--text-2xl); font-weight: 700; letter-spacing: -.04em; }
.drop-zone, .collaboration-file { padding: 1.5rem; border: 1px dashed var(--steel-400); border-radius: var(--radius-lg); background: var(--smoke-75); text-align: center; }
.drop-zone-avatar, .empty-state-avatar, .deadline-empty-avatar { width: 5rem; height: 5rem; margin: 0 auto 1rem; overflow: hidden; border-radius: 1rem; background: var(--smoke-150); }
.drop-zone-avatar video, .empty-state-avatar video, .deadline-empty-avatar video { width: 100%; height: 100%; object-fit: cover; }
.pb-help-icon { width: 1.55rem; height: 1.55rem; display: inline-grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; background: var(--white); color: var(--ink-700); }
[role="tooltip"], .tooltip, .pb-tooltip { z-index: 1000; max-width: 18rem; padding: .6rem .75rem; border-radius: var(--radius-sm); background: var(--ink-950); color: var(--white); box-shadow: var(--elevation-focus); font-size: var(--text-xs); }

/* Purpose-built tool layouts: generic grids must never define form geometry. */
.calma-tool-page .tool-intro,.calma-tool-page .calculator-header,.calma-deadline-page .hero { max-width: 52rem; margin-bottom: 1.25rem; }
.calma-tool-page .tool-intro h1,.calma-tool-page .calculator-header h1,.calma-deadline-page .hero h1 { margin: 0; font-size: var(--text-2xl); line-height: 1.12; }
.calma-tool-page .tool-intro > p:last-child,.calculator-lede,.calma-deadline-page .hero > p:last-child { max-width: 49rem; margin: .6rem 0 0; color: var(--ink-600); font-size: .88rem; line-height: 1.58; }
.calma-tool-page .section-box,.calma-deadline-page .panel { background: linear-gradient(145deg,rgba(255,255,255,.99),rgba(248,250,251,.96)); }
.calma-motion-avatar { flex: 0 0 auto; }

/* Payroll review */
.calma-payroll-page .audit-grid { grid-template-columns: minmax(0,1.1fr) minmax(21rem,.9fr); gap: 1.15rem; }
.calma-payroll-page .section-box { padding: 1.35rem; }
.payroll-evidence-guide { margin: .8rem 0 1rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; }
.payroll-evidence-guide > span { min-width: 0; padding: .65rem; display: grid; grid-template-columns: 1.7rem minmax(0,1fr); align-items: center; gap: .08rem .45rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--smoke-75); }
.payroll-evidence-guide i { grid-row: 1 / span 2; width: 1.7rem; height: 1.7rem; display: grid; place-items: center; border-radius: .5rem; background: var(--signal-soft); color: var(--signal-strong); font-size: .72rem; }
.payroll-evidence-guide strong { font-size: .68rem; line-height: 1.2; }
.payroll-evidence-guide small { color: var(--ink-600); font-size: .58rem; line-height: 1.3; }
.payroll-form-explainer { margin: 0 0 1rem; padding: .65rem .75rem; border-left: 3px solid var(--steel-500); border-radius: 0 .55rem .55rem 0; background: var(--signal-soft); color: var(--ink-700); font-size: .68rem; line-height: 1.45; }
.payroll-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem .9rem; }
.payroll-fields .input-wrap { gap: .36rem; }
.payroll-fields .lbl { margin: 0; line-height: 1.25; }
.payroll-fields .lbl span { color: var(--ink-500); font-size: .6rem; font-weight: 500; }
.payroll-fields input { margin: 0; }
.calma-payroll-page .drop-zone { min-height: 10.5rem; margin-top: 1.25rem; padding: 1.15rem; display: grid; place-items: center; align-content: center; gap: .55rem; cursor: pointer; transition: border-color var(--motion-base),background var(--motion-base),transform var(--motion-fast); }
.calma-payroll-page .drop-zone:hover,.calma-payroll-page .drop-zone.dragover { border-color: var(--steel-600); background: var(--signal-soft); transform: translateY(-1px); }
.drop-zone-icon { width: 2.65rem; height: 2.65rem; display: grid; place-items: center; border: 1px solid var(--line); border-radius: .75rem; background: var(--white); color: var(--signal-strong); box-shadow: var(--elevation-nav); }
.calma-payroll-page .drop-zone p { margin: 0; display: grid; gap: .18rem; color: var(--ink-900); font-size: .84rem; }
.calma-payroll-page .drop-zone p span { color: var(--ink-600); font-size: .7rem; }
.calma-payroll-page .upload-privacy { margin: .65rem .1rem .9rem; line-height: 1.45; }
.calma-payroll-page #btn-start-audit { width: min(100%,17rem); margin: 0 auto; display: flex; }
.audit-attribution { max-width: 28rem; margin: .9rem auto 0; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: .7rem; background: rgba(255,255,255,.68); color: var(--ink-700); }
.audit-attribution > i { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border-radius: .55rem; background: var(--signal-soft); color: var(--signal-strong); }
.audit-attribution > span { display: grid; gap: .08rem; }
.audit-attribution strong { font-size: .72rem; }
.audit-attribution small { color: var(--ink-600); font-size: .62rem; line-height: 1.35; }
.calma-payroll-page #results-panel { min-height: 20rem; }
.calma-payroll-page .audit-scroll { min-height: 0; }
.calma-payroll-page .empty-state-card { min-height: 12rem; padding: 1.2rem; display: grid; grid-template-columns: 4.25rem minmax(0,1fr); align-items: center; gap: .85rem 1rem; border: 0; border-radius: .9rem; background: linear-gradient(145deg,var(--smoke-75),var(--white)); box-shadow: inset 0 0 0 1px var(--line); text-align: left; }
.calma-payroll-page .empty-state-avatar { width: 5.5rem; height: 5.5rem; margin: 0; border-radius: .95rem; box-shadow: var(--elevation-nav); }
.calma-payroll-page .payroll-result-symbol { width: 4.25rem; height: 4.25rem; }
.calma-payroll-page .empty-state-copy { min-width: 0; display: grid; gap: .32rem; }
.calma-payroll-page .empty-state-copy strong { font-size: .95rem; }
.calma-payroll-page .empty-state-copy p { margin: 0; color: var(--ink-600); font-size: .76rem; line-height: 1.48; }
.empty-state-support { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .35rem; }
.empty-state-support span { padding: .28rem .48rem; border-radius: var(--radius-round); background: var(--signal-soft); color: var(--signal-strong); font-size: .62rem; font-weight: 650; }
.calma-payroll-page #results-content .analysis-text { padding: 1rem; }
.calma-payroll-page .comp-table { margin-top: .8rem; font-size: .72rem; }

/* Deadline calculator */
.calma-deadline-page .hero { padding: 1.35rem 0 .75rem; }
.calma-deadline-page .layout { grid-template-columns: minmax(0,1.08fr) minmax(20rem,.92fr); gap: 1.15rem; }
.calma-deadline-page .panel { padding: 1.35rem; }
.calma-deadline-page .panel > h2 { margin: 0; font-size: 1.15rem; }
.calma-deadline-page .panel > .intro { margin: .35rem 0 1rem; font-size: .78rem; line-height: 1.5; }
.deadline-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .9rem; }
.deadline-field { min-width: 0; display: grid; align-content: start; gap: .38rem; }
.deadline-field--full { grid-column: 1 / -1; }
.deadline-field label { margin: 0; line-height: 1.38; letter-spacing: normal; overflow-wrap: normal; word-break: normal; }
.deadline-field .hint { display: block; line-height: 1.4; }
.calma-deadline-page .deadline-field[hidden],.calma-deadline-page #procedure-note[hidden] { display: none; }
.deadline-procedure-note { margin: .15rem 0 0; padding: .65rem .75rem; border-left: 3px solid var(--signal); border-radius: 0 .6rem .6rem 0; background: var(--signal-soft); color: var(--ink-700); font-size: var(--text-xs); line-height: 1.5; }
.calma-deadline-page .check { min-height: 2.75rem; padding: .65rem .75rem; display: flex; align-items: center; gap: .6rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--smoke-75); }
.calma-deadline-page .check input { width: 1rem; height: 1rem; margin: 0; flex: 0 0 auto; }
.calma-deadline-page .check label { font-size: .78rem; cursor: pointer; }
.calma-deadline-page .conciliation { display: none; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .9rem; padding: .85rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--signal-soft); }
.calma-deadline-page .conciliation.visible { display: grid; }
.calma-deadline-page #submit-btn { width: min(100%,18rem); min-height: 2.75rem; margin: 1rem auto 0; display: flex; align-items: center; justify-content: center; border: 0; border-radius: .7rem; background: var(--ink-900); color: var(--white); font-weight: 650; cursor: pointer; }
.calma-deadline-page .privacy { margin: .7rem 0 0; text-align: center; }
.calma-deadline-page .empty-result { min-height: 14rem; display: grid; place-items: center; }
.deadline-empty-copy { display: grid; grid-template-columns: 4.25rem minmax(0,1fr); align-items: center; gap: 1rem; }
.calma-deadline-page .deadline-empty-avatar { width: 6rem; height: 6rem; margin: 0; border-radius: 1rem; box-shadow: var(--elevation-nav); }
.calma-deadline-page .deadline-result-symbol { width: 4.25rem; height: 4.25rem; }
.deadline-empty-copy > span:last-child { display: grid; gap: .35rem; }
.deadline-empty-copy strong { font-size: 1rem; }
.deadline-empty-copy small { color: var(--ink-600); font-size: .75rem; line-height: 1.48; }
.calma-deadline-page .result { display: none; position: static; padding: 0; border: 0; background: transparent; box-shadow: none; }
.calma-deadline-page .result.visible { display: block; }
.calma-deadline-page .below { margin-top: 1rem; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: .75rem; background: rgba(255,255,255,.62); color: var(--ink-600); font-size: .72rem; line-height: 1.48; }

/* Compensation calculator */
.calma-calculator-page .calculator-header { padding-top: .15rem; }
.calma-calculator-page [hidden] { display: none; }
.calculator-heading { display: grid; gap: .55rem; }
.calculator-context-line { width: max-content; max-width: 100%; padding: .35rem .55rem .35rem .4rem; display: inline-grid; grid-template-columns: 1.85rem minmax(0,1fr); align-items: center; gap: .5rem; border: 1px solid var(--line); border-radius: .65rem; background: rgba(255,255,255,.72); color: var(--ink-800); }
.calculator-context-icon { width: 1.85rem; height: 1.85rem; display: grid; place-items: center; border-radius: .5rem; background: var(--signal-soft); color: var(--signal-strong); font-size: .72rem; }
.calculator-context-line > span:last-child { min-width: 0; display: grid; gap: .02rem; }
.calculator-context-line strong { font-size: .68rem; line-height: 1.25; }
.calculator-context-line small { color: var(--ink-600); font-size: .58rem; line-height: 1.25; }
.calma-calculator-page .calc-grid { grid-template-columns: minmax(0,1.32fr) minmax(19rem,.68fr); gap: 1.15rem; }
.calma-calculator-page .section-box,.calma-calculator-page .result-panel { padding: 1.35rem; }
.calma-calculator-page .epigraph { margin: 1.35rem 0 .75rem; padding-top: 1rem; display: flex; align-items: center; gap: .55rem; border-top: 1px solid var(--line); }
.calma-calculator-page .epigraph:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.calma-calculator-page .step-label { margin: 0; padding: .25rem .42rem; border-radius: .45rem; background: var(--signal-soft); font-size: .61rem; }
.calma-calculator-page .step-title { margin: 0; font-size: .88rem; letter-spacing: -.01em; text-transform: none; }
.calma-calculator-page .date-row,.calma-calculator-page .sal-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: .85rem; padding: 0; border: 0; }
.calma-calculator-page .date-row > div,.calma-calculator-page .sal-row > div { min-width: 0; display: grid; gap: .38rem; }
.scenario-boundary { margin: 0 0 1rem; padding: .85rem 1rem; display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: .75rem; align-items: start; border: 1px solid var(--line-strong); border-radius: .85rem; background: linear-gradient(135deg,rgba(237,244,248,.9),rgba(255,255,255,.94)); box-shadow: var(--elevation-card); }
.scenario-boundary > i { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: .55rem; background: var(--ink-900); color: var(--white); font-size: .78rem; }
.scenario-boundary strong { color: var(--ink-900); font-size: .8rem; }
.scenario-boundary p { margin: .22rem 0 0; color: var(--ink-600); font-size: .72rem; line-height: 1.48; }
.calculator-nested-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem; align-items: start; }
.calculator-nested-grid > div { min-width: 0; display: grid; gap: .38rem; }
.calculator-nested-grid--compact { gap: .55rem; }
.calma-calculator-page .lbl { min-width: 0; margin: 0; line-height: 1.38; }
.calma-calculator-page .field-spacer { margin-top: .85rem; display: grid; gap: .38rem; }
.calma-calculator-page .pay-structure-note:empty { display: none; }
.calculator-guided-card { padding: .9rem; display: grid; gap: .7rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--smoke-75); }
.calculator-three-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; align-items: start; }
.calculator-three-grid > div { min-width: 0; display: grid; gap: .35rem; }
.settlement-extra-rows { display: grid; gap: .7rem; }
.settlement-extra-row { position: relative; min-width: 0; margin: 0; padding: .8rem 2.85rem .8rem .8rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem .75rem; align-items: end; border: 1px solid var(--line); border-radius: .7rem; background: var(--white); }
.settlement-extra-row > div:first-of-type { grid-column: 1 / -1; }
.settlement-extra-row > div { min-width: 0; display: grid; gap: .3rem; }
.settlement-remove-row { position: absolute; top: .62rem; right: .62rem; width: 1.75rem; height: 1.75rem; padding: 0; display: grid; place-items: center; border: 1px solid var(--line); border-radius: .45rem; background: var(--white); color: var(--ink-600); cursor: pointer; }
.settlement-remove-row:disabled { opacity: .35; cursor: default; }
.settlement-add-row { width: max-content; min-height: 2.25rem; padding: .45rem .75rem; border: 1px solid var(--line-strong); border-radius: .6rem; background: var(--white); color: var(--ink-800); font: 650 .7rem var(--font-ui); cursor: pointer; }
.settlement-add-row:disabled { opacity: .45; cursor: default; }
.prorated-settlement-note { margin: 0; padding: .65rem .75rem; border-left: 3px solid var(--signal-strong); border-radius: 0 .55rem .55rem 0; background: var(--signal-soft); color: var(--ink-700); font-size: .7rem; line-height: 1.45; }
.nomina-box { margin-top: 1rem; padding: .85rem; display: grid; grid-template-columns: 2rem minmax(0,1fr); align-items: center; gap: .7rem; border: 1px dashed var(--steel-400); border-radius: .75rem; background: var(--smoke-75); cursor: pointer; }
.nomina-box > i { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: .55rem; background: var(--signal-soft); color: var(--signal-strong); }
.nomina-box p { margin: 0; color: var(--ink-600); font-size: .7rem; line-height: 1.45; }
.calma-calculator-page .pending-amounts-group { gap: 0; }
.calma-calculator-page .fq-row { min-height: 3.25rem; padding: .55rem 0; grid-template-columns: minmax(0,1fr) 6.75rem; gap: .75rem; }
.calma-calculator-page .fq-num { width: 6.75rem; min-width: 0; }
.pending-known-amounts-note { margin: .5rem 0 0; color: var(--ink-600); font-size: var(--text-xs); line-height: 1.45; }
.calma-calculator-page .result-panel { top: 5.8rem; }
.result-summary { display: grid; grid-template-columns: 3.6rem minmax(0,1fr); align-items: center; gap: .85rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.calculator-result-symbol,.labor-result-symbol,.deadline-result-symbol,.payroll-result-symbol { width: 3.6rem; height: 3.6rem; display: grid; place-items: center; border: 1px solid var(--line); border-radius: .9rem; background: linear-gradient(145deg,var(--signal-soft),var(--white)); color: var(--signal-strong); box-shadow: var(--elevation-nav); font-size: 1rem; }
.calma-widget { position: relative; width: 5.5rem; height: 5.5rem; display: block; overflow: hidden; border-radius: 1rem; background: var(--smoke-150); box-shadow: var(--elevation-nav); }
.calma-widget video,.calma-widget img { width: 100%; height: 100%; object-fit: cover; }
.total-copy { min-width: 0; display: grid; gap: .2rem; }
.total-label { color: var(--ink-600); font-size: .68rem; font-weight: 650; }
.result-context,#calc-status { color: var(--ink-600); font-size: .68rem; line-height: 1.45; }
.breakdown { padding-top: .85rem; }
.calma-calculator-page .det-section-title { margin: .7rem 0 .2rem; font-size: .82rem; }
.calma-calculator-page .det-row { padding: .55rem 0; font-size: .74rem; }
.calma-calculator-page .det-row--subtotal { margin-top: .2rem; padding-top: .75rem; border-top: 1px solid var(--line-strong); color: var(--ink-900); }
.calma-calculator-page .det-row--grand-total { margin-top: .15rem; padding: .7rem .75rem; border: 0; border-radius: .65rem; background: var(--ink-900); color: var(--white); font-size: .82rem; }
.report-facts { margin-top: .8rem; padding: .55rem .7rem; border-radius: .55rem; background: var(--smoke-75); color: var(--ink-600); font-size: .67rem; line-height: 1.45; }
.calculation-detail { margin-top: .85rem; padding: .75rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--smoke-75); }
.calculation-detail > strong { font-size: .75rem; }
.calculation-detail-list,.calculation-warnings { margin: .45rem 0 0; padding-left: 1.15rem; color: var(--ink-600); font-size: .67rem; line-height: 1.5; }
.calculation-warnings { color: var(--ink-700); }
.calculator-actions { margin-top: .85rem; display: grid; grid-template-columns: 1fr; gap: .55rem; }
.calma-calculator-page .btn-action { width: 100%; min-height: 2.65rem; margin: 0; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; text-align: center; }
.calma-calculator-page .btn-action:disabled { opacity: .45; cursor: default; }
.calma-calculator-page .btn-action--secondary { border: 1px solid var(--line-strong); background: var(--white); color: var(--ink-900); }
.report-generated-line { display: none; }
.calc-method { margin-top: 1rem; padding: 1rem 1.15rem; border: 1px solid var(--line); border-radius: .9rem; background: rgba(255,255,255,.64); }
.calc-method h2 { margin: 0 0 .45rem; font-size: 1rem; }
.calc-method p { margin: .35rem 0; color: var(--ink-600); font-size: .72rem; line-height: 1.48; }

/* Guides and short legal capsules */
.knowledge-intro { padding: 1rem 0 .9rem; display: grid; grid-template-columns: minmax(0,1fr) minmax(20rem,.7fr); align-items: end; gap: 1.5rem; }
.knowledge-intro h1 { margin: 0; font-size: var(--text-2xl); }
.knowledge-intro h2 { margin: .35rem 0 0; font-size: 1.05rem; }
.knowledge-intro p:not(.eyebrow) { max-width: 44rem; margin: .35rem 0 0; color: var(--ink-600); font-size: .8rem; line-height: 1.52; }
.knowledge-search { align-self: end; }
.search-wrap > i { position: absolute; z-index: 1; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--ink-500); pointer-events: none; }
.knowledge-search input,.legal-hub-page .search-wrap input { padding-left: 2.55rem; }
.editorial > .filters { margin: .2rem 0 1rem; }
.editorial .knowledge-filters { margin-top: 1rem; margin-bottom: 1.55rem; }
.knowledge-sort { margin-left: auto; display: inline-flex; align-items: center; gap: .45rem; color: var(--ink-600); font-size: .7rem; font-weight: 600; }
.knowledge-sort select { min-height: 2.2rem; padding: .35rem 1.85rem .35rem .65rem; border: 1px solid var(--line); border-radius: var(--radius-round); background: var(--white); color: var(--ink-800); font: inherit; }
.knowledge-search input { padding-right: 1rem; }
.editorial .feed-container { width: 100%; gap: .8rem; }
.editorial .news-card { min-height: 15rem; padding: 1.1rem; }
.editorial .news-title { margin: .45rem 0; font-size: 1rem; line-height: 1.3; }
.editorial .news-summary,.editorial .expanded-content { margin: 0; font-size: .76rem; line-height: 1.52; }
.editorial .news-card details { margin-top: .65rem; font-size: .74rem; }
.editorial .news-card summary { cursor: pointer; font-weight: 650; }
.news-guide-link { color: var(--signal-strong); font-size: .72rem; font-weight: 650; text-decoration: none; }
.news-guide-link:hover { text-decoration: underline; }
.editorial .news-footer { padding-top: .75rem; }
.editorial .editorial { margin-top: 1rem; padding: 1.1rem 1.25rem; border: 1px solid var(--line); border-radius: .9rem; background: rgba(255,255,255,.62); }
.legal-hub-page .guide-tools { align-items: stretch; }
.legal-hub-page .search-wrap { flex-basis: 100%; }
.legal-hub-page .search-wrap > i { top: 1.5rem; }
.legal-hub-page .guide-search { padding-left: 2.55rem; }
.legal-hub-page .resource-card { min-height: 10.75rem; }

/* Product shell shared by chat and cases */
.product-page { height: 100vh; overflow: hidden; background: var(--smoke-150); }
.product-shell { height: 100%; display: grid; grid-template-columns: 17.25rem minmax(0,1fr); gap: .75rem; padding: .75rem; }
.product-sidebar {
    min-height: 0; display: flex; flex-direction: column; padding: .8rem; border: 1px solid rgba(255,255,255,.08);
    overflow: hidden; border-radius: var(--radius-xl); background: radial-gradient(circle at 14% 4%,rgba(255,255,255,.13),transparent 27%),linear-gradient(135deg,#30373d 0%,var(--ink-900) 43%,var(--ink-950) 100%); color: var(--white); box-shadow: inset 1px 1px 0 rgba(255,255,255,.1),var(--elevation-focus);
}
input[type="file"] { width: 100%; max-width: 100%; min-width: 0; }
input[type="file"].sr-only { width: 1px; max-width: 1px; min-width: 0; }
.product-brand { min-height: 0; padding: .1rem .1rem .55rem; display: grid; gap: .42rem; color: var(--white); }
.product-brand-avatar { width: 100%; aspect-ratio: 1.55; border-color: rgba(255,255,255,.22); border-radius: .95rem; background: var(--ink-800); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08),0 10px 24px rgba(0,0,0,.2); }
.product-brand-avatar .calma-motion-poster,.product-brand-avatar video { object-position: center 25%; }
.product-brand > span:last-child { display: grid; padding-inline: .25rem; }
.product-brand strong { font: 700 1.08rem var(--font-brand); }
.product-brand small { color: var(--steel-300); font-size: .59rem; line-height: 1.3; }
.product-navigation { margin-top: .25rem; display: grid; gap: .12rem; }
.product-navigation a { min-height: 2.42rem; display: flex; align-items: center; gap: .65rem; padding: .45rem .65rem; border-radius: .65rem; color: var(--smoke-200); font-size: .8rem; font-weight: 550; text-decoration: none; transition: color var(--motion-base), background var(--motion-base), transform var(--motion-base); }
.product-navigation a:hover { background: rgba(255,255,255,.07); color: var(--white); transform: translateX(2px); }
.product-navigation a.is-active { background: rgba(255,255,255,.11); color: var(--white); box-shadow: inset 3px 0 0 var(--steel-300); }
.product-navigation i { width: 1.2rem; text-align: center; color: var(--steel-300); }
.product-sidebar-note { margin-top: auto; padding: .65rem .6rem; display: grid; grid-template-columns: auto 1fr; gap: .55rem; border-top: 1px solid rgba(255,255,255,.1); }
.product-sidebar-note p { margin: 0; color: var(--steel-300); font-size: .64rem; line-height: 1.4; }
.product-sidebar-note strong { color: var(--smoke-100); }
.status-dot { width: .5rem; height: .5rem; margin-top: .3rem; border-radius: 50%; background: var(--steel-300); box-shadow: 0 0 0 .25rem rgba(180,193,200,.1); }
.product-sidebar-footer { padding: .42rem .6rem .05rem; color: var(--steel-400); font-size: .56rem; }
.product-sidebar-footer a { color: var(--steel-300); text-decoration-thickness: 1px; text-underline-offset: .15rem; }
.product-stage { min-width: 0; min-height: 0; display: grid; grid-template-rows: 4.5rem minmax(0,1fr); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--smoke-75); box-shadow: var(--elevation-focus); }
.product-header { min-width: 0; padding: .7rem 1.1rem; display: grid; grid-template-columns: minmax(9rem,1fr) auto; align-items: center; gap: 1rem; border-bottom: 1px solid var(--line); background: linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,248,248,.94)); box-shadow: inset 0 1px 0 var(--white),0 8px 22px rgba(20,26,31,.045); backdrop-filter: blur(18px); }
.product-header-title { display: grid; align-content: center; line-height: 1.15; }
.product-header-kicker { color: var(--ink-500); font-size: .66rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.product-header-title strong { margin-top: .18rem; font-size: var(--text-sm); }
.product-header-actions { display: flex; justify-content: flex-end; align-items: center; gap: .55rem; }
.product-main { min-width: 0; min-height: 0; overflow: auto; background: linear-gradient(145deg, var(--smoke-75), var(--smoke-100)); }
.mobile-app-nav { display: none; }

/* Direct-chat components */
.chat-shell { height: 100%; display: grid; grid-template-columns: 17.25rem minmax(0,1fr); gap: .75rem; padding: .75rem; }
.calma-desktop-sidebar {
    min-height: 0; display: flex; flex-direction: column; padding: .8rem; border: 1px solid rgba(255,255,255,.08);
    overflow: hidden; border-radius: var(--radius-xl); background: radial-gradient(circle at 13% 4%,rgba(255,255,255,.15),transparent 28%),linear-gradient(135deg,#30373d 0%,var(--ink-900) 43%,var(--ink-950) 100%); color: var(--white); box-shadow: inset 1px 1px 0 rgba(255,255,255,.1),var(--elevation-focus);
}
.desktop-calma-identity { min-height: 0; padding: .1rem .1rem .4rem; display: grid; gap: .42rem; color: var(--white); text-decoration: none; }
.desktop-calma-avatar__media { width: 100%; height: auto; aspect-ratio: 1.55; display: block; overflow: hidden; border: 1px solid rgba(255,255,255,.24); border-radius: .95rem; background: var(--ink-800); box-shadow: 0 10px 24px rgba(0,0,0,.22),inset 0 0 0 1px rgba(255,255,255,.07); }
.desktop-calma-avatar__media video { width: 100%; height: 100%; display: block; object-fit: cover; }
.desktop-calma-avatar__media .calma-motion-poster,.desktop-calma-avatar__media video { object-position: center 25%; }
.desktop-calma-brand-copy { display: grid; justify-items: center; min-width: 0; padding: .08rem .25rem .02rem; text-align: center; }
.desktop-calma-brand-copy strong { font: 700 1.34rem/1.05 var(--font-brand); letter-spacing: .012em; }
.desktop-sidebar-group--consultation { margin-top: .62rem; }
.desktop-sidebar-group { padding: .25rem .15rem 0; }
.desktop-sidebar-group--consultation { margin-top: 1.05rem; }
.desktop-nav-label { margin: 0 .55rem .35rem; color: var(--steel-400); font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.desktop-sidebar-nav { display: grid; gap: .05rem; }
.desktop-sidebar-nav a, .desktop-library-trigger { min-height: 2.2rem; display: flex; align-items: center; gap: .65rem; padding: .34rem .6rem; border: 0; border-radius: .65rem; background: transparent; color: var(--smoke-200); font-family: var(--font-navigation); font-size: .77rem; font-weight: 500; letter-spacing: -.008em; text-decoration: none; cursor: pointer; }
.desktop-sidebar-nav a:hover, .desktop-library-trigger:hover { background: rgba(255,255,255,.07); color: var(--white); }
.desktop-sidebar-nav i, .desktop-library-trigger > i:first-child { width: 1.15rem; color: var(--steel-300); text-align: center; }
.desktop-sidebar-nav a[href="/herramientas"] i { color: #8ec5ff; }
.desktop-sidebar-nav a[href="/guias"] i { color: #8ed8c4; }
.desktop-sidebar-nav a[href="/planes"] i { color: #c7a9e8; }
.desktop-sidebar-nav a[href="/sabias-que"] i { color: #e7c477; }
.desktop-library-trigger { width: 100%; text-align: left; }
.desktop-library-copy { min-width: 0; flex: 1; display: grid; gap: .1rem; }
.desktop-library-copy strong { font-family: var(--font-navigation); font-size: .78rem; font-weight: 600; letter-spacing: -.012em; }
.desktop-library-copy small { overflow: hidden; color: var(--steel-400); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.desktop-library-count { min-width: 1.35rem; min-height: 1.35rem; display: grid; place-items: center; padding: .1rem; border-radius: var(--radius-round); background: rgba(255,255,255,.1); font-size: .65rem; }
.desktop-library-count[hidden] { display: none; }
.desktop-library-chevron { color: var(--steel-400); font-size: .65rem; }
.desktop-sidebar-signature { margin-top: auto; padding: .55rem .65rem; border-top: 1px solid rgba(255,255,255,.1); }
.desktop-sidebar-signature p { margin: 0; display: grid; gap: .12rem; color: var(--steel-400); font-size: .64rem; }
.desktop-sidebar-signature strong { color: var(--smoke-100); }
.desktop-sidebar-legal { margin: .35rem .65rem 0; color: var(--steel-400); font-size: .54rem; line-height: 1.3; }
.desktop-sidebar-legal a { color: var(--steel-300); }

.chat-stage { min-width: 0; min-height: 0; display: grid; grid-template-rows: 4.5rem minmax(0,1fr); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--smoke-75); box-shadow: var(--elevation-focus); }
.chat-header { position: relative; z-index: 400; min-width: 0; overflow: visible; padding: .65rem 1rem; display: grid; grid-template-columns: minmax(12.5rem,1fr) auto minmax(12.5rem,1fr); align-items: center; gap: 1rem; border-bottom: 1px solid var(--line); background: linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,248,248,.94)); box-shadow: inset 0 1px 0 var(--white),0 8px 22px rgba(20,26,31,.045); backdrop-filter: blur(18px); }
.desktop-header-actions, .chat-auth-zone { display: flex; align-items: center; gap: .35rem; }
.desktop-header-actions button, .chat-auth-zone .button { min-height: 2.45rem; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding: .5rem .65rem; border: 1px solid transparent; border-radius: .65rem; background: transparent; color: var(--ink-600); font-size: var(--text-xs); font-weight: 600; text-decoration: none; cursor: pointer; }
.desktop-header-actions button:hover { border-color: var(--line); background: var(--smoke-100); color: var(--ink-950); }
.calma-header-search { width: 2.45rem; padding: 0; }
.chat-header-spacer { width: 1px; height: 1px; }
.chat-auth-zone { justify-content: flex-end; }
.tier-badge { padding: .3rem .55rem; border-radius: var(--radius-round); background: var(--signal-soft); color: var(--signal-strong); font-size: .65rem; font-weight: 650; }
.account-menu-shell { position: relative; }
.account-menu { position: absolute; z-index: 430; top: calc(100% + .5rem); right: 0; width: 12rem; padding: .4rem; border: 1px solid var(--line); border-radius: .8rem; background: rgba(255,255,255,.98); box-shadow: var(--elevation-focus); }
.account-menu:not([hidden]) { display: grid; }
.account-menu a { min-height: 2.35rem; display: flex; align-items: center; gap: .65rem; padding: .45rem .6rem; border-radius: .55rem; color: var(--ink-700); font-size: .75rem; text-decoration: none; }
.account-menu a:hover { background: var(--smoke-100); color: var(--ink-950); }
.account-menu i { width: 1rem; color: var(--steel-600); text-align: center; }

.workspace { min-width: 0; min-height: 0; position: relative; }
.chat-area { height: 100%; min-width: 0; min-height: 0; display: grid; grid-template-areas: "conversation" "composer"; grid-template-rows: minmax(0,1fr) auto; }
#chat-canvas { grid-area: conversation; min-width: 0; min-height: 0; overflow: auto; padding: 2rem max(1.2rem,calc((100% - 54rem)/2)) 1.25rem; scroll-behavior: smooth; overscroll-behavior: contain; touch-action: pan-y; -webkit-overflow-scrolling: touch; }
.message-row { width: min(100%,54rem); margin: 0 auto 1.35rem; display: flex; flex-direction: column; align-items: flex-start; }
.message-row.is-pending-response { display: none; }
.message-row.user { align-items: flex-end; }
.message-author { margin: 0 0 .42rem; display: flex; align-items: center; gap: .6rem; color: var(--ink-700); font-size: .72rem; font-weight: 650; }
.message-author.user { color: var(--ink-500); text-transform: none; }
.message-author-time { color: var(--ink-500); font-size: .65rem; font-weight: 400; }
.bubble { max-width: min(100%,47rem); color: var(--ink-800); font-size: .8rem; line-height: 1.54; }
.bubble.user { padding: .72rem .95rem; border: 1px solid var(--line); border-radius: var(--radius-lg) var(--radius-lg) .3rem var(--radius-lg); background: var(--white); box-shadow: var(--elevation-nav); }
.bubble.ai { width: 100%; padding: 1.25rem 1.35rem; border: 1px solid var(--line); border-radius: .35rem var(--radius-lg) var(--radius-lg) var(--radius-lg); background: var(--white); box-shadow: var(--elevation-card); }
.bubble--pending { min-height: 0; }
.bubble.ai > :first-child { margin-top: 0; }.bubble.ai > :last-child { margin-bottom: 0; }
.bubble.ai p { margin: 0 0 .78rem; }.bubble.ai li + li { margin-top: .3rem; }
.bubble.ai h2, .bubble.ai h3 { margin: 1.15rem 0 .46rem; color: var(--ink-950); font-size: .9rem; line-height: 1.32; letter-spacing: -.012em; }
.bubble.ai strong { color: var(--ink-950); font-weight: 680; }
.bubble.ai em { color: var(--ink-700); }
.bubble.ai blockquote { margin: 1rem 0; padding: .75rem 1rem; border-left: 3px solid var(--steel-400); background: var(--smoke-75); color: var(--ink-700); }
.message-meta { margin-top: .4rem; display: flex; align-items: center; gap: .25rem; color: var(--ink-500); font-size: .65rem; }
.message-meta.user { justify-content: flex-end; }
.message-meta button { min-height: 1.85rem; display: inline-flex; align-items: center; gap: .38rem; padding: .25rem .45rem; border: 0; border-radius: .45rem; background: transparent; color: var(--ink-500); cursor: pointer; }
.message-meta button:hover { background: var(--smoke-150); color: var(--ink-900); }
.audio-player-wrapper { margin-top: .9rem; padding: .7rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75); }
.message-audio-player { width: 100%; height: 2.3rem; }
.voice-transcript { margin-top: .7rem; padding: .62rem .72rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75); color: var(--ink-700); }
.voice-transcript strong { display: flex; align-items: center; gap: .38rem; color: var(--ink-800); font-size: .68rem; font-weight: 700; }
.voice-transcript strong i { color: var(--signal-strong); }
.voice-transcript p { margin: .38rem 0 0; font-size: .75rem; line-height: 1.48; }
.message-status { display: inline-flex; align-items: center; gap: .35rem; }
.calma-answer-layout { display: grid; gap: .25rem; }
.calma-answer-section { padding: .18rem 0 .55rem; border-bottom: 1px solid var(--line); }
.calma-answer-section:last-child { border-bottom: 0; }
.calma-answer-heading { display: flex; align-items: center; gap: .55rem; }
.calma-answer-section > .calma-answer-heading { margin: 0 0 .42rem; }
.calma-answer-heading-icon { width: 1.6rem; height: 1.6rem; flex: 0 0 auto; display: grid; place-items: center; border-radius: .45rem; background: var(--signal-soft); color: var(--signal-strong); font-size: .7rem; }
.calma-answer-heading--steps .calma-answer-heading-icon { background: color-mix(in srgb, var(--accent-teal) 13%, white); color: var(--accent-teal); }
.calma-answer-heading--legal .calma-answer-heading-icon { background: color-mix(in srgb, var(--accent-blue) 13%, white); color: var(--accent-blue); }
.calma-answer-heading--deadline .calma-answer-heading-icon,.calma-answer-heading--risk .calma-answer-heading-icon { background: color-mix(in srgb, var(--accent-amber) 14%, white); color: var(--accent-amber); }
.calma-answer-heading--document .calma-answer-heading-icon,.calma-answer-heading--options .calma-answer-heading-icon { background: color-mix(in srgb, var(--accent-plum) 13%, white); color: var(--accent-plum); }
.calma-answer-map { margin-bottom: .8rem; display: flex; flex-wrap: wrap; gap: .35rem; }
.calma-answer-map__item { min-height: 2rem; display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .5rem; border: 1px solid var(--line); border-radius: var(--radius-round); background: var(--white); color: var(--ink-600); font-size: .68rem; cursor: pointer; }
.calma-answer-map__item.is-active { border-color: var(--steel-400); color: var(--ink-900); }
.calma-answer-map__item--steps i { color: var(--accent-teal); }.calma-answer-map__item--legal i { color: var(--accent-blue); }.calma-answer-map__item--deadline i,.calma-answer-map__item--risk i { color: var(--accent-amber); }.calma-answer-map__item--document i,.calma-answer-map__item--options i { color: var(--accent-plum); }
.thinking-card { min-height: 5.2rem; display: flex; align-items: center; gap: .85rem; background: linear-gradient(120deg,var(--white),var(--smoke-75),var(--white)); background-size: 200% 100%; animation: thinking-surface 2.2s ease-in-out infinite; }
.thinking-card .calma-motion-avatar, .thinking-card .message-author-avatar { width: 2.3rem; height: 2.3rem; flex: 0 0 auto; overflow: hidden; border-radius: 50%; }
.thinking-copy { display: grid; gap: .15rem; }.thinking-detail { color: var(--ink-500); font-size: .72rem; }
@keyframes thinking-surface { 50% { background-position: 100% 0; } }

.input-deck { grid-area: composer; min-width: 0; max-width: 100%; padding: .6rem max(1rem,calc((100% - 54rem)/2)) .55rem; border-top: 1px solid var(--line); background: rgba(247,248,248,.94); backdrop-filter: blur(18px); }
.global-progress-bar-container { height: 2px; overflow: hidden; border-radius: var(--radius-round); }.global-progress-bar { height: 100%; width: 0; background: var(--steel-500); transition: width var(--motion-base); }
#quota-warning-area:empty { display: none; }
.auth-intake-notice { margin-bottom: .55rem; padding: .65rem .8rem; display: flex; align-items: center; justify-content: space-between; gap: .7rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); font-size: var(--text-sm); }
.auth-intake-actions { display: flex; gap: .35rem; }.auth-intake-actions button { padding: .35rem .55rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--smoke-100); cursor: pointer; }
.input-box { width: 100%; min-width: 0; max-width: 100%; }
#attachments-draft-zone {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: .48rem .6rem;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 11.5rem;
    gap: .5rem;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scroll-snap-type: inline proximity;
    border: 1px solid var(--line);
    border-bottom: 0;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    background: var(--smoke-75);
}
#attachments-draft-zone:empty { display: none; }
.doc-card {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: 3.55rem;
    position: relative;
    display: grid;
    grid-template-columns: 2.25rem minmax(0,1fr) 1.35rem;
    align-items: center;
    gap: .5rem;
    padding: .4rem .38rem .4rem .46rem;
    overflow: hidden;
    scroll-snap-align: start;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--white);
    box-shadow: 0 1px 2px rgba(20,26,31,.05);
    transition: border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast),opacity var(--motion-fast);
}
.doc-card.is-entering { opacity: 0; transform: translateY(.35rem) scale(.98); }
.doc-card:hover { border-color: var(--steel-400); box-shadow: var(--elevation-card); }
.doc-card .doc-preview {
    width: 2.25rem;
    height: 2.25rem;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: .45rem;
    background: var(--smoke-100);
    color: var(--steel-600);
}
.doc-card .doc-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.doc-card .doc-preview i { font-size: .86rem; }
.doc-card .doc-preview .doc-preview-fallback { display: none; }
.doc-card .doc-preview.is-fallback img { display: none; }
.doc-card .doc-preview.is-fallback .doc-preview-fallback { display: block; }
.doc-card .doc-info { min-width: 0; display: grid; gap: .18rem; line-height: 1.2; }
.doc-card .doc-name {
    display: block;
    min-width: 0;
    overflow: hidden;
    color: var(--ink-800);
    font-size: .66rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.doc-card .doc-meta {
    display: block;
    min-width: 0;
    overflow: hidden;
    color: var(--ink-500);
    font-size: .57rem;
    font-weight: 650;
    letter-spacing: .025em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.doc-card .doc-progress-container {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    overflow: hidden;
    background: var(--smoke-150);
}
.doc-card .doc-progress-bar { height: 100%; width: 0; background: var(--steel-600); transition: width var(--motion-base); }
.doc-card.ready .doc-progress-container { display: none; }
.doc-card.error { border-color: color-mix(in srgb,var(--danger) 45%,var(--line)); }
.doc-card.error .doc-meta { color: var(--danger); }
.context-choice { width: min(100%, 30rem); padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--smoke-50); box-shadow: var(--elevation-card); }
.context-choice-copy { margin: 0 0 .8rem; color: var(--ink-700); font-size: var(--text-sm); }
.context-choice-copy i { margin-right: .45rem; color: var(--signal-strong); }
.context-choice-actions { display: flex; gap: .65rem; flex-wrap: wrap; }
.context-choice-actions .button { flex: 1 1 11rem; }
.generated-asset { margin-top: .7rem; }
.generated-audio { padding: .75rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75); }
.generated-audio audio { width: 100%; height: 2.2rem; }
.attachment-list { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,12rem),1fr)); gap: .5rem; width: min(100%,38rem); margin-top: .75rem; }
.attachment-mini-chip {
    min-width: 0; min-height: 2.75rem; padding: .55rem .65rem; display: grid;
    grid-template-columns: 1.45rem minmax(0,1fr) auto; align-items: center; gap: .5rem;
    border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75);
    color: var(--ink-800); font-size: var(--text-xs); font-weight: 620; line-height: 1.3;
    text-decoration: none; transition: border-color var(--motion-fast),background var(--motion-fast),transform var(--motion-fast);
}
a.attachment-mini-chip { cursor: pointer; }
a.attachment-mini-chip:hover,a.attachment-mini-chip:focus-visible { border-color: var(--steel-400); background: var(--white); color: var(--ink-950); outline: none; transform: translateY(-1px); }
.attachment-mini-chip > i { color: var(--signal-strong); text-align: center; }
.attachment-mini-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attachment-mini-action { color: var(--steel-600); font-size: .68rem; font-weight: 700; letter-spacing: .02em; }
.message-cta-row { display: flex; gap: .65rem; flex-wrap: wrap; margin-top: .9rem; padding-top: .9rem; border-top: 1px solid var(--line); }
.lawyer-review-cta {
    margin-top: 1.15rem; padding: 1rem; display: grid; grid-template-columns: 2.65rem minmax(0,1fr) auto;
    align-items: start; gap: .85rem; border: 1px solid var(--line-strong); border-radius: var(--radius-lg);
    background: linear-gradient(145deg,var(--smoke-75),var(--white)); box-shadow: var(--elevation-card);
}
.lawyer-review-cta__icon { width: 2.65rem; height: 2.65rem; display: grid; place-items: center; border-radius: .75rem; background: var(--signal-soft); color: var(--signal-strong); }
.lawyer-review-cta__copy { min-width: 0; display: grid; gap: .42rem; }
.lawyer-review-cta__eyebrow { color: var(--signal-strong); font-size: .66rem; font-weight: 750; letter-spacing: .075em; line-height: 1.25; text-transform: uppercase; }
.lawyer-review-cta__title { color: var(--ink-950); font-size: .92rem; font-weight: 700; line-height: 1.35; }
.lawyer-review-cta__reason { color: var(--ink-700); font-size: .78rem; line-height: 1.55; }
.lawyer-review-cta__button { min-height: 2.65rem; padding: .62rem .85rem; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; border: 1px solid var(--ink-900); border-radius: var(--radius-md); background: var(--ink-900); color: var(--white); font-size: .75rem; font-weight: 650; white-space: nowrap; cursor: pointer; transition: transform var(--motion-fast) var(--ease-out),box-shadow var(--motion-base),background var(--motion-base); }
.lawyer-review-cta__button:hover { background: var(--ink-800); box-shadow: var(--elevation-nav); transform: translateY(-1px); }
.lawyer-review-cta--urgent { border-color: color-mix(in srgb,var(--warning) 28%,var(--line)); box-shadow: inset 3px 0 0 color-mix(in srgb,var(--warning) 70%,var(--steel-500)),var(--elevation-card); }
.lawyer-review-cta--urgent .lawyer-review-cta__icon { background: color-mix(in srgb,var(--warning) 11%,var(--white)); color: var(--warning); }
.lawyer-review-cta__complete { color: var(--success); font-size: var(--text-xs); }
.doc-check { position: absolute; right: 1.72rem; top: .34rem; display: none; font-size: .62rem; color: var(--success); }
.doc-card.ready .doc-check { display: block; }
.doc-card .remove {
    width: 1.35rem;
    height: 1.35rem;
    display: grid;
    place-items: center;
    justify-self: end;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--ink-500);
    cursor: pointer;
}
.doc-card .remove:hover,.doc-card .remove:focus-visible { background: var(--smoke-150); color: var(--ink-950); outline: none; }
.quota-total { color: var(--signal-strong); font-size: var(--text-xs); font-weight: 650; }
.attachment-send-gate { display: block; padding: .35rem .15rem; line-height: 1.45; }
.attachment-send-gate.is-error { color: var(--danger); }
.document-viewer-title { margin: 0; color: var(--ink-900); font-size: 1rem; }
.document-viewer-status { padding: 3rem; color: var(--signal-strong); text-align: center; }
.document-viewer-status p, .document-viewer-status-copy { margin-top: .65rem; }.document-viewer-status--error { color: var(--danger); }
.modal-doc { position: fixed; z-index: 450; inset: 0; display: none; align-items: center; justify-content: center; padding: 1rem; background: rgba(23,27,31,.5); backdrop-filter: blur(5px); }
.modal-doc-content { width: min(68rem,100%); height: min(52rem,100%); display: grid; grid-template-rows: auto minmax(0,1fr) auto; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--white); box-shadow: var(--elevation-focus); }
.modal-doc-header, .modal-doc-footer { padding: .75rem 1rem; display: flex; align-items: center; justify-content: space-between; gap: .65rem; border-bottom: 1px solid var(--line); }.modal-doc-footer { justify-content: flex-end; flex-wrap: wrap; border-top: 1px solid var(--line); border-bottom: 0; }
.modal-doc-body { min-height: 0; overflow: auto; background: var(--smoke-100); }.modal-doc-body iframe, .modal-doc-body img { width: 100%; height: 100%; border: 0; object-fit: contain; }.document-viewer-text { min-height: 100%; margin: 0; padding: 1.25rem; overflow: auto; background: var(--white); color: var(--ink-900); font: 500 var(--text-sm)/1.6 var(--font-ui); white-space: pre-wrap; word-break: break-word; }.document-viewer-close { width: 2.4rem; height: 2.4rem; border: 0; border-radius: .6rem; background: transparent; color: var(--ink-600); cursor: pointer; }
.auth-brand-wordmark { margin-bottom: 2rem; color: var(--ink-950); font: 700 1.5rem var(--font-brand); letter-spacing: .25em; }.auth-muted { color: var(--ink-500); font-size: var(--text-sm); }
.auth-result-page { min-height: 100dvh; padding: 1.5rem; display: grid; place-items: center; }
.auth-result-card { width: min(100%,32rem); padding: 2.5rem 2rem; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--white); box-shadow: var(--elevation-focus); text-align: center; }
.auth-result-card h1 { margin: 0 0 .75rem; font-size: var(--text-2xl); }.auth-result-card > p:not(.eyebrow) { margin: 0 auto 1.5rem; color: var(--ink-600); }.auth-result-icon { width: 3rem; height: 3rem; margin: 0 auto 1rem; display: grid; place-items: center; border-radius: 50%; background: var(--signal-soft); color: var(--signal-strong); }
.reset-password-page .reset-password-card { text-align: left; }
.reset-password-page .reset-brand { margin: 0 0 1.35rem; width: fit-content; }
.reset-password-page .brand-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 24%; }
.reset-password-page .eyebrow { margin: 0 0 .4rem; color: var(--signal-strong); font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.reset-password-page .auth-form { display: grid; padding-top: .15rem; }
.reset-password-page .auth-form label { color: var(--ink-800); font-size: .78rem; font-weight: 650; }
.reset-password-page .auth-status { min-height: 1.2rem; }
.reset-password-page .auth-status.is-error { color: var(--danger); }
.reset-password-page .auth-status.is-success { color: var(--success); }
.reset-password-page .reset-back { display: inline-flex; justify-content: center; width: 100%; margin-top: .85rem; color: var(--signal-strong); font-size: var(--text-sm); font-weight: 600; text-decoration: none; }
.reset-password-page .reset-back:hover { color: var(--ink-950); }

.legal-draft-card { margin-top: 1rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-card); }
.legal-draft-card__header, .legal-draft-card__actions { display: flex; align-items: center; gap: .6rem; padding: .75rem .85rem; }
.legal-draft-card__header { border-bottom: 1px solid var(--line); }.legal-draft-card__title { margin: 0; font-size: var(--text-sm); }.legal-draft-card__eyebrow { color: var(--ink-500); font-size: var(--text-xs); }
.legal-draft-card__editor { max-height: 28rem; overflow: auto; padding: 1rem; white-space: pre-wrap; line-height: 1.62; }
.legal-draft-card__actions { flex-wrap: wrap; border-top: 1px solid var(--line); background: var(--smoke-75); }.legal-draft-action { min-height: 2.35rem; border: 1px solid var(--line); border-radius: .55rem; background: var(--white); color: var(--ink-800); cursor: pointer; }
.input-row { min-height: 4rem; position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: end; gap: .4rem; padding: .55rem .55rem .55rem .85rem; border: 1px solid var(--line-strong); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-focus); transition: border-color var(--motion-base), box-shadow var(--motion-base), transform var(--motion-base); }
.input-row:focus-within { border-color: var(--steel-500); box-shadow: 0 0 0 3px rgba(105,127,139,.12),var(--elevation-focus); transform: translateY(-1px); }
#msg-input { min-height: 2.8rem; max-height: 11rem; padding: .65rem 0; border: 0; resize: none; background: transparent; outline: 0; box-shadow: none; font-size: .85rem; line-height: 1.48; }
#msg-input:focus { background: transparent; outline: 0; }
.composer-controls { display: flex; align-items: center; gap: .1rem; padding-bottom: .12rem; }
.composer-controls button, #send-btn { width: 2.45rem; height: 2.45rem; display: grid; place-items: center; border: 0; border-radius: .7rem; background: transparent; color: var(--ink-500); cursor: pointer; }
.composer-controls button:hover { background: var(--smoke-100); color: var(--ink-900); }
#send-btn { background: var(--ink-900); color: var(--white); box-shadow: 0 2px 5px rgba(20,26,31,.17); }
#send-btn:hover { background: var(--ink-800); transform: translateY(-1px); }
#send-btn.is-preparing-attachments:disabled { opacity: 1; cursor: wait; }
#audio-timer, #mic-cancel-btn { display: none; }
#audio-timer { align-self: center; color: var(--danger); font-size: .7rem; }
.composer-character-status { position: absolute; right: 3.5rem; bottom: .2rem; color: var(--ink-500); font-size: .55rem; }
.composer-character-status[hidden],.composer-character-status:empty { display: none; }
.composer-support-links { margin-top: .38rem; display: flex; justify-content: center; gap: .9rem; }
.composer-support-links a { color: var(--ink-500); font-size: .62rem; text-decoration: none; }
.composer-support-links a:hover { color: var(--ink-900); }
.composer-ai-notice { max-width: 48rem; margin: .3rem auto 0; padding: 0 .6rem; color: var(--ink-500); font-size: .61rem; line-height: 1.35; text-align: center; }
.composer-ai-notice i { margin-right: .16rem; color: var(--accent-600); }
.composer-ai-notice strong { color: var(--ink-700); font-weight: 600; }
.composer-ai-notice a { color: inherit; text-decoration: underline; text-underline-offset: .15em; }
.composer-ai-notice a:hover { color: var(--ink-900); }

.drop-zone-overlay { position: fixed; z-index: 10000; inset: 1rem; flex-direction: column; align-items: center; justify-content: center; border: 2px dashed var(--steel-400); border-radius: var(--radius-xl); background: rgba(23,27,31,.9); color: var(--white); backdrop-filter: blur(12px); }
.drop-zone-overlay:not([hidden]) { display: flex; }.drop-zone-overlay i { font-size: 2.4rem; }.drop-zone-overlay h2 { color: var(--white); }.drop-zone-overlay p { color: var(--steel-300); }

.conversation-library-backdrop { position: fixed; z-index: 350; inset: 0; border: 0; background: rgba(23,27,31,.35); backdrop-filter: blur(3px); }
.conversation-library-dialog, #search-overlay, .modal-overlay { position: fixed; z-index: 360; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--white); box-shadow: var(--elevation-focus); }
.conversation-library-dialog { top: 50%; left: 50%; width: min(62rem,calc(100vw - 4rem)); max-height: calc(100dvh - 2rem); padding: 1rem; display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; overflow: hidden; transform: translate(-50%,-50%); }
.conversation-library-dialog[hidden] { display: none; }
.conversation-library-head, .search-overlay-head, .auth-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
.conversation-library-title h2, .search-overlay-copy h2 { margin: 0; font-size: var(--text-lg); }.conversation-library-title p, .search-overlay-copy p { margin: .2rem 0 0; color: var(--ink-600); font-size: var(--text-xs); }
.conversation-library-close, .search-overlay-close, .auth-close { width: 2.35rem; height: 2.35rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--white); cursor: pointer; }
.conversation-library-search, .search-bar-container { margin: .8rem 0; position: relative; display: flex; align-items: center; gap: .5rem; }
.conversation-library-search > i, .search-bar-container > i { position: absolute; left: .8rem; color: var(--ink-500); }
.conversation-library-search input, .search-bar-container input { padding-left: 2.35rem; }
#desktop-conversation-list { min-height: 0; padding: .1rem .25rem .1rem .1rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: start; gap: .5rem; overflow-y: auto; scrollbar-gutter: stable; }
.desktop-case-link { min-width: 0; min-height: 3.35rem; padding: .62rem .7rem; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .6rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--white); color: var(--ink-900); text-decoration: none; box-shadow: 0 3px 10px rgba(20,26,31,.035); transition: border-color var(--motion-base),background var(--motion-base),transform var(--motion-base); }
.desktop-case-link:hover,.desktop-case-link:focus-visible { border-color: var(--steel-400); background: var(--smoke-75); transform: translateY(-1px); }
.desktop-case-link.is-current { border-color: var(--steel-500); background: var(--signal-soft); }
.desktop-case-link strong { min-width: 0; overflow: hidden; font-size: .76rem; font-weight: 650; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.desktop-case-link small { color: var(--ink-500); font-size: .61rem; line-height: 1.2; white-space: nowrap; }
.desktop-case-empty,.conversation-library-empty-search { grid-column: 1 / -1; color: var(--ink-600); font-size: .75rem; }
.conversation-library-footer { margin-top: 1rem; display: flex; gap: .5rem; }.conversation-library-footer a, .conversation-library-footer button { flex: 1; min-height: 2.7rem; display: flex; align-items: center; justify-content: center; gap: .45rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--white); color: var(--ink-800); text-decoration: none; cursor: pointer; }
#search-overlay { top: 6rem; left: 50%; width: min(42rem,calc(100% - 2rem)); max-height: calc(100vh - 8rem); padding: 1rem; display: block; overflow: auto; transform: translateX(-50%); opacity: 0; pointer-events: none; }
#search-overlay[hidden] { display: none; }
#search-overlay[aria-hidden="false"] { opacity: 1; pointer-events: auto; }
.search-overlay-mark { width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border-radius: .65rem; background: var(--signal-soft); color: var(--signal-strong); }
.search-overlay-copy { flex: 1; }.search-submit { min-height: 2.9rem; padding: .6rem .8rem; border: 0; border-radius: .6rem; background: var(--ink-900); color: var(--white); cursor: pointer; }
.command-palette-head { display: flex; justify-content: space-between; color: var(--ink-500); font-size: .68rem; }.command-palette-actions, #search-results { display: grid; gap: .35rem; margin-top: .6rem; }

.modal-overlay { inset: 0; display: grid; place-items: center; border: 0; border-radius: 0; background: rgba(23,27,31,.42); backdrop-filter: blur(4px); }
.modal-overlay[hidden] { display: none; }.modal-body { width: min(31rem,calc(100% - 2rem)); max-height: calc(100vh - 2rem); overflow: auto; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--white); box-shadow: var(--elevation-focus); }
.sr-only { position: absolute; width: 1px; max-width: 1px; min-width: 0; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); border: 0; white-space: nowrap; }
.auth-text-action { min-height: 2.75rem; border: 0; background: transparent; color: var(--signal-strong); font: 600 var(--text-sm) var(--font-ui); text-decoration: underline; text-underline-offset: .25rem; cursor: pointer; }
.auth-recovery-status, .auth-notice, #form-register { display: none; }
.auth-notice { padding: 2rem; text-align: center; color: var(--ink-700); }
.auth-notice-icon { margin-bottom: 1rem; color: var(--signal-strong); font-size: 2rem; }
.auth-notice .button { margin: .75rem .25rem 0; }
.referral-modal-body { max-width: 31rem; padding: 0; }
.referral-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.35rem; border-bottom: 1px solid var(--line); }
.referral-modal-head h2 { margin: 0; font: 700 1rem var(--font-brand); color: var(--ink-900); }
.referral-modal-copy { display: grid; gap: .75rem; padding: 1.35rem; }
.referral-modal-copy p { margin: 0; color: var(--ink-600); font-size: var(--text-sm); line-height: 1.55; }
.referral-modal-copy .referral-loading { color: var(--ink-500); text-align: center; }
.referral-form { display: grid; gap: .8rem; }.referral-shell { display: grid; min-height: 0; }.referral-scroll { min-height: 0; overflow-y: auto; touch-action: pan-y; }.referral-actions { padding: .9rem 1.35rem max(.9rem,env(safe-area-inset-bottom)); display: flex; gap: .65rem; border-top: 1px solid var(--line); background: var(--white); }.referral-actions > * { min-height: 2.75rem; flex: 1; }
.referral-consent.is-invalid { color: var(--danger); }.referral-consent.is-invalid input { outline: 2px solid var(--danger); }
.auth-tabs { display: flex; gap: .35rem; }.auth-tab { min-height: 2.5rem; padding: .5rem .75rem; border: 0; border-radius: .6rem; background: transparent; color: var(--ink-600); cursor: pointer; }.auth-tab.is-active { background: var(--smoke-100); color: var(--ink-950); }
.auth-form { padding-top: 1rem; gap: .75rem; flex-flow: column nowrap; align-items: stretch; }.auth-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }.auth-field { min-width: 0; position: relative; }.auth-form > input,.auth-field input,.auth-grid > input,.auth-form select { width: 100%; min-width: 0; min-height: 2.8rem; padding: .65rem .75rem; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--white); }.auth-field input { padding-right: 3rem; }.auth-submit { width: 100%; min-height: 2.8rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ink-900); border-radius: var(--radius-md); background: var(--ink-900); color: var(--white); font-weight: 650; cursor: pointer; }.password-toggle { position: absolute; top: .2rem; right: .2rem; width: 2.4rem; height: 2.4rem; border: 0; background: transparent; cursor: pointer; }.auth-help, .auth-status { color: var(--ink-600); font-size: .72rem; }
#pb-global-tooltip { position: fixed; z-index: 10000; display: none; max-width: 17rem; padding: .65rem .75rem; border-radius: .55rem; background: var(--ink-950); color: var(--white); box-shadow: var(--elevation-focus); font-size: .72rem; pointer-events: none; opacity: 0; }

/* History/private surface */
.history-header { min-height: 4.5rem; padding: .7rem 1rem; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: var(--white); }
.history-brand { display: flex; align-items: center; gap: .7rem; color: var(--ink-900); text-decoration: none; }
.back-btn { min-height: 2.5rem; display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .75rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); color: var(--ink-800); text-decoration: none; }
.history-new-consultation { display: inline-flex; align-items: center; gap: .5rem; }
.tabs { display: flex; gap: .4rem; margin-bottom: 1rem; border-bottom: 1px solid var(--line); }
.tab-btn { padding: .8rem 1rem; border: 0; border-bottom: 2px solid transparent; background: transparent; cursor: pointer; }
.tab-btn.active { border-bottom-color: var(--ink-900); color: var(--ink-950); }
.section-view { width: min(66rem, calc(100% - 2rem)); margin: 1rem auto; padding: 1.4rem; display: none; }
.section-view.active { display: block; }
.calma-history-page #section-history.section-view.active { width: min(78rem,calc(100% - 2rem)); padding: 0; display: grid; grid-template-columns: minmax(19rem,.78fr) minmax(0,1.22fr); align-items: start; gap: .9rem; }
.calma-history-page #section-history > .history-list { max-height: calc(100dvh - 7.5rem); padding: .1rem .25rem .1rem .1rem; overflow-y: auto; scrollbar-gutter: stable; }
.calma-history-page .case-detail { min-width: 0; min-height: 28rem; max-height: calc(100dvh - 7.5rem); margin: 0; padding: 1.2rem; position: sticky; top: 1rem; overflow-y: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-card); scrollbar-gutter: stable; }
.calma-history-page .case-detail h2 { margin: .15rem 0 .25rem; font-size: 1.05rem; }
.calma-history-page .case-detail h3 { margin: 1.1rem 0 .45rem; font-size: .82rem; }
.calma-history-page .case-detail .detail-block { padding: .85rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--smoke-75); color: var(--ink-700); font-size: .76rem; line-height: 1.58; overflow-wrap: anywhere; }
.calma-history-page .case-detail-back { min-height: 2.1rem; padding: .35rem .55rem; border: 1px solid var(--line); border-radius: .55rem; background: var(--white); color: var(--ink-700); font-size: .68rem; cursor: pointer; }
.empty-state { padding: 1.35rem 1.5rem; text-align: center; color: var(--ink-600); }
.profile-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.field { padding: .85rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }
.field .label { display: block; color: var(--ink-600); font-size: var(--text-xs); }
.history-list { display: grid; gap: .65rem; }
.item-card { width: 100%; min-width: 0; padding: .85rem; display: grid; grid-template-columns: 3.25rem minmax(0,1fr) auto; align-items: center; gap: .85rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); color: var(--ink-900); box-shadow: var(--elevation-card); text-align: left; cursor: pointer; transition: transform var(--motion-base) var(--ease-out),border-color var(--motion-base),box-shadow var(--motion-base); }
.item-card:hover { border-color: var(--steel-400); transform: translateY(-2px); box-shadow: var(--elevation-focus); }
.item-card .date-col { min-height: 3.25rem; display: grid; place-content: center; border-radius: .7rem; background: var(--signal-soft); color: var(--signal-strong); text-align: center; }
.item-card .day { font-size: 1rem; font-weight: 750; line-height: 1; }.item-card .month { margin-top: .15rem; font-size: .56rem; font-weight: 700; letter-spacing: .06em; }
.item-card .info-col { min-width: 0; }.item-card .item-id { color: var(--ink-500); font-size: .6rem; font-weight: 750; letter-spacing: .06em; }
.item-card .item-desc { margin: .25rem 0 0; overflow: hidden; color: var(--ink-900); font-size: .78rem; font-weight: 600; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.item-card .case-summary { margin: .28rem 0 0; display: -webkit-box; overflow: hidden; color: var(--ink-600); font-size: .68rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.status-pill { padding: .28rem .48rem; border-radius: var(--radius-round); font-size: .58rem; font-weight: 700; letter-spacing: .04em; }.pill-warn { background: var(--signal-soft); color: var(--signal-strong); }.pill-success { background: rgba(37,117,91,.1); color: var(--success); }
.calma-history-page .product-header { grid-template-columns: minmax(7rem,1fr) auto minmax(7rem,1fr); }
.calma-history-page .product-header .tabs { justify-self: center; margin: 0; padding: .2rem; border: 1px solid var(--line); border-radius: .7rem; background: rgba(255,255,255,.72); box-shadow: inset 0 1px 0 var(--white); }
.calma-history-page .product-header .tab-btn { min-height: 2.2rem; padding: .42rem .7rem; border: 0; border-radius: .52rem; color: var(--ink-600); font-size: .75rem; }
.calma-history-page .product-header .tab-btn.active { background: var(--smoke-150); color: var(--ink-950); box-shadow: 0 1px 2px rgba(20,26,31,.08); }
.calma-history-page .product-header-actions .button { min-height: 2.45rem; }

/* Deterministic labour calculator family */
.labor-calculator-intro { display: grid; gap: .35rem; }
.labor-calculator-intro .calculator-context-line { margin-bottom: .35rem; }
.labor-calculator-intro .eyebrow,.labor-calculator-intro h1,.labor-calculator-intro > p:last-child { margin-top: 0; margin-bottom: 0; }
.labor-calculator-layout { display: grid; grid-template-columns: minmax(0,1.32fr) minmax(19rem,.68fr); align-items: start; gap: 1.15rem; }
.labor-calculator-layout > * { min-width: 0; }
.labor-calculator-form-panel,.labor-result-panel { padding: 1.35rem; background: linear-gradient(145deg,rgba(255,255,255,.99),rgba(248,250,251,.96)); }
.labor-section-heading { display: grid; grid-template-columns: 2.65rem minmax(0,1fr); align-items: start; gap: .7rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.labor-section-heading h2 { margin: 0; font-size: 1rem; }
.labor-section-heading p { margin: .22rem 0 0; color: var(--ink-600); font-size: .7rem; line-height: 1.4; }
.labor-tool-icon { width: 2.65rem; height: 2.65rem; display: grid; place-items: center; border-radius: .75rem; background: var(--signal-soft); color: var(--signal-strong); box-shadow: inset 0 0 0 1px rgba(105,127,139,.1); }
.labor-fieldset { min-width: 0; margin: 0; padding: 1rem 0 1.15rem; border: 0; border-bottom: 1px solid var(--line); }
.labor-fieldset legend { width: 100%; max-width: 100%; margin: 0 0 .75rem; padding: 0; display: block; color: var(--ink-900); font-size: .78rem; font-weight: 700; }
.labor-fieldset legend span,.hint-inline { color: var(--ink-500); font-size: .62rem; font-weight: 500; }
.labor-fieldset-copy { margin: 0 0 .7rem; color: var(--ink-600); font-size: .7rem; line-height: 1.48; }
.labor-form-grid { width: 100%; min-width: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .9rem .85rem; }
.labor-form-grid .form-group--full { grid-column: 1 / -1; }
.labor-form-grid .form-group { align-content: start; gap: .38rem; }
.labor-form-grid label { min-height: 0; margin: 0; line-height: 1.38; letter-spacing: normal; overflow-wrap: normal; word-break: normal; }
.labor-form-grid .form-group--full > label { min-height: auto; }
.calma-labor-calculator-page .pb-help-icon { vertical-align: middle; }
.labor-check { margin-top: .55rem; padding: .75rem; display: grid; grid-template-columns: 1.1rem minmax(0,1fr); align-items: start; gap: .6rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--smoke-75); cursor: pointer; }
.labor-check input { width: 1rem; height: 1rem; margin: .12rem 0 0; accent-color: var(--signal-strong); }
.labor-check > span { display: grid; gap: .12rem; }
.labor-check strong { color: var(--ink-900); font-size: .72rem; line-height: 1.35; }
.labor-check small { color: var(--ink-600); font-size: .63rem; line-height: 1.45; }
.labor-conditional[hidden] { display: none; }
.labor-form-grid > [hidden] { display: none; }
.labor-conditional { margin-top: .7rem; }
.labor-repeater { display: grid; gap: .65rem; }
.labor-repeat-row { min-width: 0; position: relative; padding: .75rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) 2rem; align-items: end; gap: .6rem; border: 1px solid var(--line); border-radius: .7rem; background: rgba(255,255,255,.72); }
.labor-repeat-row--debt { grid-template-columns: repeat(2,minmax(0,1fr)) 2rem; }
.labor-repeat-row--debt .labor-remove-row { grid-column: 3; grid-row: 1 / span 2; align-self: center; }
.labor-repeat-row .form-group { gap: .25rem; }
.labor-repeat-row label { font-size: .66rem; }
.labor-repeat-row input,.labor-repeat-row select { min-height: 2.45rem; padding: .5rem .6rem; font-size: .72rem; }
.labor-remove-row { width: 2rem; height: 2rem; display: grid; place-items: center; border: 1px solid var(--line); border-radius: .55rem; background: var(--white); color: var(--ink-600); cursor: pointer; }
.labor-remove-row:disabled { opacity: .35; cursor: not-allowed; }
.labor-add-row { min-height: 2.35rem; margin-top: .65rem; padding: .45rem .7rem; display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--line-strong); border-radius: .6rem; background: var(--white); color: var(--ink-800); font-size: .68rem; font-weight: 650; cursor: pointer; }
.labor-add-row:disabled { opacity: .45; cursor: not-allowed; }
.labor-inline-field { margin-top: .7rem; padding: .75rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--smoke-75); }
.labor-inline-field select { margin-top: .35rem; }
.labor-submit { width: min(100%,18rem); margin: 1rem auto .65rem; display: flex; }
.labor-calculator-form-panel .privacy { margin: 0; text-align: center; line-height: 1.45; }
.labor-calculator-form-panel .form-error { min-height: 0; margin-top: .75rem; }
.labor-result-panel { position: sticky; top: 6rem; }
.labor-result-empty { min-height: 11rem; display: grid; grid-template-columns: 3.6rem minmax(0,1fr); place-content: center; align-items: center; gap: .85rem; }
.labor-result-empty[hidden],.labor-result[hidden] { display: none; }
.labor-result-empty > span:last-child { display: grid; gap: .25rem; }
.labor-result-empty strong { color: var(--ink-900); font-size: .9rem; }
.labor-result-empty small { color: var(--ink-600); font-size: .7rem; line-height: 1.5; }
.labor-result-label { margin: .8rem 0 .2rem; color: var(--ink-500); font-size: .65rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.labor-result-summary { margin: .4rem 0 1rem; color: var(--ink-600); font-size: .72rem; line-height: 1.48; }
.labor-result-breakdown { border-top: 1px solid var(--line); }
.labor-result-row { min-width: 0; padding: .65rem 0; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: .8rem; border-bottom: 1px solid var(--line); color: var(--ink-700); font-size: .72rem; }
.labor-result-row strong { color: var(--ink-950); text-align: right; }
.labor-result-notes { margin-top: 1rem; }
.labor-result-notes[hidden] { display: none; }
.labor-result-notes h3 { margin: 0 0 .45rem; font-size: .76rem; }
.labor-result-notes ul { margin: 0; padding-left: 1rem; color: var(--ink-600); font-size: .67rem; line-height: 1.48; }
.labor-result-notes li + li { margin-top: .35rem; }
.labor-result-notes--warning { padding: .75rem; border-left: 3px solid var(--steel-500); border-radius: 0 .55rem .55rem 0; background: var(--signal-soft); }
.labor-result-deadline { width: 100%; margin-top: 1rem; display: inline-flex; justify-content: center; }
.labor-result-deadline[hidden] { display: none; }
.labor-result-cta { width: 100%; margin-top: 1rem; }
.labor-method { margin-top: 1.15rem; padding: 1.2rem 1.35rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-card); }
.labor-method h2 { margin: 0 0 .55rem; font-size: 1rem; }
.labor-method p { margin: .45rem 0 0; color: var(--ink-700); font-size: .73rem; line-height: 1.56; }
.labor-method .labor-sources { margin-top: .8rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.labor-method a { color: var(--signal-strong); font-weight: 650; }
.labor-duration-table-wrap { width: 100%; margin-top: .85rem; overflow-x: auto; border: 1px solid var(--line); border-radius: .7rem; background: var(--smoke-75); }
.labor-duration-table { width: 100%; border-collapse: collapse; color: var(--ink-700); font-size: .7rem; }
.labor-duration-table caption { padding: .65rem .75rem; color: var(--ink-900); font-size: .72rem; font-weight: 700; text-align: left; }
.labor-duration-table th,.labor-duration-table td { padding: .48rem .75rem; border-top: 1px solid var(--line); text-align: left; }
.labor-duration-table th { background: rgba(255,255,255,.7); color: var(--ink-900); font-weight: 700; }
.labor-duration-table th:last-child,.labor-duration-table td:last-child { text-align: right; }
.labor-method-actions { margin-top: .9rem; display: flex; flex-wrap: wrap; gap: .55rem; }
.labor-method-actions .button-secondary { min-height: 2.45rem; display: inline-flex; align-items: center; justify-content: center; padding: .55rem .75rem; border: 1px solid var(--line-strong); border-radius: .6rem; background: var(--white); text-decoration: none; }
.labor-faq { display: grid; gap: .55rem; }
.labor-faq h2 { margin-bottom: .15rem; }
.labor-faq details { border: 1px solid var(--line); border-radius: .7rem; background: var(--smoke-75); }
.labor-faq summary { cursor: pointer; padding: .72rem .85rem; color: var(--ink-900); font-size: .76rem; font-weight: 700; }
.labor-faq details p { margin: 0; padding: 0 .85rem .8rem; }

/* Calculator visual contract: stable fields, compact assistance and one Calma identity. */
.calma-calculator-page .section-box,.calma-labor-calculator-page .section-box { overflow: clip; }
.calma-calculator-page input:not([type="checkbox"]):not([type="radio"]),
.calma-calculator-page select,
.calma-labor-calculator-page input:not([type="checkbox"]):not([type="radio"]),
.calma-labor-calculator-page select,
.calma-deadline-page input:not([type="checkbox"]):not([type="radio"]),
.calma-deadline-page select,
.calma-payroll-page input:not([type="checkbox"]):not([type="radio"]),
.calma-payroll-page select {
    min-width: 0; max-width: 100%; min-height: 2.75rem; padding: .62rem .72rem; box-sizing: border-box;
    font-family: var(--font-ui); font-size: .76rem; line-height: 1.25; text-overflow: ellipsis;
}
.calma-calculator-page label,.calma-labor-calculator-page label,.calma-deadline-page label,.calma-payroll-page label { min-width: 0; font-family: var(--font-ui); font-size: .72rem; font-weight: 650; letter-spacing: normal; overflow-wrap: normal; word-break: normal; }
.calma-calculator-page .field-hint,.calma-labor-calculator-page .hint,.calma-deadline-page .hint,.calma-payroll-page .hint { font-size: .63rem; line-height: 1.42; }
.calma-calculator-page .lbl,.calma-labor-calculator-page .form-group > label,.calma-deadline-page .deadline-field > label,.calma-payroll-page .lbl { position: relative; margin: 0; line-height: 1.38; letter-spacing: normal; }
.calma-field-help,
:is(.calma-labor-calculator-page,.calma-calculator-page,.calma-deadline-page,.calma-payroll-page) .pb-help-icon {
    position: relative; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; margin: -.72rem -.5rem -.72rem -.32rem; padding: 0;
    display: inline-grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--ink-700);
    vertical-align: middle; cursor: help; font-size: .58rem; transition: color var(--motion-fast),transform var(--motion-fast);
}
.calma-field-help::before,
:is(.calma-labor-calculator-page,.calma-calculator-page,.calma-deadline-page,.calma-payroll-page) .pb-help-icon::before {
    content: ""; width: 1.55rem; height: 1.55rem; position: absolute; inset: 50% auto auto 50%;
    border: 1px solid var(--line-strong); border-radius: 50%; background: var(--white); transform: translate(-50%,-50%);
    transition: border-color var(--motion-fast),background var(--motion-fast),box-shadow var(--motion-fast);
}
.calma-field-help i,
:is(.calma-labor-calculator-page,.calma-calculator-page,.calma-deadline-page,.calma-payroll-page) .pb-help-icon i { position: relative; z-index: 1; }
.calma-field-help:hover,.calma-field-help:focus-visible,
:is(.calma-labor-calculator-page,.calma-calculator-page,.calma-deadline-page,.calma-payroll-page) .pb-help-icon:hover,
:is(.calma-labor-calculator-page,.calma-calculator-page,.calma-deadline-page,.calma-payroll-page) .pb-help-icon:focus-visible { color: var(--signal-strong); outline: 0; transform: translateY(-1px); }
.calma-field-help:hover::before,.calma-field-help:focus-visible::before,
:is(.calma-labor-calculator-page,.calma-calculator-page,.calma-deadline-page,.calma-payroll-page) .pb-help-icon:hover::before,
:is(.calma-labor-calculator-page,.calma-calculator-page,.calma-deadline-page,.calma-payroll-page) .pb-help-icon:focus-visible::before { border-color: var(--steel-500); background: var(--signal-soft); box-shadow: 0 0 0 3px rgba(76,109,123,.1); }
.calma-calculator-page .date-row > div > .lbl,
.calma-calculator-page .calculator-nested-grid > div > .lbl { min-height: 2.2rem; }
.calma-calculator-page .calculator-nested-grid--compact > div > .lbl { min-height: auto; }
.calma-labor-calculator-page .labor-result-panel { min-height: 0; }
.calma-labor-calculator-page .labor-inline-field > label { min-height: auto; }
.calma-labor-calculator-page .labor-repeat-row label { min-height: auto; }
.calma-labor-calculator-page .labor-repeat-row input,.calma-labor-calculator-page .labor-repeat-row select { width: 100%; }
.calma-calculator-page .settlement-extra-row input { width: 100%; }

/* Responsive shells */
@media (max-width: 1050px) {
    .public-links { display: none; position: absolute; top: calc(100% + .5rem); left: 1rem; right: 1rem; padding: .6rem; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-focus); }
    .public-links.is-open { display: flex; }
    .public-menu-button { display: grid; }
    .public-actions .button-secondary { display: none; }
    .home-hero-inner { grid-template-columns: 1fr 22rem; }
    .topics-grid, .guide-grid, .resource-grid, .home-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .product-header { grid-template-columns: 1fr auto; }
    .chat-header { grid-template-columns: auto 1fr auto; }
    .prod-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .plans-comparison-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .prod-grid--monthly { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 780px) {
    body { font-size: .95rem; }
    .public-header { padding: .45rem .5rem 0; }
    .public-nav { width: calc(100% - 1rem); min-height: 3.8rem; padding: .4rem .45rem; border-radius: var(--radius-md); }
    .brand-avatar { width: 2.35rem; }
    .brand-lockup-copy span { display: none; }
    .public-actions .button-primary { display: none; }
    .home-hero-inner { min-height: auto; padding: 3.5rem 0; grid-template-columns: 1fr; }
    .product-preview, .home-hero-visual { max-width: 32rem; }
    .home-hero-portrait { width: 8.5rem; height: 8.5rem; }
    .steps-grid, .tools-grid, .plans-grid, .topics-grid, .scope-grid, .grid, .guide-grid, .resource-grid, .home-card-grid { grid-template-columns: 1fr; }
    .firm-card, .home-firm-strip { grid-template-columns: 1fr; }
    .feed-container { grid-template-columns: 1fr; }
    .public-footer-inner { align-items: flex-start; flex-direction: column; }
    .public-footer-links { justify-content: flex-start; }
    .calculator-deck, .layout, .audit-grid, .calc-grid { grid-template-columns: 1fr; }
    .labor-calculator-layout { grid-template-columns: 1fr; }
    .labor-result-panel { position: static; }
    .labor-method-actions { display: grid; grid-template-columns: 1fr; }
    .labor-method-actions .button-secondary { width: 100%; }
    .labor-form-grid { grid-template-columns: 1fr; }
    .labor-form-grid .form-group--full { grid-column: auto; }
    .labor-form-grid label,.calma-calculator-page .date-row > div > .lbl,.calma-calculator-page .calculator-nested-grid > div > .lbl { min-height: auto; }
    .labor-repeat-row,.labor-repeat-row--debt { padding-right: 2.8rem; grid-template-columns: 1fr; }
    .labor-repeat-row .labor-remove-row,.labor-repeat-row--debt .labor-remove-row { position: absolute; top: .65rem; right: .65rem; grid-column: auto; grid-row: auto; }
    .calma-payroll-page .audit-grid,.calma-deadline-page .layout,.calma-calculator-page .calc-grid { grid-template-columns: 1fr; }
    .result-panel, .result { position: static; }
    .form-row, .form-grid, .collaboration-grid, .profile-grid { grid-template-columns: 1fr; }
    .payroll-fields,.deadline-form-grid,.calma-deadline-page .conciliation,.calma-calculator-page .date-row,.calma-calculator-page .sal-row,.calma-calculator-page .calculator-nested-grid,.calma-calculator-page .calculator-three-grid,.knowledge-intro { grid-template-columns: 1fr; }
    .calma-calculator-page .settlement-extra-row { padding-right: 2.75rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .calma-calculator-page .settlement-extra-row > div:first-of-type { grid-column: 1 / -1; }
    .payroll-evidence-guide { grid-template-columns: 1fr; }
    .calma-payroll-page .empty-state-card { grid-template-columns: 4.6rem minmax(0,1fr); }
    .calma-payroll-page .empty-state-avatar { width: 4.6rem; height: 4.6rem; }
    .calma-payroll-page .empty-state-support { grid-column: 1 / -1; }
    .deadline-empty-copy { grid-template-columns: 4.8rem minmax(0,1fr); }
    .calma-deadline-page .deadline-empty-avatar { width: 4.8rem; height: 4.8rem; }
    .calma-calculator-page .result-panel { position: static; }
    .knowledge-intro { gap: .9rem; }
    .legal-hub-page .guide-link { height: 9.25rem; min-height: 9.25rem; }
    .editorial .news-card { min-height: 0; }
    .item-card { grid-template-columns: 2.8rem minmax(0,1fr); padding: .7rem; gap: .65rem; }
    .item-card .status-pill { grid-column: 2; justify-self: start; }

    html.calma-chat-root { width: 100%; height: 100%; overflow: hidden; overscroll-behavior: none; }
    .product-page {
        position: fixed; top: var(--calma-viewport-offset,0px); right: 0; bottom: auto; left: 0;
        width: 100%; height: var(--calma-viewport-height,100dvh); min-height: 0; padding-top: 0;
        overflow: hidden; overscroll-behavior: none;
    }
    .product-shell { display: block; height: calc(100% - var(--calma-mobile-nav-space,4.65rem)); padding: .4rem; }
    .product-sidebar { display: none; }
    .product-stage { height: 100%; grid-template-rows: 3.85rem minmax(0,1fr); border-radius: var(--radius-lg); }
    .product-header { padding: .55rem .8rem; }
    .calma-history-page .product-header { grid-template-columns: minmax(0,1fr) auto; gap: .45rem; }
    .calma-history-page .product-header-title { display: none; }
    .calma-history-page .product-header .tabs { justify-self: start; gap: .15rem; max-width: 100%; overflow-x: auto; }
    .calma-history-page .product-header .tab-btn { min-height: 2rem; padding: .38rem .5rem; font-size: .68rem; white-space: nowrap; }
    .calma-history-page .product-header-actions .button { width: 2.35rem; min-height: 2.35rem; padding: 0; }
    .calma-history-page .product-header-actions .button span { display: none; }
    .mobile-app-nav {
        position: fixed; z-index: 200; inset: auto .4rem max(.4rem,env(safe-area-inset-bottom)) .4rem; min-height: 3.6rem;
        padding: .3rem .35rem; display: grid; grid-template-columns: repeat(5,1fr); border: 1px solid var(--line);
        border-radius: var(--radius-lg); background: rgba(255,255,255,.95); box-shadow: var(--elevation-focus); backdrop-filter: blur(20px);
    }
    .mobile-app-nav a, .mobile-app-nav button { min-width: 0; display: grid; place-items: center; align-content: center; gap: .15rem; border: 0; border-radius: .6rem; background: transparent; color: var(--ink-600); font-size: .62rem; text-decoration: none; }
    .mobile-app-nav i { font-size: .95rem; }
    .mobile-app-nav .active { background: var(--smoke-100); color: var(--ink-950); }
    .mobile-keyboard-open .product-shell,.mobile-keyboard-open .chat-shell { height: 100%; }
    .mobile-keyboard-open .mobile-app-nav { display: none; }
    .chat-shell { display: block; height: calc(100% - var(--calma-mobile-nav-space,4.65rem)); padding: .4rem; }
    .calma-desktop-sidebar { display: none; }
    .chat-stage { height: 100%; grid-template-rows: 3.85rem minmax(0,1fr); border-radius: var(--radius-lg); }
    .chat-header { padding: .5rem .7rem; grid-template-columns: auto 1fr auto; }
    .reset-portal-btn span, .chat-auth-zone .tier-badge, .chat-auth-zone .button { display: none; }
    .desktop-header-actions button { width: 2.5rem; padding: 0; }
    #chat-canvas { padding: 1.1rem .8rem .7rem; }
    .mobile-keyboard-open .chat-stage { grid-template-rows: minmax(0,1fr); }
    .mobile-keyboard-open .chat-header { display: none; }
    .mobile-keyboard-open #chat-canvas { padding-top: .7rem; overscroll-behavior-y: auto; }
    .message-row { margin-bottom: 1rem; }
    .bubble { font-size: .8125rem; line-height: 1.54; }.bubble.ai { padding: 1rem; }
    .input-deck { position: relative; z-index: 210; padding: .45rem .55rem max(.35rem,env(safe-area-inset-bottom)); }
    .mobile-keyboard-open .input-deck { padding-bottom: .35rem; }
    .input-row { min-height: 3.7rem; grid-template-columns: minmax(0,1fr) auto auto; padding-left: .7rem; }
    .input-row:focus-within { transform: none; }
    #msg-input { min-width: 0; font-size: 16px; }
    #msg-input::placeholder { font-size: .82rem; line-height: 1.35; }
    #msg-input:placeholder-shown { overflow-y: hidden; }
    .composer-controls { min-width: 0; flex: 0 0 auto; }
    .composer-controls button { width: 2.25rem; flex: 0 0 2.25rem; }
    #send-btn { flex: 0 0 2.45rem; }
    #audio-timer { white-space: nowrap; }
    .input-row:has(#audio-timer[style*="inline"]) { grid-template-columns: minmax(5rem,1fr) auto auto auto; }
    .composer-support-links { display: none; }
    .composer-ai-notice { margin-top: .24rem; padding: 0 .4rem; font-size: .58rem; line-height: 1.3; }
    .mobile-keyboard-open .composer-ai-notice { display: none; }
    .conversation-library-dialog { top: .5rem; right: .5rem; bottom: 4.6rem; left: .5rem; width: auto; max-height: none; transform: none; }
    #desktop-conversation-list { grid-template-columns: 1fr; }
    #search-overlay { top: 4.5rem; }
    .calma-chat-page input,.calma-chat-page select,.calma-chat-page textarea,.calma-chat-page [contenteditable="true"] { font-size: 16px; }
    .modal-overlay { top: var(--calma-viewport-offset,0px); bottom: auto; height: var(--calma-viewport-height,100dvh); }
    .modal-body { max-height: calc(var(--calma-viewport-height,100dvh) - 1rem); }
    .legal-draft-card.is-editing { position: fixed; z-index: 500; top: var(--calma-viewport-offset,0px); right: 0; bottom: auto; left: 0; height: var(--calma-viewport-height,100dvh); display: grid; grid-template-rows: auto minmax(0,1fr) auto; border: 0; border-radius: 0; }
    .legal-draft-card.is-editing .legal-draft-card__editor { max-height: none; overflow-y: auto; font-size: 16px; }
    .referral-modal-body { max-height: calc(var(--calma-viewport-height,100dvh) - 1rem); display: grid; grid-template-rows: auto minmax(0,1fr); }
}

@media (max-width: 350px) {
    .input-row { gap: .2rem; padding-inline: .55rem .4rem; }
    .composer-controls button { width: 2rem; flex-basis: 2rem; }
    #send-btn { width: 2.3rem; height: 2.3rem; flex-basis: 2.3rem; }
    .mobile-app-nav a,.mobile-app-nav button { font-size: .56rem; }
}

@media (max-width: 440px) {
    .brand-lockup-copy strong { font-size: .88rem; }
    .home-hero-inner, .public-section, .shell, .premium-container, .feed-container, .resource-main { width: calc(100% - 1.5rem); }
    .public-section { padding: 3.2rem 0; }
    .preview-steps { grid-template-columns: 1fr; }
    .info-main { width: calc(100% - 1rem); padding: 1.2rem 0 4rem; }
    .content-card, .section-box, .panel, .form-container { padding: 1rem; }
    .date-row, .det-row, .sal-row, .fq-row { grid-template-columns: 1fr; gap: .35rem; }
    .calma-payroll-page .section-box,.calma-deadline-page .panel,.calma-calculator-page .section-box,.calma-calculator-page .result-panel { padding: .9rem; }
    .calma-payroll-page .empty-state-card { grid-template-columns: 1fr; text-align: center; }
    .calma-payroll-page .empty-state-avatar { margin-inline: auto; }
    .empty-state-support { justify-content: center; }
    .deadline-empty-copy { grid-template-columns: 1fr; text-align: center; }
    .calma-deadline-page .deadline-empty-avatar { margin-inline: auto; }
    .calma-calculator-page .fq-row { grid-template-columns: minmax(0,1fr) 5.4rem; gap: .5rem; }
    .calma-calculator-page .fq-num { width: 5.4rem; }
    .calma-calculator-page .det-row { grid-template-columns: minmax(0,1fr) auto; gap: .55rem; }
    .calma-calculator-page .det-row--formula { grid-template-columns: 1fr; }
    .scenario-boundary { padding: .75rem; }
    .calma-calculator-page .settlement-extra-row { grid-template-columns: 1fr; }
    .calma-calculator-page .settlement-extra-row > div:first-of-type { grid-column: auto; }
    .result-summary { grid-template-columns: 3.4rem minmax(0,1fr); }
    .calculator-result-symbol,.labor-result-symbol,.deadline-result-symbol,.payroll-result-symbol { width: 3.4rem; height: 3.4rem; }
    .knowledge-intro h1 { font-size: 1.65rem; }
    .meta-strip, .source-box { align-items: flex-start; flex-direction: column; }
}

@media print {
    @page { margin: 14mm; }
    body.calma-calculator-page { background: var(--white); color: var(--ink-950); }
    body.calma-calculator-page .public-header,
    body.calma-calculator-page .public-footer,
    body.calma-calculator-page .scenario-boundary,
    body.calma-calculator-page #combined-calculator-form,
    body.calma-calculator-page .calc-method,
    body.calma-calculator-page .calculator-actions,
    body.calma-calculator-page .calma-widget,
    body.calma-calculator-page .fine-print { display: none; }
    body.calma-calculator-page .shell,
    body.calma-calculator-page .premium-container { width: 100%; max-width: none; margin: 0; padding: 0; }
    body.calma-calculator-page .calculator-header { margin: 0 0 1rem; padding: 0 0 .75rem; border-bottom: 1px solid var(--line); }
    body.calma-calculator-page .calculator-brand-mark { display: none; }
    body.calma-calculator-page .calc-grid { display: block; }
    body.calma-calculator-page .result-panel { position: static; padding: 0; border: 0; box-shadow: none; }
    body.calma-calculator-page .result-summary { grid-template-columns: 1fr; }
    body.calma-calculator-page .report-generated-line { margin-top: 1rem; display: block; color: var(--ink-600); font-size: .68rem; }
    body.calma-calculator-page .calculation-detail { break-inside: avoid; }
}

.sec-h--centered { text-align: center; }
.c-name--featured { color: var(--signal-strong); }
.subscription-box { padding: 1.5rem; border: 1px solid var(--line-strong); border-radius: var(--radius-lg); background: linear-gradient(145deg,var(--white),var(--signal-soft)); box-shadow: var(--elevation-card); text-align: center; }
.subscription-box > strong { display: inline-flex; align-items: center; gap: .5rem; color: var(--ink-950); font-size: 1.02rem; }
.subscription-box > strong i { color: var(--signal-strong); }
.subscription-box > span { max-width: 42rem; margin: .55rem auto 0; display: block; color: var(--ink-600); font-size: .82rem; line-height: 1.55; }
.subscription-box .subscription-action { width: min(100%,24rem); min-height: 3rem; margin: 1rem auto 0; background: var(--ink-900); color: var(--white); font-size: .84rem; box-shadow: var(--elevation-nav); }
.subscription-box .subscription-action:hover { background: var(--ink-800); box-shadow: var(--elevation-card); }
.subscription-contact { margin: .8rem 0 0; color: var(--ink-600); font-size: .72rem; line-height: 1.45; }
.private-legal-alert { max-width: 56rem; margin: 1.25rem auto; padding: 1rem; border: 1px solid color-mix(in srgb,var(--danger) 34%,transparent); border-radius: var(--radius-md); background: color-mix(in srgb,var(--danger) 8%,var(--white)); color: var(--danger); font-size: var(--text-sm); text-align: center; }
.private-document-note { margin-top: 3rem; text-align: center; }
.private-document-note p { color: var(--ink-600); font-size: var(--text-sm); font-style: italic; }
.history-list { display: flex; flex-direction: column; gap: .9rem; }
.empty-state-icon { font-size: 3rem; }
.retention-note { padding: 1.25rem; color: var(--ink-600); font-size: var(--text-xs); letter-spacing: .03em; text-align: center; }
.account-actions { margin-top: 1.85rem; display: flex; flex-wrap: wrap; gap: .6rem; }
.account-actions .badge { cursor: pointer; text-decoration: none; }
.structural-facts { color: var(--ink-600); font-size: var(--text-sm); line-height: 1.7; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms; animation-iteration-count: 1; transition-duration: .01ms; }
}

/* Secondary page families */
.info-page:not(.contact-page):not(.plans-page):not(.collaboration-page) .info-main { width: min(54rem,calc(100% - 2.5rem)); padding: 1.65rem 0 3rem; }
.info-page:not(.contact-page):not(.plans-page):not(.collaboration-page) .content-card { padding: clamp(1.2rem,2.7vw,1.85rem); }
.info-page:not(.contact-page):not(.plans-page):not(.collaboration-page) .content-card .page-title { margin-bottom: 1.2rem; padding-bottom: .75rem; font-size: clamp(1.4rem,2.3vw,1.7rem); line-height: 1.17; }
.info-page:not(.contact-page):not(.plans-page):not(.collaboration-page) .content-card h2 { margin: 1.55rem 0 .55rem; font-size: 1.03rem; line-height: 1.3; }
.info-page:not(.contact-page):not(.plans-page):not(.collaboration-page) .content-card h3 { margin: 1.25rem 0 .45rem; font-size: .9rem; }
.info-page:not(.contact-page):not(.plans-page):not(.collaboration-page) .content-card p,
.info-page:not(.contact-page):not(.plans-page):not(.collaboration-page) .content-card li { font-size: .81rem; line-height: 1.68; }
.info-page.family-legal:not(.contact-page):not(.plans-page) .content-card p { text-align: justify; text-justify: inter-word; hyphens: auto; }
.help-intro { max-width: 47rem; color: var(--ink-700); font-size: .84rem; line-height: 1.65; }
.help-section { margin-top: 1.65rem; }.help-section > h2 { margin-bottom: .7rem; }
.help-list { display: grid; gap: .65rem; }.help-list details { padding: 0 1.1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.help-list summary { padding: .78rem 0; color: var(--ink-900); font-size: .82rem; font-weight: 650; cursor: pointer; }.help-list details p,.help-list details ul { margin: 0; padding-bottom: .82rem; color: var(--ink-700); font-size: .78rem; line-height: 1.62; }
.help-contact { margin-top: 1.8rem; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--signal-soft); }
.info-page:not(.contact-page):not(.plans-page):not(.collaboration-page) .content-card .help-contact h2 { margin-top: 0; }
.resource-page .resource-main { width: min(54rem,calc(100% - 2.5rem)); padding: 1.65rem 0 3rem; }
.resource-page .resource-main > h1 { max-width: 46rem; margin: .25rem 0 .55rem; font-size: clamp(1.35rem,2vw,1.55rem); line-height: 1.2; letter-spacing: -.018em; }
.resource-page .reviewed { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .55rem; color: var(--ink-500); font-size: .64rem; line-height: 1.45; }
.resource-page .reviewed > span + span::before { content: "·"; margin-right: .55rem; color: var(--ink-400); }
.resource-page .article-card { margin-top: .72rem; padding: clamp(1.05rem,2.4vw,1.6rem); font-size: .78rem; line-height: 1.64; border-color: rgba(88,109,118,.18); background: linear-gradient(145deg,#fff,#f8fafb); box-shadow: 0 14px 34px rgba(26,44,52,.07),inset 0 1px 0 #fff; }
.resource-page .article-card h2 { margin: 1.35rem 0 .48rem; font-size: .92rem; line-height: 1.32; }
.resource-page .article-card h3 { margin: 1.2rem 0 .4rem; font-size: .9rem; }
.resource-page .article-card p,.resource-page .article-card li { color: var(--ink-700); font-size: .78rem; line-height: 1.66; }
.resource-page .article-card p { text-align: justify; text-justify: inter-word; hyphens: auto; }
.resource-page .article-card .data-table-wrap { margin: .75rem 0 1.2rem; border-color: rgba(88,109,118,.18); box-shadow: inset 0 1px 0 #fff; scrollbar-width: thin; }
.resource-page .article-card .data-table { min-width: 42rem; table-layout: fixed; font-size: .7rem; line-height: 1.45; }
.resource-page .article-card .data-table th,.resource-page .article-card .data-table td { padding: .55rem .62rem; vertical-align: top; overflow-wrap: anywhere; }
.resource-page .article-card .data-table th { color: var(--ink-800); font-size: .68rem; line-height: 1.35; }
.resource-page .article-card code { font-size: .68rem; overflow-wrap: anywhere; }

.contact-main { width: min(74rem,calc(100% - 2.5rem)); }
.contact-page .content-card { padding: clamp(1.5rem,3vw,2.5rem); }
.hero-c { max-width: 48rem; margin-bottom: 2rem; }.hero-c h1 { font-size: var(--text-2xl); }.hero-c > p { color: var(--ink-600); font-size: var(--text-lg); }
.contact-page .hero-c { max-width: 44rem; margin: 0 auto 2rem; text-align: center; }
.contact-page .hero-c h1 { margin-bottom: .8rem; padding-bottom: 0; border: 0; font-size: clamp(1.75rem,3vw,2.1rem); line-height: 1.15; }
.contact-page .hero-c > p { margin: 0 auto 1rem; font-size: .95rem; line-height: 1.6; }
.contact-page .warning-box { text-align: left; }
.paths-grid, .areas-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.paths-grid { margin-bottom: 2rem; }.areas-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.contact-page .paths-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.path-card, .area-card { min-height: 100%; }.path-card { display: flex; flex-direction: column; }.path-card p,.area-card p { color: var(--ink-600); }
.path-card .btn,.path-card .button-primary { margin-top: auto; align-self: flex-start; }
.path-card--featured { border-color: var(--steel-400); background: var(--signal-soft); }
.path-card--professional { background: linear-gradient(145deg,var(--white),var(--smoke-75)); }
.contact-page .info-main { padding: 1.6rem 0 3.5rem; }
.contact-page .hero-c { margin-bottom: 1.35rem; }
.contact-page .hero-c h1 { font-size: clamp(1.55rem,2.6vw,1.9rem); }
.contact-page .paths-grid { margin-bottom: 1.35rem; gap: .8rem; }
.contact-page .path-card { min-height: 0; padding: 1.15rem; border-top: 3px solid var(--accent-blue); box-shadow: var(--elevation-card),inset 0 1px 0 rgba(255,255,255,.9); }
.contact-page .path-card--featured { border-top-color: var(--accent-teal); }
.contact-page .path-card--professional { border-top-color: var(--accent-plum); }
.path-card__icon { width: 2rem; height: 2rem; margin-bottom: .7rem; display: grid; place-items: center; border-radius: .55rem; background: color-mix(in srgb,var(--accent-blue) 12%,white); color: var(--accent-blue); font-size: .72rem; }
.path-card--featured .path-card__icon { background: color-mix(in srgb,var(--accent-teal) 12%,white); color: var(--accent-teal); }
.path-card--professional .path-card__icon { background: color-mix(in srgb,var(--accent-plum) 12%,white); color: var(--accent-plum); }
.contact-page .path-card h3 { margin: 0 0 .4rem; font-size: .93rem; line-height: 1.28; }
.contact-page .path-card p { margin: 0 0 .85rem; font-size: .76rem; line-height: 1.48; }
.contact-page .path-card .btn,.contact-page .path-card .button-primary { min-height: 2.35rem; padding: .48rem .72rem; font-size: .75rem; }
.form-grid--two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.form-alert { margin-bottom: 1.5rem; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); font-size: var(--text-sm); line-height: 1.5; text-align: center; }
.form-alert--success { border-color: color-mix(in srgb,var(--success) 35%,transparent); background: color-mix(in srgb,var(--success) 10%,var(--white)); color: var(--success); }
.form-alert--error { border-color: color-mix(in srgb,var(--danger) 35%,transparent); background: color-mix(in srgb,var(--danger) 10%,var(--white)); color: var(--danger); }
.form-legal-copy { margin: 0 0 1rem; color: var(--ink-600); font-size: var(--text-xs); line-height: 1.55; }
.form-legal-copy--compact { margin-top: 0; }
.contact-page .privacy-check { margin-top: .4rem; }
.contact-page .form-legal-copy--compact { margin: 1rem 0 .85rem; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75); }
.contact-page .form-container { width: min(100%,62rem); margin-inline: auto; padding: 1.1rem; box-shadow: var(--elevation-focus); font-size: .82rem; }
.contact-page .form-container h2 { margin: 0 0 1rem; font-size: 1.05rem; line-height: 1.25; }
.contact-page .form-container label { font-size: .78rem; }
.contact-page .contact-intake-fields { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; }
.contact-page .form-grid--two { grid-template-columns: minmax(0,1fr); margin-top: .65rem; }
.contact-page .form-container .form-group { gap: .25rem; }
.contact-page .form-container input:not([type="checkbox"]):not([type="radio"]),.contact-page .form-container select { min-height: 2.45rem; padding: .5rem .65rem; font-size: .78rem; }
.contact-page .form-container textarea { min-height: 5.25rem; padding: .6rem .65rem; font-size: .78rem; }
.contact-page .form-container .privacy-check { font-size: .72rem; }
.contact-page .form-legal-copy--compact { margin: .7rem 0 .6rem; padding: .65rem .75rem; font-size: .65rem; line-height: 1.45; }
.contact-page .form-container .form-legal-copy:not(.form-legal-copy--compact) { margin-bottom: .7rem; font-size: .65rem; line-height: 1.45; }
.contact-page .form-container .button-primary { min-height: 2.45rem; padding-block: .5rem; font-size: .78rem; }
.contact-page .areas-section { max-width: 62rem; margin: 2rem auto 0; }
.contact-page .areas-section > h2 { margin: 0 0 .8rem; font-size: 1.15rem; }
.contact-page .areas-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: .7rem; }
.contact-page .area-card { padding: 1rem; }
.contact-page .area-card h4 { margin: 0 0 .35rem; font-size: .82rem; }
.contact-page .area-card p { margin: 0; font-size: .7rem; line-height: 1.45; }
.contact-page .despacho-box { max-width: 62rem; margin: 1.5rem auto; padding: .8rem 1rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 1.5rem; }
.contact-page .despacho-item { padding: .45rem 0; font-size: .75rem; }
.contact-page .despacho-item + .despacho-item { border-top: 0; }
.contact-page .legal-notice { max-width: 62rem; margin-inline: auto; font-size: .7rem; }
.despacho-box { margin: 2rem 0; padding: 1.4rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--smoke-75); }
.despacho-item { display: flex; align-items: flex-start; gap: .7rem; padding: .65rem 0; }.despacho-item + .despacho-item { border-top: 1px solid var(--line); }
.privacy-check,.consent-row,.collaboration-consent { display: flex; align-items: flex-start; gap: .6rem; color: var(--ink-700); font-size: var(--text-sm); }

.collaboration-main { width: min(70rem,calc(100% - 2.5rem)); padding-top: 1.25rem; }
.collaboration-page .content-card { padding: clamp(1rem,2.4vw,1.5rem); }
.collaboration-hero { max-width: none; margin-bottom: 1rem; display: grid; grid-template-columns: minmax(0,1fr) minmax(18rem,.72fr); align-items: center; gap: 1.25rem; }
.collaboration-hero h1 { margin: 0 0 .45rem; padding: 0; border: 0; font-size: clamp(1.55rem,2.5vw,2rem); }
.collaboration-hero p { max-width: 44rem; margin: 0; color: var(--ink-600); font-size: .82rem; line-height: 1.5; }
.collaboration-eyebrow { margin: 0 0 .35rem; color: var(--signal-strong); font-size: .65rem; font-weight: 750; letter-spacing: .075em; text-transform: uppercase; }
.collaboration-seal { min-width: 0; padding: .75rem; display: flex; align-items: center; gap: .7rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75); }
.collaboration-seal > span:last-child { min-width: 0; display: grid; gap: .12rem; }
.collaboration-seal strong { color: var(--ink-900); font-size: .78rem; }
.collaboration-seal small { color: var(--ink-600); font-size: .66rem; line-height: 1.4; }
.collaboration-seal__icon,.collaboration-file__icon { width: 2.35rem; height: 2.35rem; flex: 0 0 auto; display: grid; place-items: center; border-radius: .65rem; background: var(--signal-soft); color: var(--signal-strong); }
.collaboration-form-shell { padding: 1rem; }
.collaboration-form-heading { margin: 0 0 .75rem; display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.collaboration-form-heading h2 { margin: 0; font-size: 1rem; }
.collaboration-form-heading p { margin: 0; color: var(--ink-600); font-size: .68rem; }
.collaboration-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem .75rem; }
.collaboration-field { gap: .25rem; }
.collaboration-field--wide { grid-column: span 2; }
.collaboration-page .collaboration-field label { font-size: .7rem; }
.collaboration-page input:not([type="checkbox"]):not([type="radio"]),.collaboration-page select { min-height: 2.55rem; padding: .55rem .68rem; font-size: .78rem; }
.collaboration-file { min-height: 3.85rem; padding: .55rem .7rem; display: grid; grid-template-columns: 2.35rem minmax(0,1fr) auto; align-items: center; gap: .65rem; text-align: left; }
.collaboration-file input { position: absolute; width: 1px; max-width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.collaboration-file > span:nth-child(3) { min-width: 0; display: grid; }
.collaboration-file strong { overflow: hidden; color: var(--ink-900); font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.collaboration-file small { color: var(--ink-500); font-size: .62rem; }
.collaboration-file__action { display: inline-flex; align-items: center; gap: .5rem; color: var(--signal-strong); font-size: .7rem; font-weight: 650; cursor: pointer; }
.collaboration-consent { gap: .5rem; font-size: .66rem; line-height: 1.4; }
.collaboration-consent input { margin-top: .12rem; }
.collaboration-submit { width: auto; min-height: 2.55rem; padding: .55rem .9rem; font-size: .75rem; }
.collaboration-note { margin: .6rem 0 0; display: flex; align-items: center; gap: .45rem; color: var(--ink-600); font-size: .64rem; }
.collaboration-status { display: inline; min-height: 0; margin: 0 0 0 .6rem; color: var(--ink-700); font-size: .7rem; }

.plans-main { width: min(var(--content),calc(100% - 2.5rem)); padding: 1.25rem 0 2.25rem; }
.plans-main .content-card { padding: clamp(1.35rem,2.4vw,2rem); }
.pw,.plan-shell { display: grid; gap: 1.25rem; }.ph { max-width: 52rem; margin: 0 auto .3rem; text-align: center; }.ph h1 { font-size: clamp(1.72rem,2.65vw,2.2rem); line-height: 1.12; }.ph p { color: var(--ink-600); }
.plans-page .ph { display: grid; gap: .5rem; }.plans-page .ph .eyebrow,.plans-page .ph > p,.plans-page .ph .micro { margin: 0; }.plans-page .ph h1 { margin: 0; padding-bottom: .7rem; }.plans-page .ph > p { max-width: 46rem; margin-inline: auto; font-size: .9rem; line-height: 1.6; }.plans-page .sec-h--centered { margin: 0; }.plans-page .sec-h--centered h2 { margin: 0 0 .3rem; font-size: 1.2rem; }.plans-page .sec-h--centered p { margin: 0; font-size: .82rem; }
.product-family { margin: 0 0 .35rem; color: var(--ink-500); font-size: .61rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }.sec-h { margin-bottom: .65rem; }.prod-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .9rem; }
.sec-h--centered { margin-bottom: .8rem; }
.plan-group { display: grid; gap: .7rem; }
.plan-group-heading { display: flex; align-items: baseline; gap: .75rem; }
.plan-group-heading span { color: var(--steel-600); font-size: .67rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.plan-group-heading h3 { margin: 0; font-size: .95rem; }
.prod-grid--monthly { grid-template-columns: repeat(2,minmax(0,1fr)); }
.plans-comparison-grid { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
.plan-group--professional { margin-top: .3rem; padding-top: 1.15rem; border-top: 1px solid var(--line); }
.plans-comparison-grid--professional > .card { min-height: 21rem; }
.card { min-width: 0; padding: 1.05rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-card); }
.field-hint { display: block; margin-top: .32rem; color: var(--ink-600); font-size: .66rem; line-height: 1.45; }
.contact-routing-note { padding: 1rem 1.1rem; display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: .75rem; align-items: start; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--smoke-75); color: var(--ink-700); }
.contact-routing-note > i { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: .6rem; background: var(--signal-soft); color: var(--signal-strong); }
.contact-routing-note strong { color: var(--ink-900); font-size: .82rem; }.contact-routing-note p { margin: .2rem 0 0; font-size: .74rem; line-height: 1.5; }

/* V45.20.21 — ritmos claros entre bloques de contacto y firma secundaria. */
.contact-page .form-container,
.contact-page .contact-routing-note,
.contact-page .despacho-box,
.contact-page .legal-notice{max-width:62rem;margin-inline:auto}
.contact-page .form-container{margin-bottom:1rem}
.contact-page .contact-routing-note{margin-top:1rem;margin-bottom:1rem;box-shadow:0 10px 24px rgba(26,44,52,.06),inset 0 1px 0 rgba(255,255,255,.9)}
.contact-page .despacho-box{margin:1rem auto;padding:.95rem 1.05rem;border-color:rgba(88,109,118,.18);background:linear-gradient(145deg,#fff,#f5f7f7);box-shadow:0 10px 24px rgba(26,44,52,.055),inset 0 1px 0 #fff}
.contact-page .legal-notice{margin-top:1rem;padding:.82rem 1rem;border-color:rgba(81,112,127,.24);box-shadow:0 8px 18px rgba(26,44,52,.04)}
.contact-page .despacho-item{align-items:center;min-height:2.3rem}
.contact-page .despacho-item--firm{width:max-content;max-width:100%;justify-content:flex-start;padding:.3rem .45rem;border-radius:.7rem;color:var(--ink-900)}
.contact-page .despacho-item__signature{font-size:.76rem}
.contact-page .despacho-item--direction div{display:grid;gap:.12rem}.contact-page .despacho-item--direction strong{font-size:.72rem}.contact-page .despacho-item--direction span{color:var(--ink-600);font-size:.72rem}
.contact-page .despacho-assignment{grid-column:1/-1;margin:.1rem 0 0;padding:.65rem .7rem;border-top:1px solid rgba(88,109,118,.16);color:var(--ink-600);font-size:.72rem;line-height:1.5}
.model-faq{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:1.35rem;align-items:start;margin:1.1rem auto;padding:1.2rem;border:1px solid rgba(88,109,118,.18);border-radius:1.25rem;background:linear-gradient(145deg,#fff,#f5f7f8);box-shadow:0 12px 28px rgba(26,44,52,.055),inset 0 1px 0 #fff}
.model-faq__intro h2{margin:.2rem 0 .48rem;font-size:clamp(1.25rem,2.1vw,1.65rem)}
.model-faq__intro p:last-child{margin:0;color:var(--ink-600);font-size:.91rem;line-height:1.55}
.model-faq__items{display:grid;gap:.5rem}
.model-faq__items details{border:1px solid rgba(88,109,118,.18);border-radius:.82rem;background:rgba(255,255,255,.82);padding:.7rem .82rem}
.model-faq__items summary{cursor:pointer;color:var(--ink-900);font-size:.9rem;font-weight:700}
.model-faq__items p{margin:.48rem 0 0;color:var(--ink-600);font-size:.86rem;line-height:1.5}
@media(max-width:720px){.model-faq{grid-template-columns:1fr;gap:.8rem;padding:.9rem}.model-faq__items details{padding:.68rem .72rem}}
.privacy-controls { margin: .85rem 0; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75); color: var(--ink-700); }
.privacy-controls strong { color: var(--ink-900); }.privacy-controls ul { margin: .55rem 0 0; padding-left: 1.15rem; }.privacy-controls li + li { margin-top: .35rem; }
.calma-deadline-page .source[hidden] { display: none; }
.prod-grid > .card { display: flex; flex-direction: column; }
.prod-grid > .card .c-lim { margin-top: auto; }
.prod-grid > .card .btn { width: 100%; min-height: 2.5rem; margin-top: .65rem; }
.plans-comparison-grid > .card { min-height: 24.5rem; transition: transform var(--motion-base) var(--ease-out),border-color var(--motion-base),box-shadow var(--motion-base); }
.plans-comparison-grid > .card:hover { z-index: 1; border-color: var(--steel-400); transform: translateY(-4px) scale(1.012); box-shadow: var(--elevation-focus); }
.plan-card--featured { border-color: var(--steel-400); background: linear-gradient(145deg,var(--white),var(--signal-soft)); box-shadow: var(--elevation-focus); }
.card h2,.card h3,.c-name { margin: 0 0 .38rem; }.c-name { font-size: .94rem; font-weight: 700; }.card p,.c-lim,.micro { color: var(--ink-600); }.c-price { margin: .55rem 0; color: var(--ink-950); font-size: 1.22rem; font-weight: 700; }.c-price-free { margin: .55rem 0; color: var(--signal-strong); font-size: 1.22rem; font-weight: 700; }
.c-tag,.badge { display: inline-flex; padding: .25rem .48rem; border-radius: var(--radius-round); background: var(--signal-soft); color: var(--signal-strong); font-size: .66rem; font-weight: 650; }
.feats { margin: .65rem 0; padding: 0; display: grid; gap: .34rem; color: var(--ink-700); font-size: .72rem; line-height: 1.36; list-style: none; }.feats li { display: grid; grid-template-columns: .85rem minmax(0,1fr); gap: .3rem; }.feats i { margin-top: .16rem; color: var(--success); }.feats i.n { color: var(--ink-500); }
.c-lim { font-size: .68rem; line-height: 1.4; }
.plan-disclosure { margin-top: .35rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75); overflow: hidden; }
.plan-disclosure summary { min-height: 3.1rem; padding: .7rem .9rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; color: var(--ink-800); font-size: .78rem; font-weight: 620; }
.plan-disclosure summary span { display: inline-flex; align-items: center; gap: .55rem; }.plan-disclosure summary i { width: 1rem; color: var(--steel-600); text-align: center; }.plan-disclosure summary small { color: var(--ink-500); font-size: .65rem; font-weight: 500; white-space: nowrap; }
.plan-disclosure[open] summary { border-bottom: 1px solid var(--line); background: var(--white); }.plan-disclosure-body { padding: .95rem 1rem 1rem; color: var(--ink-700); font-size: .78rem; line-height: 1.62; }.plan-disclosure-body p { margin: 0 0 .7rem; }.plan-disclosure-body li + li { margin-top: .35rem; }

.plan-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }.plan-heading h1 { margin: 0; }.plan-heading p { color: var(--ink-600); }.plan-chip { padding: .4rem .7rem; border: 1px solid var(--line); border-radius: var(--radius-round); color: var(--signal-strong); white-space: nowrap; }
.quota-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; }.quota-card,.professional-card,.request-panel,.login-panel { padding: 1.1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--elevation-card); }
.masked-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }.secondary-action { min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; padding: .6rem .85rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); color: var(--ink-800); text-decoration: none; }

.professional-consultation-page .shell,.strategic-portal,.admin-shell { width: min(var(--content),calc(100% - 2.5rem)); margin: 0 auto; padding: 2rem 0 5rem; }
.professional-firm-heading { margin: 0 auto 1.4rem; display: flex; justify-content: center; }
.audit-attribution .pb-credit { margin-top: .36rem; }
.trust-signature { display: inline-flex; align-items: center; gap: .38rem; }
.trust-signature small { font: inherit; }
.reviewed--signature { display: flex; flex-wrap: wrap; align-items: center; gap: .42rem .58rem; }
.reviewed--signature > span + span::before { content: "·"; margin-right: .58rem; color: var(--ink-400); }
.despacho-item--signature { align-items: center; }
.error-brand-stack { margin-bottom: 1.5rem; display: grid; justify-items: start; gap: .3rem; }
.error-brand-stack .brand-lockup { margin: 0; }
.appointment,.notice,.scope { padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75); }.price-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.price { font-size: var(--text-xl); font-weight: 700; }

/* Private administration uses the same smoke/graphite foundation. */
.calma-admin { background: var(--smoke-100); color: var(--ink-900); }
.calma-admin .admin-header { border-color: var(--line); background: rgba(255,255,255,.94); box-shadow: var(--elevation-nav); backdrop-filter: blur(18px); }
.calma-admin .glass { border: 1px solid var(--line); background: var(--white); color: var(--ink-900); box-shadow: var(--elevation-card); }
.calma-admin [class*="text-white"] { color: var(--ink-900); }
.calma-admin [class*="text-slate-300"],.calma-admin [class*="text-slate-400"] { color: var(--ink-600); }
.calma-admin [class*="text-slate-500"],.calma-admin [class*="text-slate-600"] { color: var(--ink-500); }
.calma-admin [class*="bg-slate-700"],.calma-admin [class*="bg-slate-800"],.calma-admin [class*="bg-dark"] { background: var(--smoke-100); }
.calma-admin [class*="border-slate-"],.calma-admin [class*="border-white"] { border-color: var(--line); }
.calma-admin textarea.bg-dark\/90 { background: var(--ink-950); color: var(--smoke-100); }
.admin-detail-page { background: var(--smoke-100); }
.admin-detail-shell { width: min(var(--content),calc(100% - 2rem)); margin: 1rem auto 3rem; }
.admin-detail-grid { display: grid; grid-template-columns: minmax(16rem,.68fr) minmax(0,1.32fr); gap: 1rem; align-items: start; }
.admin-detail-column { min-width: 0; display: grid; gap: 1rem; }.admin-detail-column .panel { padding: 1.2rem; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.panel-heading span { color: var(--ink-500); font-size: var(--text-xs); }
.detail-list { margin: 1rem 0 0; display: grid; }.detail-list div { padding: .7rem 0; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); }.detail-list dt { color: var(--ink-600); }.detail-list dd { margin: 0; color: var(--ink-900); font-weight: 650; }
.code-panel { max-width: 100%; max-height: 22rem; overflow: auto; padding: 1rem; border-radius: var(--radius-md); background: var(--ink-950); color: var(--smoke-100); font: 400 .74rem/1.55 ui-monospace,SFMono-Regular,Consolas,monospace; white-space: pre-wrap; }
.admin-message-list,.audit-log-list { margin-top: 1rem; display: grid; gap: .65rem; }
.admin-message { padding: .85rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75); }.admin-message--user { margin-left: 2.5rem; background: var(--signal-soft); }.admin-message header { display: flex; justify-content: space-between; gap: 1rem; color: var(--ink-500); font-size: var(--text-xs); }.admin-message p { margin: .55rem 0 0; color: var(--ink-800); white-space: pre-wrap; }
.audit-log-list details { padding: 0 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--smoke-75); }.audit-log-list summary { padding: .85rem 0; cursor: pointer; font-weight: 650; }.audit-log-grid { padding: 0 0 1rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }.audit-log-grid section { min-width: 0; position: relative; }.audit-log-grid h3 { padding-right: 5rem; }.audit-log-grid .secondary-action { position: absolute; top: 0; right: 0; min-height: 2rem; padding: .25rem .5rem; font-size: var(--text-xs); }
.demo-banner { width: min(40rem,calc(100% - 2rem)); margin: 10vh auto 0; padding: 2rem; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--white); box-shadow: var(--elevation-card); text-align: center; }.demo-banner h1 { font-size: var(--text-2xl); }.demo-banner p { color: var(--ink-600); }.demo-banner .arrow { color: var(--signal-strong); font-size: 2rem; }

@media (max-width: 780px) {
    .paths-grid,.contact-page .paths-grid,.areas-grid,.prod-grid,.plans-comparison-grid,.quota-grid,.masked-grid,.auth-grid,.tools-assurance { grid-template-columns: 1fr; }
    .legal-hub-page .closing-card { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .legal-hub-page .filter-row { width: 100%; flex-wrap: nowrap; overflow-x: auto; padding-bottom: .2rem; scrollbar-width: none; overscroll-behavior-inline: contain; }
    .legal-hub-page .filter-row::-webkit-scrollbar { display: none; }
    .legal-hub-page .filter-button { flex: 0 0 auto; white-space: nowrap; }
    .contact-page .contact-intake-fields,.contact-page .areas-grid,.contact-page .despacho-box { grid-template-columns: 1fr; }
    .contact-page .despacho-item + .despacho-item { border-top: 1px solid var(--line); }
    .knowledge-sort { width: 100%; margin-left: 0; justify-content: space-between; }
    .lawyer-review-cta { grid-template-columns: 2.4rem minmax(0,1fr); padding: .85rem; }
    .lawyer-review-cta__icon { width: 2.4rem; height: 2.4rem; }
    .lawyer-review-cta__button { grid-column: 1 / -1; width: 100%; white-space: normal; }
    .collaboration-main { width: min(100% - 1rem,40rem); padding-top: .6rem; }
    .collaboration-hero { grid-template-columns: 1fr; gap: .7rem; }
    .collaboration-form-heading { align-items: flex-start; flex-direction: column; gap: .2rem; }
    .collaboration-grid { grid-template-columns: 1fr; }
    .collaboration-field--wide { grid-column: auto; }
    .tools-index-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .tools-index-grid > .card-premium { grid-column: auto; }
    .legal-guide-page .layout { grid-template-columns: 1fr; }
    .legal-guide-page aside { position: static; }
    .calma-history-page #section-history.section-view.active { width: calc(100% - 1rem); margin: .65rem auto; display: block; }
    .calma-history-page #section-history > .history-list { max-height: none; padding: 0; overflow: visible; }
    .calma-history-page #section-history > .case-detail { min-height: 0; max-height: none; position: static; overflow: visible; }
    .calma-history-page #section-history:not(.showing-case) > .case-detail { display: none; }
    .calma-history-page #section-history.showing-case > .history-list { display: none; }
    .calma-history-page #section-history.showing-case > .case-detail { display: block; }
    .plan-group-heading { align-items: flex-start; flex-direction: column; gap: .15rem; }
    .prod-grid--monthly .feats { grid-template-columns: 1fr; }
    .plan-heading { flex-direction: column; }.content-card .pw { margin-inline: -.25rem; }
    .admin-detail-grid,.audit-log-grid { grid-template-columns: 1fr; }.admin-message--user { margin-left: 0; }
}

@media (max-width: 520px) {
    .modal-doc { padding: .45rem; }
    .modal-doc-content { height: calc(100dvh - .9rem); border-radius: var(--radius-lg); }
    .modal-doc-header,.modal-doc-footer { padding: .65rem; }
    .modal-doc-footer .button { flex: 1 1 calc(50% - .35rem); min-width: 0; padding-inline: .55rem; }
    .modal-doc-footer .document-viewer-close { flex: 0 0 auto; }
    .attachment-list { grid-template-columns: 1fr; }
    .about-page .public-section { padding: 2.1rem 0; }
    .about-page .home-hero-inner { padding: 2.4rem 0; }
    .about-page .faq-section { padding-bottom: .8rem; }
    .about-page .final-cta { padding-block: 1.5rem; }
    .plans-page .plans-main { padding-bottom: 1.75rem; }
    .tools-index-grid { grid-template-columns: 1fr; gap: .65rem; }
    .tools-index-grid .card-premium { min-height: 0; padding: .9rem; }
    .tool-card-heading { margin-bottom: .58rem; }
    .tools-index-grid .card-premium p { font-size: .73rem; }
    .legal-guide-page main { width: calc(100% - 1rem); padding: .6rem 0 1.5rem; }
    .legal-guide-page .crumbs { padding-inline: .1rem; font-size: .6rem; }
    .legal-guide-page article > .hero { margin-bottom: .65rem; padding: 1rem; }
    .legal-guide-page article > .hero h1 { font-size: 1.5rem; line-height: 1.1; }
    .legal-guide-page article > .hero .lead { font-size: .78rem; line-height: 1.55; }
    .legal-guide-page .reviewed { align-items: flex-start; padding: .5rem 0 0; }
    .legal-guide-page .article { padding: .92rem; }
    .legal-guide-page .article h2 { margin-top: 1.05rem; font-size: .92rem; }
    .legal-guide-page .article p,.legal-guide-page .article li { font-size: .75rem; line-height: 1.62; }
    .legal-guide-page .key-grid { grid-template-columns: 1fr; }
    .legal-guide-page .key-grid li { padding: .68rem .7rem .68rem 1.65rem; }
    .legal-guide-page aside .cta { padding: .95rem; }
    .desktop-case-link { min-height: 3.15rem; padding: .56rem .62rem; }
    .desktop-case-link strong { font-size: .72rem; }
    .desktop-case-link small { font-size: .58rem; }
    .info-page:not(.contact-page):not(.plans-page):not(.collaboration-page) .info-main,
    .resource-page .resource-main { width: calc(100% - 1rem); padding: .85rem 0 2rem; }
    .info-page.family-legal:not(.contact-page):not(.plans-page) .content-card p,
    .resource-page .article-card p { text-align: left; }
    .resource-page .resource-main > h1 { font-size: 1.34rem; }
    .resource-page .reviewed { gap: .2rem .42rem; font-size: .6rem; }
    .resource-page .reviewed > span + span::before { margin-right: .42rem; }
    .resource-page .article-card { padding: .92rem; }
    .resource-page .article-card h2 { font-size: .88rem; }
    .resource-page .article-card p,.resource-page .article-card li { font-size: .76rem; line-height: 1.62; }
}

/* Privacy controls: destructive actions remain explicit and isolated. */
.privacy-dialog {
  width: min(92vw, 32rem);
  border: 1px solid rgba(35, 55, 78, .2);
  border-radius: 18px;
  padding: clamp(1.1rem, 3vw, 1.6rem);
  color: var(--ink, #152235);
  background: #fff;
  box-shadow: 0 24px 80px rgba(18, 35, 57, .24);
}
.privacy-dialog::backdrop { background: rgba(10, 23, 39, .58); backdrop-filter: blur(4px); }
.privacy-dialog form { display: grid; gap: .75rem; }
.privacy-dialog input {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(35, 55, 78, .24);
  border-radius: 10px;
  padding: .7rem .8rem;
  font: inherit;
}
.button-danger {
  border: 1px solid #9f2f3d;
  background: #8f2332;
  color: #fff;
}
.button-danger:hover,
.button-danger:focus-visible { background: #741826; }


.news-footer .news-byline { flex: 0 0 auto; }
.collaboration-value { margin: .7rem 0 0; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; display: grid; gap: .35rem; }
.collaboration-value p { margin: 0; color: var(--ink-600); font-size: .8rem; line-height: 1.5; }
.dismissal-funnel-page main { width: min(var(--content),calc(100% - 2.5rem)); margin-inline: auto; padding: .8rem 0 2rem; }
.dismissal-funnel { padding: 1.25rem 1.35rem; display: grid; gap: .75rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: radial-gradient(circle at 94% -20%,rgba(121,163,184,.18),transparent 35%),rgba(255,255,255,.94); box-shadow: var(--elevation-card); }
.dismissal-funnel h1 { font-size: clamp(1.55rem,2.65vw,2.25rem); }
.dismissal-funnel .hero-copy { margin: 0; font-size: .84rem; line-height: 1.55; }
.dismissal-funnel-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem; }
.dismissal-funnel-card { padding: .95rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(145deg,#fff,#f8fafb); box-shadow: var(--elevation-card); display: grid; gap: .42rem; }
.dismissal-funnel-card h2 { margin: 0; font-size: .94rem; }
.dismissal-funnel-card p, .dismissal-funnel-card li { margin: 0; color: var(--ink-600); font-size: .75rem; line-height: 1.52; }
.dismissal-funnel-card ul { margin: .25rem 0; padding-left: 1.05rem; }
.dismissal-funnel-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.dismissal-funnel-page main > .reviewed { padding-inline: 1rem; }
@media (max-width: 780px) {
    .dismissal-funnel-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .dismissal-funnel-page main { width: calc(100% - 1rem); padding-top: .55rem; }
    .dismissal-funnel { padding: .95rem; }
    .dismissal-funnel h1 { font-size: 1.55rem; }
    .dismissal-funnel-actions { display: grid; grid-template-columns: 1fr; }
.dismissal-funnel-actions .button { width: 100%; }
    .dismissal-funnel-card { padding: .88rem; }
}

/* V45.23 — compact, searchable labour model library. */
.labor-models-page main { width: min(var(--content),calc(100% - 2.5rem)); margin: 0 auto; padding: .8rem 0 2.25rem; }
.labor-models-page .crumbs { margin: 0 0 .65rem; display: flex; flex-wrap: wrap; align-items: center; gap: .28rem .48rem; color: var(--ink-500); font-size: .66rem; }
.labor-models-page .crumbs a { color: var(--ink-600); text-decoration: none; }
.labor-models-hero { padding: clamp(1.1rem,2vw,1.55rem); display: grid; grid-template-columns: minmax(0,1.4fr) minmax(16rem,.6fr); align-items: center; gap: 1.15rem; border: 1px solid var(--line); border-radius: var(--radius-xl); background: radial-gradient(circle at 93% 0%,rgba(57,124,221,.1),transparent 38%),linear-gradient(145deg,#fff,#f5f8f9); box-shadow: var(--elevation-card); }
.labor-models-hero h1 { margin: .18rem 0 .48rem; max-width: 24ch; font-size: clamp(1.65rem,3.1vw,2.45rem); line-height: 1.06; }
.labor-models-hero p:not(.eyebrow) { max-width: 64ch; margin: 0; color: var(--ink-600); font-size: .82rem; line-height: 1.58; }
.labor-models-hero__note { padding: .85rem .95rem; display: grid; grid-template-columns: 2.2rem minmax(0,1fr); align-items: center; gap: .7rem; border: 1px solid rgba(57,124,221,.2); border-radius: var(--radius-lg); background: rgba(255,255,255,.82); }
.labor-models-hero__note > i { width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: .62rem; background: var(--signal-soft); color: var(--signal-strong); }
.labor-models-hero__note div { display: grid; gap: .16rem; }
.labor-models-hero__note strong { font-size: .78rem; }
.labor-models-hero__note span { color: var(--ink-600); font-size: .68rem; line-height: 1.45; }
.model-topic-links { margin-top: .72rem; padding: .62rem .72rem; display: flex; flex-wrap: wrap; gap: .4rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: rgba(255,255,255,.78); }
.model-topic-links a { min-height: 2rem; padding: .4rem .62rem; display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: var(--radius-round); background: #fff; color: var(--ink-700); font-size: .65rem; font-weight: 700; text-decoration: none; }
.model-topic-links a:hover,.model-topic-links a:focus-visible { border-color: var(--steel-500); background: var(--signal-soft); color: var(--signal-strong); }
.model-topic-links a:focus-visible { outline: 2px solid var(--steel-500); outline-offset: 2px; }
.model-library { margin-top: .9rem; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-xl); background: rgba(255,255,255,.9); box-shadow: 0 12px 30px rgba(20,26,31,.055); }
.model-library__toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.model-library__toolbar h2 { margin: .15rem 0 0; font-size: 1.1rem; }
.model-search { width: min(25rem,100%); min-height: 2.7rem; padding: .45rem .72rem; display: flex; align-items: center; gap: .52rem; border: 1px solid var(--line-strong); border-radius: .75rem; background: #fff; box-shadow: inset 0 1px 2px rgba(20,26,31,.04); }
.model-search:focus-within { border-color: var(--steel-500); box-shadow: 0 0 0 3px rgba(57,124,221,.12); }
.model-search i { color: var(--ink-500); font-size: .78rem; }
.model-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink-900); font: 500 .74rem/1.3 var(--font-ui); }
.model-search input::placeholder { color: var(--ink-500); opacity: 1; }
.model-filter-row { margin: .75rem 0 .85rem; display: flex; flex-wrap: wrap; gap: .38rem; }
.model-filter { min-height: 2.25rem; padding: .42rem .68rem; border: 1px solid var(--line); border-radius: var(--radius-round); background: var(--smoke-75); color: var(--ink-600); font: 650 .68rem/1 var(--font-ui); cursor: pointer; }
.model-filter:hover,.model-filter:focus-visible,.model-filter.is-active { border-color: var(--steel-500); background: var(--signal-soft); color: var(--signal-strong); }
.model-filter:focus-visible { outline: 2px solid var(--steel-500); outline-offset: 2px; }
.model-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .72rem; }
.model-card { min-width: 0; min-height: 15.25rem; padding: .9rem; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(145deg,#fff,#f7f9fa); box-shadow: 0 1px 2px rgba(20,26,31,.04),0 10px 22px rgba(20,26,31,.055); transition: transform var(--motion-base),border-color var(--motion-base),box-shadow var(--motion-base); }
.model-card:hover { z-index: 1; border-color: var(--steel-400); transform: translateY(-2px); box-shadow: var(--elevation-focus); }
.model-card[hidden] { display: none; }
.model-card__head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.model-card__icon { width: 2.15rem; height: 2.15rem; display: grid; place-items: center; border-radius: .62rem; background: var(--signal-soft); color: var(--signal-strong); font-size: .82rem; }
.model-card:nth-child(4n + 2) .model-card__icon { background: color-mix(in srgb,var(--accent-teal) 12%,white); color: var(--accent-teal); }
.model-card:nth-child(4n + 3) .model-card__icon { background: color-mix(in srgb,var(--accent-plum) 11%,white); color: var(--accent-plum); }
.model-card:nth-child(4n) .model-card__icon { background: color-mix(in srgb,var(--accent-amber) 12%,white); color: var(--accent-amber); }
.model-card__category { color: var(--ink-500); font-size: .61rem; font-weight: 700; letter-spacing: .035em; text-transform: uppercase; }
.model-card h3 { margin: .68rem 0 .34rem; color: var(--ink-900); font-size: .88rem; line-height: 1.24; }
.model-card > p { margin: 0; color: var(--ink-600); font-size: .7rem; line-height: 1.5; }
.model-card__basis { margin: .65rem 0; padding-top: .55rem; display: grid; gap: .12rem; border-top: 1px solid var(--line); }
.model-card__basis span { color: var(--ink-500); font-size: .58rem; text-transform: uppercase; letter-spacing: .035em; }
.model-card__basis strong { color: var(--ink-700); font-size: .63rem; line-height: 1.38; }
.model-download { min-height: 2.45rem; margin-top: auto; padding: .5rem .62rem; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .46rem; border: 1px solid var(--line-strong); border-radius: .68rem; background: #fff; color: var(--ink-800); font-size: .69rem; font-weight: 700; text-decoration: none; }
.model-download i { color: var(--signal-strong); }
.model-download small { color: var(--ink-500); font-size: .57rem; font-weight: 600; }
.model-download:hover,.model-download:focus-visible { border-color: var(--steel-500); background: var(--signal-soft); color: var(--signal-strong); }
.model-download:focus-visible { outline: 2px solid var(--steel-500); outline-offset: 2px; }
.model-empty { margin: .8rem 0 0; padding: .9rem; border-radius: .7rem; background: var(--smoke-100); color: var(--ink-600); font-size: .75rem; text-align: center; }
.model-steps { margin-top: .9rem; padding: 1rem 1.1rem; display: grid; grid-template-columns: minmax(13rem,.35fr) minmax(0,.65fr); gap: 1.15rem; border: 1px solid var(--line); border-radius: var(--radius-xl); background: linear-gradient(145deg,#f8fafb,#fff); }
.model-steps h2 { margin: .16rem 0 0; font-size: 1rem; }
.model-steps ol { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; list-style: none; }
.model-steps li { min-width: 0; display: grid; grid-template-columns: 1.8rem minmax(0,1fr); gap: .48rem; }
.model-steps li > span { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border-radius: 50%; background: var(--ink-900); color: #fff; font-size: .66rem; font-weight: 750; }
.model-steps strong { font-size: .72rem; }
.model-steps p { margin: .18rem 0 0; color: var(--ink-600); font-size: .65rem; line-height: 1.45; }
.model-proof { margin-top: .9rem; padding: 1rem 1.1rem; display: grid; grid-template-columns: minmax(14rem,.34fr) minmax(0,.66fr); gap: 1rem; border: 1px solid var(--line); border-radius: var(--radius-xl); background: linear-gradient(145deg,#fff,#f6f9fb); box-shadow: 0 10px 24px rgba(20,26,31,.045); }
.model-proof__intro h2 { margin: .16rem 0 .38rem; font-size: 1rem; line-height: 1.24; }
.model-proof__intro > p:last-child { margin: 0; color: var(--ink-600); font-size: .68rem; line-height: 1.5; }
.model-proof__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .6rem; }
.model-proof__grid article { min-width: 0; padding: .72rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: rgba(255,255,255,.88); }
.model-proof__grid span { color: var(--signal-strong); font-size: .58rem; font-weight: 800; letter-spacing: .08em; }
.model-proof__grid h3 { margin: .28rem 0 .22rem; color: var(--ink-900); font-size: .72rem; line-height: 1.35; }
.model-proof__grid p { margin: 0; color: var(--ink-600); font-size: .63rem; line-height: 1.48; }
.model-scope { margin-top: .9rem; padding: .82rem 1rem; display: grid; grid-template-columns: 1.9rem minmax(0,1fr); gap: .68rem; align-items: start; border: 1px solid rgba(88,109,118,.2); border-radius: var(--radius-lg); background: var(--smoke-75); }
.model-scope > i { width: 1.9rem; height: 1.9rem; display: grid; place-items: center; border-radius: .55rem; background: #fff; color: var(--signal-strong); }
.model-scope strong { font-size: .75rem; }
.model-scope p { margin: .16rem 0 0; color: var(--ink-600); font-size: .68rem; line-height: 1.45; }

@media (max-width: 900px) {
    .labor-models-hero { grid-template-columns: 1fr; }
    .model-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .model-steps { grid-template-columns: 1fr; }
    .model-proof { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .labor-models-page main { width: calc(100% - 1rem); padding: .55rem 0 1.5rem; }
    .labor-models-page .crumbs { padding-inline: .1rem; font-size: .6rem; }
    .labor-models-hero { padding: .95rem; gap: .75rem; }
    .labor-models-hero h1 { font-size: 1.52rem; }
    .labor-models-hero p:not(.eyebrow) { font-size: .75rem; }
    .labor-models-hero__note { padding: .72rem; grid-template-columns: 2rem minmax(0,1fr); }
    .labor-models-hero__note > i { width: 2rem; height: 2rem; }
    .model-topic-links { padding: .55rem; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
    .model-topic-links a { flex: 0 0 auto; min-height: 2.45rem; }
    .model-library { padding: .72rem; }
    .model-library__toolbar { align-items: stretch; flex-direction: column; gap: .65rem; }
    .model-search { width: 100%; min-height: 2.85rem; }
    .model-filter-row { margin-block: .62rem .7rem; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
    .model-filter { flex: 0 0 auto; min-height: 2.5rem; }
    .model-grid { grid-template-columns: 1fr; gap: .58rem; }
    .model-card { min-height: 0; padding: .82rem; }
    .model-card > p { font-size: .71rem; }
    .model-download { min-height: 2.75rem; }
    .model-steps { padding: .85rem; }
    .model-steps ol { grid-template-columns: 1fr; }
    .model-steps li { align-items: start; }
    .model-proof { padding: .85rem; }
    .model-proof__grid { grid-template-columns: 1fr; }
    .model-scope { padding: .75rem; }
}
