:root{--bg:#0f1117;--surface:#181c27;--surface2:#1e2333;--border:#2a2f42;--vet:#4ade9e;--shop:#f59e0b;--groom:#e879f9;--accent:#60a5fa;--text:#e8eaf0;--muted:#7b82a0;--danger:#f87171;--success:#4ade9e;}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;scroll-padding-top:60px;}
body{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body.theme-light{--bg:#f4f7fb;--surface:#ffffff;--surface2:#eef3f8;--border:#d7e0ea;--text:#172033;--muted:#657086;--danger:#dc2626;--success:#059669;}
body.compact-ui .content{padding:14px 18px;}
body.compact-ui td,body.compact-ui th{padding:7px 10px;}
body.compact-ui .card{margin-bottom:12px;}
body.font-large{font-size:16px;}
body.font-large input,body.font-large select,body.font-large textarea,body.font-large .btn{font-size:14px;}
*{scrollbar-width:thin;scrollbar-color:rgba(74,222,158,.45) var(--surface);}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--surface);border-left:1px solid var(--border);}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(74,222,158,.55),rgba(96,165,250,.45));border:2px solid var(--surface);border-radius:999px;}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(74,222,158,.8),rgba(96,165,250,.7));}
::-webkit-scrollbar-corner{background:var(--surface);}

/* ─── LOGIN ─── */
#login-screen{position:fixed;inset:0;background:var(--bg);z-index:1000;display:flex;align-items:center;justify-content:center;}
#login-screen.hidden{display:none;}
.login-wrap{width:420px;max-width:94vw;}
.login-brand{text-align:center;margin-bottom:36px;}
.login-brand-icon{font-size:48px;display:block;margin-bottom:10px;animation:float 3s ease-in-out infinite;}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.login-brand-title{font-family:'Playfair Display',serif;font-size:32px;color:var(--vet);}
.login-brand-sub{font-size:12px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:4px;}
.login-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:32px;box-shadow:0 24px 64px rgba(0,0,0,.5);}
.login-title{font-family:'Playfair Display',serif;font-size:22px;margin-bottom:6px;}
.login-sub{font-size:13px;color:var(--muted);margin-bottom:24px;}
.login-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;}
.login-field label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;}
.login-field input{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 13px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px;outline:none;transition:border .2s;}
.login-field input:focus{border-color:var(--vet);box-shadow:0 0 0 3px rgba(74,222,158,.1);}
.login-roles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px;}
.role-chip{padding:10px 6px;border:2px solid var(--border);border-radius:10px;background:var(--surface2);cursor:pointer;text-align:center;transition:all .2s;}
.role-chip:hover{border-color:var(--muted);}
.role-chip.sel{border-color:var(--vet);background:rgba(74,222,158,.08);}
.role-chip-icon{font-size:20px;display:block;margin-bottom:4px;}
.role-chip-name{font-size:11px;font-weight:600;color:var(--muted);}
.role-chip.sel .role-chip-name{color:var(--vet);}
.btn-login{width:100%;padding:12px;border-radius:10px;border:none;background:var(--vet);color:#000;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px;}
.btn-login:hover{filter:brightness(1.1);transform:translateY(-1px);}
.login-hint{margin-top:16px;background:rgba(74,222,158,.06);border:1px solid rgba(74,222,158,.15);border-radius:10px;padding:12px 14px;}
.login-hint-title{font-size:11px;color:var(--vet);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.login-hint-row{font-size:12px;color:var(--muted);margin-bottom:3px;}
.login-hint-row strong{color:var(--text);}
.login-err{background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.3);border-radius:8px;padding:10px 12px;font-size:13px;color:var(--danger);margin-bottom:14px;display:none;}
.login-err.show{display:block;}

/* ─── APP ─── */
#app{display:none;}
#app.visible{display:block;}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:240px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:100;}
.logo{padding:16px 20px;border-bottom:1px solid var(--border);}
.logo-title{font-family:'Playfair Display',serif;font-size:20px;color:var(--vet);}
.logo-sub{font-size:11px;color:var(--muted);margin-top:2px;letter-spacing:.05em;text-transform:uppercase;}

/* User card in sidebar */
.user-card{margin:12px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:10px;}
.user-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.user-info{flex:1;min-width:0;}
.user-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-role-tag{font-size:10px;padding:1px 6px;border-radius:999px;font-weight:700;display:inline-block;margin-top:2px;}
.user-logout{background:none;border:none;cursor:pointer;color:var(--muted);font-size:16px;padding:2px;transition:color .2s;flex-shrink:0;}
.user-logout:hover{color:var(--danger);}

.nav{flex:1;padding:8px 0;overflow-y:auto;}
.nav-section{padding:8px 20px 4px;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;}
.nav-divider{padding:6px 0 0;}
.nav-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;user-select:none;transition:color .2s,background .2s;}
.nav-toggle:hover,.nav-toggle:focus-visible{color:var(--text);background:rgba(255,255,255,.03);outline:none;}
.nav-toggle::after{content:'';width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .18s;margin-top:-3px;opacity:.8;}
.nav-toggle.collapsed::after{transform:rotate(-45deg);margin-top:0;}
.nav-item.nav-collapsed{display:none;}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 20px;cursor:pointer;font-size:14px;font-weight:500;color:var(--muted);border-left:3px solid transparent;transition:all .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
.nav-item:hover{color:var(--text);background:var(--surface2);}
.nav-item.active{color:var(--text);background:var(--surface2);border-left-color:var(--vet);}
.nav-item.active.ns{border-left-color:var(--shop);}
.nav-item.active.ng{border-left-color:var(--groom);}
.nav-item.active.na{border-left-color:var(--accent);}
.nav-item.locked{opacity:.35;pointer-events:none;cursor:not-allowed;}
.nav-icon{font-size:15px;width:20px;text-align:center;}
.badge{margin-left:auto;color:#000;font-size:10px;font-weight:700;padding:2px 6px;border-radius:999px;background:var(--vet);}
.badge.bg{background:var(--groom);}
.badge.bd{background:var(--danger);}
.lock-icon{margin-left:auto;font-size:12px;opacity:.5;}

/* storage indicator */
.storage-bar{margin:8px 12px;border-top:1px solid var(--border);padding-top:10px;}
.storage-label{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:4px;}
.storage-track{height:3px;background:var(--border);border-radius:2px;overflow:hidden;}
.storage-fill{height:100%;background:var(--vet);border-radius:2px;transition:width .5s;}

.main{margin-left:240px;min-height:100vh;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:50;}
.topbar-left{display:flex;align-items:center;gap:10px;min-width:0;}
.topbar-title{font-family:'Playfair Display',serif;font-size:20px;}
.topbar-actions{display:flex;gap:8px;align-items:center;}
.mobile-menu-btn{display:none;border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:9px;min-height:38px;padding:8px 12px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:800;cursor:pointer;}
.mobile-nav-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.56);z-index:90;}
body.mobile-nav-open .mobile-nav-backdrop{display:block;}

