/* Page-scoped rules for templates/privacy/ (docs/UI.md §5). Prefix every class with `prv-`. */

/* ---- consent screen (consent.html, auth layout): the three selectable basis cards ---- */
.prv-shield{color:var(--accent-2-ink);margin-bottom:12px;display:block}
.prv-bases{gap:10px;margin-top:20px}
.prv-basis{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--sunken);cursor:pointer;transition:border-color .15s ease}
.prv-basis:hover{border-color:var(--line-2)}
.prv-basis:has(input:checked){border-color:var(--ok-ico)}
.prv-basis input{flex:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:2px 0 0;border:1.5px solid var(--sec);border-radius:4px;background:var(--surface,transparent);display:grid;place-content:center;cursor:inherit}
.prv-basis input::after{content:"";width:9px;height:5px;border:solid #fff;border-width:0 0 2px 2px;transform:rotate(-45deg) translate(1px,-1px);opacity:0}
.prv-basis input:checked{background:var(--ok-ico);border-color:var(--ok-ico)}
.prv-basis input:checked::after{opacity:1}
.prv-basis input:focus-visible{outline:2px solid var(--ok-ico);outline-offset:2px}
.prv-basis input:disabled{opacity:.75}
.prv-basis-fixed{cursor:default}
.prv-basis-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.prv-basis-body .t{font-weight:600;color:var(--ink);font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.prv-basis-body .d{font-size:12.5px;color:var(--sec);line-height:1.5}
.prv-basis-body .err{font-size:12.5px;color:var(--bad)}
.prv-actions{border-top:0;padding-top:0}
.prv-submit{width:100%;min-height:44px;white-space:normal;letter-spacing:0}

/* ---- centre (centre.html): consent rows and the rights buttons ---- */
.prv-consent-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.prv-consents li{flex-wrap:wrap}
.prv-inline-form{margin:0;display:inline-flex}
.prv-rights{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-2)}
@media (max-width:900px){.prv-grid{grid-template-columns:1fr}}

.prv-review{max-width:900px;min-width:0;overflow-wrap:anywhere}
.prv-review section{border-top:1px solid var(--line);padding:24px 0;margin-top:24px}
.prv-review h2{font-size:18px;margin-bottom:16px}
.prv-review dl{display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,3fr);gap:10px 16px;margin:20px 0}
.prv-review dd{margin:0;min-width:0}
.prv-review dt{color:var(--sec)}
.prv-review form{display:grid;gap:14px;margin:20px 0;max-width:640px}
.prv-review form p,.prv-review label{display:grid;gap:6px}
.prv-review label:has(>input[type=checkbox]){display:flex;align-items:flex-start;gap:10px}
.prv-review input[type=checkbox]{flex:none;width:16px;height:16px;margin:2px 0 0;accent-color:var(--accent-2-ink)}
.prv-review input:not([type=checkbox]),.prv-review textarea,.prv-review select{width:100%;min-width:0;box-sizing:border-box}
.prv-review button{justify-self:start;max-width:100%;white-space:normal}
.prv-review .errorlist{color:var(--bad)}
.prv-coverage-list{list-style:none;margin:16px 0;padding:0;min-width:0}
.prv-coverage-list>li{border-bottom:1px solid var(--line);padding:8px 0;min-width:0}
.prv-coverage-list dl{margin:12px 0}
@media(max-width:480px){.prv-review dl{grid-template-columns:minmax(0,1fr)}.prv-review dd{margin-bottom:8px}}
.pg-sub{margin:8px 0 0;color:var(--sec);font-size:14px}

/* Fase B: tables become hairline lists on narrow screens (no horizontal scroll). */
.prv-stack td form{margin-top:6px}
@media (max-width:640px){
  .prv-stack,.prv-stack tbody,.prv-stack tr,.prv-stack td{display:block;width:100%}
  .prv-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .prv-stack tr{padding:12px 16px;border-top:1px solid var(--line-2)}
  .prv-stack tbody tr:first-child{border-top:0}
  .prv-stack td{padding:3px 0;border:0;overflow-wrap:anywhere}
  .prv-stack td[data-label]::before{content:attr(data-label);display:block;color:var(--ter);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
  .prv-stack td[colspan]{padding:0}
}

/* Fase B: review pages — each section is a card; forms and lists sit inside. */
.prv-review section{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin:16px 0}
.prv-review h2{font-size:14px;font-weight:650;letter-spacing:-.01em;margin-bottom:12px}
.prv-review dl{padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin:0 0 16px}
.prv-review section dl{padding:0;border:0;background:transparent}
.prv-review section form:last-child{margin-bottom:0}
.prv-review section>p:first-of-type{margin-top:0}
.prv-review{max-width:960px}

/* Fase B polish (CT-18, CT-19): the decision record said once; platform controls in a neutral note. */
.prv-record{margin:0 0 6px;font-size:12.5px;color:var(--sec)}
.prv-consents .prv-consent-main .d{line-height:1.45}
.prv-platform-note{margin:0;padding:10px 20px 12px;font-size:12.5px;color:var(--ter);border-bottom:1px solid var(--line-2)}
.prv-grid>.panel{display:flex;flex-direction:column}

/* ADM-18: review pages — object head, facts, ordered erasure steps, and tables on the section's surface
   (the .tbl scroll cover must match the white section, or it paints grey gutters). */
.prv-review .pg-back{margin-bottom:8px;font-size:13px}
.prv-review section .tbl{--tbl-cover:var(--surface)}
.prv-review .pg-head .sub .st{vertical-align:baseline}
.prv-facts{display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,3fr);gap:8px 16px}
.prv-steps{margin:8px 0 0;padding-left:22px;display:flex;flex-direction:column;gap:8px;font-size:13.5px}
.prv-steps li{padding-left:4px}
.prv-step{display:flex;align-items:center;gap:8px;min-height:32px;flex-wrap:wrap}
.prv-steps li.is-next{font-weight:600}
.prv-step .sp{flex:1}
.prv-steps .st{margin-left:6px}
.prv-hold{padding:10px 0;border-bottom:1px solid var(--line-2)}
.prv-hold p{margin:0}
.prv-review h2 small{font-weight:400;font-size:12px;margin-left:6px}
.prv-review form button.ghost{justify-self:start}

