:root{
  --rf-bg1:#0ea5e9;
  --rf-bg2:#6366f1;
  --rf-card:#ffffff;
  --rf-soft:#f3f4f6;
  --rf-text:#0f172a;
}
body{
  background: radial-gradient(1100px 500px at 10% 0%, rgba(14,165,233,.18), transparent 60%),
              radial-gradient(900px 450px at 90% 10%, rgba(99,102,241,.18), transparent 55%),
              linear-gradient(180deg, #fafafa, #f6f7fb 40%, #f3f4f6);
  color: var(--rf-text);
}
.rf-nav{
  background: linear-gradient(90deg, #0ea5e9, #6366f1);
}
.rf-logo{
  width: 34px; height: 34px; border-radius: 12px;
  background: rgba(255,255,255,.18);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.22);
  position: relative;
}
.rf-logo:after{
  content:"";
  position:absolute; inset:8px;
  border-radius: 10px;
  background: rgba(255,255,255,.65);
}
.rf-card{
  border:0;
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(15,23,42,.08);
}
.rf-pill{
  border-radius: 999px;
}
.rf-calendar{
  border-radius: 18px;
  overflow: hidden;
}
.rf-day{
  min-height: 110px;
  background: rgba(255,255,255,.8);
}
.rf-day:hover{
  background: rgba(255,255,255,.95);
}
.rf-day .rf-daynum{
  font-weight: 700;
  letter-spacing: -0.02em;
}
.rf-badge{
  border-radius: 999px;
  padding: .25rem .5rem;
  font-size: .75rem;
  line-height: 1.1;
  display: inline-flex;
  align-items:center;
  gap:.35rem;
  white-space: nowrap;
}
.rf-dot{
  width: 10px; height: 10px; border-radius: 999px;
  display:inline-block;
}
.rf-muted{
  color: rgba(15,23,42,.65);
}
.rf-footer{
  border-radius: 18px;
  background: rgba(255,255,255,.75);
}
.rf-alert{
  border-radius: 14px;
}
.rf-kpi{
  font-weight: 800;
  letter-spacing: -0.03em;
}
.table thead th{
  background: rgba(255,255,255,.8);
}


.rf-entry-pill{
  border-radius: 999px;
  padding: .25rem .55rem;
  font-size: .78rem;
  background: rgba(255,255,255,.95);
  box-shadow: 0 6px 18px rgba(15,23,42,.08);
  border: 1px solid rgba(15,23,42,.06);
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  cursor: pointer;
  user-select:none;
}
.rf-entry-pill:hover{
  transform: translateY(-1px);
}
.rf-scroll-row{
  overflow:auto;
  padding-bottom: .25rem;
}


/* Calendar polish */
.rf-day{ min-height: 170px; }
.rf-day .rf-entry-list{ max-height: 120px; overflow:auto; padding-right: .25rem; }
.rf-day .rf-addbtn{
  width: 26px; height: 26px; border-radius: 999px;
  display:inline-flex; align-items:center; justify-content:center;
  border: 1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.9);
}
.rf-day .rf-addbtn:hover{ background: #fff; }
.rf-pct-card{
  padding: .75rem;
}
.rf-pct-card .rf-name{ font-size: .95rem; }
.rf-pct-card .rf-num{ font-size: .82rem; }
.rf-pct-card .rf-pct{ font-size: 1.05rem; }


/* Calendar: equal width + row height equals tallest cell */
.rf-calendar .row.g-0{ align-items: stretch; }
.rf-day{ min-height: 0 !important; height: auto; }
.rf-day .rf-entry-list{ max-height: none !important; overflow: visible !important; }


/* Calendar: force 7 equal columns regardless of content */
.rf-calendar .row.g-0 > .col{
  flex: 0 0 calc(100% / 7) !important;
  max-width: calc(100% / 7) !important;
}
.rf-day{ min-width: 0 !important; }
.rf-entry-pill{ max-width: 100%; }
.rf-entry-pill .text-truncate{ display:inline-block; }

/* Filter cards */
.rf-filter-card{
  text-decoration:none;
  color: inherit;
  display:block;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
  border: 1px solid rgba(15,23,42,.08);
}
.rf-filter-card:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(15,23,42,.10);
  border-color: rgba(37,99,235,.35);
}
.rf-filter-card.is-active{
  border-color: rgba(37,99,235,.7) !important;
  box-shadow: 0 12px 28px rgba(37,99,235,.18) !important;
}


/* Calendar: force 7 equal columns regardless of content */
.rf-calendar .row.g-0 > .col{
  flex: 0 0 calc(100% / 7) !important;
  max-width: calc(100% / 7) !important;
}
.rf-day{ min-width: 0 !important; }
.rf-entry-pill{ max-width: 100%; }
.rf-entry-pill .text-truncate{ display:inline-block; }

/* Filter cards */
.rf-filter-card{
  text-decoration:none;
  color: inherit;
  display:block;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
  border: 1px solid rgba(15,23,42,.08);
}
.rf-filter-card:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(15,23,42,.10);
  border-color: rgba(37,99,235,.35);
}
.rf-filter-card.is-active{
  border-color: rgba(37,99,235,.7) !important;
  box-shadow: 0 12px 28px rgba(37,99,235,.18) !important;
}


/* Force calendar grid layout */
.rf-calendar .row.g-0{
  display:grid !important;
  grid-template-columns: repeat(7, 1fr);
}
.rf-calendar .row.g-0 > .col{
  max-width:none !important;
  width:auto !important;
}


/* Calendar grid (robust equal columns) */
.rf-cal-grid{
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0;
}
.rf-cal-grid > div{ min-width:0; }
.rf-cal-head{
  background: #fff;
}
.rf-cal-head > div{
  text-align:center;
  padding: .55rem .25rem;
  border-right: 1px solid rgba(15,23,42,.08);
}
.rf-cal-head > div:last-child{ border-right: none; }

.rf-cal-week > div{
  border-top: 1px solid rgba(15,23,42,.08);
  border-right: 1px solid rgba(15,23,42,.08);
}
.rf-cal-week > div:nth-child(7){ border-right:none; }

.rf-day{ padding:.5rem; }
.rf-daynum{ font-weight: 600; }


/* Responsive visibility */
.rf-mobile-only{ display:none; }
.rf-desktop-only{ display:block; }
@media (max-width: 768px){
  .rf-desktop-only{ display:none; }
  .rf-mobile-only{ display:block; }
}
