/* GastroSuite Cloud 3.3.0 — tema profesional por especialista.
   Las variables --profile-* se resuelven desde el médico de la sesión o documento. */
:root{
  --profile-primary:#061e2d;
  --profile-accent:#079d9a;
  --navy:#061e2d;
  --teal:#079d9a;
  --mint:#e7f7f5;
  --ink:#102634;
  --muted:#627683;
  --line:#dbe7e9;
  --bg:#f2f7f8;
  --danger:#b42318;
  --sr-navy:var(--profile-primary);
  --sr-navy-2:#0a3142;
  --sr-teal:var(--profile-accent);
  --sr-aqua:var(--profile-accent);
  --sr-ice:#e7f7f5;
  --sr-gold:#cda968;
  --sr-shadow:0 16px 42px rgba(5,31,45,.08);
}

body{
  background:
    radial-gradient(circle at 93% 5%,rgba(54,210,207,.08),transparent 26rem),
    var(--bg);
}

/* Identidad lateral */
#app-sidebar{
  isolation:isolate;
  background:
    radial-gradient(circle at 8% 8%,rgba(54,210,207,.15),transparent 12rem),
    linear-gradient(180deg,var(--profile-primary) 0%,#082536 58%,#061a28 100%);
  border-right:1px solid rgba(105,221,215,.14);
}
#app-sidebar::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:-82px;
  bottom:72px;
  width:245px;
  height:245px;
  border:1px solid rgba(54,210,207,.1);
  border-radius:50%;
  box-shadow:0 0 0 28px rgba(54,210,207,.025),0 0 0 58px rgba(54,210,207,.018);
}
.logo{
  min-height:104px;
  gap:10px;
  padding:15px 14px 15px 12px;
  border-bottom:1px solid rgba(146,215,214,.13);
  background:linear-gradient(110deg,rgba(255,255,255,.025),transparent 62%);
}
.logo .sr-brand-seal{
  width:70px;
  height:70px;
  margin:-6px -7px -6px -5px;
  filter:drop-shadow(0 9px 15px rgba(0,0,0,.35));
}
.logo .brand-wordmark{line-height:1.04}
.logo .brand-wordmark strong{
  color:#fff;
  font-size:19px;
  font-weight:780;
  letter-spacing:-.45px;
}
.logo .brand-owner{
  display:block;
  margin-top:6px;
  color:var(--sr-aqua);
  font-size:7.3px;
  font-weight:800;
  letter-spacing:1.35px;
  white-space:nowrap;
}
.logo .brand-wordmark .brand-edition{
  margin-top:4px;
  color:#8faab5;
  font-size:6.8px;
  letter-spacing:.9px;
}
#app-sidebar>nav{scrollbar-color:#2b6570 transparent}
#app-sidebar .nav{
  position:relative;
  min-height:43px;
  color:#b9ccd4;
  border:1px solid transparent;
  border-radius:11px;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
