:root{
  --bg:#f2f7f2;
  --surface:#ffffff;
  --surface-soft:#f8fbf7;
  --ink:#25301e;
  --muted:#68735d;
  --muted-strong:#46513d;
  --line:#dfe8d8;
  --primary:#78853a;
  --primary-dark:#566026;
  --primary-soft:#f0f4df;
  --blue:#3d7db3;
  --blue-soft:#eef5fd;
  --shadow:0 16px 38px rgba(73,82,39,.08);
  --shadow-soft:0 10px 24px rgba(73,82,39,.10);
  --radius:14px;
}
html,body{overflow-x:hidden}
body{
  background:
    radial-gradient(circle at top left, rgba(120,133,58,.12), transparent 26%),
    radial-gradient(circle at top right, rgba(47,125,111,.08), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,0) 320px),
    var(--bg);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  background-image: linear-gradient(rgba(120,133,58,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(120,133,58,.035) 1px, transparent 1px);
  background-size:28px 28px;
  pointer-events:none;
  z-index:-1;
}
.brand-mark,.stat-icon,.row-icon,.guided-icon,.next-action-icon,.quick-card span,.avatar{
  border-radius:16px !important;
}
.brand-mark{
  background-image:linear-gradient(145deg, #78853a, #4f5d27) !important;
  box-shadow:0 14px 30px rgba(120,133,58,.28) !important;
}
.sidebar{
  background:rgba(255,255,255,.90) !important;
  border-right:1px solid rgba(223,232,216,.9) !important;
  box-shadow:0 0 0 1px rgba(255,255,255,.35), 12px 0 28px rgba(58,65,31,.04);
}
.topbar{
  background:rgba(242,247,242,.86) !important;
  border-bottom:1px solid rgba(223,232,216,.94) !important;
}
.topbar-title h1,.page-heading h2,.detail-header h2{letter-spacing:-.03em}
.metric-card,.section-panel,.patient-card,.entity-card,.quick-card,.detail-header,.form-panel,.settings-panel,.empty-state,.filters-panel,.guided-panel,.notice-panel,.next-action-panel,.table-wrap{
  border-radius:18px !important;
  box-shadow:var(--shadow) !important;
}
.metric-card,.section-panel,.form-panel,.settings-panel,.detail-header,.filters-panel,.quick-card,.patient-card,.entity-card,.empty-state{
  border-color:rgba(223,232,216,.92) !important;
}
.button,.icon-button,.nav-button,.status-pill,.tag,.count-pill{border-radius:12px !important}
.button-primary{
  background-image:linear-gradient(135deg, #78853a, #5b6629) !important;
  box-shadow:0 14px 28px rgba(120,133,58,.24) !important;
}
.button-primary:hover{filter:brightness(.98)}
.button-secondary,.icon-button,.field input,.field select,.field textarea{
  border-color:#dfe8d8 !important;
}
.field input,.field select,.field textarea{background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:rgba(120,133,58,.62) !important;
  box-shadow:0 0 0 5px rgba(120,133,58,.13) !important;
}
.login-panel{background:rgba(255,255,255,.93) !important}
.login-card h1{font-size:clamp(34px,3vw,40px) !important}
.login-visual{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.16), transparent 22%),
    linear-gradient(135deg,#3c431d,#78853a 54%,#2f7d6f 100%) !important;
}
.login-visual:before{opacity:.20 !important}
.login-card,.login-visual-content{position:relative}
.login-card::after{
  content:"SHILOH · CASA DE REPOSO";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:18px;
  padding:8px 12px;
  border-radius:999px;
  background:var(--primary-soft);
  color:var(--primary-dark);
  font-size:11px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.quick-card:hover,.metric-card:hover,.entity-card:hover,.patient-card:hover{
  transform:translateY(-2px);
  transition:transform .18s ease, box-shadow .18s ease;
  box-shadow:0 18px 36px rgba(58,65,31,.12) !important;
}
.schedule-row,.alert-chip,.guided-panel,.notice-panel,.next-action-panel{border-radius:16px !important}
.alert-strip{
  border-radius:18px !important;
  background:linear-gradient(135deg, #fffaf0, #fffdf9) !important;
}
.data-table th{
  position:sticky;
  top:0;
  z-index:1;
}
/* Splash screen */
.assistiam-splash{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:32px;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.16), transparent 20%),
    linear-gradient(135deg,#2f3518,#78853a 50%, #2f7d6f 100%);
  color:#fff;
  transition:opacity .45s ease, visibility .45s ease, transform .45s ease;
}
.assistiam-splash.is-hidden{
  opacity:0;
  visibility:hidden;
  transform:scale(1.02);
}
.assistiam-splash-card{
  width:min(100%, 430px);
  display:grid;
  gap:16px;
  place-items:center;
  text-align:center;
  padding:30px 28px 24px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:28px;
  background:rgba(255,255,255,.11);
  backdrop-filter:blur(14px);
  box-shadow:0 24px 60px rgba(0,0,0,.18);
}
.assistiam-splash-logo{
  width:min(255px, 80%);
  height:auto;
  filter: drop-shadow(0 12px 24px rgba(0,0,0,.20));
  animation:assistiamLogoFloat 2.1s ease-in-out infinite;
}
.assistiam-splash h1,.assistiam-splash p{margin:0}
.assistiam-splash h1{font-size:22px;line-height:1.15}
.assistiam-splash p{color:rgba(255,255,255,.90);line-height:1.5;font-size:14px}
.assistiam-splash-loader{
  width:56px;height:56px;border-radius:50%;
  border:3px solid rgba(255,255,255,.28);
  border-top-color:#fff;
  animation:assistiamSpin .9s linear infinite;
}
.assistiam-splash-caption{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.14);
  color:#fff;font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;
}
@keyframes assistiamSpin{to{transform:rotate(360deg)}}
@keyframes assistiamLogoFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.02)}}
/* Route progress */
#assistiam-progress{position:fixed;top:0;left:0;z-index:9998;width:100%;height:3px;pointer-events:none;opacity:0;transition:opacity .2s ease}
#assistiam-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg, #78853a, #2f7d6f);box-shadow:0 0 12px rgba(120,133,58,.4);transition:width .35s ease}
#assistiam-progress.is-active{opacity:1}
#assistiam-progress.is-active span{width:84%}
/* Context helper */
.assistiam-context-tip{
  margin:18px clamp(18px,4vw,42px) 0;
  padding:14px 16px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  border:1px solid #dfe8d8;
  border-radius:16px;
  background:linear-gradient(135deg, rgba(240,244,223,.96), rgba(248,251,247,.96));
  box-shadow:var(--shadow-soft);
}
.assistiam-context-icon{
  width:42px;height:42px;border-radius:14px;display:grid;place-items:center;
  background:#fff;color:var(--primary-dark);font-size:20px;font-weight:850;
}
.assistiam-context-tip strong{display:block;color:var(--ink);font-size:14px}
.assistiam-context-tip p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.assistiam-context-tip button{
  min-height:34px;padding:0 10px;border:0;border-radius:10px;cursor:pointer;
  background:#fff;color:var(--primary-dark);font-weight:850;
}
.assistiam-powered{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:999px;border:1px solid #dfe8d8;
  background:rgba(255,255,255,.9);color:var(--muted-strong);
  font-size:11px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;
}
.assistiam-powered::before{
  content:"";width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#78853a,#2f7d6f);
  box-shadow:0 0 0 4px rgba(120,133,58,.12);
}
/* floating quick help */
.assistiam-help-button{
  position:fixed;right:20px;bottom:24px;z-index:70;display:inline-flex;align-items:center;gap:10px;
  min-height:48px;padding:0 16px;border:0;border-radius:999px;cursor:pointer;
  background:linear-gradient(135deg, #78853a, #2f7d6f);color:#fff;font-weight:850;
  box-shadow:0 16px 32px rgba(58,65,31,.22);
}
.assistiam-help-button:hover{transform:translateY(-1px)}
.assistiam-help-button span:last-child{font-size:13px}
.assistiam-help-button .assistiam-help-icon{
  width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.16);
}
.assistiam-help-modal{
  position:fixed;inset:0;z-index:9997;display:none;place-items:center;padding:20px;background:rgba(20,27,14,.48);
}
.assistiam-help-modal.is-open{display:grid}
.assistiam-help-card{
  width:min(780px, 100%);max-height:min(88vh, 920px);overflow:auto;
  padding:24px;border-radius:24px;background:#fff;box-shadow:0 26px 60px rgba(20,27,14,.22);
}
.assistiam-help-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.assistiam-help-head h3,.assistiam-help-head p{margin:0}
.assistiam-help-head h3{font-size:24px;letter-spacing:-.03em}
.assistiam-help-head p{margin-top:6px;color:var(--muted);line-height:1.5}
.assistiam-help-close{width:40px;height:40px;border:0;border-radius:12px;background:var(--surface-soft);cursor:pointer;font-size:20px}
.assistiam-help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.assistiam-help-item{
  padding:18px;border:1px solid #dfe8d8;border-radius:18px;background:linear-gradient(180deg, #fff, #fbfcf8);
}
.assistiam-help-item h4,.assistiam-help-item p{margin:0}
.assistiam-help-item h4{font-size:15px}
.assistiam-help-item p{margin-top:8px;color:var(--muted);font-size:13px;line-height:1.55}
.assistiam-help-list{display:grid;gap:8px;margin-top:10px}
.assistiam-help-list span{
  display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:12px;background:var(--surface-soft);color:var(--muted-strong);font-size:12px;line-height:1.45;
}
.assistiam-help-list span b{color:var(--primary-dark)}
@media (max-width: 900px){
  .assistiam-context-tip{grid-template-columns:auto minmax(0,1fr);}
  .assistiam-context-tip button{grid-column:1 / -1;justify-self:flex-start}
  .assistiam-help-grid{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .assistiam-splash-card{padding:22px 20px}
  .assistiam-splash-logo{width:min(220px,84%)}
  .assistiam-context-tip{margin-inline:16px}
  .assistiam-help-button{right:14px;bottom:84px;padding:0 14px;min-height:46px}
  .assistiam-powered{display:none}
}
