/* Flamingo Portal compatibility layer: keeps portal functionality while using the Recruitment Portal UI language. */
.public-portal{margin:0;background:var(--warm-white);font-family:'Instrument Sans','Outfit','Segoe UI',system-ui,sans-serif}
.public-portal>.alert{position:fixed;top:88px;left:50%;transform:translateX(-50%);z-index:9999;width:min(760px,calc(100% - 32px));box-shadow:var(--shadow-hover)}
.portal-body .content{min-height:calc(100vh - 104px)}
.portal-body .panel,.portal-body .login-card,.portal-body .scanner-card,.portal-body .scan-result,.portal-body .rules-card,.portal-body .station-card,.portal-body .service-summary,.portal-body .attendance-card,.portal-body .executive-card{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:21px;margin-bottom:20px}
.portal-body .panel:hover,.portal-body .station-card:hover{box-shadow:var(--shadow-hover)}
.panel h1,.panel h2,.panel h3,.panel h4,.scanner-card h3,.rules-card h3,.station-card h3{font-family:'Outfit',sans-serif;color:var(--primary)}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.panel-head h2,.panel-head h3{margin:0}.panel-head p{margin:5px 0 0;color:var(--muted)}
.page-actions{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.page-actions .btn{margin:0}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.secondary{background:var(--primary-light);border-color:#dce4ed;color:var(--primary)}.btn.secondary:hover{background:var(--primary);color:#fff}.btn.success{background:var(--success);color:#fff}.btn.warning{background:var(--secondary);color:#fff}.btn.danger{background:var(--danger);color:#fff}.btn.small{padding:7px 10px;font-size:13px}.btn.wide{width:100%;text-align:center}
button.link-button{border:0;background:transparent;font:inherit;cursor:pointer}.sidebar-signout-form{margin:0}.sidebar-signout-form .sidebar-signout{border:0;background:transparent;font:inherit;cursor:pointer;width:100%}
.tag,.status-pill,.role-chip,.badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:6px;background:var(--primary-light);color:var(--primary);font-size:12px;font-weight:700}.tag.success,.status-pill.success,.badge.success{background:#e7f3eb;color:var(--success)}.tag.blocked,.badge.off{background:#fee4e2;color:var(--danger)}.tag.warning{background:#fff3e2;color:var(--secondary)}
.stat-grid,.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:21px;box-shadow:var(--shadow);border-top:4px solid var(--primary)}.stat-card:nth-child(2){border-top-color:var(--secondary)}.stat-card:nth-child(3){border-top-color:var(--accent)}.stat-card:nth-child(4){border-top-color:var(--success)}.stat-card span{display:block;color:var(--muted)}.stat-card strong{display:block;font-size:31px;color:var(--primary);margin-top:5px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.station-card{margin:0}.station-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.station-actions form{margin:0}
.role-subtabs,.subtabs,.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:10px}.role-subtabs a,.subtabs a,.tabs a{padding:10px 15px;border-radius:8px;text-decoration:none;color:var(--primary);font-weight:700;background:#fff;border:1px solid var(--border)}.role-subtabs a.active,.subtabs a.active,.tabs a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.form-stack{display:grid;gap:16px}.form-stack>label{display:grid;gap:7px}.form-grid>label{display:grid;gap:7px}.form-grid .span-2,.span-2{grid-column:1/-1}.form-stack small,label small{color:var(--muted);font-weight:400}.switch-row{display:flex!important;align-items:flex-start;gap:12px}.switch-row input{width:auto;margin-top:4px}
.filters{align-items:end}.filters label{display:grid;gap:7px}.filters .btn{height:44px;display:inline-flex;align-items:center;justify-content:center}
.table-wrap{max-width:100%;overflow:auto}.table-wrap table{white-space:normal}.table-wrap th{position:sticky;top:0;z-index:1}.table-wrap tbody tr{transition:.15s}.table-wrap td .btn{white-space:nowrap}.table-actions,.inline-actions{display:flex;gap:7px;flex-wrap:wrap}.table-actions form,.inline-actions form{margin:0}
.pagination,.pager{display:flex;gap:6px;margin-top:15px;flex-wrap:wrap}.pagination a,.pagination span,.pager a{padding:8px 11px;background:#fff;border:1px solid var(--border);border-radius:7px;text-decoration:none;color:var(--primary)}.pagination .active,.pager .active{background:var(--primary);color:#fff}
.warning{padding:13px 15px;border-radius:8px;margin-bottom:18px;background:#fff6e6;color:#7a4b00;border-left:4px solid var(--secondary)}.flash{padding:13px 15px;border-radius:8px;margin:0 34px 18px;background:#e8f4ec;color:#245d3b;border-left:4px solid var(--success)}.flash.error{background:#fee9e7;color:#9d1d14;border-left-color:#d74a3a}
.narrow{max-width:980px}.split{align-items:start}
dialog{border:0;border-radius:16px;padding:0;box-shadow:0 25px 80px rgba(0,0,0,.3);width:min(760px,calc(100% - 28px));color:var(--text)}dialog::backdrop{background:rgba(6,18,34,.66)}.modal-form,.confirm-box{padding:24px;background:#fff;display:grid;gap:16px}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.modal-head h3{margin:0;color:var(--primary);font-family:'Outfit',sans-serif}.modal-head [data-close]{border:0;background:var(--primary-light);color:var(--primary);width:38px;height:38px;border-radius:50%;font-size:24px;cursor:pointer}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}
.scanner-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:20px;align-items:start}.scanner-controls,.manual-entry{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.manual-entry{display:grid}.scan-result{position:sticky;top:20px}.qr-box{box-shadow:none;background:#fff}.attendance-code-card{background:var(--primary-light);border:1px solid #dce4ed;border-radius:10px;padding:16px;text-align:center}.attendance-code-card strong{font:800 28px ui-monospace,monospace;letter-spacing:3px;color:var(--primary)}
.profile-card{display:flex;align-items:center;gap:20px}.profile-photo{width:120px;height:120px;border-radius:50%;overflow:hidden;border:4px solid #fff;box-shadow:0 0 0 1px var(--border)}.profile-photo img{width:100%;height:100%;object-fit:cover}
.login-remember{margin-top:-6px}.login-remember input{width:auto}.recruiter-register-link{margin-top:22px;text-align:center;display:grid;gap:8px}.recruiter-register-link p{margin:0}.recruiter-register-link small{display:block}
.public-register-link{display:inline-flex}.scout-register-card{max-width:850px}.registration-approval-note{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}.registration-approval-note .step-number{width:32px;height:32px;font-size:13px;margin:0}
/* Dashboard and portal content keep the recruitment table/card rhythm. */
.dashboard-grid,.dashboard-sections,.service-layout,.notification-layout,.executive-grid{gap:20px}.chart-card,.summary-card,.activity-card{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}
/* SMS Centre embedded page helpers */
.sms-portal-shell{display:flex;min-height:100vh}.sms-portal-main{margin-left:282px;width:calc(100% - 282px);padding:0}.sms-portal-main .content{padding:28px 34px}.sms-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:10px}.sms-tabs a{padding:10px 15px;border-radius:8px;text-decoration:none;color:var(--primary);font-weight:700;background:#fff;border:1px solid var(--border)}.sms-tabs a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
@media(max-width:1050px){.stat-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.stat-grid,.stats-grid,.scanner-layout{grid-template-columns:1fr}.flash{margin:0 18px 18px}.public-register-link{display:none}.profile-card{align-items:flex-start}.sms-portal-main{margin:0;width:100%}}

/* Public landing exact Recruitment UI reset.
   Flamingo Portal's legacy landing declarations load before the Recruitment stylesheet;
   explicitly reset properties not redeclared by the recruitment UI. */
.public-portal .landing{width:100%;max-width:none;margin:0;overflow-x:hidden;background:var(--warm-white)}
.public-portal .landing-nav{width:100%;max-width:none;margin:0;box-sizing:border-box;min-height:76px;padding:10px 5vw;display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--primary)}
.public-portal .landing-brand{margin:0;min-width:0;flex:0 1 auto}
.public-portal .landing-actions{margin:0;padding:0;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto}
.public-portal .landing-actions .btn{margin:0;min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.public-portal .media-hero{width:100%;max-width:none;margin:0}
.public-portal .landing-section,.public-portal .steps,.public-portal .landing-footer{box-sizing:border-box}
@media(max-width:760px){
  .public-portal .landing-nav{min-height:70px;padding:8px 16px;gap:10px}
  .public-portal .landing-actions{margin:0}
}

/* Flamingo Portal: birthday month tabs + separate attendance QR actions */
.qr-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.birthday-month-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin}
.birthday-month-tabs a{flex:0 0 auto;white-space:nowrap}
@media(max-width:640px){.qr-action-buttons{grid-template-columns:1fr}.birthday-month-tabs{margin-left:-4px;margin-right:-4px}}
