/* App layout. Shared type tokens live in workspace.css. Print keeps its own rules. */
@media screen {
body.v2.ph-app {
  font:var(--ph-regular) var(--ph-text-sm)/1.5 var(--sans);
  font-variant-numeric:tabular-nums;
  caret-color:var(--v3-focus);
  scrollbar-color:var(--v2-control) var(--v2-ground);
  text-underline-offset:.2em;
}
body.v2.ph-app ::selection { background:var(--v3-focus);color:var(--v2-ground) }
body.v2.ph-app * { scrollbar-color:var(--v2-control) var(--v2-ground) }
body.v2.ph-app :is(input,textarea,select,button) { font-family:var(--sans);font-variant-numeric:tabular-nums }
body.v2.ph-app :is(h1,h2,h3,h4) { font-family:var(--sans);font-weight:var(--ph-medium);letter-spacing:-.025em }
body.v2.ph-app :is(h1,.ph-welcome h1,.ph-review-header h1) { font-size:var(--ph-text-title) }
body.v2.ph-app :is(h2,.ph-panel h2,.ph-start-form h2) { font-size:var(--ph-text-xl) }
body.v2.ph-app :is(h3,.ph-panel h3) { font-size:var(--ph-text-lg) }
body.v2.ph-app :is(h4,strong,b) { font-weight:var(--ph-strong) }
body.v2.ph-app :is(button.primary,.ph-wordmark strong) { font-weight:var(--ph-medium) }
body.v2.ph-app :is(.tool-window,.ph-card,.ph-stat,.ph-close-hero,.ph-review,.ph-table-wrap,.ph-output-preview,details,fieldset,.ph-notice,.ph-badge) {
  border:0;border-radius:0;box-shadow:none;background:transparent;
}
body.v2.ph-app .ph-shell { padding:0;max-width:none }
body.v2.ph-app #ph-workspace { margin:0;min-height:100dvh;overflow:visible }
body.v2.ph-app .tool-window-body { grid-template-columns:176px minmax(0,1fr);min-height:calc(100dvh - 72px) }
body.v2.ph-app .ph-header { display:flex;height:72px;padding:12px 24px;gap:24px;background:var(--v2-ground);border:0 }
body.v2.ph-app .ph-wordmark { font-size:var(--ph-text-md);white-space:nowrap;letter-spacing:-.025em }
body.v2.ph-app .ph-month-header { display:flex;flex:1;padding:0;gap:24px;background:transparent;border:0;min-width:0 }
body.v2.ph-app .ph-month-header :is(select,input) { background:transparent;border:0;margin:0;font-size:var(--ph-text-sm);font-weight:var(--ph-medium) }
body.v2.ph-app .ph-switcher { max-width:420px;flex:1;min-width:0 }
body.v2.ph-app .ph-switcher select { width:100%;text-overflow:ellipsis }
/* Beat the shared theme control selector, including its :is() specificity. */
body.v2.ph-app .ph-header #ph-theme { border:0;background:transparent;color:var(--v2-muted);flex:none;width:44px;height:44px;min-height:44px;padding:0 }

body.v2.ph-app .ph-sidebar { padding:24px 12px;background:var(--v2-ground);border:0 }
body.v2.ph-app .ph-sidebar button.ph-nav-item { padding:10px;gap:8px }
body.v2.ph-app .ph-sidebar-bottom { padding-top:32px }
body.v2.ph-app .ph-sidebar-bottom summary { font-size:var(--ph-text-xs) }
body.v2.ph-app .ph-nav-count { border:0;background:transparent;padding:0 }
body.v2.ph-app .ph-panel { padding:32px 40px;max-width:1320px }
body.v2.ph-app .ph-panel[data-view] { animation:none }
body.v2.ph-app .ph-demo-banner { border:0;min-height:32px;padding:0 40px;gap:6px }
body.v2.ph-app .ph-demo-banner button { min-height:32px;padding:0 }
body.v2.ph-app .ph-demo-banner strong { font-weight:var(--ph-regular) }
body.v2.ph-app .ph-close-hero { display:block;padding:16px 0 8px;margin:0 }
body.v2.ph-app .ph-close-hero h1 { max-width:28ch;margin:0 0 24px;line-height:1.25 }
body.v2.ph-app .ph-home-next { display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:24px }
body.v2.ph-app .ph-card { padding:24px 0 }
body.v2.ph-app .ph-grid>.ph-card { padding-top:0 }
body.v2.ph-app details { padding:0;margin:16px 0 }
body.v2.ph-app details>summary { color:var(--v2-muted);font-weight:var(--ph-medium) }
body.v2.ph-app details[open]>summary { margin-bottom:16px;color:var(--v2-ink) }
body.v2.ph-app .ph-badge { padding:0;background:transparent!important;border:0;white-space:nowrap }
body.v2.ph-app .ph-badge::before { content:none }
body.v2.ph-app button:not(.primary):not([data-unit]) { border-color:transparent;box-shadow:none }
body.v2.ph-app button:not(.primary):hover { background:var(--v2-soft) }
body.v2.ph-app button.primary { box-shadow:none }
body.v2.ph-app .ph-output-actions { display:flex;flex-wrap:wrap;gap:8px;margin:32px 0 0 }
body.v2.ph-app .ph-output-actions button { background:var(--v2-soft);padding-inline:16px }
body.v2.ph-app .ph-output-cards { display:block }
body.v2.ph-app .ph-output-cards>section { padding:24px 0 }
body.v2.ph-app :is(.ph-output-status,.ph-report-summary p,.ph-report-summary li) { font-size:var(--ph-text-sm) }
body.v2.ph-app .ph-report-summary { border:0;border-radius:0;padding:24px 0 }
body.v2.ph-app .ph-report-summary :is(h2,.ph-stat strong) { font-size:var(--ph-text-xl) }
body.v2.ph-app .ph-report-summary h3 { font-size:var(--ph-text-md) }
body.v2.ph-app .ph-report-summary .ph-report-answer { font-size:var(--ph-text-lg) }
body.v2.ph-app .ph-report-summary :is(.ph-report-note,.ph-report-bar-key,.ph-report-summary-footer p) { font-size:var(--ph-text-xs) }
body.v2.ph-app .ph-report-summary .ph-report-alert { border-left-width:1px }
body.v2.ph-app .ph-audit-progress { display:flex;flex-wrap:wrap;gap:16px 28px;list-style:none;padding:0;margin:24px 0;color:var(--v2-muted) }
body.v2.ph-app .ph-audit-progress li { display:flex;align-items:center;gap:8px;padding:0;font-size:var(--ph-text-sm) }
body.v2.ph-app .ph-audit-progress [data-state=hecho] { color:var(--ph-good) }
body.v2.ph-app .ph-audit-progress [aria-current=step] { color:var(--v2-ink);font-weight:var(--ph-strong) }

body.v2.ph-app #ph-more-details { margin-top:36px }
body.v2.ph-app #ph-more-details>details { margin-block:24px }
body.v2.ph-app .ph-close-seal { display:none }
body.v2.ph-app .ph-close-summary { margin-top:32px }
body.v2.ph-app .ph-totals { display:block }
body.v2.ph-app .ph-totals .ph-stat { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:12px 0 }
body.v2.ph-app .ph-totals .ph-stat strong { margin:0;font-size:var(--ph-text-sm) }
body.v2.ph-app .ph-totals .ph-stat>span:last-child { grid-column:1/-1 }
body.v2.ph-app .ph-review { grid-template-columns:minmax(260px,.38fr) minmax(0,1fr);gap:24px;overflow:visible }
body.v2.ph-app .ph-review-header h1 { font-size:var(--ph-text-xl) }
body.v2.ph-app .ph-review-header>strong { font-size:var(--ph-text-sm);font-weight:var(--ph-regular);color:var(--v2-muted) }
body.v2.ph-app .ph-list-panel { border:0;min-height:0 }
body.v2.ph-app .ph-queue [data-select] { display:block;width:100%;padding:16px;text-align:left;cursor:pointer;border:0;border-radius:8px;background:transparent;line-height:1.5 }
body.v2.ph-app .ph-queue [data-select]:hover { background:var(--v2-soft) }
body.v2.ph-app .ph-queue [aria-selected=true] { background:var(--v2-soft) }
body.v2.ph-app .ph-queue [data-select]:focus-visible { outline:2px solid var(--v3-focus);outline-offset:-2px }
body.v2.ph-app .ph-queue>li { margin-bottom:4px }
body.v2.ph-app .ph-row-description { margin:4px 0 }
body.v2.ph-app .ph-row-id { margin:0;min-width:0 }
body.v2.ph-app .ph-row-foot .ph-badge { display:inline-flex;align-items:center;gap:6px;flex:none;margin:0;padding:0 }
body.v2.ph-app .ph-row-foot .ph-badge::before { content:'';width:5px;height:5px;border-radius:50%;background:currentColor }
body.v2.ph-app .ph-detail { background:var(--v2-surface);border:0;border-radius:8px }
body.v2.ph-app .ph-detail-scroll { padding:24px 28px 0 }
body.v2.ph-app .ph-detail-heading { border:0;padding:0;margin-bottom:24px }
body.v2.ph-app .ph-detail-heading h2 { font-size:var(--ph-text-title) }
body.v2.ph-app .ph-detail-heading p { margin:8px 0 0 }
body.v2.ph-app .ph-comparison { display:flex;flex-direction:column;gap:0 }
body.v2.ph-app .ph-proposals { order:0 }
body.v2.ph-app .ph-bank-evidence { order:1;border:0;padding:0;margin:0 }
body.v2.ph-app .ph-proposal h3 { display:inline-block;margin:0 12px 0 0;font-size:var(--ph-text-lg) }
body.v2.ph-app .ph-allocation { margin:12px 0!important }
body.v2.ph-app .ph-allocation :is(strong,span,small) { display:inline;margin-right:8px }
body.v2.ph-app .ph-evidence { margin:20px 0;gap:8px;color:var(--v2-ink) }
body.v2.ph-app .ph-detail-scroll .ph-reason { margin:0 0 16px;padding:0 }
body.v2.ph-app .ph-decision-bar { position:sticky;bottom:0;border:0;padding:16px 28px;background:var(--v2-surface) }
body.v2.ph-app .ph-decision-actions { gap:12px }
body.v2.ph-app .ph-undo { display:flex;align-items:center;gap:12px;font-size:var(--ph-text-xs) }
body.v2.ph-app .ph-undo button { min-height:44px;white-space:nowrap }
body.v2.ph-app .ph-pagination { border:0 }
body.v2.ph-app #ph-portfolio { display:block }
body.v2.ph-app #ph-portfolio .ph-flow-progress { margin:8px 0 24px }
body.v2.ph-app #ph-portfolio-progress strong { display:inline;font-size:var(--ph-text-sm);font-weight:var(--ph-regular);color:var(--v2-muted) }
body.v2.ph-app #ph-portfolio progress { display:none }
body.v2.ph-app #ph-portfolio :is(th,td) { background:transparent }
body.v2.ph-app .ph-portfolio-heading { justify-content:space-between }
body.v2.ph-app .ph-portfolio-row { background:transparent }
body.v2.ph-app #ph-portfolio-help .ph-portfolio-sort { display:flex;flex-wrap:wrap }
body.v2.ph-app #ph-unit-map { padding:0;margin:24px 0;border:0;border-radius:0;background:transparent }
body.v2.ph-app #ph-unit-map .ph-unit-heading { align-items:center;gap:12px }
body.v2.ph-app #ph-unit-map #ph-unit-filter { margin:0;max-width:240px }
body.v2.ph-app #ph-unit-map-help { margin:0 }
body.v2.ph-app #ph-unit-map-help[open] { width:100% }
body.v2.ph-app #ph-unit-map .ph-unit-legend { font-size:var(--ph-text-xs);gap:8px 20px }
body.v2.ph-app #ph-unit-map .ph-unit-legend li { display:flex;align-items:center;gap:4px }
body.v2.ph-app #ph-unit-map .ph-unit-row button { border:0;padding:8px;min-height:44px;background:var(--v2-soft);font-size:var(--ph-text-xs) }
body.v2.ph-app #ph-unit-map [data-unit-state=unidentified] { background:transparent }
body.v2.ph-app #ph-unit-map [data-unit-state=partial] { color:var(--ph-warn) }
body.v2.ph-app .ph-footer { padding:16px 24px;font-size:var(--ph-text-xs);border:0;display:flex;flex-wrap:wrap;gap:4px 16px;max-width:none }
body.v2.ph-app .ph-footer p { margin:0;max-width:none }
body.v2.ph-app .ph-footer>a { min-height:0 }
body.v2.ph-app .ph-legal-line { margin:24px 0 0;color:var(--v2-muted);font-size:var(--ph-text-xs) }
body.v2.ph-app summary { display:flex;align-items:center;gap:8px;list-style:none }
body.v2.ph-app summary::-webkit-details-marker { display:none }
body.v2.ph-app summary::marker { content:'' }
body.v2.ph-app .ph-disclosure-chevron { width:16px;height:16px;flex:none;transition:transform 140ms ease }
body.v2.ph-app details[open]>summary>.ph-disclosure-chevron { transform:rotate(90deg) }
body.v2.ph-app #ph-unit-map-help summary { width:44px;justify-content:center }
body.v2.ph-app .ph-unit-legend-row { display:flex;align-items:center;flex-wrap:wrap;gap:8px }
body.v2.ph-app .ph-unit-legend-row .ph-unit-legend { flex:1;margin:0 }
body.v2.ph-app :is(.ph-month-header select,#filter) { appearance:none;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23919b98' stroke-width='2'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 8px center/16px;border:0;padding-right:32px }
body.v2.ph-app .ph-detail-nav { display:none }
@media screen and (max-width:900px) {
  body.v2.ph-app .ph-detail-nav button:disabled { background:transparent;color:var(--v2-muted);opacity:.4 }
  body.v2.ph-app .ph-header { flex-wrap:wrap;height:auto;gap:4px 12px;padding:8px 16px }
  body.v2.ph-app .ph-wordmark { flex:1 }
  body.v2.ph-app #ph-theme { order:1 }
  body.v2.ph-app .ph-month-header { order:2;flex-basis:100%;gap:8px }
  body.v2.ph-app .ph-month-controls { max-width:48%;min-width:0 }
  body.v2.ph-app .ph-month-controls select { max-width:100% }
  body.v2.ph-app .ph-panel { padding:24px 16px }
  body.v2.ph-app .ph-demo-banner { padding:0 16px }
  body.v2.ph-app .ph-audit-progress { gap:12px }
  body.v2.ph-app .ph-audit-progress li+li:before { margin-right:12px }
  body.v2.ph-app .ph-output-actions { gap:4px }
  body.v2.ph-app .ph-output-actions button { flex:1 1 40% }

}
@media screen and (max-width:650px) {
  body.v2.ph-app .ph-review { display:block;height:auto }
  body.v2.ph-app .ph-queue { max-height:none;overflow:visible }
  body.v2.ph-app .ph-queue [data-select] { padding:12px }
  body.v2.ph-app .ph-detail { display:none;padding:0 0 var(--ph-decision-height,0px);max-height:none;overflow:visible }
  body.v2.ph-app [data-review-detail=true] :is(.ph-review-header,.ph-inbox-meta,.ph-list-panel) { display:none }
  body.v2.ph-app [data-review-detail=true] .ph-detail { display:block }
  body.v2.ph-app .ph-detail-nav { display:flex;align-items:center;justify-content:space-between;padding:0 8px }
  body.v2.ph-app .ph-detail-nav>div { display:flex }
  body.v2.ph-app .ph-detail-scroll { padding:12px 16px 0;overflow:visible }
  body.v2.ph-app .ph-detail-heading { margin-bottom:16px }
  body.v2.ph-app .ph-decision-bar { display:none }
  body.v2.ph-app [data-review-detail=true] .ph-decision-bar { display:block;position:fixed;bottom:var(--ph-tabs-height);left:16px;right:16px;padding:12px 16px;z-index:8 }
  body.v2.ph-app:has([data-review-detail=false]) #ph-message.ph-toast-viewport:not(:empty) { bottom:calc(var(--ph-tabs-height) + 12px) }
  body.v2.ph-app .ph-demo-banner :is(button,a) { min-height:44px;display:inline-flex;align-items:center }
}
@media screen and (max-width:650px) and (prefers-reduced-motion:no-preference) {
  body.v2.ph-app [data-review-detail=true] :is(.ph-detail-nav,.ph-detail-scroll) { animation:ph-detail-push 140ms ease-out }
}
@media (prefers-reduced-motion:reduce) {
  body.v2.ph-app .ph-disclosure-chevron { transition:none }
}
@keyframes ph-detail-push { from { transform:translateX(16px);opacity:0 } to { transform:translateX(0);opacity:1 } }

}
@media print {
  body.v2.ph-app #ph-workspace { min-height:0 }
  body.v2.ph-app .ph-detail { background:white }
}

/* Standalone tools share the app bar and open surface, without a sidebar. */
@media screen {
  body.v2.ph-standalone .ph-header { justify-content:space-between;flex-wrap:nowrap;height:72px }
  body.v2.ph-standalone .ph-wordmark { flex:none }
  body.v2.ph-standalone .ph-shell { min-height:calc(100dvh - 72px) }
  body.v2.ph-standalone .tool-window { margin:0;overflow:visible }
  body.v2.ph-standalone .ph-footer a { display:inline-flex;align-items:center;min-height:44px }
  body.v2.ph-app #ph-independent .ph-report-footer a { display:inline-flex;align-items:center;min-height:44px }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) { overflow-wrap:anywhere }
  body.v2.ph-app :is(#ph-independent,#ph-muestra),
  body.v2.ph-app :is(#ph-independent,#ph-muestra) :is(.ph-card,.ph-table-wrap,details,fieldset) { border:0;border-radius:0;box-shadow:none;background:transparent }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) summary { min-height:44px }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) .ph-file-button { min-height:44px;font-size:var(--ph-text-sm) }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) .ph-file-name { font-size:var(--ph-text-xs) }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) :is(input,select,textarea) { min-width:0;max-width:100% }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) select { min-height:44px }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) :is(.ph-verify-ack,.muestra-ack) { display:flex;align-items:center;gap:12px;min-height:44px;margin:12px 0 20px;cursor:pointer }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) input[type=checkbox] { flex:none;margin:0 }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) :is(table,th,td) { background:transparent }
}
/* Keep authored disclosure icons in printed tool views too. */
@media print {
  body.v2.ph-app :is(#ph-independent,#ph-muestra) summary { display:flex;align-items:center;gap:8px;list-style:none }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) summary::-webkit-details-marker { display:none }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) summary::marker { content:'' }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) .ph-disclosure-chevron { width:16px;height:16px;flex:none }
  body.v2.ph-app :is(#ph-independent,#ph-muestra) details[open]>summary>.ph-disclosure-chevron { transform:rotate(90deg) }
}
body.v2.ph-app :is(#ph-muestra,#ph-independent) button{font-size:14px} /* app type scale: 12/14/16/20/24/32 */
@media(max-width:650px){body.v2.ph-app :is(#ph-muestra,#ph-independent) .ph-grid{grid-template-columns:1fr}}
