:root{
  --navy:#071d3a;
  --deep:#0b3c66;
  --blue:#168fc4;
  --aqua:#78e7f2;
  --cream:#fff8e8;
  --paper:#ffffff;
  --ink:#18324d;
  --muted:#5f7288;
  --line:rgba(22,143,196,.22);
  --shadow:0 18px 45px rgba(7,29,58,.10);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 12% 8%, rgba(120,231,242,.35), transparent 28%),
    radial-gradient(circle at 90% 10%, rgba(255,248,232,.9), transparent 32%),
    linear-gradient(180deg,#eefdff 0%,#fff8e8 100%);
}
a{color:#0b6fa4}
.site-header{
  background:linear-gradient(135deg,var(--navy),#0a527f);
  color:#fff;
  padding:22px 6vw;
  border-bottom:4px solid var(--aqua);
  box-shadow:0 10px 30px rgba(7,29,58,.18);
}
.brand-row{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.brand-title{font-size:26px;font-weight:900;letter-spacing:.2px}
.brand-subtitle{font-size:14px;opacity:.88;margin-top:4px}
.nav{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.nav a{
  color:#fff;
  text-decoration:none;
  font-weight:800;
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(255,255,255,.08);
}
.nav a:hover{background:rgba(120,231,242,.18)}
main{padding:36px 6vw;max-width:1240px;margin:0 auto}
.hero,.card{
  background:rgba(255,255,255,.92);
  border:1px solid var(--line);
  border-radius:24px;
  padding:26px;
  box-shadow:var(--shadow);
  margin-bottom:22px;
}
.hero{
  background:
    linear-gradient(135deg,rgba(255,255,255,.96),rgba(230,252,255,.92)),
    radial-gradient(circle at 90% 20%,rgba(120,231,242,.25),transparent 35%);
}
h1,h2,h3{color:var(--deep);margin-top:0}
h1{font-size:clamp(34px,5vw,58px);line-height:1.02;margin-bottom:12px}
.lead{font-size:19px;line-height:1.6;color:#24496b;max-width:850px}
.muted{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.gallery-card{overflow:hidden;padding:0}
.gallery-thumb{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
  background:#eafcff;
}
.gallery-body{padding:20px}
.badge{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  background:#dff7fb;
  color:#0b3c66;
  font-size:12px;
  font-weight:900;
  letter-spacing:.3px;
  text-transform:uppercase;
}
.status{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  background:#fff3ca;
  color:#6d5200;
  font-size:12px;
  font-weight:900;
}
.status.approved{background:#daf8e4;color:#126d38}
.status.featured{background:#dff7fb;color:#0b6078}
label{display:block;font-weight:900;margin:14px 0 6px;color:#18324d}
input,select,textarea{
  width:100%;
  padding:13px 14px;
  border:1px solid #b9dce8;
  border-radius:14px;
  font-size:16px;
  background:#fff;
}
textarea{min-height:130px}
button,.btn{
  display:inline-block;
  background:linear-gradient(135deg,#0b6fa4,#18a8cf);
  color:white;
  border:0;
  border-radius:999px;
  padding:12px 20px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
  margin-top:14px;
}
.btn.secondary,button.secondary{background:#dff7fb;color:#0b3c66}
.notice{padding:12px 14px;background:#e9fbff;border:1px solid #9fe8f2;border-radius:14px;margin-bottom:18px}
.error{padding:12px 14px;background:#fff0f0;border:1px solid #ffb7b7;border-radius:14px;margin-bottom:18px}
table{width:100%;border-collapse:collapse;background:white;border-radius:16px;overflow:hidden}
th,td{padding:12px;border-bottom:1px solid #e6eef2;text-align:left;vertical-align:top}
.creator-chip{display:flex;align-items:center;gap:12px}
.avatar{
  width:46px;height:46px;border-radius:50%;
  background:linear-gradient(135deg,#78e7f2,#fff8e8);
  border:2px solid #fff;
  box-shadow:0 5px 15px rgba(7,29,58,.10);
}
.site-footer{padding:32px 6vw;color:#52697f;text-align:center}
@media(max-width:720px){
  main{padding:24px 18px}
  .site-header{padding:20px 18px}
  .nav a{font-size:14px}
}

/* Phase 2 professional portal polish */
.stat-number{font-size:38px;font-weight:900;line-height:1;color:#0b3c66;margin:8px 0}
.kpi-card{
  position:relative;
  overflow:hidden;
  min-height:138px;
}
.kpi-card:after{
  content:"";
  position:absolute;
  right:-40px;
  top:-40px;
  width:120px;
  height:120px;
  border-radius:50%;
  background:rgba(120,231,242,.28);
}
.dashboard-hero{
  display:grid;
  grid-template-columns:1.5fr .8fr;
  gap:22px;
  align-items:stretch;
}
.mission-card{
  border-left:6px solid var(--aqua);
}
.progress{
  width:100%;
  height:12px;
  background:#e6f4f8;
  border-radius:999px;
  overflow:hidden;
  margin:10px 0 4px;
}
.progress span{
  display:block;
  height:100%;
  background:linear-gradient(90deg,#0b6fa4,#78e7f2);
  border-radius:999px;
}
.activity-item{
  display:flex;
  gap:12px;
  padding:14px 0;
  border-bottom:1px solid #e6eef2;
}
.activity-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  background:#78e7f2;
  margin-top:6px;
  flex:0 0 auto;
}
.command-bar{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:18px;
}
.panel-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.small-pill{
  display:inline-block;
  padding:5px 9px;
  border-radius:999px;
  background:#eefbff;
  color:#0b3c66;
  font-size:12px;
  font-weight:900;
}
.feature-banner{
  background:linear-gradient(135deg,#08264b,#0b6fa4);
  color:#fff;
  border-radius:24px;
  padding:28px;
  box-shadow:var(--shadow);
}
.feature-banner h1,.feature-banner h2,.feature-banner h3{color:#fff}
.feature-banner .lead{color:#e9fbff}
@media(max-width:860px){
  .dashboard-hero{grid-template-columns:1fr}
}

/* Official RFW Commons branded header */
.brand-shell{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  flex-wrap:wrap;
}
.brand-left{
  display:flex;
  align-items:center;
  gap:14px;
}
.brand-logo{
  width:58px;
  height:58px;
  border-radius:18px;
  object-fit:cover;
  background:#fff;
  padding:6px;
  box-shadow:0 8px 22px rgba(0,0,0,.18);
}
.brand-kicker{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  opacity:.82;
  font-weight:900;
}
.portal-chip{
  background:rgba(120,231,242,.16);
  border:1px solid rgba(120,231,242,.35);
  border-radius:999px;
  padding:10px 14px;
  font-weight:900;
}
.announcement-ribbon{
  background:linear-gradient(90deg,#78e7f2,#fff8e8);
  color:#08264b;
  font-weight:900;
  padding:11px 6vw;
  text-align:center;
  border-bottom:1px solid rgba(7,29,58,.12);
}
.site-footer{
  background:#071d3a;
  color:#dff7fb;
  margin-top:40px;
}
.footer-grid{
  max-width:1240px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:24px;
  text-align:left;
}
.footer-grid a{
  color:#dff7fb;
  display:block;
  margin:8px 0;
  text-decoration:none;
}
.footer-small{
  max-width:1240px;
  margin:24px auto 0;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.14);
  text-align:left;
  color:#9ed7e4;
}
@media(max-width:760px){
  .brand-logo{width:48px;height:48px}
  .footer-grid{grid-template-columns:1fr}
}

/* Official RFW Commons branded header */
.brand-shell{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  flex-wrap:wrap;
}
.brand-left{
  display:flex;
  align-items:center;
  gap:14px;
}
.brand-logo{
  width:58px;
  height:58px;
  border-radius:18px;
  object-fit:cover;
  background:#fff;
  padding:6px;
  box-shadow:0 8px 22px rgba(0,0,0,.18);
}
.brand-kicker{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  opacity:.82;
  font-weight:900;
}
.portal-chip{
  background:rgba(120,231,242,.16);
  border:1px solid rgba(120,231,242,.35);
  border-radius:999px;
  padding:10px 14px;
  font-weight:900;
}
.announcement-ribbon{
  background:linear-gradient(90deg,#78e7f2,#fff8e8);
  color:#08264b;
  font-weight:900;
  padding:11px 6vw;
  text-align:center;
  border-bottom:1px solid rgba(7,29,58,.12);
}
.site-footer{
  background:#071d3a;
  color:#dff7fb;
  margin-top:40px;
}
.footer-grid{
  max-width:1240px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:24px;
  text-align:left;
}
.footer-grid a{
  color:#dff7fb;
  display:block;
  margin:8px 0;
  text-decoration:none;
}
.footer-small{
  max-width:1240px;
  margin:24px auto 0;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.14);
  text-align:left;
  color:#9ed7e4;
}
@media(max-width:760px){
  .brand-logo{width:48px;height:48px}
  .footer-grid{grid-template-columns:1fr}
}
