:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#12233f;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
body{margin:0;min-width:320px}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
a{color:inherit;text-decoration:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.startup,.load-error{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center;color:#6b7892}
.startup .brand-symbol{width:64px;height:64px;font-size:22px}
.load-error{padding:30px}.load-error h1{color:#14264a}
.brand{display:flex;align-items:center;gap:12px;min-width:0;color:#17366d}
.brand-symbol{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5fbff,#d8e9ff);font-size:17px;font-weight:900;letter-spacing:-.1em;color:#0d4caa;box-shadow:inset 0 0 0 1px #cadbf4;flex:none}
.brand-symbol span{color:#df9d32}
.brand-copy{display:flex;flex-direction:column;line-height:1.08;min-width:0}.brand-copy strong{font-size:20px;font-weight:850;letter-spacing:-.055em;white-space:nowrap}.brand-copy small{font-size:10px;margin-top:5px;font-weight:650;letter-spacing:.03em;color:#7890ad;white-space:nowrap}
.brand-light{color:#fff}.brand-light .brand-symbol{background:#fff2;box-shadow:inset 0 0 0 1px #ffffff45;color:#fff}.brand-light .brand-symbol span{color:#ffd16c}.brand-light .brand-copy small{color:#d7e7ff}
.eyebrow{display:block;color:#1b63a9;font-size:11px;font-weight:850;letter-spacing:.15em;text-transform:uppercase}.eyebrow.light{color:#a8d9ff}
.button{border:1px solid transparent;border-radius:12px;min-height:43px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-size:13px;font-weight:760;white-space:nowrap;transition:transform .17s,background .17s,border-color .17s,box-shadow .17s}
.button:hover:not(:disabled){transform:translateY(-1px)}.button.primary{background:#1455aa;color:#fff;box-shadow:0 8px 18px #0a4d9c26}.button.primary:hover:not(:disabled){background:#0d448f}.button.outline{background:#fff;border-color:#d6e1ed;color:#214b7c}.button.outline:hover:not(:disabled){border-color:#9db8d6;background:#f8fbff}.button.subtle{background:#edf3f9;color:#436386}.button.wide{width:100%}
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(430px,48%) minmax(390px,1fr);background:#fff}
.auth-aside{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:43px clamp(36px,6vw,94px);background:radial-gradient(circle at 79% 14%,#3775cd 0,transparent 34%),linear-gradient(143deg,#164eaa 0%,#0a326f 55%,#08285a 100%);color:#fff;isolation:isolate}
.auth-aside:before{content:"";position:absolute;z-index:-1;inset:-20%;background:linear-gradient(130deg,transparent 0 40%,#ffffff0f 40% 54%,transparent 54%),linear-gradient(130deg,transparent 0 55%,#2b77d748 55% 77%,transparent 77%);transform:rotate(-3deg)}
.auth-aside:after{content:"";position:absolute;z-index:-1;right:-140px;bottom:-280px;width:660px;height:660px;border:1px solid #ffffff25;border-radius:50%;box-shadow:0 0 0 80px #ffffff09,0 0 0 160px #ffffff07,0 0 0 240px #ffffff05}
.auth-story{max-width:600px;margin:65px 0}.auth-story h1{font-size:clamp(42px,5vw,72px);line-height:1.06;margin:19px 0 23px;font-weight:850;letter-spacing:-.065em}.auth-story h1 em{font-style:normal;color:#ffd473}.auth-story p{max-width:470px;line-height:1.7;color:#d5e6ff;font-size:15px;margin:0}.auth-steps{display:flex;flex-wrap:wrap;gap:8px;margin-top:38px}.auth-steps span{border:1px solid #ffffff32;background:#ffffff0d;color:#eaf4ff;border-radius:999px;font-size:11px;font-weight:720;padding:9px 12px}.auth-foot{font-size:11px;color:#d0e4ff;display:flex;align-items:center;gap:8px}.pulse{width:8px;height:8px;border-radius:50%;background:#65e8b6;box-shadow:0 0 0 5px #65e8b623}
.auth-content{display:flex;justify-content:center;align-items:center;padding:40px 5vw;overflow:auto}.auth-card{width:min(100%,445px);padding:20px 0}.mobile-brand{display:none}.auth-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#eaf4ff;color:#0f58ac;font-size:23px;margin-bottom:22px}.auth-card h2{font-size:clamp(30px,3vw,38px);letter-spacing:-.055em;line-height:1.15;margin:11px 0 10px}.auth-card>p{color:#75839a;font-size:14px;line-height:1.6;margin:0 0 26px}.auth-form{display:grid;gap:16px}.auth-form .button{margin-top:5px;min-height:48px}.auth-form .button span{margin-left:auto;font-size:20px;font-weight:400}.auth-help{border-top:1px solid #e8edf4;margin-top:25px;padding-top:21px;color:#8a98ac;font-size:12px}.setup-section{display:flex;gap:11px;align-items:center;margin-top:4px;color:#153b70}.setup-number{width:26px;height:26px;border-radius:8px;background:#e9f3ff;color:#1764b4;display:grid;place-items:center;font-size:10px;font-weight:850}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field>span{font-size:12px;color:#3c516f;font-weight:760}.field b{color:#de8248}.field input,.field select,.field textarea{width:100%;border:1px solid #d9e2ee;border-radius:11px;background:#fff;color:#173254;padding:0 13px;min-height:44px;outline:none;transition:border-color .17s,box-shadow .17s}.field textarea{padding:12px 13px;resize:vertical;min-height:84px}.field input::placeholder,.field textarea::placeholder{color:#a0adbd}.field input:focus,.field select:focus,.field textarea:focus,.filter-panel input:focus,.filter-panel select:focus{border-color:#538bd0;box-shadow:0 0 0 3px #2e7ac421}.field.full{grid-column:1/-1}
.inline-notice,.notice{border-radius:10px;padding:12px 14px;font-size:12px;font-weight:700}.inline-notice.success,.notice.success{background:#eaf8f0;border:1px solid #b9e4c9;color:#216546}.inline-notice.error,.notice.error{background:#fff0ee;border:1px solid #f1c6c0;color:#a23b31}
.app-shell{min-height:100vh;display:flex;background:#f5f7fb}.sidebar{position:sticky;top:0;height:100vh;width:258px;flex:none;background:linear-gradient(180deg,#123f91,#0d3374 48%,#0a2a63);color:#fff;display:flex;flex-direction:column;padding:26px 16px 20px;z-index:20;box-shadow:5px 0 24px #0a2c6410}.sidebar-top{padding:3px 13px 26px;border-bottom:1px solid #ffffff23}.sidebar-top .brand-copy strong{font-size:18px}.sidebar-top .brand-symbol{width:38px;height:38px;font-size:15px}.sidebar-label{font-size:10px;letter-spacing:.16em;font-weight:850;color:#8fb9ee;margin:28px 13px 12px}.sidebar-nav{display:grid;gap:6px}.nav-item{width:100%;border:0;border-radius:11px;background:transparent;color:#cadcf6;text-align:left;display:flex;align-items:center;gap:12px;min-height:44px;padding:0 13px;font-size:13px;font-weight:680}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#ffffff20;color:#fff;box-shadow:inset 3px 0 #ffd77a}.nav-icon{width:23px;text-align:center;font-size:19px;font-weight:400}.nav-item small{margin-left:auto;background:#ffffff23;padding:3px 7px;border-radius:7px;color:#fff;font-size:10px}.sidebar-spacer{flex:1}.sidebar-info{background:#ffffff12;border:1px solid #ffffff19;border-radius:14px;padding:15px;margin:16px 3px;color:#fff}.sidebar-info>span{display:block;font-size:21px;color:#ffd77a;margin-bottom:9px}.sidebar-info strong{font-size:12px}.sidebar-info p{font-size:11px;line-height:1.6;color:#c1d9f7;margin:6px 0 0}.sidebar-user{border-top:1px solid #ffffff22;padding:18px 4px 0;display:flex;align-items:center;gap:9px}.avatar,.top-avatar{border-radius:11px;background:#ffffff25;color:#fff;display:grid;place-items:center;flex:none;font-size:12px;font-weight:850;width:34px;height:34px}.sidebar-user>div:nth-child(2){min-width:0;flex:1}.sidebar-user strong,.sidebar-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user strong{font-size:11px}.sidebar-user small{font-size:10px;color:#bad3f3;margin-top:4px}.sidebar-user button{border:0;background:none;color:#c7dcf4;font-size:20px;padding:5px}.sidebar-user button:hover{color:#fff}.close-menu,.menu-button,.backdrop{display:none}
.workspace{min-width:0;flex:1}.topbar{height:68px;background:#fff;border-bottom:1px solid #e8edf4;display:flex;align-items:center;padding:0 clamp(20px,3vw,46px);gap:20px}.breadcrumb{font-size:12px;font-weight:680;color:#7a8ca3}.breadcrumb span{color:#c0cedd;margin:0 8px}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:19px;font-size:11px;color:#74849a;font-weight:650}.top-avatar{background:#eaf1fb;color:#1b55a3;width:31px;height:31px}.page-wrap{max-width:1520px;margin:auto;padding:35px clamp(18px,3vw,45px) 60px}.notice{margin:0 0 20px;display:flex;justify-content:space-between;align-items:center;gap:20px}.notice button{border:0;background:none;color:inherit;font-size:19px;line-height:1}
.preview-badge{display:inline-flex;align-items:center;background:#fff4df;color:#9a690e;border:1px solid #f1dfba;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:760}
.heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:27px}.heading-row h1{font-size:clamp(26px,2.6vw,37px);letter-spacing:-.055em;margin:8px 0 8px;line-height:1.13;color:#182d4b}.heading-row p{margin:0;color:#75839a;font-size:13px;line-height:1.6}
.filter-panel{background:#fff;border:1px solid #e1e8f1;border-radius:18px;padding:21px 24px;box-shadow:0 8px 24px #122f5910;margin-bottom:22px}.filter-title{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:20px}.filter-title h2{font-size:17px;letter-spacing:-.03em;margin:5px 0 0}.filter-title>span{font-size:11px;color:#93a0b2}.filter-grid{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(4,minmax(115px,1fr));gap:13px}.filter-panel label{min-width:0}.filter-grid label>span{display:block;font-size:11px;color:#61738b;font-weight:750;margin-bottom:7px}.filter-panel input,.filter-panel select{height:41px;width:100%;border:1px solid #dfe7f0;border-radius:10px;background:#f9fbfe;color:#2c4667;padding:0 12px;outline:0;font-size:12px}.filter-actions{display:flex;align-items:center;gap:9px;margin-top:14px}.filter-actions .search-field{flex:1}.filter-actions .button{min-height:40px}.filter-actions input{background:#fff}.filter-actions input::placeholder{color:#a2afbf}
.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric-card{min-height:150px;background:#fff;border:1px solid #e1e8f1;border-radius:16px;padding:18px;display:flex;flex-direction:column;box-shadow:0 7px 24px #122f590a}.metric-icon{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;font-weight:850;font-size:17px;margin-bottom:16px}.metric-icon.blue{background:#eaf2ff;color:#2165b9}.metric-icon.amber{background:#fff3d9;color:#a86f08}.metric-icon.green{background:#e7f7ed;color:#298254}.metric-icon.rose{background:#fff0ee;color:#c06155}.metric-label{font-size:11px;color:#63748c;font-weight:700}.metric-card strong{font-size:25px;letter-spacing:-.05em;margin-top:4px;color:#182d4b}.metric-card small{margin-top:4px;color:#9aa7b8;font-size:10px}
.overview-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(290px,.8fr);gap:18px;margin-bottom:20px}.surface{background:#fff;border:1px solid #e1e8f1;border-radius:17px;box-shadow:0 7px 24px #122f590a;min-width:0}.surface-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:20px 22px;border-bottom:1px solid #edf1f6}.surface-head h2{font-size:17px;letter-spacing:-.035em;margin:5px 0 0}.period-badge,.count-tag{border-radius:999px;background:#eff5fb;color:#557391;font-size:10px;font-weight:750;padding:7px 10px;white-space:nowrap}.finance-rows{padding:8px 22px}.finance-rows>div{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #edf1f6;font-size:12px;color:#698098}.finance-rows strong{font-size:14px;color:#2b4562}.finance-rows .finance-total{border:0;color:#224a7f;font-weight:780}.finance-rows .finance-total strong{font-size:22px;color:#c15c4b;letter-spacing:-.04em}.finance-foot{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #edf1f6;padding:14px 22px;font-size:10px;color:#8a9caf}.workflow-panel{padding-bottom:8px}.flow-step{display:flex;gap:13px;padding:16px 22px 0}.flow-step>span{width:27px;height:27px;border-radius:9px;background:#e9f3ff;color:#2166b2;display:grid;place-items:center;font-weight:850;font-size:10px;flex:none}.flow-step strong{font-size:12px}.flow-step p{font-size:11px;color:#8494a9;line-height:1.5;margin:5px 0 0}
.table-panel{overflow:hidden}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:1020px}th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#8a9bb0;background:#f8fafc;padding:13px 18px;font-weight:800}td{padding:15px 18px;border-top:1px solid #edf1f6;vertical-align:middle;font-size:12px;color:#344b69}tr:hover td{background:#fafdff}td strong,td small{display:block}td strong{font-size:12px;color:#273c59;font-weight:760;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}td small{font-size:10px;color:#91a0b2;margin-top:4px;white-space:nowrap;max-width:230px;overflow:hidden;text-overflow:ellipsis}.record-id{color:#1d64ad}.service-type{color:#32826b;font-size:10px;font-weight:800}.service-name{max-width:225px;overflow:hidden;text-overflow:ellipsis}.numeric{font-weight:760;white-space:nowrap}.row-open{border:0;background:#eef5fc;border-radius:9px;width:29px;height:29px;color:#2e69a6;font-size:18px}.row-open:hover{background:#dfeeff}.status{display:inline-flex;gap:6px;align-items:center;white-space:nowrap;padding:6px 8px;border-radius:7px;font-size:10px;font-weight:780}.status i{height:6px;width:6px;border-radius:50%;background:currentColor}.status.cuenta_pendiente{background:#fff3df;color:#a97114}.status.pago_pendiente{background:#fff0ee;color:#c15d50}.status.pago_parcial{background:#eaf2ff;color:#3978bd}.status.pagado{background:#e9f8ef;color:#328559}.empty-state{text-align:center;padding:55px 20px;color:#8fa0b4}.empty-state>span{font-size:35px;color:#b9cbe0}.empty-state h3{font-size:16px;color:#314b68;margin:9px 0 5px}.empty-state p{font-size:12px;margin:0}
.visit-form{max-width:1010px;display:grid;gap:18px}.form-card{background:#fff;border:1px solid #e1e8f1;border-radius:17px;box-shadow:0 7px 24px #122f590a;overflow:hidden}.form-card-head{display:flex;align-items:center;gap:15px;border-bottom:1px solid #edf1f6;padding:19px 22px}.form-card-head>span{width:32px;height:32px;background:#e9f3ff;color:#1d65b0;border-radius:10px;display:grid;place-items:center;font-size:11px;font-weight:850}.form-card-head h2{font-size:16px;letter-spacing:-.025em;margin:0}.form-card-head p{font-size:11px;color:#90a0b3;margin:4px 0 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px}.form-hint{margin:-3px 22px 22px;background:#f1f7ff;color:#4f739e;border-radius:9px;padding:10px 12px;font-size:11px}.form-submit{display:flex;justify-content:flex-end;gap:10px;margin-top:3px}.form-submit .button{min-width:136px}
.drawer-layer{position:fixed;inset:0;z-index:40;display:flex;justify-content:flex-end}.drawer-scrim{position:absolute;inset:0;border:0;background:#0b1d3a93;cursor:default}.drawer{position:relative;width:min(100%,610px);height:100%;background:#fff;box-shadow:-20px 0 50px #0b1e3b29;display:flex;flex-direction:column}.drawer-header{padding:24px 29px;border-bottom:1px solid #e7edf4;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.drawer-header h2{font-size:26px;letter-spacing:-.05em;margin:8px 0 4px}.drawer-header p{font-size:12px;color:#8393a8;margin:0}.drawer-close{border:0;background:#eff3f8;color:#627a96;border-radius:10px;font-size:23px;width:32px;height:32px}.drawer-body{overflow:auto;padding:22px 29px 45px}.detail-banner{background:linear-gradient(120deg,#eef6ff,#f5faff);border:1px solid #dceaf9;border-radius:13px;padding:15px 17px;display:grid;grid-template-columns:1fr auto;gap:3px;align-items:center;margin-bottom:20px}.detail-banner .status{width:max-content;grid-row:span 2}.detail-banner strong{text-align:right;color:#1d4d8a;font-size:20px}.detail-banner>span:last-child{text-align:right;font-size:10px;color:#8194ad}.detail-section{border:1px solid #e4ebf3;border-radius:13px;padding:18px;margin-bottom:17px}.detail-section h3,.detail-form h3{font-size:14px;letter-spacing:-.02em;margin:0 0 15px;color:#1e3c62}.detail-line{display:flex;justify-content:space-between;gap:20px;padding:8px 0;border-bottom:1px solid #f1f4f7;font-size:11px}.detail-line:last-child{border:0}.detail-line span{color:#8798ac;min-width:110px}.detail-line strong{text-align:right;color:#35506e;font-weight:760;overflow-wrap:anywhere}.detail-form{border:1px solid #cfe0f1;border-radius:13px;padding:19px;margin-bottom:17px;background:#f9fcff}.detail-form .form-grid{padding:0;gap:12px;margin-bottom:15px}.detail-form .field input,.detail-form .field textarea{min-height:39px}.detail-form .button{margin-top:2px}.check-field{display:flex;align-items:center;gap:8px;margin:0 0 16px;color:#35506e;font-size:12px;font-weight:750}.check-field input{accent-color:#1455aa;width:17px;height:17px}.muted{color:#91a0b1;font-size:11px;line-height:1.5}.payment-row{display:flex;gap:10px;align-items:flex-start;border-top:1px solid #edf1f6;padding:11px 0}.payment-check{width:22px;height:22px;display:grid;place-items:center;background:#e7f7ed;color:#288450;border-radius:7px;font-size:11px}.payment-row strong,.payment-row small{display:block}.payment-row strong{font-size:12px}.payment-row small{font-size:10px;color:#91a0b3;margin-top:4px}.timeline-item{display:flex;gap:12px;position:relative;padding-bottom:17px}.timeline-item:before{content:"";position:absolute;left:5px;top:13px;bottom:0;width:1px;background:#d7e5f3}.timeline-item:last-child:before{display:none}.timeline-dot{width:11px;height:11px;background:#2673c1;border:2px solid #d6eaff;border-radius:50%;flex:none;margin-top:2px;z-index:1}.timeline-item strong,.timeline-item small{display:block}.timeline-item strong{text-transform:capitalize;font-size:11px}.timeline-item small{font-size:10px;color:#94a4b7;margin-top:3px}.timeline-item p{font-size:10px;color:#71839a;margin:5px 0 0}
.overview-grid.single-panel{grid-template-columns:minmax(0,1fr)}
@media(max-width:1190px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:1fr}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.auth-page{grid-template-columns:1fr}.auth-aside{display:none}.auth-content{min-height:100vh}.mobile-brand{display:block;margin-bottom:33px}.sidebar{position:fixed;left:-270px;transition:left .2s}.sidebar.open{left:0}.backdrop{display:block;position:fixed;inset:0;z-index:19;border:0;background:#0b1e3b7d}.close-menu{display:block;position:absolute;right:13px;top:20px;background:none;border:0;color:#fff;font-size:22px}.menu-button{display:block;border:0;background:none;color:#24476f;font-size:18px;padding:3px}.topbar{height:60px}.page-wrap{padding-top:28px}}
@media(max-width:620px){.auth-content{align-items:flex-start;padding:22px}.auth-card{padding:4px 0 25px}.auth-card h2{font-size:29px}.heading-row{align-items:flex-start;flex-direction:column}.heading-row .button{width:100%}.filter-panel{padding:17px}.filter-title{align-items:flex-start}.filter-title>span{display:none}.filter-grid{grid-template-columns:1fr 1fr}.filter-grid label:first-child,.filter-grid label:last-child{grid-column:1/-1}.filter-actions{flex-wrap:wrap}.filter-actions .search-field{flex:1 0 100%}.filter-actions .button{flex:1}.metrics-grid{gap:9px}.metric-card{padding:14px;min-height:135px}.metric-card strong{font-size:21px}.finance-foot{flex-direction:column}.surface-head{padding:17px}.period-badge{display:none}.form-grid{grid-template-columns:1fr;padding:17px}.field.full{grid-column:auto}.form-card-head{padding:16px}.form-submit .button{flex:1}.drawer-header,.drawer-body{padding-left:18px;padding-right:18px}.detail-form .form-grid{grid-template-columns:1fr}.topbar-right>span:first-child{display:none}}

/* Identidad V&S: violeta, turquesa, coral y amarillo, inspirada en la referencia. */
:root{--brand-primary:#76519a;--brand-secondary:#0ea7a8;--brand-accent:#e6a609;--brand-highlight:#ab123d;background:#fbf8fc}
.app-shell{background:linear-gradient(145deg,#fcf9ff,#f6fcfb 58%,#fffaf3)}
.brand-symbol{background:linear-gradient(135deg,var(--brand-primary),var(--brand-secondary));color:white;box-shadow:0 7px 17px #76519a25}.brand-symbol span,.brand-light .brand-symbol span{color:#ffdf80}
.brand-copy{min-width:0}.brand-copy strong{overflow:hidden;text-overflow:ellipsis}.brand-light .brand-symbol{background:#ffffff30;color:#fff}
.eyebrow{color:var(--brand-primary)}.eyebrow.light{color:#f5d9ff}
.button.primary{background:var(--brand-primary);box-shadow:0 8px 18px #76519a35}.button.primary:hover:not(:disabled){background:var(--brand-highlight)}
.button.outline{color:var(--brand-primary);border-color:#e7dcec}.button.outline:hover:not(:disabled){background:#fdf8ff;border-color:var(--brand-primary)}
.button.subtle{background:#f3ecf6;color:var(--brand-primary)}.button.danger{background:#fff4f5;color:#a71e49;border-color:#f5cbd4}
.auth-aside{background:radial-gradient(circle at 85% 12%,#ffffff2d 0,transparent 30%),linear-gradient(145deg,var(--brand-primary),#6d2b7d 52%,var(--brand-highlight));}
.auth-aside:before{inset:-15%;background:linear-gradient(128deg,transparent 0 34%,#ffffff20 35% 48%,transparent 49%),linear-gradient(145deg,transparent 18%,#0ea7a866 38%,transparent 55%,#efa81966 83%);transform:translate3d(-2%,0,0) scale(1.1);animation:vs-geometry-drift 9s ease-in-out infinite alternate}
.auth-aside:after{inset:0;right:0;bottom:0;width:auto;height:auto;border:0;border-radius:0;box-shadow:none;background:radial-gradient(circle at 84% 23%,#ffe17955 0,transparent 27%),radial-gradient(circle at 16% 70%,#14b6bb70 0,transparent 30%),linear-gradient(110deg,transparent 33%,#ffffff2c 49%,transparent 64%),linear-gradient(#ffffff18 1px,transparent 1px),linear-gradient(90deg,#ffffff18 1px,transparent 1px);background-size:140% 140%,140% 140%,220% 100%,44px 44px,44px 44px;background-position:0 0,100% 0,-120% 0,0 0,0 0;animation:vs-aurora-flow 7s ease-in-out infinite alternate}
.auth-aside>*{position:relative;z-index:1}.auth-story h1{font-size:clamp(40px,4.8vw,69px);max-width:650px}.auth-story h1 em{color:#ffe28e}.auth-story p{color:#fff1fc}.auth-steps span{background:#ffffff16;border-color:#ffffff48}.auth-foot{color:#f9e7fa}.pulse{background:#ffcf60;box-shadow:0 0 0 5px #ffcf6036}
.auth-content{background:radial-gradient(circle at 90% 8%,#fff4d8,transparent 31%),radial-gradient(circle at 3% 94%,#e3f8f7,transparent 36%),#fff}.auth-icon{background:#f3e7f7;color:var(--brand-primary)}
.auth-content{position:relative;isolation:isolate}.auth-content:before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:radial-gradient(circle at 82% 20%,#f6e4fa 0,transparent 27%),radial-gradient(circle at 15% 75%,#ddf8f5 0,transparent 29%),radial-gradient(circle at 86% 88%,#fff0ca 0,transparent 24%);background-size:115% 115%;animation:vs-login-flow 10s ease-in-out infinite alternate}.auth-card{position:relative;z-index:1}
.field input:focus,.field select:focus,.field textarea:focus,.filter-panel input:focus,.filter-panel select:focus{border-color:var(--brand-secondary);box-shadow:0 0 0 3px #0ea7a82b}
.sidebar{background:linear-gradient(180deg,var(--brand-primary),#542f70 54%,#46255f)}.sidebar-label{color:#e7c9ed}.sidebar-info>span{color:#ffe087}.sidebar-info p,.sidebar-user small{color:#ead3f1}.nav-item{color:#f0dff4}.nav-item.active{box-shadow:inset 3px 0 var(--brand-accent)}.admin-label{margin-top:22px;border-top:1px solid #ffffff24;padding-top:18px}
.preview-badge{background:#fff6df;color:#805a02}.metric-icon.blue{background:#eee9f7;color:var(--brand-primary)}.metric-icon.amber{background:#fff3d9;color:#a86f08}.metric-icon.green{background:#e3f7f5;color:var(--brand-secondary)}.metric-icon.rose{background:#fde8ec;color:var(--brand-highlight)}
.surface,.filter-panel,.form-card,.metric-card{border-color:#ece4f0;box-shadow:0 8px 24px #582c780d}.finance-total strong,.record-id{color:var(--brand-highlight)!important}.form-card-head>span,.flow-step>span{background:#f2e9f8;color:var(--brand-primary)}.row-open{background:#f2e9f8;color:var(--brand-primary)}.row-open:hover{background:#ead6f3}.timeline-dot{background:var(--brand-secondary);border-color:#c6eeec}.check-field input{accent-color:var(--brand-primary)}
.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}.admin-card{overflow:hidden}.admin-form{padding:22px;display:grid;gap:16px}.admin-form.horizontal{grid-template-columns:180px minmax(0,1fr) auto;align-items:end}.admin-form .form-grid{padding:0}.admin-form>.button{justify-self:start}.admin-list{padding:6px 20px}.admin-list-row{display:flex;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid #f0eaf3}.admin-list-row:last-child{border-bottom:0}.admin-list-row>div:nth-child(2){flex:1;min-width:0}.admin-list-row strong,.admin-list-row small{display:block}.admin-list-row strong{font-size:12px;color:#3d2c50}.admin-list-row small{font-size:10px;color:#8e8298;margin-top:5px}.admin-list-row .button{min-height:33px;padding:0 12px;font-size:11px}.admin-avatar{background:linear-gradient(135deg,var(--brand-primary),var(--brand-secondary))}.catalog-dot{width:12px;height:12px;border-radius:50%;background:var(--brand-secondary);flex:none}.catalog-dot.procedimiento{background:var(--brand-highlight)}.admin-editor{margin-bottom:20px}.admin-actions{display:flex;flex-wrap:wrap;gap:10px}.admin-form .muted{margin:0}.color-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.color-grid input[type=color]{padding:3px;height:44px;cursor:pointer}
@keyframes vs-geometry-drift{from{transform:translate3d(-3%,-1%,0) scale(1.08)}to{transform:translate3d(3%,2%,0) scale(1.13)}}
@keyframes vs-aurora-flow{from{background-position:0 0,100% 0,-120% 0,0 0,0 0}to{background-position:100% 0,0 20%,180% 0,10px 0,0 10px}}
@keyframes vs-login-flow{from{background-position:0 0;transform:translateY(-1%)}to{background-position:100% 100%;transform:translateY(1%)}}
@media(prefers-reduced-motion:reduce){.auth-aside:before,.auth-aside:after,.auth-content:before{animation:none}}
@media(max-width:1050px){.admin-grid{grid-template-columns:1fr}.color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.admin-form.horizontal{grid-template-columns:1fr}.color-grid{grid-template-columns:1fr 1fr}.admin-list-row{flex-wrap:wrap}.admin-list-row .button{margin-left:auto}}

/* Paleta didactica V&S: turquesa principal y acentos de la referencia. */
:root{--brand-primary:#57c6bc;--brand-secondary:#4f7fff;--brand-accent:#f7cd5a;--brand-highlight:#f86f03;--brand-deep:color-mix(in srgb,var(--brand-primary) 56%,#07535c);--brand-ink:color-mix(in srgb,var(--brand-primary) 30%,#07343f);--brand-soft:color-mix(in srgb,var(--brand-primary) 15%,white);--brand-softer:color-mix(in srgb,var(--brand-primary) 6%,white)}
.app-shell{background:linear-gradient(145deg,#f6fbfa,#f8faff 55%,#fffaf1)}
.brand-symbol{background:linear-gradient(135deg,var(--brand-primary),var(--brand-secondary));box-shadow:0 7px 17px #57c6bc35}.brand-symbol span,.brand-light .brand-symbol span{color:#fff}
.eyebrow{color:var(--brand-deep)}.eyebrow.light{color:#d7fff9}
.button.primary{background:var(--brand-secondary);box-shadow:0 8px 18px #4f7fff35}.button.primary:hover:not(:disabled){background:color-mix(in srgb,var(--brand-secondary) 76%,#153b7a)}
.button.outline{color:var(--brand-ink);border-color:#cceae7}.button.outline:hover:not(:disabled){background:#effaf8;border-color:var(--brand-primary)}
.button.subtle{background:#e9f5f3;color:var(--brand-ink)}
.auth-aside{background:radial-gradient(circle at 88% 14%,#ffffff35 0,transparent 32%),linear-gradient(145deg,var(--brand-primary),var(--brand-deep) 54%,var(--brand-ink))}
.auth-aside:before{background:linear-gradient(128deg,transparent 0 34%,#ffffff20 35% 48%,transparent 49%),linear-gradient(145deg,transparent 18%,#4f7fff55 38%,transparent 55%,#ffa41b66 83%)}
.auth-aside:after{background:radial-gradient(circle at 84% 23%,#f7cd5a77 0,transparent 27%),radial-gradient(circle at 16% 70%,#4f7fff66 0,transparent 30%),linear-gradient(110deg,transparent 33%,#ffffff2c 49%,transparent 64%),linear-gradient(#ffffff18 1px,transparent 1px),linear-gradient(90deg,#ffffff18 1px,transparent 1px);background-size:140% 140%,140% 140%,220% 100%,44px 44px,44px 44px}
.auth-story h1 em{color:#fff1ae}.auth-story p{color:#e8fffc}.auth-foot{color:#e4fbf6}.pulse{background:var(--brand-accent);box-shadow:0 0 0 5px #f7cd5a44}
.auth-content{background:#fff}.auth-content:before{background:radial-gradient(circle at 82% 20%,#e7eeff 0,transparent 27%),radial-gradient(circle at 15% 75%,#dbf7f4 0,transparent 29%),radial-gradient(circle at 86% 88%,#fff2d7 0,transparent 24%)}.auth-icon{background:#e4f7f4;color:var(--brand-ink)}
.field b{color:var(--brand-highlight)}.field input:focus,.field select:focus,.field textarea:focus,.filter-panel input:focus,.filter-panel select:focus{border-color:var(--brand-primary);box-shadow:0 0 0 3px #57c6bc33}
.sidebar{background:linear-gradient(180deg,var(--brand-deep),var(--brand-ink))}.sidebar-label{color:#c8f2ed}.sidebar-info>span{color:var(--brand-accent)}.sidebar-info p,.sidebar-user small{color:#d3f0ed}.nav-item{color:#e1f7f3}.nav-item.active{box-shadow:inset 3px 0 var(--brand-accent)}
.sidebar-password{margin-top:13px;width:100%;min-height:37px;border:1px solid #ffffff66;border-radius:9px;background:#ffffff19;color:#fff;font-size:11px;font-weight:800;text-align:center}.sidebar-password:hover{background:#ffffff2e}
.top-avatar{background:#e5f7f4;color:var(--brand-ink)}.preview-badge{background:#fff3d7;border-color:#f7cd5a;color:#7f5700}
.metric-icon.blue{background:#e8edff;color:#3f69df}.metric-icon.amber{background:#fff0c8;color:#a87000}.metric-icon.green{background:#dff7f3;color:#14786e}.metric-icon.rose{background:#fff0e5;color:#d55a00}
.surface,.filter-panel,.form-card,.metric-card{border-color:#dfebef;box-shadow:0 8px 24px #1b7c8610}
.finance-rows .finance-total strong{color:var(--brand-highlight)}.record-id{color:var(--brand-secondary)!important}.service-type{color:var(--brand-ink)}
.form-card-head>span,.flow-step>span{background:#e8edff;color:#3f69df}.form-hint,.detail-banner{background:#f1faf8;border-color:#d6f2ed;color:var(--brand-ink)}
.row-open{background:#e8edff;color:#3f69df}.row-open:hover{background:#d9e2ff}.timeline-dot{background:var(--brand-secondary);border-color:#d9e2ff}.check-field input{accent-color:var(--brand-primary)}
.period-badge,.count-tag{background:#fff2d2;color:#805d0a}.catalog-dot{background:var(--brand-secondary)}.catalog-dot.procedimiento{background:var(--brand-highlight)}.admin-avatar{background:linear-gradient(135deg,var(--brand-primary),var(--brand-secondary))}
.admin-list-row{border-bottom-color:#e3efef}.admin-list-row strong{color:#214653}.admin-list-row small{color:#738f98}
.status.cuenta_pendiente{background:#fff1cf;color:#926400}.status.pago_pendiente{background:#fff0e5;color:#b74700}.status.pago_parcial{background:#e8edff;color:#315ac7}.status.pagado{background:#e1f7f2;color:#14776b}
.admin-form.service-editor-grid{grid-template-columns:minmax(320px,3fr) minmax(145px,1fr) auto}.admin-form.service-editor-grid .field input{min-width:0}
.color-grid.single-color{grid-template-columns:220px minmax(0,1fr);align-items:end}.color-grid.single-color .muted{margin:0 0 5px}.password-card{width:min(100%,560px);margin-bottom:18px}
.vet-table{min-width:800px}
@media(max-width:720px){.admin-form.service-editor-grid{grid-template-columns:1fr}.color-grid.single-color{grid-template-columns:1fr}.color-grid.single-color .muted{margin-top:-7px}}
