/* Flutter UI theme for Resolutions - primary #009688 */
.ra-frontend { font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; max-width:1100px; margin:24px auto; padding:0 18px; }
.ra-card { background:#fff; border-radius:14px; box-shadow: 0 18px 40px rgba(0,0,0,0.06); padding:18px; margin-bottom:18px; }
.ra-header .ra-row { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.ra-title { margin:0; font-size:22px; color:#009688; font-weight:700; }
.ra-actions { display:flex; gap:12px; }
.ra-btn { padding:10px 16px; border-radius:12px; border:0; cursor:pointer; box-shadow: 0 10px 30px rgba(0,0,0,0.06); transition: transform .12s ease, box-shadow .12s ease; font-weight:700; display:inline-flex; align-items:center; gap:10px; background:#fff; color:#004d40; }
.ra-btn:active { transform: translateY(1px); }
.ra-btn-primary { background:#009688; color:#fff; box-shadow: 0 12px 36px rgba(0,150,136,0.12); }
.ra-btn-primary:hover { background:#00796B; }
.ra-btn-secondary { background:#ffffff; color:#004d40; border:1px solid #e6f2ef; }
.ra-filters { display:flex; gap:12px; margin-top:14px; flex-wrap:wrap; align-items:end; }
.ra-filter-item label { display:block; font-size:13px; margin-bottom:6px; color:#333; font-weight:600; }
.ra-filter-item input, .ra-filter-item select { padding:10px; border-radius:10px; border:1px solid #eee; width:220px; }
/* Empty state card */
.ra-empty-state { background:#fff; border-radius:12px; box-shadow: 0 12px 30px rgba(0,0,0,0.04); padding:36px; margin:6px 0; }
/* Table */
.ra-list .ra-table { width:100%; border-collapse:collapse; margin-top:8px; min-width:800px; }
.ra-list .ra-table th, .ra-list .ra-table td { padding:12px 14px; border-bottom:1px solid #f3f6f5; text-align:left; vertical-align:middle; }
.ra-list .ra-table th { font-size:13px; color:#666; font-weight:700; }
.ra-list .ra-table tr:hover { background: #fbfdfc; }
.ra-list .table-wrap { overflow:auto; border-radius:8px; }
/* Pagination */
.ra-pagination { display:flex; gap:8px; justify-content:center; align-items:center; padding:12px 0; }
.ra-page-btn { padding:8px 12px; border-radius:8px; border:0; background:#f5f5f8; cursor:pointer; }
.ra-page-btn.active { background:#009688; color:#fff; }
/* Modal (flutter like) */
.ra-modal { position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(3,12,10,0.48); z-index:99999; padding:18px; }
.ra-modal-inner { background:#fff; width:100%; max-width:820px; border-radius:14px; padding:22px; position:relative; box-shadow: 0 28px 68px rgba(0,0,0,0.22); transform: translateY(12px) scale(.98); opacity:0; transition: transform .26s cubic-bezier(.2,.9,.2,1), opacity .26s cubic-bezier(.2,.9,.2,1); max-height:90vh; display:flex; flex-direction:column; }
.ra-modal.in .ra-modal-inner { transform: translateY(0) scale(1); opacity:1; }
.ra-modal-close { position:absolute; right:14px; top:10px; border:0; background:transparent; font-size:20px; cursor:pointer; color:#333; }
/* Modal header fixed, body scrollable */
.ra-modal-header { flex: 0 0 auto; margin-bottom:12px; }
.ra-modal-body { overflow:auto; flex:1 1 auto; padding-right:6px; }
/* Form */
.ra-form-row { margin-bottom:12px; display:flex; flex-direction:column; }
.ra-form-row label { font-weight:700; margin-bottom:8px; font-size:14px; color:#004d40; }
.ra-form-row input[type=text], .ra-form-row input[type=date], .ra-form-row input[type=email], .ra-form-row textarea, .ra-form-row select { padding:12px; border-radius:10px; border:1px solid #eee; width:100%; box-sizing:border-box; font-size:14px; box-shadow: inset 0 2px 6px rgba(0,0,0,0.02); }
.ra-form-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:12px; }
.ra-small { font-size:12px; color:#666; margin-top:6px; }
/* Toasts */
#ra-toast-root { position: fixed; right: 18px; top: 18px; z-index: 100010; display:flex; flex-direction:column; gap:12px; pointer-events:none; }
.ra-toast { min-width:240px; background:#fff; border-radius:10px; padding:12px 14px; box-shadow: 0 18px 45px rgba(0,0,0,0.10); pointer-events:auto; opacity:0; transform: translateY(-8px); transition: all .28s ease; display:flex; gap:10px; align-items:flex-start; }
.ra-toast.show { opacity:1; transform: translateY(0); }
.ra-toast.success { border-left:4px solid #009688; }
.ra-toast.error { border-left:4px solid #e53935; }
.ra-toast .ra-toast-title { font-weight:700; font-size:14px; color:#004d40; }
.ra-toast .ra-toast-msg { font-size:13px; color:#444; }
/* Spinner */
.ra-spinner { width:16px; height:16px; border-radius:50%; border:2px solid rgba(0,0,0,0.06); border-top-color: rgba(0,0,0,0.18); animation: raSpin 0.9s linear infinite; display:inline-block; margin-left:6px; }
@keyframes raSpin { to { transform: rotate(360deg); } }
/* PDF preview */
.ra-pdf-preview { border:1px solid #f1f4f3; border-radius:8px; padding:6px; background:#fbfdfc; margin-top:8px; }
.ra-pdf-thumb { width:100%; height:360px; border:0; border-radius:8px; display:block; }
/* Logs table */
.ra-logs-table { width:100%; border-collapse:collapse; }
.ra-logs-table th, .ra-logs-table td { padding:8px; border-bottom:1px solid #eee; text-align:left; }
/* Responsive */
@media (max-width:720px) {
  .ra-frontend { padding:12px; }
  .ra-filter-item input, .ra-filter-item select { width:160px; }
  .ra-modal-inner { padding:16px; max-width:96%; }
}