:root{
  --card-bg: rgba(255,255,255,0.78);
  --card-blur: blur(8px);
  --card-shadow: 0 10px 28px rgba(2,6,23,0.18);
  --btn-shadow: 0 6px 18px rgba(2,6,23,0.15);
  --ring: rgba(99,102,241,0.35);
}
*{ box-sizing:border-box; }
.card{
  background: var(--card-bg);
  backdrop-filter: var(--card-blur);
  -webkit-backdrop-filter: var(--card-blur);
  border-radius: 1.25rem; /* rounded-2xl */
  box-shadow: var(--card-shadow);
  padding: 1rem;
}
.btn{
  padding: .55rem .85rem;
  border-radius: 1rem;
  box-shadow: var(--btn-shadow);
  transition: transform .06s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.btn:active{ transform: scale(.98); }
.input{
  width:100%; padding:.65rem .8rem; border:1px solid rgba(15,23,42,.12); border-radius:.8rem; background:#fff;
  outline:none; transition: box-shadow .15s ease, border-color .15s ease;
}
.input:focus{ border-color: var(--ring); box-shadow:0 0 0 4px rgba(99,102,241,0.15); }
.tag{ display:inline-block; font-size:.75rem; padding:.25rem .6rem; border-radius:999px; background:#fff; border:1px solid rgba(15,23,42,.08); }
.badge{ display:inline-flex; align-items:center; gap:.4rem; font-size:.75rem; padding:.25rem .6rem; border-radius:.7rem; background:#fff; border:1px solid rgba(15,23,42,.08); }
.grid-week{ display:grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap:.75rem; }
@media (max-width: 900px){ .grid-week{ grid-template-columns:1fr; } }
.drop-target{ outline: 2px dashed rgba(99,102,241,.65); outline-offset:4px; }
.hint{ font-size:.78rem; color:#334155; opacity:.9 }
