
:root{
  --soft-bg:#f5f7fb;
  --card-bg:#ffffff;
  --card-border:#e9edf4;
  --radius:14px;
  --fs-base:0.95rem;
  --fs-sm:0.92rem;
  --fs-lg:1.02rem;
  --shadow:0 4px 18px rgba(0,0,0,.06);
  --shadow-sm:0 2px 10px rgba(0,0,0,.05);
}
html,body{font-size:var(--fs-base);}
body{background:var(--soft-bg);}
.card{border-radius:var(--radius); border:1px solid var(--card-border); box-shadow:var(--shadow-sm);}
.btn{border-radius:10px;}
.form-control,.form-select{border-radius:10px;}
.table-hover tbody tr:hover{background:#f8fafc;}
.hover-lift{transition:transform .18s ease, box-shadow .18s ease;}
.hover-lift:hover{transform:translateY(-2px); box-shadow:var(--shadow);}
.modal .modal-content{border-radius:16px; box-shadow:var(--shadow);}
/* subtle focus */
.form-control:focus,.form-select:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.08) !important;}
/* ripple (light) */
.btn.ripple{position:relative; overflow:hidden;}
.btn.ripple:after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);background:rgba(255,255,255,.35);width:0;height:0;border-radius:50%;transition:transform .45s ease, opacity .6s ease;}
.btn.ripple:active:after{width:120px;height:120px;transform:translate(-50%,-50%) scale(1);opacity:0;}
/* user bar */
.userbar{position:sticky; top:0; z-index:100; background:#fff; border-bottom:1px solid var(--card-border);}
.userbar .brand{display:flex; align-items:center; gap:.5rem;}
.user-pill{background:#eef2ff; color:#0d6efd; padding:.25rem .55rem; border-radius:999px; font-weight:600; font-size:.85rem;}
/* utilities */
.td-right{text-align:right;}
.small-note{font-size:.85rem; color:#6b7280}
.disabled-vis{opacity:.55; pointer-events:none;}
/* animate helpers */
.fade-in-up{animation:fadeInUp .35s ease both;}
@keyframes fadeInUp{from{opacity:0; transform:translate3d(0,8px,0)} to{opacity:1; transform:none}}