/* role badge in topbar */
.role-pill{padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;}

/* access denied */
.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:12px;color:var(--muted);}
.access-denied-icon{font-size:56px;opacity:.4;}
.access-denied h2{font-family:'Playfair Display',serif;color:var(--text);font-size:24px;}
.access-denied p{font-size:14px;max-width:300px;text-align:center;line-height:1.6;}

.btn{padding:8px 14px;border-radius:8px;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex;align-items:center;gap:5px;touch-action:manipulation;}
.btn{justify-content:center;line-height:1.15;min-height:34px;white-space:nowrap;}
.btn-v{background:var(--vet);color:#000;}.btn-v:hover{filter:brightness(1.1);}
.btn-s{background:var(--shop);color:#000;}.btn-s:hover{filter:brightness(1.1);}
.btn-g{background:var(--groom);color:#000;}.btn-g:hover{filter:brightness(1.1);}
.btn-a{background:var(--accent);color:#000;}.btn-a:hover{filter:brightness(1.1);}
.btn-n{background:var(--surface2);color:var(--text);border:1px solid var(--border);}.btn-n:hover{border-color:var(--muted);}
.btn-danger{background:rgba(248,113,113,.15);color:var(--danger);border:1px solid rgba(248,113,113,.3);}.btn-danger:hover{background:rgba(248,113,113,.25);}
.btn-sm{padding:4px 9px;font-size:11px;min-height:26px;}
.sbox{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 14px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:13px;width:200px;outline:none;}
.sbox::placeholder{color:var(--muted);}
.content{padding:20px 24px;}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;}
.sc{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;position:relative;overflow:hidden;}
.sc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;}
.sc.sv::before{background:var(--vet);}.sc.ss::before{background:var(--shop);}.sc.sg::before{background:var(--groom);}.sc.sa::before{background:var(--accent);}
.sl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.sval{font-family:'Playfair Display',serif;font-size:28px;margin:4px 0 2px;}
.panel{display:none;}.panel.active{display:block;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:16px;}
.ch{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.ct{font-weight:600;font-size:14px;}
.list-container{width:100%;overflow-x:auto;overflow-y:hidden;background:var(--surface);}
.list-container table{min-width:680px;}
.list-container .patients-table{min-width:960px;}
.modal .list-container table{min-width:620px;}
table{width:100%;border-collapse:collapse;}
th{padding:10px 14px;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);font-weight:600;}
td{padding:10px 14px;font-size:13px;border-bottom:1px solid var(--border);vertical-align:middle;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:var(--surface2);}
.agenda-actions-cell,.cell-actions{display:table-cell!important;vertical-align:middle!important;}
.cell-action-row{display:flex;gap:4px;flex-wrap:wrap;align-items:center;justify-content:flex-start;}
.cell-action-row .btn,.agenda-actions .btn{white-space:nowrap;flex:0 0 auto;}
.agenda-actions{display:flex;gap:4px;flex-wrap:wrap;align-items:center;}
.agenda-sections{display:grid;grid-template-columns:1fr;gap:14px;}
.agenda-section{margin-bottom:0;}
.agenda-section-head{gap:10px;}
.agenda-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;margin-left:8px;padding:0 7px;border-radius:999px;background:var(--surface2);border:1px solid var(--border);color:var(--text);font-size:11px;font-weight:800;}
.agenda-section-toggle{width:30px;height:28px;padding:0;flex:0 0 auto;}
.agenda-section-toggle::before{content:'';width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .18s;margin-top:-4px;}
.agenda-section.collapsed .agenda-section-toggle::before{transform:rotate(-45deg);margin-top:0;}
.agenda-section.collapsed .agenda-section-body{display:none;}
.tag{display:inline-block;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:600;}
.status-select{min-width:132px;padding:3px 24px 3px 9px;border:0;border-radius:999px;font-family:'DM Sans',sans-serif;font-size:11px;font-weight:700;line-height:1.2;cursor:pointer;}
.status-select:focus{outline:2px solid rgba(96,165,250,.35);outline-offset:2px;}
.tv{background:rgba(74,222,158,.15);color:var(--vet);}
.ts{background:rgba(245,158,11,.15);color:var(--shop);}
.tg{background:rgba(232,121,249,.15);color:var(--groom);}
.ta{background:rgba(96,165,250,.15);color:var(--accent);}
.tp{background:rgba(251,191,36,.15);color:#fbbf24;}
.td{background:rgba(74,222,158,.15);color:var(--vet);}
.tc{background:rgba(248,113,113,.15);color:var(--danger);}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:200;align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:26px;width:520px;max-width:96vw;max-height:92vh;overflow-y:auto;animation:su .2s ease;}
.modal-lg{width:740px;}
.modal-xl{width:980px;}
@keyframes su{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.mt{font-family:'Playfair Display',serif;font-size:20px;margin-bottom:18px;}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.fg3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.fgr{display:flex;flex-direction:column;gap:5px;}
.fgr.full{grid-column:1/-1;}
.clinical-section{grid-column:1/-1;border:1px solid var(--border);border-radius:10px;padding:14px;background:rgba(255,255,255,.015);}
.clinical-title{font-size:11px;color:var(--vet);font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;}
.field-hint{font-size:11px;color:var(--muted);line-height:1.35;background:rgba(96,165,250,.06);border:1px solid rgba(96,165,250,.18);border-radius:7px;padding:8px 9px;}
/* Campo bloqueado (carnet de identificación): se ve como dato impreso, no como caja editable */
.readonly-field{background:transparent!important;border:0!important;border-bottom:1px dashed var(--border)!important;border-radius:0!important;padding-left:0!important;color:var(--text)!important;font-weight:600;cursor:default;pointer-events:none;}
.readonly-field:focus{box-shadow:none!important;border-color:var(--border)!important;}
/* Campo editable de la ficha ampliada: feedback claro al pasar/enfocar */
.clinical-id-field{transition:background .12s;}
.clinical-id-field:hover{background:rgba(255,255,255,.02);}
.clinical-id-field:focus-within{background:rgba(74,222,158,.07);box-shadow:inset 0 -2px 0 var(--vet);}
.clinical-id-field input:focus{outline:none;}
.owner-picker{position:relative;z-index:20;}
.owner-list{position:absolute;top:100%;left:0;right:0;background:var(--surface2);border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px;max-height:150px;overflow-y:auto;display:none;z-index:300;box-shadow:0 14px 30px rgba(0,0,0,.35);}
.owner-option{width:100%;padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border);font-size:13px;}
.owner-option:hover,.owner-option.active{background:rgba(74,222,158,.08);color:var(--vet);}
.med-picker{position:relative;z-index:25;}
.med-list{position:absolute;top:100%;left:0;right:0;background:var(--surface2);border:1px solid var(--border);border-radius:0 0 8px 8px;max-height:190px;overflow-y:auto;display:none;z-index:320;box-shadow:0 14px 30px rgba(0,0,0,.35);}
.med-option{padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--border);font-size:13px;}
.med-option:hover,.med-option.active{background:rgba(96,165,250,.1);color:var(--accent);}
.med-option small{display:block;color:var(--muted);font-size:11px;margin-top:2px;}
.med-alert{margin-top:8px;border:1px solid rgba(245,158,11,.45);background:rgba(245,158,11,.1);color:var(--text);border-radius:8px;padding:9px 10px;font-size:12px;line-height:1.35;}
.med-alert strong{display:block;color:#fbbf24;margin-bottom:3px;}
.med-alert span{display:block;color:var(--muted);}
.med-table{width:100%;margin-top:10px;border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.med-table td{vertical-align:top;}
.pet-cell{display:flex;align-items:center;gap:10px;min-width:220px;line-height:1.2;}
.pet-cell-detail{align-items:center;min-width:0;}
.pet-cell-text{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px;}
.pet-cell-text strong{display:block;line-height:1.18;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pet-cell-text span{display:block;font-size:11px;color:var(--muted);line-height:1.25;}
.pet-photo{width:42px;height:42px;flex:0 0 42px;border-radius:9px;object-fit:cover;border:1px solid var(--border);background:var(--surface2);display:block;}
.pet-photo-lg{width:58px;height:58px;flex-basis:58px;}
.pet-photo-placeholder{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(74,222,158,.18),rgba(96,165,250,.16));color:var(--vet);font-size:16px;font-weight:800;}
.file-list{display:grid;gap:6px;margin-top:8px;}
.file-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:7px 9px;font-size:12px;}
.file-chip a{color:var(--accent);text-decoration:none;}
label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;}
input,select,textarea{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 11px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:13px;outline:none;transition:border .2s;width:100%;}
input:focus,select:focus,textarea:focus{border-color:var(--vet);}
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{appearance:none;-webkit-appearance:none;margin:0;}
input[type=number]{appearance:textfield;-moz-appearance:textfield;}
textarea{resize:vertical;min-height:70px;}
select option{background:var(--surface2);}
.ma{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.abar{height:8px;background:var(--border);border-radius:4px;overflow:hidden;margin:5px 0;}
.afill{height:100%;border-radius:4px;transition:width .4s;}
.pos-layout{display:grid;grid-template-columns:1fr 370px;gap:14px;min-height:calc(100vh - 120px);}
.pos-l{display:flex;flex-direction:column;gap:12px;position:relative;z-index:2;}
.pos-r{display:flex;flex-direction:column;gap:10px;position:relative;z-index:1;}
.pos-search-card{overflow:visible;position:relative;z-index:80;}
.bc-inp{width:100%;background:var(--surface);border:2px solid var(--vet);border-radius:10px;padding:11px 14px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;outline:none;}
.bc-inp:focus{box-shadow:0 0 0 3px rgba(74,222,158,.15);}
.bc-inp::placeholder{color:var(--muted);font-weight:400;}
.pos-search{position:relative;flex:1;min-width:220px;z-index:90;}
.pos-suggest{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 18px 45px rgba(0,0,0,.45);max-height:270px;overflow-y:auto;z-index:1000;}
.pos-suggest.open{display:block;}
.pos-suggest-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;align-items:center;}
.pos-suggest-row:last-child{border-bottom:none;}
.pos-suggest-row:hover,.pos-suggest-row.active{background:var(--surface2);}
.pos-suggest-name{font-size:13px;font-weight:700;line-height:1.25;}
.pos-suggest-meta{font-size:11px;color:var(--muted);margin-top:3px;font-family:monospace;}
.pos-suggest-price{font-size:13px;font-weight:700;color:var(--shop);white-space:nowrap;}
.pos-suggest-stock{font-size:11px;color:var(--muted);text-align:right;margin-top:3px;}
.cart-wrap{flex:1;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;}
.qinp{width:50px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:4px 6px;color:var(--text);font-size:13px;text-align:center;}
.stock-control{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.stock-step{width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:800;font-size:15px;line-height:1;transition:all .2s;}
.stock-step:hover{border-color:var(--vet);color:var(--vet);background:rgba(74,222,158,.08);}
.stock-step.decrease:hover{border-color:var(--danger);color:var(--danger);background:rgba(248,113,113,.08);}
.stock-input{width:72px;height:28px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:13px;text-align:center;padding:3px 6px;}
.psum{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;}
.srow{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:13px;}
.srow.tot{border-top:1px solid var(--border);margin-top:8px;padding-top:12px;font-family:'Playfair Display',serif;font-size:22px;}
.srow.tot span:last-child{color:var(--shop);}
.pbox{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;}
.pbtns{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px;}
.pbtn{padding:9px;border:2px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--muted);cursor:pointer;font-size:12px;font-weight:600;text-align:center;transition:all .2s;}
.pbtn.sel{border-color:var(--shop);color:var(--shop);background:rgba(245,158,11,.1);}
.agrid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.aday{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px;min-height:95px;font-size:11px;overflow:auto;cursor:pointer;transition:border .18s,box-shadow .18s,background .18s;}
.aday:hover{border-color:rgba(96,165,250,.55);background:rgba(96,165,250,.05);}
.aday.today{border-color:rgba(74,222,158,.55);box-shadow:0 0 0 2px rgba(74,222,158,.08) inset;}
.aday.selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(96,165,250,.18) inset;}
.adl{color:var(--muted);font-weight:700;margin-bottom:6px;font-size:10px;display:flex;justify-content:space-between;gap:6px;}
.adl strong{color:var(--text);font-size:12px;}
.aev{padding:2px 5px;border-radius:4px;margin-bottom:2px;font-size:10px;font-weight:600;}
.aev-v{background:rgba(74,222,158,.2);color:var(--vet);}
.aev-g{background:rgba(232,121,249,.2);color:var(--groom);}
.agenda-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.agenda-date{width:150px;padding:6px 10px;font-size:12px;}
.toast{position:fixed;bottom:22px;right:22px;background:var(--surface2);border:1px solid var(--vet);border-radius:10px;padding:12px 18px;font-size:13px;z-index:500;display:none;animation:su .2s ease;color:var(--vet);font-weight:500;}
.toast.show{display:block;}