/* The shared dark .btn.danger is a dark red fill that sinks into the dark surface: use the readable tint. */
:root[data-theme="dark"] .btn.danger{background:var(--bad);color:#2a0d0d}
.prv-next{display:block;margin-top:6px;max-width:34ch}

/* ---- public policy page (LGP-02) ---- */
.prv-public{max-width:760px;margin:0 auto;padding:32px 16px 64px;display:grid;gap:24px;overflow-wrap:anywhere}
.prv-public .brand{text-decoration:none;color:var(--ink);font-weight:600}
.prv-pub-card{border:1px solid var(--line);border-radius:var(--r-sm);padding:20px;background:var(--surface)}
.prv-pub-card h2{font-size:16px;margin:0 0 8px}
.prv-pub-text h2{font-size:18px}.prv-pub-text h3{font-size:15px;margin:18px 0 4px}
.prv-pub-text p{line-height:1.6}
.prv-pub-history{padding-left:18px;color:var(--sec)}
.prv-pub-card .btn{min-height:44px;display:inline-flex;align-items:center;margin:4px 8px 4px 0}

/* ---- manage policy + case trail (LGP-02/03/10) ---- */
.prv-manage{max-width:900px;display:grid;gap:24px;grid-template-columns:minmax(0,1fr)}
.prv-manage .panel,.prv-manage form{min-width:0}
.prv-manage .tbl{overflow-x:auto}
.prv-manage .head{flex-wrap:wrap;gap:12px}
.prv-manage .sub,.prv-manage p{overflow-wrap:anywhere}
.prv-manage textarea{max-width:100%}
.prv-manage form{display:grid;gap:14px;max-width:720px}
.prv-manage label,.prv-manage p{display:grid;gap:6px}
.prv-manage input:not([type=checkbox]),.prv-manage textarea{width:100%;box-sizing:border-box}
.prv-manage label:has(>input[type=checkbox]){display:flex;gap:10px;align-items:flex-start}
.prv-trail{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:16px 0}
.prv-trail li{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--sec)}
.prv-trail li[data-state=done]{color:var(--ink)}
.prv-trail li[data-state=current]{color:var(--ink);border-color:var(--ink);font-weight:600}
.prv-dot{width:8px;height:8px;border-radius:50%;background:var(--line-2);flex:none}
.prv-trail li[data-state=done] .prv-dot{background:var(--ok-ico)}
.prv-trail li[data-state=current] .prv-dot{background:var(--warn-ico,var(--ink))}
.prv-rule{font-size:13px;color:var(--sec);margin:4px 0}
.prv-hash{font-family:ui-monospace,monospace;font-size:12px;word-break:break-all}

/* ---- LGP: direitos, modal de eliminação, tabelas a 390 px ---- */
.prv-no-decide{margin:12px 0 0;color:var(--sec)}
.prv-rights-h{font-size:14px;margin:0 0 8px}
.prv-rights-list{margin:0}
.prv-rights-list li{display:block;padding:12px 0}
.prv-right{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin:0}
.prv-right-main{display:flex;flex-direction:column;gap:6px;flex:1 1 260px;min-width:0}
.prv-right-main .t{font-weight:600;color:var(--ink);font-size:14px}
.prv-right-main .d{font-size:12.5px;color:var(--sec);line-height:1.5}
.prv-right .btn{flex:none;min-height:36px}
.prv-erase-blocks{display:grid;gap:4px;margin:12px 0}
.prv-erase-blocks dt{font-weight:600;font-size:13px;margin-top:8px}
.prv-erase-blocks dd{margin:0;font-size:13px;color:var(--sec);line-height:1.5}
.prv-officer{margin:0;padding:10px 16px;border-bottom:1px solid var(--line-2);overflow-wrap:anywhere}
.prv-answer{margin:6px 0 0;padding:8px 10px;background:var(--sunken);border-radius:var(--r-sm);font-size:13px;overflow-wrap:anywhere;white-space:pre-wrap}
.prv-req-main{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.prv-req-main form{margin:0}
.prv-req-main .prv-req-notes,.prv-req-main .prv-answer{flex-basis:100%}
.prv-trail li[data-state=blocked]{color:var(--ink);border-color:var(--bad);white-space:normal}
.prv-trail li[data-state=blocked] .prv-dot{background:var(--bad)}
.prv-trail li[data-state=skipped]{color:var(--sec);white-space:normal}
.prv-trail li[data-state=skipped] .prv-dot{background:var(--line)}
.prv-gov .st,.prv-stack .st{white-space:normal;text-align:left}
.prv-stack{table-layout:auto}
@media (min-width:641px){[data-testid=governance-panel] .prv-stack td:first-child{width:44%}}
@media (max-width:600px){
  .prv-right .btn{width:100%;min-height:44px}
  .prv-gov .st,.prv-stack .st{display:inline-flex;max-width:100%}
}
.prv-erase-form{display:grid;gap:8px;margin-top:12px}
.prv-erase-form textarea{width:100%;box-sizing:border-box}
.prv-erase-btns{display:flex;gap:8px;flex-wrap:wrap}
