/* Application-specific additions. The approved design CSS files are unchanged. */
.flash-wrap{max-width:1180px;margin:14px auto 0;padding:0 16px}
.flash{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:14px;margin:0 0 10px;font-weight:600;border:1px solid transparent;transition:opacity .4s}
.flash.success{background:#e9f7ef;border-color:#bfe5cd;color:#14683a}
.flash.error{background:#fdecef;border-color:#f6c3cd;color:#9c1c3a}
.flash.info{background:#e8f1fb;border-color:#bcd5ee;color:#075AA5}
.flash-hide{opacity:0;pointer-events:none;height:0;padding:0;margin:0;overflow:hidden}
.field-error{color:#b3193d;font-size:.86rem;margin:5px 0 0;font-weight:600}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#d12b52}
.empty-state{text-align:center;padding:42px 22px;border:1px dashed #b8cde3;border-radius:20px;background:#f7fbff}
.empty-state h2,.empty-state h3{margin:6px 0}
.empty-state .icon{font-size:2.2rem;color:#E72D7A;display:block}
.gate-card{max-width:760px;margin:30px auto;text-align:center;padding:40px 28px}
.ph-signout-form,.admin-signout-form{margin:0;display:contents}
.ph-signout-form button.ph-sign-out{background:none;border:0;color:inherit;font:inherit;cursor:pointer;width:100%;text-align:left;padding:10px 14px}
button.ph-mobile-signin{background:none;border:0;font:inherit;cursor:pointer;width:100%;text-align:center}
.admin-signout-form button{background:none;border:0;color:inherit;font:inherit;display:flex;gap:10px;align-items:center;cursor:pointer;padding:10px 12px;width:100%}
.pager{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:24px 0}
.pager a,.pager span{min-width:40px;text-align:center;padding:9px 13px;border-radius:12px;border:1px solid #d3e1ef;background:#fff;color:#075AA5;text-decoration:none;font-weight:700}
.pager .current{background:#075AA5;color:#fff;border-color:#075AA5}
.pager .gap{border:0;background:none}
.inline-form{display:inline}
.inline-form button{cursor:pointer}
.btn-link{background:none;border:0;color:#075AA5;font:inherit;text-decoration:underline;cursor:pointer;padding:0}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.mfa-secret{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;word-break:break-all;background:#f1f6fb;padding:10px 12px;border-radius:10px}
.recovery-codes{columns:2;font-family:ui-monospace,Menlo,Consolas,monospace;background:#f1f6fb;padding:14px 20px;border-radius:12px}
.locked-note{color:#5b6f84;font-size:.92rem}
.contact-reveal{font-size:1.5rem;font-weight:800;color:#075AA5;letter-spacing:.02em}
.status-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:800;background:#e8f1fb;color:#075AA5}
.table-wrap{overflow-x:auto}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.photo-tile img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:14px;background:#eef3f8}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media print{.premium-header,.footer,.member-sidebar,.no-print{display:none!important}}
