/* NPC Phase 4.5: presentation-only improvements; no Firebase dependencies */
:root { --npc-focus:#b48719; --npc-line:#dbe8df; }
html { scroll-padding-top: 92px; }
:where(button,a,input,select,textarea,[tabindex]):focus-visible { outline:3px solid var(--npc-focus)!important; outline-offset:3px!important; }
:where(button,input,select,textarea) { max-width:100%; }
:where(button,a) { touch-action:manipulation; }
:where(button):not(:disabled) { transition:filter .16s ease,transform .16s ease; }
:where(button):not(:disabled):hover { filter:brightness(1.055); }
:where(button):not(:disabled):active { transform:translateY(1px); }
:where(input,select,textarea)[aria-invalid="true"] { border-color:#b82d35!important; box-shadow:0 0 0 2px #b82d3520!important; }
.npc-field-error { display:block; margin-top:5px; color:#a12832; font-size:.82rem; font-weight:600; }
.npc-ux-table-scroll { max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:10px; }
.npc-ux-table-scroll table { min-width:540px; }
.npc-ux-table-scroll :where(th,td) { vertical-align:top; overflow-wrap:anywhere; }
.npc-ux-table-scroll thead th { background:#f0f6f2; color:#16442e; }
.npc-ux-empty { text-align:center; padding:24px 16px!important; color:#5b7066; background:#f8faf8; font-weight:500; }
.npc-ux-progress { position:fixed; z-index:9997; top:0; left:0; right:0; height:3px; pointer-events:none; opacity:0; background:linear-gradient(90deg,#12452e,#d9b63c,#12452e); background-size:200% 100%; }
.npc-ux-progress.is-active { opacity:1; animation:npc-ux-sweep 1.2s linear infinite; }
@keyframes npc-ux-sweep { from{background-position:200% 0} to{background-position:0 0} }
@media(max-width:700px){
 main { max-width:100%!important; padding-left:12px!important; padding-right:12px!important; }
 .panel { padding:16px!important; border-radius:14px!important; }
 .grid { grid-template-columns:minmax(0,1fr)!important; }
 .toolbar,.actions,.filter-actions,.report-actions { gap:9px!important; flex-wrap:wrap!important; }
 .toolbar>label,.grid>label { min-width:0!important; }
 .npc-ux-table-scroll table { min-width:520px; font-size:.9rem; }
 .npc-ux-table-scroll :where(th,td) { padding:10px 9px!important; }
 :where(input,select,textarea) { font-size:16px!important; }
}
@media(prefers-reduced-motion:reduce){ .npc-ux-progress.is-active { animation:none; } :where(button):not(:disabled) { transition:none; } }
@media print { .npc-ux-progress,.npc-field-error { display:none!important; } .npc-ux-table-scroll { overflow:visible; } .npc-ux-table-scroll table { min-width:0; } }