#app-sidebar .nav:hover{
  color:#efffff;
  border-color:rgba(54,210,207,.15);
  background:rgba(26,112,121,.22);
  transform:translateX(2px);
}
#app-sidebar .nav.active{
  color:#6ee7e1;
  border-color:rgba(54,210,207,.18);
  background:linear-gradient(90deg,rgba(5,124,130,.38),rgba(15,78,91,.32));
  box-shadow:inset 3px 0 0 var(--sr-aqua),0 8px 22px rgba(0,0,0,.12);
}
#app-sidebar .nav-title{color:#5f8e9c;letter-spacing:1.7px}
#app-sidebar .profile{border-color:rgba(146,215,214,.13);background:rgba(2,19,29,.28)}
#app-sidebar .profile small{color:#8da8b3}
.work-mode-switch{border-color:rgba(85,203,198,.24)!important;background:rgba(1,19,29,.3)!important}
.work-mode-switch button.active{background:linear-gradient(135deg,#087f82,#09aaa4)!important}

/* Encabezado y contenido */
.app-topbar{
  height:78px;
  padding:0 30px;
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.94);
  box-shadow:0 8px 25px rgba(6,30,45,.035);
  backdrop-filter:blur(12px);
}
.topbar-title,.topbar-meta,.topbar-identity{display:flex;align-items:center}
.topbar-title{gap:12px}
.title-accent{width:4px;height:27px;border-radius:10px;background:linear-gradient(var(--sr-aqua),var(--sr-teal))}
.app-topbar h1{color:var(--sr-navy);font-size:19px;letter-spacing:-.25px}
.topbar-meta{gap:18px}
.topbar-identity{gap:8px;padding-right:18px;border-right:1px solid var(--line)}
.topbar-identity img{width:46px;height:46px;margin:-4px;object-fit:contain}
.topbar-identity b,.topbar-identity small{display:block;white-space:nowrap}
.topbar-identity b{color:var(--sr-navy);font-size:11px}
.topbar-identity small{margin-top:3px;color:var(--muted);font-size:8px}
.today{color:#617782;font-weight:600}
.view{padding:32px}
.welcome{
  isolation:isolate;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(91,220,215,.19);
  background:
    radial-gradient(circle at 85% 30%,rgba(55,210,207,.18),transparent 15rem),
    linear-gradient(115deg,var(--profile-primary) 0%,#09384a 58%,var(--profile-accent) 100%);
  box-shadow:0 18px 48px rgba(5,31,45,.17);
}
.welcome::after{
  content:attr(data-brand-monogram);
  position:absolute;
  z-index:-1;
  right:9%;
  top:50%;
  transform:translateY(-52%);
  color:transparent;
  font-size:108px;
  font-weight:900;
  letter-spacing:-10px;
  -webkit-text-stroke:1px rgba(127,239,234,.11);
}
.welcome small{color:#65e3de;font-weight:800;letter-spacing:1.8px}
.welcome h2{font-size:29px;letter-spacing:-.6px}
.welcome p{color:#c1d6dc}
.welcome .primary{
  background:#fff!important;
  color:#076f70!important;
  box-shadow:0 9px 24px rgba(0,0,0,.18);
}
.welcome .primary:hover{background:#eafffd!important;transform:translateY(-1px)}
.welcome-user-photo{border:2px solid rgba(100,227,222,.5)!important;box-shadow:0 8px 26px rgba(0,0,0,.2)}

.section-head{position:relative;padding-left:15px}
.section-head::before{
  content:"";
  position:absolute;
  left:0;
  top:2px;
  bottom:2px;
  width:4px;
  border-radius:8px;
  background:linear-gradient(var(--sr-aqua),var(--sr-teal));
}
.section-head h2{color:var(--sr-navy);letter-spacing:-.45px}
.panel,.stats article{
  border-color:var(--line);
  box-shadow:var(--sr-shadow);
}
.panel{border-radius:16px}
.stats article{
  position:relative;
  overflow:hidden;
  border-radius:15px;
  transition:transform .18s ease,box-shadow .18s ease;
}
.stats article:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(5,31,45,.11)}
.stats article::after{content:"";position:absolute;right:-24px;bottom:-28px;width:82px;height:82px;border-radius:50%;background:rgba(7,157,154,.045)}
.stats i{background:linear-gradient(145deg,#e4f8f5,#d7f3f1);color:#077d7b}
.stats b{color:var(--sr-navy)}
.panel h3,.section-head h2,.record-title h3{color:var(--sr-navy)}
.panel-head{padding-bottom:3px}
.appointment time,.link,td button{color:#087f7d}
.appointment em,.audit-badge{background:#e2f6f3;color:#087a77}

.primary{
  background:linear-gradient(135deg,var(--profile-accent),color-mix(in srgb,var(--profile-accent),#ffffff 13%))!important;
  border:0!important;
  border-radius:10px;
  box-shadow:0 7px 18px rgba(7,128,130,.19);
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 24px rgba(7,128,130,.26);filter:saturate(1.08)}
.primary:focus-visible,.nav:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid rgba(54,210,207,.35);outline-offset:2px}
input,select,textarea{border-color:#cfdee2;border-radius:9px;background:#fff}
input:focus,select:focus,textarea:focus{border-color:#0b9a98;box-shadow:0 0 0 3px rgba(7,157,154,.13)}
table thead{background:#f4f9f9}
th{color:#4d707b}
tbody tr{transition:background-color .14s ease}
tbody tr:hover{background:#f3fbfa}
.pick:hover{border-color:#36bcb7;background:#edf9f7}
dialog{border:1px solid rgba(125,171,177,.35);box-shadow:0 32px 95px rgba(5,27,39,.32)}
.modal-head{background:linear-gradient(90deg,#f8fcfc,#fff)}
.modal-head::before{content:"";width:4px;border-radius:8px;background:linear-gradient(var(--sr-aqua),var(--sr-teal));margin-right:10px}
.modal-head>div{flex:1}
#toast{background:linear-gradient(110deg,#061e2d,#0b4451);box-shadow:0 12px 32px rgba(0,0,0,.25)}

/* Acceso institucional neutral */
.login-body{display:block;min-height:100vh;background:var(--sr-navy)}
.login-shell{display:grid;grid-template-columns:minmax(350px,.94fr) minmax(430px,1.06fr);min-height:100vh;overflow:hidden}
.login-hero{
  isolation:isolate;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  padding:clamp(42px,7vw,100px);
  color:#fff;
  background:
    radial-gradient(circle at 23% 32%,rgba(54,210,207,.18),transparent 19rem),
    linear-gradient(145deg,#041722 0%,#062534 52%,#075059 100%);
}
.login-hero::before,.login-hero::after{content:"";position:absolute;z-index:-1;border-radius:50%}
.login-hero::before{right:-24%;top:-19%;width:63vw;height:63vw;border:1px solid rgba(90,226,222,.13);box-shadow:0 0 0 55px rgba(49,197,195,.028),0 0 0 112px rgba(49,197,195,.018)}
.login-hero::after{left:-28%;bottom:-38%;width:52vw;height:52vw;background:radial-gradient(circle,rgba(14,144,146,.28),transparent 68%)}
.login-hero-content{display:flex;align-items:center;gap:clamp(16px,3vw,34px)}
.login-hero-seal{width:clamp(150px,22vw,310px);height:clamp(150px,22vw,310px);margin:clamp(-30px,-2vw,-12px);object-fit:contain;filter:drop-shadow(0 25px 34px rgba(0,0,0,.42))}
.login-hero-copy span,.login-hero-copy strong{display:block}
.login-hero-copy span{color:#99e8e4;font-size:clamp(11px,1.1vw,15px);font-weight:750;letter-spacing:.16em}
.login-hero-copy strong{margin-top:7px;font-size:clamp(24px,3.1vw,46px);line-height:.95;letter-spacing:-.045em}
.login-hero-copy p{margin:18px 0 0;color:#b9d3da;font-size:clamp(12px,1.15vw,16px);line-height:1.7;letter-spacing:.03em}
.login-hero-footer{position:absolute;left:clamp(42px,7vw,100px);bottom:44px;display:flex;flex-direction:column;gap:5px}
.login-hero-footer b{color:#6be2de;font-size:13px;letter-spacing:.08em}
.login-hero-footer span{color:#8daab4;font-size:11px}
.login-panel{display:grid;place-items:center;padding:42px;background:radial-gradient(circle at 100% 0,#e8f7f5,transparent 28rem),#f7fafb}
.login-card{width:min(455px,100%);padding:42px;border:1px solid rgba(128,174,179,.32);border-radius:22px;background:rgba(255,255,255,.97);box-shadow:0 28px 74px rgba(5,31,45,.14)}
.login-card::before{height:6px;background:linear-gradient(90deg,#061e2d 0%,#0a7076 52%,#38d2cf 100%)}
.login-brand{gap:11px;margin-bottom:30px}
.login-brand .sr-brand-seal{width:82px;height:82px;margin:-12px;filter:drop-shadow(0 10px 18px rgba(5,31,45,.18))}
.login-wordmark strong{color:var(--sr-navy);font-size:28px}
.login-wordmark strong span{color:#098f8d}
.login-wordmark small{color:#67808a;letter-spacing:1.65px}
.login-kicker{display:block;margin-bottom:9px;color:#078986;font-size:9px;font-weight:850;letter-spacing:.18em}
.login-card h1{color:var(--sr-navy);font-size:30px;letter-spacing:-.7px}
.login-card h1 span{color:inherit}
.login-card>p{margin-top:8px}
.login-card form{gap:17px}
.login-card label{color:#314d59}
.login-card input{min-height:45px}

.brand-enable{display:flex!important;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f5faf9}.brand-enable input{width:auto;min-height:0}
.login-card .primary{min-height:46px;margin-top:4px}

/* Marca pública */
.public-brand .brand-symbol{width:52px;height:52px;margin:-7px}
.public-brand span{color:#079d9a}
.public-brand small{color:inherit;opacity:.72;font-size:8px;letter-spacing:.12em}

@media(max-width:1100px){
  .topbar-identity small{display:none}
  .topbar-identity img{width:40px;height:40px}
  .login-hero{padding:50px}
  .login-hero-content{flex-direction:column;align-items:flex-start}
  .login-hero-seal{margin:-32px}
}
@media(max-width:850px){
  .app-topbar{height:68px;padding:0 17px}
  .title-accent{display:none}
  .topbar-identity{display:none}
  .view{padding:19px}
  .welcome::after{right:3%;font-size:80px}
  .login-shell{display:block;min-height:100vh;background:#f7fafb}
  .login-hero{min-height:245px;padding:28px 34px 54px}
  .login-hero-content{flex-direction:row;align-items:center}
  .login-hero-seal{width:148px;height:148px;margin:-27px}
  .login-hero-copy strong{font-size:28px}
  .login-hero-copy p{margin-top:11px;font-size:11px}
  .login-hero-footer{left:34px;bottom:20px}
  .login-panel{padding:24px 18px 38px}
  .login-card{margin-top:-32px;padding:32px 28px;border-radius:18px}
}
@media(max-width:520px){
  .logo .sr-brand-seal{width:64px;height:64px}
  .welcome{padding:25px 22px}
  .welcome h2{font-size:24px}
  .welcome::after{display:none}
  .login-hero{min-height:220px;padding:24px 25px 48px}
  .login-hero-seal{width:120px;height:120px;margin:-23px}
  .login-hero-copy span{font-size:8px}
  .login-hero-copy strong{font-size:23px}
  .login-hero-copy p{line-height:1.45}
  .login-hero-footer{left:25px;bottom:15px}
  .login-hero-footer span{display:none}
  .login-panel{padding:18px 12px 28px}
  .login-card{padding:29px 24px}
  .login-brand .sr-brand-seal{width:72px;height:72px}
  .login-wordmark strong{font-size:24px}
}
@media(prefers-reduced-motion:reduce){.nav,.primary,.stats article{transition:none}}

/* GastroSuite 3.3 · acceso y auditoría */
.password-card{margin:7vh auto;max-width:470px}
.profile-security-link{display:grid;place-items:center;color:#fff;text-decoration:none;width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.08)}
.profile-security-link:hover{background:rgba(75,215,207,.18);color:#72e5df}
.password-card .login-brand{margin-bottom:20px}
.password-card .password-rules{font-size:11px;line-height:1.45;color:#58717b;background:#eff8f7;border-radius:9px;padding:10px 12px}
.success-box{background:#e8f7f1;color:#126a55;border:1px solid #bde7d7;border-radius:9px;padding:11px 13px;margin:0 0 15px;font-size:13px}
.account-back{display:block;text-align:center;margin-top:18px;color:#087f7d;font-weight:700;text-decoration:none}
.account-logout{display:block!important;margin-top:8px!important}
.account-logout button{width:100%;border:0;background:none;color:#6d7b8a;cursor:pointer;padding:8px}
.security-check{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px;background:#eef8f6;border-radius:10px;padding:12px}
.security-check input{width:auto;margin-top:2px}
.permission-matrix{margin-top:20px}
.permission-matrix>p{margin-bottom:16px}
.user-row{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:default}
.user-row>span{min-width:0;flex:1}
.user-row>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.user-row>div button{border:1px solid #cfe0e2;background:#fff;border-radius:8px;padding:7px 9px}
.security-stats{grid-template-columns:repeat(4,1fr)}
.audit-panel-head{align-items:flex-start;gap:20px}
.audit-filters{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;min-width:min(760px,100%)}
.audit-filters label{font-size:10px;gap:3px}
.audit-filters input,.audit-filters select,.audit-filters button{min-height:38px;padding:8px}
.audit-filters button{border:1px solid #c9dadd;background:#fff;color:#087f7d;border-radius:8px;font-weight:700;cursor:pointer}
.audit-result{display:inline-block;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800}
.audit-result.ok{background:#e4f6ef;color:#167055}
.audit-result.denied{background:#fff0ee;color:#a62b22}
@media(max-width:1100px){.security-stats{grid-template-columns:repeat(2,1fr)}.audit-panel-head{display:block}.audit-filters{margin-top:14px;grid-template-columns:repeat(2,minmax(130px,1fr))}}
@media(max-width:620px){.security-stats,.audit-filters{grid-template-columns:1fr}.user-row{align-items:flex-start;flex-direction:column}.user-row>div{justify-content:flex-start}}
