@font-face {
    font-family: "Barlow";
    src: url("../fonts/Barlow-Regular.ttf") format("truetype");
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Barlow";
    src: url("../fonts/Barlow-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: "Barlow Condensed";
    src: url("../fonts/BarlowCondensed-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-display: swap;
}

:root {
    --ink: #101b4d;
    --ink-deep: #08163d;
    --mineral: #f6f7f2;
    --paper: #ffffff;
    --teal: #1fa58a;
    --teal-deep: #107964;
    --chartreuse: #d8f23a;
    --coral: #ee6c4d;
    --line: #cad6cf;
    --muted: #52626e;
    --danger: #a33131;
    --display: "Barlow Condensed", sans-serif;
    --body: "Barlow", sans-serif;
    --brand-name-lg: 1.78rem;
    --brand-name-md: 1.55rem;
    --brand-name-app: 1.45rem;
    --brand-name-sm: 1.42rem;
    --brand-tagline: .69rem;
    --brand-tagline-app: .66rem;
    --brand-tagline-sm: .64rem;
    --brand-tagline-xs: .61rem;
    --brand-tagline-auth-xs: .63rem;
    --ease-out: cubic-bezier(.16, 1, .3, 1);
    color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--mineral);
    color: var(--ink);
    font-family: var(--body);
    font-size: 1rem;
    line-height: 1.55;
    text-rendering: optimizeLegibility;
}

body.menu-open { overflow: hidden; }

strong { font-weight: 600; }

::selection { background: var(--chartreuse); color: var(--ink-deep); }

* { scrollbar-color: var(--teal) var(--mineral); scrollbar-width: thin; }

a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .22em; }
a:hover { text-decoration-color: var(--teal); }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

:focus-visible {
    outline: 3px solid var(--coral);
    outline-offset: 4px;
}

.sr-only {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.skip-link {
    background: var(--chartreuse);
    color: var(--ink);
    left: 1rem;
    padding: .7rem 1rem;
    position: fixed;
    top: .5rem;
    transform: translateY(-150%);
    transition: transform .2s var(--ease-out);
    z-index: 100;
}

.skip-link:focus { transform: translateY(0); }

.icon { height: 1.4em; width: 1.4em; }

.brand {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    gap: .75rem;
    text-decoration: none;
}

.brand__symbol {
    align-items: center;
    background: var(--paper);
    border: 1px solid rgba(16, 27, 77, .18);
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 3.35rem;
    height: 3.35rem;
    justify-content: center;
    overflow: hidden;
    width: 3.35rem;
}

.brand__symbol img {
    display: block;
    height: 100%;
    object-fit: contain;
    transform: scale(1.06);
    width: 100%;
}

.brand__mark {
    fill: none;
    height: 2.1rem;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 2;
    width: 2.1rem;
}

.brand__copy {
    display: flex;
    flex-direction: column;
    gap: .18rem;
    min-width: 0;
}

.brand__name {
    font-family: var(--display);
    font-size: var(--brand-name-lg);
    font-weight: 600;
    letter-spacing: .055em;
    line-height: .82;
    text-transform: uppercase;
}

.brand__tagline {
    color: var(--muted);
    font-size: var(--brand-tagline);
    font-weight: 400;
    letter-spacing: .012em;
    line-height: 1.18;
    max-width: 30ch;
}

.atlas-header {
    align-items: center;
    background: rgba(246, 247, 242, .97);
    border-bottom: 1px solid rgba(16, 27, 77, .18);
    display: flex;
    justify-content: space-between;
    min-height: 5.25rem;
    padding: 0 clamp(1rem, 4vw, 4rem);
    position: relative;
    z-index: 20;
}

.site-nav { align-items: center; display: flex; gap: clamp(.1rem, .65vw, .65rem); margin-left: auto; }
.site-nav > a { position: relative; white-space: nowrap; }
.site-nav > a:not(.button) { align-items: center; display: inline-flex; font-size: .8rem; font-weight: 600; min-height: 3.25rem; padding: .55rem .7rem; text-decoration: none; text-transform: uppercase; }
.site-nav > a:not(.button)::after { background: var(--teal); bottom: .3rem; content: ''; height: 2px; left: .7rem; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .24s var(--ease-out); width: calc(100% - 1.4rem); }
.site-nav > a:not(.button):hover { color: var(--teal-deep); }
.site-nav > a:not(.button):hover::after, .site-nav > a:not(.button)[aria-current="page"]::after { transform: scaleX(1); }
.site-nav__icon { display: none; }
.site-nav__account { margin-left: .7rem; }
.site-nav__account::before { background: var(--line); content: ''; height: 2rem; left: -.45rem; position: absolute; top: calc(50% - 1rem); width: 1px; }
.site-nav .button { min-height: 3.25rem; padding-inline: 1rem; white-space: nowrap; }

.nav-toggle, .app-nav-toggle {
    align-items: center;
    background: none;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: none;
    justify-content: center;
    padding: .65rem;
}
.nav-toggle__glyph { align-items: center; display: flex; justify-content: center; }
.nav-toggle__glyph--close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__glyph--open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__glyph--close { display: flex; }

.button {
    align-items: center;
    border: 0;
    cursor: pointer;
    display: inline-flex;
    font-weight: 600;
    gap: .75rem;
    justify-content: center;
    min-height: 3.25rem;
    padding: .8rem 1.25rem;
    text-decoration: none;
    transition: background-color .2s var(--ease-out), color .2s var(--ease-out), box-shadow .2s var(--ease-out), transform .2s var(--ease-out);
}

.button:hover { transform: translateY(-2px); }
.button:active { transform: translateY(0); }
.button--dark { background: var(--ink); color: var(--paper); }
.button--dark:hover { background: var(--teal-deep); }

.button--route {
    background: var(--chartreuse);
    border-radius: 2rem;
    color: var(--ink-deep);
    font-size: 1rem;
    min-height: 3.6rem;
    padding-inline: 1.5rem;
}

.button--route:hover { background: #e5ff52; box-shadow: 0 12px 28px rgba(8, 22, 61, .18); }

.atlas-hero {
    background:
        radial-gradient(circle at 8% 62%, rgba(31, 165, 138, .3) 0 1px, transparent 1.5px) 0 0 / 18px 18px,
        radial-gradient(circle at 47% 72%, rgba(16, 27, 77, .18) 0 1px, transparent 1.5px) 0 0 / 24px 24px,
        var(--mineral);
    border-bottom: 1px solid rgba(16, 27, 77, .25);
    isolation: isolate;
    min-height: calc(100svh - 5.25rem);
    overflow: hidden;
    padding: clamp(2rem, 4vh, 3.5rem) clamp(1rem, 4vw, 4rem) 1.5rem;
    position: relative;
}

.atlas-hero::after {
    background: var(--ink-deep);
    clip-path: polygon(40% 0, 100% 0, 100% 100%, 0 100%, 0 84%, 19% 76%, 27% 61%, 16% 48%, 28% 31%);
    content: "";
    inset: 0 0 0 61%;
    position: absolute;
    z-index: -2;
}

.atlas-contours { inset: 0; height: 100%; position: absolute; width: 100%; z-index: -1; }
.atlas-contours path { fill: none; vector-effect: non-scaling-stroke; }
.contour--quiet path { stroke: rgba(16, 27, 77, .1); stroke-width: 1; }
.contour--basin path { stroke: rgba(31, 165, 138, .32); stroke-width: 1.2; }

.map-coordinate {
    color: rgba(16, 27, 77, .58);
    font-family: var(--display);
    font-size: .8rem;
    letter-spacing: .12em;
    position: absolute;
    text-transform: uppercase;
}
.map-coordinate--top { left: 25%; top: .5rem; }
.map-coordinate--side { left: .25rem; top: 46%; transform: rotate(-90deg); }

.hero-copy { max-width: min(67vw, 58rem); position: relative; z-index: 3; }
.hero-copy h1 {
    font-family: var(--display);
    font-size: clamp(3.7rem, 5.55vw, 5.35rem);
    font-weight: 600;
    letter-spacing: -.03em;
    line-height: .88;
    margin: 0;
    text-transform: uppercase;
}
.hero-copy h1 span { display: block; white-space: nowrap; }
.hero-copy p { color: var(--muted); font-size: clamp(.98rem, 1.25vw, 1.18rem); margin: 1rem 0 0; max-width: 43rem; }

.atlas-route {
    bottom: .75rem;
    height: auto;
    left: clamp(1rem, 3vw, 3rem);
    min-height: 15rem;
    position: absolute;
    top: clamp(13rem, 37vh, 19rem);
    width: min(68vw, 57rem);
    z-index: 4;
}

.route-line { height: 100%; inset: 0; overflow: visible; position: absolute; width: 100%; }
.route-line path { fill: none; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.route-line__base { stroke: rgba(246, 247, 242, .78); stroke-width: 12; }
.route-line__active {
    animation: route-draw 1.4s .15s var(--ease-out) both;
    filter: drop-shadow(0 7px 10px rgba(8, 22, 61, .18));
    stroke: var(--chartreuse);
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    stroke-width: 7;
}

@keyframes route-draw { to { stroke-dashoffset: 0; } }

.route-stop, .route-destination { align-items: center; display: flex; flex-direction: column; position: absolute; text-align: center; }
.route-stop { color: var(--ink); width: 9rem; }
.route-stop--search { bottom: 2%; left: 9%; }
.route-stop--organize { bottom: 21%; left: 29%; }
.route-stop--write { left: 50%; top: 12%; }
.route-stop__icon {
    align-items: center;
    background: var(--paper);
    border: 6px solid var(--teal);
    border-radius: 50%;
    box-shadow: 0 10px 26px rgba(8, 22, 61, .18);
    display: flex;
    height: 4.5rem;
    justify-content: center;
    width: 4.5rem;
}
.route-stop--organize .route-stop__icon { border-color: var(--chartreuse); }
.route-stop--write .route-stop__icon { border-color: var(--coral); }
.route-stop strong { background: var(--paper); font-family: var(--display); font-size: 1.25rem; margin-top: .25rem; padding: .05rem .4rem; text-transform: uppercase; }
.route-stop small { background: rgba(246, 247, 242, .92); color: var(--muted); font-size: .78rem; line-height: 1.2; margin-top: .25rem; max-width: 9rem; padding: .15rem; }

.route-destination { color: var(--paper); right: 1%; top: 1%; width: 9rem; }
.route-destination span {
    align-items: center;
    background: var(--ink);
    border: 8px solid var(--chartreuse);
    border-radius: 50%;
    display: flex;
    height: 6rem;
    justify-content: center;
    width: 6rem;
}
.route-destination .icon { height: 2.8rem; width: 2.8rem; }
.route-destination strong { font-family: var(--display); font-size: 1.5rem; line-height: 1; margin-top: .5rem; text-transform: uppercase; }

.hero-action { align-items: stretch; bottom: 1.3rem; display: flex; flex-direction: column; gap: .55rem; position: absolute; right: calc(min(31vw, 30rem) + clamp(1rem, 2vw, 2rem)); width: min(18rem, calc(100vw - 2rem)); z-index: 7; }
.hero-action .button { align-self: flex-start; }
.hero-action .hero-action__note { background: rgba(8, 22, 61, .94); color: var(--paper); font-size: .8rem; line-height: 1.4; margin: 0; max-width: 18rem; padding: .65rem .8rem; }

.workspace-preview {
    align-self: end;
    background: var(--paper);
    border-radius: 14px 0 0 0;
    box-shadow: -18px 20px 44px rgba(4, 12, 37, .28);
    display: grid;
    grid-template-columns: 3.4rem 1fr;
    grid-template-rows: 3rem 1fr;
    height: min(59vh, 27rem);
    overflow: hidden;
    position: absolute;
    right: 0;
    bottom: 0;
    width: min(31vw, 30rem);
    z-index: 5;
}
.workspace-preview__top { align-items: center; background: var(--ink); color: white; display: flex; font-weight: 600; grid-column: 1 / -1; justify-content: space-between; padding: 0 1rem; }
.workspace-preview__rail { align-items: center; background: var(--teal); color: white; display: flex; flex-direction: column; gap: 1.45rem; padding-top: 1.2rem; }
.workspace-preview__body { display: grid; gap: .75rem; grid-template-columns: 1.25fr .7fr; padding: 1rem; }
.workspace-preview__body > p { font-weight: 600; grid-column: 1 / -1; margin: 0; }
.workspace-preview__body > small { color: var(--muted); grid-column: 1 / -1; }
.preview-map { background: repeating-linear-gradient(28deg, rgba(31,165,138,.05) 0 1px, transparent 1px 10px), rgba(31, 165, 138, .08); min-height: 9rem; overflow: hidden; position: relative; }
.preview-map::before, .preview-map::after { border: 1px solid rgba(31, 165, 138, .48); border-radius: 50%; content: ""; height: 9rem; position: absolute; width: 13rem; }
.preview-map::before { left: -4rem; top: 1rem; }
.preview-map::after { left: 1rem; top: -4rem; }
.preview-map span { background: var(--teal); display: block; height: .5rem; margin: 1.2rem; position: relative; width: 2rem; z-index: 2; }
.preview-lines i { background: #cbd2d1; display: block; height: .4rem; margin: 1rem 0; }
.preview-lines i:nth-child(2) { width: 75%; }.preview-lines i:nth-child(3) { width: 88%; }.preview-lines i:nth-child(4) { width: 60%; }
.preview-modules { border-top: 1px solid var(--line); display: grid; gap: .8rem; grid-column: 1 / -1; grid-template-columns: 1fr 1fr; padding-top: .75rem; }
.preview-modules span { display: grid; gap: .3rem; }.preview-modules strong { font-size: .68rem; }.preview-modules i { background: #cbd2d1; display: block; height: .25rem; }.preview-modules i:last-child { width: 70%; }

.atlas-legend, .decision-principle, .plan-terrain { padding: clamp(4rem, 9vw, 8rem) clamp(1rem, 7vw, 7rem); }
.atlas-legend { background: var(--paper); display: grid; gap: clamp(3rem, 4.5vw, 5rem); grid-template-columns: minmax(22rem, .9fr) minmax(30rem, 1.1fr); }
.atlas-legend > div { min-width: 0; }
.atlas-legend h2, .decision-principle h2, .plan-terrain h2, .section-heading h2, .app-empty h2 {
    font-family: var(--display);
    font-size: clamp(2.7rem, 5vw, 5rem);
    letter-spacing: -.025em;
    line-height: .94;
    margin: 0;
    text-transform: uppercase;
}
.atlas-legend h2 { font-size: clamp(2.7rem, 4.1vw, 5rem); text-wrap: balance; }
.atlas-legend > div > p, .decision-principle p, .plan-terrain__intro p, .section-heading p, .app-empty p { color: var(--muted); font-size: 1.08rem; max-width: 66ch; }
.atlas-legend__more { align-items: center; color: var(--teal-deep); display: inline-flex; font-weight: 600; gap: .65rem; margin-top: 1.4rem; text-decoration: none; }
.atlas-legend__more:hover { color: var(--ink); }
.atlas-legend__more .icon { height: 1.15rem; transition: transform .2s var(--ease-out); width: 1.15rem; }
.atlas-legend__more:hover .icon { transform: translateX(.25rem); }
.tool-list { border-top: 1px solid var(--ink); list-style: none; margin: 0; padding: 0; }
.tool-list li { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 3rem minmax(10rem, .7fr) 1.3fr; padding: 1.25rem 0; }
.tool-list li > span { align-items: center; background: var(--ink); color: var(--paper); display: flex; height: 2.75rem; justify-content: center; width: 2.75rem; }
.tool-list strong { font-size: 1.05rem; }.tool-list small { color: var(--muted); font-size: .95rem; }

.decision-principle { align-items: center; background: var(--ink); color: var(--paper); display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: .75fr 1.25fr; overflow: hidden; }
.decision-principle p { color: #c8d6dc; }
.decision-principle__more { align-items: center; color: var(--chartreuse); display: inline-flex; font-weight: 600; gap: .55rem; margin-top: 1rem; }
.decision-principle__more .icon { height: 1.1rem; transition: transform .2s var(--ease-out); width: 1.1rem; }
.decision-principle__more:hover .icon { transform: translateX(.25rem); }
.decision-principle__map { height: 22rem; position: relative; }
.decision-principle__map::before, .decision-principle__map::after, .decision-principle__map span { border: 1px solid rgba(216, 242, 58, .55); border-radius: 50%; content: ""; position: absolute; }
.decision-principle__map::before { inset: 12% 9%; }.decision-principle__map::after { inset: 23% 21%; }.decision-principle__map span:nth-child(1) { inset: 35%; background: var(--coral); border: 0; }
.decision-principle__map span:nth-child(2) { height: 1px; left: 10%; right: 10%; top: 50%; border-radius: 0; }
.decision-principle__map span:nth-child(3) { bottom: 10%; left: 50%; top: 10%; width: 1px; border-radius: 0; }

.plan-terrain { background: var(--mineral); }
.plan-terrain__intro { display: grid; gap: 2rem; grid-template-columns: 1fr 1fr; }
.plan-lines { border-top: 1px solid var(--ink); list-style: none; margin-top: 4rem; padding-left: 0; }
.plan-lines li { align-items: baseline; border-bottom: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: 9rem 1fr 9rem; padding: 1.5rem 0; }
.plan-lines strong { font-family: var(--display); font-size: 2rem; }
.plan-lines p { color: var(--muted); margin: 0; }.plan-lines a { font-weight: 600; }.plan-lines span { color: var(--muted); }
.plan-terrain__more { align-items: center; display: inline-flex; font-weight: 600; gap: .55rem; margin-top: 2rem; }
.plan-terrain__more .icon { height: 1.1rem; transition: transform .2s var(--ease-out); width: 1.1rem; }
.plan-terrain__more:hover .icon { transform: translateX(.25rem); }

.site-footer { align-items: center; background: var(--ink-deep); color: var(--paper); display: flex; gap: 2rem; justify-content: space-between; padding: 2.25rem clamp(1rem, 7vw, 7rem); }
.site-footer p { color: #bfcbd2; margin: 0; }.site-footer nav { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.brand--footer { color: var(--paper); }
.brand--footer .brand__symbol { flex-basis: 2.9rem; height: 2.9rem; width: 2.9rem; }
.brand--footer .brand__name { font-size: var(--brand-name-md); }
.site-footer__slogan { font-size: .9rem; letter-spacing: .015em; max-width: 28rem; }
.site-footer--home { align-items: start; display: grid; gap: clamp(2rem, 4vw, 4rem); grid-template-columns: minmax(13rem, .68fr) minmax(28rem, 1.5fr) auto; }
.site-footer__identity { display: grid; gap: .85rem; }
.site-footer__content { display: grid; gap: 1.25rem; }
.site-footer .site-footer__notice { color: var(--paper); font-size: 1rem; line-height: 1.6; max-width: 72ch; }
.site-footer__notice strong { color: var(--paper); }
.site-footer__notice a { color: var(--chartreuse); font-weight: 600; }
.site-footer__meta { align-items: center; border-top: 1px solid rgba(255, 255, 255, .24); display: flex; gap: 1rem 2rem; justify-content: space-between; padding-top: 1rem; }
.site-footer .site-footer__meta p { color: var(--paper); font-size: .8rem; letter-spacing: .025em; }
.site-footer__meta p span { color: var(--chartreuse); font-size: .8rem; margin-right: .35rem; }
.site-footer__social { align-items: center; color: var(--paper); display: inline-flex; gap: .55rem; text-decoration: none; white-space: nowrap; }
.site-footer__social > span { align-items: center; border: 1px solid rgba(255, 255, 255, .55); border-radius: 50%; display: inline-flex; font-family: var(--display); height: 2rem; justify-content: center; width: 2rem; }
.site-footer__social strong { font-size: .8rem; }
.site-footer--home > nav { align-content: start; display: grid; gap: .65rem; }

/* Public resources · do relato à entrega */
.resources-hero { background: var(--mineral); border-bottom: 1px solid rgba(16,27,77,.26); display: grid; gap: clamp(2.5rem, 5vw, 6rem); grid-template-columns: minmax(19rem, .65fr) minmax(42rem, 1.35fr); isolation: isolate; min-height: calc(100svh - 5.25rem); overflow: hidden; padding: clamp(3.5rem, 7vw, 7rem) clamp(1rem, 4vw, 4rem) clamp(3rem, 5vw, 5rem); position: relative; }
.resources-contours { inset: 0; height: 100%; position: absolute; width: 100%; z-index: -1; }
.resources-contours path { fill: none; stroke: rgba(31,165,138,.2); stroke-width: 1; vector-effect: non-scaling-stroke; }
.resources-coordinate { color: rgba(16,27,77,.55); font-family: var(--display); font-size: .75rem; letter-spacing: .11em; position: absolute; text-transform: uppercase; }
.resources-coordinate--top { left: 24%; top: 1rem; }
.resources-coordinate--side { left: .55rem; top: 53%; transform: rotate(-90deg); transform-origin: left top; }
.resources-hero__copy { align-self: center; min-width: 0; position: relative; z-index: 2; }
.resources-hero__copy h1 { font-family: var(--display); font-size: clamp(3.7rem, 5.55vw, 5.35rem); letter-spacing: -.03em; line-height: .88; margin: 0; max-width: 9ch; text-transform: uppercase; }
.resources-hero__copy > p { color: var(--muted); font-size: clamp(1.04rem, 1.35vw, 1.22rem); line-height: 1.55; margin: 1.5rem 0 1.7rem; max-width: 39ch; }
.resources-hero__copy > small { color: var(--muted); display: block; line-height: 1.45; margin-top: 1rem; max-width: 42ch; }
.resources-transform { align-items: stretch; align-self: center; display: grid; grid-template-columns: minmax(12rem, .9fr) minmax(9.5rem, .62fr) minmax(17rem, 1.18fr); min-width: 0; position: relative; }
.resources-notes { align-self: center; background: var(--paper); border-block: 1px solid var(--ink); margin-right: -1rem; min-width: 0; padding: 1.35rem 1.35rem 1.1rem; position: relative; transform: rotate(-1.2deg); z-index: 2; }
.resources-notes::before { background: radial-gradient(circle, var(--mineral) 0 .28rem, transparent .3rem) 0 0 / 1.15rem 1.15rem; content: ""; inset: 0 auto 0 -.58rem; position: absolute; width: 1.15rem; }
.resources-notes header, .resources-document header { display: flex; flex-direction: column; gap: .35rem; }
.resources-notes header span, .resources-document header span { color: var(--coral); font-family: var(--display); font-size: .8rem; letter-spacing: .07em; text-transform: uppercase; }
.resources-notes header strong { font-family: var(--display); font-size: 1.55rem; text-transform: uppercase; }
.resources-notes p { border-top: 1px solid var(--line); color: var(--muted); font-size: .9rem; line-height: 1.5; margin: .85rem 0 0; padding-top: .75rem; }
.resources-context { align-content: center; display: grid; min-width: 0; padding: 1.5rem .75rem; position: relative; z-index: 3; }
.resources-context::before { animation: resources-flow .9s .2s var(--ease-out) both; background: var(--teal); content: ""; height: 2px; left: 0; position: absolute; right: 0; top: 50%; transform-origin: left; }
.resources-context > div { align-items: center; background: var(--mineral); border-top: 1px solid var(--line); display: grid; gap: .15rem .5rem; grid-template-columns: 2rem minmax(0,1fr); padding: .65rem 0; position: relative; }
.resources-context > div:last-of-type { border-bottom: 1px solid var(--line); }
.resources-context > div > span { align-items: center; color: var(--teal-deep); display: flex; grid-row: 1 / 3; justify-content: center; }
.resources-context strong { font-size: .82rem; line-height: 1.15; }
.resources-context small { color: var(--muted); font-size: .68rem; line-height: 1.2; }
.resources-flow-dot { align-items: center; background: var(--coral); border-radius: 50%; color: var(--paper); display: flex; height: 2.45rem; justify-content: center; left: -.95rem; position: absolute; top: calc(50% - 1.22rem); width: 2.45rem; z-index: 2; }
.resources-flow-dot--end { background: var(--teal-deep); left: auto; right: -.95rem; }
.resources-flow-dot .icon { height: 1rem; width: 1rem; }
.resources-document { align-self: center; background: var(--paper); box-shadow: 0 18px 44px rgba(8,22,61,.2); min-height: 30rem; min-width: 0; padding: 1.5rem 1.6rem 1.25rem; position: relative; z-index: 2; }
.resources-document::after { background: var(--ink); content: ""; inset: 1rem -.8rem -1rem auto; position: absolute; width: .8rem; z-index: -1; }
.resources-document header { border-bottom: 2px solid var(--ink); padding-bottom: .9rem; }
.resources-document header span { color: var(--teal-deep); }
.resources-document header strong { font-family: var(--display); font-size: 1.8rem; text-transform: uppercase; }
.resources-document section { border-bottom: 1px solid var(--line); padding: .75rem 0; }
.resources-document section > strong { color: var(--teal-deep); display: block; font-family: var(--display); font-size: .83rem; letter-spacing: .04em; text-transform: uppercase; }
.resources-document section p { color: var(--muted); font-size: .78rem; line-height: 1.35; margin: .4rem 0 0; }
.resources-document section i { background: #d6ddda; display: block; height: .32rem; margin-top: .45rem; }
.resources-document section i:nth-of-type(2) { width: 76%; }
.resources-document section i:nth-of-type(3) { width: 88%; }
.resources-document footer { color: var(--muted); display: grid; font-size: .65rem; gap: .6rem; grid-template-columns: 1fr .55fr .55fr; padding-top: .85rem; text-transform: uppercase; }
@keyframes resources-flow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.resources-journey, .resources-tools, .resources-control { padding: clamp(4.5rem, 8vw, 7.5rem) clamp(1rem, 7vw, 7rem); }
.resources-journey { background: var(--paper); }
.resources-journey > header, .resources-tools > header, .resources-control > header { align-items: end; display: grid; gap: clamp(2rem, 7vw, 7rem); grid-template-columns: minmax(18rem,.8fr) minmax(24rem,1.2fr); }
.resources-journey h2, .resources-tools h2, .resources-system h2, .resources-control h2, .resources-close h2 { font-family: var(--display); font-size: clamp(2.8rem, 5vw, 5rem); letter-spacing: -.025em; line-height: .92; margin: 0; text-transform: uppercase; }
.resources-journey > header p, .resources-tools > header p, .resources-control > header p { color: var(--muted); font-size: 1.08rem; margin: 0; max-width: 66ch; }
.resources-journey > ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; margin: 4rem 0 0; padding: 0; position: relative; }
.resources-journey > ol::before { background: var(--teal); content: ""; height: 1px; left: 0; position: absolute; right: 0; top: 2rem; }
.resources-journey > ol > li { min-width: 0; padding: 0 clamp(1rem,3vw,2.5rem) 0 0; position: relative; }
.resources-journey > ol > li + li { border-left: 1px solid var(--line); padding-left: clamp(1rem,3vw,2.5rem); }
.resources-journey__marker { align-items: center; background: var(--paper); border: 1px solid var(--teal-deep); border-radius: 50%; color: var(--teal-deep); display: flex; height: 4rem; justify-content: center; position: relative; width: 4rem; z-index: 1; }
.resources-journey > ol > li:nth-child(2) .resources-journey__marker { border-color: var(--coral); color: var(--coral); }
.resources-journey > ol > li:nth-child(3) .resources-journey__marker { background: var(--ink); border: 6px solid var(--chartreuse); color: var(--paper); }
.resources-journey h3 { font-family: var(--display); font-size: 1.8rem; line-height: 1; margin: 1.35rem 0 .65rem; text-transform: uppercase; }
.resources-journey li > p { color: var(--muted); margin: 0; max-width: 45ch; }
.resources-journey ul { border-top: 1px solid var(--line); list-style: none; margin: 1.4rem 0 0; padding: .65rem 0 0; }
.resources-journey ul li { font-size: .88rem; padding: .28rem 0 .28rem 1rem; position: relative; }
.resources-journey ul li::before { background: var(--teal); border-radius: 50%; content: ""; height: .3rem; left: 0; position: absolute; top: .75rem; width: .3rem; }

.resources-tools { background: var(--mineral); }
.resources-tools > header em { color: var(--ink); }
.resources-tools__ledger { border-top: 2px solid var(--ink); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); list-style: none; margin: 4rem 0 0; padding: 0; }
.resources-tools__ledger li { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 2rem 3rem minmax(0,1fr); min-width: 0; padding: 1.15rem 1.5rem 1.15rem 0; }
.resources-tools__ledger li:nth-child(odd) { border-right: 1px solid var(--line); }
.resources-tools__ledger li:nth-child(even) { padding-left: 1.5rem; }
.resources-tools__position { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; }
.resources-tools__icon { align-items: center; border: 1px solid var(--ink); border-radius: 50%; color: var(--ink); display: flex; height: 2.8rem; justify-content: center; width: 2.8rem; }
.resources-tools__icon .icon { height: 1.2rem; width: 1.2rem; }
.resources-tools__ledger strong { display: block; font-family: var(--display); font-size: 1.25rem; line-height: 1; text-transform: uppercase; }
.resources-tools__ledger p { color: var(--muted); font-size: .82rem; line-height: 1.35; margin: .3rem 0 0; }

.resources-system { background: var(--ink); color: var(--paper); display: grid; gap: clamp(4rem,8vw,8rem); grid-template-columns: minmax(18rem,.7fr) minmax(36rem,1.3fr); overflow: hidden; padding: clamp(5rem,9vw,8rem) clamp(1rem,7vw,7rem); }
.resources-system__copy { align-self: center; }
.resources-system__copy p { color: #c8d6dc; font-size: 1.08rem; max-width: 52ch; }
.resources-system__map { display: grid; gap: 1px; grid-template-columns: repeat(2,minmax(0,1fr)); min-height: 31rem; position: relative; }
.resources-system__map::before, .resources-system__map::after { border: 1px solid rgba(216,242,58,.35); border-radius: 50%; content: ""; pointer-events: none; position: absolute; }
.resources-system__map::before { inset: 3% 12%; }
.resources-system__map::after { inset: 18% 25%; }
.resources-system__center { align-items: center; background: var(--chartreuse); border: 7px solid var(--ink); border-radius: 50%; color: var(--ink-deep); display: flex; flex-direction: column; height: 10.5rem; justify-content: center; left: calc(50% - 5.25rem); position: absolute; text-align: center; top: calc(50% - 5.25rem); width: 10.5rem; z-index: 3; }
.resources-system__center .icon { height: 2rem; width: 2rem; }
.resources-system__center strong { font-family: var(--display); font-size: 1.45rem; text-transform: uppercase; }
.resources-system__center small { font-size: .72rem; }
.resources-system__map article { border: 1px solid rgba(255,255,255,.24); min-height: 15rem; padding: 1.4rem; position: relative; }
.resources-system__map article:nth-of-type(1), .resources-system__map article:nth-of-type(3) { padding-right: 6rem; }
.resources-system__map article:nth-of-type(2), .resources-system__map article:nth-of-type(4) { padding-left: 6rem; }
.resources-system__map article > span { color: var(--chartreuse); }
.resources-system__map article strong { display: block; font-family: var(--display); font-size: 1.35rem; margin-top: .65rem; text-transform: uppercase; }
.resources-system__map article p { color: #c8d6dc; font-size: .86rem; line-height: 1.45; margin: .45rem 0 0; }

.resources-control { background: var(--paper); }
.resources-control dl { border-top: 2px solid var(--ink); margin: 4rem 0 0; }
.resources-control dl > div { align-items: baseline; border-bottom: 1px solid var(--line); display: grid; gap: 2rem; grid-template-columns: minmax(10rem,.45fr) minmax(20rem,1.55fr); padding: 1.25rem 0; }
.resources-control dt { color: var(--teal-deep); font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.resources-control dd { color: var(--muted); margin: 0; }
.resources-close { align-items: center; background: var(--mineral); border-top: 1px solid var(--ink); display: grid; gap: 3rem; grid-template-columns: minmax(20rem,1fr) auto; padding: clamp(4rem,7vw,6rem) clamp(1rem,7vw,7rem); }
.resources-close h2 { max-width: 15ch; }
.resources-close p { color: var(--muted); font-size: 1.08rem; }
.resources-close .button { min-width: 13rem; }

/* Planos públicos — topografia de capacidade */
.plans-page { background: var(--mineral); overflow: hidden; }
.plans-intro { align-items: end; background: var(--mineral); display: grid; gap: clamp(2.5rem,7vw,7rem); grid-template-columns: minmax(22rem,1.12fr) minmax(21rem,.88fr); min-height: 32rem; overflow: hidden; padding: clamp(4rem,7vw,6.75rem) clamp(1rem,7vw,7rem); position: relative; }
.plans-contours { fill: none; inset: 0; opacity: .3; pointer-events: none; position: absolute; stroke: var(--teal); stroke-width: 1.1; width: 100%; }
.plans-intro::after { background: var(--coral); bottom: 0; content: ""; height: 3px; left: clamp(1rem,7vw,7rem); position: absolute; width: clamp(6rem,13vw,12rem); }
.plans-intro__copy, .billing-scale { position: relative; z-index: 1; }
.plans-intro h1 { font-family: var(--display); font-size: clamp(3.8rem,6.6vw,6rem); letter-spacing: -.03em; line-height: .86; margin: 0; max-width: 12ch; text-transform: uppercase; text-wrap: balance; }
.plans-intro__copy > p { color: var(--muted); font-size: 1.1rem; margin: 1.6rem 0 0; max-width: 58ch; }
.billing-scale { border: 0; margin: 0; padding: 0; }
.billing-scale legend { font-family: var(--display); font-size: 1.5rem; margin-bottom: .8rem; text-transform: uppercase; }
.billing-scale__control { background: var(--ink); display: grid; grid-template-columns: 1fr 1fr; padding: .35rem; width: min(100%,22rem); }
.billing-scale__control input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.billing-scale__control label { color: #dbe4e1; cursor: pointer; font-weight: 600; padding: .8rem 1rem; text-align: center; transition: background-color .22s var(--ease-out), color .22s var(--ease-out); }
.billing-scale__control input:checked + label { background: var(--chartreuse); color: var(--ink-deep); }
.billing-scale__control input:focus-visible + label { outline: 3px solid var(--coral); outline-offset: 3px; }
.billing-scale > p { color: var(--muted); font-size: .86rem; margin: 1rem 0 0; max-width: 46ch; }

.plans-relief { background: var(--paper); border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); padding: 0 clamp(1rem,7vw,7rem); position: relative; }
.plans-relief::before { background: var(--teal); bottom: 0; content: ""; left: calc(clamp(1rem,7vw,7rem) + 2.4rem); position: absolute; top: 0; width: 1px; }
.plan-level { align-items: center; display: grid; gap: clamp(1rem,2.5vw,2.5rem); grid-template-columns: 4.8rem minmax(10rem,.55fr) minmax(15rem,1fr) minmax(11rem,.5fr) minmax(10rem,auto); margin-left: 0; min-height: 10rem; padding: 1.5rem 0; position: relative; }
.plan-level + .plan-level { border-top: 1px solid var(--line); }
.plan-level--plus { margin-left: clamp(0rem,3vw,3rem); }
.plan-level--pro { background: var(--ink); color: var(--paper); margin-inline: clamp(0rem,6vw,6rem) calc(clamp(1rem,7vw,7rem) * -1); padding-inline: clamp(0rem,3vw,3rem) clamp(1rem,7vw,7rem); }
.plan-level__marker { align-items: center; align-self: stretch; display: flex; flex-direction: column; justify-content: center; position: relative; z-index: 1; }
.plan-level__marker span { align-items: center; background: var(--paper); border: 1px solid var(--teal-deep); border-radius: 50%; color: var(--teal-deep); display: flex; font-family: var(--display); height: 3.2rem; justify-content: center; width: 3.2rem; }
.plan-level--pro .plan-level__marker span { background: var(--chartreuse); border-color: var(--chartreuse); color: var(--ink-deep); }
.plan-level__marker i { background: var(--teal); height: 1px; position: absolute; right: -.3rem; width: 1.6rem; }
.plan-level header h2 { font-family: var(--display); font-size: clamp(2.5rem,4vw,4.2rem); letter-spacing: -.025em; line-height: .9; margin: 0; }
.plan-level header p { color: var(--muted); margin: .45rem 0 0; max-width: 28ch; }
.plan-level--pro header p, .plan-level--pro .plan-level__capacity span { color: #c9d8d5; }
.plan-level__capacity strong { display: block; font-family: var(--display); font-size: 1.28rem; text-transform: uppercase; }
.plan-level__capacity span { color: var(--muted); display: block; font-size: .87rem; margin-top: .35rem; max-width: 44ch; }
.plan-level__price { font-variant-numeric: tabular-nums; }
.plan-level__price > span { display: none; }
.plans-page[data-billing-cycle="monthly"] .price-monthly, .plans-page[data-billing-cycle="yearly"] .price-yearly { display: block; }
.plan-level__price strong { display: block; font-family: var(--display); font-size: 1.35rem; line-height: 1; text-transform: uppercase; }
.plan-level__price small { color: var(--muted); display: block; margin-top: .45rem; }
.plan-level--pro .plan-level__price small { color: #c9d8d5; }
.plan-level .button { justify-self: end; white-space: nowrap; }
.plan-level__checkout { display: none; justify-self: end; }
.plan-level__checkout form { align-items: flex-end; display: flex; flex-direction: column; justify-content: flex-end; margin: 0; }
.checkout-status { color: var(--muted); display: block; font-size: .78rem; margin-top: .45rem; text-align: right; }
.plan-level__checkout .button:disabled { background: var(--line); color: var(--muted); cursor: not-allowed; opacity: .8; }
.plan-level__status { border-bottom: 1px solid currentColor; color: var(--teal-deep); font-size: .78rem; justify-self: end; line-height: 1.25; max-width: 11rem; padding-bottom: .3rem; text-align: right; text-transform: uppercase; }
.plan-level--pro .plan-level__status { color: var(--chartreuse); }

.plans-common { background: var(--mineral); display: grid; gap: clamp(3rem,8vw,8rem); grid-template-columns: minmax(18rem,.8fr) minmax(28rem,1.2fr); padding: clamp(5rem,9vw,8rem) clamp(1rem,7vw,7rem); }
.plans-common h2, .plans-close h2 { font-family: var(--display); font-size: clamp(2.8rem,5vw,5rem); letter-spacing: -.025em; line-height: .92; margin: 0; text-transform: uppercase; text-wrap: balance; }
.plans-common > div > p { color: var(--muted); font-size: 1.08rem; max-width: 52ch; }
.plans-common dl { border-top: 2px solid var(--ink); margin: 0; }
.plans-common dl > div { border-bottom: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: 8rem 1fr; padding: 1.15rem 0; }
.plans-common dt { color: var(--teal-deep); font-family: var(--display); font-size: 1.15rem; text-transform: uppercase; }
.plans-common dd { color: var(--muted); margin: 0; }
.plans-close { align-items: center; background: var(--ink-deep); color: var(--paper); display: grid; gap: 3rem; grid-template-columns: minmax(20rem,1fr) auto; padding: clamp(4rem,7vw,6rem) clamp(1rem,7vw,7rem); }
.plans-close h2 { max-width: 14ch; }
.plans-close p { color: #c9d8d5; font-size: 1.08rem; max-width: 54ch; }
.plans-close .button { min-width: 13rem; }

@media (max-width: 1120px) {
    .plan-level { grid-template-columns: 4.8rem minmax(9rem,.5fr) minmax(14rem,1fr) minmax(10rem,.55fr); }
    .plan-level .button, .plan-level__checkout, .plan-level__status { grid-column: 2 / -1; justify-self: start; }
    .plan-level__status { max-width: none; text-align: left; }
}

@media (max-width: 820px) {
    .plans-intro { grid-template-columns: 1fr; min-height: 0; }
    .plans-intro h1 { font-size: clamp(3.3rem,12vw,5rem); }
    .billing-scale__control { width: 100%; }
    .plans-relief::before { left: 2.6rem; }
    .plan-level, .plan-level--plus, .plan-level--pro { gap: .7rem 1rem; grid-template-columns: 3.2rem 1fr; margin-inline: 0; min-height: 0; padding: 2rem 0; }
    .plan-level--pro { margin-inline: -1rem; padding-inline: 1rem; }
    .plan-level__marker { grid-row: 1 / 5; justify-content: flex-start; padding-top: .15rem; }
    .plan-level__marker span { height: 2.8rem; width: 2.8rem; }
    .plan-level__marker i { display: none; }
    .plan-level header, .plan-level__capacity, .plan-level__price, .plan-level .button, .plan-level__checkout, .plan-level__status { grid-column: 2; }
    .plan-level .button { justify-self: start; margin-top: .5rem; }
    .plan-level__checkout, .plan-level__checkout form { align-items: flex-start; justify-content: flex-start; width: 100%; }
    .plans-common { grid-template-columns: 1fr; }
    .plans-close { grid-template-columns: 1fr; }
    .plans-close .button { justify-self: start; }
}

@media (max-width: 560px) {
    .plans-intro { padding-block: 3.25rem; }
    .plans-intro h1 { font-size: clamp(3rem,15vw,4rem); }
    .plans-intro__copy > p { font-size: 1rem; }
    .plans-relief::before { left: 2.3rem; }
    .plan-level, .plan-level--pro { grid-template-columns: 2.6rem minmax(0,1fr); }
    .plan-level__marker span { font-size: .78rem; height: 2.35rem; width: 2.35rem; }
    .plan-level header h2 { font-size: 2.8rem; }
    .plan-level .button { justify-content: center; width: 100%; }
    .plan-level__checkout { width: 100%; }
    .plans-common dl > div { gap: .3rem; grid-template-columns: 1fr; }
    .plans-close .button { width: 100%; }
}

/* Administração: aprovação mínima e auditável de fontes privadas */
.admin-private-ledger { min-width: 0; }
.admin-private-heading h1 { max-width: 9ch; }
.admin-private-queue { max-width: 76rem; }
.admin-private-list { border-top: 1px solid var(--ink); }
.admin-private-item { border-bottom: 1px solid var(--ink); padding: 2rem 0; }
.admin-private-item > header { align-items: start; display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr) auto; }
.admin-private-item > header span { color: var(--teal-deep); font-family: var(--display); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.admin-private-item h3 { font-family: var(--display); font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1; margin: .45rem 0 0; overflow-wrap: anywhere; text-transform: uppercase; }
.admin-private-item > header p { color: var(--muted); font-size: .82rem; margin: .55rem 0 0; overflow-wrap: anywhere; }
.admin-private-item dl { display: grid; gap: .7rem; margin: 0; min-width: 14rem; }
.admin-private-item dl div { border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 4.5rem 1fr; padding-bottom: .55rem; }
.admin-private-item dt { color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.admin-private-item dd { font-size: .78rem; font-weight: 700; margin: 0; text-align: right; }
.admin-private-preview { margin-top: 1.5rem; }
.admin-private-preview summary { cursor: pointer; font-weight: 700; padding: .75rem 0; width: fit-content; }
.admin-private-preview summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.admin-private-preview p { background: var(--mineral); border-block: 1px solid var(--line); color: var(--ink); font-size: .88rem; line-height: 1.65; margin: .5rem 0 0; max-height: 18rem; overflow: auto; overflow-wrap: anywhere; padding: 1rem; white-space: normal; }
.admin-private-decision { align-items: end; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) auto; margin-top: 1.5rem; }
.admin-private-decision label { color: var(--muted); font-size: .75rem; font-weight: 700; }
.admin-private-decision textarea { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); display: block; font: 1rem/1.45 var(--body); margin-top: .45rem; min-height: 4.5rem; padding: .75rem; resize: vertical; width: 100%; }
.admin-private-decision textarea:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.admin-private-decision > div { display: flex; gap: .65rem; }
.admin-private-decision .button { border: 1px solid var(--ink); min-height: 3rem; white-space: nowrap; }

@media (max-width: 760px) {
    .admin-private-item > header, .admin-private-decision { grid-template-columns: 1fr; }
    .admin-private-item dl { min-width: 0; width: 100%; }
    .admin-private-decision > div { align-items: stretch; flex-direction: column-reverse; }
    .admin-private-decision .button { justify-content: center; width: 100%; }
}

/* Progressive ledgers: bounded server-side lists with stable mobile controls. */
.admin-pagination-summary,
.app-pagination-summary { color: var(--muted); font-size: .8rem; margin: .75rem 0; }
.admin-list-pagination,
.app-list-pagination { align-items: center; border-block: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: minmax(7rem, 1fr) auto minmax(7rem, 1fr); margin-top: 1.25rem; padding: .85rem 0; }
.admin-list-pagination a,
.app-list-pagination a { align-items: center; border: 1px solid var(--ink); border-radius: 2rem; color: var(--ink); display: inline-flex; font-family: var(--display); font-size: .8rem; justify-content: center; min-height: 3.25rem; padding: .65rem 1rem; text-decoration: none; text-transform: uppercase; }
.admin-list-pagination a:last-child,
.app-list-pagination a:last-child { justify-self: end; }
.admin-list-pagination a:hover,
.admin-list-pagination a:focus-visible,
.app-list-pagination a:hover,
.app-list-pagination a:focus-visible { background: var(--ink); color: var(--paper); outline: 3px solid var(--coral); outline-offset: 4px; }
.admin-list-pagination a.is-disabled,
.app-list-pagination a.is-disabled { border-color: var(--line); color: var(--muted); cursor: not-allowed; opacity: .62; pointer-events: none; }
.admin-list-pagination > span,
.app-list-pagination > span { color: var(--muted); font-size: .8rem; text-align: center; }
.knowledge-source-filters { align-items: end; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: minmax(14rem, 2fr) minmax(10rem, 1fr) minmax(10rem, 1fr) auto; padding-bottom: 1.2rem; }
.knowledge-source-filters label { display: grid; gap: .4rem; min-width: 0; }
.knowledge-source-filters label > span { color: var(--muted); font-size: .8rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.knowledge-source-filters input,
.knowledge-source-filters select { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: inherit; min-height: 3.35rem; padding: .7rem .85rem; width: 100%; }
.knowledge-source-filters input:focus,
.knowledge-source-filters select:focus { background: var(--paper); border-color: var(--teal); box-shadow: 0 0 0 3px rgba(31,165,138,.18); outline: 0; }
.conversation-index__search { border-bottom: 1px solid var(--line); padding: .7rem 1rem; }
.conversation-index__search > label { color: var(--muted); display: block; font-size: .8rem; font-weight: 600; margin-bottom: .3rem; text-transform: uppercase; }
.conversation-index__search > div { display: grid; grid-template-columns: minmax(0, 1fr) 2.75rem; }
.conversation-index__search input { background: var(--paper); border: 1px solid var(--line); border-radius: 9px 0 0 9px; color: var(--ink); font: inherit; min-height: 2.75rem; min-width: 0; padding: .55rem .7rem; width: 100%; }
.conversation-index__search button { align-items: center; background: var(--ink); border: 1px solid var(--ink); border-radius: 0 9px 9px 0; color: var(--paper); cursor: pointer; display: flex; justify-content: center; min-height: 2.75rem; }
.conversation-index__search button:hover,
.conversation-index__search button:focus-visible { background: var(--teal-deep); outline: 3px solid var(--coral); outline-offset: 4px; }
.conversation-index__search svg { height: 1rem; width: 1rem; }
.conversation-index__pagination { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: .35rem; grid-template-columns: 1fr auto 1fr; padding: .55rem .75rem; }
.conversation-index__pagination a { color: var(--teal-deep); font-size: .8rem; font-weight: 700; min-height: 2.75rem; padding: .8rem .3rem; text-decoration: none; }
.conversation-index__pagination a:last-child { text-align: right; }
.conversation-index__pagination a.is-disabled { color: var(--muted); opacity: .5; pointer-events: none; }
.conversation-index__pagination span { color: var(--muted); font-size: .8rem; }
.message-history-pagination { align-items: center; background: var(--mineral); border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 1fr auto 1fr; padding: .75rem 1rem; }
.message-history-pagination a { color: var(--teal-deep); font-size: .8rem; font-weight: 700; min-height: 2.75rem; padding: .7rem 0; text-decoration: underline; text-underline-offset: .25rem; }
.message-history-pagination a:last-child { text-align: right; }
.message-history-pagination > span { color: var(--muted); font-size: .8rem; text-align: center; }

@media (max-width: 1080px) {
    .atlas-legend { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .knowledge-source-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .knowledge-source-filters button { width: 100%; }
}

@media (max-width: 560px) {
    .knowledge-source-filters { grid-template-columns: 1fr; }
    .admin-list-pagination,
    .app-list-pagination { gap: .55rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-list-pagination > span,
    .app-list-pagination > span { grid-column: 1 / -1; grid-row: 1; }
    .admin-list-pagination a,
    .app-list-pagination a { font-size: .8rem; padding-inline: .6rem; width: 100%; }
    .message-history-pagination { gap: .45rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .message-history-pagination > span { grid-column: 1 / -1; grid-row: 1; }
    .message-history-pagination a { font-size: .8rem; }
}

@media (max-width: 1180px) {
    .resources-hero { grid-template-columns: 1fr; min-height: auto; }
    .resources-hero__copy { display: grid; gap: 0 2rem; grid-template-columns: minmax(18rem,.9fr) minmax(20rem,1.1fr); }
    .resources-hero__copy h1 { grid-row: 1 / 4; }
    .resources-hero__copy > p { margin-top: 0; }
    .resources-hero__copy .button { justify-self: start; }
    .resources-transform { margin-inline: auto; max-width: 62rem; width: 100%; }
    .resources-system { grid-template-columns: 1fr; }
    .resources-system__copy { display: grid; gap: 2rem; grid-template-columns: .8fr 1.2fr; }
}

@media (max-width: 820px) {
    .resources-hero { min-height: auto; padding: 3.2rem 1rem 3rem; }
    .resources-coordinate--top { left: 40%; }
    .resources-coordinate--side { display: none; }
    .resources-hero__copy { display: block; }
    .resources-hero__copy h1 { font-size: clamp(3.2rem,13vw,4.5rem); max-width: 10ch; }
    .resources-hero__copy > p { margin-top: 1.1rem; }
    .resources-transform { align-items: stretch; grid-template-columns: 1fr; }
    .resources-notes { margin: 0 1rem; transform: rotate(-.5deg); }
    .resources-context { grid-template-columns: repeat(3,minmax(0,1fr)); padding: 2.5rem 1rem; }
    .resources-context::before { left: 1rem; right: 1rem; }
    .resources-context > div { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); grid-template-columns: 1fr; padding: .8rem .5rem; text-align: center; }
    .resources-context > div + div { border-left: 1px solid var(--line); }
    .resources-context > div > span { grid-row: auto; }
    .resources-flow-dot { left: calc(50% - 1.22rem); top: -.15rem; transform: rotate(90deg); }
    .resources-flow-dot--end { bottom: -.15rem; left: calc(50% - 1.22rem); right: auto; top: auto; }
    .resources-document { margin: 0 1rem; min-height: 0; }
    .resources-journey > header, .resources-tools > header, .resources-control > header, .resources-system__copy { grid-template-columns: 1fr; }
    .resources-journey > ol { grid-template-columns: 1fr; }
    .resources-journey > ol::before { bottom: 0; height: auto; left: 2rem; right: auto; top: 0; width: 1px; }
    .resources-journey > ol > li, .resources-journey > ol > li + li { border-left: 0; padding: 0 0 2.8rem 5.5rem; }
    .resources-journey__marker { left: 0; position: absolute; top: 0; }
    .resources-journey h3 { margin-top: 0; }
    .resources-tools__ledger { grid-template-columns: 1fr; }
    .resources-tools__ledger li, .resources-tools__ledger li:nth-child(even) { border-right: 0; padding-inline: 0; }
    .resources-system__map { min-height: 34rem; }
    .resources-control dl > div { grid-template-columns: 1fr; gap: .35rem; }
    .resources-close { grid-template-columns: 1fr; }
    .resources-close .button { justify-self: start; }
}

@media (max-width: 560px) {
    .resources-hero__copy > small { font-size: .78rem; }
    .resources-context { display: grid; grid-template-columns: 1fr; padding-block: 2.5rem; }
    .resources-context::before { bottom: 1rem; height: auto; left: 50%; right: auto; top: 1rem; width: 2px; }
    .resources-context > div, .resources-context > div + div { border-left: 0; padding: .75rem; }
    .resources-context > div > span { background: var(--mineral); }
    .resources-document { padding: 1.2rem; }
    .resources-document footer { grid-template-columns: 1fr; }
    .resources-journey, .resources-tools, .resources-control { padding-block: 4rem; }
    .resources-tools__ledger li { gap: .75rem; grid-template-columns: 1.6rem 2.7rem minmax(0,1fr); }
    .resources-tools__icon { height: 2.5rem; width: 2.5rem; }
    .resources-system { padding-block: 4.5rem; }
    .resources-system__map { display: block; min-height: 0; padding-top: 9rem; }
    .resources-system__map::before { inset: 0 20% auto; height: 13rem; }
    .resources-system__map::after { inset: 2rem 30% auto; height: 9rem; }
    .resources-system__center { height: 8rem; left: calc(50% - 4rem); top: 1.5rem; width: 8rem; }
    .resources-system__map article, .resources-system__map article:nth-of-type(n) { min-height: 0; padding: 1.2rem 0; }
    .resources-system__map article + article { border-top: 0; }
    .resources-close .button { width: 100%; }
}

/* Segurança pública — registro de confiança */
.security-page, .about-page { background: var(--mineral); overflow: hidden; }
.security-hero { align-items: center; background: var(--mineral); display: grid; gap: clamp(3rem,7vw,8rem); grid-template-columns: minmax(20rem,.82fr) minmax(34rem,1.18fr); min-height: calc(100svh - 5.25rem); overflow: hidden; padding: clamp(4rem,8vw,7rem) clamp(1rem,7vw,7rem); position: relative; }
.security-contours, .about-contours { fill: none; height: 100%; inset: 0; pointer-events: none; position: absolute; stroke: rgba(31,165,138,.25); stroke-width: 1.1; width: 100%; }
.security-hero__copy, .security-register { position: relative; z-index: 1; }
.security-hero h1, .about-hero h1 { font-family: var(--display); font-size: clamp(3.8rem,6.35vw,6rem); letter-spacing: -.03em; line-height: .87; margin: 0; max-width: 11ch; text-transform: uppercase; text-wrap: balance; }
.security-hero__copy > p, .about-hero__copy > p { color: var(--muted); font-size: clamp(1.04rem,1.3vw,1.2rem); margin: 1.6rem 0 1.8rem; max-width: 52ch; }
.security-register { border-block: 1px solid var(--ink); display: grid; grid-template-columns: 2.5rem minmax(0,1fr); }
.security-register__axis { align-items: center; display: flex; flex-direction: column; grid-row: 1 / 5; justify-content: space-around; position: relative; }
.security-register__axis::before { background: var(--teal); bottom: 2rem; content: ""; left: calc(50% - .5px); position: absolute; top: 2rem; width: 1px; }
.security-register__axis span { background: var(--mineral); border: 1px solid var(--teal-deep); border-radius: 50%; height: .7rem; position: relative; width: .7rem; z-index: 1; }
.security-register article { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: .25rem 1rem; grid-template-columns: 2.8rem minmax(8rem,.4fr) minmax(15rem,1fr) 5rem; min-height: 7.5rem; padding: 1.1rem 0 1.1rem 1.4rem; }
.security-register article:last-child { border-bottom: 0; }
.security-register article > span { align-items: center; border: 1px solid var(--ink); border-radius: 50%; display: flex; height: 2.8rem; justify-content: center; width: 2.8rem; }
.security-register article > span .icon { height: 1.2rem; width: 1.2rem; }
.security-register article strong { font-family: var(--display); font-size: 1.45rem; text-transform: uppercase; }
.security-register article p { color: var(--muted); font-size: .9rem; line-height: 1.4; margin: 0; }
.security-register article small { color: var(--teal-deep); font-family: var(--display); font-size: .72rem; letter-spacing: .08em; text-align: right; text-transform: uppercase; }

.security-layers, .security-ai, .security-honesty, .about-purpose, .about-foundation, .about-boundaries { padding: clamp(5rem,9vw,8rem) clamp(1rem,7vw,7rem); }
.security-layers { background: var(--paper); }
.security-layers > header, .about-purpose > header { align-items: end; display: grid; gap: clamp(2.5rem,8vw,8rem); grid-template-columns: minmax(18rem,.78fr) minmax(26rem,1.22fr); }
.security-layers h2, .security-control h2, .security-ai h2, .security-honesty h2, .security-close h2, .about-purpose h2, .about-route h2, .about-capabilities h2, .about-foundation h2, .about-boundaries h2, .about-close h2 { font-family: var(--display); font-size: clamp(2.8rem,5vw,5rem); letter-spacing: -.025em; line-height: .92; margin: 0; text-transform: uppercase; text-wrap: balance; }
.security-layers > header p, .about-purpose > header p { color: var(--muted); font-size: 1.08rem; margin: 0; max-width: 66ch; }
.security-layers dl { border-top: 2px solid var(--ink); margin: 4rem 0 0; }
.security-layers dl > div { align-items: baseline; border-bottom: 1px solid var(--line); display: grid; gap: clamp(2rem,6vw,6rem); grid-template-columns: minmax(14rem,.55fr) minmax(22rem,1.45fr); padding: 1.35rem 0; }
.security-layers dt { align-items: center; display: flex; font-family: var(--display); font-size: 1.35rem; gap: .8rem; text-transform: uppercase; }
.security-layers dt span { align-items: center; border: 1px solid var(--teal-deep); border-radius: 50%; color: var(--teal-deep); display: flex; height: 2.4rem; justify-content: center; width: 2.4rem; }
.security-layers dt .icon { height: 1rem; width: 1rem; }
.security-layers dd { color: var(--muted); margin: 0; max-width: 72ch; }

.security-control { align-items: center; background: var(--ink); color: var(--paper); display: grid; gap: clamp(4rem,9vw,9rem); grid-template-columns: minmax(19rem,.72fr) minmax(28rem,1.28fr); padding: clamp(5rem,9vw,8rem) clamp(1rem,7vw,7rem); }
.security-control__field { aspect-ratio: 1; margin-inline: auto; max-width: 28rem; position: relative; width: 100%; }
.security-control__field::before, .security-control__field::after, .security-control__field span { border: 1px solid rgba(216,242,58,.42); border-radius: 50%; content: ""; position: absolute; }
.security-control__field::before { inset: 2%; }
.security-control__field::after { inset: 18%; }
.security-control__field span:nth-child(1) { inset: 34%; }
.security-control__field span:nth-child(2) { border-radius: 0; height: 1px; left: 3%; right: 3%; top: 50%; }
.security-control__field span:nth-child(3) { bottom: 3%; border-radius: 0; left: 50%; top: 3%; width: 1px; }
.security-control__field strong { align-items: center; background: var(--chartreuse); border: 8px solid var(--ink); border-radius: 50%; color: var(--ink-deep); display: flex; font-family: var(--display); height: 8rem; justify-content: center; left: calc(50% - 4rem); position: absolute; text-transform: uppercase; top: calc(50% - 4rem); width: 8rem; }
.security-control__copy > p { color: #c9d8d5; font-size: 1.08rem; max-width: 58ch; }
.security-control ul { border-top: 1px solid rgba(255,255,255,.35); list-style: none; margin: 2.4rem 0 0; padding: 0; }
.security-control li { border-bottom: 1px solid rgba(255,255,255,.22); display: grid; gap: 1rem; grid-template-columns: 8rem 1fr; padding: 1rem 0; }
.security-control li strong { color: var(--chartreuse); font-family: var(--display); text-transform: uppercase; }
.security-control li span { color: #c9d8d5; }

.security-ai { background: var(--mineral); display: grid; gap: clamp(3rem,8vw,8rem); grid-template-columns: minmax(18rem,.8fr) minmax(26rem,1.2fr); }
.security-ai > div > p { color: var(--muted); font-size: 1.08rem; max-width: 58ch; }
.security-ai dl { border-top: 2px solid var(--ink); margin: 0; }
.security-ai dl > div { border-bottom: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: 7rem 1fr; padding: 1.2rem 0; }
.security-ai dt { color: var(--teal-deep); font-family: var(--display); font-size: 1.2rem; text-transform: uppercase; }
.security-ai dd { color: var(--muted); margin: 0; }
.security-honesty { background: var(--paper); border-block: 1px solid var(--ink); display: grid; gap: clamp(3rem,8vw,8rem); grid-template-columns: minmax(18rem,.8fr) minmax(24rem,1.2fr); }
.security-honesty > div p, .security-honesty > p { color: var(--muted); font-size: 1.08rem; margin: 1rem 0 0; max-width: 65ch; }
.security-honesty > p { align-self: end; border-top: 2px solid var(--coral); padding-top: 1.2rem; }
.security-close, .about-close { align-items: center; background: var(--ink-deep); color: var(--paper); display: grid; gap: 3rem; grid-template-columns: minmax(20rem,1fr) auto; padding: clamp(4rem,7vw,6rem) clamp(1rem,7vw,7rem); }
.security-close h2, .about-close h2 { max-width: 15ch; }
.security-close p, .about-close p { color: #c9d8d5; font-size: 1.08rem; max-width: 58ch; }

/* Sobre a ferramenta — caderno de funcionamento */
.about-hero { align-items: center; background: var(--mineral); display: grid; gap: clamp(3rem,8vw,9rem); grid-template-columns: minmax(21rem,.9fr) minmax(28rem,1.1fr); min-height: calc(100svh - 5.25rem); overflow: hidden; padding: clamp(4rem,8vw,7rem) clamp(1rem,7vw,7rem); position: relative; }
.about-hero__copy, .about-declaration { position: relative; z-index: 1; }
.about-declaration { background: var(--ink); box-shadow: -18px 20px 44px rgba(4,12,37,.22); color: var(--paper); margin-left: auto; max-width: 38rem; padding: clamp(2.2rem,4vw,4rem); }
.about-declaration::before { background: var(--coral); content: ""; height: 3px; left: 0; position: absolute; top: 0; width: 35%; }
.about-declaration strong { display: block; font-family: var(--display); font-size: clamp(2rem,3.4vw,3.7rem); line-height: .95; text-transform: uppercase; }
.about-declaration p { color: #c9d8d5; font-size: 1.08rem; margin: 1.5rem 0 2.5rem; max-width: 52ch; }
.about-declaration span { border-top: 1px solid rgba(255,255,255,.3); color: var(--chartreuse); display: block; font-family: var(--display); letter-spacing: .06em; padding-top: 1rem; text-transform: uppercase; }
.about-purpose { background: var(--paper); }
.about-purpose__ledger { border-top: 2px solid var(--ink); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 4rem; }
.about-purpose__ledger article { border-bottom: 1px solid var(--line); min-height: 13rem; padding: 1.5rem 2rem 1.5rem 0; }
.about-purpose__ledger article + article { border-left: 1px solid var(--line); padding-left: 2rem; }
.about-purpose__ledger strong { color: var(--teal-deep); font-family: var(--display); font-size: 1.45rem; text-transform: uppercase; }
.about-purpose__ledger p { color: var(--muted); max-width: 42ch; }

.about-route { background: var(--mineral); padding: clamp(5rem,9vw,8rem) clamp(1rem,7vw,7rem); }
.about-route__copy { align-items: end; display: grid; gap: clamp(3rem,8vw,8rem); grid-template-columns: minmax(18rem,.8fr) minmax(24rem,1.2fr); }
.about-route__copy p { color: var(--muted); font-size: 1.08rem; margin: 0; max-width: 62ch; }
.about-route ol { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); list-style: none; margin: 4rem 0 0; padding: 0; position: relative; }
.about-route ol::before { background: var(--teal); content: ""; height: 1px; left: 2rem; position: absolute; right: 2rem; top: 2rem; }
.about-route li { min-width: 0; padding-right: clamp(1rem,2.5vw,2.5rem); position: relative; }
.about-route li + li { border-left: 1px solid var(--line); padding-left: clamp(1rem,2.5vw,2.5rem); }
.about-route li > span { align-items: center; background: var(--mineral); border: 1px solid var(--teal-deep); border-radius: 50%; color: var(--teal-deep); display: flex; height: 4rem; justify-content: center; position: relative; width: 4rem; z-index: 1; }
.about-route li:nth-child(3) > span { border-color: var(--coral); color: var(--coral); }
.about-route li:nth-child(4) > span { background: var(--ink); border: 6px solid var(--chartreuse); color: var(--paper); }
.about-route li strong { display: block; font-family: var(--display); font-size: 1.65rem; margin-top: 1.2rem; text-transform: uppercase; }
.about-route li p { color: var(--muted); font-size: .9rem; max-width: 38ch; }

.about-capabilities { align-items: center; background: var(--ink); color: var(--paper); display: grid; gap: clamp(4rem,9vw,9rem); grid-template-columns: minmax(20rem,.75fr) minmax(28rem,1.25fr); padding: clamp(5rem,9vw,8rem) clamp(1rem,7vw,7rem); }
.about-capabilities__map { aspect-ratio: 1; margin-inline: auto; max-width: 29rem; position: relative; width: 100%; }
.about-capabilities__map::before, .about-capabilities__map::after, .about-capabilities__map span { border: 1px solid rgba(31,165,138,.65); border-radius: 50%; content: ""; position: absolute; }
.about-capabilities__map::before { inset: 0; }
.about-capabilities__map::after { inset: 17%; }
.about-capabilities__map span:nth-child(1) { inset: 34%; }
.about-capabilities__map span:nth-child(2) { border-color: rgba(216,242,58,.45); border-radius: 0; height: 1px; left: 2%; right: 2%; top: 50%; }
.about-capabilities__map span:nth-child(3) { border-color: rgba(216,242,58,.45); border-radius: 0; bottom: 2%; left: 50%; top: 2%; width: 1px; }
.about-capabilities__map strong { align-items: center; background: var(--chartreuse); border: 8px solid var(--ink); border-radius: 50%; color: var(--ink-deep); display: flex; font-family: var(--display); height: 9rem; justify-content: center; left: calc(50% - 4.5rem); letter-spacing: .05em; position: absolute; top: calc(50% - 4.5rem); width: 9rem; }
.about-capabilities__copy dl { border-top: 1px solid rgba(255,255,255,.35); margin: 2.5rem 0 0; }
.about-capabilities__copy dl > div { border-bottom: 1px solid rgba(255,255,255,.22); display: grid; gap: 1.5rem; grid-template-columns: 9rem 1fr; padding: 1rem 0; }
.about-capabilities dt { color: var(--chartreuse); font-family: var(--display); font-size: 1.2rem; text-transform: uppercase; }
.about-capabilities dd { color: #c9d8d5; margin: 0; }
.about-foundation { background: var(--mineral); display: grid; gap: clamp(3rem,8vw,8rem); grid-template-columns: minmax(20rem,.9fr) minmax(24rem,1.1fr); }
.about-foundation > div p, .about-foundation > p { color: var(--muted); font-size: 1.08rem; max-width: 66ch; }
.about-foundation > p { align-self: end; border-top: 2px solid var(--teal); padding-top: 1.2rem; }
.about-boundaries { background: var(--paper); border-top: 1px solid var(--ink); }
.about-boundaries header { max-width: 56rem; }
.about-boundaries__grid { border-block: 1px solid var(--ink); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 4rem; }
.about-boundaries__grid > div { padding: 2rem 3rem 2rem 0; }
.about-boundaries__grid > div + div { background: var(--ink); color: var(--paper); padding-left: 3rem; padding-right: 3rem; }
.about-boundaries__grid strong { font-family: var(--display); font-size: 1.7rem; text-transform: uppercase; }
.about-boundaries__grid ul { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.about-boundaries__grid li { border-top: 1px solid var(--line); padding: .8rem 0 .8rem 1.2rem; position: relative; }
.about-boundaries__grid li::before { background: var(--teal); border-radius: 50%; content: ""; height: .38rem; left: 0; position: absolute; top: 1.35rem; width: .38rem; }
.about-boundaries__grid > div + div li { border-color: rgba(255,255,255,.25); color: #d8e1e2; }
.about-boundaries__grid > div + div li::before { background: var(--chartreuse); }

@media (max-width: 1180px) {
    .security-hero { grid-template-columns: 1fr; min-height: 0; }
    .security-hero__copy { display: grid; gap: 0 2.5rem; grid-template-columns: minmax(19rem,.85fr) minmax(24rem,1.15fr); }
    .security-hero__copy h1 { grid-row: 1 / 4; }
    .security-hero__copy > p { margin-top: 0; }
    .security-hero__copy .button { justify-self: start; }
    .about-hero { min-height: 0; }
}

@media (max-width: 960px) and (min-width: 821px) {
    .atlas-header { padding-inline: 1.25rem; }
    .atlas-header .brand__tagline { display: none; }
    .site-nav { gap: 0; }
    .site-nav > a:not(.button) { padding-inline: .55rem; }
    .site-nav > a:not(.button)::after { left: .55rem; width: calc(100% - 1.1rem); }
}

@media (max-width: 820px) {
    .security-hero, .about-hero { grid-template-columns: 1fr; min-height: 0; padding-block: 3.5rem; }
    .security-hero__copy { display: block; }
    .security-hero__copy h1, .about-hero__copy h1 { font-size: clamp(3.2rem,13vw,4.7rem); }
    .security-hero__copy > p { margin-top: 1.2rem; }
    .security-register article { grid-template-columns: 2.8rem minmax(7rem,.42fr) minmax(12rem,1fr); }
    .security-register article small { grid-column: 2 / -1; text-align: left; }
    .security-layers > header, .about-purpose > header, .about-route__copy { grid-template-columns: 1fr; }
    .security-layers dl > div { gap: .8rem; grid-template-columns: 1fr; }
    .security-control, .security-ai, .security-honesty, .about-capabilities, .about-foundation { grid-template-columns: 1fr; }
    .security-control__field, .about-capabilities__map { max-width: 22rem; }
    .security-close, .about-close { grid-template-columns: 1fr; }
    .security-close .button, .about-close .button { justify-self: start; }
    .about-hero { gap: 3rem; }
    .about-declaration { margin: 0 0 0 clamp(1rem,8vw,4rem); }
    .about-purpose__ledger { grid-template-columns: 1fr; }
    .about-purpose__ledger article { min-height: 0; padding: 1.3rem 0; }
    .about-purpose__ledger article + article { border-left: 0; padding-left: 0; }
    .about-route ol { grid-template-columns: 1fr; }
    .about-route ol::before { bottom: 0; height: auto; left: 2rem; right: auto; top: 0; width: 1px; }
    .about-route li, .about-route li + li { border-left: 0; padding: 0 0 2.8rem 5.5rem; }
    .about-route li > span { left: 0; position: absolute; top: 0; }
    .about-route li strong { margin-top: 0; }
}

@media (max-width: 560px) {
    .security-hero, .about-hero { padding-inline: 1rem; }
    .security-hero h1, .about-hero h1 { font-size: clamp(3rem,15vw,4rem); }
    .security-register { grid-template-columns: 1.8rem minmax(0,1fr); }
    .security-register article { gap: .25rem .75rem; grid-template-columns: 2.6rem minmax(0,1fr); padding-left: .75rem; }
    .security-register article > span { height: 2.6rem; width: 2.6rem; }
    .security-register article strong { font-size: 1.3rem; }
    .security-register article p, .security-register article small { grid-column: 2; }
    .security-control li, .security-ai dl > div, .about-capabilities__copy dl > div { gap: .3rem; grid-template-columns: 1fr; }
    .security-control__field, .about-capabilities__map { max-width: 18rem; }
    .security-control__field strong { height: 6.5rem; left: calc(50% - 3.25rem); top: calc(50% - 3.25rem); width: 6.5rem; }
    .security-close .button, .about-close .button { width: 100%; }
    .about-declaration { margin-left: 0; padding: 2rem 1.5rem; }
    .about-boundaries__grid { grid-template-columns: 1fr; }
    .about-boundaries__grid > div, .about-boundaries__grid > div + div { padding: 1.6rem 1.2rem; }
}

.flash-stack { display: grid; gap: .5rem; left: 50%; max-width: min(90vw, 42rem); position: fixed; top: 1rem; transform: translateX(-50%); width: max-content; z-index: 99; }
.flash { align-items: center; box-shadow: 0 10px 30px rgba(8, 22, 61, .2); display: grid; gap: .8rem; grid-template-columns: minmax(0, 1fr) 2.75rem; margin: 0; padding: .45rem .45rem .45rem 1rem; transition: opacity .18s ease, transform .18s ease; }
.flash.is-leaving { opacity: 0; transform: translateY(-.5rem); }
.flash__close { align-items: center; background: transparent; border: 0; color: currentColor; cursor: pointer; display: inline-flex; height: 2.75rem; justify-content: center; padding: 0; width: 2.75rem; }
.flash__close .icon { height: 1.1rem; width: 1.1rem; }
.flash__close:hover { background: rgba(8, 22, 61, .08); }
.flash__close:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

.analytics-consent { align-items: center; background: var(--ink-deep); border: 1px solid var(--teal); bottom: 1rem; box-shadow: 0 1rem 2.5rem rgba(8, 22, 61, .24); color: var(--paper); display: grid; gap: 1rem 2rem; grid-template-columns: minmax(0, 1fr) auto; left: 1rem; max-width: min(58rem, calc(100vw - 2rem)); padding: 1rem 1.15rem; position: fixed; z-index: 98; }
.analytics-consent[hidden], .analytics-preferences[hidden] { display: none; }
.analytics-consent strong { color: var(--chartreuse); font-family: var(--display); font-size: 1.05rem; letter-spacing: .06em; text-transform: uppercase; }
.analytics-consent p { color: #d4dee3; font-size: .88rem; line-height: 1.45; margin: .25rem 0 0; max-width: 62ch; }
.analytics-consent a { color: var(--chartreuse); display: inline-block; font-size: .82rem; margin-top: .45rem; }
.analytics-consent__actions { align-items: center; display: flex; flex-wrap: wrap; gap: .55rem; justify-content: flex-end; }
.analytics-consent__actions button, .analytics-preferences { background: transparent; border: 1px solid rgba(255, 255, 255, .58); color: var(--paper); cursor: pointer; font-weight: 600; min-height: 2.65rem; padding: .55rem .8rem; }
.analytics-consent__actions button:hover, .analytics-preferences:hover { border-color: var(--chartreuse); color: var(--chartreuse); }
.analytics-consent__actions .analytics-consent__accept { background: var(--chartreuse); border-color: var(--chartreuse); color: var(--ink-deep); }
.analytics-consent__actions .analytics-consent__accept:hover { background: #e8ff6e; color: var(--ink-deep); }
.analytics-preferences { background: var(--ink-deep); bottom: 1rem; font-size: .76rem; left: 1rem; position: fixed; z-index: 97; }
.flash--success { background: #d9f2e9; color: #0d5f4d; }.flash--notice { background: #f6efbf; color: #594c00; }.flash--error { background: #fae0e0; color: #802626; }

/* Identity */
.identity-page { min-height: 100svh; }
.auth-shell { display: grid; grid-template-columns: minmax(24rem, .92fr) minmax(28rem, 1.08fr); min-height: 100svh; }
.auth-map { background: var(--ink); color: var(--paper); isolation: isolate; overflow: hidden; padding: clamp(1.5rem, 4vw, 4rem); position: relative; }
.auth-map::after { background: var(--teal); clip-path: polygon(0 50%, 70% 35%, 100% 55%, 65% 70%, 0 62%); content: ""; inset: 0; opacity: .3; position: absolute; z-index: -2; }
.auth-map > svg { height: 100%; inset: 0; position: absolute; width: 100%; z-index: -1; }
.auth-map > svg path { fill: none; stroke: rgba(216, 242, 58, .28); stroke-width: 1; vector-effect: non-scaling-stroke; }
.brand--auth { color: var(--paper); }
.brand--auth .brand__symbol { flex-basis: 3rem; height: 3rem; width: 3rem; }
.brand--auth .brand__name { font-size: var(--brand-name-md); }
.brand--auth .brand__tagline, .brand--app .brand__tagline { color: #c8d6dc; font-weight: 600; letter-spacing: .018em; line-height: 1.3; }
.auth-map__copy { margin-top: clamp(5rem, 17vh, 11rem); max-width: 35rem; }
.auth-map__copy h1 { font-family: var(--display); font-size: clamp(3.5rem, 6vw, 6rem); letter-spacing: -.03em; line-height: .9; margin: 0; text-transform: uppercase; }
.auth-map__copy p { color: #ccdcdf; font-size: 1.1rem; max-width: 44ch; }
.auth-route { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 4rem; }
.auth-route span { border: 1px solid rgba(255,255,255,.45); font-family: var(--display); padding: .35rem .55rem; text-transform: uppercase; }
.auth-route i { background: var(--chartreuse); height: 2px; width: 2.25rem; }
.auth-panel { background: var(--paper); display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 7vw, 7rem); }
.auth-panel__header, .identity-form, .auth-panel__footer, .form-error, .auth-status, .signup-plan-choice { max-width: 34rem; width: 100%; }
.back-link { color: var(--teal-deep); display: inline-block; font-weight: 600; margin-bottom: 3rem; }
.auth-panel h2 { font-family: var(--display); font-size: clamp(3rem, 5vw, 5rem); letter-spacing: -.025em; line-height: .92; margin: 0; text-transform: uppercase; }
.auth-panel__header > p { color: var(--muted); font-size: 1.06rem; margin: 1rem 0 0; }
.signup-plan-choice { border-block: 1px solid var(--line); display: grid; grid-template-columns: minmax(10rem, .8fr) minmax(0, 1.2fr); margin-top: 1.75rem; }
.signup-plan-choice__current { align-content: start; background: var(--ink); color: var(--paper); display: grid; gap: .3rem; padding: 1.15rem; }
.signup-plan-choice__current > span { color: #b9d0d4; font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.signup-plan-choice__current > strong { color: var(--chartreuse); font-family: var(--display); font-size: 2.3rem; letter-spacing: -.02em; line-height: 1; }
.signup-plan-choice__current > small { color: var(--paper); font-weight: 700; line-height: 1.35; }
.signup-plan-choice__current > p { color: #ccdcdf; font-size: .82rem; line-height: 1.45; margin: .25rem 0 0; }
.signup-plan-choice__upgrade { align-content: center; display: grid; padding: 1.15rem 1.25rem; }
.signup-plan-choice__upgrade h3 { color: var(--ink); font-family: var(--display); font-size: 1.45rem; line-height: 1; margin: 0; text-transform: uppercase; }
.signup-plan-choice__upgrade p { color: var(--muted); font-size: .88rem; line-height: 1.45; margin: .55rem 0 .75rem; }
.signup-plan-choice__upgrade a { align-items: center; color: var(--teal-deep); display: inline-flex; font-weight: 700; gap: .45rem; justify-self: start; text-underline-offset: .22em; }
.signup-plan-choice__upgrade a .icon { height: 1rem; transition: transform .22s var(--ease-out); width: 1rem; }
.signup-plan-choice__upgrade a:hover .icon { transform: translateX(.25rem); }
.signup-plan-choice__upgrade a:focus-visible { border-radius: 3px; outline: 3px solid var(--coral); outline-offset: 4px; }
.signup-plan-choice + .identity-form { margin-top: 1.5rem; }
.identity-form { display: grid; gap: 1.25rem; margin-top: 2rem; }
.field label, .field legend { color: var(--ink); display: block; font-weight: 600; margin-bottom: .4rem; }
.field input:not([type="radio"]):not([type="checkbox"]) { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); min-height: 3.35rem; padding: .7rem .9rem; width: 100%; }
.field input:not([type="radio"]):not([type="checkbox"]):hover { border-color: var(--teal-deep); }
.field input:not([type="radio"]):not([type="checkbox"]):focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.18); }
.field .identity-confirmation { align-items: start; display: flex; gap: .75rem; margin: 0; }
.identity-confirmation input { accent-color: var(--teal-deep); flex: 0 0 auto; height: 1.15rem; margin-top: .15rem; width: 1.15rem; }
.identity-confirmation span { color: var(--muted); font-weight: 400; line-height: 1.45; }
.field-hint { color: var(--muted); font-size: .85rem; margin: .4rem 0 0; }
.field fieldset { border: 0; margin: 0; padding: 0; }
.provider-options { display: grid; gap: .65rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: .8rem; }
.provider-option { cursor: pointer; margin: 0 !important; position: relative; }
.provider-option input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.provider-option > span { border: 1px solid #73857e; border-radius: 12px; display: flex; flex-direction: column; min-height: 5rem; padding: .8rem; transition: border-color .2s, background-color .2s; }
.provider-option small { color: var(--muted); font-weight: 400; }
.provider-option input:checked + span { background: #e5f4ef; border-color: var(--teal-deep); box-shadow: inset 0 0 0 1px var(--teal-deep); }
.provider-option input:focus-visible + span { outline: 3px solid var(--coral); outline-offset: 3px; }
.human-verification { border-block: 1px solid var(--line); display: grid; gap: .8rem; padding-block: 1rem; }
.human-verification__header { align-items: center; display: flex; gap: .75rem; justify-content: space-between; }
.human-verification__header strong { color: var(--ink); font-family: var(--display); font-size: 1.35rem; line-height: 1; text-transform: uppercase; }
.human-verification__header span { color: var(--teal-deep); font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.human-verification > p { color: var(--muted); line-height: 1.45; margin: 0; max-width: 45ch; }
.human-verification__widget { min-height: 78px; min-width: 0; width: 100%; }
.human-verification__widget.is-compact { min-height: 144px; }
.human-verification .human-verification__status { color: var(--muted); font-size: .85rem; }
.human-verification .human-verification__status.is-complete { color: var(--teal-deep); font-weight: 600; }
.human-verification .human-verification__status.is-error, .human-verification .human-verification__error { color: var(--danger); font-size: .85rem; font-weight: 600; }
.human-verification.is-unavailable { border-color: #e4a8a0; }
.button--submit { border: 0; justify-self: start; margin-top: .4rem; }
.button--submit:disabled { cursor: not-allowed; filter: grayscale(.25); opacity: .58; }
.button--submit.is-submitting { cursor: wait; opacity: .7; }
.form-error { background: #fff0ee; border: 1px solid #e4a8a0; border-radius: 12px; color: #72251f; margin-top: 1.5rem; padding: .9rem 1rem; }
.form-error strong { display: block; }.form-error ul { margin: .45rem 0 0; padding-left: 1.2rem; }
.auth-status { border-block: 1px solid var(--ink); display: grid; gap: .65rem; margin-top: 2rem; padding-block: 1.25rem; }
.auth-status strong { color: var(--teal-deep); font-family: var(--display); font-size: 1.35rem; line-height: 1; text-transform: uppercase; }
.auth-status p { color: var(--muted); line-height: 1.6; margin: 0; }
.auth-panel__footer { border-top: 1px solid var(--line); color: var(--muted); margin-top: 2rem; padding-top: 1rem; }
.auth-panel__footer p { margin: .5rem 0; }

/* App */
.app-page { background: var(--mineral); }
.app-shell { display: grid; grid-template-columns: 17rem minmax(0, 1fr); min-height: 100svh; transition: grid-template-columns .3s var(--ease-out); }
.app-shell.is-sidebar-collapsed { grid-template-columns: 4.75rem minmax(0, 1fr); }
.app-sidebar { align-self: start; background: var(--ink-deep); color: var(--paper); display: flex; flex-direction: column; height: 100svh; overflow-y: auto; padding: 1.7rem 1.1rem; position: sticky; top: 0; transition: padding .3s var(--ease-out); }
.brand--app { color: var(--paper); padding-inline: .65rem; }
.brand--app .brand__copy { max-width: 13rem; overflow: hidden; transition: max-width .24s var(--ease-out), opacity .16s var(--ease-out); white-space: nowrap; }
.brand--app .brand__symbol { flex-basis: 2.8rem; height: 2.8rem; width: 2.8rem; }
.brand--app .brand__name { font-size: var(--brand-name-app); }
.brand--app .brand__tagline { font-size: var(--brand-tagline-app); max-width: 24ch; }
.app-sidebar nav { display: grid; gap: .35rem; margin-top: 3.5rem; }
.app-sidebar nav a, .app-sidebar nav .app-nav-item, .logout-form button { align-items: center; background: transparent; border: 0; color: #bdcbd2; display: grid; gap: .8rem; grid-template-columns: 1.5rem 1fr auto; padding: .8rem; position: relative; text-align: left; text-decoration: none; width: 100%; }
.app-sidebar nav a.is-current { background: var(--teal-deep); color: var(--paper); }
.app-sidebar nav .app-nav-item[aria-disabled="true"] { cursor: not-allowed; opacity: .64; }
.app-sidebar nav small { color: inherit; font-size: .7rem; }
.app-sidebar nav a.app-nav-upgrade { background: var(--chartreuse); color: var(--ink-deep); margin-top: .35rem; }
.app-sidebar nav a.app-nav-upgrade:hover, .app-sidebar nav a.app-nav-upgrade:focus-visible { background: #e7ff58; color: var(--ink-deep); }
.app-sidebar nav a.app-nav-upgrade small { font-weight: 700; }
.logout-form { margin-top: auto; }.logout-form button { cursor: pointer; font-weight: 600; }
.logout-form button:hover { color: var(--paper); }
.app-main { min-width: 0; }
.app-topbar { align-items: center; background: rgba(246,247,242,.92); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; min-height: 4.6rem; padding: 0 clamp(1rem, 3vw, 3rem); position: sticky; top: 0; z-index: 10; }
.coordinate-readout { color: var(--teal-deep); font-family: var(--display); font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; }
.account-chip { align-items: center; display: flex; gap: .65rem; }
.account-chip > span { align-items: center; background: var(--coral); border-radius: 50%; color: var(--paper); display: flex; height: 2.2rem; justify-content: center; text-transform: uppercase; width: 2.2rem; }
.topbar-actions { align-items: center; display: flex; gap: .8rem; }
.notification-bell { align-items: center; color: var(--ink); display: inline-flex; height: 2.75rem; justify-content: center; position: relative; text-decoration: none; width: 2.75rem; }
.notification-bell:hover { background: var(--paper); color: var(--teal-deep); }
.notification-bell > span { align-items: center; background: var(--chartreuse); border: 2px solid var(--mineral); border-radius: 1rem; color: var(--ink-deep); display: flex; font-size: .65rem; font-weight: 600; height: 1.25rem; justify-content: center; min-width: 1.25rem; padding: 0 .25rem; position: absolute; right: -.05rem; top: .05rem; }
.app-terrain { background: var(--paper); border-bottom: 1px solid var(--line); display: grid; gap: 2rem; grid-template-columns: 1fr auto; min-height: 28rem; overflow: hidden; padding: clamp(3rem, 7vw, 7rem) clamp(1.5rem, 5vw, 5rem); position: relative; }
.app-contours { inset: 0; height: 100%; position: absolute; width: 100%; }.app-contours path { fill: none; stroke: rgba(31,165,138,.18); stroke-width: 1; vector-effect: non-scaling-stroke; }
.welcome-copy, .app-terrain > .button, .app-status-map { position: relative; z-index: 1; }
.welcome-copy h1 { font-family: var(--display); font-size: clamp(3.8rem, 7vw, 6rem); letter-spacing: -.03em; line-height: .9; margin: .6rem 0 0; text-transform: uppercase; }
.welcome-copy > p:last-child { color: var(--muted); font-size: 1.25rem; }
.app-terrain > .button { align-self: center; flex-direction: column; gap: 0; }.app-terrain > .button small { font-size: .7rem; font-weight: 400; }
.is-disabled { cursor: not-allowed; opacity: .72; pointer-events: none; }
.app-status-map { align-self: end; border-top: 1px solid var(--ink); display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); }
.app-status-map div { border-right: 1px solid var(--line); display: flex; flex-direction: column; padding: 1rem 1.5rem 0 0; }.app-status-map div:last-child { border: 0; }
.app-status-map span { color: var(--muted); font-size: .8rem; text-transform: uppercase; }.app-status-map strong { font-size: 1.2rem; }
.app-upgrade-rail { align-items: center; background: var(--ink); color: var(--paper); display: flex; gap: 2rem; justify-content: space-between; padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 5vw, 5rem); }
.app-upgrade-rail > div { min-width: 0; }
.app-upgrade-rail > div > span { color: var(--chartreuse); font-family: var(--display); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.app-upgrade-rail h2 { font-family: var(--display); font-size: clamp(2rem, 4vw, 3.4rem); letter-spacing: -.025em; line-height: .92; margin: .35rem 0 0; text-transform: uppercase; }
.app-upgrade-rail p { color: #c7d6dc; margin: .65rem 0 0; max-width: 58ch; }
.app-upgrade-rail .button { flex: 0 0 auto; }
.tool-itinerary, .app-empty { padding: clamp(3.5rem, 7vw, 7rem) clamp(1.5rem, 5vw, 5rem); }
.tool-itinerary { background: var(--mineral); display: grid; gap: 4rem; grid-template-columns: minmax(18rem, .7fr) minmax(25rem, 1.3fr); }
.itinerary-lines { border-top: 1px solid var(--ink); }
.itinerary-lines button, .itinerary-lines > a { align-items: center; background: transparent; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); display: grid; gap: 1rem; grid-template-columns: 3rem 1fr auto; opacity: .62; padding: 1rem 0; text-align: left; width: 100%; }
.itinerary-lines > a { opacity: 1; text-decoration: none; }
.itinerary-lines > a:hover { color: var(--teal-deep); }
.itinerary-lines button > span, .itinerary-lines > a > span { align-items: center; border: 1px solid var(--teal); border-radius: 50%; display: flex; height: 2.6rem; justify-content: center; width: 2.6rem; }
.itinerary-lines > a > span { background: var(--chartreuse); border-color: var(--ink); }
.itinerary-lines small { color: var(--muted); }
.app-empty { align-items: center; background: var(--ink); color: var(--paper); display: grid; gap: 4rem; grid-template-columns: 15rem 1fr; }
.app-empty p { color: #c7d6dc; }.empty-coordinate { height: 13rem; position: relative; }.empty-coordinate::before, .empty-coordinate::after { border: 1px solid var(--chartreuse); border-radius: 50%; content: ""; position: absolute; }.empty-coordinate::before { inset: 10%; }.empty-coordinate::after { inset: 30%; }.empty-coordinate span:nth-child(1) { background: var(--coral); border-radius: 50%; height: 1rem; left: calc(50% - .5rem); position: absolute; top: calc(50% - .5rem); width: 1rem; }
.app-nav-toggle, .app-sidebar-toggle { display: none; }
.app-nav-close { align-items: center; background: transparent; border: 0; color: var(--paper); cursor: pointer; display: none; height: 2.75rem; justify-content: center; position: absolute; right: .6rem; top: .85rem; width: 2.75rem; }

@media (min-width: 821px) {
    .app-sidebar-toggle { align-items: center; background: var(--ink-deep); border: 1px solid #476078; border-radius: 50%; color: var(--paper); cursor: pointer; display: inline-flex; height: 2.25rem; justify-content: center; position: absolute; right: .45rem; top: 5.15rem; transition: background-color .2s var(--ease-out), color .2s var(--ease-out); width: 2.25rem; z-index: 4; }
    .app-sidebar-toggle:hover { background: var(--teal-deep); color: var(--paper); }
    .app-sidebar-toggle:focus-visible { outline: 3px solid var(--chartreuse); outline-offset: 2px; }
    .app-sidebar-toggle .icon { height: 1rem; transform: rotate(180deg); transition: transform .3s var(--ease-out); width: 1rem; }
    .app-shell.is-sidebar-collapsed .app-sidebar { overflow: visible; padding-inline: .55rem; }
    .app-shell.is-sidebar-collapsed .app-sidebar-toggle .icon { transform: rotate(0); }
    .app-shell.is-sidebar-collapsed .brand--app { justify-content: center; padding-inline: 0; }
    .app-shell.is-sidebar-collapsed .brand--app .brand__copy { max-width: 0; opacity: 0; overflow: hidden; }
    .app-shell.is-sidebar-collapsed .app-sidebar nav a,
    .app-shell.is-sidebar-collapsed .app-sidebar nav .app-nav-item,
    .app-shell.is-sidebar-collapsed .logout-form button { gap: 0; grid-template-columns: 1.5rem; justify-content: center; min-height: 3.05rem; padding: .75rem; }
    .app-shell.is-sidebar-collapsed .app-sidebar nav small { display: none; }
    .app-shell.is-sidebar-collapsed .app-sidebar nav a > span,
    .app-shell.is-sidebar-collapsed .logout-form button > span { background: var(--mineral); box-shadow: 0 10px 28px rgba(8,22,61,.22); color: var(--ink); font-size: .82rem; font-weight: 600; left: calc(100% + .75rem); opacity: 0; padding: .48rem .68rem; pointer-events: none; position: absolute; top: 50%; transform: translate(.35rem, -50%); transition: opacity .16s var(--ease-out), transform .16s var(--ease-out), visibility 0s .16s; visibility: hidden; white-space: nowrap; z-index: 40; }
    .app-shell.is-sidebar-collapsed .app-sidebar nav a:hover > span,
    .app-shell.is-sidebar-collapsed .app-sidebar nav a:focus-visible > span,
    .app-shell.is-sidebar-collapsed .logout-form button:hover > span,
    .app-shell.is-sidebar-collapsed .logout-form button:focus-visible > span { opacity: 1; transform: translate(0, -50%); transition-delay: 0s; visibility: visible; }
}

/* Chat: caderno de campo territorial */
.chat-page { overflow: hidden; }
.app-shell--chat { --chat-reading-measure: 75ch; }
.app-shell--chat, .chat-main { height: 100svh; }
.chat-main { display: flex; flex-direction: column; overflow: hidden; }
.chat-topbar { flex: 0 0 4.25rem; min-height: 4.25rem; }
.chat-topbar > div:first-of-type { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.chat-topbar > div:first-of-type > strong { font-family: var(--display); font-size: 1.35rem; overflow: hidden; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.chat-coordinate { color: var(--teal-deep); font-family: var(--display); font-size: .7rem; letter-spacing: .12em; }
.chat-workspace { display: grid; flex: 1; grid-template-columns: minmax(13.5rem, 15rem) minmax(0, 1fr); min-height: 0; }

.conversation-index { background: #edf1ec; border-right: 1px solid var(--line); display: flex; flex-direction: column; min-height: 0; }
.conversation-index__head { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; min-height: 4.6rem; padding: .8rem 1rem; }
.conversation-index__head > div { display: flex; flex-direction: column; }
.conversation-index__head strong { font-family: var(--display); font-size: 1.2rem; text-transform: uppercase; }
.conversation-index__head span, .conversation-index__foot span { color: var(--muted); font-size: .75rem; }
.conversation-index__head > a { align-items: center; background: var(--ink); color: var(--paper); display: flex; height: 2.6rem; justify-content: center; text-decoration: none; transition: background-color .2s var(--ease-out), transform .2s var(--ease-out); width: 2.6rem; }
.conversation-index__head > a:hover { background: var(--teal-deep); transform: translateY(-2px); }
.conversation-index__empty { color: var(--muted); margin: 0; padding: 1.25rem; }
.conversation-list { flex: 1 1 auto; list-style: none; margin: 0; min-height: 0; overflow-x: clip; overflow-y: auto; padding: 0; }
.conversation-list__item { border-bottom: 1px solid var(--line); position: relative; }
.conversation-list__item:has(.conversation-actions[open]) { z-index: 12; }
.conversation-list__row { align-items: stretch; display: grid; grid-template-columns: minmax(0, 1fr) 2.8rem; }
.conversation-list__link { align-items: start; display: grid; gap: .65rem; grid-template-columns: 1.6rem minmax(0, 1fr); min-height: 3.8rem; padding: .75rem .35rem .75rem .85rem; text-decoration: none; transition: background-color .2s var(--ease-out), color .2s var(--ease-out); }
.conversation-list__link:hover { background: var(--paper); }
.conversation-list__item.is-current { background: var(--teal-deep); color: var(--paper); }
.conversation-list__coordinate { color: var(--teal-deep); font-family: var(--display); font-size: .75rem; letter-spacing: .08em; padding-top: .1rem; }
.conversation-list__item.is-current .conversation-list__coordinate { color: var(--chartreuse); }
.conversation-list__title { align-items: start; display: grid; gap: .35rem; grid-template-columns: minmax(0, 1fr) auto; }
.conversation-list__title strong { display: -webkit-box; font-size: .9rem; line-height: 1.3; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.conversation-list__pin { color: var(--teal-deep); display: inline-flex; padding-top: .05rem; }
.conversation-list__pin .icon { height: .9rem; width: .9rem; }
.conversation-list__item.is-current .conversation-list__pin { color: var(--chartreuse); }
.conversation-actions { align-self: start; position: relative; }
.conversation-actions > summary { align-items: center; border-radius: 8px; color: var(--muted); cursor: pointer; display: flex; height: 2.8rem; justify-content: center; list-style: none; margin: .5rem .125rem; transition: background-color .18s var(--ease-out), color .18s var(--ease-out); width: 2.55rem; }
.conversation-actions > summary::-webkit-details-marker, .conversation-action-editor > summary::-webkit-details-marker, .conversation-archive > summary::-webkit-details-marker { display: none; }
.conversation-actions > summary:hover, .conversation-actions[open] > summary { background: var(--paper); color: var(--teal-deep); }
.conversation-actions > summary:focus-visible { outline: 3px solid var(--coral); outline-offset: -3px; }
.conversation-actions > summary .icon { height: 1.15rem; width: 1.15rem; }
.conversation-list__item.is-current .conversation-actions > summary { color: var(--paper); }
.conversation-list__item.is-current .conversation-actions > summary:hover, .conversation-list__item.is-current .conversation-actions[open] > summary { background: rgba(255,255,255,.14); color: var(--chartreuse); }
.conversation-actions__menu { animation: conversation-menu-in .18s var(--ease-out) both; background: var(--paper); border-radius: 14px; box-shadow: 0 18px 44px rgba(8,22,61,.24); color: var(--ink); display: grid; left: var(--conversation-menu-left, 1rem); max-height: calc(100svh - 1rem); min-width: 13.5rem; overflow-x: hidden; overflow-y: auto; padding: .45rem; position: fixed; top: var(--conversation-menu-top, 1rem); transform-origin: top right; width: min(14.5rem, calc(100vw - 1rem)); z-index: 40; }
.conversation-actions__label { border-bottom: 1px solid var(--line); color: var(--muted); display: block; font-family: var(--display); font-size: .8rem; letter-spacing: .1em; margin: 0 .35rem .2rem; padding: .35rem .3rem .5rem; text-transform: uppercase; }
.conversation-actions__menu form { margin: 0; }
.conversation-actions__menu form > button, .conversation-action-editor > summary { align-items: center; background: transparent; border: 0; border-radius: 8px; color: var(--ink); cursor: pointer; display: grid; font: inherit; gap: .7rem; grid-template-columns: 1.25rem minmax(0, 1fr); list-style: none; min-height: 2.75rem; padding: .6rem .7rem; text-align: left; width: 100%; }
.conversation-actions__menu form > button:hover, .conversation-action-editor > summary:hover { background: #e5f4ef; color: var(--teal-deep); }
.conversation-actions__menu form > button:focus-visible, .conversation-action-editor > summary:focus-visible { outline: 3px solid var(--coral); outline-offset: -3px; }
.conversation-actions__menu form > button:disabled { background: transparent; color: var(--muted); cursor: not-allowed; opacity: .58; }
.conversation-actions__menu .icon { height: 1.05rem; width: 1.05rem; }
.conversation-actions__limit { color: var(--muted); display: block; font-size: .75rem; line-height: 1.3; padding: 0 .7rem .55rem 2.65rem; }
.conversation-action-editor[open] { border-block: 1px solid var(--line); margin-block: .2rem; padding-block: .2rem .55rem; }
.conversation-action-editor form { display: grid; gap: .4rem; padding: .15rem .55rem .35rem; }
.conversation-action-editor label { color: var(--muted); font-size: .72rem; font-weight: 600; }
.conversation-action-editor form > div { display: grid; gap: .35rem; grid-template-columns: minmax(0, 1fr) 2.45rem; }
.conversation-action-editor input { background: var(--mineral); border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font: inherit; min-height: 2.75rem; min-width: 0; padding: .55rem .6rem; width: 100%; }
.conversation-action-editor input:focus { background: var(--paper); border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); }
.conversation-action-editor form > div > button { align-items: center; background: var(--ink); border: 0; border-radius: 8px; color: var(--paper); cursor: pointer; display: flex; justify-content: center; }
.conversation-action-editor form > div > button span { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.conversation-actions__danger { border-top: 1px solid var(--line); margin-top: .2rem !important; padding-top: .2rem; }
.conversation-actions__danger > button { color: var(--danger) !important; }
.conversation-actions__danger > button:hover { background: #fff0ee !important; color: #72251f !important; }
@keyframes conversation-menu-in { from { opacity: 0; transform: translateY(-.35rem) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
.conversation-archive { border-top: 1px solid var(--ink); flex: 0 0 auto; }
.conversation-archive > summary { align-items: center; color: var(--ink); cursor: pointer; display: flex; font-family: var(--display); justify-content: space-between; letter-spacing: .04em; list-style: none; min-height: 2.8rem; padding: .65rem 1rem; text-transform: uppercase; }
.conversation-archive > summary:hover { background: var(--paper); }
.conversation-archive > summary:focus-visible { outline: 3px solid var(--coral); outline-offset: -3px; }
.conversation-archive > summary strong { align-items: center; background: var(--ink); border-radius: 50%; color: var(--paper); display: flex; font-family: var(--body); font-size: .68rem; height: 1.45rem; justify-content: center; width: 1.45rem; }
.conversation-list--archived { flex: 0 1 auto; max-height: 12rem; }
.conversation-index__foot { border-top: 1px solid var(--line); display: flex; flex-direction: column; margin-top: auto; padding: .75rem 1rem; }
.conversation-index__foot strong { font-size: .85rem; }

.chat-transect { background: var(--paper); display: grid; grid-template-rows: minmax(0, 1fr) auto; min-height: 0; min-width: 0; overflow: hidden; position: relative; }
.chat-transect::before, .chat-transect::after { border: 1px solid rgba(31,165,138,.12); border-radius: 50%; content: ""; height: 36rem; pointer-events: none; position: absolute; right: -15rem; top: -12rem; width: 52rem; }
.chat-transect::after { height: 22rem; right: -5rem; top: -6rem; width: 32rem; }
.chat-log { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: clamp(1.25rem, 2.6vw, 2.75rem) clamp(1rem, 4vw, 4.5rem); position: relative; scrollbar-gutter: stable; z-index: 1; }
.chat-empty-state { align-items: center; display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: minmax(12rem, 18rem) minmax(18rem, 43rem); margin: auto; min-height: 100%; max-width: 68rem; }
.chat-empty-state__map { height: 18rem; position: relative; }
.chat-empty-state__map::before, .chat-empty-state__map::after, .chat-empty-state__map span { border: 1px solid var(--teal); border-radius: 50%; content: ""; position: absolute; }
.chat-empty-state__map::before { inset: 2%; opacity: .32; }
.chat-empty-state__map::after { inset: 18%; opacity: .55; }
.chat-empty-state__map span:nth-child(1) { inset: 35%; }
.chat-empty-state__map span:nth-child(2) { background: var(--coral); border: 0; height: 1rem; left: calc(50% - .5rem); top: calc(50% - .5rem); width: 1rem; }
.chat-empty-state__map span:nth-child(3) { border-color: var(--chartreuse); inset: 43% 6%; }
.chat-empty-state__map i { background: var(--ink); height: 1px; left: 5%; position: absolute; top: 50%; transform: rotate(-18deg); width: 90%; }
.chat-empty-state h1 { font-family: var(--display); font-size: clamp(3.1rem, 6vw, 5.4rem); letter-spacing: -.025em; line-height: .9; margin: 0; text-transform: uppercase; }
.chat-empty-state p { color: var(--muted); font-size: 1.05rem; margin: 1rem 0 0; max-width: 60ch; }
.starter-routes { border-top: 1px solid var(--ink); display: grid; margin-top: 2rem; }
.starter-routes button { align-items: center; background: transparent; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); cursor: pointer; display: flex; justify-content: space-between; padding: .85rem 0; text-align: left; }
.starter-routes button::after { border-right: 1px solid var(--teal-deep); border-top: 1px solid var(--teal-deep); content: ""; flex: 0 0 .55rem; height: .55rem; margin-left: 1rem; transform: rotate(45deg); width: .55rem; }
.starter-routes button:hover { color: var(--teal-deep); }

.message-transect { list-style: none; margin: 0 auto; max-width: 58rem; padding: 0; position: relative; }
.message-transect::before { background: var(--line); bottom: 0; content: ""; left: 1.35rem; position: absolute; top: 0; width: 1px; }
.message-entry { display: grid; gap: 1rem; grid-template-columns: 2.7rem 1fr; padding: 0 0 1.8rem; position: relative; }
.message-marker { align-items: start; display: flex; justify-content: center; position: relative; z-index: 1; }
.message-marker span { align-items: center; background: var(--paper); border: 1px solid var(--teal-deep); border-radius: 50%; color: var(--teal-deep); display: flex; font-family: var(--display); font-size: .68rem; height: 2.7rem; justify-content: center; width: 2.7rem; }
.message-entry--assistant .message-marker span { background: var(--ink); border-color: var(--chartreuse); color: var(--chartreuse); }
.message-entry article { border-top: 1px solid var(--ink); min-width: 0; padding: .85rem 0 0; }
.message-entry--user article { background: var(--mineral); border: 0; padding: 1rem 1.15rem; }
.message-entry article header { align-items: baseline; display: flex; gap: .7rem; margin-bottom: .65rem; }
.message-entry article header strong { font-family: var(--display); font-size: 1.05rem; letter-spacing: .02em; text-transform: uppercase; }
.message-entry article header span { color: var(--muted); font-size: .73rem; }
.message-content { line-height: 1.72; max-width: var(--chat-reading-measure); overflow-wrap: anywhere; }

.chat-composer-wrap { background: var(--paper); box-shadow: 0 -14px 30px rgba(8,22,61,.07); position: relative; z-index: 3; }
.chat-readiness { align-items: center; background: #f3f8c9; border-top: 1px solid #a6b849; color: #3f4800; display: flex; gap: .6rem 1rem; justify-content: space-between; padding: .6rem clamp(1rem, 3vw, 2rem); }
.chat-readiness--archived { background: #e5f4ef; border-color: var(--line); color: var(--ink); }
.chat-readiness > div { display: grid; gap: .15rem; }
.chat-readiness span { font-size: .85rem; }
.chat-readiness__link { align-items: center; color: var(--ink-deep); display: inline-flex; flex: 0 0 auto; font-weight: 700; gap: .45rem; text-underline-offset: .18rem; }
.chat-readiness__link .icon { height: 1rem; width: 1rem; }
.tools-upgrade-notice { align-items: center; background: #f3f8c9; border-block: 1px solid #a6b849; color: #3f4800; display: flex; gap: 1rem 2rem; justify-content: space-between; padding: .9rem clamp(1.5rem, 5vw, 5rem); }
.tools-upgrade-notice > div { display: grid; gap: .15rem; }
.tools-upgrade-notice span { font-size: .88rem; }
.tools-upgrade-notice a { align-items: center; color: var(--ink-deep); display: inline-flex; flex: 0 0 auto; font-weight: 700; gap: .45rem; text-underline-offset: .18rem; }
.tools-upgrade-notice .icon { height: 1rem; width: 1rem; }
.chat-simple-continuation { align-items: baseline; background: #e5f4ef; border-top: 1px solid var(--teal-deep); color: var(--ink); display: grid; gap: .4rem 1.1rem; grid-template-columns: max-content minmax(0, 1fr); padding: .5rem clamp(1rem, 3vw, 2rem); }
.chat-simple-continuation strong { font-family: var(--display); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.chat-simple-continuation span { color: var(--muted); font-size: .8rem; }
.chat-composer { margin: 0 auto; max-width: 68rem; padding: .65rem clamp(1rem, 3vw, 2rem) .75rem; }
.provider-switch { align-items: center; border: 0; display: flex; gap: .45rem; margin: 0 0 .35rem; padding: 0; }
.provider-switch legend { color: var(--muted); float: left; font-size: .72rem; margin: .3rem .6rem 0 0; }
.provider-switch label { cursor: pointer; position: relative; }
.provider-switch input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.provider-switch label > span { border-bottom: 1px solid transparent; color: var(--muted); display: inline-block; font-size: .78rem; font-weight: 600; padding: .2rem .35rem; }
.provider-switch input:checked + span { border-color: var(--teal-deep); color: var(--ink); }
.provider-switch input:focus-visible + span { outline: 3px solid var(--coral); outline-offset: 2px; }
.provider-switch input:disabled + span { cursor: not-allowed; opacity: .55; }
.provider-switch small { color: var(--muted); font-size: .65rem; }
.chat-message-field { font-size: .8rem; font-weight: 600; }
.chat-message-control { align-items: end; background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; display: grid; gap: .75rem; grid-template-columns: 1fr auto; margin-top: .35rem; padding: .55rem; transition: background-color .2s, border-color .2s, box-shadow .2s; }
.chat-message-control:focus-within { background: var(--paper); border-color: var(--teal); box-shadow: 0 8px 24px rgba(8,22,61,.09); outline: 3px solid rgba(31,165,138,.16); }
.chat-message-control textarea { background: transparent; border: 0; color: var(--ink); line-height: 1.45; max-height: 11rem; min-height: 2.65rem; outline: 0; padding: .45rem .55rem; resize: none; width: 100%; }
.chat-message-control textarea::placeholder { color: #5d6d76; }
.chat-message-control .button { border: 0; min-height: 3.1rem; min-width: 7.4rem; }
.chat-message-control .button[disabled] { cursor: not-allowed; filter: grayscale(.35); opacity: .65; }
.chat-composer > p { color: var(--muted); font-size: .72rem; margin: .45rem 0 0; text-align: center; }
.chat-composer > p a { color: var(--teal-deep); font-weight: 650; text-underline-offset: .18rem; }

@media (max-width: 1050px) {
    .atlas-header .brand__tagline { display: none; }
    .hero-copy { max-width: 68vw; }
    .hero-copy h1 { font-size: clamp(3.4rem, 5.5vw, 4.6rem); }
    .atlas-route { width: 69vw; }
    .hero-action { right: calc(34vw + 1rem); }
    .workspace-preview { width: 34vw; }
    .site-footer--home { grid-template-columns: minmax(13rem, 1fr) auto; }
    .site-footer--home .site-footer__content { grid-column: 1 / -1; grid-row: 2; }
    .app-shell { grid-template-columns: 14rem 1fr; }
    .chat-workspace { grid-template-columns: 14rem minmax(0, 1fr); }
    .chat-empty-state { gap: 2rem; grid-template-columns: 12rem minmax(18rem, 1fr); }
}

@media (min-width: 821px) and (max-width: 1050px) {
    .atlas-hero { min-height: max(42rem, calc(100svh - 5.25rem)); }
    .atlas-route { bottom: 2rem; min-height: 18rem; top: 19rem; }
    .route-stop--write { top: 5%; }
    .hero-action { align-items: center; bottom: auto; flex-direction: row; left: clamp(1rem, 4vw, 4rem); right: auto; top: 14rem; width: min(35rem, 62vw); }
    .hero-action .button { flex: 0 0 auto; }
    .hero-action .hero-action__note { max-width: 22rem; }
}

@media (max-width: 820px) {
    .atlas-header { min-height: 4.5rem; }
    .atlas-header .brand__symbol { flex-basis: 2.7rem; height: 2.7rem; width: 2.7rem; }
    .atlas-header .brand__name { font-size: var(--brand-name-sm); }
    .atlas-header .brand__tagline { display: block; font-size: var(--brand-tagline-sm); line-height: 1.15; }
    .nav-toggle { background: var(--ink); border: 1px solid var(--ink); border-radius: 50%; color: var(--paper); display: inline-flex; height: 2.9rem; padding: 0; transition: background-color .2s var(--ease-out), border-color .2s var(--ease-out); width: 2.9rem; }
    .nav-toggle:hover, .nav-toggle[aria-expanded="true"] { background: var(--teal-deep); border-color: var(--teal-deep); }
    .nav-toggle:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
    .nav-toggle .icon { height: 1.25rem; width: 1.25rem; }
    .site-nav { align-items: stretch; background: var(--ink-deep); color: var(--paper); display: flex; flex-direction: column; gap: 0; inset: 4.5rem 0 auto; margin: 0; max-height: calc(100svh - 4.5rem); min-height: calc(100svh - 4.5rem); opacity: 0; overflow-y: auto; padding: 1rem clamp(1rem, 5vw, 2rem) 2rem; pointer-events: none; position: absolute; transform: translateY(-.6rem); transition: opacity .24s var(--ease-out), transform .24s var(--ease-out), visibility 0s .24s; visibility: hidden; }
    .site-nav.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); transition-delay: 0s; visibility: visible; }
    .site-nav > a, .site-nav > a:not(.button) { align-items: center; border-bottom: 1px solid rgba(255,255,255,.2); color: var(--paper); display: grid; font-size: 1rem; gap: .9rem; grid-template-columns: 2.75rem minmax(0, 1fr); min-height: 4.4rem; padding: .7rem 0; text-transform: none; }
    .site-nav > a:not(.button)::after { display: none; }
    .site-nav > a:not(.button):hover, .site-nav > a:not(.button)[aria-current="page"] { color: var(--chartreuse); }
    .site-nav__icon { align-items: center; border: 1px solid rgba(255,255,255,.42); color: var(--chartreuse); display: flex; height: 2.75rem; justify-content: center; width: 2.75rem; }
    .site-nav__icon .icon { height: 1.2rem; width: 1.2rem; }
    .site-nav > a[aria-current="page"] .site-nav__icon { background: var(--teal-deep); border-color: var(--teal-deep); color: var(--paper); }
    .site-nav__account { margin-left: 0; margin-top: 1rem; }
    .site-nav__account::before { display: none; }
    .site-nav .button { background: var(--chartreuse); color: var(--ink-deep); margin-top: 1rem; min-height: 4.4rem; padding: .7rem 1rem; }
    .site-nav .button .site-nav__icon { border-color: var(--ink-deep); color: var(--ink-deep); }
    .site-nav .button:hover { background: #e5ff52; color: var(--ink-deep); }
    .atlas-hero { min-height: max(46rem, calc(100svh - 4.5rem)); padding: 2.4rem 1rem 1rem; }
    .atlas-hero::after { clip-path: polygon(0 19%, 100% 8%, 100% 100%, 0 100%); inset: 48% 0 0; }
    .hero-copy { max-width: none; }
    .hero-copy h1 { font-size: clamp(3.15rem, 13.4vw, 4.5rem); line-height: .88; }
    .hero-copy h1 span { white-space: normal; }
    .hero-copy p { font-size: .97rem; line-height: 1.4; margin-top: .8rem; max-width: 37ch; }
    .map-coordinate--top { left: 25%; top: .25rem; }.map-coordinate--side { display: none; }
    .atlas-route { bottom: 14rem; height: auto; left: .6rem; min-height: 18rem; top: 14.5rem; width: 94%; }
    .route-stop { width: 5.7rem; }.route-stop--search { bottom: 2%; left: 0; }.route-stop--organize { bottom: 19%; left: 25%; }.route-stop--write { left: 50%; top: 10%; }
    .route-stop__icon { border-width: 4px; height: 3.6rem; width: 3.6rem; }
    .route-stop strong { background: var(--paper); color: var(--ink); font-size: 1rem; padding: .08rem .35rem; }.route-stop small { display: none; }
    .route-destination { right: 0; top: 2%; width: 5.9rem; }.route-destination span { border-width: 5px; height: 4.8rem; width: 4.8rem; }.route-destination strong { font-size: 1rem; }
    .hero-action { bottom: 5.45rem; left: auto; right: 1rem; width: min(16rem, calc(100vw - 2rem)); }.hero-action .button { align-self: flex-end; min-height: 3rem; padding: .65rem 1rem; }.hero-action .hero-action__note { display: block; font-size: .8rem; max-width: 16rem; padding: .5rem .65rem; }
    .workspace-preview { border-radius: 9px; bottom: .55rem; display: grid; grid-template-columns: 2.4rem 1fr; grid-template-rows: 1.8rem 1fr; height: 4.25rem; right: 1rem; width: calc(100% - 2rem); }
    .workspace-preview__top { font-size: .7rem; padding-inline: .65rem; }.workspace-preview__rail { gap: 0; padding-top: .35rem; }.workspace-preview__rail .icon { display: none; }.workspace-preview__rail .icon:first-child { display: block; height: 1.1rem; width: 1.1rem; }
    .workspace-preview__body { align-content: center; display: grid; gap: .05rem; grid-template-columns: 1fr; padding: .25rem .65rem; }.workspace-preview__body > p { font-size: .76rem; line-height: 1; }.workspace-preview__body > small { font-size: .6rem; line-height: 1.1; }.preview-map, .preview-lines, .preview-modules { display: none; }
    .atlas-legend, .decision-principle, .tool-itinerary { grid-template-columns: 1fr; }
    .plan-terrain__intro { grid-template-columns: 1fr; }
    .site-footer { align-items: flex-start; flex-direction: column; }
    .site-footer--home { display: grid; grid-template-columns: 1fr; }
    .site-footer--home .site-footer__content { grid-column: auto; grid-row: auto; }
    .site-footer--home > nav { display: flex; flex-wrap: wrap; }
    .auth-shell { grid-template-columns: 1fr; }.auth-map { min-height: 34rem; }.auth-map__copy { margin-top: 5rem; }.auth-panel { padding-block: 4rem; }
    .app-shell { display: block; }.app-sidebar { clip-path: inset(0 100% 0 0); inset: 0 auto 0 0; min-height: 100svh; position: fixed; transition: clip-path .25s var(--ease-out), visibility 0s .25s; visibility: hidden; width: 17rem; z-index: 30; }.app-sidebar.is-open { clip-path: inset(0); transition-delay: 0s; visibility: visible; }.app-nav-toggle, .app-nav-close { display: inline-flex; }.app-terrain { grid-template-columns: 1fr; }.app-status-map { grid-template-columns: 1fr; }.app-status-map div { border-bottom: 1px solid var(--line); border-right: 0; padding-block: .8rem; }.app-status-map div:last-child { border-bottom: 0; }.app-empty { grid-template-columns: 1fr; }.empty-coordinate { max-width: 15rem; width: 100%; }
    .app-upgrade-rail { align-items: stretch; flex-direction: column; gap: 1.25rem; }.app-upgrade-rail .button { justify-content: space-between; width: 100%; }
    .tools-upgrade-notice { align-items: stretch; flex-direction: column; gap: .75rem; }.tools-upgrade-notice a { justify-content: space-between; }
    .app-shell--chat, .chat-main { height: auto; min-height: 100svh; }
    .chat-page { overflow-x: hidden; overflow-y: auto; }
    .chat-main { overflow: visible; }
    .chat-topbar { position: sticky; }
    .chat-workspace { display: flex; flex-direction: column; min-height: calc(100svh - 4.6rem); }
    .conversation-index { border-bottom: 1px solid var(--line); border-right: 0; flex: 0 0 auto; max-height: 12rem; }
    .conversation-index__head { min-height: 4.3rem; }
    .conversation-list { max-height: 7rem; }
    .conversation-list--archived { max-height: 8rem; }
    .conversation-index__foot { display: none; }
    .chat-transect { flex: 1; min-height: calc(100svh - 8.9rem); overflow-x: clip; overflow-y: visible; }
    .chat-log { min-height: 24rem; }
    .chat-empty-state { grid-template-columns: 10rem minmax(0, 1fr); }
    .chat-empty-state__map { height: 11rem; }
}

@media (max-width: 560px) {
    .brand { gap: .55rem; }
    .atlas-header .brand__tagline { font-size: var(--brand-tagline-xs); letter-spacing: 0; }
    .brand--auth .brand__symbol { flex-basis: 2.7rem; height: 2.7rem; width: 2.7rem; }
    .brand--auth .brand__name { font-size: var(--brand-name-sm); }
    .brand--auth .brand__tagline { font-size: var(--brand-tagline-auth-xs); }
    .atlas-hero { min-height: max(47rem, calc(100svh - 4.5rem)); }
    .atlas-route { bottom: 14.5rem; top: 15rem; }
    .route-stop--write { left: 48%; top: 8%; }
    .hero-action { bottom: 5.35rem; }
    .site-footer__meta { align-items: flex-start; flex-direction: column; }
    .tool-list li { align-items: start; grid-template-columns: 2.75rem 1fr; }.tool-list small { grid-column: 2; }
    .plan-lines li { grid-template-columns: 1fr; gap: .4rem; }.plan-lines li a, .plan-lines li span { justify-self: start; }
    .provider-options { grid-template-columns: 1fr; }
    .signup-plan-choice { grid-template-columns: 1fr; }
    .signup-plan-choice__current, .signup-plan-choice__upgrade { padding: 1rem; }
    .signup-plan-choice__upgrade a { align-items: center; justify-content: space-between; min-height: 2.75rem; width: 100%; }
    .auth-map { min-height: 18rem; padding: 1.25rem; }.auth-map__copy { margin-top: 2rem; }.auth-map__copy h1 { font-size: 2.55rem; }.auth-map__copy p { font-size: .9rem; line-height: 1.35; }.auth-route { margin-top: 1.25rem; }.auth-route span { font-size: .78rem; padding: .2rem .35rem; }.auth-route i { width: 1.25rem; }
    .auth-panel { padding: 2rem 1.25rem; }.back-link { margin-bottom: 1.25rem; }.auth-panel h2 { font-size: 2.75rem; }
    .tool-itinerary { gap: 2rem; }.app-topbar .coordinate-readout { display: none; }.account-chip strong { display: none; }
    .chat-topbar { gap: .6rem; padding-inline: .65rem; }
    .chat-coordinate { display: none; }
    .chat-topbar > div:first-of-type > strong { font-size: 1.15rem; }
    .conversation-index { max-height: 9.8rem; }
    .conversation-list { max-height: 5.5rem; }
    .conversation-actions__menu { max-height: calc(100svh - 1rem); min-width: 0; padding: .5rem; width: min(16.5rem, calc(100vw - 1rem)); }
    .conversation-actions__menu form > button, .conversation-action-editor > summary { font-size: 1rem; min-height: 3rem; padding: .65rem .75rem; }
    .conversation-action-editor form > div { grid-template-columns: minmax(0, 1fr) 2.75rem; }
    .chat-log { padding: 1.5rem 1rem; }
    .chat-empty-state { align-content: start; grid-template-columns: 1fr; padding-top: 1rem; }
    .chat-empty-state__map { display: none; }
    .chat-empty-state h1 { font-size: 3rem; }
    .chat-empty-state p { font-size: .95rem; }
    .starter-routes { margin-top: 1.25rem; }
    .message-entry { gap: .75rem; grid-template-columns: 2.25rem 1fr; }
    .message-transect::before { left: 1.1rem; }
    .message-marker span { height: 2.25rem; width: 2.25rem; }
    .provider-switch { align-items: flex-start; flex-wrap: wrap; }
    .provider-switch legend { float: none; flex-basis: 100%; }
    .chat-readiness { align-items: flex-start; flex-direction: column; }.chat-readiness__link { margin-top: .15rem; }
    .chat-message-control { grid-template-columns: 1fr; }
    .chat-message-control .button { justify-self: end; min-width: 6.5rem; }
}

/* Ferramentas: oficina editorial com rastreabilidade por etapas. */
.tools-main { min-width: 0; overflow-x: hidden; }
.tools-topbar > strong { font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.tools-intro { align-items: end; background: var(--ink); color: var(--paper); display: grid; gap: clamp(1.5rem, 4vw, 4rem); grid-template-columns: minmax(0, 1fr) minmax(17rem, 25rem); overflow: hidden; padding: clamp(2rem, 3.5vw, 3.5rem) clamp(1.5rem, 5vw, 5rem); position: relative; }
.tools-intro::before, .tools-intro::after { border: 1px solid rgba(246,247,242,.22); border-radius: 50%; content: ""; height: 28rem; pointer-events: none; position: absolute; right: -8rem; top: -18rem; width: 42rem; }
.tools-intro::after { height: 19rem; right: 1rem; top: -12rem; width: 29rem; }
.tools-intro > div, .tools-capacity { position: relative; z-index: 1; }
.tools-intro h1 { font-family: var(--display); font-size: clamp(3.1rem, 4.2vw, 4.1rem); letter-spacing: -.03em; line-height: .88; margin: 0 0 1rem; text-transform: uppercase; }
.tools-intro p { color: var(--paper); font-size: 1rem; margin: 0; max-width: 60ch; opacity: .78; }
.tools-capacity { border-top: 1px solid rgba(199,214,220,.45); margin: 0; }
.tools-capacity div { align-items: baseline; border-bottom: 1px solid rgba(199,214,220,.28); display: flex; gap: 1.5rem; justify-content: space-between; padding: .8rem 0; }
.tools-capacity dt { color: var(--paper); font-size: .8rem; opacity: .78; text-transform: uppercase; }
.tools-capacity dd { font-family: var(--display); font-size: 1rem; margin: 0; text-align: right; }
.tool-route-switch { background: var(--mineral); border-bottom: 1px solid var(--ink); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0 clamp(1.5rem, 5vw, 5rem); }
.tool-route-switch > * { align-items: center; border-right: 1px solid var(--line); display: grid; gap: .2rem .8rem; grid-template-columns: 1.7rem 1fr; min-height: 4.35rem; padding: .7rem 1.1rem; text-decoration: none; }
.tool-route-switch > :nth-child(4n+1) { border-left: 1px solid var(--line); }
.tool-route-switch > :nth-child(-n+8) { border-bottom: 1px solid var(--line); }
.tool-route-switch > * > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; grid-row: 1 / 3; }
.tool-route-switch > * strong { font-family: var(--display); font-size: clamp(1.15rem, 1.55vw, 1.65rem); line-height: .92; text-transform: uppercase; }
.tool-route-switch__long strong { font-size: clamp(1.1rem, 1.4vw, 1.65rem); }
.tool-route-switch > * small { color: var(--muted); font-size: .74rem; line-height: 1.3; }
.tool-route-switch a[aria-current="page"] { background: var(--chartreuse); box-shadow: inset 0 -4px 0 var(--ink); }
.tool-route-switch a:hover:not([aria-current="page"]) { background: var(--paper); }
.tool-route-switch__pending { background: var(--paper); color: var(--muted); }
.tool-route-switch__pending small { font-family: var(--display); letter-spacing: .08em; text-transform: uppercase; }
.tool-mode { background: var(--paper); border-bottom: 1px solid var(--ink); padding: clamp(2.25rem, 3.5vw, 3.5rem) clamp(1.5rem, 5vw, 5rem); }
.tool-mode__heading { align-items: end; display: grid; gap: 2rem; grid-template-columns: minmax(18rem, 1fr) auto; margin-bottom: 2rem; }
.tool-mode__eyebrow { color: var(--teal-deep); font-family: var(--display); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.tool-mode__heading h2 { font-family: var(--display); font-size: clamp(2.25rem, 3.2vw, 3.3rem); letter-spacing: -.025em; line-height: .92; margin: .4rem 0 0; max-width: 18ch; text-transform: uppercase; }
.tool-mode__switch { border: 1px solid var(--ink); display: grid; grid-template-columns: 1fr 1fr; min-width: min(100%, 25rem); }
.tool-mode__switch button { background: var(--paper); border: 0; color: var(--ink); cursor: pointer; display: grid; font: inherit; gap: .1rem; min-height: 4.2rem; padding: .75rem 1.1rem; text-align: left; }
.tool-mode__switch button + button { border-left: 1px solid var(--ink); }
.tool-mode__switch button[aria-selected="true"] { background: var(--chartreuse); box-shadow: inset 0 -4px 0 var(--ink); }
.tool-mode__switch button:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; position: relative; z-index: 1; }
.tool-mode__switch button { font-family: var(--display); font-size: 1.2rem; text-transform: uppercase; }
.tool-mode__switch small { color: var(--muted); font-family: var(--body); font-size: .72rem; text-transform: none; }
.tool-mode__panel[hidden] { display: none; }
.tool-mode__panel--simple { border-top: 2px solid var(--ink); }
.simple-tool-intro { align-items: start; display: grid; gap: 2rem; grid-template-columns: minmax(13rem, .55fr) minmax(20rem, 1.45fr); padding: 1rem 0 1.4rem; }
.simple-tool-intro > div { display: grid; gap: .15rem; }
.simple-tool-intro span, .simple-tool-form label > span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.simple-tool-intro strong { font-family: var(--display); font-size: 1.55rem; line-height: 1; text-transform: uppercase; }
.simple-tool-intro p { color: var(--muted); margin: 0; max-width: 65ch; }
.simple-tool-form__brief, .simple-tool-form__reserved { border-top: 1px solid var(--line); display: grid; padding: 1.3rem 0; }
.simple-tool-form label > small { color: var(--muted); margin: .35rem 0 .7rem; max-width: 75ch; }
.simple-tool-form label > span small { color: var(--muted); font-family: var(--body); font-size: .75rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.simple-tool-form textarea { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: inherit; line-height: 1.6; padding: 1rem; resize: vertical; width: 100%; }
.simple-tool-form__brief textarea { min-height: 15rem; }
.simple-tool-form textarea:focus { background: var(--paper); border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); }
.simple-tool-form textarea:disabled { cursor: not-allowed; opacity: .58; }
.simple-tool-guardrails { border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.simple-tool-guardrails li { align-items: start; display: grid; gap: .75rem; grid-template-columns: 1.7rem 1fr; min-height: 7.5rem; padding: 1.15rem 1.15rem 1.15rem 0; }
.simple-tool-guardrails li + li { border-left: 1px solid var(--line); padding-left: 1.15rem; }
.simple-tool-guardrails li > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; }
.simple-tool-guardrails li div { display: grid; gap: .25rem; }
.simple-tool-guardrails strong { font-family: var(--display); font-size: 1.1rem; line-height: 1; text-transform: uppercase; }
.simple-tool-guardrails small { color: var(--muted); line-height: 1.4; }
.simple-tool-form__finish { display: grid; gap: 0; grid-template-columns: 1fr; }
.simple-tool-form__submit { align-items: center; display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr) auto; padding-top: 1.5rem; }
.simple-tool-form__submit p { color: var(--muted); font-size: .82rem; margin: 0; max-width: 60ch; }
.simple-tool-form__submit .button { border: 0; min-width: 14rem; }
.simple-tool-form__submit .button[disabled] { cursor: not-allowed; opacity: .6; }
.tool-local-sanitization { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; gap: .55rem; margin: 1.15rem 0 0; padding: .8rem 0; }
.tool-local-sanitization__head { align-items: center; display: grid; gap: .8rem; grid-template-columns: auto minmax(10rem, 1fr) auto; }
.tool-local-sanitization__toggle { align-items: center; color: var(--ink); cursor: pointer; display: inline-flex; font-weight: 600; gap: .55rem; min-height: 2.2rem; }
.tool-local-sanitization__toggle input { accent-color: var(--teal-deep); height: 1.05rem; margin: 0; width: 1.05rem; }
.tool-local-sanitization__toggle input:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.tool-local-sanitization__toggle span { font-family: var(--display); font-size: 1.05rem; text-transform: uppercase; }
.tool-local-sanitization__toggle small { background: var(--chartreuse); color: var(--ink-deep); font-family: var(--display); font-size: .65rem; letter-spacing: .08em; padding: .25rem .4rem; }
.tool-local-sanitization__status { color: var(--muted); font-size: .78rem; }
.tool-local-sanitization__details-button { background: transparent; border: 1px solid var(--ink); color: var(--ink); cursor: pointer; font: inherit; min-height: 2.2rem; padding: .35rem .7rem; }
.tool-local-sanitization__details-button:hover { background: var(--mineral); }
.tool-local-sanitization__details-button:focus-visible { outline: 3px solid var(--coral); outline-offset: 2px; }
.tool-local-sanitization__help { color: var(--muted); font-size: .78rem; margin: 0; max-width: 75ch; }
.tool-local-sanitization__details { border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: .4rem 1rem; list-style: none; margin: .15rem 0 0; padding: .65rem 0 0; }
.tool-local-sanitization__details li { color: var(--teal-deep); font-size: .76rem; }
.tool-local-sanitization__details[hidden] { display: none; }
.tool-mode__panel--advanced { margin: 0; }
.tool-bench { background: var(--paper); padding: clamp(3.5rem, 6vw, 6rem) clamp(1.5rem, 5vw, 5rem); }
.tool-bench__heading { align-items: end; display: grid; gap: 2rem; grid-template-columns: minmax(9rem, .35fr) minmax(22rem, 1.4fr); margin-bottom: 2.4rem; }
.tool-bench__heading h2, .tool-ledger h2 { font-family: var(--display); font-size: clamp(2.7rem, 5vw, 5rem); letter-spacing: -.025em; line-height: .94; margin: 0; text-transform: uppercase; }
.tool-bench__heading p { color: var(--muted); margin: .9rem 0 0; max-width: 66ch; }
.tool-sequence { align-items: center; display: flex; gap: .75rem; }
.tool-sequence span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; }
.tool-sequence i { background: var(--ink); height: 1px; max-width: 7rem; width: 100%; }
.tool-readiness { background: var(--mineral); border: 1px solid var(--line); color: var(--ink); display: grid; margin-bottom: 1.5rem; padding: .8rem 1rem; }
.tool-readiness span { font-size: .8rem; }
.improve-text-form, .evolution-form, .social-report-form { border-top: 2px solid var(--ink); }
.revision-objectives { border: 0; display: grid; grid-template-columns: repeat(4, minmax(9rem, 1fr)); margin: 0; padding: 0; }
.revision-objectives legend, .source-text-field > span, .tool-provider-switch legend { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.revision-objectives legend { padding: .85rem 0; }
.revision-objectives label { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); cursor: pointer; min-width: 0; position: relative; }
.revision-objectives label:last-of-type { border-right: 0; }
.revision-objectives input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.revision-objectives label > span { display: grid; min-height: 6.25rem; padding: 1rem; }
.revision-objectives strong { font-family: var(--display); font-size: 1rem; text-transform: uppercase; }
.revision-objectives small { color: var(--muted); font-size: .8rem; margin-top: .25rem; }
.revision-objectives input:checked + span { background: var(--chartreuse); box-shadow: inset 0 -4px 0 var(--ink); }
.revision-objectives input:focus-visible + span { outline: 3px solid var(--coral); outline-offset: -3px; }
.revision-objectives input:disabled + span { cursor: not-allowed; opacity: .55; }
.source-text-field { border-bottom: 1px solid var(--ink); display: grid; padding: 1.4rem 0 1.6rem; }
.source-text-field > span { margin-bottom: .55rem; }
.source-text-field textarea { background: var(--mineral); border: 1px solid var(--muted); border-radius: 12px; color: var(--ink); line-height: 1.6; min-height: 17rem; padding: 1rem 1.1rem; resize: vertical; width: 100%; }
.source-text-field textarea:focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.source-text-field > small { color: var(--muted); font-size: .8rem; margin-top: .45rem; }
.tool-provider-switch { border-bottom: 1px solid var(--line); margin: 0; padding: 1.1rem 0; }
.tool-submit-line { align-items: center; display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr) auto; padding-top: 1.5rem; }
.tool-submit-line p { color: var(--muted); font-size: .82rem; margin: 0; max-width: 65ch; }
.tool-submit-line .button { border: 0; min-width: 12rem; }
.tool-submit-line .button[disabled] { cursor: not-allowed; filter: grayscale(.35); opacity: .6; }
.evolution-context { align-items: stretch; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(13rem, .45fr) minmax(20rem, 1fr); }
.evolution-context > label, .evolution-context fieldset { border: 0; display: grid; margin: 0; padding: 1rem 1.25rem 1.25rem 0; }
.evolution-context > label { border-right: 1px solid var(--line); }
.evolution-context fieldset { align-content: end; display: flex; gap: 1.25rem; padding-left: 1.25rem; }
.evolution-context label > span, .evolution-context legend, .evolution-source-grid label > span, .validator-line strong { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.evolution-context label > span { display: flex; justify-content: space-between; }
.evolution-context label > span small { color: var(--muted); font-family: var(--body); font-size: .8rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.evolution-context input[type="date"] { background: var(--mineral); border: 1px solid var(--muted); border-radius: 12px; color: var(--ink); min-height: 3.35rem; padding: .7rem .9rem; }
.evolution-context fieldset > label { align-items: center; cursor: pointer; display: flex; gap: .45rem; }
.evolution-context input[type="radio"] { accent-color: var(--teal-deep); height: 1.1rem; width: 1.1rem; }
.evolution-context input:focus { border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.evolution-source-grid { border-bottom: 1px solid var(--ink); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.evolution-source-grid label { border-right: 1px solid var(--line); display: grid; min-width: 0; padding: 1.25rem; }
.evolution-source-grid label:first-child { padding-left: 0; }
.evolution-source-grid label:last-child { border-right: 0; padding-right: 0; }
.evolution-source-grid label > small { color: var(--muted); font-size: .8rem; min-height: 2.6rem; }
.evolution-source-grid textarea { background: var(--mineral); border: 1px solid var(--muted); border-radius: 12px; color: var(--ink); line-height: 1.55; min-height: 14rem; padding: .8rem; resize: vertical; width: 100%; }
.evolution-source-grid textarea:focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.evolution-source-note { color: var(--muted); font-size: .8rem; margin: .65rem 0 0; }
.validator-line { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 2rem; grid-template-columns: 1fr auto; padding: 1.1rem 0; }
.validator-line p { color: var(--muted); font-size: .8rem; margin: .2rem 0 0; max-width: 70ch; }
.validator-line > span { align-items: center; color: var(--teal-deep); display: inline-flex; font-size: .8rem; font-weight: 600; gap: .45rem; }
.report-foundation { align-items: center; background: var(--ink); color: var(--paper); display: grid; gap: .4rem 1.5rem; grid-template-columns: minmax(12rem, .5fr) minmax(20rem, 1.4fr) auto; margin-bottom: 1.5rem; padding: 1rem 1.2rem; }
.report-foundation strong { color: var(--paper); font-family: var(--display); font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; }
.report-foundation p { color: var(--paper); font-size: .82rem; margin: 0; opacity: .8; }
.report-foundation > span { border: 1px solid rgba(255,255,255,.35); font-size: .72rem; padding: .45rem .65rem; text-transform: uppercase; }
.report-stage { border-top: 1px solid var(--ink); display: grid; grid-template-columns: 4rem minmax(0, 1fr); }
.social-report-form > .report-stage:first-of-type { border-top: 0; }
.report-stage--final { border-bottom: 1px solid var(--ink); }
.report-stage__marker { align-items: center; border-right: 1px solid var(--line); display: flex; flex-direction: column; padding: 1.5rem 1rem 0 0; }
.report-stage__marker span { color: var(--teal-deep); font-family: var(--display); font-size: 1.35rem; }
.report-stage__marker i { background: var(--line); flex: 1; margin-top: .8rem; width: 1px; }
.report-stage--final .report-stage__marker i { background: var(--chartreuse); }
.report-stage__body { min-width: 0; padding: 1.5rem 0 2.25rem 1.75rem; }
.report-stage__heading { align-items: end; display: grid; gap: 1rem 2rem; grid-template-columns: minmax(16rem, .8fr) minmax(20rem, 1.2fr); margin-bottom: 1.25rem; }
.report-stage__heading h3 { font-family: var(--display); font-size: 1.65rem; line-height: 1; margin: 0; text-transform: uppercase; }
.report-stage__heading p { color: var(--muted); font-size: .82rem; margin: 0; max-width: 58ch; }
.report-profile { border: 0; display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 0; }
.report-profile legend { height: 1px; overflow: hidden; position: absolute; width: 1px; clip: rect(0 0 0 0); }
.report-profile label { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); cursor: pointer; position: relative; }
.report-profile label:last-of-type { border-right: 0; }
.report-profile input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.report-profile label > span { display: grid; min-height: 5.5rem; padding: 1rem; }
.report-profile strong { font-family: var(--display); font-size: 1rem; text-transform: uppercase; }
.report-profile small { color: var(--muted); font-size: .8rem; margin-top: .25rem; }
.report-profile input:checked + span { background: var(--chartreuse); box-shadow: inset 0 -4px 0 var(--ink); }
.report-profile input:focus-visible + span { outline: 3px solid var(--coral); outline-offset: -3px; }
.report-profile input:disabled + span { cursor: not-allowed; opacity: .55; }
.report-field-grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.report-field-grid label, .report-text-field, .report-source-grid label, .report-closing-grid label { display: grid; min-width: 0; }
.report-field--wide { grid-column: 1 / -1; }
.report-field-grid label > span, .report-text-field > span, .report-source-grid label > span, .report-closing-grid label > span, .report-dimensions legend { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .09em; margin-bottom: .4rem; text-transform: uppercase; }
.report-field-grid label > span small, .report-closing-grid label > span small, .report-dimensions legend small { color: var(--muted); font-family: var(--body); font-size: .75rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.report-field-grid input, .report-field-grid select, .report-field-grid textarea, .report-text-field textarea, .report-source-grid textarea, .report-closing-grid textarea { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: inherit; line-height: 1.55; padding: .8rem .9rem; resize: vertical; width: 100%; }
.social-report-form input::placeholder, .social-report-form textarea::placeholder { color: var(--muted); opacity: 1; }
.report-field-grid input, .report-field-grid select { min-height: 3.35rem; }
.report-field-grid input:focus, .report-field-grid select:focus, .report-field-grid textarea:focus, .report-text-field textarea:focus, .report-source-grid textarea:focus, .report-closing-grid textarea:focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.report-field-grid input:disabled, .report-field-grid select:disabled, .report-field-grid textarea:disabled, .report-text-field textarea:disabled, .report-source-grid textarea:disabled, .report-closing-grid textarea:disabled { cursor: not-allowed; opacity: .58; }
.report-dimensions { border: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1.35rem 0 0; padding: 0; }
.report-dimensions legend { padding: 0 0 .7rem; width: 100%; }
.report-dimensions label { align-items: center; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); cursor: pointer; display: flex; gap: .6rem; min-height: 3.4rem; padding: .7rem .8rem; }
.report-dimensions label:nth-of-type(3n) { border-right: 0; }
.report-dimensions input { accent-color: var(--teal-deep); flex: 0 0 auto; height: 1.05rem; width: 1.05rem; }
.report-dimensions input:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.report-dimensions input:disabled { cursor: not-allowed; opacity: .55; }
.report-source-grid { display: grid; grid-template-columns: 1fr 1fr; }
.report-source-grid label { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); padding: 1.1rem; }
.report-source-grid label:nth-child(even) { border-right: 0; }
.report-source-grid label:nth-child(odd) { padding-left: 0; }
.report-source-grid label:nth-child(even) { padding-right: 0; }
.report-source-grid label > small { color: var(--muted); font-size: .78rem; margin-bottom: .45rem; min-height: 2.4rem; }
.report-source-grid textarea { min-height: 11rem; }
.report-source-grid .report-analysis-field { background: #e5f4ef; padding-left: 1.1rem; }
.report-privacy-note { color: var(--muted); font-size: .8rem; margin: .7rem 0 0; }
.report-closing-grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.report-closing-grid textarea { min-height: 9rem; }
.report-validator-line { margin-top: 0; }
.opinion-foundation { border-top: 4px solid var(--coral); }
.opinion-scope-field, .opinion-analysis-grid .report-analysis-field { background: #e5f4ef; padding: 1rem; }
.opinion-evidence-grid textarea { min-height: 12rem; }
.opinion-conclusion-type { margin-bottom: 1.25rem; }
.opinion-conclusion-field { border-bottom: 1px solid var(--ink); display: grid; padding: 1rem 0 1.5rem; }
.opinion-conclusion-field > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .09em; margin-bottom: .4rem; text-transform: uppercase; }
.opinion-conclusion-field textarea { background: var(--mineral); border: 2px solid var(--ink); border-radius: 12px; color: var(--ink); line-height: 1.55; min-height: 12rem; padding: 1rem; resize: vertical; width: 100%; }
.opinion-conclusion-field textarea:focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.opinion-conclusion-field textarea:disabled { cursor: not-allowed; opacity: .58; }
.opinion-conclusion-field > small { color: var(--muted); font-size: .8rem; margin-top: .5rem; }
.opinion-authorship-note { align-items: center; border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); display: grid; gap: .35rem 2rem; grid-template-columns: minmax(14rem, .55fr) minmax(20rem, 1.45fr); padding: 1rem 0; }
.opinion-authorship-note strong { color: var(--ink); font-family: var(--display); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.opinion-authorship-note p { color: var(--muted); font-size: .82rem; margin: 0; }
.analysis-foundation { align-items: center; background: var(--ink); border-top: 4px solid var(--teal); color: var(--paper); display: grid; gap: .5rem 2rem; grid-template-columns: minmax(13rem, .55fr) minmax(22rem, 1.2fr) auto; margin-bottom: 1.5rem; padding: 1rem 1.25rem; }
.analysis-foundation strong { font-family: var(--display); font-size: 1rem; letter-spacing: .05em; text-transform: uppercase; }
.analysis-foundation p { color: var(--line); font-size: .82rem; margin: 0; }
.analysis-foundation span { border: 1px solid rgba(255,255,255,.45); font-family: var(--display); font-size: .8rem; letter-spacing: .05em; padding: .7rem .9rem; text-transform: uppercase; }
.analysis-goals { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.analysis-question-grid { display: grid; gap: 1rem; grid-template-columns: .8fr 1.2fr; margin-top: 1.25rem; }
.analysis-question-grid label, .analysis-source-fieldset label, .analysis-actions-field, .analysis-reading-field, .analysis-boundary-field { display: grid; }
.analysis-question-grid label > span, .analysis-source-fieldset label > span, .analysis-actions-field > span, .analysis-reading-field > span, .analysis-boundary-field > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .09em; margin-bottom: .4rem; text-transform: uppercase; }
.analysis-question-grid textarea, .analysis-source-fieldset textarea, .analysis-actions-field textarea, .analysis-reading-field textarea, .analysis-boundary-field textarea { background: var(--mineral); border: 1px solid var(--muted); border-radius: 12px; color: var(--ink); line-height: 1.55; padding: .9rem; resize: vertical; width: 100%; }
.analysis-question-grid textarea:focus, .analysis-source-fieldset textarea:focus, .analysis-actions-field textarea:focus, .analysis-reading-field textarea:focus, .analysis-boundary-field textarea:focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.analysis-source-fieldset { display: grid; gap: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.analysis-source-fieldset label { background: #e5f4ef; border-top: 1px solid var(--ink); padding: 1rem; }
.analysis-source-fieldset label + label { border-left: 1px solid var(--line); }
.analysis-source-fieldset label > small, .analysis-reading-field > small { color: var(--muted); font-size: .78rem; margin-bottom: .55rem; }
.analysis-source-fieldset textarea { min-height: 12rem; }
.analysis-actions-field, .analysis-boundary-field { border-bottom: 1px solid var(--ink); padding: 1rem 0 1.25rem; }
.analysis-reading-field { background: #e5f4ef; border-top: 4px solid var(--coral); padding: 1rem; }
.analysis-reading-field textarea { background: var(--paper); min-height: 10rem; }
.analysis-open-grid { margin-top: 1.25rem; }
.analysis-boundary-field { margin-top: 1rem; }
.analysis-output-map { border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); margin-bottom: 1.5rem; padding: 1rem 0; }
.analysis-output-map > strong { font-family: var(--display); font-size: 1rem; letter-spacing: .05em; text-transform: uppercase; }
.analysis-output-map ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: .8rem 0 0; padding: 0; }
.analysis-output-map li { border-top: 3px solid var(--line); min-height: 7rem; padding: .8rem 1rem .5rem 0; }
.analysis-output-map li + li { border-left: 1px solid var(--line); padding-left: 1rem; }
.analysis-output-map li:nth-child(1) { border-top-color: var(--teal); }
.analysis-output-map li:nth-child(2) { border-top-color: var(--coral); }
.analysis-output-map li:nth-child(3) { border-top-color: var(--chartreuse); }
.analysis-output-map li:nth-child(4) { border-top-color: var(--ink); }
.analysis-output-map li span { font-family: var(--display); font-size: 1rem; text-transform: uppercase; }
.analysis-output-map li p { color: var(--muted); font-size: .78rem; margin: .35rem 0 0; }
.analysis-authorship-note { margin-top: 1rem; }
.rights-search-foundation { align-items: center; background: var(--ink); border-top: 4px solid var(--chartreuse); color: var(--paper); display: grid; gap: .5rem 2rem; grid-template-columns: minmax(13rem, .5fr) minmax(22rem, 1.2fr) auto; margin-bottom: 1.5rem; padding: 1rem 1.25rem; }
.rights-search-foundation > div { display: grid; gap: .15rem; }
.rights-search-foundation span { color: var(--chartreuse); font-family: var(--display); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.rights-search-foundation strong { font-family: var(--display); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.rights-search-foundation p { color: var(--line); font-size: .82rem; margin: 0; }
.rights-search-foundation time { border: 1px solid rgba(255,255,255,.45); font-family: var(--display); font-size: .82rem; padding: .65rem .8rem; }
.rights-research-purposes { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rights-research-scope { border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(15rem, .6fr) minmax(18rem, 1fr); }
.rights-research-scope label, .rights-question-field, .rights-context-grid label { display: grid; padding: 1rem 0; }
.rights-research-scope label:first-child { border-right: 1px solid var(--line); padding-right: 1rem; }
.rights-research-scope label:last-child { padding-left: 1rem; }
.rights-research-scope label > span, .rights-question-field > span, .rights-context-grid label > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .09em; margin-bottom: .4rem; text-transform: uppercase; }
.rights-research-scope select, .rights-research-scope input, .rights-question-field textarea, .rights-context-grid textarea { background: var(--mineral); border: 1px solid var(--muted); border-radius: 12px; color: var(--ink); font: inherit; line-height: 1.55; min-height: 3.35rem; padding: .8rem .9rem; width: 100%; }
.rights-question-field { border-bottom: 1px solid var(--ink); }
.rights-question-field textarea, .rights-context-grid textarea { resize: vertical; }
.rights-question-field > small { color: var(--muted); font-size: .78rem; margin-top: .45rem; }
.rights-research-scope select:focus, .rights-research-scope input:focus, .rights-question-field textarea:focus, .rights-context-grid textarea:focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.rights-context-grid { border-bottom: 1px solid var(--ink); display: grid; grid-template-columns: 1fr 1fr; }
.rights-context-grid label:first-child { border-right: 1px solid var(--line); padding-right: 1rem; }
.rights-context-grid label:last-child { padding-left: 1rem; }
.rights-source-protocol { border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 0 0 1rem; padding: 0; }
.rights-source-protocol li { border-top: 4px solid var(--line); display: grid; gap: .65rem; grid-template-columns: 1.4rem 1fr; min-height: 8rem; padding: 1rem 1rem 1rem 0; }
.rights-source-protocol li + li { border-left: 1px solid var(--line); padding-left: 1rem; }
.rights-source-protocol li:nth-child(1) { border-top-color: var(--chartreuse); }
.rights-source-protocol li:nth-child(2) { border-top-color: var(--teal); }
.rights-source-protocol li:nth-child(3) { border-top-color: var(--coral); }
.rights-source-protocol li:nth-child(4) { border-top-color: var(--ink); }
.rights-source-protocol li > span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; }
.rights-source-protocol strong { font-family: var(--display); font-size: 1rem; text-transform: uppercase; }
.rights-source-protocol p { color: var(--muted); font-size: .78rem; margin: .3rem 0 0; }
.rights-research-boundary { align-items: center; border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); display: grid; gap: .35rem 2rem; grid-template-columns: minmax(14rem, .55fr) minmax(20rem, 1.45fr); margin-top: 1rem; padding: 1rem 0; }
.rights-research-boundary strong { font-family: var(--display); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.rights-research-boundary p { color: var(--muted); font-size: .82rem; margin: 0; }
.referral-use-map { background: var(--ink); border-top: 4px solid var(--coral); color: var(--paper); display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 1.5rem; }
.tool-bench__heading .referral-basis { border-top: 1px solid var(--line); font-size: .78rem; margin-top: 1rem; padding-top: .75rem; }
.referral-basis span { color: var(--teal-deep); font-family: var(--display); letter-spacing: .08em; margin-right: .35rem; text-transform: uppercase; }
.referral-use-map > div { display: grid; gap: .35rem; min-height: 6.2rem; padding: 1rem 1.25rem; }
.referral-use-map > div + div { border-left: 1px solid rgba(255,255,255,.28); }
.referral-use-map span { color: var(--chartreuse); font-family: var(--display); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.referral-use-map p { color: var(--paper); font-size: .82rem; margin: 0; max-width: 58ch; opacity: .82; }
.referral-purposes { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 1.25rem; }
.referral-form .report-field-grid { border-bottom: 1px solid var(--ink); padding-bottom: 1.25rem; }
.referral-destination-grid, .referral-person-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.referral-consent { align-items: center; background: #e5f4ef; border: 1px solid var(--teal-deep); cursor: pointer; display: grid; gap: .9rem; grid-template-columns: 1.4rem 1fr; margin-top: 1.25rem; padding: 1rem 1.1rem; }
.referral-consent input { accent-color: var(--teal-deep); height: 1.25rem; width: 1.25rem; }
.referral-consent input:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.referral-consent span { display: grid; gap: .15rem; }
.referral-consent strong { font-family: var(--display); font-size: .9rem; letter-spacing: .04em; text-transform: uppercase; }
.referral-consent small { color: var(--muted); font-size: .8rem; }
.referral-boundary { align-items: center; border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); display: grid; gap: .35rem 2rem; grid-template-columns: minmax(14rem, .55fr) minmax(20rem, 1.45fr); margin-top: 1rem; padding: 1rem 0; }
.referral-boundary strong { font-family: var(--display); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.referral-boundary p { color: var(--muted); font-size: .82rem; margin: 0; }
.social-information-contexts { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 1.25rem; }
.social-information-contexts label > span { min-height: 6.5rem; padding-inline: .8rem; }
.social-information-purpose-grid { border-bottom: 1px solid var(--ink); margin-top: 1.25rem; padding-bottom: 1.25rem; }
.social-information-source-matrix { display: grid; gap: 1px; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--line); border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); }
.social-information-source-group { background: var(--paper); border: 0; display: grid; gap: 1rem; margin: 0; min-width: 0; padding: 1.1rem; }
.social-information-source-group legend { color: var(--teal-deep); font-family: var(--display); font-size: .82rem; letter-spacing: .09em; padding: 1rem 0 0; text-transform: uppercase; }
.social-information-source-group label { display: grid; min-width: 0; }
.social-information-source-group label > span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; letter-spacing: .08em; margin-bottom: .4rem; text-transform: uppercase; }
.social-information-source-group label > span small { color: var(--muted); font-family: var(--body); font-size: .75rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.social-information-source-group input, .social-information-source-group textarea { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); line-height: 1.55; min-height: 3.35rem; padding: .8rem .9rem; resize: vertical; width: 100%; }
.social-information-source-group input:focus, .social-information-source-group textarea:focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.social-information-source-group input:disabled, .social-information-source-group textarea:disabled { cursor: not-allowed; opacity: .58; }
.social-information-confirmations { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.social-information-confirmations .referral-consent { margin-top: 1.25rem; }
.multiprofessional-use-map { margin-bottom: 2rem; }
.multiprofessional-confirmations { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.multiprofessional-confirmations--final { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1.25rem; }
.multiprofessional-confirmations .referral-consent { margin-top: 1.25rem; }
.multiprofessional-team { background: var(--line); border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); display: grid; gap: 1px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1.25rem; }
.multiprofessional-area { background: var(--paper); border: 0; margin: 0; min-width: 0; padding: 1rem; }
.multiprofessional-area > fieldset { border: 0; margin: 0; min-width: 0; padding: .85rem 0 0; }
.multiprofessional-area legend { color: var(--teal-deep); font-family: var(--display); font-size: .82rem; letter-spacing: .08em; padding: 0; text-transform: uppercase; }
.multiprofessional-area summary { color: var(--ink); cursor: pointer; font-family: var(--display); font-size: .8rem; letter-spacing: .04em; list-style-position: inside; padding: .25rem 0; text-transform: uppercase; }
.multiprofessional-area summary:hover { color: var(--teal-deep); }
.multiprofessional-area summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.multiprofessional-area .report-field-grid { border-bottom: 0; padding-bottom: 0; }
.multiprofessional-common-grid { margin-top: 1.25rem; }
.multiprofessional-common-confirmation { margin-bottom: 1.25rem; }
.multiprofessional-social-work-grid .professional-conclusion-field { background: #e5f4ef; border: 1px solid var(--teal-deep); border-radius: 12px; display: grid; gap: .35rem; padding: 1rem; }
.multiprofessional-social-work-grid .professional-conclusion-field > small { color: var(--muted); font-size: .8rem; margin-bottom: .35rem; max-width: 72ch; }
.multiprofessional-report-form .referral-boundary { grid-template-columns: minmax(14rem, .55fr) minmax(20rem, 1.45fr); }
.concept-use-map { border-top-color: var(--teal); margin-bottom: 2rem; }
.concept-audience-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 1.25rem; }
.concept-audience-grid label > span { min-height: 7rem; padding-inline: .8rem; }
.concept-shape-grid, .concept-context-grid { margin-top: 1.25rem; }
.concept-confirmations, .concept-output-options { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.concept-confirmations .referral-consent, .concept-output-options .referral-consent { margin-top: 1.25rem; }
.concept-boundary { grid-template-columns: minmax(15rem, .6fr) minmax(22rem, 1.4fr); }
.tool-ledger { background: var(--mineral); border-top: 1px solid var(--ink); display: grid; gap: clamp(2rem, 6vw, 6rem); grid-template-columns: minmax(17rem, .7fr) minmax(25rem, 1.3fr); padding: clamp(3.5rem, 6vw, 6rem) clamp(1.5rem, 5vw, 5rem); }
.tool-ledger__head p { color: var(--muted); max-width: 50ch; }
.tool-ledger ol { border-top: 1px solid var(--ink); list-style: none; margin: 0; padding: 0; }
.tool-ledger li { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 2rem minmax(0, 1fr) auto; padding: 1rem 0; }
.tool-ledger li > span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; }
.tool-ledger li strong { font-family: var(--display); font-size: 1rem; text-transform: uppercase; }
.tool-ledger li p { color: var(--muted); font-size: .8rem; margin: .2rem 0 0; }
.tool-ledger li > small { color: var(--muted); font-size: .8rem; }

@media (max-width: 1199px) {
    .tool-route-switch { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .tool-route-switch > :nth-child(n) { border-bottom: 0; border-left: 0; }
    .tool-route-switch > :nth-child(3n+1) { border-left: 1px solid var(--line); }
    .tool-route-switch > :nth-child(-n+9) { border-bottom: 1px solid var(--line); }
    .tool-route-switch__long { gap: .25rem .5rem; padding-inline: .75rem; }
    .tool-route-switch__long strong { font-size: 1rem; }
}

@media (max-width: 980px) {
    .tools-intro { grid-template-columns: 1fr; }
    .tools-capacity { max-width: 30rem; }
    .tool-mode__heading { align-items: stretch; grid-template-columns: 1fr; }
    .tool-mode__switch { width: 100%; }
    .simple-tool-intro { grid-template-columns: 1fr; }
    .revision-objectives { grid-template-columns: 1fr 1fr; }
    .revision-objectives label:nth-of-type(2) { border-right: 0; }
    .tool-ledger { grid-template-columns: 1fr; }
    .evolution-source-grid { grid-template-columns: 1fr; }
    .evolution-source-grid label, .evolution-source-grid label:first-child, .evolution-source-grid label:last-child { border-bottom: 1px solid var(--line); border-right: 0; padding: 1.25rem 0; }
    .evolution-source-grid label:last-child { border-bottom: 0; }
    .evolution-source-grid label > small { min-height: auto; }
    .evolution-source-grid textarea { min-height: 10rem; }
    .report-stage__heading { grid-template-columns: 1fr; }
    .report-dimensions { grid-template-columns: 1fr 1fr; }
    .report-dimensions label:nth-of-type(3n) { border-right: 1px solid var(--line); }
    .report-dimensions label:nth-of-type(even) { border-right: 0; }
    .analysis-foundation { grid-template-columns: 1fr; }
    .analysis-foundation span { justify-self: start; }
    .analysis-goals, .analysis-output-map ol { grid-template-columns: 1fr 1fr; }
    .analysis-question-grid { grid-template-columns: 1fr; }
    .analysis-source-fieldset { grid-template-columns: 1fr; }
    .analysis-source-fieldset label + label { border-left: 0; }
    .rights-search-foundation { grid-template-columns: 1fr; }
    .rights-search-foundation time { justify-self: start; }
    .rights-research-purposes, .rights-source-protocol { grid-template-columns: 1fr 1fr; }
    .referral-purposes { grid-template-columns: 1fr 1fr; }
    .social-information-contexts, .social-information-source-matrix, .social-information-confirmations { grid-template-columns: 1fr; }
    .social-information-form .referral-boundary, .multiprofessional-report-form .referral-boundary { grid-template-columns: 1fr; }
    .multiprofessional-team, .multiprofessional-confirmations, .multiprofessional-confirmations--final { grid-template-columns: 1fr; }
    .concept-audience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .concept-audience-grid label:last-of-type { grid-column: 1 / -1; }
    .concept-confirmations, .concept-output-options, .concept-boundary { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .tool-bench__heading { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .tools-intro { gap: 1.35rem; padding-block: 2rem; }
    .tools-intro h1 { font-size: 3.7rem; }
    .tools-intro p { line-height: 1.45; }
    .tools-capacity { display: grid; grid-template-columns: 1fr 1fr; max-width: none; }
    .tools-capacity div { align-items: start; display: grid; gap: .15rem; padding: .55rem 0; }
    .tools-capacity div:nth-child(2) { padding-left: .8rem; }
    .tools-capacity div:last-child { padding-left: .8rem; }
    .tools-capacity dd { text-align: left; }
    .tool-route-switch { grid-template-columns: 1fr 1fr; padding: 0 1rem; }
    .tool-route-switch > :nth-child(n) { border-bottom: 0; border-left: 0; border-right: 0; gap: .2rem .45rem; grid-template-columns: 1.25rem 1fr; min-height: 5.4rem; padding: .8rem .55rem; }
    .tool-route-switch > :nth-child(odd) { border-right: 1px solid var(--line); }
    .tool-route-switch > :nth-child(-n+10) { border-bottom: 1px solid var(--line); }
    .tool-route-switch > * strong { font-size: 1rem; line-height: 1; }
    .tool-route-switch > * small { font-size: .68rem; line-height: 1.25; }
    .tool-mode { padding: 2.5rem 1rem; }
    .tool-mode__heading h2 { font-size: 2.7rem; }
    .tool-mode__switch { min-width: 0; }
    .tool-mode__switch button { font-size: 1rem; min-height: 4rem; padding: .65rem .7rem; }
    .simple-tool-intro { gap: .8rem; }
    .simple-tool-form__brief textarea { min-height: 13rem; }
    .simple-tool-guardrails { grid-template-columns: 1fr; }
    .simple-tool-guardrails li { min-height: 0; padding: 1rem 0; }
    .simple-tool-guardrails li + li { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; }
    .simple-tool-form__submit { align-items: stretch; grid-template-columns: 1fr; }
    .simple-tool-form__submit .button { min-width: 0; width: 100%; }
    .tool-local-sanitization__head { grid-template-columns: 1fr; gap: .45rem; }
    .tool-local-sanitization__details-button { justify-self: start; }
    .tool-bench, .tool-ledger { padding: 3rem 1rem; }
    .tool-bench__heading h2, .tool-ledger h2 { font-size: 2.7rem; }
    .revision-objectives { grid-template-columns: 1fr; }
    .revision-objectives label, .revision-objectives label:nth-of-type(2) { border-right: 0; }
    .revision-objectives label > span { min-height: auto; }
    .tool-submit-line { grid-template-columns: 1fr; }
    .tool-submit-line .button { justify-self: stretch; width: 100%; }
    .tool-ledger li { grid-template-columns: 1.7rem 1fr; }
    .tool-ledger li > small { grid-column: 2; }
    .evolution-context { grid-template-columns: 1fr; }
    .evolution-context > label { border-bottom: 1px solid var(--line); border-right: 0; padding-right: 0; }
    .evolution-context fieldset { flex-wrap: wrap; padding-left: 0; }
    .validator-line { align-items: start; grid-template-columns: 1fr; }
    .report-foundation { align-items: start; grid-template-columns: 1fr; }
    .report-foundation > span { justify-self: start; }
    .report-stage { grid-template-columns: 2.4rem minmax(0, 1fr); }
    .report-stage__marker { padding-right: .65rem; }
    .report-stage__body { padding-left: .85rem; }
    .report-stage__heading h3 { font-size: 1.4rem; }
    .report-profile, .report-field-grid, .report-source-grid, .report-closing-grid, .report-dimensions { grid-template-columns: 1fr; }
    .report-profile label, .report-profile label:last-of-type, .report-dimensions label, .report-dimensions label:nth-of-type(3n), .report-dimensions label:nth-of-type(even), .report-source-grid label, .report-source-grid label:nth-child(even) { border-right: 0; }
    .report-source-grid label, .report-source-grid label:nth-child(odd), .report-source-grid label:nth-child(even) { padding: 1rem 0; }
    .report-source-grid .report-analysis-field { padding-inline: .8rem; }
    .opinion-authorship-note { grid-template-columns: 1fr; }
    .opinion-scope-field { padding-inline: .8rem; }
    .analysis-goals, .analysis-output-map ol { grid-template-columns: 1fr; }
    .analysis-output-map li + li { border-left: 0; padding-left: 0; }
    .analysis-reading-field { padding-inline: .8rem; }
    .rights-research-purposes, .rights-research-scope, .rights-context-grid, .rights-source-protocol { grid-template-columns: 1fr; }
    .rights-research-scope label:first-child, .rights-context-grid label:first-child { border-bottom: 1px solid var(--line); border-right: 0; padding-right: 0; }
    .rights-research-scope label:last-child, .rights-context-grid label:last-child { padding-left: 0; }
    .rights-source-protocol li + li { border-left: 0; padding-left: 0; }
    .rights-source-protocol li { min-height: 0; }
    .rights-research-boundary { grid-template-columns: 1fr; }
    .referral-use-map, .referral-purposes, .referral-destination-grid, .referral-person-grid, .referral-boundary { grid-template-columns: 1fr; }
    .referral-use-map > div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.28); }
    .concept-audience-grid { grid-template-columns: 1fr; }
    .concept-audience-grid label:last-of-type { grid-column: auto; }
    .concept-audience-grid label > span { min-height: auto; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .route-line__active { stroke-dashoffset: 0; }
}

/* Repertório profissional — livro-caixa editorial */
.admin-vocabulary-ledger { overflow-x: clip; }
.admin-vocabulary-heading h1 { max-width: 11ch; }
.admin-vocabulary-tabs { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 1.5rem; padding: 0 clamp(1.25rem, 5vw, 5.5rem); }
.admin-vocabulary-tabs a { border-bottom: 2px solid transparent; color: var(--muted); font-family: var(--display); font-size: 1.2rem; letter-spacing: .06em; padding: 1rem .15rem .75rem; text-decoration: none; text-transform: uppercase; }
.admin-vocabulary-tabs a:hover, .admin-vocabulary-tabs a:focus-visible { color: var(--teal-deep); }
.admin-vocabulary-tabs a.is-current { border-color: var(--chartreuse); color: var(--ink); }
.admin-vocabulary-tabs span { background: var(--teal-deep); border-radius: 50%; color: var(--paper); display: inline-grid; font-family: var(--body); font-size: .72rem; height: 1.4rem; letter-spacing: 0; place-items: center; min-width: 1.4rem; padding: 0 .25rem; text-transform: none; vertical-align: middle; }
.admin-vocabulary-filters { align-items: end; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: minmax(15rem, 2fr) minmax(11rem, 1fr) minmax(13rem, 1fr) auto; margin-bottom: 1.5rem; padding-bottom: 1.25rem; }
.admin-vocabulary-filters label, .admin-vocabulary-edit label, .admin-suggestion-form label { display: grid; gap: .4rem; min-width: 0; }
.admin-vocabulary-filters label > span, .admin-vocabulary-edit label > span, .admin-suggestion-form label > span, .admin-vocabulary-actions > span { color: var(--muted); font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.admin-vocabulary-filters input, .admin-vocabulary-filters select, .admin-vocabulary-edit input, .admin-vocabulary-edit select, .admin-vocabulary-edit textarea, .admin-suggestion-form input, .admin-suggestion-form textarea { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: inherit; min-height: 3rem; padding: .7rem .8rem; width: 100%; }
.admin-vocabulary-filters input:focus, .admin-vocabulary-filters select:focus, .admin-vocabulary-edit input:focus, .admin-vocabulary-edit select:focus, .admin-vocabulary-edit textarea:focus, .admin-suggestion-form input:focus, .admin-suggestion-form textarea:focus { background: var(--paper); border-color: var(--teal); box-shadow: 0 0 0 3px rgba(31,165,138,.18); outline: 0; }
.admin-vocabulary-ledger-list, .admin-suggestion-ledger { border-top: 2px solid var(--ink); }
.admin-vocabulary-row, .admin-suggestion-row { border-bottom: 1px solid var(--line); }
.admin-vocabulary-row summary, .admin-suggestion-row summary { align-items: center; cursor: pointer; display: grid; gap: .75rem; grid-template-columns: 9rem minmax(0, 1fr) minmax(13rem, .7fr); list-style: none; min-height: 4.5rem; padding: .8rem 0; }
.admin-vocabulary-row summary::-webkit-details-marker, .admin-suggestion-row summary::-webkit-details-marker { display: none; }
.admin-vocabulary-row summary::after, .admin-suggestion-row summary::after { color: var(--teal-deep); content: '＋'; font-size: 1.25rem; justify-self: end; }
.admin-vocabulary-row[open] summary::after, .admin-suggestion-row[open] summary::after { content: '−'; }
.admin-vocabulary-row summary strong, .admin-suggestion-row summary strong { font-family: var(--display); font-size: 1.5rem; letter-spacing: .01em; overflow-wrap: anywhere; }
.admin-vocabulary-row summary small, .admin-suggestion-row summary small { color: var(--muted); }
.admin-vocabulary-row__state { border: 1px solid currentColor; display: inline-block; font-family: var(--display); font-size: .75rem; letter-spacing: .08em; padding: .3rem .45rem; text-align: center; text-transform: uppercase; width: max-content; }
.state--published { color: var(--teal-deep); }.state--draft { color: #8a6411; }.state--archived, .state--rejected { color: var(--muted); }.state--pending { color: #8a6411; }.state--approved { color: var(--teal-deep); }
.admin-vocabulary-row__body { background: rgba(246,247,242,.72); border-top: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) minmax(12rem, .28fr); padding: 1.25rem 1rem 1.5rem 9.75rem; }
.admin-vocabulary-edit, .admin-suggestion-form { display: grid; gap: 1rem; min-width: 0; }
.admin-vocabulary-comparison { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-vocabulary-actions { align-content: start; display: grid; gap: .65rem; }
.admin-vocabulary-actions form, .admin-suggestion-actions { display: grid; gap: .65rem; }
.admin-vocabulary-actions button, .admin-suggestion-actions button { min-height: 3rem; width: 100%; }
.admin-vocabulary-empty { border-bottom: 1px solid var(--line); display: grid; gap: .5rem; padding: 1.5rem 0; }.admin-vocabulary-empty strong { font-family: var(--display); font-size: 1.8rem; text-transform: uppercase; }.admin-vocabulary-empty p { color: var(--muted); margin: 0; }
.admin-suggestion-row summary { grid-template-columns: 9rem minmax(0, 1fr) minmax(12rem, .7fr); }.admin-suggestion-form { border-top: 1px solid var(--line); padding: 1.25rem 1rem 1.5rem 9.75rem; }.admin-suggestion-actions { display: flex; flex-wrap: wrap; gap: .75rem; }.admin-suggestion-actions .admin-save { min-width: 12rem; }
@media (max-width: 900px) { .admin-vocabulary-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }.admin-vocabulary-filters button { width: 100%; }.admin-vocabulary-row summary, .admin-suggestion-row summary { grid-template-columns: 8rem minmax(0, 1fr) 1rem; }.admin-vocabulary-row summary small, .admin-suggestion-row summary small { grid-column: 2; }.admin-vocabulary-row__body, .admin-suggestion-form { grid-template-columns: 1fr; padding-left: 1rem; }.admin-vocabulary-actions { border-top: 1px solid var(--line); padding-top: 1rem; } }
@media (max-width: 560px) { .admin-vocabulary-tabs { gap: 1rem; padding-inline: 1rem; }.admin-vocabulary-tabs a { font-size: 1rem; }.admin-vocabulary-filters, .admin-vocabulary-comparison { grid-template-columns: 1fr; }.admin-vocabulary-filters { padding-inline: 0; }.admin-vocabulary-row summary, .admin-suggestion-row summary { align-items: start; grid-template-columns: 1fr 1rem; min-height: 0; padding: 1rem 0; }.admin-vocabulary-row summary strong, .admin-suggestion-row summary strong { grid-column: 1; grid-row: 2; }.admin-vocabulary-row summary small, .admin-suggestion-row summary small { grid-column: 1; grid-row: 3; }.admin-vocabulary-row summary::after, .admin-suggestion-row summary::after { grid-column: 2; grid-row: 1; }.admin-vocabulary-row__body, .admin-suggestion-form { padding: 1rem 0; }.admin-suggestion-actions { display: grid; }.admin-suggestion-actions .admin-save { width: 100%; } }

/* Admin · server-resident encrypted backup control */
.backup-boundary.admin-governance-note { margin-bottom: 0; }
.backup-control-grid { border-bottom: 1px solid var(--ink); display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: minmax(20rem, 1.15fr) minmax(18rem, .85fr); padding: 2rem 0; }
.backup-request { display: grid; gap: 1rem; }
.backup-request header { border-top: 2px solid var(--ink); display: flex; gap: 1rem; justify-content: space-between; padding-top: .85rem; }
.backup-request header span, .backup-ledger > header span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.backup-request header strong { font-family: var(--display); text-transform: uppercase; }
.backup-request > p, .backup-request > small { color: var(--muted); margin: 0; max-width: 64ch; }
.backup-confirmation { align-items: start; background: var(--mineral); display: flex; gap: .7rem; padding: 1rem; }
.backup-confirmation input { accent-color: var(--teal-deep); flex: 0 0 auto; height: 1.15rem; margin-top: .15rem; width: 1.15rem; }
.backup-request .admin-save { justify-self: start; min-width: 14rem; }
.backup-guarantees { border-top: 1px solid var(--ink); margin: 0; }
.backup-guarantees div { align-items: baseline; border-bottom: 1px solid var(--line); display: flex; gap: 1rem; justify-content: space-between; padding: .85rem 0; }
.backup-guarantees dt { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.backup-guarantees dd { font-family: var(--display); margin: 0; text-align: right; text-transform: uppercase; }
.backup-ledger { margin-top: 3rem; }
.backup-ledger > header { align-items: end; display: grid; gap: 1rem; grid-template-columns: .6fr 1fr 1.4fr; padding-bottom: 1rem; }
.backup-ledger > header strong { font-family: var(--display); font-size: 2rem; text-transform: uppercase; }
.backup-ledger > header p { color: var(--muted); margin: 0; text-align: right; }
.backup-ledger-row { align-items: center; border-bottom: 1px solid var(--line); border-top: 1px solid var(--ink); display: grid; gap: 1.5rem; grid-template-columns: minmax(9rem, .55fr) minmax(14rem, 1fr) minmax(20rem, 1.45fr); padding: 1.15rem 0; }
.backup-ledger-row > span { color: var(--teal-deep); font-family: var(--display); text-transform: uppercase; }
.backup-ledger-row > div strong, .backup-ledger-row > div small { display: block; }
.backup-ledger-row > div small { color: var(--muted); margin-top: .25rem; }
.backup-ledger-row dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.backup-ledger-row dl div { border-left: 1px solid var(--line); min-width: 0; padding-left: .8rem; }
.backup-ledger-row dt { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.backup-ledger-row dd { font-family: var(--display); margin: .3rem 0 0; overflow-wrap: anywhere; }

@media (max-width: 900px) {
    .backup-control-grid { grid-template-columns: 1fr; }
    .backup-ledger-row { grid-template-columns: minmax(9rem, .6fr) 1fr; }
    .backup-ledger-row dl { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
    .backup-boundary, .backup-ledger > header { grid-template-columns: 1fr; }
    .backup-ledger > header p { text-align: left; }
    .backup-request .admin-save { justify-self: stretch; width: 100%; }
    .backup-ledger-row { align-items: start; grid-template-columns: 1fr; }
    .backup-ledger-row dl { grid-column: 1; }
}

/* Platform control plane: a financial ledger, not a generic SaaS dashboard. */
.admin-page { background: var(--paper); }
.admin-shell { display: grid; grid-template-columns: 18rem minmax(0, 1fr); min-height: 100svh; }
.admin-rail { background: var(--ink-deep); color: var(--paper); display: flex; flex-direction: column; min-height: 100svh; padding: 1.5rem; position: sticky; top: 0; }
.admin-rail .brand { color: var(--paper); text-decoration: none; }
.admin-rail__coordinate { border-bottom: 1px solid rgba(255,255,255,.25); color: var(--chartreuse); font-family: var(--display); font-size: .72rem; letter-spacing: .16em; margin: 3rem 0 1rem; padding-bottom: .75rem; }
.admin-rail nav { display: grid; }
.admin-rail nav a, .admin-rail nav > span { align-items: center; border-bottom: 1px solid rgba(255,255,255,.13); display: flex; justify-content: space-between; padding: .9rem .75rem; text-decoration: none; }
.admin-rail nav a.is-current { background: var(--teal-deep); border-color: var(--teal-deep); }
.admin-rail nav > span { color: rgba(255,255,255,.5); }
.admin-rail nav small { font-size: .65rem; text-transform: uppercase; }
.admin-mobile-navigation { display: none; }
.admin-rail__identity { align-items: center; border-top: 1px solid rgba(255,255,255,.25); display: grid; gap: .75rem; grid-template-columns: 2.4rem 1fr; margin-top: auto; padding-top: 1rem; }
.admin-rail__identity > span { align-items: center; background: var(--coral); border-radius: 50%; display: flex; height: 2.4rem; justify-content: center; width: 2.4rem; }
.admin-rail__identity div { display: grid; min-width: 0; }
.admin-rail__identity strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-rail__identity small { color: rgba(255,255,255,.65); font-family: var(--display); font-size: .65rem; letter-spacing: .08em; }
.admin-rail__exit { color: var(--chartreuse); font-size: .8rem; margin-top: .75rem; }
.admin-ledger { min-width: 0; }
.admin-heading { background-color: var(--mineral); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='1' cy='1' r='1' fill='%23101b4d' fill-opacity='.13'/%3E%3C/svg%3E"); border-bottom: 1px solid var(--ink); display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr) minmax(18rem, 30rem); padding: clamp(2rem, 4vw, 4rem) clamp(1.5rem, 6vw, 6rem); position: relative; }
.admin-heading::after { border: 1px solid rgba(31,165,138,.4); border-radius: 50%; content: ""; height: 19rem; pointer-events: none; position: absolute; right: 5%; top: -8rem; width: 30rem; }
.admin-heading h1 { font-family: var(--display); font-size: clamp(3.7rem, 7vw, 5.35rem); letter-spacing: -.035em; line-height: .86; margin: 0 0 1.25rem; max-width: 8ch; text-transform: uppercase; }
.admin-heading p { color: var(--muted); margin: 0; max-width: 62ch; }
.admin-summary { align-self: end; border-top: 1px solid var(--ink); margin: 0; position: relative; z-index: 1; }
.admin-summary div { align-items: baseline; border-bottom: 1px solid var(--line); display: flex; gap: 1rem; justify-content: space-between; padding: .8rem 0; }
.admin-summary dt { color: var(--muted); font-size: .8rem; }
.admin-summary dd { font-family: var(--display); font-size: 1.25rem; margin: 0; }
.admin-section { padding: clamp(2.5rem, 4vw, 4.5rem) clamp(1.25rem, 5vw, 5.5rem); }
.admin-section + .admin-section { border-top: 1px solid var(--ink); }
.admin-section__head { align-items: end; display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr) minmax(18rem, 32rem); margin-bottom: 1.25rem; }
.admin-section__head > div { align-items: baseline; display: flex; gap: 1rem; }
.admin-section h2 { font-family: var(--display); font-size: clamp(2.7rem, 5vw, 5rem); letter-spacing: -.025em; line-height: .9; margin: 0; text-transform: uppercase; }
.admin-section__head p { color: var(--muted); margin: 0; }
.budget-ledger, .provider-ledger { border-top: 2px solid var(--ink); }
.budget-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: minmax(10rem, 1.05fr) minmax(8rem, .68fr) minmax(8rem, .65fr) minmax(9rem, .7fr) minmax(10rem, .82fr) minmax(7rem, .58fr) auto auto; padding: 1.25rem 0; }
.budget-row--restricted { background: linear-gradient(90deg, rgba(16,27,77,.055), transparent); }
.budget-row__plan, .budget-row__equivalence, .budget-row__usage { display: grid; }
.budget-row__plan > span, .budget-row label > span:first-child, .budget-row__equivalence > span, .budget-row__usage > span, .provider-row label > span, .provider-row__price > span { color: var(--muted); font-family: var(--display); font-size: .68rem; letter-spacing: .09em; text-transform: uppercase; }
.budget-row__plan strong { font-family: var(--display); font-size: 1.65rem; line-height: 1; }
.budget-row__plan a, .provider-row__price a { color: var(--teal-deep); font-size: .7rem; }
.budget-row label:not(.admin-switch) { display: grid; }
.budget-row__token-limit input { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); min-height: 3rem; min-width: 0; padding: .7rem; width: 100%; }
.budget-row__token-limit input:focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.money-field { align-items: center; background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; display: grid; grid-template-columns: auto 1fr; min-height: 3rem; overflow: hidden; }
.money-field b { border-right: 1px solid var(--line); font-size: .75rem; padding: .7rem; }
.money-field input { background: transparent; border: 0; color: var(--ink); min-width: 0; outline: 0; padding: .7rem; width: 100%; }
.money-field:focus-within { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.budget-row label small, .budget-row__usage small { color: var(--muted); font-size: .68rem; }
.budget-row__equivalence strong { font-size: .78rem; }
.budget-row__equivalence b { color: var(--teal-deep); display: block; font-weight: 600; }
.budget-row__usage strong { font-family: var(--display); font-size: 1.25rem; }
.admin-switch { align-items: center; cursor: pointer; display: flex; gap: .55rem; min-width: 7.5rem; }
.admin-switch input { accent-color: var(--teal-deep); height: 1.1rem; width: 1.1rem; }
.admin-switch span { font-size: .78rem; font-weight: 600; }
.admin-save { background: var(--ink); border: 0; color: var(--paper); cursor: pointer; min-height: 2.7rem; padding: .65rem .9rem; }
.admin-save:hover { background: var(--teal-deep); }
.admin-save[disabled] { cursor: wait; opacity: .65; }
.admin-footnote { border-top: 1px solid var(--coral); color: var(--muted); font-size: .8rem; margin: 1.5rem 0 0; max-width: 80ch; padding-top: .8rem; }
.admin-inventory-heading h1 { max-width: 10ch; }
.admin-account-filters { align-items: end; border-block: 1px solid var(--line); display: grid; gap: .8rem; grid-template-columns: minmax(15rem, 1.45fr) repeat(3, minmax(8.5rem, .72fr)) auto auto; padding: 1rem 0; }
.admin-account-filters label { display: grid; gap: .38rem; min-width: 0; }
.admin-account-filters label > span { color: var(--teal-deep); font-size: .8rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.admin-account-filters input, .admin-account-filters select { background: var(--paper); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: inherit; min-height: 3.35rem; min-width: 0; padding: .62rem .8rem; width: 100%; }
.admin-account-filters input:focus-visible, .admin-account-filters select:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.admin-account-filters .admin-save { min-height: 3.35rem; white-space: nowrap; }
.admin-account-filters__clear { align-items: center; color: var(--ink); display: inline-flex; font-weight: 700; justify-content: center; min-height: 3.35rem; padding-inline: .35rem; text-decoration-thickness: 1px; text-underline-offset: .2rem; }
.admin-account-results { color: var(--muted); font-size: .8rem; margin: .85rem 0; }
.admin-account-ledger, .admin-tool-catalog { border-top: 2px solid var(--ink); }
.admin-account-row { align-items: start; border-bottom: 1px solid var(--ink); display: grid; gap: 1.25rem; grid-template-columns: minmax(15rem, .72fr) minmax(22rem, 1.28fr); padding: 1.35rem 0; }
.admin-account-row__identity { display: grid; gap: .25rem; min-width: 0; }
.admin-account-row__identity > span, .admin-tool-row > div > span { color: var(--teal-deep); font-family: var(--display); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.admin-account-row__identity strong { font-family: var(--display); font-size: 1.55rem; line-height: 1; overflow-wrap: anywhere; text-transform: uppercase; }
.admin-account-row__identity small { color: var(--muted); overflow-wrap: anywhere; }
.admin-account-row dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.admin-account-row dl div { border-left: 1px solid var(--line); display: grid; gap: .35rem; padding: .15rem .85rem; min-width: 0; }
.admin-account-row dt { color: var(--muted); font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; }
.admin-account-row dd { font-size: .9rem; margin: 0; overflow-wrap: anywhere; }
.admin-account-actions { align-items: end; border-top: 1px solid var(--line); display: grid; gap: .65rem; grid-column: 1 / -1; grid-template-columns: minmax(9rem, .4fr) minmax(10rem, .75fr) minmax(14rem, 1.25fr) auto; padding-top: .9rem; }
.admin-account-actions > span { color: var(--teal-deep); font-family: var(--display); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.admin-account-actions select, .admin-account-actions input { background: var(--paper); border: 1px solid #73857e; border-radius: 10px; color: var(--ink); font: inherit; min-height: 2.7rem; min-width: 0; padding: .55rem .7rem; width: 100%; }
.admin-account-actions select:focus-visible, .admin-account-actions input:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.admin-account-actions .admin-save { min-height: 2.7rem; white-space: nowrap; }
.admin-inventory-empty { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem; grid-template-columns: minmax(13rem, .6fr) minmax(20rem, 1.4fr); padding: 1.5rem 0; }
.admin-inventory-empty strong { font-family: var(--display); font-size: 2rem; text-transform: uppercase; }
.admin-inventory-empty p { color: var(--muted); margin: 0; }
.admin-account-pagination { align-items: center; border-bottom: 1px solid var(--ink); display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 0; }
.admin-account-pagination > span { color: var(--muted); font-size: .8rem; }
.admin-account-pagination > div { align-items: center; display: flex; gap: .55rem; }
.admin-account-pagination a { align-items: center; border: 1px solid var(--ink); border-radius: 2rem; color: var(--ink); display: inline-flex; font-family: var(--display); font-size: .8rem; gap: .4rem; justify-content: center; min-height: 3.25rem; padding: .6rem 1rem; text-decoration: none; text-transform: uppercase; }
.admin-account-pagination a:hover, .admin-account-pagination a:focus-visible { background: var(--ink); color: var(--paper); }
.admin-account-pagination svg { height: 1rem; width: 1rem; }
.admin-tool-row { align-items: start; border-bottom: 1px solid var(--ink); display: grid; gap: 1rem; grid-template-columns: 3.2rem minmax(0, 1fr) minmax(11rem, .35fr); padding: 1.25rem 0; }
.admin-tool-row__index { color: var(--teal-deep); font-family: var(--display); font-size: .82rem; letter-spacing: .08em; padding-top: .15rem; }
.admin-tool-row h3 { font-family: var(--display); font-size: 1.65rem; line-height: 1; margin: .2rem 0 .45rem; text-transform: uppercase; }
.admin-tool-row p { color: var(--muted); margin: 0; max-width: 68ch; }
.admin-tool-row code { background: var(--mineral); color: var(--muted); font-family: var(--body); font-size: .72rem; justify-self: end; overflow-wrap: anywhere; padding: .45rem .6rem; }
.admin-tool-row:hover { background: linear-gradient(90deg, rgba(31,165,138,.08), transparent); }
.admin-tool-catalog + .admin-method-note { margin-top: 2rem; }
.billing-price-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1.25rem; grid-template-columns: minmax(10rem, .6fr) minmax(0, 2.4fr); padding: 1.35rem 0; }
.billing-price-row--restricted { background: linear-gradient(90deg, rgba(16,27,77,.055), transparent); }
.billing-price-row__plan { align-content: start; display: grid; gap: .16rem; min-width: 0; }
.billing-price-row__plan > span, .billing-price-form label > span { color: var(--muted); font-family: var(--display); font-size: .68rem; letter-spacing: .09em; text-transform: uppercase; }
.billing-price-row__plan strong { font-family: var(--display); font-size: 1.65rem; line-height: 1; }
.billing-price-row__plan small { color: var(--ink); overflow-wrap: anywhere; }
.billing-price-form { align-items: end; display: grid; gap: 1rem; grid-template-columns: minmax(9rem, 1fr) minmax(8rem, .9fr) minmax(7.5rem, auto) minmax(9rem, auto); min-width: 0; }
.billing-price-form label:not(.admin-switch) { display: grid; gap: .35rem; min-width: 0; }
.billing-price-form select, .billing-price-form input[type="number"] { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: inherit; min-height: 3rem; min-width: 0; padding: .65rem .75rem; width: 100%; }
.billing-price-form select:focus-visible, .billing-price-form input[type="number"]:focus-visible { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); outline-offset: 2px; }
.billing-price-form .admin-switch { align-self: end; min-height: 3rem; min-width: 0; }
.billing-price-form .admin-save { min-width: 9rem; white-space: nowrap; }
.provider-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: minmax(11rem, .8fr) minmax(13rem, 1fr) minmax(17rem, 1.4fr) auto auto; padding: 1.4rem 0; }
.provider-row__identity { align-items: center; display: grid; gap: .8rem; grid-template-columns: 1rem 1fr; }
.provider-state { background: var(--coral); border: 3px solid var(--paper); border-radius: 50%; box-shadow: 0 0 0 1px var(--coral); height: .8rem; width: .8rem; }
.provider-state.is-ready { background: var(--teal); box-shadow: 0 0 0 1px var(--teal); }
.provider-row__identity div { display: grid; }
.provider-row__identity strong { font-family: var(--display); font-size: 1.5rem; line-height: 1; }
.provider-row__identity small { color: var(--muted); font-size: .7rem; }
.provider-row label:not(.admin-switch) { display: grid; }
.provider-row select { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); min-height: 3rem; padding: .65rem .75rem; }
.provider-row select:focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.provider-row__price { display: grid; }
.provider-row__price strong { font-size: .82rem; }
.admin-method-note { background: var(--ink); color: var(--paper); display: grid; gap: 1rem; grid-template-columns: minmax(13rem, .55fr) minmax(20rem, 1.45fr); margin-top: 2.5rem; padding: 1.5rem; }
.admin-method-note strong { color: var(--chartreuse); font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.admin-method-note p { margin: 0; max-width: 72ch; }
.login-protection-control { align-items: center; border-block: 1px solid var(--line); display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr) auto; padding: 1.35rem 0; }
.login-protection-control__status { align-items: start; display: grid; gap: .85rem; grid-template-columns: auto minmax(0, 1fr); }
.login-protection-control__status small { color: var(--muted); display: block; font-size: .68rem; font-weight: 700; letter-spacing: .1em; margin-bottom: .2rem; text-transform: uppercase; }
.login-protection-control__status strong { font-family: var(--display); font-size: 1.45rem; letter-spacing: -.01em; text-transform: uppercase; }
.login-protection-control__status p { color: var(--muted); margin: .35rem 0 0; max-width: 62ch; }
.login-protection-state { background: var(--coral); border-radius: 50%; box-shadow: 0 0 0 .35rem color-mix(in srgb, var(--coral) 16%, transparent); height: .7rem; margin-top: .35rem; width: .7rem; }
.login-protection-state.is-active { background: var(--teal-deep); box-shadow: 0 0 0 .35rem color-mix(in srgb, var(--teal-deep) 14%, transparent); }
.login-protection-boundary { align-items: baseline; display: grid; gap: 1rem; grid-template-columns: minmax(9rem, .35fr) minmax(0, 1fr); padding-top: 1rem; }
.login-protection-boundary strong { color: var(--teal-deep); font-family: var(--display); font-size: 1.1rem; text-transform: uppercase; }
.login-protection-boundary p { color: var(--muted); margin: 0; max-width: 68ch; }
.admin-instructions-heading h1 { max-width: 10ch; }
.ai-instruction-group { margin-top: 3.5rem; }
.ai-instruction-group > header { align-items: end; display: grid; gap: 2rem; grid-template-columns: minmax(13rem, .65fr) minmax(22rem, 1.35fr); margin-bottom: 1rem; }
.ai-instruction-group > header h3 { font-family: var(--display); font-size: 2rem; line-height: 1; margin: 0; text-transform: uppercase; }
.ai-instruction-group > header p { color: var(--muted); margin: 0; }
.ai-instruction-ledger { border-top: 2px solid var(--ink); }
.ai-instruction-row { border-bottom: 1px solid var(--ink); scroll-margin-top: 1rem; }
.ai-instruction-row__identity { display: grid; gap: 1.5rem; grid-template-columns: minmax(16rem, .8fr) minmax(24rem, 1.2fr); padding: 1.4rem 0; }
.ai-instruction-row__identity > div { display: grid; gap: .3rem; min-width: 0; }
.ai-instruction-row__identity > div > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.ai-instruction-row__identity h4 { font-family: var(--display); font-size: 2rem; line-height: .95; margin: 0; text-transform: uppercase; }
.ai-instruction-row__identity p { color: var(--muted); margin: .25rem 0 0; max-width: 62ch; }
.ai-instruction-row__identity dl { align-self: stretch; display: grid; gap: .8rem 0; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.ai-instruction-content { padding: 0 1rem 1.25rem; }
.ai-instruction-content p { max-width: 75ch; white-space: normal; }
.ai-instruction-row code, .ai-instruction-content, .ai-instruction-row dd { overflow-wrap: anywhere; min-width: 0; }
.ai-instruction-row code { font-size: .8rem; }
.ai-instruction-row__identity dl div { border-left: 1px solid var(--line); display: grid; gap: .4rem; padding: .25rem .8rem; }
.ai-instruction-row__identity dt { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.ai-instruction-row__identity dd { font-family: var(--display); font-size: 1rem; margin: 0; }
.ai-instruction-editor, .ai-instruction-history { background: var(--mineral); border-top: 1px solid var(--line); }
.ai-instruction-editor > summary, .ai-instruction-history > summary { color: var(--teal-deep); cursor: pointer; font-weight: 650; padding: .9rem 1rem; }
.ai-instruction-editor > summary:hover, .ai-instruction-history > summary:hover { color: var(--ink); }
.ai-instruction-editor form { display: grid; gap: 1rem; padding: .25rem 1rem 1.25rem; }
.ai-instruction-editor label { display: grid; gap: .45rem; }
.ai-instruction-editor label > span { font-size: .8rem; font-weight: 650; }
.ai-instruction-editor label > small { color: var(--muted); max-width: 78ch; }
.ai-instruction-editor textarea { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; line-height: 1.55; min-height: 14rem; padding: .85rem 1rem; resize: vertical; width: 100%; }
.ai-instruction-editor textarea:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.ai-instruction-confirmation { align-items: start; display: grid !important; grid-template-columns: 1.2rem minmax(0, 1fr); }
.ai-instruction-confirmation input, .ai-instruction-restore input { accent-color: var(--teal-deep); height: 1.1rem; margin-top: .15rem; width: 1.1rem; }
.ai-instruction-actions { display: flex; flex-wrap: wrap; gap: .65rem; justify-content: flex-end; }
.ai-instruction-history__list { padding: 0 1rem 1.25rem; }
.ai-instruction-history__list > article { background: var(--paper); border-top: 1px solid var(--line); display: grid; gap: .75rem; padding: 1rem; }
.ai-instruction-history__list > article > header { align-items: baseline; display: flex; gap: 1rem; justify-content: space-between; }
.ai-instruction-history__list > article > header div { align-items: baseline; display: flex; gap: .75rem; }
.ai-instruction-history__list > article > header span { color: var(--teal-deep); font-size: .8rem; text-transform: uppercase; }
.ai-instruction-history__list time, .ai-instruction-history__list code { color: var(--muted); font-size: .8rem; }
.ai-instruction-history__list details summary { cursor: pointer; font-weight: 650; }
.ai-instruction-history__list details p { color: var(--muted); margin: .7rem 0 0; max-width: 82ch; overflow-wrap: anywhere; }
.ai-instruction-restore form { display: grid; gap: .75rem; margin-top: .75rem; }
.ai-instruction-restore label { align-items: start; display: grid; gap: .55rem; grid-template-columns: 1.2rem minmax(0, 1fr); }
.ai-instruction-restore button { justify-self: start; }
.admin-legal-warning { background: var(--ink); color: var(--paper); display: grid; gap: 1rem; grid-template-columns: minmax(12rem, .55fr) minmax(20rem, 1.45fr); margin-bottom: 1.5rem; padding: 1.25rem; }
.admin-legal-warning strong { color: var(--chartreuse); font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.admin-legal-warning p { color: rgba(255,255,255,.8); margin: 0; max-width: 72ch; }
.legal-document-composer { border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); }
.legal-document-composer > summary { color: var(--teal-deep); cursor: pointer; font-family: var(--display); font-size: 1.15rem; font-weight: 650; padding: 1rem 0; text-transform: uppercase; }
.legal-document-composer > summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.legal-document-composer[open] > summary { border-bottom: 1px solid var(--line); }
.legal-document-composer form, .legal-purpose-row form { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 1.25rem 0; }
.legal-document-composer label, .legal-purpose-row label { display: grid; gap: .45rem; min-width: 0; }
.legal-document-composer label > span:first-child, .legal-purpose-row label > span:first-child { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.legal-document-composer input, .legal-document-composer select, .legal-document-composer textarea, .legal-purpose-row input, .legal-purpose-row select, .legal-purpose-row textarea { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 3rem; padding: .7rem .8rem; width: 100%; }
.legal-document-composer textarea { min-height: 18rem; resize: vertical; }
.legal-purpose-row textarea { min-height: 7rem; resize: vertical; }
.legal-document-composer input:focus-visible, .legal-document-composer select:focus-visible, .legal-document-composer textarea:focus-visible, .legal-purpose-row input:focus-visible, .legal-purpose-row select:focus-visible, .legal-purpose-row textarea:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.legal-document-field--wide, .legal-purpose-field--wide { grid-column: 1 / -1; }
.legal-document-composer .legal-document-confirmation, .legal-purpose-row .legal-purpose-confirmation { align-items: start; display: flex; gap: .7rem; }
.legal-document-confirmation input, .legal-purpose-confirmation input { accent-color: var(--teal-deep); flex: 0 0 auto; height: 1.1rem; margin-top: .15rem; min-height: 0; padding: 0; width: 1.1rem; }
.legal-document-confirmation span, .legal-purpose-confirmation span { color: var(--ink) !important; font-size: 1rem !important; letter-spacing: 0 !important; max-width: 84ch; text-transform: none !important; }
.legal-document-actions { display: flex; gap: .7rem; justify-content: flex-end; }
.legal-document-ledger, .legal-purpose-ledger { border-top: 1px solid var(--ink); margin-top: 1.5rem; }
.legal-document-row { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem 1.5rem; grid-template-columns: minmax(16rem, 1fr) minmax(18rem, .8fr); padding: 1.25rem 0; }
.legal-document-row > div, .legal-purpose-row__identity { display: grid; gap: .25rem; min-width: 0; }
.legal-document-row > div > span, .legal-purpose-row__identity > span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.legal-document-row > div > strong, .legal-purpose-row__identity > strong { font-family: var(--display); font-size: 1.45rem; line-height: 1; overflow-wrap: anywhere; text-transform: uppercase; }
.legal-document-row small, .legal-purpose-row__identity p { color: var(--muted); margin: 0; overflow-wrap: anywhere; }
.legal-document-row dl, .legal-purpose-row dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.legal-document-row dl div, .legal-purpose-row dl div { border-left: 1px solid var(--line); display: grid; padding: .2rem .8rem; }
.legal-document-row dt, .legal-purpose-row dt { color: var(--muted); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.legal-document-row dd, .legal-purpose-row dd { align-self: end; margin: .45rem 0 0; overflow-wrap: anywhere; }
.legal-document-row code { background: var(--mineral); font-family: var(--body); font-size: .72rem; grid-column: 1 / -1; overflow-wrap: anywhere; padding: .7rem .8rem; }
.legal-purpose-row { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem 1.5rem; grid-template-columns: minmax(16rem, .8fr) minmax(22rem, 1.2fr); padding: 1.4rem 0; }
.legal-purpose-row dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.legal-purpose-row form { border-top: 1px solid var(--line); grid-column: 1 / -1; }
.admin-privacy-ledger { border-top: 2px solid var(--ink); }
.admin-privacy-empty { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem; grid-template-columns: minmax(12rem, .6fr) minmax(20rem, 1.4fr); padding: 1.5rem 0; }
.admin-privacy-empty strong { font-family: var(--display); font-size: 2rem; text-transform: uppercase; }
.admin-privacy-empty p { color: var(--muted); margin: 0; }
.admin-privacy-row { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem; grid-template-columns: minmax(13rem, .8fr) minmax(25rem, 1.2fr); padding: 1.4rem 0; }
.admin-privacy-row__identity { display: grid; gap: .2rem; min-width: 0; }
.admin-privacy-row__identity > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.admin-privacy-row__identity strong { font-family: var(--display); font-size: 2rem; line-height: 1; text-transform: uppercase; }
.admin-privacy-row__identity small { color: var(--muted); overflow-wrap: anywhere; }
.admin-privacy-row dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.admin-privacy-row dl div { border-left: 1px solid var(--line); display: grid; padding: .2rem .8rem; }
.admin-privacy-row dt, .admin-privacy-row label > span { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.admin-privacy-row dd { align-self: end; margin: .45rem 0 0; }
.admin-privacy-row__request { background: var(--mineral); grid-column: 1 / -1; padding: .8rem 1rem; }
.admin-privacy-row__request summary { color: var(--teal-deep); cursor: pointer; font-weight: 650; }
.admin-privacy-row__request p { margin: .7rem 0 0; max-width: 80ch; overflow-wrap: anywhere; }
.admin-privacy-row label { display: grid; gap: .45rem; }
.admin-privacy-row select, .admin-privacy-row textarea { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 3rem; padding: .7rem .8rem; width: 100%; }
.admin-privacy-row textarea { min-height: 6rem; resize: vertical; }
.admin-privacy-row select:focus-visible, .admin-privacy-row textarea:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.admin-privacy-row__summary, .admin-privacy-row__retention { grid-column: 1 / -1; }
.admin-privacy-row > .admin-save { grid-column: 2; justify-self: end; min-width: 11rem; }
.admin-privacy-row__closed { background: var(--mineral); grid-column: 1 / -1; padding: 1rem; }
.admin-privacy-row__closed strong { font-family: var(--display); text-transform: uppercase; }
.admin-privacy-row__closed p { margin: .35rem 0 0; }
.admin-governance-note { background: var(--ink); color: var(--paper); display: grid; gap: 1rem; grid-template-columns: minmax(12rem, .55fr) minmax(20rem, 1.45fr); margin-bottom: 1.5rem; padding: 1.25rem; }
.admin-governance-note strong { color: var(--chartreuse); font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.admin-governance-note p { margin: 0; max-width: 72ch; }
.retention-ledger, .legal-hold-ledger { border-top: 2px solid var(--ink); }
.retention-row { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem; grid-template-columns: minmax(13rem, .75fr) repeat(2, minmax(12rem, 1fr)); padding: 1.4rem 0; }
.retention-row__identity { display: grid; gap: .2rem; grid-row: span 2; min-width: 0; }
.retention-row__identity > span, .legal-hold-row > div > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.retention-row__identity strong, .legal-hold-row > div > strong { font-family: var(--display); font-size: 1.5rem; line-height: 1; text-transform: uppercase; }
.retention-row__identity small, .legal-hold-row > div > small { color: var(--muted); }
.retention-row label, .legal-hold-create label { display: grid; gap: .45rem; }
.retention-row label > span:first-child, .legal-hold-create label > span:first-child { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.retention-row input, .retention-row select, .retention-row textarea, .legal-hold-create input, .legal-hold-create select, .legal-hold-create textarea { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 3rem; padding: .7rem .8rem; width: 100%; }
.retention-row textarea, .legal-hold-create textarea { min-height: 6rem; resize: vertical; }
.retention-row input:focus-visible, .retention-row select:focus-visible, .retention-row textarea:focus-visible, .legal-hold-create input:focus-visible, .legal-hold-create select:focus-visible, .legal-hold-create textarea:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.retention-duration { align-items: center; display: grid; grid-template-columns: 1fr auto; }
.retention-duration input { border-radius: 12px 0 0 12px; }
.retention-duration b { align-items: center; background: var(--mineral); border: 1px solid var(--line); border-left: 0; border-radius: 0 12px 12px 0; display: flex; min-height: 3rem; padding: .7rem .8rem; }
.retention-row__wide, .retention-row__confirmation, .retention-row__actions { grid-column: 2 / -1; }
.retention-row .retention-row__confirmation, .legal-hold-create .legal-hold-create__confirmation { align-items: start; display: flex; gap: .7rem; }
.retention-row__confirmation input, .legal-hold-create__confirmation input { accent-color: var(--teal-deep); flex: 0 0 auto; height: 1.1rem; margin-top: .15rem; min-height: 0; padding: 0; width: 1.1rem; }
.retention-row__confirmation span, .legal-hold-create__confirmation span { color: var(--ink) !important; font-size: 1rem !important; letter-spacing: 0 !important; text-transform: none !important; }
.retention-row__actions { display: flex; gap: .7rem; justify-content: flex-end; }
.admin-save--secondary { background: transparent; border: 1px solid var(--ink); color: var(--ink); }
.admin-save--secondary:hover { background: var(--ink); color: var(--paper); }
.admin-subsection-head { display: grid; gap: .5rem; grid-template-columns: minmax(13rem, .7fr) minmax(22rem, 1.3fr); margin: 3rem 0 1rem; }
.admin-subsection-head h3 { font-family: var(--display); font-size: 2rem; line-height: 1; margin: 0; text-transform: uppercase; }
.admin-subsection-head p { color: var(--muted); margin: 0; }
.legal-hold-create { border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 1.25rem 0; }
.legal-hold-create__wide, .legal-hold-create__confirmation { grid-column: 1 / -1; }
.legal-hold-create > .admin-save { grid-column: 2; justify-self: end; }
.legal-hold-row { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem 1.5rem; grid-template-columns: minmax(13rem, .7fr) minmax(24rem, 1.3fr) auto; padding: 1.3rem 0; }
.legal-hold-row > div { display: grid; gap: .2rem; }
.legal-hold-row dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.legal-hold-row dl div { border-left: 1px solid var(--line); display: grid; padding: .2rem .8rem; }
.legal-hold-row dt { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.legal-hold-row dd { margin: .45rem 0 0; }
.legal-hold-row > p { background: var(--mineral); grid-column: 1 / -1; margin: 0; padding: .8rem 1rem; }
.legal-hold-row > form { align-self: center; }
.execution-simulation { align-items: end; border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); display: grid; gap: 1rem; grid-template-columns: minmax(18rem, 1fr) minmax(20rem, 1.2fr) auto; padding: 1.25rem 0; }
.execution-simulation label { display: grid; gap: .45rem; }
.execution-simulation label > span:first-child { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.execution-simulation select { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 3rem; padding: .7rem .8rem; width: 100%; }
.execution-simulation select:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.execution-simulation .execution-simulation__confirmation { align-items: start; display: flex; gap: .7rem; }
.execution-simulation__confirmation input { accent-color: var(--teal-deep); flex: 0 0 auto; height: 1.1rem; margin-top: .15rem; width: 1.1rem; }
.execution-simulation__confirmation span { color: var(--ink) !important; font-size: 1rem !important; letter-spacing: 0 !important; text-transform: none !important; }
.procedure-subsection-head { scroll-margin-top: 1rem; }
.procedure-empty { border-top: 2px solid var(--ink); }
.procedure-composer { border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); }
.procedure-composer > summary { color: var(--teal-deep); cursor: pointer; font-family: var(--display); font-size: 1.15rem; font-weight: 650; padding: 1rem 0; text-transform: uppercase; }
.procedure-composer > summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.procedure-composer[open] > summary { border-bottom: 1px solid var(--line); }
.procedure-composer form { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 1.25rem 0; }
.procedure-composer label { display: grid; gap: .45rem; }
.procedure-composer label > span:first-child { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.procedure-composer input, .procedure-composer select, .procedure-composer textarea { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 3rem; padding: .7rem .8rem; width: 100%; }
.procedure-composer textarea { min-height: 7rem; resize: vertical; }
.procedure-composer input:focus-visible, .procedure-composer select:focus-visible, .procedure-composer textarea:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.procedure-field--wide { grid-column: 1 / -1; }
.procedure-composer .procedure-confirmation { align-items: start; display: flex; gap: .7rem; }
.procedure-confirmation input { accent-color: var(--teal-deep); flex: 0 0 auto; height: 1.1rem; margin-top: .15rem; min-height: 0; padding: 0; width: 1.1rem; }
.procedure-confirmation span { color: var(--ink) !important; font-size: 1rem !important; letter-spacing: 0 !important; max-width: 82ch; text-transform: none !important; }
.procedure-actions { display: flex; gap: .7rem; justify-content: flex-end; }
.procedure-ledger { border-top: 1px solid var(--ink); margin-top: 1.5rem; }
.procedure-row { border-bottom: 1px solid var(--ink); padding: 1.4rem 0; }
.procedure-row > header { align-items: start; display: flex; gap: 2rem; justify-content: space-between; }
.procedure-row > header > div { display: grid; gap: .2rem; }
.procedure-row > header span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.procedure-row > header strong { font-family: var(--display); font-size: 1.55rem; line-height: 1; text-transform: uppercase; }
.procedure-row > header small { color: var(--muted); }
.procedure-status { background: var(--mineral); border: 1px solid var(--line); font-family: var(--display); padding: .45rem .65rem; text-transform: uppercase; }
.procedure-status--approved { background: var(--chartreuse); border-color: var(--ink); }
.procedure-row > p { color: var(--muted); margin: 1rem 0; max-width: 90ch; }
.procedure-row > dl { border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.procedure-row > dl div { border-left: 1px solid var(--line); padding: .9rem; }
.procedure-row > dl div:first-child { border-left: 0; padding-left: 0; }
.procedure-row dt { color: var(--muted); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.procedure-row dd { font-size: .9rem; margin: .35rem 0 0; }
.procedure-row > details { border-top: 1px solid var(--line); padding: .9rem 0; }
.procedure-row > details summary { color: var(--teal-deep); cursor: pointer; font-weight: 650; }
.procedure-row > details summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.procedure-row ol { display: grid; gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style-position: inside; margin: .8rem 0 0; padding: 0; }
.procedure-row li { border-bottom: 1px solid var(--line); display: grid; gap: .2rem; padding: .75rem .75rem .75rem 0; }
.procedure-row li:nth-child(even) { border-left: 1px solid var(--line); padding-left: .75rem; }
.procedure-row li strong { font-size: .9rem; }
.procedure-row li span { color: var(--muted); font-size: .82rem; }
.procedure-row > footer { align-items: start; border-top: 1px solid var(--line); color: var(--muted); display: flex; font-size: .78rem; gap: 1rem; justify-content: space-between; padding-top: .8rem; }
.procedure-row > footer span { max-width: 70ch; overflow-wrap: anywhere; }
.procedure-row > footer code { font-family: inherit; white-space: nowrap; }
.readiness-subsection-head { scroll-margin-top: 1rem; }
.readiness-ledger { border-top: 2px solid var(--ink); margin-top: 1rem; }
.readiness-row { border-bottom: 1px solid var(--ink); padding: 1.4rem 0; }
.readiness-row > header { align-items: start; display: flex; gap: 2rem; justify-content: space-between; }
.readiness-row > header > div { display: grid; gap: .2rem; min-width: 0; }
.readiness-row > header span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.readiness-row > header strong { font-family: var(--display); font-size: 1.55rem; line-height: 1; text-transform: uppercase; }
.readiness-row > header small { color: var(--muted); }
.readiness-status { background: var(--mineral); border: 1px solid var(--line); flex: 0 0 auto; font-family: var(--display); padding: .45rem .65rem; text-transform: uppercase; }
.readiness-status--blocked { background: #fff0ee; border-color: #e4a8a0; color: var(--danger); }
.readiness-status--awaiting_evidence { background: var(--chartreuse); border-color: var(--ink); }
.readiness-status--ready_for_authorization { background: #e5f4ef; border-color: var(--teal-deep); color: var(--teal-deep); }
.readiness-row > dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 1rem 0; }
.readiness-row > dl div { border-left: 1px solid var(--line); display: grid; gap: .25rem; padding: .2rem .8rem; }
.readiness-row > dl div:first-child { border-left: 0; padding-left: 0; }
.readiness-row dt { color: var(--muted); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.readiness-row dd { font-family: var(--display); font-size: 1.3rem; margin: 0; }
.readiness-row > details { border-top: 1px solid var(--line); padding: .9rem 0; }
.readiness-row > details summary { color: var(--teal-deep); cursor: pointer; font-weight: 650; }
.readiness-row > details summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.readiness-row ol { list-style: none; margin: .8rem 0 0; padding: 0; }
.readiness-result { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: minmax(16rem, .8fr) minmax(24rem, 1.2fr); padding: .8rem 0; }
.readiness-result > div { display: grid; gap: .2rem; }
.readiness-result strong { font-size: .92rem; }
.readiness-result span { color: var(--muted); font-size: .78rem; }
.readiness-result p { color: var(--muted); margin: 0; }
.readiness-result--passed strong { color: var(--teal-deep); }
.readiness-result--blocked strong { color: var(--danger); }
.readiness-result--evidence_required strong { color: var(--ink); }
.authorization-ledger { border-top: 2px solid var(--ink); margin-top: 1rem; }
.authorization-ledger > header { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: minmax(16rem, .8fr) minmax(20rem, 1.2fr); padding: 1rem 0; }
.authorization-ledger > header > div { display: grid; gap: .2rem; }
.authorization-ledger > header span, .authorization-decision header span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.authorization-ledger > header strong, .authorization-decision header strong { font-family: var(--display); font-size: 1.2rem; line-height: 1; text-transform: uppercase; }
.authorization-ledger > header p { color: var(--muted); margin: 0; }
.authorization-evidence-row { border-bottom: 1px solid var(--line); padding: 1rem 0; }
.authorization-evidence-row > header { align-items: start; display: flex; gap: 1rem; justify-content: space-between; }
.authorization-evidence-row > header > div { display: grid; gap: .2rem; }
.authorization-evidence-row > header span { color: var(--muted); font-size: .82rem; max-width: 78ch; }
.authorization-evidence-row > header b, .authorization-decision > header > b { flex: 0 0 auto; font-family: var(--display); font-size: .8rem; letter-spacing: .05em; text-transform: uppercase; }
.authorization-evidence-row > dl { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(12rem, .6fr); margin: .8rem 0; }
.authorization-evidence-row > dl div { border-left: 1px solid var(--line); padding: 0 .8rem; }
.authorization-evidence-row > dl div:first-child { border-left: 0; padding-left: 0; }
.authorization-evidence-row dt { color: var(--muted); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.authorization-evidence-row dd { font-family: inherit; font-size: .88rem; line-height: 1.45; margin: .3rem 0 0; overflow-wrap: anywhere; }
.authorization-evidence-row > small, .authorization-decision > small { color: var(--muted); display: block; overflow-wrap: anywhere; }
.authorization-evidence-form, .authorization-decision-form { display: grid; gap: .8rem 1rem; grid-template-columns: minmax(0, 1.2fr) minmax(14rem, .8fr); margin-top: 1rem; }
.authorization-evidence-form label, .authorization-decision-form label { display: grid; gap: .4rem; }
.authorization-evidence-form label > span:first-child, .authorization-decision-form label > span:first-child { color: var(--muted); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.authorization-evidence-form input, .authorization-evidence-form select, .authorization-evidence-form textarea, .authorization-decision-form select, .authorization-decision-form textarea { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 3rem; padding: .7rem .8rem; width: 100%; }
.authorization-evidence-form textarea, .authorization-decision-form textarea { resize: vertical; }
.authorization-evidence-form input:focus-visible, .authorization-evidence-form select:focus-visible, .authorization-evidence-form textarea:focus-visible, .authorization-decision-form select:focus-visible, .authorization-decision-form textarea:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.operator-field--wide { grid-column: 1 / -1; }
.operator-communication-copy { color: var(--muted); margin: .2rem 0 .8rem; max-width: 86ch; }
.authorization-confirm { align-items: start; display: flex !important; gap: .65rem; grid-column: 1 / -1; }
.authorization-confirm input { accent-color: var(--teal-deep); background: transparent; border: 0; border-radius: 0; flex: 0 0 auto; height: 1.1rem; margin-top: .15rem; min-height: 0; padding: 0; width: 1.1rem; }
.authorization-confirm span { color: var(--ink) !important; font-size: .88rem !important; letter-spacing: 0 !important; max-width: 80ch; text-transform: none !important; }
.authorization-evidence-form button, .authorization-decision-form button { justify-self: end; }
.authorization-decision { background: var(--mineral); border-bottom: 1px solid var(--ink); padding: 1rem; }
.authorization-decision > header { align-items: start; display: flex; gap: 1rem; justify-content: space-between; }
.authorization-decision > header > div { display: grid; gap: .2rem; }
.authorization-decision > p { color: var(--muted); margin: .8rem 0; max-width: 86ch; }
.authorization-decision__status--authorize { color: var(--teal-deep); }
.authorization-decision__status--deny, .authorization-decision__status--stale { color: var(--danger); }
.readiness-row > footer { align-items: start; color: var(--muted); display: flex; font-size: .78rem; gap: 1rem; justify-content: space-between; padding-top: .8rem; }
.readiness-row > footer code { font-family: inherit; white-space: nowrap; }
.execution-plan-ledger { border-top: 1px solid var(--ink); margin-top: 2rem; }
.execution-plan { border-bottom: 1px solid var(--ink); padding: 1.5rem 0; }
.execution-plan__head { align-items: start; display: flex; gap: 2rem; justify-content: space-between; }
.execution-plan__head > div { display: grid; gap: .2rem; }
.execution-plan__head span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.execution-plan__head strong { font-family: var(--display); font-size: 1.5rem; line-height: 1; text-transform: uppercase; }
.execution-plan__head small { color: var(--muted); overflow-wrap: anywhere; }
.execution-state { background: var(--mineral); border: 1px solid var(--line); font-family: var(--display); padding: .45rem .65rem; text-transform: uppercase; }
.execution-state--preservation_review, .execution-state--requires_mapping { background: var(--chartreuse); border-color: var(--ink); }
.execution-plan__summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 1.25rem 0; }
.execution-plan__summary div { border-left: 1px solid var(--line); display: grid; gap: .3rem; padding: .2rem .8rem; }
.execution-plan__summary div:first-child { border-left: 0; padding-left: 0; }
.execution-plan__summary dt { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.execution-plan__summary dd { font-family: var(--display); font-size: 1.35rem; margin: 0; }
.execution-plan__summary code { font-family: inherit; font-size: 1rem; }
.execution-items { border-top: 2px solid var(--ink); }
.execution-item { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: .6rem 1rem; grid-template-columns: minmax(17rem, 1.35fr) minmax(8rem, .5fr) minmax(8rem, .5fr) minmax(11rem, .65fr); padding: 1rem 0; }
.execution-item > div { display: grid; gap: .2rem; }
.execution-item > div strong { font-size: 1.1rem; }
.execution-item > div small { color: var(--teal-deep); font-family: var(--display); text-transform: uppercase; }
.execution-item > span, .execution-item > b { font-variant-numeric: tabular-nums; }
.execution-item > b { font-family: var(--display); text-transform: uppercase; }
.execution-procedure-state { color: var(--muted); font-size: .78rem; font-weight: 650; }
.execution-procedure-state.is-approved { color: var(--teal-deep); }
.execution-item > p { color: var(--muted); grid-column: 1 / -1; margin: 0; max-width: 90ch; }
.execution-item details { grid-column: 1 / -1; }
.execution-item summary { color: var(--teal-deep); cursor: pointer; font-weight: 650; }
.execution-item details p { background: var(--mineral); margin: .6rem 0 0; overflow-wrap: anywhere; padding: .7rem .8rem; }
.readiness-assessment-form { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 1rem; grid-column: 1 / -1; justify-content: space-between; padding-top: .8rem; }
.readiness-assessment-form label { align-items: start; color: var(--muted); display: flex; gap: .65rem; max-width: 68ch; }
.readiness-assessment-form input[type="checkbox"] { accent-color: var(--teal-deep); flex: 0 0 auto; height: 1.1rem; margin-top: .15rem; width: 1.1rem; }
.readiness-assessment-form button { flex: 0 0 auto; }
.reversible-execution-section { scroll-margin-top: 1rem; }
.reversible-executor-state { align-items: start; border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); display: grid; gap: 2rem; grid-template-columns: minmax(16rem, .75fr) minmax(22rem, 1.25fr); padding: 1rem 0; }
.reversible-executor-state > div { display: grid; gap: .25rem; }
.reversible-executor-state span, .reversible-candidate-ledger > header span, .active-restriction-ledger > header span, .reversible-run-ledger > header span, .reversible-candidate-row > div > span, .active-restriction-row > div > span { color: var(--teal-deep); font-family: var(--display); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.reversible-executor-state strong, .reversible-candidate-ledger > header strong, .active-restriction-ledger > header strong, .reversible-run-ledger > header strong { font-family: var(--display); font-size: 1.45rem; line-height: 1; text-transform: uppercase; }
.reversible-executor-state p, .reversible-candidate-ledger > header p, .active-restriction-ledger > header p { color: var(--muted); margin: 0; max-width: 78ch; }
.reversible-executor-state--disabled strong { color: var(--danger); }
.reversible-executor-state--enabled strong { color: var(--teal-deep); }
.reversible-candidate-ledger, .active-restriction-ledger, .reversible-run-ledger { border-top: 1px solid var(--ink); margin-top: 2rem; }
.reversible-candidate-ledger > header, .active-restriction-ledger > header, .reversible-run-ledger > header { display: grid; gap: .25rem; grid-template-columns: minmax(12rem, .6fr) minmax(16rem, .8fr) minmax(20rem, 1.6fr); padding: 1rem 0; }
.reversible-candidate-row { border-top: 1px solid var(--line); display: grid; gap: 1rem 1.5rem; grid-template-columns: minmax(15rem, .75fr) minmax(24rem, 1.25fr); padding: 1.2rem 0; }
.reversible-candidate-row > div, .active-restriction-row > div { display: grid; gap: .25rem; min-width: 0; }
.reversible-candidate-row > div > strong, .active-restriction-row > div > strong { font-family: var(--display); font-size: 1.35rem; line-height: 1; text-transform: uppercase; }
.reversible-candidate-row > div > small, .active-restriction-row > div > small { color: var(--muted); overflow-wrap: anywhere; }
.reversible-candidate-row dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.reversible-candidate-row dl div { border-left: 1px solid var(--line); padding: .2rem .75rem; }
.reversible-candidate-row dt { color: var(--muted); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.reversible-candidate-row dd { margin: .35rem 0 0; }
.reversible-candidate-row__note { color: var(--muted); grid-column: 1 / -1; margin: 0; }
.reversible-action-form, .reversible-release-form { border-top: 1px solid var(--line); display: grid; gap: .8rem 1rem; grid-column: 1 / -1; grid-template-columns: minmax(14rem, .6fr) minmax(22rem, 1.4fr); padding-top: 1rem; }
.reversible-action-form > label:not(.authorization-confirm), .reversible-release-form > label:not(.authorization-confirm) { display: grid; gap: .4rem; }
.reversible-action-form label > span:first-child, .reversible-release-form label > span:first-child { color: var(--muted); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.reversible-action-form input[type="text"], .reversible-release-form input[type="text"], .reversible-release-form textarea { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 3rem; padding: .7rem .8rem; width: 100%; }
.reversible-action-form input:focus-visible, .reversible-release-form input:focus-visible, .reversible-release-form textarea:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.reversible-action-form button, .reversible-release-form button { justify-self: end; }
.active-restriction-row { border-top: 1px solid var(--line); padding: 1.2rem 0; }
.reversible-run-ledger > header { grid-template-columns: minmax(12rem, .6fr) minmax(16rem, 2.4fr); }
.reversible-run-ledger > p { border-top: 1px solid var(--line); color: var(--muted); margin: 0; padding: 1rem 0; }
.reversible-run-row { border-top: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: minmax(18rem, 1fr) auto minmax(18rem, 1fr); padding: .9rem 0; }
.reversible-run-row span { color: var(--teal-deep); font-family: var(--display); text-transform: uppercase; }
.reversible-run-row small { color: var(--muted); overflow-wrap: anywhere; text-align: right; }
.admin-access-state { background-color: var(--mineral); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='1' cy='1' r='1' fill='%23101b4d' fill-opacity='.12'/%3E%3C/svg%3E"); display: flex; flex-direction: column; min-height: 100svh; padding: clamp(1.5rem, 6vw, 6rem); }
.admin-access-state .brand { align-self: flex-start; text-decoration: none; }
.admin-access-state__copy { margin: auto 0; max-width: 50rem; }
.admin-access-state h1 { font-family: var(--display); font-size: clamp(3.7rem, 9vw, 5.35rem); letter-spacing: -.035em; line-height: .84; margin: .7rem 0 1.25rem; text-transform: uppercase; }
.admin-access-state p { color: var(--muted); font-size: 1.1rem; margin: 0 0 2rem; max-width: 58ch; }

@media (max-width: 1600px) {
    .budget-row { grid-template-columns: 1.15fr .8fr .8fr .8fr auto auto; }
    .budget-row__equivalence, .budget-row__usage { display: none; }
    .budget-row .admin-switch { grid-column: 5; }
    .budget-row .admin-save { grid-column: 6; }
}

@media (max-width: 1350px) {
    .admin-shell { grid-template-columns: 15rem minmax(0, 1fr); }
    .admin-account-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .admin-account-filters__search { grid-column: 1 / -1; }
    .billing-price-row { grid-template-columns: 1fr; }
    .billing-price-form { grid-template-columns: minmax(8rem, 1fr) minmax(8rem, 1fr) auto minmax(9rem, auto); }
    .budget-row { grid-template-columns: 1.15fr .8fr .8fr .8fr auto auto; }
    .budget-row__equivalence, .budget-row__usage { display: none; }
    .budget-row .admin-switch { grid-column: 5; }
    .budget-row .admin-save { grid-column: 6; }
    .provider-row { grid-template-columns: .8fr 1fr 1.3fr auto; }
    .provider-row .admin-switch { grid-column: 3; }
    .provider-row .admin-save { grid-column: 4; }
}

@media (max-width: 900px) {
    .admin-shell { display: block; }
    .admin-rail { min-height: auto; padding: 1rem; position: static; }
    .admin-rail__coordinate, .admin-rail .admin-rail__navigation, .admin-rail__identity { display: none; }
    .admin-mobile-navigation { border-top: 1px solid rgba(255,255,255,.25); display: block; margin-top: .9rem; }
    .admin-mobile-navigation summary { color: var(--chartreuse); cursor: pointer; font-family: var(--display); font-size: .78rem; letter-spacing: .08em; padding: .85rem .2rem .25rem; text-transform: uppercase; }
    .admin-mobile-navigation summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
    .admin-mobile-navigation nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: .45rem; }
    .admin-mobile-navigation nav a { min-width: 0; overflow-wrap: anywhere; }
    .admin-rail__exit { position: absolute; right: 1rem; top: 1.25rem; }
    .admin-heading, .admin-section__head { grid-template-columns: 1fr; }
    .admin-heading { gap: 2rem; }
    .admin-summary { max-width: 34rem; }
    .billing-price-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .billing-price-form .admin-save { width: 100%; }
    .budget-row, .provider-row { align-items: stretch; grid-template-columns: 1fr 1fr; padding: 1.5rem .25rem; }
    .budget-row__plan, .provider-row__identity { grid-column: 1 / -1; }
    .budget-row__equivalence, .budget-row__usage { display: grid; }
    .budget-row .admin-switch, .budget-row .admin-save, .provider-row .admin-switch, .provider-row .admin-save { grid-column: auto; }
    .admin-method-note { grid-template-columns: 1fr; }
    .login-protection-control { grid-template-columns: 1fr; }
    .login-protection-control form { justify-self: start; }
    .login-protection-boundary { grid-template-columns: 1fr; }
    .ai-instruction-group > header, .ai-instruction-row__identity { grid-template-columns: 1fr; }
    .admin-legal-warning { grid-template-columns: 1fr; }
    .legal-document-row, .legal-purpose-row { grid-template-columns: 1fr; }
    .legal-document-row dl div:first-child, .legal-purpose-row dl div:first-child { border-left: 0; padding-left: 0; }
    .admin-privacy-row { grid-template-columns: 1fr; }
    .admin-privacy-row > .admin-save { grid-column: 1; }
    .admin-governance-note, .admin-subsection-head { grid-template-columns: 1fr; }
    .retention-row { grid-template-columns: 1fr 1fr; }
    .retention-row__identity { grid-column: 1 / -1; grid-row: auto; }
    .retention-row__wide, .retention-row__confirmation, .retention-row__actions { grid-column: 1 / -1; }
    .legal-hold-row { grid-template-columns: 1fr; }
    .legal-hold-row > form { justify-self: end; }
    .execution-simulation { align-items: stretch; grid-template-columns: 1fr; }
    .execution-simulation > .admin-save { justify-self: end; }
    .procedure-row > dl { grid-template-columns: 1fr; }
    .procedure-row > dl div, .procedure-row > dl div:first-child { border-left: 0; border-top: 1px solid var(--line); padding: .75rem 0; }
    .execution-item { grid-template-columns: minmax(14rem, 1fr) auto; }
    .execution-item > b { grid-column: 2; }
    .execution-procedure-state { grid-column: 1 / -1; }
    .readiness-result { grid-template-columns: minmax(14rem, .8fr) minmax(18rem, 1.2fr); }
    .reversible-executor-state, .reversible-candidate-row { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .admin-rail .brand__tagline { display: none; }
    .admin-heading { padding-block: 1.5rem; }
    .admin-heading h1 { font-size: 2.8rem; line-height: .88; }
    .admin-heading p { font-size: .9rem; line-height: 1.45; }
    .admin-summary { display: grid; grid-template-columns: 1fr 1fr 1fr; }
    .admin-summary div { align-items: flex-start; border-bottom: 0; border-right: 1px solid var(--line); flex-direction: column; gap: .15rem; justify-content: flex-start; padding: .65rem .5rem; }
    .admin-summary div:last-child { border-right: 0; }
    .admin-summary dt { font-size: .65rem; line-height: 1.25; }
    .admin-summary dd { font-size: .9rem; line-height: 1.2; }
    .admin-section { padding: 2rem 1rem; }
    .admin-section__head { gap: 1rem; }
    .admin-section h2 { font-size: 2.35rem; }
    .admin-account-filters { grid-template-columns: 1fr; }
    .admin-account-filters__search { grid-column: auto; }
    .admin-account-filters .admin-save, .admin-account-filters__clear { width: 100%; }
    .admin-account-row, .admin-inventory-empty { grid-template-columns: 1fr; }
    .admin-account-row dl { grid-template-columns: 1fr; }
    .admin-account-row dl div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .admin-account-actions { align-items: stretch; grid-template-columns: 1fr; }
    .admin-account-actions .admin-save { width: 100%; }
    .admin-account-pagination { align-items: stretch; flex-direction: column; }
    .admin-account-pagination > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-account-pagination a { width: 100%; }
    .admin-tool-row { grid-template-columns: 2.5rem minmax(0, 1fr); }
    .admin-tool-row code { grid-column: 2; justify-self: start; }
    .login-protection-section .admin-section__head > div { align-items: flex-start; flex-direction: column; gap: .45rem; }
    .chat-simple-continuation { align-items: start; grid-template-columns: 1fr; }
    .ai-instruction-group { margin-top: 2.5rem; }
    .ai-instruction-group > header { gap: .6rem; }
    .ai-instruction-row__identity dl { grid-template-columns: 1fr; }
    .ai-instruction-row__identity dl div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .ai-instruction-actions { align-items: stretch; flex-direction: column; }
    .ai-instruction-actions button, .ai-instruction-restore button { justify-self: stretch; width: 100%; }
    .ai-instruction-history__list > article > header { align-items: flex-start; flex-direction: column; gap: .35rem; }
    .billing-price-form { grid-template-columns: 1fr; }
    .billing-price-form .admin-save { justify-self: stretch; width: 100%; }
    .budget-row, .provider-row { grid-template-columns: 1fr; }
    .budget-row__plan, .provider-row__identity { grid-column: auto; }
    .admin-save { min-height: 3rem; }
    .login-protection-control form, .login-protection-control .admin-save { width: 100%; }
    .legal-document-composer form, .legal-purpose-row form { grid-template-columns: 1fr; }
    .legal-document-field--wide, .legal-purpose-field--wide { grid-column: 1; }
    .legal-document-actions { align-items: stretch; flex-direction: column; }
    .legal-document-actions button, .legal-purpose-row .admin-save { width: 100%; }
    .legal-document-row dl, .legal-purpose-row dl { grid-template-columns: 1fr; }
    .legal-document-row dl div, .legal-purpose-row dl div, .legal-document-row dl div:first-child, .legal-purpose-row dl div:first-child { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .admin-privacy-empty, .admin-privacy-row dl { grid-template-columns: 1fr; }
    .admin-privacy-row dl div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .admin-privacy-row > .admin-save { justify-self: stretch; width: 100%; }
    .retention-row, .legal-hold-create { grid-template-columns: 1fr; }
    .retention-row__wide, .retention-row__confirmation, .retention-row__actions, .legal-hold-create__wide, .legal-hold-create__confirmation, .legal-hold-create > .admin-save { grid-column: 1; }
    .retention-row__actions { align-items: stretch; flex-direction: column; }
    .retention-row__actions button, .legal-hold-create > .admin-save, .legal-hold-row > form, .legal-hold-row > form button { width: 100%; }
    .legal-hold-row dl { grid-template-columns: 1fr; }
    .legal-hold-row dl div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .legal-hold-row > form { justify-self: stretch; }
    .execution-simulation > .admin-save { justify-self: stretch; width: 100%; }
    .procedure-composer form { grid-template-columns: 1fr; }
    .procedure-field--wide { grid-column: 1; }
    .procedure-actions { align-items: stretch; flex-direction: column; }
    .procedure-actions button { width: 100%; }
    .procedure-row > header { align-items: stretch; flex-direction: column; gap: .8rem; }
    .procedure-status { align-self: flex-start; }
    .procedure-row ol { grid-template-columns: 1fr; }
    .procedure-row li:nth-child(even) { border-left: 0; padding-left: 0; }
    .procedure-row > footer { flex-direction: column; }
    .procedure-row > footer code { white-space: normal; }
    .execution-plan__head { align-items: stretch; flex-direction: column; gap: .8rem; }
    .execution-state { align-self: flex-start; }
    .execution-plan__summary { grid-template-columns: 1fr 1fr; }
    .execution-plan__summary div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .execution-item { grid-template-columns: 1fr; }
    .execution-item > b, .execution-item > p, .execution-item details { grid-column: 1; }
    .readiness-row > header, .readiness-row > footer { align-items: stretch; flex-direction: column; gap: .8rem; }
    .readiness-status { align-self: flex-start; }
    .readiness-row > dl { grid-template-columns: 1fr 1fr; }
    .readiness-row > dl div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .readiness-result { grid-template-columns: 1fr; }
    .authorization-ledger > header { grid-template-columns: 1fr; }
    .authorization-evidence-row > header, .authorization-decision > header { align-items: stretch; flex-direction: column; }
    .authorization-evidence-row > dl, .authorization-evidence-form, .authorization-decision-form { grid-template-columns: 1fr; }
    .authorization-evidence-row > dl div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .authorization-evidence-form button, .authorization-decision-form button { justify-self: stretch; width: 100%; }
    .readiness-row > footer code { white-space: normal; }
    .readiness-assessment-form { align-items: stretch; flex-direction: column; }
    .readiness-assessment-form button { width: 100%; }
    .reversible-candidate-ledger > header, .active-restriction-ledger > header, .reversible-run-ledger > header, .reversible-action-form, .reversible-release-form, .reversible-run-row { grid-template-columns: 1fr; }
    .reversible-candidate-row dl { grid-template-columns: 1fr; }
    .reversible-candidate-row dl div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .reversible-action-form button, .reversible-release-form button { justify-self: stretch; width: 100%; }
    .reversible-run-row small { text-align: left; }
}

/* Minha IA: preferências explícitas e memória controlada */
.personalization-main { min-width: 0; overflow-x: hidden; }
.personalization-topbar > strong { font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.settings-subnav { align-items: stretch; background: var(--paper); border-bottom: 1px solid var(--ink); display: flex; gap: 0; min-height: 3.4rem; padding: 0 clamp(1.5rem, 5vw, 5rem); }
.settings-subnav a { align-items: center; border-bottom: 3px solid transparent; color: var(--muted); display: inline-flex; font-family: var(--display); font-size: 1rem; justify-content: center; letter-spacing: .02em; padding: .8rem 1.2rem .65rem; text-decoration: none; text-transform: uppercase; }
.settings-subnav a:hover { color: var(--teal-deep); }
.settings-subnav a.is-current { border-bottom-color: var(--chartreuse); color: var(--ink); }
.settings-subnav--four a { flex: 1 1 0; }
.personalization-intro { align-items: end; background-color: var(--mineral); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='1' cy='1' r='1' fill='%23101b4d' fill-opacity='.12'/%3E%3C/svg%3E"); border-bottom: 1px solid var(--ink); display: grid; gap: 3rem; grid-template-columns: minmax(0, 1fr) minmax(15rem, 24rem); overflow: hidden; padding: clamp(3rem, 6vw, 6rem) clamp(1.5rem, 5vw, 5rem); position: relative; }
.personalization-intro::after { border: 1px solid rgba(31,165,138,.45); border-radius: 50%; content: ""; height: 23rem; pointer-events: none; position: absolute; right: 4%; top: -14rem; width: 34rem; }
.personalization-intro > div, .personalization-intro dl { position: relative; z-index: 1; }
.personalization-intro h1 { font-family: var(--display); font-size: clamp(3.7rem, 7vw, 5.35rem); letter-spacing: -.035em; line-height: .86; margin: 0 0 1.4rem; max-width: 10ch; text-transform: uppercase; }
.personalization-intro p { color: var(--muted); margin: 0; max-width: 66ch; }
.personalization-intro dl { border-top: 1px solid var(--ink); margin: 0; }
.personalization-intro dl div { align-items: baseline; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; padding: .8rem 0; }
.personalization-intro dt { color: var(--muted); font-size: .8rem; }
.personalization-intro dd { font-family: var(--display); font-size: 1.25rem; margin: 0; }
.personalization-section { background: var(--paper); padding: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 5vw, 5rem); }
.personalization-section + .personalization-section { border-top: 1px solid var(--ink); }
.personalization-section__head { align-items: end; display: grid; gap: 2.5rem; grid-template-columns: minmax(18rem, 1fr) minmax(18rem, .8fr); margin-bottom: 2rem; }
.personalization-section__head h2 { font-family: var(--display); font-size: clamp(2.7rem, 5vw, 4.7rem); letter-spacing: -.025em; line-height: .9; margin: 0; max-width: 12ch; text-transform: uppercase; }
.personalization-section__head p { color: var(--muted); margin: 0; max-width: 62ch; }
.personalization-form, .memory-add, .memory-ledger { border-top: 2px solid var(--ink); }
.personalization-fields, .preference-transect { border: 0; display: grid; gap: 1rem; margin: 0; padding: 1.5rem 0; }
.personalization-fields { grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 1fr) minmax(12rem, 1fr) 5rem; }
.personalization-fields legend, .preference-transect legend { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .1em; padding: 0; text-transform: uppercase; }
.personalization-fields label, .preference-transect label, .memory-add label, .memory-entry label, .memory-danger label { display: grid; min-width: 0; }
.personalization-fields label > span, .preference-transect label > span, .memory-add label > span, .memory-entry label > span, .memory-danger label > span { color: var(--muted); font-family: var(--display); font-size: .72rem; letter-spacing: .08em; margin-bottom: .3rem; text-transform: uppercase; }
.personalization-fields input, .preference-transect select, .memory-add select, .memory-add textarea, .memory-entry select, .memory-entry textarea, .memory-danger input { background: var(--mineral); border: 1px solid var(--muted); border-radius: 12px; color: var(--ink); min-height: 3rem; padding: .65rem .75rem; width: 100%; }
.personalization-fields input:focus, .preference-transect select:focus, .memory-add select:focus, .memory-add textarea:focus, .memory-entry select:focus, .memory-entry textarea:focus, .memory-danger input:focus { background: var(--paper); border-color: var(--teal); outline: 3px solid rgba(31,165,138,.16); }
.preference-transect { border-top: 1px solid var(--line); grid-template-columns: repeat(3, minmax(10rem, 1fr)); }
.memory-master-switch { align-items: center; border-top: 1px solid var(--ink); display: flex; gap: 2rem; justify-content: space-between; padding: 1.25rem 0; }
.memory-master-switch > label { align-items: center; cursor: pointer; display: grid; gap: .8rem; grid-template-columns: auto 1fr; }
.memory-master-switch input { accent-color: var(--teal-deep); height: 1.25rem; width: 1.25rem; }
.memory-master-switch label > span { display: grid; }
.memory-master-switch small { color: var(--muted); max-width: 70ch; }
.personalization-save, .memory-add button, .memory-entry button, .memory-danger button { background: var(--ink); border: 0; color: var(--paper); cursor: pointer; min-height: 3rem; padding: .7rem 1rem; }
.personalization-save:hover, .memory-add button:hover, .memory-entry button:hover { background: var(--teal-deep); }
.personalization-save[disabled], .memory-add button[disabled], .memory-entry button[disabled], .memory-danger button[disabled] { cursor: wait; opacity: .65; }
.memory-section { background: var(--mineral); }
.memory-add { align-items: end; display: grid; gap: 1rem; grid-template-columns: minmax(12rem, .7fr) minmax(20rem, 1.8fr) auto; padding: 1.5rem 0; }
.memory-add textarea, .memory-entry textarea { line-height: 1.45; min-height: 5rem; resize: vertical; }
.memory-add > p { color: var(--muted); font-size: .8rem; grid-column: 1 / -1; margin: 0; }
.memory-empty { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: .5rem 2rem; grid-template-columns: minmax(12rem, .6fr) minmax(20rem, 1.4fr); padding: 2rem 0; }
.memory-empty strong { font-family: var(--display); font-size: 1.5rem; text-transform: uppercase; }
.memory-empty p { color: var(--muted); margin: 0; }
.memory-entry { align-items: stretch; border-bottom: 1px solid var(--line); display: grid; gap: .7rem; grid-template-columns: minmax(0, 1fr) auto; padding: 1.25rem 0; }
.memory-entry > form:first-child { align-items: end; display: grid; gap: 1rem; grid-template-columns: minmax(12rem, .65fr) minmax(20rem, 1.7fr) auto; }
.memory-entry__content textarea { min-height: 4.3rem; }
.memory-forget { align-self: end; }
.memory-forget button { background: transparent; border: 1px solid var(--danger); color: var(--danger); }
.memory-forget button:hover { background: #fae0e0; }
.memory-danger { border-top: 1px solid var(--coral); margin-top: 3rem; max-width: 48rem; padding-top: 1rem; }
.memory-danger summary { color: var(--danger); cursor: pointer; font-weight: 600; }
.memory-danger form { display: grid; gap: 1rem; grid-template-columns: 1fr auto; padding-top: 1rem; }
.memory-danger p { color: var(--muted); grid-column: 1 / -1; margin: 0; }
.memory-danger button { align-self: end; background: var(--danger); }

/* Central de Privacidade: autonomia em linhas auditáveis */
.privacy-intro { padding-block: clamp(2.8rem, 5vw, 4.8rem); }
.privacy-intro h1 { max-width: 12ch; }
.privacy-coordinate, .privacy-step { color: var(--teal-deep) !important; font-family: var(--display); font-size: .78rem; letter-spacing: .11em; margin: 0 0 .8rem !important; text-transform: uppercase; }
.privacy-section:nth-of-type(even) { background: var(--mineral); }
.privacy-section .personalization-section__head { align-items: start; }
.privacy-data-ledger { border-top: 2px solid var(--ink); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.privacy-data-ledger div { border-bottom: 1px solid var(--line); min-width: 0; padding: 1.15rem 1rem 1.15rem 0; }
.privacy-data-ledger div:not(:nth-child(3n + 1)) { border-left: 1px solid var(--line); padding-left: 1rem; }
.privacy-data-ledger dt, .privacy-purpose-row dt { color: var(--muted); font-size: .72rem; letter-spacing: .07em; text-transform: uppercase; }
.privacy-data-ledger dd { font-family: var(--display); font-size: 1.22rem; margin: .28rem 0 0; overflow-wrap: anywhere; }
.privacy-inline-action { align-items: center; border-bottom: 1px solid var(--ink); display: flex; gap: 2rem; justify-content: space-between; padding: 1.25rem 0; }
.privacy-inline-action p { color: var(--muted); margin: 0; }
.privacy-inline-action a { align-items: center; background: var(--ink); color: var(--paper); display: inline-flex; flex: 0 0 auto; gap: 1rem; min-height: 3rem; padding: .65rem 1rem; text-decoration: none; }
.privacy-inline-action a:hover { background: var(--teal-deep); }
.privacy-purpose-ledger { border-top: 2px solid var(--ink); }
.privacy-purpose-row { border-bottom: 1px solid var(--ink); display: grid; gap: 2rem; grid-template-columns: minmax(18rem, 1.05fr) minmax(26rem, .95fr); padding: 1.4rem 0; }
.privacy-purpose-row__identity { min-width: 0; }
.privacy-purpose-row__identity > span, .privacy-control-ledger span { color: var(--teal-deep); font-family: var(--display); font-size: .7rem; letter-spacing: .09em; text-transform: uppercase; }
.privacy-purpose-row h3 { font-family: var(--display); font-size: 1.65rem; line-height: 1; margin: .35rem 0 .5rem; text-transform: uppercase; }
.privacy-purpose-row p { color: var(--muted); margin: 0; max-width: 68ch; }
.privacy-purpose-row dl { align-self: stretch; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.privacy-purpose-row dl div { border-left: 1px solid var(--line); display: grid; padding: .3rem .8rem; }
.privacy-purpose-row dd { align-self: end; font-size: .9rem; margin: .45rem 0 0; }
.privacy-review-status { color: var(--coral); font-weight: 600; }
.privacy-consent-action { align-items: start; background: var(--mineral); border-top: 1px solid var(--line); display: grid; gap: 1rem 1.5rem; grid-column: 1 / -1; grid-template-columns: minmax(15rem, .7fr) minmax(22rem, 1.3fr); padding: 1rem; }
.privacy-consent-action__state { display: grid; gap: .2rem; }
.privacy-consent-action__state span { color: var(--teal-deep); font-family: var(--display); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.privacy-consent-action__state strong { font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.privacy-consent-action__state p { color: var(--muted); margin: 0; }
.privacy-consent-document { background: var(--paper); border: 1px solid var(--line); min-width: 0; }
.privacy-consent-document summary { color: var(--teal-deep); cursor: pointer; font-weight: 600; padding: .8rem 1rem; }
.privacy-consent-document summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.privacy-consent-document > div { border-top: 1px solid var(--line); line-height: 1.65; max-height: 24rem; overflow: auto; overflow-wrap: anywhere; padding: 1rem; }
.privacy-consent-action > form { align-items: center; display: flex; gap: 1rem; grid-column: 1 / -1; justify-content: flex-end; }
.privacy-consent-grant label { align-items: start; display: flex; gap: .7rem; margin-right: auto; max-width: 64ch; }
.privacy-consent-grant input { accent-color: var(--teal-deep); flex: 0 0 auto; height: 1.2rem; margin-top: .15rem; width: 1.2rem; }
.privacy-consent-button { background: var(--ink); border: 0; color: var(--paper); cursor: pointer; min-height: 3rem; padding: .7rem 1rem; }
.privacy-consent-button:hover { background: var(--teal-deep); }
.privacy-consent-button--withdraw { background: transparent; border: 1px solid var(--ink); color: var(--ink); }
.privacy-consent-button--withdraw:hover { background: var(--ink); color: var(--paper); }
.privacy-legal-note { border-bottom: 1px solid var(--ink); color: var(--muted); display: grid; gap: .25rem; margin: 0; padding: 1.25rem 0; }
.privacy-legal-note strong { color: var(--ink); }
.privacy-control-ledger { border-top: 2px solid var(--ink); display: grid; grid-template-columns: 1fr 1fr; }
.privacy-control-ledger > a, .privacy-control-ledger > article { border-bottom: 1px solid var(--line); color: var(--ink); display: grid; gap: .45rem; min-height: 11rem; padding: 1.25rem 3rem 1.25rem 0; position: relative; text-decoration: none; }
.privacy-control-ledger > :nth-child(even) { border-left: 1px solid var(--line); padding-left: 1.25rem; }
.privacy-control-ledger strong { align-self: end; font-family: var(--display); font-size: 1.65rem; line-height: 1; text-transform: uppercase; }
.privacy-control-ledger p { color: var(--muted); margin: 0; max-width: 52ch; }
.privacy-control-ledger b { font-size: 1.5rem; font-weight: 400; position: absolute; right: 1rem; top: 1.1rem; }
.privacy-control-ledger > a:hover strong { color: var(--teal-deep); }
.privacy-control-ledger > article { background: rgba(202,214,207,.16); }
.privacy-control-ledger > article span { color: var(--muted); }
.privacy-export-section { scroll-margin-top: 1rem; }
.privacy-export-action { align-items: center; background: var(--ink); color: var(--paper); display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr) auto; padding: 1.25rem; }
.privacy-export-action strong { color: var(--chartreuse); font-family: var(--display); font-size: 2rem; text-transform: uppercase; }
.privacy-export-action p { color: rgba(255,255,255,.78); margin: .35rem 0 0; max-width: 68ch; }
.privacy-export-action form { margin: 0; }
.privacy-export-action button, .privacy-export-row__action a { align-items: center; background: var(--chartreuse); border: 0; color: var(--ink); cursor: pointer; display: inline-flex; font-weight: 600; justify-content: center; min-height: 3rem; padding: .7rem 1rem; text-decoration: none; }
.privacy-export-action button:hover, .privacy-export-row__action a:hover { background: var(--paper); }
.privacy-export-action button:focus-visible, .privacy-export-row__action a:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.privacy-export-action button[disabled] { background: var(--line); color: var(--muted); cursor: wait; }
.privacy-export-ledger { border-top: 2px solid var(--ink); margin-top: 1.5rem; }
.privacy-export-empty { border-bottom: 1px solid var(--ink); display: grid; gap: .3rem; grid-template-columns: minmax(14rem, .7fr) minmax(20rem, 1.3fr); padding: 1.5rem 0; }
.privacy-export-empty strong, .privacy-export-row__identity > strong { font-family: var(--display); font-size: 2rem; line-height: .94; text-transform: uppercase; }
.privacy-export-empty p, .privacy-export-row__identity p { color: var(--muted); margin: 0; }
.privacy-export-row { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem 1.5rem; grid-template-columns: minmax(13rem, .85fr) minmax(22rem, 1.2fr) minmax(10rem, auto); padding: 1.35rem 0; }
.privacy-export-row__identity { display: grid; gap: .25rem; min-width: 0; }
.privacy-export-row__identity > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.privacy-export-row dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.privacy-export-row dl div { border-left: 1px solid var(--line); display: grid; padding: .2rem .8rem; }
.privacy-export-row dt { color: var(--muted); font-size: .8rem; letter-spacing: .07em; text-transform: uppercase; }
.privacy-export-row dd { align-self: end; margin: .5rem 0 0; }
.privacy-export-row__action { align-items: center; display: flex; justify-content: flex-end; }
.privacy-export-row__action > span { color: var(--muted); font-size: .8rem; max-width: 22ch; text-align: right; }
.privacy-export-status { font-weight: 600; }
.privacy-export-status--completed { color: var(--teal-deep); }
.privacy-export-status--failed { color: var(--danger); }
.privacy-export-status--expired { color: var(--muted); }
.privacy-export-status--queued, .privacy-export-status--processing { color: var(--ink); }
.privacy-export-integrity { grid-column: 1 / -1; }
.privacy-export-integrity summary { color: var(--teal-deep); cursor: pointer; font-size: .8rem; font-weight: 600; }
.privacy-export-integrity code { background: var(--mineral); display: block; font-size: .8rem; margin-top: .55rem; overflow-wrap: anywhere; padding: .65rem; }
.privacy-export-note { color: var(--muted); margin: 1rem 0 0; max-width: 78ch; }
.privacy-export-note strong { color: var(--ink); }
.privacy-rights-section { scroll-margin-top: 1rem; }
.privacy-rights-form { border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); display: grid; gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.privacy-rights-form > label { display: grid; gap: .55rem; padding: 1rem 1rem 1rem 0; }
.privacy-rights-form > label:nth-of-type(2) { border-left: 1px solid var(--line); padding-left: 1rem; }
.privacy-rights-form label > span, .privacy-rights-form__intro strong, .privacy-rights-row__response > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .07em; text-transform: uppercase; }
.privacy-rights-form select, .privacy-rights-form textarea { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 3.25rem; padding: .8rem .9rem; width: 100%; }
.privacy-rights-form textarea { min-height: 8.5rem; resize: vertical; }
.privacy-rights-form select:focus-visible, .privacy-rights-form textarea:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.privacy-rights-form__intro { background: var(--ink); color: var(--paper); display: grid; gap: .35rem; grid-column: 1 / -1; grid-template-columns: minmax(13rem, .65fr) minmax(22rem, 1.35fr); padding: 1rem; }
.privacy-rights-form__intro strong { color: var(--chartreuse); font-size: 1rem; }
.privacy-rights-form__intro p { color: rgba(255,255,255,.78); margin: 0; max-width: 68ch; }
.privacy-rights-form__purpose, .privacy-rights-form__details, .privacy-rights-confirmation, .privacy-rights-form__submit { border-top: 1px solid var(--line); grid-column: 1 / -1; }
.privacy-rights-form__purpose small, .privacy-rights-form__details small { color: var(--muted); }
.privacy-rights-form .privacy-rights-confirmation { align-items: start; display: flex; gap: .75rem; padding: 1rem 0; }
.privacy-rights-confirmation input { accent-color: var(--teal-deep); flex: 0 0 auto; height: 1.15rem; margin-top: .08rem; width: 1.15rem; }
.privacy-rights-confirmation span { color: var(--ink) !important; font-family: inherit !important; font-size: 1rem !important; letter-spacing: 0 !important; max-width: 78ch; text-transform: none !important; }
.privacy-rights-form__submit { align-items: center; display: flex; justify-content: space-between; padding: 1rem 0; }
.privacy-rights-form__submit p { color: var(--muted); margin: 0; }
.privacy-rights-form__submit button, .privacy-rights-row__action button { background: var(--chartreuse); border: 0; color: var(--ink); cursor: pointer; font-weight: 650; min-height: 3rem; padding: .7rem 1rem; }
.privacy-rights-form__submit button:hover { background: var(--ink); color: var(--paper); }
.privacy-rights-form__submit button:focus-visible, .privacy-rights-row__action button:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.privacy-rights-form__submit button:disabled { background: var(--line); color: var(--muted); cursor: wait; }
.privacy-rights-ledger { border-top: 2px solid var(--ink); margin-top: 1.5rem; }
.privacy-rights-empty { border-bottom: 1px solid var(--ink); display: grid; gap: .3rem; grid-template-columns: minmax(14rem, .7fr) minmax(20rem, 1.3fr); padding: 1.5rem 0; }
.privacy-rights-empty strong, .privacy-rights-row__identity strong { font-family: var(--display); font-size: 2rem; line-height: .98; text-transform: uppercase; }
.privacy-rights-empty p, .privacy-rights-row__identity p { color: var(--muted); margin: 0; }
.privacy-rights-row { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem 1.5rem; grid-template-columns: minmax(13rem, .85fr) minmax(24rem, 1.4fr); padding: 1.35rem 0; }
.privacy-rights-row__identity { display: grid; gap: .25rem; min-width: 0; }
.privacy-rights-row__identity > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.privacy-rights-row dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.privacy-rights-row dl div { border-left: 1px solid var(--line); display: grid; padding: .2rem .8rem; }
.privacy-rights-row dt { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.privacy-rights-row dd { align-self: end; margin: .5rem 0 0; }
.privacy-rights-status { font-weight: 650; }
.privacy-rights-status--received, .privacy-rights-status--under_review, .privacy-rights-status--approved, .privacy-rights-status--processing { color: var(--teal-deep); }
.privacy-rights-status--awaiting_information { color: var(--ink); }
.privacy-rights-status--completed, .privacy-rights-status--partially_completed { color: var(--teal-deep); }
.privacy-rights-status--denied { color: var(--danger); }
.privacy-rights-status--cancelled { color: var(--muted); }
.privacy-rights-row__response { background: var(--mineral); display: grid; gap: .3rem; grid-column: 1 / -1; padding: .85rem 1rem; }
.privacy-rights-row__response p { margin: 0; max-width: 78ch; }
.privacy-rights-row__action { align-items: center; display: flex; grid-column: 1 / -1; justify-content: flex-end; }
.privacy-rights-row__action form { margin: 0; }
.privacy-rights-row__action button { background: transparent; border: 1px solid var(--ink); }
.privacy-rights-row__action button:hover { background: var(--ink); color: var(--paper); }
.privacy-rights-row__action > span { color: var(--muted); font-size: .8rem; }
.account-access-section { scroll-margin-top: 1rem; }
.account-access-ledger { border-top: 2px solid var(--ink); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.account-access-ledger > div { border-bottom: 1px solid var(--ink); display: grid; gap: .4rem; padding: 1.25rem 2rem 1.25rem 0; }
.account-access-ledger > div + div { border-left: 1px solid var(--line); padding-left: 1.25rem; }
.account-access-ledger span, .account-deactivation-form label > span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.account-access-ledger strong { font-family: var(--display); font-size: 1.7rem; line-height: 1; text-transform: uppercase; }
.account-access-ledger p { color: var(--muted); margin: 0; max-width: 64ch; }
.account-deactivation-form { border-bottom: 1px solid var(--ink); margin-top: 1.5rem; }
.account-deactivation-form__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.account-deactivation-form__fields label { display: grid; gap: .55rem; padding: 1rem 1rem 1rem 0; }
.account-deactivation-form__fields label + label { border-left: 1px solid var(--line); padding-left: 1rem; }
.account-deactivation-form input[type="password"], .account-deactivation-form input[type="text"] { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 3.25rem; padding: .8rem .9rem; width: 100%; }
.account-deactivation-form input[type="password"]:focus-visible, .account-deactivation-form input[type="text"]:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.account-deactivation-form small { color: var(--muted); }
.account-deactivation-form__confirmation { align-items: start; border-top: 1px solid var(--line); display: flex; gap: .75rem; padding: 1rem 0; }
.account-deactivation-form__confirmation input { accent-color: var(--danger); flex: 0 0 auto; height: 1.15rem; margin-top: .08rem; width: 1.15rem; }
.account-deactivation-form__confirmation span { color: var(--ink) !important; font-family: inherit !important; font-size: 1rem !important; letter-spacing: 0 !important; max-width: 78ch; text-transform: none !important; }
.account-deactivation-form__submit { align-items: center; border-top: 1px solid var(--line); display: flex; justify-content: space-between; padding: 1rem 0; }
.account-deactivation-form__submit p { color: var(--muted); margin: 0; }
.account-deactivation-form__submit button { background: transparent; border: 1px solid var(--danger); color: var(--danger); cursor: pointer; font-weight: 650; min-height: 3rem; padding: .7rem 1rem; }
.account-deactivation-form__submit button:hover { background: var(--danger); color: var(--paper); }
.account-deactivation-form__submit button:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.account-deactivation-form__submit button:disabled { background: var(--line); border-color: var(--line); color: var(--muted); cursor: wait; }
.account-subscription-block { align-items: center; background: #fff4ef; border-bottom: 1px solid var(--danger); border-top: 1px solid var(--danger); display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) auto; margin-top: 1.5rem; padding: 1.25rem 0; }
.account-subscription-block > div { display: grid; gap: .4rem; }
.account-subscription-block span { color: var(--danger); font-family: var(--display); font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.account-subscription-block strong { font-family: var(--display); font-size: 1.7rem; line-height: 1; text-transform: uppercase; }
.account-subscription-block p { color: #72251f; margin: 0; max-width: 68ch; }
.account-subscription-block a { align-items: center; background: var(--ink); color: var(--paper); display: inline-flex; font-weight: 650; gap: .7rem; min-height: 3.25rem; padding: .8rem 1rem; text-decoration: none; }
.account-subscription-block a:hover { background: var(--teal-deep); }
.account-subscription-block a:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.account-subscription-block .icon { height: 1.1rem; width: 1.1rem; }
.account-subscription-note { background: #e5f4ef; border-bottom: 1px solid var(--teal-deep); border-top: 1px solid var(--teal-deep); color: var(--teal-deep); margin: 1.5rem 0 0; max-width: none; padding: 1rem 0; }

/* Onboarding: uma rota curta até a primeira conversa real */
.onboarding-page { background: var(--mineral); }
.onboarding-canvas { min-height: 100svh; }
.onboarding-header { align-items: center; background: var(--ink-deep); color: var(--paper); display: flex; justify-content: space-between; min-height: 5.25rem; padding: .8rem clamp(1rem, 5vw, 5rem); }
.brand--onboarding { color: var(--paper); }
.onboarding-account { align-items: center; display: flex; gap: 1rem; }
.onboarding-account > span { font-weight: 600; }
.onboarding-account form { margin: 0; }
.onboarding-account button { background: transparent; border: 0; color: var(--line); cursor: pointer; font: inherit; padding: .5rem 0 .5rem 1rem; text-decoration: underline; text-underline-offset: .25rem; }
.onboarding-account button:hover { color: var(--paper); }
.onboarding-account button:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.onboarding-main { margin: 0 auto; max-width: 92rem; }
.onboarding-intro { align-items: end; background: var(--ink); color: var(--paper); display: grid; gap: clamp(2rem, 6vw, 7rem); grid-template-columns: minmax(20rem, 1fr) minmax(28rem, .9fr); overflow: hidden; padding: clamp(3rem, 6vw, 6rem) clamp(1.25rem, 5vw, 5rem); position: relative; }
.onboarding-intro::after { border: 1px solid rgba(216,242,58,.24); border-radius: 50%; content: ""; height: 30rem; pointer-events: none; position: absolute; right: -3rem; top: -23rem; width: 46rem; }
.onboarding-intro > div, .onboarding-route { position: relative; z-index: 1; }
.onboarding-intro h1 { font-family: var(--display); font-size: clamp(3.7rem, 6vw, 5.35rem); letter-spacing: -.035em; line-height: .88; margin: 0 0 1.5rem; max-width: 10ch; text-transform: uppercase; }
.onboarding-intro p { color: var(--line); margin: 0; max-width: 60ch; }
.onboarding-route { counter-reset: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.onboarding-route li { border-top: 1px solid rgba(255,255,255,.4); color: var(--line); display: grid; gap: .4rem; padding: 1rem .75rem 0 0; }
.onboarding-route li + li { padding-left: .75rem; }
.onboarding-route li.is-current { border-top-color: var(--chartreuse); color: var(--paper); }
.onboarding-route span { color: var(--chartreuse); font-family: var(--display); font-size: .72rem; letter-spacing: .1em; }
.onboarding-route strong { font-family: var(--display); font-size: 1rem; font-weight: 600; text-transform: uppercase; }
.onboarding-form { background: var(--paper); }
.onboarding-station { border-bottom: 1px solid var(--ink); display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: minmax(17rem, .6fr) minmax(28rem, 1.4fr); padding: clamp(3rem, 5vw, 5rem) clamp(1.25rem, 5vw, 5rem); }
.onboarding-station:nth-child(3) { background: var(--mineral); }
.onboarding-station__head h2 { font-family: var(--display); font-size: clamp(2.7rem, 5vw, 5rem); letter-spacing: -.025em; line-height: .92; margin: 0 0 1rem; max-width: 11ch; text-transform: uppercase; }
.onboarding-station__head p { color: var(--muted); margin: 0; max-width: 42ch; }
.onboarding-fields { display: grid; gap: 1rem; grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 1fr) minmax(12rem, 1fr) 5rem; }
.onboarding-field--state { max-width: 6rem; }
.onboarding-fields label, .onboarding-preferences label { display: grid; min-width: 0; }
.onboarding-fields label > span, .onboarding-preferences label > span, .onboarding-memory legend { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; font-weight: 600; letter-spacing: .09em; margin-bottom: .35rem; text-transform: uppercase; }
.onboarding-fields label small { color: var(--muted); font-family: var(--body); font-size: .68rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.onboarding-fields input, .onboarding-preferences select { background: var(--mineral); border: 1px solid var(--muted); border-radius: 12px; color: var(--ink); min-height: 3.35rem; padding: .7rem .85rem; width: 100%; }
.onboarding-fields input:focus, .onboarding-preferences select:focus { background: var(--paper); border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); }
.onboarding-fields input::placeholder { color: #65747e; opacity: 1; }
.onboarding-preferences { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(10rem, 1fr)); }
.onboarding-memory { border: 0; border-top: 1px solid var(--line); margin: 2rem 0 0; padding: 1.5rem 0 0; }
.onboarding-memory legend { padding: 0; }
.onboarding-memory > p { color: var(--muted); margin: 0 0 1.25rem; max-width: 70ch; }
.onboarding-memory > div { border-bottom: 1px solid var(--line); border-top: 1px solid var(--ink); display: grid; grid-template-columns: 1fr 1fr; }
.onboarding-memory label { cursor: pointer; display: grid; grid-template-columns: 1.4rem 1fr; gap: .9rem; padding: 1.1rem; }
.onboarding-memory label + label { border-left: 1px solid var(--line); }
.onboarding-memory label:has(input:checked) { background: #e5f4ef; box-shadow: inset 0 -4px 0 var(--teal-deep); }
.onboarding-memory input { accent-color: var(--teal-deep); height: 1.2rem; margin-top: .15rem; width: 1.2rem; }
.onboarding-memory input:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.onboarding-memory span { display: grid; gap: .2rem; }
.onboarding-memory strong { font-family: var(--display); font-size: 1rem; text-transform: uppercase; }
.onboarding-memory small { color: var(--muted); line-height: 1.4; }
.onboarding-actions { align-items: center; background: var(--paper); display: flex; gap: 2rem; justify-content: space-between; padding: 1.5rem clamp(1.25rem, 5vw, 5rem) 4rem; }
.onboarding-actions p { color: var(--muted); margin: 0; max-width: 48ch; }
.onboarding-actions > div { align-items: center; display: flex; gap: 1rem; }
.onboarding-actions button { cursor: pointer; font: inherit; min-height: 3.4rem; padding: .8rem 1.2rem; }
.onboarding-skip { background: transparent; border: 0; color: var(--ink); text-decoration: underline; text-underline-offset: .28rem; }
.onboarding-skip:hover { color: var(--teal-deep); }
.onboarding-complete { background: var(--chartreuse); border: 0; border-radius: 2rem; color: var(--ink-deep); font-weight: 600; min-width: 13rem; }
.onboarding-complete:hover { background: #e5ff52; box-shadow: 0 12px 28px rgba(8,22,61,.18); transform: translateY(-2px); }
.onboarding-actions button:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.onboarding-actions button:disabled { cursor: wait; opacity: .65; }

@media (max-width: 1050px) {
    .onboarding-intro, .onboarding-station { grid-template-columns: 1fr; }
    .onboarding-intro { gap: 2.5rem; }
    .onboarding-route { max-width: 42rem; }
    .onboarding-station { gap: 2rem; }
    .onboarding-station__head h2 { max-width: 14ch; }
    .onboarding-fields { grid-template-columns: 1fr 1fr; }
    .onboarding-field--state { max-width: 7rem; }
    .personalization-fields { grid-template-columns: 1fr 1fr; }
    .field--city { grid-column: 1; }
    .field--state { grid-column: 2; max-width: 7rem; }
    .memory-entry { grid-template-columns: 1fr; }
    .memory-forget { justify-self: end; }
    .privacy-purpose-row { grid-template-columns: 1fr; }
    .privacy-consent-action { grid-template-columns: 1fr; }
    .privacy-purpose-row dl div:first-child { border-left: 0; padding-left: 0; }
    .privacy-intro, .privacy-section .personalization-section__head { grid-template-columns: 1fr; }
    .privacy-intro { gap: 2rem; }
    .privacy-intro dl { max-width: 28rem; }
    .privacy-data-ledger { grid-template-columns: 1fr 1fr; }
    .privacy-data-ledger div:not(:nth-child(3n + 1)) { border-left: 0; padding-left: 0; }
    .privacy-data-ledger div:nth-child(even) { border-left: 1px solid var(--line); padding-left: 1rem; }
    .privacy-export-action { grid-template-columns: 1fr; }
    .privacy-export-action form { justify-self: start; }
    .privacy-export-row { grid-template-columns: minmax(13rem, .8fr) minmax(22rem, 1.2fr); }
    .privacy-export-row__action { grid-column: 1 / -1; justify-content: flex-start; }
    .privacy-export-row__action > span { max-width: none; text-align: left; }
    .privacy-rights-form__intro { grid-template-columns: 1fr; }
    .privacy-rights-row { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .onboarding-header .brand__tagline { display: none; }
    .onboarding-account > span { display: none; }
    .onboarding-intro { padding-block: 3rem; }
    .onboarding-actions { align-items: stretch; flex-direction: column; }
    .onboarding-actions > div { justify-content: flex-end; }
    .personalization-intro, .personalization-section__head { grid-template-columns: 1fr; }
    .personalization-intro { gap: 2rem; }
    .personalization-intro dl { max-width: 28rem; }
    .memory-add, .memory-entry > form:first-child { grid-template-columns: 1fr 1fr; }
    .memory-add__content, .memory-entry__content { grid-column: 1 / -1; }
    .memory-add button, .memory-entry > form:first-child button { justify-self: end; }
    .privacy-data-ledger { grid-template-columns: 1fr 1fr; }
    .privacy-data-ledger div:not(:nth-child(3n + 1)) { border-left: 0; padding-left: 0; }
    .privacy-data-ledger div:nth-child(even) { border-left: 1px solid var(--line); padding-left: 1rem; }
    .privacy-export-action, .privacy-export-empty, .privacy-export-row { grid-template-columns: 1fr; }
    .privacy-export-action form { justify-self: start; }
    .privacy-export-row dl { grid-column: 1; }
    .privacy-export-row__action { grid-column: 1; }
    .privacy-rights-form, .privacy-rights-empty { grid-template-columns: 1fr; }
    .privacy-rights-form > label:nth-of-type(2) { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; }
    .account-access-ledger, .account-deactivation-form__fields, .account-subscription-block { grid-template-columns: 1fr; }
    .account-access-ledger > div + div, .account-deactivation-form__fields label + label { border-left: 0; padding-left: 0; }
    .account-subscription-block a { justify-self: start; }
}

@media (max-width: 560px) {
    .onboarding-header { min-height: 4.5rem; }
    .onboarding-header .brand__symbol { flex-basis: 2.7rem; height: 2.7rem; width: 2.7rem; }
    .onboarding-intro { padding: 2.5rem 1rem; }
    .onboarding-intro h1 { font-size: 3.7rem; }
    .onboarding-route { grid-template-columns: 1fr; }
    .onboarding-route li { align-items: center; border-top: 0; border-left: 1px solid rgba(255,255,255,.4); grid-template-columns: 2rem 1fr; padding: .45rem 0 .45rem .8rem; }
    .onboarding-route li + li { padding-left: .8rem; }
    .onboarding-route li.is-current { border-left-color: var(--chartreuse); border-top: 0; }
    .onboarding-station { padding: 2.5rem 1rem; }
    .onboarding-station__head h2 { font-size: 2.7rem; }
    .onboarding-fields, .onboarding-preferences, .onboarding-memory > div { grid-template-columns: 1fr; }
    .onboarding-field--state { max-width: none; }
    .onboarding-memory label + label { border-left: 0; border-top: 1px solid var(--line); }
    .onboarding-actions { padding: 1.25rem 1rem 3rem; }
    .onboarding-actions > div { align-items: stretch; flex-direction: column-reverse; }
    .onboarding-actions button { width: 100%; }
    .personalization-intro { padding-block: 2.5rem; }
    .personalization-intro h1 { font-size: 3rem; }
    .personalization-section { padding: 2.5rem 1rem; }
    .personalization-section__head { gap: 1rem; }
    .personalization-section__head h2 { font-size: 2.75rem; }
    .personalization-fields, .preference-transect, .memory-add, .memory-entry > form:first-child, .memory-empty, .memory-danger form { grid-template-columns: 1fr; }
    .field--city, .field--state, .memory-add__content, .memory-entry__content, .memory-danger p { grid-column: auto; }
    .field--state { max-width: none; }
    .memory-master-switch { align-items: stretch; flex-direction: column; }
    .personalization-save, .memory-add button, .memory-entry > form:first-child button, .memory-danger button { justify-self: stretch; width: 100%; }
    .memory-forget { justify-self: stretch; }
    .memory-forget button { width: 100%; }
    .settings-subnav { display: grid; grid-template-columns: 1fr 1fr; padding-inline: 0; }
    .settings-subnav a { font-size: .88rem; padding-inline: .55rem; text-align: center; }
    .privacy-data-ledger, .privacy-control-ledger { grid-template-columns: 1fr; }
    .privacy-data-ledger div, .privacy-data-ledger div:nth-child(even), .privacy-data-ledger div:not(:nth-child(3n + 1)) { border-left: 0; padding-left: 0; }
    .privacy-purpose-row dl { grid-template-columns: 1fr; }
    .privacy-purpose-row dl div, .privacy-purpose-row dl div:first-child { border-left: 0; border-top: 1px solid var(--line); padding: .75rem 0; }
    .privacy-consent-action > form { align-items: stretch; flex-direction: column; }
    .privacy-consent-button { width: 100%; }
    .privacy-inline-action { align-items: stretch; flex-direction: column; gap: 1rem; }
    .privacy-inline-action a { justify-content: space-between; }
    .privacy-control-ledger > a, .privacy-control-ledger > article, .privacy-control-ledger > :nth-child(even) { border-left: 0; min-height: 0; padding: 1.25rem 2.5rem 1.25rem 0; }
    .privacy-export-action { align-items: stretch; gap: 1rem; padding: 1rem; }
    .privacy-export-action form, .privacy-export-action button, .privacy-export-row__action a { justify-self: stretch; width: 100%; }
    .privacy-export-row dl { grid-template-columns: 1fr; }
    .privacy-export-row dl div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .privacy-export-row__action { align-items: stretch; }
    .privacy-rights-form__submit { align-items: stretch; flex-direction: column; gap: .8rem; }
    .privacy-rights-form__submit button, .privacy-rights-row__action form, .privacy-rights-row__action button { width: 100%; }
    .privacy-rights-row dl { grid-template-columns: 1fr; }
    .privacy-rights-row dl div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0; }
    .account-deactivation-form__submit { align-items: stretch; flex-direction: column; gap: .8rem; }
    .account-deactivation-form__submit button { width: 100%; }
    .account-subscription-block { align-items: stretch; }
    .account-subscription-block a { justify-content: space-between; justify-self: stretch; }
}

/* Configurações: mesa de escolhas e rotas especializadas */
.settings-main { background: var(--mineral); min-height: 100svh; min-width: 0; overflow-x: hidden; }
.settings-topbar > strong { font-family: var(--display); font-size: 1.35rem; letter-spacing: .02em; text-transform: uppercase; }
.settings-register { align-items: end; background: var(--ink); color: var(--paper); display: grid; gap: clamp(2rem, 6vw, 7rem); grid-template-columns: minmax(20rem, 1.15fr) minmax(18rem, .85fr); overflow: hidden; padding: clamp(3rem, 5vw, 5.5rem) clamp(1.5rem, 5vw, 5rem); position: relative; }
.settings-register::after { border: 1px solid rgba(216,242,58,.3); border-radius: 50%; content: ""; height: 27rem; pointer-events: none; position: absolute; right: -4rem; top: -20rem; width: 43rem; }
.settings-register__identity, .settings-register__ledger { position: relative; z-index: 1; }
.settings-coordinate, .settings-section__head span { color: var(--teal); font-family: var(--display); font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.settings-register__identity h1 { font-family: var(--display); font-size: clamp(3.7rem, 6.6vw, 5.8rem); letter-spacing: -.03em; line-height: .87; margin: .8rem 0 1.4rem; max-width: 10ch; text-transform: uppercase; }
.settings-register__identity > p:last-child { color: #ced9df; font-size: 1.04rem; margin: 0; max-width: 58ch; }
.settings-register__ledger { border-top: 1px solid rgba(255,255,255,.5); margin: 0; }
.settings-register__ledger div { align-items: baseline; border-bottom: 1px solid rgba(255,255,255,.26); display: flex; gap: 1rem; justify-content: space-between; padding: .85rem 0; }
.settings-register__ledger dt { color: #bdcbd2; font-size: .76rem; letter-spacing: .04em; text-transform: uppercase; }
.settings-register__ledger dd { font-family: var(--display); font-size: 1.15rem; margin: 0; text-align: right; text-transform: uppercase; }
.settings-section { background: var(--paper); padding: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 5vw, 5rem); }
.settings-section + .settings-section { border-top: 1px solid var(--ink); }
.settings-section__head { align-items: end; display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: minmax(18rem, 1fr) minmax(18rem, .8fr); margin-bottom: 2rem; }
.settings-section__head h2 { font-family: var(--display); font-size: clamp(2.7rem, 5vw, 4.7rem); letter-spacing: -.025em; line-height: .9; margin: .45rem 0 0; max-width: 12ch; text-transform: uppercase; }
.settings-section__head > p { color: var(--muted); margin: 0; max-width: 62ch; }
.settings-provider form { border-top: 2px solid var(--ink); }
.settings-provider__options { border: 0; margin: 0; padding: 0; }
.settings-provider__options legend { height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; clip: rect(0 0 0 0); white-space: nowrap; }
.settings-provider__row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 1.5rem minmax(0, 1fr) auto auto; min-height: 5rem; padding: 1rem 0; }
.settings-provider__row:has(input:focus-visible) { outline: 3px solid var(--coral); outline-offset: 3px; }
.settings-provider__row.is-selected { box-shadow: inset 4px 0 0 var(--chartreuse); padding-left: 1rem; }
.settings-provider__row.is-unavailable > input, .settings-provider__row.is-unavailable > .settings-provider__name, .settings-provider__row.is-unavailable > .settings-provider__state { opacity: .58; }
.settings-provider__row input { accent-color: var(--teal-deep); height: 1.25rem; width: 1.25rem; }
.settings-provider__name { cursor: pointer; display: grid; gap: .25rem; min-width: 0; }
.settings-provider__row.is-unavailable .settings-provider__name { cursor: not-allowed; }
.settings-provider__name strong { font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.settings-provider__name small { color: var(--muted); overflow-wrap: anywhere; }
.settings-provider__state { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.settings-provider__row.is-unavailable .settings-provider__state { color: var(--muted); }
.settings-provider__status-link { color: var(--ink); font-size: .8rem; font-weight: 650; text-underline-offset: .24rem; white-space: nowrap; }
.settings-provider__status-link:hover { color: var(--teal-deep); }
.settings-provider__status-link:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.settings-provider__availability-note { align-items: start; background: var(--mineral); border-bottom: 1px solid var(--line); display: grid; gap: .45rem 2rem; grid-template-columns: minmax(10rem, .35fr) minmax(18rem, 1fr); padding: 1rem; }
.settings-provider__availability-note strong { font-family: var(--display); font-size: 1rem; text-transform: uppercase; }
.settings-provider__availability-note p { color: var(--muted); margin: 0; max-width: 72ch; }
.settings-provider__action { align-items: center; border-bottom: 1px solid var(--ink); display: flex; gap: 2rem; justify-content: space-between; padding: 1.25rem 0; }
.settings-provider__action p { color: var(--muted); margin: 0; max-width: 62ch; }
.settings-provider__action button { background: var(--chartreuse); border: 0; border-radius: 2rem; color: var(--ink-deep); cursor: pointer; font: inherit; font-weight: 650; min-height: 3.25rem; padding: .75rem 1.25rem; }
.settings-provider__action button:hover { background: #e5ff52; box-shadow: 0 10px 24px rgba(8,22,61,.14); transform: translateY(-1px); }
.settings-provider__action button:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.settings-provider__action button:disabled { background: var(--line); color: var(--muted); cursor: wait; transform: none; }
.settings-output-limit__form { align-items: end; border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); display: grid; gap: 1.5rem; grid-template-columns: minmax(15rem, .8fr) minmax(18rem, 1.2fr) auto; padding: 1.5rem 0; }
.settings-output-limit__form > label { display: grid; gap: .55rem; }
.settings-output-limit__form > label > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.settings-output-limit__form select { appearance: none; background: var(--paper) linear-gradient(45deg, transparent 50%, var(--ink) 50%) calc(100% - 1rem) 50% / .45rem .45rem no-repeat; border: 1px solid var(--ink); border-radius: 0; color: var(--ink); font: inherit; min-height: 3.25rem; padding: .65rem 2.25rem .65rem .8rem; width: 100%; }
.settings-output-limit__form select:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.settings-output-limit__explanation strong { display: block; font-size: 1rem; margin-bottom: .25rem; }
.settings-output-limit__explanation p { color: var(--muted); margin: 0; max-width: 58ch; }
.settings-output-limit__form button { background: var(--chartreuse); border: 0; border-radius: 2rem; color: var(--ink-deep); cursor: pointer; font: inherit; font-weight: 650; min-height: 3.25rem; padding: .75rem 1.25rem; white-space: nowrap; }
.settings-output-limit__form button:hover { background: #e5ff52; box-shadow: 0 10px 24px rgba(8,22,61,.14); transform: translateY(-1px); }
.settings-output-limit__form button:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.settings-paths { background: var(--mineral); }
.settings-paths__ledger { border-top: 2px solid var(--ink); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.settings-paths__ledger a { color: var(--ink); display: grid; gap: .7rem; grid-template-columns: 1fr auto; min-height: 15rem; padding: 1.25rem 1.25rem 1.5rem 0; text-decoration: none; }
.settings-paths__ledger a + a { border-left: 1px solid var(--line); padding-left: 1.25rem; }
.settings-paths__ledger a > span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; letter-spacing: .08em; }
.settings-paths__ledger strong { align-self: end; font-family: var(--display); font-size: 1.65rem; line-height: 1; max-width: 13ch; text-transform: uppercase; }
.settings-paths__ledger p { color: var(--muted); grid-column: 1 / -1; margin: 0; max-width: 38ch; }
.settings-paths__ledger svg { color: var(--teal-deep); height: 1.35rem; width: 1.35rem; }
.settings-paths__ledger a:hover { background: rgba(31,165,138,.08); }
.settings-paths__ledger a:focus-visible { outline: 3px solid var(--coral); outline-offset: -3px; }
.settings-account__ledger { border-top: 2px solid var(--ink); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.settings-account__ledger div { border-bottom: 1px solid var(--line); min-width: 0; padding: 1.15rem 1rem 1.15rem 0; }
.settings-account__ledger div + div { border-left: 1px solid var(--line); padding-left: 1rem; }
.settings-account__ledger dt { color: var(--teal-deep); font-family: var(--display); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.settings-account__ledger dd { font-size: 1.05rem; margin: .4rem 0 0; overflow-wrap: anywhere; }
.settings-account__action { align-items: center; border-bottom: 1px solid var(--ink); display: flex; gap: 2rem; justify-content: space-between; padding: 1.25rem 0; }
.settings-account__action p { color: var(--muted); margin: 0; max-width: 64ch; }
.settings-account__action a { align-items: center; color: var(--ink); display: inline-flex; font-weight: 650; gap: .7rem; text-underline-offset: .25rem; }
.settings-account__action svg { height: 1.15rem; width: 1.15rem; }
.settings-section__head--plain h2 { margin-top: 0; }
.two-factor-state, .two-factor-setup { border-top: 2px solid var(--ink); display: grid; gap: 1.5rem; padding: 1.5rem 0 0; }
.two-factor-state { align-items: center; grid-template-columns: minmax(0, 1fr) auto; }
.two-factor-state > div, .two-factor-setup__instructions, .two-factor-setup__confirmation { display: grid; gap: .75rem; min-width: 0; }
.two-factor-state strong, .two-factor-setup strong { font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.two-factor-state p, .two-factor-setup p { color: var(--muted); margin: 0; max-width: 70ch; }
.two-factor-state--enabled { background: #e5f4ef; border: 1px solid var(--teal); padding: 1.25rem; }
.two-factor-state form, .two-factor-setup form { align-items: end; display: flex; flex-wrap: wrap; gap: .75rem; }
.two-factor-state label, .two-factor-setup label { display: grid; gap: .35rem; min-width: min(16rem, 100%); }
.two-factor-state label span, .two-factor-setup label span { color: var(--teal-deep); font-family: var(--display); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.two-factor-state input, .two-factor-setup input { background: var(--mineral); border: 1px solid #73857e; border-radius: 10px; color: var(--ink); font: inherit; min-height: 2.8rem; padding: .55rem .7rem; }
.two-factor-state button, .two-factor-setup button { background: var(--chartreuse); border: 0; color: var(--ink-deep); cursor: pointer; font-weight: 650; min-height: 2.8rem; padding: .65rem 1rem; }
.two-factor-state button:hover, .two-factor-setup button:hover { background: #e5ff52; box-shadow: 0 10px 24px rgba(8,22,61,.16); transform: translateY(-1px); }
.two-factor-setup { align-items: start; background: var(--mineral); border: 1px solid var(--line); border-top: 2px solid var(--ink); grid-template-columns: minmax(0, 1fr) minmax(18rem, .7fr); padding: clamp(1rem, 2.5vw, 1.5rem); }
.two-factor-setup__instructions, .two-factor-setup__confirmation { background: var(--paper); border: 1px solid var(--line); padding: clamp(1rem, 2vw, 1.25rem); }
.two-factor-step { align-items: start; display: grid; gap: .7rem; grid-template-columns: 1.7rem minmax(0, 1fr); }
.two-factor-step__number { align-items: center; background: var(--ink); border-radius: 50%; color: var(--chartreuse); display: inline-flex; font-family: var(--display); font-size: .95rem; height: 1.7rem; justify-content: center; line-height: 1; width: 1.7rem; }
.two-factor-step strong { display: block; font-size: 1.15rem; }
.two-factor-setup__instructions code { background: var(--ink); color: var(--paper); font: 600 .95rem/1.4 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .12em; overflow-wrap: anywhere; padding: .7rem .85rem; }
.two-factor-setup details { border-top: 1px solid var(--line); padding-top: .8rem; }
.two-factor-setup details code { display: block; font-size: .7rem; letter-spacing: 0; margin-top: .7rem; }
.two-factor-setup summary { color: var(--teal-deep); cursor: pointer; font-weight: 650; }
.two-factor-qr { align-items: center; aspect-ratio: 1; background: #fff; border: 1px solid #b9c7c2; display: flex; justify-content: center; max-width: 100%; min-height: 0; overflow: hidden; padding: clamp(.65rem, 2vw, 1rem); width: min(14rem, 100%); }
.two-factor-qr svg { aspect-ratio: 1; display: block !important; height: auto !important; max-height: 100% !important; max-width: 100% !important; width: 100% !important; }
.two-factor-qr span { color: var(--muted); font-size: .86rem; text-align: center; }
.two-factor-qr-fallback { font-size: .88rem; }
.two-factor-secret { display: block; max-width: 100%; text-align: center; }
.two-factor-setup__confirmation form { align-items: stretch; flex-direction: column; }
.two-factor-setup__confirmation label { width: 100%; }
.two-factor-setup__confirmation button { width: 100%; }
.two-factor-setup__confirmation form + form { border-top: 1px solid var(--line); margin-top: .35rem; padding-top: 1rem; }
.two-factor-warning { background: #fff5e7; border: 1px solid #d89b55; display: grid; gap: .3rem; margin-top: .25rem; padding: .8rem .9rem; }
.two-factor-warning strong { color: #704114; font-family: var(--display); font-size: .9rem; letter-spacing: .04em; }
.two-factor-warning p { color: #704114; font-size: .86rem; }
.two-factor-cancel { background: transparent !important; border: 1px solid var(--ink) !important; color: var(--ink) !important; }
.two-factor-cancel:hover { background: var(--ink) !important; color: var(--paper) !important; }
.push-activation { align-items: center; background: var(--ink); color: var(--paper); display: grid; gap: 1rem 2rem; grid-template-columns: minmax(0, 1fr) auto; padding: 1.35rem 1.5rem; }
.push-activation > div { display: grid; gap: .25rem; }
.push-activation strong { font-family: var(--display); font-size: 1.45rem; text-transform: uppercase; }
.push-activation p { color: #ced9df; margin: 0; max-width: 70ch; }
.push-activation button, .notification-preferences__action button, .notifications-heading button, .notification-row form button { background: var(--chartreuse); border: 0; color: var(--ink-deep); cursor: pointer; font-weight: 650; min-height: 3rem; padding: .65rem 1rem; }
.push-activation button:hover, .notification-preferences__action button:hover, .notifications-heading button:hover { background: #e5ff52; box-shadow: 0 10px 24px rgba(8,22,61,.18); transform: translateY(-1px); }
.push-activation button:disabled { background: #9eaaa7; color: #34434d; cursor: not-allowed; transform: none; }
.push-activation__status { grid-column: 1 / -1; min-height: 1.4rem; }
.notification-preferences { border-top: 2px solid var(--ink); margin-top: 1.5rem; }
.notification-preferences__head, .notification-preference-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) 7rem 7rem; }
.notification-preferences__head { color: var(--muted); font-size: .75rem; letter-spacing: .06em; padding: .65rem 0; text-transform: uppercase; }
.notification-preferences__head span:not(:first-child) { text-align: center; }
.notification-preference-row { min-height: 5rem; padding: .85rem 0; }
.notification-preference-row > div { display: grid; gap: .2rem; }
.notification-preference-row strong { font-size: 1rem; }
.notification-preference-row small { color: var(--muted); }
.notification-preference-row > label { align-items: center; display: flex; justify-content: center; }
.notification-preference-row input { accent-color: var(--teal-deep); height: 1.3rem; width: 1.3rem; }
.notification-preference-row input:disabled { cursor: not-allowed; opacity: .7; }
.notification-channel-lock { color: var(--teal-deep); font-size: .72rem; font-weight: 700; justify-self: center; line-height: 1.25; max-width: 6rem; text-align: center; text-transform: uppercase; }
.notification-preferences__action { align-items: center; border-bottom: 1px solid var(--ink); display: flex; gap: 2rem; justify-content: space-between; padding: 1.25rem 0; }
.notification-preferences__action p { color: var(--muted); margin: 0; max-width: 66ch; }

/* Notificações: registro compacto de atenção */
.notifications-main { background: var(--paper); min-height: 100svh; }
.notifications-main > .app-topbar > strong { font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.notifications-heading { align-items: end; background: var(--ink); color: var(--paper); display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr) auto; padding: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 5vw, 5rem); }
.notifications-heading h1 { font-family: var(--display); font-size: clamp(3.5rem, 6vw, 5.5rem); letter-spacing: -.03em; line-height: .88; margin: 0; max-width: 11ch; text-transform: uppercase; }
.notifications-heading p { color: #ced9df; font-size: 1.02rem; margin: 1.2rem 0 0; max-width: 60ch; }
.notifications-heading form { align-self: end; }
.notification-ledger { background: var(--paper); padding: 0 clamp(1.5rem, 5vw, 5rem) 4rem; }
.notification-row { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 1rem 1.25rem; grid-template-columns: .85rem minmax(0, 1fr) auto; padding: 1.4rem 0; }
.notification-row__marker { background: var(--teal); border-radius: 50%; height: .7rem; margin-top: .35rem; width: .7rem; }
.notification-row.is-read { color: var(--muted); }
.notification-row.is-read .notification-row__marker { background: var(--line); }
.notification-row > div:nth-child(2) { display: grid; gap: .5rem; }
.notification-row header { align-items: baseline; display: flex; gap: 1rem; justify-content: space-between; }
.notification-row header strong { color: var(--ink); font-family: var(--display); font-size: 1.4rem; text-transform: uppercase; }
.notification-row time { color: var(--muted); font-size: .78rem; white-space: nowrap; }
.notification-row p { margin: 0; max-width: 72ch; }
.notification-row a { align-items: center; color: var(--teal-deep); display: inline-flex; font-weight: 650; gap: .5rem; justify-self: start; }
.notification-row a svg { height: 1rem; width: 1rem; }
.notification-row form button { background: transparent; border: 1px solid var(--ink); min-height: 2.6rem; }
.notification-row form button:hover { background: var(--ink); color: var(--paper); }
.notification-empty { border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); display: grid; gap: .35rem; padding: 2rem 0; }
.notification-empty strong { font-family: var(--display); font-size: 2rem; text-transform: uppercase; }
.notification-empty p { color: var(--muted); margin: 0; }

@media (max-width: 980px) {
    .settings-output-limit__form { grid-template-columns: 1fr 1fr; }
    .settings-output-limit__form button { grid-column: 1 / -1; justify-self: start; }
    .settings-register, .settings-section__head { grid-template-columns: 1fr; }
    .settings-register { align-items: start; gap: 2.5rem; }
    .settings-register__ledger { max-width: 34rem; width: 100%; }
    .settings-paths__ledger { grid-template-columns: 1fr 1fr; }
    .settings-paths__ledger a:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
    .settings-account__ledger { grid-template-columns: 1fr 1fr; }
    .settings-account__ledger div:nth-child(3) { border-left: 0; }
    .notifications-heading { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .settings-output-limit__form { align-items: stretch; grid-template-columns: 1fr; }
    .settings-output-limit__form button { grid-column: auto; width: 100%; }
    .settings-register { padding-block: 3rem; }
    .settings-register__identity h1 { font-size: 3.7rem; }
    .settings-section { padding: 2.75rem 1rem; }
    .settings-section__head { gap: 1.2rem; }
    .settings-section__head h2 { font-size: 2.75rem; }
    .settings-provider__action, .settings-account__action { align-items: stretch; flex-direction: column; }
    .settings-provider__action button { width: 100%; }
    .settings-paths__ledger, .settings-account__ledger { grid-template-columns: 1fr; }
    .settings-paths__ledger a { min-height: 0; padding: 1.25rem 0; }
    .settings-paths__ledger a + a, .settings-paths__ledger a:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; }
    .settings-account__ledger div, .settings-account__ledger div + div, .settings-account__ledger div:nth-child(3) { border-left: 0; padding-left: 0; }
    .settings-provider__row { align-items: start; grid-template-columns: 1.5rem minmax(0, 1fr); }
    .settings-provider__state { grid-column: 2; }
    .settings-provider__status-link { grid-column: 2; justify-self: start; white-space: normal; }
    .settings-provider__availability-note { grid-template-columns: 1fr; }
    .two-factor-state, .two-factor-setup { grid-template-columns: 1fr; }
    .two-factor-qr { justify-self: center; width: min(14rem, 100%); }
    .two-factor-state form, .two-factor-setup form { align-items: stretch; flex-direction: column; }
    .two-factor-state label, .two-factor-setup label { min-width: 0; width: 100%; }
    .two-factor-state button, .two-factor-setup button { width: 100%; }
    .push-activation { align-items: stretch; grid-template-columns: 1fr; padding: 1.25rem 1rem; }
    .push-activation__status { grid-column: auto; }
    .notification-preferences__head, .notification-preference-row { grid-template-columns: minmax(0, 1fr) 4.2rem 4.2rem; }
    .notification-preferences__action { align-items: stretch; flex-direction: column; }
    .notification-preferences__action button { width: 100%; }
    .notification-row { grid-template-columns: .7rem minmax(0, 1fr); }
    .notification-row > form { grid-column: 2; justify-self: start; }
    .notification-row header { align-items: start; flex-direction: column; gap: .25rem; }
}

@media (max-width: 560px) {
    .settings-subnav--three, .settings-subnav--four { grid-template-columns: 1fr; }
    .settings-subnav--three a, .settings-subnav--four a { border-bottom: 1px solid var(--line); min-height: 2.9rem; }
    .settings-subnav--three a.is-current, .settings-subnav--four a.is-current { border-bottom: 3px solid var(--chartreuse); }
    .notifications-heading { padding-block: 2.75rem; }
    .notifications-heading h1 { font-size: 3.5rem; }
    .notifications-heading button { width: 100%; }
    .notification-ledger { padding-inline: 1rem; }
    .notification-preferences__head { font-size: .68rem; }
}

/* Meu plano: registro de capacidade */
.plan-main { background: var(--mineral); min-height: 100svh; }
.plan-topbar > strong { font-family: var(--display); font-size: 1.35rem; letter-spacing: .02em; text-transform: uppercase; }
.plan-register { background: var(--ink); color: var(--paper); display: grid; gap: clamp(1.5rem, 3vw, 3rem) clamp(2.5rem, 5vw, 5.5rem); grid-template-areas: "identity stamp" "identity ledger" "capacity capacity"; grid-template-columns: minmax(20rem, 1.05fr) minmax(18rem, .95fr); min-height: calc(100svh - 4.6rem); overflow: hidden; padding: clamp(2.5rem, 4vw, 4rem) clamp(1.5rem, 5vw, 5rem); position: relative; }
.plan-register::after { border: 1px solid rgba(216,242,58,.34); border-radius: 50%; content: ""; height: 24rem; pointer-events: none; position: absolute; right: -8rem; top: -14rem; width: 38rem; }
.plan-register__identity { align-self: center; grid-area: identity; max-width: 42rem; position: relative; z-index: 1; }
.plan-register__identity h1 { font-family: var(--display); font-size: clamp(3.6rem, 6.6vw, 5.8rem); letter-spacing: -.03em; line-height: .87; margin: 0; max-width: 11ch; text-transform: uppercase; }
.plan-register__identity p { color: #ced9df; font-size: 1.06rem; margin: 1.5rem 0 0; max-width: 52ch; }
.plan-register__stamp { align-self: end; border-bottom: 1px solid rgba(255,255,255,.45); border-top: 1px solid rgba(255,255,255,.45); display: grid; grid-area: stamp; grid-template-columns: 1fr auto; padding: 1.2rem 0; position: relative; z-index: 1; }
.plan-register__stamp > span { color: var(--chartreuse); font-family: var(--display); font-size: 3.2rem; letter-spacing: -.02em; line-height: .9; }
.plan-register__stamp > strong { align-self: center; font-size: .95rem; text-align: right; }
.plan-register__stamp > small { color: #bdcbd2; grid-column: 1 / -1; margin-top: .65rem; text-transform: uppercase; }
.plan-register__stamp.is-single { grid-template-columns: 1fr; }
.plan-register__ledger { align-self: end; grid-area: ledger; margin: 0; position: relative; z-index: 1; }
.plan-register__ledger div { align-items: baseline; border-bottom: 1px solid rgba(255,255,255,.22); display: grid; gap: 1rem; grid-template-columns: minmax(8.5rem, .7fr) 1fr; padding: .72rem 0; }
.plan-register__ledger dt { color: #bdcbd2; font-family: var(--display); font-size: .8rem; letter-spacing: .05em; text-transform: uppercase; }
.plan-register__ledger dd { font-weight: 600; margin: 0; text-align: right; }
.plan-register__empty { align-self: center; border-bottom: 1px solid var(--coral); border-top: 1px solid var(--coral); padding: 1.5rem 0; position: relative; z-index: 1; }
.plan-register__empty strong { font-family: var(--display); font-size: 1.5rem; text-transform: uppercase; }
.plan-register__empty p { color: #ced9df; margin-bottom: 0; }

.plan-capacity, .plan-subscription, .plan-entitlements { margin-inline: auto; max-width: 86rem; padding: clamp(3.5rem, 6vw, 6rem) clamp(1.5rem, 5vw, 5rem); }
.plan-capacity { display: grid; gap: clamp(2.5rem, 5vw, 5rem); grid-template-columns: minmax(15rem, .65fr) minmax(24rem, 1.35fr); }
.plan-capacity > header h2, .plan-entitlements > header h2 { font-family: var(--display); font-size: clamp(2.8rem, 5vw, 4.7rem); letter-spacing: -.025em; line-height: .9; margin: 0; max-width: 10ch; text-transform: uppercase; }
.plan-capacity > header p, .plan-entitlements > header p { color: var(--muted); margin: 1.15rem 0 0; max-width: 48ch; }
.plan-capacity__route { align-self: center; border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); padding: 1.5rem 0; }
.plan-capacity__reading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 1rem; }
.plan-capacity__reading strong { font-family: var(--display); font-size: 3.4rem; letter-spacing: -.03em; line-height: .8; }
.plan-capacity__reading span { color: var(--muted); font-size: .88rem; text-align: right; }
.plan-capacity__route progress { appearance: none; background: #dfe6df; border: 0; display: block; height: .85rem; overflow: hidden; transform-origin: left; width: 100%; }
.plan-capacity__route progress::-webkit-progress-bar { background: #dfe6df; }
.plan-capacity__route progress::-webkit-progress-value { background: var(--teal-deep); }
.plan-capacity__route progress::-moz-progress-bar { background: var(--teal-deep); }
.plan-capacity__stations { display: flex; justify-content: space-between; margin-top: -.7rem; pointer-events: none; }
.plan-capacity__stations i { background: var(--paper); border: 1px solid var(--teal-deep); border-radius: 50%; height: .55rem; width: .55rem; }
.plan-capacity__stations i:last-child { background: var(--chartreuse); border-color: var(--ink); }
.plan-capacity__remaining { align-items: start; display: grid; gap: .75rem 1.5rem; grid-template-columns: minmax(14rem, .8fr) 1.2fr; margin-top: 1.4rem; }
.plan-capacity__remaining > strong { font-family: var(--display); font-size: 1.45rem; line-height: 1.1; text-transform: uppercase; }
.plan-capacity__remaining p { color: var(--muted); font-size: .8rem; margin: 0; max-width: 58ch; }
.plan-capacity__empty { border-bottom: 1px solid var(--coral); border-top: 1px solid var(--coral); padding: 1.4rem 0; }
.plan-capacity__empty strong { font-family: var(--display); font-size: 1.4rem; text-transform: uppercase; }
.plan-capacity__empty p { color: var(--muted); margin-bottom: 0; }

.plan-capacity--embedded { align-self: end; border-top: 1px solid rgba(255,255,255,.35); color: var(--paper); gap: clamp(1.5rem, 4vw, 4rem); grid-area: capacity; grid-template-columns: minmax(14rem, .55fr) minmax(24rem, 1.45fr); margin: 0; max-width: none; padding: 1.5rem 0 0; position: relative; z-index: 1; }
.plan-capacity--embedded > header h2 { color: var(--paper); font-size: clamp(2.5rem, 4vw, 3.7rem); max-width: 12ch; }
.plan-capacity--embedded > header p, .plan-capacity--embedded .plan-capacity__reading span, .plan-capacity--embedded .plan-capacity__remaining p { color: #bdcbd2; }
.plan-capacity--embedded .plan-capacity__route { border: 0; padding: 0; }
.plan-capacity--embedded .plan-capacity__route progress, .plan-capacity--embedded .plan-capacity__route progress::-webkit-progress-bar { background: rgba(255,255,255,.2); }
.plan-capacity--embedded .plan-capacity__route progress::-webkit-progress-value, .plan-capacity--embedded .plan-capacity__route progress::-moz-progress-bar { background: var(--chartreuse); }
.plan-capacity--embedded .plan-capacity__stations i { background: var(--ink); border-color: var(--chartreuse); }
.plan-capacity--embedded .plan-capacity__stations i:last-child { background: var(--coral); border-color: var(--paper); }
.plan-capacity--embedded .plan-capacity__remaining { margin-top: 1rem; }
.plan-capacity--embedded .plan-capacity__empty { border-color: var(--coral); }
.plan-capacity--embedded .plan-capacity__empty p { color: #bdcbd2; }

.plan-subscription { display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: minmax(17rem, .7fr) minmax(24rem, 1.3fr); scroll-margin-top: 1rem; }
.plan-subscription > header h2 { font-family: var(--display); font-size: clamp(2.8rem, 5vw, 4.7rem); letter-spacing: -.025em; line-height: .9; margin: 0; max-width: 10ch; text-transform: uppercase; }
.plan-subscription > header p { color: var(--muted); margin: 1.15rem 0 0; max-width: 46ch; }
.plan-subscription__status { align-self: start; border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); display: grid; gap: .55rem; padding: 1.25rem 0; }
.plan-subscription__status > span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.plan-subscription__status > strong { font-family: var(--display); font-size: clamp(1.55rem, 2.5vw, 2.15rem); line-height: 1; text-transform: uppercase; }
.plan-subscription__status > p { color: var(--muted); margin: 0; max-width: 68ch; }
.plan-subscription__status > a { align-items: center; display: inline-flex; font-weight: 650; gap: .65rem; justify-self: start; margin-top: .5rem; text-decoration: none; }
.plan-subscription__status > a .icon { height: 1.1rem; width: 1.1rem; }
.plan-subscription__status.is-cancelled { border-top-color: var(--teal-deep); }
.plan-subscription__form { border-bottom: 1px solid var(--ink); display: grid; gap: 0; grid-column: 2; margin-top: -3.2rem; }
.plan-subscription__form > label:first-of-type { display: grid; gap: .55rem; padding: 1rem 0; }
.plan-subscription__form label > span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.plan-subscription__form input[type="text"] { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 3.25rem; padding: .8rem .9rem; width: min(100%, 28rem); }
.plan-subscription__form input[type="text"]:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.plan-subscription__form small { color: var(--muted); }
.plan-subscription__confirmation { align-items: start; border-top: 1px solid var(--line); display: flex; gap: .75rem; padding: 1rem 0; }
.plan-subscription__confirmation input { accent-color: var(--danger); flex: 0 0 auto; height: 1.15rem; margin-top: .08rem; width: 1.15rem; }
.plan-subscription__confirmation span { color: var(--ink) !important; font-family: inherit !important; font-size: 1rem !important; letter-spacing: 0 !important; max-width: 72ch; text-transform: none !important; }
.plan-subscription__submit { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 1.5rem; justify-content: space-between; padding: 1rem 0; }
.plan-subscription__submit p { color: var(--muted); margin: 0; max-width: 48ch; }
.plan-subscription__submit button { background: transparent; border: 1px solid var(--danger); color: var(--danger); cursor: pointer; flex: 0 0 auto; font: inherit; font-weight: 650; min-height: 3rem; padding: .7rem 1rem; }
.plan-subscription__submit button:hover { background: var(--danger); color: var(--paper); }
.plan-subscription__submit button:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.plan-subscription__submit button:disabled { background: var(--line); border-color: var(--line); color: var(--muted); cursor: wait; }

.plan-entitlements { background: var(--paper); max-width: none; }
.plan-entitlements > header { display: grid; gap: 2rem; grid-template-columns: minmax(18rem, .8fr) minmax(20rem, 1.2fr); margin: 0 auto 3rem; max-width: 76rem; }
.plan-entitlements > header h2 { max-width: 12ch; }
.plan-entitlements__ledger { border-top: 1px solid var(--ink); list-style: none; margin: 0 auto; max-width: 76rem; padding: 0; }
.plan-entitlements__ledger li { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1.25rem; grid-template-columns: 2.2rem minmax(16rem, 1fr) minmax(14rem, .65fr); min-height: 6rem; padding: 1rem 0; }
.plan-entitlements__ledger li > span { color: var(--teal-deep); font-family: var(--display); font-size: .75rem; letter-spacing: .08em; }
.plan-entitlements__ledger li > div > strong { font-family: var(--display); font-size: 1.22rem; letter-spacing: .01em; text-transform: uppercase; }
.plan-entitlements__ledger li p { color: var(--muted); font-size: .83rem; margin: .25rem 0 0; max-width: 60ch; }
.plan-entitlements__state { justify-self: stretch; text-align: right; }
.plan-entitlements__state strong { color: var(--teal-deep); display: block; }
.plan-entitlements__ledger li:not(.is-enabled) .plan-entitlements__state strong { color: var(--muted); }
.plan-entitlements__state small { color: var(--muted); display: block; font-size: .74rem; margin-top: .3rem; }
.plan-entitlements > footer { align-items: center; border-top: 1px solid var(--ink); display: flex; gap: 2rem; justify-content: space-between; margin: 3rem auto 0; max-width: 76rem; padding-top: 1.25rem; }
.plan-entitlements > footer p { color: var(--muted); font-size: .82rem; margin: 0; max-width: 56ch; }
.plan-entitlements > footer a { align-items: center; display: inline-flex; font-weight: 600; gap: .65rem; text-decoration: none; }
.plan-entitlements > footer a .icon { height: 1.15rem; width: 1.15rem; }

@keyframes plan-route-settle { from { transform: scaleX(.12); } to { transform: scaleX(1); } }
.plan-capacity__route progress { animation: plan-route-settle .75s var(--ease-out) both; }

@media (max-width: 980px) {
    .plan-register { grid-template-columns: 1fr 1fr; }
    .plan-capacity, .plan-subscription { grid-template-columns: 1fr; }
    .plan-capacity > header { display: grid; gap: 2rem; grid-template-columns: 1fr 1fr; }
    .plan-subscription__form { grid-column: auto; margin-top: -1rem; }
}

@media (max-width: 700px) {
    .plan-register { gap: 1.75rem; grid-template-areas: "identity" "stamp" "capacity" "ledger"; grid-template-columns: 1fr; min-height: 0; padding-block: 2.5rem; }
    .plan-register::after { height: 14rem; right: -8rem; top: -8rem; width: 22rem; }
    .plan-register__identity h1 { font-size: clamp(3.3rem, 15vw, 4.6rem); }
    .plan-register__stamp { margin-top: 1rem; }
    .plan-register__ledger div { grid-template-columns: 1fr; gap: .2rem; }
    .plan-register__ledger dd { text-align: left; }
    .plan-capacity > header, .plan-entitlements > header { grid-template-columns: 1fr; }
    .plan-capacity--embedded { border-top-color: rgba(255,255,255,.35); padding-top: 1.25rem; }
    .plan-capacity--embedded > header p { display: none; }
    .plan-capacity--embedded .plan-capacity__reading { margin-bottom: .75rem; }
    .plan-capacity--embedded .plan-capacity__reading strong { font-size: 3rem; }
    .plan-capacity__remaining { grid-template-columns: 1fr; }
    .plan-entitlements__ledger li { align-items: start; grid-template-columns: 1.8rem 1fr; padding-block: 1.25rem; }
    .plan-entitlements__state { grid-column: 2; justify-self: start; text-align: left; }
    .plan-entitlements > footer { align-items: stretch; flex-direction: column; }
    .plan-entitlements > footer a { justify-content: space-between; }
    .plan-subscription__submit { align-items: stretch; flex-direction: column; }
    .plan-subscription__submit button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .plan-capacity__route progress { animation: none; }
}

/* Arquivos: biblioteca privada e registro de prontidão */
.files-main { background: var(--mineral); min-height: 100svh; }
.files-topbar > strong { font-family: var(--display); font-size: 1.35rem; letter-spacing: .02em; text-transform: uppercase; }
.files-register { align-items: end; background: var(--ink); color: var(--paper); display: grid; gap: clamp(2.5rem, 7vw, 7rem); grid-template-columns: minmax(20rem, 1.15fr) minmax(18rem, .85fr); min-height: 27rem; overflow: hidden; padding: clamp(2.75rem, 5vw, 4.5rem) clamp(1.5rem, 5vw, 5rem); position: relative; }
.files-register::after { border: 1px solid rgba(216,242,58,.3); border-radius: 50%; content: ""; height: 20rem; pointer-events: none; position: absolute; right: -9rem; top: -13rem; width: 34rem; }
.files-register__identity, .files-register__ledger { position: relative; z-index: 1; }
.files-register__identity h1 { font-family: var(--display); font-size: clamp(3.7rem, 5.55vw, 5.35rem); letter-spacing: -.03em; line-height: .88; margin: 0; max-width: 10ch; text-transform: uppercase; }
.files-register__identity p { color: var(--line); font-size: 1rem; margin: 1.35rem 0 0; max-width: 55ch; }
.files-register__ledger { margin: 0; }
.files-register__ledger div { align-items: baseline; border-bottom: 1px solid rgba(255,255,255,.24); display: grid; gap: 1rem; grid-template-columns: minmax(9rem, .85fr) 1fr; padding: .75rem 0; }
.files-register__ledger dt { color: var(--line); font-family: var(--display); font-size: .8rem; letter-spacing: .055em; text-transform: uppercase; }
.files-register__ledger dd { font-weight: 650; margin: 0; text-align: right; }

.files-readiness, .files-consent-choice, .files-upload, .files-knowledge-note, .files-library, .files-removed, .files-use-route { margin-inline: auto; max-width: 82rem; padding: clamp(3.75rem, 7vw, 6.5rem) clamp(1.5rem, 5vw, 5rem); }
.files-readiness { display: grid; gap: clamp(2.5rem, 6vw, 6rem); grid-template-columns: minmax(17rem, .72fr) minmax(26rem, 1.28fr); }
.files-readiness > header h2, .files-library > header h2, .files-removed > header h2, .files-use-route > header h2 { font-family: var(--display); font-size: clamp(2.7rem, 5vw, 5rem); letter-spacing: -.025em; line-height: .94; margin: 0; max-width: 11ch; text-transform: uppercase; }
.files-readiness > header p, .files-library > header p, .files-removed > header p, .files-use-route > header p { color: var(--muted); margin: 1.2rem 0 0; max-width: 52ch; }
.files-readiness__route { border-top: 1px solid var(--ink); list-style: none; margin: 0; padding: 0; }
.files-readiness__route li { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 2rem minmax(0, 1fr) auto; min-height: 6.25rem; padding: 1rem 0; }
.files-readiness__route li > span { color: var(--coral); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; }
.files-readiness__route li.is-ready > span { color: var(--teal-deep); }
.files-readiness__route strong { font-family: var(--display); font-size: 2rem; letter-spacing: .01em; line-height: 1; text-transform: uppercase; }
.files-readiness__route p { color: var(--muted); font-size: .82rem; margin: .3rem 0 0; max-width: 52ch; }
.files-readiness__route small { color: var(--coral); font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.files-readiness__route .is-ready small { color: var(--teal-deep); }

.files-consent-choice { align-items: center; border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); display: grid; gap: clamp(2rem, 6vw, 6rem); grid-template-columns: minmax(17rem, .72fr) minmax(20rem, 1.28fr); padding-block: clamp(2.5rem, 5vw, 4rem); }
.files-consent-choice h2 { font-family: var(--display); font-size: clamp(2.7rem, 5vw, 5rem); letter-spacing: -.025em; line-height: .94; margin: 0; max-width: 10ch; text-transform: uppercase; }
.files-consent-choice p { color: var(--muted); margin: 1rem 0 0; max-width: 58ch; }
.files-consent-choice .button { justify-self: end; text-decoration: none; }
.files-consent-choice .button:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }

.files-upload { border-top: 1px solid var(--ink); display: grid; gap: clamp(2.5rem, 6vw, 6rem); grid-template-columns: minmax(17rem, .72fr) minmax(26rem, 1.28fr); padding-top: clamp(3.5rem, 6vw, 5.5rem); }
.files-upload > header h2 { font-family: var(--display); font-size: clamp(2.7rem, 5vw, 5rem); letter-spacing: -.025em; line-height: .94; margin: 0; max-width: 10ch; text-transform: uppercase; }
.files-upload > header p { color: var(--muted); margin: 1.2rem 0 0; max-width: 52ch; }
.files-upload form { border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); min-width: 0; padding: 1.4rem 0; }
.files-upload__field label { display: block; font-weight: 700; margin-bottom: .65rem; }
.files-upload__field input[type="file"] { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); cursor: pointer; font-size: 1rem; min-height: 3.5rem; padding: .38rem; width: 100%; }
.files-upload__field input[type="file"]::file-selector-button { background: var(--ink); border: 0; color: var(--paper); cursor: pointer; font: inherit; font-weight: 650; margin-right: .8rem; min-height: 2.65rem; padding: .65rem .9rem; }
.files-upload__field input[type="file"]:hover::file-selector-button { background: var(--teal-deep); }
.files-upload__field input[type="file"]:focus-visible { background: var(--paper); outline: 3px solid var(--coral); outline-offset: 3px; }
.files-upload__field > p { color: var(--muted); font-size: .82rem; margin: .65rem 0 0; overflow-wrap: anywhere; }
.files-upload__selection { color: var(--ink) !important; font-weight: 650; }
.files-upload__action { align-items: end; border-top: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) auto; margin-top: 1.25rem; padding-top: 1.25rem; }
.files-upload__action p { color: var(--muted); font-size: .82rem; margin: 0; max-width: 52ch; }
.files-upload__action .button { border: 0; white-space: nowrap; }
.files-upload__action .button[disabled] { box-shadow: none; cursor: wait; filter: grayscale(.35); opacity: .7; transform: none; }
.files-upload__status { color: var(--teal-deep); font-size: .82rem; font-weight: 700; margin: .8rem 0 0; min-height: 1.25rem; }

.files-knowledge-note { align-items: center; border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); display: grid; gap: 1.5rem; grid-template-columns: 3.5rem minmax(0, 1fr) auto; padding-block: 1.75rem; }
.files-knowledge-note > span { align-items: center; background: var(--chartreuse); color: var(--ink); display: flex; height: 3.5rem; justify-content: center; width: 3.5rem; }
.files-knowledge-note > span svg { height: 1.6rem; width: 1.6rem; }
.files-knowledge-note h2 { font-family: var(--display); font-size: 1.75rem; line-height: 1; margin: 0; text-transform: uppercase; }
.files-knowledge-note p { color: var(--muted); font-size: .84rem; margin: .45rem 0 0; max-width: 72ch; }
.files-knowledge-note > a { align-items: center; color: var(--ink); display: inline-flex; font-weight: 700; gap: .65rem; text-decoration: none; white-space: nowrap; }
.files-knowledge-note > a:hover { color: var(--teal-deep); }
.files-knowledge-note > a:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.files-knowledge-note > a svg { height: 1.1rem; width: 1.1rem; }

.files-library { background: var(--paper); max-width: none; }
.files-library > header, .files-library > .files-empty, .files-library > .files-ledger { margin-inline: auto; max-width: 72rem; }
.files-library > header { align-items: end; display: grid; gap: 2rem; grid-template-columns: 1fr auto; margin-bottom: 2.5rem; }
.files-library > header dl { display: grid; grid-template-columns: repeat(2, minmax(7rem, 1fr)); margin: 0; }
.files-library > header dl div { border-bottom: 1px solid var(--ink); min-width: 8rem; padding: .6rem 0 .6rem 1.25rem; }
.files-library > header dl div + div { margin-left: 1.5rem; }
.files-library > header dt { color: var(--muted); font-family: var(--display); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.files-library > header dd { font-family: var(--display); font-size: 1.55rem; margin: .3rem 0 0; }
.files-library > header dl small { color: var(--muted); display: block; font-size: .7rem; margin-top: .2rem; max-width: 15rem; }
.files-empty { align-items: center; border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); grid-template-columns: 5rem 1fr; min-height: 12rem; padding: 2rem 0; }
.files-empty > span { align-items: center; background: var(--chartreuse); color: var(--ink); display: flex; height: 5rem; justify-content: center; width: 5rem; }
.files-empty > span svg { height: 2.25rem; width: 2.25rem; }
.files-empty strong { font-family: var(--display); font-size: 2rem; text-transform: uppercase; }
.files-empty p { color: var(--muted); margin: .5rem 0 0; max-width: 60ch; }
.files-ledger { border-top: 1px solid var(--ink); list-style: none; padding: 0; }
.files-ledger li { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1.25rem; grid-template-columns: 3.5rem minmax(14rem, 1fr) minmax(11rem, auto) auto; min-height: 5.25rem; padding: .8rem 0; }
.files-ledger li > span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; }
.files-ledger li > div:nth-of-type(2) { text-align: right; }
.files-ledger li strong, .files-ledger li small { display: block; }
.files-ledger li small { color: var(--muted); font-size: .76rem; margin-top: .25rem; }
.files-ledger li > div { min-width: 0; }
.files-ledger li > div strong, .files-ledger li > div small { overflow-wrap: anywhere; }
.files-ledger form { margin: 0; }
.files-ledger__actions { align-items: center; display: flex; flex-wrap: wrap; gap: .55rem; justify-content: flex-end; max-width: 27rem; }
.files-ledger button { background: transparent; border: 1px solid var(--ink); color: var(--ink); cursor: pointer; font: 700 .78rem/1 var(--body); min-height: 2.75rem; padding: .7rem .9rem; }
.files-ledger button.is-primary { background: var(--ink); color: var(--paper); }
.files-ledger button.is-knowledge { background: var(--chartreuse); border-color: var(--chartreuse); }
.files-ledger button:hover { background: var(--ink); color: var(--paper); }
.files-ledger button.is-primary:hover { background: var(--teal-deep); border-color: var(--teal-deep); }
.files-ledger button:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.files-ledger__review-note { color: var(--coral) !important; max-width: 34ch; }
.files-knowledge-request { min-width: 11rem; }
.files-knowledge-request summary { align-items: center; background: var(--chartreuse); border: 1px solid var(--chartreuse); cursor: pointer; display: flex; font-size: .78rem; font-weight: 700; min-height: 2.75rem; padding: .7rem .9rem; }
.files-knowledge-request summary::-webkit-details-marker { display: none; }
.files-knowledge-request summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.files-knowledge-request[open] { flex-basis: 100%; max-width: 25rem; }
.files-knowledge-request[open] summary { background: var(--ink); color: var(--paper); }
.files-knowledge-request form { background: var(--mineral); border: 1px solid var(--line); display: grid; gap: .8rem; margin-top: .5rem; padding: .85rem; text-align: left; }
.files-knowledge-request label { color: var(--muted); display: grid; font-size: .76rem; gap: .6rem; grid-template-columns: auto 1fr; line-height: 1.45; }
.files-knowledge-request input[type="checkbox"] { accent-color: var(--teal-deep); height: 1rem; margin-top: .1rem; width: 1rem; }

.files-removed { padding-top: 0; }
.files-removed > header, .files-removed > .files-ledger { margin-inline: auto; max-width: 72rem; }
.files-removed > header { border-top: 1px solid var(--ink); display: grid; gap: 2rem; grid-template-columns: minmax(15rem, .7fr) minmax(20rem, 1.3fr); padding-top: clamp(3rem, 6vw, 5rem); }
.files-removed > header h2 { font-size: clamp(2.4rem, 4vw, 3.8rem); }
.files-removed > header p { margin-top: 0; }
.files-ledger--removed { margin-top: 2.25rem; opacity: .84; }
.files-ledger--removed li > span { color: var(--coral); }

.files-use-route { padding-top: 0; }
.files-use-route > header { align-items: end; border-top: 1px solid var(--ink); display: grid; gap: 2rem; grid-template-columns: minmax(16rem, .75fr) minmax(20rem, 1.25fr); padding-top: clamp(3.75rem, 7vw, 6.5rem); }
.files-use-route > ol { border-bottom: 1px solid var(--ink); border-top: 1px solid var(--ink); display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 3rem 0 0; padding: 0; }
.files-use-route > ol li { display: grid; gap: .65rem; min-height: 13rem; padding: 1.4rem 1.5rem 1.5rem 0; }
.files-use-route > ol li + li { border-left: 1px solid var(--line); padding-left: 1.5rem; }
.files-use-route > ol span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; }
.files-use-route > ol strong { align-self: end; font-family: var(--display); font-size: 2rem; text-transform: uppercase; }
.files-use-route > ol p { color: var(--muted); font-size: .84rem; margin: 0; }
.files-use-route > footer { align-items: center; display: flex; gap: 2rem; justify-content: space-between; padding-top: 1.25rem; }
.files-use-route > footer p { color: var(--muted); font-size: .82rem; margin: 0; max-width: 58ch; }
.files-use-route > footer a { align-items: center; color: var(--ink); display: inline-flex; font-weight: 700; gap: .7rem; text-decoration: none; white-space: nowrap; }
.files-use-route > footer a:hover { color: var(--teal-deep); }
.files-use-route > footer a:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.files-use-route > footer svg { height: 1.2rem; width: 1.2rem; }

@keyframes files-route-settle { from { clip-path: inset(0 88% 0 0); } to { clip-path: inset(0); } }
.files-readiness__route { animation: files-route-settle .7s var(--ease-out) both; }

@media (max-width: 980px) {
    .settings-paths__ledger { grid-template-columns: 1fr 1fr; }
    .settings-paths__ledger a:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
    .settings-paths__ledger a:nth-child(4) { border-top: 1px solid var(--line); }
    .files-register, .files-readiness { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
    .files-register, .files-readiness, .files-consent-choice, .files-upload, .files-knowledge-note, .files-library > header, .files-removed > header, .files-use-route > header { grid-template-columns: 1fr; }
    .files-register { gap: 2rem; min-height: 0; padding-block: 2.75rem; }
    .files-register::after { height: 13rem; right: -8rem; top: -9rem; width: 22rem; }
    .files-register__identity h1 { font-size: clamp(3.7rem, 14.5vw, 5.35rem); }
    .files-register__ledger div { gap: .2rem; grid-template-columns: 1fr; }
    .files-register__ledger dd { text-align: left; }
    .files-library > header { align-items: start; }
    .files-library > header dl { width: 100%; }
    .files-library > header dl div:first-child { padding-left: 0; }
    .files-library > header dd { font-size: 1.3rem; }
    .files-empty { grid-template-columns: 3.75rem 1fr; }
    .files-empty > span { height: 3.75rem; width: 3.75rem; }
    .files-knowledge-note > a { white-space: normal; }
    .files-ledger li { align-items: start; grid-template-columns: 3rem minmax(0, 1fr); padding-block: 1rem; }
    .files-ledger li > div:nth-of-type(2) { grid-column: 2; text-align: left; }
    .files-ledger li > .files-ledger__actions { align-items: stretch; grid-column: 1 / -1; justify-content: flex-start; max-width: none; }
    .files-knowledge-request[open] { max-width: 100%; width: 100%; }
    .files-use-route > ol { grid-template-columns: 1fr; }
    .files-use-route > ol li { min-height: 0; padding: 1.35rem 0; }
    .files-use-route > ol li + li { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; }
    .files-use-route > footer { align-items: stretch; flex-direction: column; }
    .files-use-route > footer a { justify-content: space-between; }
    .files-upload__action { align-items: stretch; grid-template-columns: 1fr; }
    .files-upload__action .button { justify-content: space-between; white-space: normal; width: 100%; }
    .files-consent-choice .button { justify-content: space-between; justify-self: stretch; white-space: normal; width: 100%; }
}

@media (max-width: 560px) {
    .settings-paths__ledger { grid-template-columns: 1fr; }
    .settings-paths__ledger a, .settings-paths__ledger a:nth-child(4) { border-left: 0; border-top: 1px solid var(--line); min-height: 0; padding: 1.25rem 0; }
    .settings-paths__ledger a:first-child { border-top: 0; }
    .files-readiness__route li { align-items: start; grid-template-columns: 1.75rem minmax(0, 1fr); }
    .files-readiness__route li > small { grid-column: 2; }
    .files-ledger__actions form, .files-ledger__actions button, .files-knowledge-request { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .files-readiness__route { animation: none; }
}

/* Conhecimento global: livro-caixa editorial para fontes da plataforma. */
.knowledge-admin-ledger { overflow-x: clip; }
.knowledge-heading h1 { max-width: 10ch; }
.knowledge-heading p strong { color: var(--ink); }
.knowledge-summary dd { font-variant-numeric: tabular-nums; }
.knowledge-intake__forms { border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.knowledge-intake-form { align-content: start; display: grid; gap: 1rem; min-width: 0; padding: 1.4rem 1.5rem 1.5rem 0; }
.knowledge-intake-form + .knowledge-intake-form { border-left: 1px solid var(--line); padding-left: 1.5rem; padding-right: 0; }
.knowledge-intake-form header { border-bottom: 1px solid var(--line); min-height: 7rem; padding-bottom: 1rem; }
.knowledge-intake-form header > span { color: var(--teal-deep); font-family: var(--display); font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; }
.knowledge-intake-form h3 { font-family: var(--display); font-size: 2rem; line-height: 1; margin: .25rem 0; text-transform: uppercase; }
.knowledge-intake-form header p { color: var(--muted); font-size: .82rem; margin: 0; }
.knowledge-intake-form > label { display: grid; gap: .42rem; min-width: 0; }
.knowledge-intake-form label > span, .knowledge-interval-form label > span { color: var(--muted); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.knowledge-intake-form input, .knowledge-intake-form select, .knowledge-interval-form input { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: inherit; min-height: 3.2rem; padding: .7rem .8rem; width: 100%; }
.knowledge-intake-form input[type="file"] { background: var(--paper); cursor: pointer; padding: .3rem; }
.knowledge-intake-form input[type="file"]::file-selector-button { background: var(--ink); border: 0; color: var(--paper); cursor: pointer; font: inherit; font-weight: 650; margin-right: .75rem; min-height: 2.5rem; padding: .6rem .8rem; }
.knowledge-intake-form input[type="file"]:hover::file-selector-button { background: var(--teal-deep); }
.knowledge-intake-form input:focus-visible, .knowledge-intake-form select:focus-visible, .knowledge-interval-form input:focus-visible { background: var(--paper); border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.knowledge-file-field small { color: var(--muted); font-size: .76rem; min-height: 1.2rem; overflow-wrap: anywhere; }
.knowledge-intake-form > .admin-save { justify-self: end; margin-top: auto; }
.knowledge-fail-open { background: var(--ink); color: var(--paper); display: grid; gap: 1rem; grid-template-columns: minmax(12rem, .55fr) minmax(20rem, 1.45fr); margin-top: 2rem; padding: 1.25rem; }
.knowledge-fail-open strong { color: var(--chartreuse); font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.knowledge-fail-open p { margin: 0; max-width: 72ch; }
.knowledge-empty { border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); display: grid; gap: 1rem; grid-template-columns: minmax(13rem, .55fr) minmax(20rem, 1.45fr); padding: 1.5rem 0; }
.knowledge-empty strong { font-family: var(--display); font-size: 2rem; text-transform: uppercase; }
.knowledge-empty p { color: var(--muted); margin: 0; }
.knowledge-source-ledger { border-top: 2px solid var(--ink); }
.knowledge-source-ledger__labels { color: var(--muted); display: grid; font-family: var(--display); font-size: .68rem; gap: 1.25rem; grid-template-columns: minmax(13rem, 1.15fr) minmax(12rem, .8fr) minmax(14rem, 1fr) minmax(12rem, .9fr); letter-spacing: .08em; padding: .7rem 0; text-transform: uppercase; }
.knowledge-source-row { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem 1.25rem; grid-template-areas: "identity state dates actions" "error error error actions" "disclosures disclosures disclosures actions"; grid-template-columns: minmax(13rem, 1.15fr) minmax(12rem, .8fr) minmax(14rem, 1fr) minmax(12rem, .9fr); padding: 1.3rem 0; scroll-margin-top: 1rem; }
.knowledge-source-row:focus-within { background: rgba(16,27,77,.025); }
.knowledge-source-row__identity { grid-area: identity; min-width: 0; }
.knowledge-source-row__identity > span { color: var(--teal-deep); font-family: var(--display); font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; }
.knowledge-source-row__identity h3 { font-family: var(--display); font-size: 1.55rem; line-height: 1; margin: .25rem 0; overflow-wrap: anywhere; text-transform: uppercase; }
.knowledge-source-row__identity p { color: var(--muted); font-size: .76rem; margin: 0; overflow-wrap: anywhere; }
.knowledge-source-row__state, .knowledge-source-row__dates { display: grid; gap: .7rem; margin: 0; min-width: 0; }
.knowledge-source-row__state { grid-area: state; }
.knowledge-source-row__dates { grid-area: dates; }
.knowledge-source-row__state div, .knowledge-source-row__dates div { border-left: 1px solid var(--line); min-width: 0; padding-left: .75rem; }
.knowledge-source-row dt { color: var(--muted); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.knowledge-source-row dd { font-size: .84rem; margin: .22rem 0 0; overflow-wrap: anywhere; }
.knowledge-state { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; }
.knowledge-state--queued, .knowledge-state--processing { color: var(--ink); }
.knowledge-state--paused, .knowledge-state--retired, .knowledge-state--superseded, .knowledge-state--pruning, .knowledge-state--pruned { color: var(--muted); }
.knowledge-state--error { color: var(--danger); }
.knowledge-source-error { align-items: start; background: #fff0ee; color: #72251f; display: grid; gap: .35rem; grid-area: error; margin: 0; padding: .75rem .85rem; }
.knowledge-source-error strong { font-family: var(--display); text-transform: uppercase; }
.knowledge-source-error span { font-size: .82rem; }
.knowledge-source-disclosures { display: grid; gap: .65rem; grid-area: disclosures; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; }
.knowledge-source-disclosures details { border-top: 1px solid var(--line); min-width: 0; }
.knowledge-source-disclosures summary, .knowledge-retire-confirmation > summary { color: var(--teal-deep); cursor: pointer; font-size: .82rem; font-weight: 650; padding: .7rem 0; }
.knowledge-source-row summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.knowledge-source-disclosures details > div { background: var(--mineral); min-height: 7rem; padding: .8rem; }
.knowledge-source-disclosures details strong { font-family: var(--display); text-transform: uppercase; }
.knowledge-source-disclosures details p { color: var(--muted); font-size: .8rem; margin: .35rem 0 0; max-width: 62ch; overflow-wrap: anywhere; }
.knowledge-source-preview__content { max-height: 12rem; overflow: auto; white-space: normal; }
.knowledge-source-history ol { display: grid; gap: .65rem; list-style: none; margin: 0; padding: 0; }
.knowledge-source-history li { background: var(--mineral); min-width: 0; padding: .8rem; }
.knowledge-source-history li > div { align-items: center; display: flex; gap: .75rem; justify-content: space-between; }
.knowledge-source-history li dl { display: grid; gap: .45rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: .65rem 0 0; }
.knowledge-source-history li dl div { border-top: 1px solid var(--line); min-width: 0; padding-top: .35rem; }
.knowledge-source-history li dd { font-size: .75rem; }
.knowledge-source-actions { align-content: start; display: grid; gap: .6rem; grid-area: actions; min-width: 0; }
.knowledge-source-actions form { margin: 0; min-width: 0; }
.knowledge-source-actions > form > button, .knowledge-source-actions > details { width: 100%; }
.knowledge-source-actions button { width: 100%; }
.knowledge-source-actions button:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.knowledge-interval-form { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; gap: .55rem; padding: .7rem 0; }
.knowledge-interval-form label { display: grid; gap: .3rem; }
.knowledge-interval-form input { min-height: 2.8rem; padding-block: .5rem; }
.knowledge-interval-form small { color: var(--muted); font-size: .7rem; }
.knowledge-retire-confirmation { border-top: 1px solid var(--line); }
.knowledge-retire-confirmation[open] { background: #fff0ee; padding: 0 .75rem .75rem; }
.knowledge-retire-confirmation[open] > summary { margin-bottom: .35rem; }
.knowledge-retire-confirmation form { display: grid; gap: .7rem; }
.knowledge-retire-confirmation p { color: #72251f; font-size: .78rem; margin: 0; }
.knowledge-retire-confirmation label { align-items: start; display: flex; font-size: .78rem; gap: .55rem; }
.knowledge-retire-confirmation input { accent-color: var(--danger); flex: 0 0 auto; height: 1rem; margin-top: .15rem; width: 1rem; }

@media (max-width: 1350px) {
    .knowledge-source-ledger__labels { display: none; }
    .knowledge-source-row { grid-template-areas: "identity state" "dates dates" "error error" "disclosures disclosures" "actions actions"; grid-template-columns: minmax(13rem, 1fr) minmax(15rem, 1fr); }
    .knowledge-source-actions { align-items: end; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .knowledge-source-actions > details { align-self: stretch; }
}

@media (max-width: 900px) {
    .knowledge-intake__forms { grid-template-columns: 1fr; }
    .knowledge-intake-form { padding-right: 0; }
    .knowledge-intake-form + .knowledge-intake-form { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; }
    .knowledge-intake-form header { min-height: 0; }
    .knowledge-fail-open, .knowledge-empty { grid-template-columns: 1fr; }
    .knowledge-source-row { grid-template-areas: "identity identity" "state dates" "error error" "disclosures disclosures" "actions actions"; }
    .knowledge-source-actions { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .admin-mobile-navigation nav { grid-template-columns: 1fr; }
    .knowledge-summary { grid-template-columns: 1fr 1fr; }
    .knowledge-summary div:nth-child(2) { border-right: 0; }
    .knowledge-summary div:nth-child(n+3) { border-top: 1px solid var(--line); }
    .knowledge-intake-form { padding-block: 1.15rem; }
    .knowledge-intake-form > .admin-save { justify-self: stretch; width: 100%; }
    .knowledge-source-row { grid-template-areas: "identity" "state" "dates" "error" "disclosures" "actions"; grid-template-columns: 1fr; }
    .knowledge-source-row__state div, .knowledge-source-row__dates div { border-left: 0; border-top: 1px solid var(--line); padding: .65rem 0 0; }
    .knowledge-source-disclosures, .knowledge-source-actions { grid-template-columns: 1fr; }
    .knowledge-source-disclosures details > div { min-height: 0; }
}

/* Resumo da memória: leitura editorial e governança sem duplicação. */
.memory-summary-section { background: var(--ink); color: var(--paper); }
.memory-summary-section .personalization-section__head p { color: #c6d3da; }
.memory-summary-register { border-bottom: 1px solid rgba(255,255,255,.38); border-top: 2px solid var(--chartreuse); }
.memory-summary-register__state { display: grid; gap: clamp(1.5rem, 4vw, 4rem); grid-template-columns: minmax(14rem, .62fr) minmax(20rem, 1.38fr); padding: 1.5rem 0; }
.memory-summary-register__state strong { color: var(--chartreuse); font-family: var(--display); font-size: clamp(1.7rem, 3vw, 2.55rem); line-height: .95; text-transform: uppercase; }
.memory-summary-register__state p { color: #d4dee3; margin: 0; max-width: 72ch; }
.memory-summary-list { border-top: 1px solid rgba(255,255,255,.25); list-style: none; margin: 0; padding: 0; }
.memory-summary-list li { border-bottom: 1px solid rgba(255,255,255,.18); display: grid; gap: 1.25rem; grid-template-columns: minmax(11rem, .48fr) minmax(20rem, 1.52fr); padding: 1rem 0; }
.memory-summary-list span { color: var(--teal); font-family: var(--display); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.memory-summary-list p { margin: 0; max-width: 72ch; overflow-wrap: anywhere; }
.memory-summary-register__footer { align-items: center; display: flex; gap: 2rem; justify-content: space-between; padding: 1.2rem 0; }
.memory-summary-register__footer dl { display: flex; gap: 2rem; margin: 0; }
.memory-summary-register__footer dl div { display: grid; gap: .2rem; }
.memory-summary-register__footer dt { color: #aebdc6; font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; }
.memory-summary-register__footer dd { font-variant-numeric: tabular-nums; margin: 0; }
.memory-summary-register__footer a { border-bottom: 1px solid var(--chartreuse); color: var(--chartreuse); font-weight: 650; padding-block: .25rem; text-decoration: none; white-space: nowrap; }
.memory-summary-register__footer a:hover { color: var(--paper); }
.memory-summary-register__footer a:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.memory-section { scroll-margin-top: 1rem; }

.memory-admin-heading h1 { max-width: 10ch; }
.memory-admin-heading dd { font-variant-numeric: tabular-nums; }
.memory-governance-form { border-bottom: 1px solid var(--ink); border-top: 2px solid var(--ink); display: grid; gap: 1.5rem; padding: 1.5rem 0; }
.memory-governance-switch { align-items: start; cursor: pointer; display: grid; gap: .9rem; grid-template-columns: auto minmax(0, 1fr); max-width: 72rem; }
.memory-governance-switch input { accent-color: var(--teal-deep); height: 1.25rem; margin-top: .2rem; width: 1.25rem; }
.memory-governance-switch > span { display: grid; gap: .25rem; }
.memory-governance-switch strong { font-family: var(--display); font-size: 1.5rem; text-transform: uppercase; }
.memory-governance-switch small { color: var(--muted); max-width: 72ch; }
.memory-governance-switch:has(input:focus-visible) { outline: 3px solid var(--coral); outline-offset: 4px; }
.memory-governance-fields { border-top: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: 1.5rem; }
.memory-governance-fields label { display: grid; gap: .4rem; min-width: 0; }
.memory-governance-fields label > span { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.memory-governance-fields input { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: inherit; font-variant-numeric: tabular-nums; min-height: 3.2rem; padding: .7rem .8rem; width: 100%; }
.memory-governance-fields input:focus-visible { background: var(--paper); border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.memory-governance-fields small { color: var(--muted); }
.memory-governance-boundary { background: var(--ink); color: var(--paper); display: grid; gap: 1rem; grid-template-columns: minmax(13rem, .55fr) minmax(20rem, 1.45fr); padding: 1.2rem; }
.memory-governance-boundary strong { color: var(--chartreuse); font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.memory-governance-boundary p { color: #d4dee3; margin: 0; max-width: 72ch; }
.memory-governance-form > .admin-save { justify-self: end; }

@media (max-width: 820px) {
    .memory-summary-register__state, .memory-summary-list li, .memory-governance-boundary { grid-template-columns: 1fr; }
    .memory-governance-fields { grid-template-columns: 1fr 1fr; }
    .memory-governance-fields label:last-child { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
    .memory-summary-register__footer { align-items: stretch; flex-direction: column; }
    .memory-summary-register__footer dl { display: grid; gap: .8rem; }
    .memory-summary-register__footer a { align-self: flex-start; }
    .memory-governance-fields { grid-template-columns: 1fr; }
    .memory-governance-fields label:last-child { grid-column: auto; }
    .memory-governance-form > .admin-save { justify-self: stretch; width: 100%; }
}

/* Contato público: canal direto dentro do Atlas. */
.public-contact { background: var(--mineral); }
.contact-hero { align-items: end; border-bottom: 1px solid var(--ink); display: grid; gap: clamp(2rem,6vw,7rem); grid-template-columns: minmax(0,1.2fr) minmax(20rem,.8fr); isolation: isolate; min-height: 30rem; overflow: hidden; padding: clamp(3.5rem,7vw,7rem) clamp(1rem,7vw,7rem); position: relative; }
.contact-hero > svg { inset: 0; height: 100%; position: absolute; width: 100%; z-index: -1; }
.contact-hero > svg path { fill: none; stroke: rgba(31,165,138,.28); stroke-width: 1; vector-effect: non-scaling-stroke; }
.contact-hero h1 { font-family: var(--display); font-size: clamp(3.8rem,7vw,6rem); letter-spacing: -.03em; line-height: .88; margin: 0; text-transform: uppercase; }
.contact-hero > div > p { color: var(--muted); font-size: 1.1rem; margin: 1.25rem 0 0; max-width: 55ch; }
.contact-hero aside { background: var(--ink); color: var(--paper); display: grid; gap: .9rem; margin-bottom: .25rem; padding: clamp(1.5rem,3vw,2.5rem); }
.contact-hero aside strong { color: var(--chartreuse); font-family: var(--display); font-size: 1.7rem; line-height: 1; text-transform: uppercase; }
.contact-hero aside p { color: #d4dee3; margin: 0; }
.contact-hero aside span { border-top: 1px solid rgba(255,255,255,.28); color: #d4dee3; font-size: .78rem; letter-spacing: .08em; padding-top: .8rem; text-transform: uppercase; }
.contact-workspace { display: grid; gap: clamp(2.5rem,6vw,7rem); grid-template-columns: minmax(17rem,.55fr) minmax(30rem,1.45fr); padding: clamp(4rem,8vw,7rem) clamp(1rem,7vw,7rem); }
.contact-workspace__guide { align-self: start; position: sticky; top: 7rem; }
.contact-workspace__guide h2 { font-family: var(--display); font-size: clamp(2.8rem,4.5vw,4.6rem); letter-spacing: -.025em; line-height: .92; margin: 0; text-transform: uppercase; }
.contact-workspace__guide > p { color: var(--muted); margin: 1rem 0 2rem; max-width: 42ch; }
.contact-workspace__guide dl { border-top: 2px solid var(--ink); margin: 0; }
.contact-workspace__guide dl div { border-bottom: 1px solid var(--line); display: grid; gap: .7rem; grid-template-columns: 6rem minmax(0,1fr); padding: 1rem 0; }
.contact-workspace__guide dt { color: var(--teal-deep); font-family: var(--display); text-transform: uppercase; }
.contact-workspace__guide dd { color: var(--muted); margin: 0; }
.contact-sheet { background: var(--paper); border-bottom: 2px solid var(--ink); border-top: 2px solid var(--ink); min-width: 0; padding: clamp(1.25rem,4vw,3rem); }
.contact-form { display: grid; gap: 1.25rem; grid-template-columns: repeat(2,minmax(0,1fr)); position: relative; }
.contact-form > label { display: grid; gap: .45rem; min-width: 0; }
.contact-form > label > span { font-weight: 600; }
.contact-form input:not([type="checkbox"]), .contact-form select, .contact-form textarea { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: inherit; padding: .75rem .9rem; width: 100%; }
.contact-form input:not([type="checkbox"]), .contact-form select { min-height: 3.35rem; }
.contact-form textarea { line-height: 1.55; min-height: 12rem; resize: vertical; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #5d6d76; opacity: 1; }
.contact-form input:hover, .contact-form select:hover, .contact-form textarea:hover { border-color: var(--teal-deep); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { background: var(--paper); border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 1px; }
.contact-form__message, .contact-consent, .contact-form .human-verification, .contact-form > .button--submit, .contact-form > .form-error { grid-column: 1 / -1; }
.contact-form__message small { color: var(--muted); }
.contact-consent { align-items: start; display: grid !important; gap: .75rem !important; grid-template-columns: auto minmax(0,1fr); }
.contact-consent input { accent-color: var(--teal-deep); height: 1.2rem; margin-top: .2rem; width: 1.2rem; }
.contact-consent span { color: var(--muted); font-weight: 400 !important; }
.contact-trap { height: 1px; left: -10000px; overflow: hidden; position: absolute; top: auto; width: 1px; }
.contact-form > .button--submit { justify-self: end; }
.contact-success { align-content: center; display: grid; min-height: 28rem; }
.contact-success > span { align-items: center; border: 1px solid var(--teal-deep); border-radius: 50%; color: var(--teal-deep); display: inline-flex; height: 4.5rem; justify-content: center; margin-bottom: 2rem; width: 4.5rem; }
.contact-success > span .icon { height: 2.25rem; width: 2.25rem; }
.contact-success > strong { font-family: var(--display); font-size: clamp(2.4rem,4vw,4rem); line-height: .95; text-transform: uppercase; }
.contact-success > p { color: var(--muted); max-width: 45ch; }
.contact-success > div { align-items: center; display: flex; flex-wrap: wrap; gap: 1.25rem; margin-top: 1.5rem; }

/* Páginas de erro: saída clara, sem expor detalhes técnicos. */
.public-error { background: var(--ink-deep); color: var(--paper); }
.error-territory { display: grid; grid-template-rows: auto 1fr auto; isolation: isolate; min-height: 100svh; overflow: hidden; padding: clamp(1.25rem,4vw,3.5rem) clamp(1rem,7vw,7rem) clamp(2rem,5vw,4rem); position: relative; }
.brand--error { color: var(--paper); justify-self: start; }
.brand--error .brand__tagline { color: #c8d6dc; }
.error-territory__message { align-items: center; align-self: center; display: grid; gap: clamp(2rem,5vw,6rem); grid-template-columns: minmax(7rem,.35fr) minmax(20rem,1.65fr); max-width: 72rem; padding-block: 4rem; }
.error-code { color: var(--chartreuse); font-family: var(--display); font-size: clamp(4.5rem,9vw,6rem); font-variant-numeric: tabular-nums; line-height: .8; }
.error-territory h1 { font-family: var(--display); font-size: clamp(3.2rem,6vw,5.8rem); letter-spacing: -.03em; line-height: .9; margin: 0; max-width: 12ch; text-transform: uppercase; }
.error-territory__message > div > p { color: #cdd9df; font-size: 1.08rem; margin: 1.25rem 0 0; max-width: 58ch; }
.error-territory .error-reference { color: #aebfc8; font-size: .82rem; letter-spacing: .04em; }
.error-reference strong { color: var(--paper); font-variant-numeric: tabular-nums; }
.error-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 2rem; }
.error-actions .button { color: var(--ink-deep); }
.error-actions > a:not(.button) { color: var(--paper); font-weight: 600; }
.error-route { align-items: center; display: flex; max-width: 44rem; }
.error-route span { background: var(--paper); border: 3px solid var(--teal); border-radius: 50%; height: 1.35rem; width: 1.35rem; }
.error-route i { background: var(--teal); height: 2px; width: clamp(3rem,10vw,10rem); }
.error-route .is-missing { background: transparent; border-color: var(--coral); border-style: dashed; }
.error-contours { height: 100%; inset: 0; position: absolute; width: 100%; z-index: -1; }
.error-contours path { fill: none; stroke: rgba(216,242,58,.16); stroke-width: 1; vector-effect: non-scaling-stroke; }

@media (max-width: 900px) {
    .contact-hero { align-items: stretch; grid-template-columns: 1fr; min-height: 0; padding-block: 3.5rem; }
    .contact-hero aside { margin-left: clamp(1rem,8vw,5rem); }
    .contact-workspace { grid-template-columns: 1fr; }
    .contact-workspace__guide { position: static; }
}

@media (max-width: 620px) {
    .contact-hero { gap: 2rem; padding-inline: 1rem; }
    .contact-hero h1 { font-size: clamp(3.25rem,15vw,4.5rem); }
    .contact-hero aside { margin-left: 0; }
    .contact-workspace { padding-inline: 1rem; }
    .contact-form { grid-template-columns: 1fr; }
    .contact-form__message, .contact-consent, .contact-form .human-verification, .contact-form > .button--submit, .contact-form > .form-error { grid-column: auto; }
    .contact-form > .button--submit { justify-self: stretch; width: 100%; }
    .contact-success > div { align-items: stretch; flex-direction: column; }
    .contact-success .button { width: 100%; }
    .error-territory { padding-inline: 1.25rem; }
    .error-territory__message { align-content: center; grid-template-columns: 1fr; padding-block: 3rem; }
    .error-code { font-size: 4.5rem; }
    .error-territory h1 { font-size: clamp(3rem,15vw,4.2rem); }
    .error-actions { align-items: stretch; flex-direction: column; }
    .error-actions .button { width: 100%; }
}

/* Utilitários: bancada auxiliar do Atlas, distinta das ferramentas profissionais. */
.utilities-main { background: var(--mineral); min-width: 0; }
.utilities-topbar { border-bottom-color: var(--line); }
.utilities-intro { background: var(--ink); color: var(--paper); display: grid; gap: clamp(2rem,6vw,7rem); grid-template-columns: minmax(20rem,1.15fr) minmax(18rem,.85fr); min-height: 20rem; overflow: hidden; padding: clamp(3rem,6vw,5.5rem) clamp(1rem,6vw,6rem); position: relative; }
.utilities-intro::after { border: 1px solid rgba(216,242,58,.22); border-radius: 50%; content: ""; height: 31rem; position: absolute; right: -9rem; top: -21rem; width: 31rem; }
.utility-kicker { color: var(--teal-deep); display: block; font-family: var(--display); font-size: .78rem; letter-spacing: .14em; margin-bottom: 1rem; text-transform: uppercase; }
.utilities-intro .utility-kicker { color: var(--chartreuse); }
.utilities-intro h1, .utility-heading h1 { font-family: var(--display); letter-spacing: -.035em; line-height: .88; margin: 0; text-transform: uppercase; }
.utilities-intro h1 { font-size: clamp(3.6rem,7vw,6rem); }
.utilities-intro > p { align-self: end; color: #d4dee3; font-size: 1.08rem; margin: 0; max-width: 48ch; }
.utilities-index { border-bottom: 2px solid var(--ink); }
.utilities-index > a { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: clamp(.8rem,2vw,1.5rem); grid-template-columns: 3.5rem 4rem minmax(0,1fr) auto; min-height: 8.5rem; padding: 1.4rem clamp(1rem,6vw,6rem); text-decoration: none; transition: background-color .2s var(--ease-out), color .2s var(--ease-out); }
.utilities-index > a:hover { background: var(--paper); }
.utilities-index__number { color: var(--teal-deep); font-family: var(--display); font-size: .82rem; }
.utilities-index__icon { align-items: center; border: 2px solid var(--teal-deep); border-radius: 50%; display: inline-flex; height: 3.5rem; justify-content: center; width: 3.5rem; }
.utilities-index__icon .icon { height: 1.55rem; width: 1.55rem; }
.utilities-index a > span:nth-child(3) { display: grid; gap: .25rem; }
.utilities-index strong { font-family: var(--display); font-size: clamp(1.65rem,2.5vw,2.25rem); line-height: 1; text-transform: uppercase; }
.utilities-index small { color: var(--muted); font-size: .95rem; }
.utilities-index > a > .icon { transition: transform .2s var(--ease-out); }
.utilities-index > a:hover > .icon { transform: translateX(.35rem); }
.utilities-footnote { display: grid; gap: 1rem; grid-template-columns: minmax(13rem,.4fr) minmax(20rem,1.6fr); padding: 2rem clamp(1rem,6vw,6rem) 4rem; }
.utilities-footnote strong { font-family: var(--display); font-size: 1.35rem; text-transform: uppercase; }
.utilities-footnote p { color: var(--muted); margin: 0; max-width: 65ch; }

.utility-heading { align-items: end; border-bottom: 1px solid var(--ink); display: grid; gap: 1.5rem clamp(2rem,5vw,6rem); grid-template-columns: minmax(20rem,1.2fr) minmax(19rem,.8fr); padding: clamp(2.5rem,5vw,4.5rem) clamp(1rem,5vw,5rem); }
.utility-heading .utility-back { align-items: center; display: inline-flex; font-family: var(--display); font-size: .82rem; gap: .4rem; grid-column: 1 / -1; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; width: fit-content; }
.utility-back .icon { transform: rotate(180deg); }
.utility-heading h1 { font-size: clamp(3.15rem,6vw,5.6rem); max-width: 12ch; }
.utility-heading > p { color: var(--muted); margin: 0; max-width: 52ch; }
.utility-heading--models h1 { max-width: 15ch; }

.text-transformer { padding: clamp(1.5rem,4vw,4rem) clamp(1rem,5vw,5rem) 5rem; }
.transform-modes { border: 0; display: grid; gap: 1px; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 0 0 1.25rem; padding: 0; }
.transform-modes legend, .transform-providers legend { color: var(--teal-deep); font-family: var(--display); font-size: .78rem; letter-spacing: .1em; margin-bottom: .65rem; text-transform: uppercase; }
.transform-mode { cursor: pointer; min-width: 0; }
.transform-mode input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.transform-mode > span { align-content: center; background: var(--paper); border: 1px solid var(--line); display: grid; gap: .2rem; grid-template-columns: auto minmax(0,1fr) auto; min-height: 6.4rem; padding: .9rem; position: relative; }
.transform-mode > span > .icon { color: var(--teal-deep); grid-row: 1 / 3; }
.transform-mode strong { font-family: var(--display); font-size: 1.2rem; grid-column: 2; line-height: 1; min-width: 0; text-transform: uppercase; }
.transform-mode small { color: var(--muted); grid-column: 2 / -1; line-height: 1.25; min-width: 0; }
.transform-mode em { align-self: start; background: var(--chartreuse); color: var(--ink-deep); font-family: var(--display); font-size: .68rem; font-style: normal; grid-column: 3; grid-row: 1; letter-spacing: .09em; padding: .2rem .35rem; }
.transform-mode input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.transform-mode input:checked + span small { color: #d4dee3; }
.transform-mode input:checked + span > .icon { color: var(--chartreuse); }
.transform-mode input:focus-visible + span { outline: 3px solid var(--coral); outline-offset: 3px; z-index: 1; }
.sanitization-notice { align-items: start; background: #e5f4ef; border-block: 1px solid rgba(16,121,100,.35); display: grid; gap: .9rem; grid-template-columns: auto minmax(0,1fr); margin-bottom: 1.5rem; padding: 1rem 1.1rem; }
.sanitization-notice[hidden] { display: none; }
.sanitization-notice > span { color: var(--teal-deep); }
.sanitization-notice strong { font-family: var(--display); font-size: 1.1rem; text-transform: uppercase; }
.sanitization-notice p { color: var(--muted); margin: .2rem 0 0; }
.sanitizer-studio { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(0,1fr) minmax(18rem,21rem); }
.text-transformer[data-active-mode="ai"] .sanitizer-studio { display: block; }
.transform-workbench { display: grid; gap: 1.25rem; grid-template-columns: repeat(2,minmax(0,1fr)); min-width: 0; }
.text-transformer[data-active-mode="local"] .transform-workbench { grid-template-columns: 1fr; }
.transform-workbench > label, .transform-output { background: var(--paper); border-bottom: 2px solid var(--ink); border-top: 2px solid var(--ink); display: grid; gap: .65rem; min-width: 0; padding: clamp(1rem,2.5vw,1.6rem); }
.transform-workbench > label > span, .transform-output h2 { font-family: var(--display); font-size: 1.35rem; margin: 0; text-transform: uppercase; }
.transform-workbench textarea { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); line-height: 1.55; min-height: 19rem; padding: 1rem; resize: vertical; width: 100%; }
.transform-workbench textarea:focus { background: var(--paper); border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 1px; }
.transform-workbench > label > small, .transform-output > small { color: var(--muted); font-size: .78rem; text-align: right; }
.transform-output header { align-items: center; display: flex; justify-content: space-between; }
.sanitizer-preview { background: #e5f4ef; border-block: 1px solid rgba(16,121,100,.42); display: grid; gap: .75rem; min-width: 0; padding: 1rem 1.25rem; }
.sanitizer-preview[hidden] { display: none; }
.sanitizer-preview header { align-items: baseline; display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; }
.sanitizer-preview h2 { font-family: var(--display); font-size: 1rem; margin: 0; text-transform: uppercase; }
.sanitizer-preview header span { color: var(--teal-deep); font-size: .8rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.sanitizer-preview__text { background: var(--paper); border: 1px solid rgba(16,121,100,.28); border-radius: 12px; line-height: 1.6; min-height: 4.5rem; overflow-wrap: anywhere; padding: .85rem 1rem; white-space: pre-wrap; }
.sanitizer-preview mark { background: var(--chartreuse); border-radius: 0; color: var(--ink-deep); font-weight: 600; padding: .05rem .2rem; }
.sanitizer-preview__badges { display: flex; flex-wrap: wrap; gap: .4rem; min-height: 1.65rem; }
.sanitizer-preview__badges span { background: var(--ink); border-radius: 2rem; color: var(--paper); font-size: .8rem; padding: .25rem .55rem; }
.sanitizer-rules { background: var(--paper); border-block: 2px solid var(--ink); min-width: 0; position: sticky; top: 5.75rem; }
.sanitizer-rules[hidden] { display: none; }
.sanitizer-rules__tabs { background: var(--mineral); display: grid; gap: 1px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.sanitizer-rules__tabs button { background: transparent; border: 0; border-bottom: 2px solid transparent; color: var(--muted); cursor: pointer; font-family: var(--display); min-height: 2.8rem; padding: .55rem .35rem; text-transform: uppercase; }
.sanitizer-rules__tabs button[aria-selected="true"] { background: var(--paper); border-color: var(--teal-deep); color: var(--ink); }
.sanitizer-rules__tabs button:focus-visible { outline: 3px solid var(--coral); outline-offset: -3px; }
.sanitizer-rules [role="tabpanel"] { padding: 1.1rem; }
.sanitizer-rules [role="tabpanel"][hidden] { display: none; }
.sanitizer-rules h2 { font-family: var(--display); font-size: 1rem; margin: 0; text-transform: uppercase; }
.sanitizer-rules [role="tabpanel"] > p { color: var(--muted); font-size: .8rem; margin: .25rem 0 1rem; }
.sanitizer-rule-list { display: grid; max-height: 31rem; overflow: auto; scrollbar-color: var(--teal-deep) var(--mineral); }
.sanitizer-rule-list label { align-items: start; border-top: 1px solid var(--line); cursor: pointer; display: grid; gap: .65rem; grid-template-columns: auto minmax(0,1fr); padding: .65rem .15rem; }
.sanitizer-rule-list input { accent-color: var(--teal-deep); height: 1rem; margin-top: .15rem; width: 1rem; }
.sanitizer-rule-list input:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.sanitizer-rule-list span { display: grid; gap: .05rem; min-width: 0; }
.sanitizer-rule-list strong { font-size: .8rem; }
.sanitizer-rule-list small { color: var(--muted); font-size: .8rem; line-height: 1.3; }
.sanitizer-rules [role="tabpanel"] > label { display: block; font-size: .8rem; font-weight: 600; margin-bottom: .35rem; }
.sanitizer-rules textarea { background: var(--mineral); border: 1px solid var(--muted); border-radius: 12px; color: var(--ink); line-height: 1.45; min-height: 13rem; padding: .8rem; resize: vertical; width: 100%; }
.sanitizer-rules textarea:focus { background: var(--paper); border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 1px; }
.sanitizer-rules__warning { background: var(--ink); color: var(--paper); padding: 1rem 1.1rem; }
.sanitizer-rules__warning strong { color: var(--chartreuse); font-family: var(--display); text-transform: uppercase; }
.sanitizer-rules__warning p { color: #d4dee3; font-size: .8rem; line-height: 1.45; margin: .25rem 0 0; }
.utility-copy { align-items: center; background: transparent; border: 1px solid var(--ink); color: var(--ink); cursor: pointer; display: inline-flex; font-weight: 600; gap: .4rem; min-height: 2.5rem; padding: .45rem .7rem; }
.utility-copy:hover:not(:disabled) { background: var(--ink); color: var(--paper); }
.utility-copy:disabled { cursor: not-allowed; opacity: .45; }
.transform-controls { align-items: end; border-bottom: 1px solid var(--line); display: grid; gap: 2rem; grid-template-columns: minmax(20rem,1fr) minmax(19rem,1fr); padding: 1.5rem 0; }
.transform-providers { border: 0; display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; padding: 0; }
.transform-providers[hidden], .utility-ai-status[hidden] { display: none; }
.text-transformer[data-active-mode="local"] .transform-controls { grid-template-columns: 1fr; }
.transform-providers label { cursor: pointer; }
.transform-providers input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.transform-providers span { border-bottom: 2px solid transparent; display: inline-block; padding: .35rem .6rem; }
.transform-providers input:focus-visible + span { outline: 3px solid var(--coral); outline-offset: 2px; }
.transform-providers input:checked + span { border-color: var(--teal-deep); color: var(--teal-deep); font-weight: 600; }
.transform-providers input:disabled + span { cursor: not-allowed; opacity: .42; }
.transform-controls > div { align-items: center; display: flex; gap: 1rem; justify-content: flex-end; }
.transform-controls .button[hidden] { display: none; }
.transform-controls p { color: var(--muted); font-size: .82rem; margin: 0; max-width: 42ch; }
.utility-ai-status, .utility-result-route { color: var(--muted); font-size: .88rem; margin: 1rem 0 0; }
.utility-result-route a { align-items: center; color: var(--teal-deep); display: inline-flex; font-weight: 600; gap: .4rem; }

.models-toolbox { align-items: end; border-bottom: 2px solid var(--ink); display: grid; gap: 2rem; grid-template-columns: minmax(20rem,1fr) auto; margin: 0 clamp(1rem,5vw,5rem); padding: 2rem 0 1.25rem; }
.models-toolbox label { display: grid; gap: .35rem; grid-template-columns: auto minmax(0,1fr); min-width: 0; }
.models-toolbox label span { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.models-toolbox input { background: transparent; border: 0; border-bottom: 1px solid #73857e; color: var(--ink); font-size: 1.08rem; grid-column: 1 / -1; min-height: 3rem; padding: .45rem 0; width: 100%; }
.models-toolbox input:focus { border-color: var(--teal-deep); outline: 0; }
.models-toolbox p { color: var(--muted); margin: 0; white-space: nowrap; }
.models-register { margin: 0 clamp(1rem,5vw,5rem) 5rem; }
.model-entry { border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 4.5rem minmax(0,1fr); }
.model-entry[hidden] { display: none; }
.model-entry__index { color: var(--teal-deep); font-family: var(--display); padding-top: 1.6rem; }
.model-entry details { min-width: 0; }
.model-entry summary { align-items: center; cursor: pointer; display: grid; gap: 1.5rem; grid-template-columns: minmax(0,1fr) auto; list-style: none; padding: 1.35rem 0; }
.model-entry summary::-webkit-details-marker { display: none; }
.model-entry summary > span:first-child { display: grid; gap: .2rem; }
.model-entry summary small { color: #a33d27; font-family: var(--display); letter-spacing: .08em; text-transform: uppercase; }
.model-entry summary strong { font-family: var(--display); font-size: clamp(1.8rem,3vw,2.5rem); line-height: 1; text-transform: uppercase; }
.model-entry summary em { color: var(--muted); font-style: normal; max-width: 68ch; }
.model-entry__toggle { align-items: center; border: 1px solid var(--ink); display: inline-flex; font-family: var(--display); font-size: .78rem; min-height: 2.6rem; padding: .45rem .7rem; text-transform: uppercase; }
.model-entry details[open] .model-entry__toggle { background: var(--ink); color: var(--paper); }
.model-entry__body { border-top: 1px solid var(--line); padding: 1.4rem 0 2rem; }
.model-entry__note { border-top: 2px solid var(--chartreuse); display: grid; gap: 1rem; grid-template-columns: 7rem minmax(0,1fr); margin-bottom: 1rem; padding: .7rem 1rem; }
.model-entry__note strong { font-family: var(--display); text-transform: uppercase; }
.model-entry__note p { color: var(--muted); margin: 0; max-width: 75ch; }
.model-entry pre { background: var(--paper); border: 1px solid var(--line); color: var(--ink); font-family: var(--body); line-height: 1.65; margin: 0; max-height: 31rem; overflow: auto; padding: clamp(1rem,3vw,2rem); white-space: pre-wrap; }
.model-entry footer { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: flex-end; padding-top: 1rem; }
.model-entry footer a { align-items: center; color: var(--teal-deep); display: inline-flex; font-weight: 600; gap: .35rem; }
.model-entry footer span { color: var(--muted); font-size: .82rem; margin-right: auto; order: -1; }
.models-empty { color: var(--muted); margin: 2rem clamp(1rem,5vw,5rem) 5rem; }

@media (max-width: 960px) {
    .transform-modes { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .sanitizer-studio { grid-template-columns: minmax(0,1fr) minmax(16rem,18rem); }
    .transform-controls { grid-template-columns: 1fr; }
    .transform-controls > div { justify-content: space-between; }
}

@media (max-width: 760px) {
    .utilities-intro, .utility-heading { grid-template-columns: 1fr; }
    .utilities-intro { min-height: 0; }
    .utilities-intro > p { align-self: auto; }
    .utilities-index > a { grid-template-columns: 2rem 3rem minmax(0,1fr) auto; min-height: 7.5rem; padding-inline: 1rem; }
    .utilities-index__icon { height: 2.75rem; width: 2.75rem; }
    .utilities-footnote, .transform-workbench, .models-toolbox, .sanitizer-studio { grid-template-columns: 1fr; }
    .sanitizer-rules { position: static; }
    .sanitizer-rule-list { max-height: none; }
    .transform-controls > div { align-items: stretch; flex-direction: column; }
    .transform-controls .button { width: 100%; }
    .models-toolbox p { white-space: normal; }
}

@media (max-width: 520px) {
    .utilities-intro h1, .utility-heading h1 { font-size: clamp(3rem,15vw,4.2rem); }
    .utilities-index > a { gap: .65rem; grid-template-columns: 1.8rem minmax(0,1fr) auto; }
    .utilities-index__icon { display: none; }
    .utilities-index small { display: block; }
    .transform-modes { grid-template-columns: 1fr; }
    .transform-mode > span { min-height: 5rem; }
    .text-transformer { padding-inline: .85rem; }
    .transform-workbench textarea { min-height: 15rem; }
    .transform-output header { align-items: flex-start; gap: .75rem; }
    .sanitizer-preview { padding: .85rem; }
    .sanitizer-rules__tabs button { font-size: .8rem; }
    .model-entry { grid-template-columns: 2rem minmax(0,1fr); }
    .model-entry summary { align-items: start; gap: .75rem; }
    .model-entry__toggle { font-size: 0; min-height: 2.5rem; width: 2.5rem; }
    .model-entry__toggle::after { content: "+"; font-size: 1.2rem; margin: auto; }
    .model-entry details[open] .model-entry__toggle::after { content: "−"; }
    .model-entry__note { grid-template-columns: 1fr; }
    .model-entry footer { align-items: stretch; flex-direction: column; }
    .model-entry footer .utility-copy { justify-content: center; width: 100%; }
    .analytics-consent { align-items: stretch; bottom: .65rem; display: grid; gap: .85rem; grid-template-columns: 1fr; left: .65rem; max-width: calc(100vw - 1.3rem); padding: .9rem; }
    .analytics-consent__actions { justify-content: stretch; }
    .analytics-consent__actions button { flex: 1 1 8rem; }
    .analytics-preferences { bottom: .65rem; left: .65rem; max-width: calc(100vw - 1.3rem); width: auto; }
}

/* Repertório profissional: registro editorial leve, sem cartões decorativos. */
.vocabulary-main { overflow-wrap: anywhere; }
.vocabulary-heading h1 { max-width: 14ch; }
.vocabulary-tools { border-bottom: 2px solid var(--ink); display: grid; gap: 1.35rem 2.5rem; grid-template-columns: minmax(24rem,1.35fr) minmax(19rem,.85fr); margin: 0 clamp(1rem,5vw,5rem); padding: 1.75rem 0 1.25rem; }
.vocabulary-search { display: grid; gap: .45rem; }
.vocabulary-search { grid-column: 1; }
.vocabulary-search > label, .vocabulary-index__label { color: var(--teal-deep); font-family: var(--display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.vocabulary-search > div { align-items: stretch; display: grid; gap: .75rem; grid-template-columns: minmax(0,1fr) auto; }
.vocabulary-search input { background: var(--paper); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: 1rem/1.4 var(--body); min-height: 3.35rem; min-width: 0; padding: .7rem .9rem; }
.vocabulary-search input:focus { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 1px; }
.vocabulary-search .button { align-items: center; display: inline-flex; gap: .45rem; justify-content: center; min-height: 3.35rem; }
.vocabulary-index { align-items: center; display: flex; gap: .2rem; min-width: 0; overflow-x: auto; padding-bottom: .25rem; scrollbar-color: var(--teal-deep) var(--mineral); }
.vocabulary-index { grid-column: 2; }
.vocabulary-index__label { flex: 0 0 auto; margin-right: .45rem; }
.vocabulary-index a, .vocabulary-filters a { align-items: center; color: var(--ink); display: inline-flex; flex: 0 0 auto; justify-content: center; min-height: 2.75rem; min-width: 2.75rem; padding: .45rem .6rem; text-decoration: none; }
.vocabulary-index a:hover, .vocabulary-index a[aria-current="page"], .vocabulary-filters a:hover, .vocabulary-filters a[aria-current="page"] { background: var(--ink); color: var(--paper); }
.vocabulary-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.vocabulary-filters { align-self: end; grid-column: 1; }
.vocabulary-filters a { border-bottom: 2px solid var(--line); font-family: var(--display); font-size: .85rem; text-transform: uppercase; }
.vocabulary-count { color: var(--muted); font-size: .86rem; grid-column: 2; margin: 0; text-align: right; }
.vocabulary-count strong { color: var(--ink); font-family: var(--display); font-size: 1.3rem; }
.vocabulary-register { margin: 0 clamp(1rem,5vw,5rem) 2rem; }
.vocabulary-entry { border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 4rem minmax(0,1fr); min-width: 0; }
.vocabulary-entry__index { color: var(--teal-deep); font-family: var(--display); font-size: .82rem; padding-top: 1.35rem; }
.vocabulary-entry details { min-width: 0; }
.vocabulary-entry summary { align-items: center; cursor: pointer; display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) auto; list-style: none; min-height: 5.6rem; padding: 1rem 0; }
.vocabulary-entry summary::-webkit-details-marker { display: none; }
.vocabulary-entry summary > span:first-child { display: grid; gap: .25rem; min-width: 0; }
.vocabulary-entry summary strong { color: var(--ink); font-family: var(--display); font-size: clamp(1.45rem,2.4vw,2rem); line-height: 1; text-transform: uppercase; }
.vocabulary-entry summary small { color: var(--muted); font-size: .9rem; line-height: 1.35; }
.vocabulary-entry__toggle, .vocabulary-contribution__toggle { border: 1px solid var(--ink); color: var(--ink); display: inline-flex; font-family: var(--display); font-size: .78rem; min-height: 2.75rem; padding: .55rem .7rem; text-transform: uppercase; }
.vocabulary-entry details[open] .vocabulary-entry__toggle, .vocabulary-contribution[open] .vocabulary-contribution__toggle { background: var(--ink); color: var(--paper); }
.vocabulary-entry summary:focus-visible, .vocabulary-contribution summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.vocabulary-entry__body { border-top: 1px solid var(--line); display: grid; gap: 1rem 2rem; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; padding: 1.15rem 0 1.5rem; }
.vocabulary-entry__body > div { min-width: 0; }
.vocabulary-entry__body dt { color: var(--teal-deep); font-family: var(--display); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.vocabulary-entry__body dd { color: var(--muted); line-height: 1.5; margin: .35rem 0 0; }
.vocabulary-empty { border-bottom: 1px solid var(--line); padding: 2rem 0 2.5rem; }
.vocabulary-empty strong { font-family: var(--display); font-size: 1.8rem; text-transform: uppercase; }
.vocabulary-empty p { color: var(--muted); max-width: 60ch; }
.vocabulary-pagination { align-items: center; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: .8rem 1rem; justify-content: flex-end; margin: 0 clamp(1rem,5vw,5rem); padding: 1rem 0; }
.vocabulary-pagination span { color: var(--muted); margin-right: auto; }
.vocabulary-pagination a { align-items: center; border-bottom: 2px solid var(--teal-deep); color: var(--ink); display: inline-flex; gap: .4rem; min-height: 2.75rem; padding: .45rem .6rem; text-decoration: none; }
.vocabulary-contribution { margin: 1.5rem clamp(1rem,5vw,5rem) 5rem; }
.vocabulary-contribution > summary { align-items: center; border-block: 2px solid var(--ink); cursor: pointer; display: flex; gap: 1rem; justify-content: space-between; list-style: none; min-height: 5.5rem; padding: 1rem 0; }
.vocabulary-contribution > summary::-webkit-details-marker { display: none; }
.vocabulary-contribution > summary > span:first-child { display: grid; gap: .25rem; }
.vocabulary-contribution > summary strong { font-family: var(--display); font-size: 1.55rem; text-transform: uppercase; }
.vocabulary-contribution > summary small { color: var(--muted); }
.vocabulary-contribution__form { border-bottom: 1px solid var(--line); display: grid; gap: 1rem 1.5rem; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 1.5rem 0; }
.vocabulary-contribution__form > label, .vocabulary-contribution__target { display: grid; gap: .35rem; min-width: 0; }
.vocabulary-contribution__form > label > span, .vocabulary-contribution__target > label, .vocabulary-contribution__form legend { color: var(--ink); font-family: var(--display); font-size: .92rem; text-transform: uppercase; }
.vocabulary-contribution__form small, .vocabulary-contribution__target label span { color: var(--muted); font-family: var(--body); font-size: .8rem; font-weight: 400; text-transform: none; }
.vocabulary-contribution__form input:not([type="radio"]), .vocabulary-contribution__form select, .vocabulary-contribution__form textarea { background: var(--mineral); border: 1px solid #73857e; border-radius: 12px; color: var(--ink); font: 1rem/1.45 var(--body); min-height: 3.1rem; min-width: 0; padding: .65rem .8rem; width: 100%; }
.vocabulary-contribution__form textarea { resize: vertical; }
.vocabulary-contribution__form input:focus, .vocabulary-contribution__form select:focus, .vocabulary-contribution__form textarea:focus { background: var(--paper); border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 1px; }
.vocabulary-contribution__form fieldset { border: 0; display: flex; flex-wrap: wrap; gap: .9rem; grid-column: 1 / -1; margin: 0; padding: 0; }
.vocabulary-contribution__form fieldset label { align-items: center; display: inline-flex; gap: .4rem; min-height: 2.75rem; }
.vocabulary-contribution__form fieldset input { accent-color: var(--teal-deep); height: 1.1rem; width: 1.1rem; }
.vocabulary-contribution__target { grid-column: 1 / -1; }
.vocabulary-contribution__actions { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 1rem; grid-column: 1 / -1; justify-content: flex-end; padding-top: 1rem; }
.vocabulary-contribution__actions p { color: var(--muted); font-size: .84rem; margin: 0 auto 0 0; max-width: 48ch; }
.vocabulary-contribution__form fieldset:has(input[value="new_term"]:checked) ~ .vocabulary-contribution__target { display: none; }
@media (max-width: 1050px) {
    .vocabulary-tools { grid-template-columns: 1fr; }
    .vocabulary-search, .vocabulary-index, .vocabulary-filters, .vocabulary-count { grid-column: 1; }
    .vocabulary-count { text-align: left; }
}
@media (max-width: 760px) {
    .vocabulary-tools { grid-template-columns: 1fr; }
    .vocabulary-search > div { grid-template-columns: 1fr; }
    .vocabulary-search, .vocabulary-index, .vocabulary-filters, .vocabulary-count { grid-column: 1; }
    .vocabulary-count { text-align: left; }
    .vocabulary-search .button { width: 100%; }
    .vocabulary-entry { grid-template-columns: 2.25rem minmax(0,1fr); }
    .vocabulary-entry__body { grid-template-columns: 1fr; }
    .vocabulary-contribution__form { grid-template-columns: 1fr; }
    .vocabulary-contribution__actions { align-items: stretch; flex-direction: column; }
    .vocabulary-contribution__actions .button { width: 100%; }
}
@media (max-width: 520px) {
    .vocabulary-entry summary { align-items: start; }
    .vocabulary-entry__toggle, .vocabulary-contribution__toggle { font-size: 0; min-height: 2.75rem; width: 2.75rem; }
    .vocabulary-entry__toggle::after, .vocabulary-contribution__toggle::after { content: "+"; font-size: 1.2rem; margin: auto; }
    .vocabulary-entry details[open] .vocabulary-entry__toggle::after, .vocabulary-contribution[open] .vocabulary-contribution__toggle::after { content: "−"; }
}
@media (prefers-reduced-motion: reduce) {
    .vocabulary-main *, .vocabulary-main *::before, .vocabulary-main *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
/* Anúncios editoriais do plano FREE: separados da resposta e sem rastreamento. */
.result-ad-slot { list-style: none; margin: -.45rem 0 2rem 3.7rem; position: relative; }
.result-ad { border-block: 1px solid var(--line); max-width: 41rem; padding: .9rem 0 .75rem; position: relative; }
.result-ad__destination { align-items: stretch; color: var(--ink); display: grid; grid-template-columns: clamp(7rem, 16vw, 10rem) minmax(0, 1fr); max-width: 38rem; text-decoration: none; }
.result-ad__image { background: var(--mineral); min-height: 7rem; overflow: hidden; }
.result-ad__image img { height: 100%; object-fit: cover; width: 100%; }
.result-ad__copy { border: 1px solid var(--line); border-left: 0; display: grid; gap: .25rem; padding: .75rem 3.4rem .75rem .9rem; }
.result-ad__eyebrow { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem; }
.result-ad__eyebrow strong { font-family: var(--display); font-size: .8rem; letter-spacing: .04em; text-transform: uppercase; }
.result-ad__eyebrow small { background: var(--mineral); border-radius: 2rem; color: var(--muted); font-size: .8rem; padding: .15rem .45rem; }
.result-ad__copy > b { font-family: var(--display); font-size: 1rem; line-height: 1.05; text-transform: uppercase; }
.result-ad__copy > span:not(.result-ad__eyebrow) { color: var(--muted); font-size: 1rem; line-height: 1.4; }
.result-ad__copy em { align-items: center; color: var(--teal-deep); display: flex; font-size: .8rem; font-style: normal; font-weight: 700; gap: .35rem; margin-top: auto; text-transform: uppercase; }
.result-ad__copy em svg { height: .9rem; width: .9rem; }
.result-ad__destination:hover .result-ad__copy, .result-ad__destination:focus-visible .result-ad__copy { background: var(--mineral); border-color: var(--teal-deep); }
.result-ad__destination:focus-visible { outline: 3px solid rgba(31,165,138,.2); outline-offset: 3px; }
.result-ad > p { color: var(--muted); font-size: .8rem; margin: .55rem 0 0; }
.result-ad-menu { position: absolute; right: .35rem; top: 1.25rem; z-index: 5; }
.result-ad-menu > summary { align-items: center; background: var(--paper); border: 1px solid transparent; border-radius: 50%; color: var(--ink); cursor: pointer; display: flex; height: 2.75rem; justify-content: center; list-style: none; width: 2.75rem; }
.result-ad-menu > summary::-webkit-details-marker { display: none; }
.result-ad-menu > summary .icon { height: 1.25rem; width: 1.25rem; }
.result-ad-menu > summary:hover, .result-ad-menu > summary:focus-visible, .result-ad-menu[open] > summary { background: var(--mineral); border-color: var(--line); }
.result-ad-menu > summary:focus-visible { outline: 3px solid rgba(31,165,138,.2); outline-offset: 2px; }
.result-ad-menu > nav { background: var(--paper); border: 1px solid var(--line); box-shadow: 0 .9rem 2.4rem rgba(16,27,77,.16); display: grid; min-width: 14rem; padding: .4rem; position: absolute; right: 0; top: calc(100% + .35rem); }
.result-ad-menu > nav a, .result-ad-menu > nav button { background: transparent; border: 0; border-radius: 8px; color: var(--ink); cursor: pointer; font: inherit; padding: .7rem .75rem; text-align: left; text-decoration: none; width: 100%; }
.result-ad-menu > nav a:hover, .result-ad-menu > nav a:focus-visible, .result-ad-menu > nav button:hover, .result-ad-menu > nav button:focus-visible { background: var(--mineral); outline: none; }

.advertisement-about { background: transparent; border: 0; color: var(--ink); height: 100%; margin: 0 0 0 auto; max-height: none; max-width: min(30rem, 100%); padding: 0; width: 100%; }
.advertisement-about:not([open]) { display: none; }
.advertisement-about[open] { display: block; }
.advertisement-about::backdrop { background: rgba(16,27,77,.48); }
.advertisement-about__sheet { background: var(--paper); box-shadow: -.8rem 0 2.8rem rgba(16,27,77,.2); display: flex; flex-direction: column; min-height: 100%; padding: 1.5rem; }
.advertisement-about__sheet > header { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; padding-bottom: 1rem; }
.advertisement-about__sheet h2, .advertisement-about__sheet h3 { margin: 0; }
.advertisement-about__sheet h2 { font-family: var(--display); font-size: 1.5rem; text-transform: uppercase; }
.advertisement-about__sheet h3 { font-size: 1rem; }
.advertisement-about__sheet > header button { align-items: center; background: transparent; border: 0; border-radius: 50%; color: var(--ink); cursor: pointer; display: flex; height: 2.75rem; justify-content: center; width: 2.75rem; }
.advertisement-about__sheet > header button:hover, .advertisement-about__sheet > header button:focus-visible { background: var(--mineral); outline: 3px solid rgba(31,165,138,.2); }
.advertisement-about__sheet > header .icon { height: 1.25rem; width: 1.25rem; }
.advertisement-about__sheet > section { border-bottom: 1px solid var(--line); display: grid; gap: .55rem; padding: 1.25rem 0; }
.advertisement-about__sheet > section > p { color: var(--muted); line-height: 1.55; margin: 0; }
.advertisement-about__sponsor { align-items: center; display: grid; gap: .8rem; grid-template-columns: 3.25rem minmax(0, 1fr); }
.advertisement-about__sponsor img { aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; height: 3.25rem; object-fit: cover; width: 3.25rem; }
.advertisement-about__sponsor p { display: grid; gap: .2rem; margin: 0; min-width: 0; }
.advertisement-about__sponsor strong { overflow-wrap: anywhere; }
.advertisement-about__sponsor span { color: var(--muted); font-size: .8rem; overflow-wrap: anywhere; }
.advertisement-about__remove { justify-content: center; margin-top: auto; min-height: 3rem; width: 100%; }

.advertising-rule { align-items: center; background: var(--ink); color: var(--paper); display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr) minmax(20rem, auto); margin-bottom: 1rem; padding: 1.35rem 1.5rem; }
.advertising-rule > div { display: grid; gap: .2rem; }
.advertising-rule > div > span { color: var(--chartreuse); font-family: var(--display); font-size: .8rem; letter-spacing: .09em; text-transform: uppercase; }
.advertising-rule > div > strong { font-family: var(--display); font-size: 2rem; text-transform: uppercase; }
.advertising-rule p { color: rgba(246,247,242,.72); font-size: 1rem; margin: .25rem 0 0; max-width: 64ch; }
.advertising-rule form { align-items: end; display: grid; gap: .75rem; grid-template-columns: minmax(9rem, 12rem) auto; }
.advertising-rule label { display: grid; gap: .3rem; }
.advertising-rule label span { color: rgba(246,247,242,.72); font-size: .8rem; }
.advertising-rule input { background: var(--paper); border: 1px solid transparent; border-radius: 12px; color: var(--ink); min-height: 2.7rem; padding: .55rem .7rem; width: 100%; }
.advertising-rule .admin-save { background: var(--chartreuse); color: var(--ink); white-space: nowrap; }
.advertising-editor { border-block: 1px solid var(--line); }
.advertising-editor > summary { color: var(--teal-deep); cursor: pointer; font-family: var(--display); font-size: 1rem; list-style-position: inside; padding: 1rem 0; text-transform: uppercase; }
.advertising-editor > form, .advertising-item > form { background: var(--mineral); display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 1.25rem; }
.advertising-editor label, .advertising-item label { display: grid; gap: .35rem; min-width: 0; }
.advertising-editor label > span:first-child, .advertising-item label > span:first-child { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.advertising-editor input:not([type="checkbox"]), .advertising-editor textarea, .advertising-item input:not([type="checkbox"]), .advertising-item textarea { background: var(--paper); border: 1px solid var(--muted); border-radius: 12px; color: var(--ink); font: inherit; min-height: 2.8rem; padding: .65rem .75rem; width: 100%; }
.advertising-editor textarea, .advertising-item textarea { resize: vertical; }
.advertising-editor input:focus-visible, .advertising-editor textarea:focus-visible, .advertising-item input:focus-visible, .advertising-item textarea:focus-visible { border-color: var(--teal-deep); outline: 3px solid rgba(31,165,138,.18); outline-offset: 2px; }
.advertising-editor label small, .advertising-item label small { color: var(--muted); font-size: .8rem; }
.advertising-field--wide { grid-column: 1 / -1; }
.advertising-active { align-self: center; }
.advertising-editor .admin-save, .advertising-item .admin-save { justify-self: end; min-width: 10rem; }
.advertising-ledger { border-top: 2px solid var(--ink); margin-top: 1.5rem; }
.advertising-empty { border-bottom: 1px solid var(--ink); display: grid; gap: 1rem; grid-template-columns: minmax(14rem, .6fr) minmax(0, 1.4fr); padding: 1.4rem 0; }
.advertising-empty strong { font-family: var(--display); font-size: 2rem; text-transform: uppercase; }
.advertising-empty p { color: var(--muted); margin: 0; }
.advertising-item { border-bottom: 1px solid var(--ink); }
.advertising-item > summary { align-items: center; cursor: pointer; display: grid; gap: 1rem; grid-template-columns: 7.5rem minmax(0, 1fr); list-style: none; min-height: 6.25rem; padding: .75rem 2.5rem .75rem 0; position: relative; }
.advertising-item > summary::-webkit-details-marker { display: none; }
.advertising-item > summary::after { content: "+"; font-family: var(--display); font-size: 1.5rem; position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); }
.advertising-item[open] > summary::after { content: "−"; }
.advertising-item > summary img { aspect-ratio: 16 / 9; background: var(--mineral); height: auto; object-fit: cover; width: 100%; }
.advertising-item > summary > span { display: grid; gap: .15rem; }
.advertising-item > summary small { color: var(--muted); font-size: .8rem; text-transform: uppercase; }
.advertising-item > summary strong { font-family: var(--display); font-size: 1rem; text-transform: uppercase; }
.advertising-item > summary em { color: var(--teal-deep); font-size: .8rem; font-style: normal; font-weight: 700; }

@media (max-width: 820px) {
    .result-ad-slot { margin-left: 3rem; }
    .advertising-rule { align-items: stretch; grid-template-columns: 1fr; }
    .advertising-rule form { grid-template-columns: minmax(8rem, 1fr) auto; }
}

@media (max-width: 560px) {
    .result-ad-slot { margin-left: 0; }
    .result-ad__destination { grid-template-columns: 6.5rem minmax(0, 1fr); }
    .result-ad__copy { padding: .65rem 3.25rem .65rem .7rem; }
    .result-ad__copy > b { font-size: 1rem; }
    .result-ad__copy > span:not(.result-ad__eyebrow) { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
    .advertising-rule { padding: 1.1rem; }
    .advertising-rule form, .advertising-editor > form, .advertising-item > form { grid-template-columns: 1fr; }
    .advertising-rule .admin-save, .advertising-editor .admin-save, .advertising-item .admin-save { justify-self: stretch; width: 100%; }
    .advertising-field--wide { grid-column: 1; }
    .advertising-empty { grid-template-columns: 1fr; }
    .advertising-item > summary { grid-template-columns: 5.5rem minmax(0, 1fr); }
    .advertising-item > summary strong { font-size: 1rem; }
    .advertisement-about { height: min(90dvh, 48rem); margin: auto 0 0; max-width: none; width: 100%; }
    .advertisement-about__sheet { box-shadow: 0 -.8rem 2.8rem rgba(16,27,77,.2); min-height: 100%; padding: 1.1rem; }
}