/* panel admin usuarios */
.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.user-mgmt-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;}
.umc-header{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.umc-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;}
.umc-name{font-weight:600;font-size:15px;}
.umc-role{font-size:12px;color:var(--muted);}
.umc-perms{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px;}
.perm-tag{font-size:10px;padding:2px 7px;border-radius:4px;background:var(--surface2);border:1px solid var(--border);color:var(--muted);}
.perm-tag.on{background:rgba(74,222,158,.1);border-color:rgba(74,222,158,.3);color:var(--vet);}
.perm-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:6px;}
.perm-check{display:flex;align-items:center;gap:7px;background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:7px 9px;font-size:12px;color:var(--muted);text-transform:none;letter-spacing:0;}
.perm-check input{width:auto;}
.user-actions{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px;}
.org-card{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center;padding:16px;}
.org-logo-preview{width:112px;height:82px;border:1px dashed var(--border);border-radius:10px;background:var(--surface2);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--muted);font-size:12px;text-align:center;}
.org-logo-preview img{max-width:100%;max-height:100%;object-fit:contain;background:#fff;}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;padding:16px;}
.setting-box{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:14px;}
.setting-title{font-size:13px;font-weight:800;margin-bottom:6px;}
.setting-help{font-size:12px;color:var(--muted);line-height:1.45;margin-bottom:12px;}
.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.theme-option{border:2px solid var(--border);border-radius:10px;padding:10px;cursor:pointer;background:var(--surface);}
.theme-option.active{border-color:var(--vet);box-shadow:0 0 0 3px rgba(74,222,158,.12);}
.theme-preview{height:48px;border-radius:7px;border:1px solid var(--border);margin-bottom:8px;display:grid;grid-template-columns:34% 1fr;overflow:hidden;}
.theme-preview.dark span:first-child{background:#181c27}.theme-preview.dark span:last-child{background:#0f1117}
.theme-preview.light span:first-child{background:#fff}.theme-preview.light span:last-child{background:#eef3f8}
.color-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.color-swatch{width:32px;height:32px;border-radius:8px;border:2px solid var(--border);cursor:pointer;}
.color-swatch.active{border-color:var(--text);}
.receipt{background:#fff;color:#111;font-family:Arial,sans-serif;border-radius:8px;padding:18px;line-height:1.35;}
.receipt.thermal{width:80mm;max-width:100%;font-family:Consolas,monospace;font-size:12px;}
.receipt.laser{width:720px;max-width:100%;font-size:12px;box-shadow:0 2px 16px rgba(0,0,0,.18);min-height:400px;}
.receipt-logo{max-width:145px;max-height:72px;object-fit:contain;display:block;margin:0 auto 6px;}
.receipt-brand{text-align:center;font-weight:800;font-size:15px;}
.receipt-by{text-align:center;font-size:10px;color:#666;margin-bottom:10px;}
.receipt-head.compact{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;border-bottom:1px solid #999;padding-bottom:5px;margin-bottom:6px;}
.receipt-head.compact .receipt-logo{max-width:36px;max-height:28px;margin:0;}
.receipt-head.compact .receipt-brand{text-align:left;font-size:11px;line-height:1.1;}
.receipt-head.compact .receipt-by{text-align:left;font-size:8px;margin:1px 0 0;color:#666;}
.receipt-head.compact .receipt-title{text-align:right;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.02em;}
.receipt-line{border-top:1px dashed #777;margin:8px 0;}
.receipt-row{display:flex;justify-content:space-between;gap:10px;margin:3px 0;}
.receipt-items{width:100%;border-collapse:collapse;margin-top:6px;}
.receipt-items th,.receipt-items td{color:#111;border-bottom:1px solid #ddd;padding:5px 2px;font-size:12px;background:#fff;}
.receipt-items th{text-transform:none;letter-spacing:0;color:#333;}
.receipt-total{font-weight:800;font-size:16px;}
.receipt.clinical-print{white-space:normal;font-family:Arial,sans-serif;color:#111;}
.receipt.clinical-print table{width:100%;border-collapse:collapse;margin-top:6px;}
.receipt.clinical-print th,.receipt.clinical-print td{color:#111;border-bottom:1px solid #ddd;padding:6px;font-size:11px;background:#fff;}
.receipt.clinical-print tr:hover td{background:#fff;}
.receipt.clinical-print .clinical-section{break-inside:avoid-page;background:#fff!important;border-color:#d7d7d7!important;}
.receipt.clinical-print .pet-cell-text strong,.receipt.clinical-print .pet-cell-text span{white-space:normal;color:#111;}
.formula-print{font-size:11px;line-height:1.3;position:relative;}
.fml-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10;}
.fml-watermark img{max-width:420px;max-height:420px;object-fit:contain;opacity:0.16;mix-blend-mode:multiply;}
.fml-header{text-align:center;border-bottom:2px solid #333;padding-bottom:4px;margin-bottom:4px;}
.fml-header-org{font-weight:800;font-size:15px;margin-bottom:2px;}
.fml-header-title{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;}
.fml-header-by{font-size:9px;color:#777;margin-left:8px;vertical-align:middle;}
.formula-print .clinical-id-print{margin-top:0!important;}
.fml-title{font-weight:700;font-size:9px;text-transform:uppercase;background:#f3f4f6;border:1px solid #888;border-bottom:none;padding:2px 5px;margin-top:7px;}
.fml-table{width:100%;border-collapse:collapse;margin-bottom:2px;}
.fml-table th,.fml-table td{border:1px solid #ccc;padding:2px 4px;font-size:10px;text-align:left;color:#111;background:#fff;}
.fml-table th{background:#f3f4f6;font-weight:700;font-size:9px;text-transform:uppercase;}
.fml-num{text-align:center;width:20px;}
.fml-inst{font-size:9px;color:#444;font-style:italic;padding:1px 4px 2px!important;}
.fml-block{font-size:10px;white-space:pre-wrap;border:1px solid #ccc;padding:3px 5px;line-height:1.3;}

@media print{
  body>*:not(#mTick){display:none!important;}
  #mTick{display:block!important;position:static!important;inset:auto!important;width:100%!important;background:#fff!important;padding:0!important;}
  #mTick .modal{display:block!important;position:static!important;width:100%!important;max-width:none!important;max-height:none!important;border:0!important;border-radius:0!important;padding:0!important;background:#fff!important;color:#111!important;box-shadow:none!important;overflow:visible!important;transform:none!important;}
  #mTick .modal-header,#mTick .mt,#mTick .ma{display:none!important;}
  #tick-c{display:block!important;background:#fff!important;padding:0!important;border-radius:0!important;color:#111!important;white-space:normal!important;max-height:none!important;overflow:visible!important;min-height:0!important;}
  #tick-c .receipt.laser{width:100%!important;max-width:none!important;box-shadow:none!important;min-height:0!important;}
  .fml-watermark img{opacity:0.18!important;mix-blend-mode:multiply!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .receipt{page-break-inside:avoid;background:#fff!important;}

  /* ── Térmica 80mm ── */
  body.print-thermal #tick-c{width:80mm!important;}
  body.print-thermal .receipt{width:80mm!important;padding:2mm 3mm!important;border-radius:0!important;font-size:11px!important;font-family:'Courier New',Courier,monospace!important;}
  body.print-thermal .receipt *{color:#000!important;background:transparent!important;}
  body.print-thermal .receipt-logo{max-width:60mm!important;}
  body.print-thermal .receipt-total{font-size:14px!important;}
  body.print-thermal .receipt-items th,
  body.print-thermal .receipt-items td{border-bottom:1px dotted #000!important;background:transparent!important;}
  body.print-thermal .receipt-line{border-top:1px dashed #000!important;}

  /* ── Láser carta ── */
  body.print-laser .receipt{width:170mm!important;margin:0 auto!important;padding:3mm 5mm!important;border:none!important;font-size:11px!important;}
  body.print-laser .receipt-total{font-size:16px!important;}
}

@media(max-width:900px){.pos-layout{grid-template-columns:1fr}.sgrid{grid-template-columns:repeat(2,1fr)}.two,.fg,.fg3{grid-template-columns:1fr}.sidebar{transform:translateX(-260px);transition:transform .22s ease;box-shadow:18px 0 40px rgba(0,0,0,.35)}body.mobile-nav-open .sidebar{transform:translateX(0)}.main{margin-left:0}.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center}}

@media(max-width:760px){
  body{font-size:14px;}
  .main{margin-left:0;min-width:0;}
  .topbar{padding:10px 12px;gap:8px;align-items:flex-start;}
  .topbar-left{width:100%;align-items:center;}
  .topbar-title{font-size:17px;line-height:1.2;}
  .topbar-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end;}
  .topbar-actions .sbox{display:none;}
  .role-pill{font-size:10px;padding:4px 8px;}
  .content{padding:12px;overflow-x:hidden;}
  body.compact-ui .content{padding:10px;}
  .card{border-radius:10px;margin-bottom:12px;}
  .ch{padding:12px;align-items:flex-start;gap:10px;flex-wrap:wrap;}
  .ct{font-size:13px;line-height:1.25;}
  .btn{min-height:44px;padding:10px 14px;}
  .btn-sm{min-height:36px;padding:7px 10px;font-size:12px;}
  .sgrid{grid-template-columns:1fr;gap:10px;margin-bottom:12px;}
  .sc{padding:14px;}
  .sval{font-size:24px;}
  .two,.fg,.fg3{grid-template-columns:1fr!important;gap:10px;}
  .fgr.full{grid-column:auto;}
  input,select,textarea,.sbox{width:100%;max-width:100%;font-size:16px;}
  input[type=file]{font-size:14px;}
  textarea{min-height:90px;}
  .ma{display:grid;grid-template-columns:1fr;gap:8px;margin-top:14px;}
  .ma .btn{width:100%;}
  .modal-overlay{align-items:stretch;justify-content:center;padding:8px;}
  .modal{width:100%!important;max-width:none;max-height:calc(100vh - 16px);border-radius:12px;padding:16px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
  .modal-lg,.modal-xl{width:100%!important;}
  .modal > .ma{position:sticky;bottom:0;background:var(--surface);padding:12px 0 2px;margin-bottom:0;z-index:2;border-top:1px solid var(--border);}
  .mt{font-size:18px;line-height:1.2;margin-bottom:14px;}
  .list-container,.med-table{overflow-x:auto;border-radius:8px;}
  table{min-width:620px;}
  th,td{padding:9px 10px;font-size:12px;}
  .file-chip{align-items:flex-start;flex-direction:column;}
  .pos-layout{display:flex;flex-direction:column;min-height:auto;}
  .pos-l,.pos-r{min-width:0;}
  .pos-search-card > div:last-child{display:grid!important;grid-template-columns:1fr;gap:8px;}
  .pos-search{min-width:0;width:100%;}
  .pos-suggest{position:fixed;left:12px;right:12px;top:auto;max-height:46vh;}
  .cart-wrap{flex:none;overflow:visible;}
  .cart-wrap .qinp{width:100%;max-width:120px;}
  .stock-control{align-items:flex-start;}
  .stock-step{width:44px;height:44px;font-size:18px;border-radius:10px;}
  .stock-input{width:80px;height:44px;font-size:16px;}
  .stock-control > div{max-width:none!important;}
  .perm-checks{grid-template-columns:1fr;}
  .settings-grid{grid-template-columns:1fr;padding:12px;gap:10px;}
  .theme-options{grid-template-columns:1fr 1fr;}
  .org-card{grid-template-columns:1fr;}
  .toast{left:12px;right:12px;bottom:14px;text-align:center;}
  .agenda-tools{width:100%;display:grid;grid-template-columns:1fr auto 1fr auto;gap:6px;}
  .agenda-tools .agenda-date{width:100%;min-width:0;}
  .agenda-tools button{padding-left:9px;padding-right:9px;}
  .agrid{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory;}
  .aday{min-width:142px;min-height:112px;scroll-snap-align:start;}
  .agenda-sections{gap:12px;}
  .agenda-section{overflow:visible;}
  .agenda-section-body table,.agenda-section-body thead,.agenda-section-body tbody,.agenda-section-body tr,.agenda-section-body td{display:block;width:100%;}
  .agenda-section-body table{min-width:0;border-collapse:separate;border-spacing:0;}
  .agenda-section-body thead{display:none;}
  .agenda-section-body tbody{display:grid;gap:10px;padding:10px;}
  .agenda-section-body tr{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px;box-shadow:0 8px 24px rgba(0,0,0,.08);}
  .agenda-section-body tr:hover td{background:transparent;}
  .agenda-section-body td{border:0;padding:7px 0;white-space:normal!important;}
  .agenda-section-body td::before{content:attr(data-label);display:block;margin-bottom:3px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}
  .agenda-section-body td:empty{display:none;}
  .agenda-actions-cell::before{display:none!important;}
  .agenda-actions{display:grid;grid-template-columns:1fr auto;gap:8px;width:100%;}
  .agenda-actions .btn:first-child{width:100%;}
  .responsive-card-table{overflow:visible;}
  .responsive-card-table table,.responsive-card-table thead,.responsive-card-table tbody,.responsive-card-table tr,.responsive-card-table td{display:block;width:100%;}
  .responsive-card-table table{min-width:0!important;border-collapse:separate;border-spacing:0;}
  .responsive-card-table thead{display:none;}
  .responsive-card-table tbody{display:grid;gap:10px;padding:10px;}
  .responsive-card-table tr{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px;box-shadow:0 8px 24px rgba(0,0,0,.08);}
  .responsive-card-table tr:hover td{background:transparent;}
  .responsive-card-table td{border:0;padding:7px 0;white-space:normal!important;}
  .responsive-card-table td::before{content:attr(data-label);display:block;margin-bottom:3px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}
  .responsive-card-table .cell-actions::before{display:none!important;}
  .responsive-card-table .cell-action-row{display:grid;grid-template-columns:1fr auto;gap:8px;width:100%;}
  .responsive-card-table .cell-action-row .btn:first-child{width:100%;}
  .cita-status-select,.status-select{width:100%;min-height:36px;}
  .pet-cell{align-items:flex-start;}
}

@media(max-width:420px){
  .content{padding:8px;}
  .topbar{padding:9px 10px;}
  .agenda-tools{grid-template-columns:1fr 38px 1fr 38px;}
  .agenda-tools button:nth-of-type(2){grid-column:1 / -1;}
  .theme-options{grid-template-columns:1fr;}
  .modal{padding:12px;}
  .clinical-section{padding:10px;}
  .mt{font-size:16px;margin-bottom:12px;}
}

@supports(padding:env(safe-area-inset-left)){
  .sidebar{padding-left:env(safe-area-inset-left);}
  .topbar{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));}
  .content{padding-bottom:max(20px,env(safe-area-inset-bottom));}
  .toast{bottom:max(22px,env(safe-area-inset-bottom));}
  @media(max-width:760px){
    .topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));}
    .content{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));}
  }
}
.groom-overdue-card{border:1px solid var(--warning,#f59e0b);border-radius:10px;overflow:hidden;margin-bottom:14px;}.groom-overdue-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:color-mix(in srgb,var(--warning,#f59e0b) 12%,var(--surface2));font-size:13px;font-weight:700;gap:8px;}.groom-overdue-body{display:flex;flex-direction:column;gap:0;}.groom-overdue-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border);gap:10px;flex-wrap:wrap;}.groom-overdue-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}.groom-overdue-info strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.groom-overdue-info span{font-size:11px;color:var(--muted);}.groom-overdue-actions{display:flex;gap:6px;flex-shrink:0;}.groom-cierre-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid var(--border);border-radius:8px;gap:10px;flex-wrap:wrap;}.groom-cierre-row.resolved{opacity:.5;pointer-events:none;}.groom-cierre-info{flex:1;min-width:0;}.groom-cierre-info strong{font-size:13px;display:block;}.groom-cierre-info span{font-size:11px;color:var(--muted);}

/* ── Tarjeta de alta rapida (cliente + mascota) ───────────────────── */
.quick-create{
  margin-top:6px;
  border:1px solid var(--vet);
  border-radius:12px;
  padding:14px;
  background:linear-gradient(180deg,rgba(74,222,158,.06),rgba(74,222,158,.015));
  box-shadow:0 0 0 1px rgba(74,222,158,.08),0 10px 30px rgba(0,0,0,.25);
  animation:su .18s ease;
}
.quick-create-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.quick-create-title{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--vet);}
.quick-create-close{background:transparent;border:0;color:var(--muted);font-size:15px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:6px;}
.quick-create-close:hover{color:var(--danger);background:rgba(248,113,113,.1);}
.quick-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.quick-create-grid > .clinical-section{grid-column:auto;margin:0;}
.quick-create .fg2{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.quick-create .fg2 .fgr.full{grid-column:1/-1;}
@media(max-width:760px){
  .quick-create-grid{grid-template-columns:1fr;}
}
/* Renderizado condicional entre modo búsqueda y modo creación (Consulta, Cirugía, Hospitalización) */
.modal:not(.creating) .con-create-only{display:none!important;}
.modal.creating .con-search-only{display:none!important;}
.quick-create.con-create-only{grid-column:1/-1;}
/* Barra de acciones siempre visible (no obliga a hacer scroll hasta el fondo) */
#mCon .modal > .ma,#mCir .modal > .ma,#mHosp .modal > .ma,#mCita .modal > .ma{position:sticky;bottom:-26px;background:var(--surface);padding:12px 0 28px;margin-top:14px;z-index:5;border-top:1px solid var(--border);}
/* mCita es un modal angosto; en modo creación se ensancha para alojar la tarjeta a dos columnas */
#mCita .modal.creating{width:760px;}
/* Examen por sistemas */
.sys-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.sys-item{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:rgba(255,255,255,.015);display:flex;flex-direction:column;gap:8px;}
.sys-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.sys-name{font-size:12px;font-weight:600;color:var(--text);}
.sys-head select{max-width:130px;}
.sys-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;user-select:none;white-space:nowrap;}
.sys-toggle input{width:auto;margin:0;cursor:pointer;}
.sys-obs{width:100%;min-height:52px;}
@media(max-width:760px){.sys-grid{grid-template-columns:1fr;}}
/* Errores de validación de formularios */
.input-error{border-color:var(--danger)!important;box-shadow:0 0 0 3px rgba(248,113,113,.28)!important;}
.field-error-msg{color:var(--danger);font-size:11px;font-weight:600;margin-top:4px;line-height:1.3;}

/* Exámenes / ayudas diagnósticas */
.exam-sub{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.exam-chips{display:flex;flex-wrap:wrap;gap:6px;}
.exam-chip{border:1px solid var(--border);background:transparent;color:var(--text);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;}
.exam-chip:hover{border-color:var(--accent);color:var(--accent);}
.exam-search{margin-top:10px;position:relative;}
.exam-search input{width:100%;}
.exam-results{margin-top:4px;border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.exam-result{display:flex;justify-content:space-between;gap:8px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--border);padding:8px 10px;font-size:13px;color:var(--text);cursor:pointer;}
.exam-result:last-child{border-bottom:0;}
.exam-result:hover{background:rgba(127,127,127,.08);}
.exam-empty,.exam-list-empty{color:var(--muted);font-size:12px;padding:8px 4px;}
.exam-lists{margin-top:10px;display:flex;flex-direction:column;gap:6px;}
.exam-item{border:1px solid var(--border);border-radius:8px;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;}
.exam-item-done{border-style:dashed;}
.exam-marking{flex-direction:column;align-items:stretch;}
.exam-item-name{font-size:13px;font-weight:600;}
.exam-item-actions{display:flex;gap:6px;flex-wrap:wrap;}
.exam-item-res{font-size:12px;color:var(--muted);width:100%;white-space:pre-wrap;margin-top:4px;}
.exam-item-adj{font-size:12px;margin-top:4px;}
.exam-res{width:100%;min-height:60px;margin:6px 0;}
.exam-file-label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:4px;}
.exam-badge{font-size:10px;font-weight:800;text-transform:uppercase;border-radius:4px;padding:1px 6px;margin-left:6px;}
.exam-badge-pend{background:rgba(245,158,11,.18);color:#f59e0b;}
.exam-badge-done{background:rgba(74,222,158,.18);color:var(--vet);}

/* Calificación: comportamiento mascota / fiabilidad cliente */
.calif-badge{font-size:11px;font-weight:700;margin-left:6px;white-space:nowrap;}
.calif-alert{margin-top:8px;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.22);}
.calif-alert--riesgo{--accent:#ef4444;--accent-soft:rgba(239,68,68,.12);--accent-line:rgba(239,68,68,.45);}
.calif-alert--precaucion{--accent:#f59e0b;--accent-soft:rgba(245,158,11,.12);--accent-line:rgba(245,158,11,.42);}
.calif-alert{border-color:var(--accent-line);background:var(--accent-soft);}
.calif-alert-head{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:#fff;background:var(--accent);}
.calif-alert-ico{font-size:14px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));}
.calif-alert-body{padding:10px 12px;display:flex;flex-direction:column;gap:10px;border-left:4px solid var(--accent);}
.calif-alert-row{display:flex;align-items:flex-start;gap:10px;}
.calif-alert-emoji{font-size:16px;line-height:1.3;}
.calif-alert-text{display:flex;flex-direction:column;gap:3px;min-width:0;}
.calif-alert-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.calif-alert-kind{font-size:12px;font-weight:700;color:var(--text);}
.calif-alert-chip{font-size:10.5px;font-weight:800;letter-spacing:.2px;text-transform:uppercase;color:#fff;background:var(--c);padding:3px 9px;border-radius:999px;white-space:nowrap;}
.calif-alert-note{font-size:11.5px;color:var(--muted);line-height:1.45;}
.calif-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px;}
.calif-dialog{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;width:420px;max-width:94vw;box-shadow:0 24px 64px rgba(0,0,0,.5);}
.calif-title{font-size:15px;font-weight:700;margin-bottom:14px;}
.calif-opts{display:flex;flex-direction:column;gap:8px;}
.calif-opt{display:flex;align-items:center;gap:8px;border:2px solid var(--border);background:transparent;color:var(--text);border-radius:10px;padding:10px 12px;font-size:14px;font-weight:600;cursor:pointer;text-align:left;}
.calif-opt:hover{border-color:var(--c);}
.calif-opt.sel{border-color:var(--c);background:rgba(127,127,127,.08);}
.calif-nota{width:100%;min-height:60px;margin-top:12px;}
.calif-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;}
