@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@500;600;700&display=swap');
:root{--bg:#060609;--surface:#0e0e15;--surface2:#13131d;--border:rgba(230,233,255,.1);--text:#f3f4fa;--muted:#8990a9;--violet:#8b5cf6;--violet2:#b35cff;--green:#22c55e;--orange:#f59e0b;--red:#f05265;--blue:#4d9cff;--pink:#ec72dc}*{box-sizing:border-box}:root{color-scheme:dark}body{margin:0;background:radial-gradient(800px 500px at 70% -20%,#27134a22,transparent 70%),var(--bg);color:var(--text);font:14px 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;border-right:1px solid var(--border);background:#09090f;padding:24px 14px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;gap:10px;align-items:center;margin:0 10px 38px;font-family:Outfit;font-size:16px;letter-spacing:.3px}.brand small{display:block;color:#ab86ff;font-size:10px;letter-spacing:1.8px;margin-top:1px}.brand-mark{display:grid;place-items:center;width:29px;height:29px;background:linear-gradient(145deg,#b457ff,#6335c6);border-radius:9px;color:#fff;font-weight:700;box-shadow:0 5px 18px #834cf855}.sidebar p{font-size:10px;letter-spacing:1.4px;color:#5f6479;margin:22px 12px 8px}.sidebar nav a{color:#969cb2;display:flex;gap:12px;padding:10px 12px;border-radius:9px;margin:2px 0;transition:.2s}.sidebar nav a:hover,.sidebar nav .active{background:#8b5cf617;color:#fff}.sidebar nav .active{box-shadow:inset 2px 0 var(--violet)}.sidebar-footer{margin-top:auto;border-top:1px solid var(--border);padding:17px 10px 0;color:#9da3b6;font-size:12px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:7px;box-shadow:0 0 10px var(--green)}main{width:calc(100% - 244px);margin-left:244px;padding:0 44px 50px;max-width:1780px}header{min-height:92px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;margin:0 -44px;padding:0 44px;background:#08080dce;backdrop-filter:blur(16px);position:sticky;top:0;z-index:3}.crumb,.eyebrow{font-size:10px;letter-spacing:1.45px;color:#9b6cff;font-weight:700}.crumb{color:#6f7489;margin-bottom:5px}h1,h2,h3{font-family:Outfit;margin:0;letter-spacing:-.45px}h1{font-size:22px}h2{font-size:30px;max-width:680px;line-height:1.18;margin:8px 0 10px}h3{font-size:17px}.header-actions{display:flex;align-items:center;gap:10px}.search{border:1px solid var(--border);border-radius:9px;padding:9px 10px;color:#78809a;background:#11111a;display:inline-flex;align-items:center;gap:6px}.search input{border:0;background:transparent;color:white;outline:0;width:210px}.header-actions select,.filters select,.filters input,.workflow input{border:1px solid var(--border);border-radius:9px;background:#11111a;color:#dbe0f0;padding:9px 10px;outline:0;font:inherit}.avatar{background:linear-gradient(145deg,#5332a5,#25184b);width:33px;height:33px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700}.menu{display:none}.intro{padding:43px 0 26px;display:flex;justify-content:space-between;align-items:center}.intro p,.connector p{color:var(--muted);margin:0;line-height:1.6}.compact{padding-bottom:22px}.button{display:inline-flex;align-items:center;justify-content:center;gap:11px;padding:10px 16px;border:1px solid transparent;border-radius:10px;cursor:pointer;font:600 13px 'DM Sans';color:#fff;transition:.2s}.button.primary{background:linear-gradient(100deg,#7651e9,#a355ff);box-shadow:0 8px 22px #8753ed2b}.button.primary:hover{transform:translateY(-1px);filter:brightness(1.1)}.button.ghost{border-color:#9b67ff;background:transparent;color:#c7aaff}.full{width:100%;margin-top:16px}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.metrics article,.panel{background:linear-gradient(140deg,#11111a,#0e0e15);border:1px solid var(--border);border-radius:15px}.metrics article{min-height:130px;padding:19px}.metrics span,.metrics small{display:block;color:var(--muted);font-size:12px}.metrics strong{font:600 30px Outfit;display:block;margin:11px 0 5px}.metrics .good{color:#4fd68b}.metrics .warn{color:#f6bc5b}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.85fr);gap:14px;margin:14px 0}.panel{padding:20px}.panel-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.panel-head a{color:#ae85ff;font-size:12px}.range-label{font-size:11px;color:var(--muted);background:#181823;padding:6px 8px;border-radius:7px}.chart{height:185px;margin-top:15px}.chart svg{height:145px;width:100%;overflow:visible}.gridline{stroke:#fff;stroke-opacity:.06;stroke-width:1}.line{fill:none;stroke:url(#gradient);stroke:#a66aff;stroke-width:3;filter:drop-shadow(0 5px 8px #8a57f888)}.chart-labels{display:flex;justify-content:space-around;color:#9298ad;font-size:11px}.integration{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--border);font-size:13px}.integration:last-child{border-bottom:0}.provider-icon{background:#271a4d;color:#c69bff;width:25px;height:25px;border-radius:7px;display:grid;place-items:center;font-weight:700;font-size:11px}.provider-icon.large{width:42px;height:42px;font-size:17px}.status{font-size:11px;margin-left:auto}.status.connected{color:#5ed990}.status.not_configured{color:#9298ad}.status.pending,.status.syncing{color:#f6ba51}.status.error{color:#fa6f7f}.funnel{margin:14px 0}.funnel-steps{display:flex;align-items:center;justify-content:space-between;margin-top:19px}.funnel-steps>div{display:flex;flex-direction:column;gap:5px}.funnel-steps i{color:#645e75;font-style:normal}.step-number{width:43px;height:43px;display:grid;place-items:center;border-radius:12px;font:600 19px Outfit}.step-number.violet{background:#33215e;color:#c9aaff}.step-number.blue{background:#172b52;color:#8ebeff}.step-number.green{background:#123a29;color:#79e8a6}.step-number.pink{background:#452039;color:#f4a8e9}.funnel-steps b{font-size:13px}.funnel-steps small{color:var(--muted)}.table-panel{margin-top:14px}.table-wrap{overflow:auto;margin:13px -20px -20px;padding:0 20px}table{width:100%;border-collapse:collapse;text-align:left;min-width:750px}th{font-size:10px;color:#787f94;letter-spacing:.9px;text-transform:uppercase;font-weight:600;padding:11px 0;border-bottom:1px solid var(--border)}td{padding:13px 0;border-bottom:1px solid #fff0;color:#bac0d1;font-size:12px}tbody tr:last-child td{border-bottom:0}td b,td small{display:block;color:#edf0f8}td small{color:#747b91;margin-top:3px}.badge{font-size:10px;padding:5px 7px;border-radius:6px;white-space:nowrap}.badge.violet{color:#c9b0ff;background:#7148c82b}.badge.blue{color:#93beff;background:#376ec62b}.badge.green{color:#8de4ad;background:#2fbd6b26}.badge.orange{color:#ffc36b;background:#f5941d25}.badge.sky{color:#80d9fa;background:#2d9dc027}.badge.pink{color:#ffaadf;background:#bd3f9525}.badge.red{color:#ff9ba8;background:#d9394c24}.filter-panel{padding:13px}.filters{display:flex;gap:9px}.filters input{flex:1}.action{color:#b990ff;font-size:11px;cursor:pointer}.inline-form{display:flex;gap:5px;position:absolute;right:0;background:#1b1b26;padding:8px;border:1px solid var(--border);border-radius:8px;z-index:2}.inline-form select,.inline-form button{font:11px 'DM Sans';padding:5px;background:#11111a;color:#fff;border:1px solid var(--border);border-radius:5px}details{position:relative}.notice{background:#16422c;color:#a2f1bb;border:1px solid #28905255;padding:12px 16px;border-radius:9px;margin:8px 0}.workflow-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.workflow{min-height:265px}.workflow p{line-height:1.6;color:#a4aabd}.workflow label:not(.switch){display:block;color:#a4aabd;font-size:12px;margin-top:14px}.workflow input{display:block;width:100%;margin-top:6px}.switch input{display:none}.switch i{display:block;width:36px;height:20px;border-radius:100px;background:#333342;padding:3px}.switch i:after{content:'';display:block;width:14px;height:14px;background:#9ca1b6;border-radius:50%;transition:.2s}.switch input:checked+i{background:#7145cf}.switch input:checked+i:after{background:white;transform:translateX(16px)}.flow{display:flex;gap:8px;align-items:center;margin-top:20px;color:#beb3d5;font-size:11px}.flow span{padding:7px;background:#171520;border-radius:6px}.flow i{color:#8b5cf6}.workflow-save{grid-column:1/-1;text-align:right}.jobs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:15px}.jobs span{display:block;border-left:2px solid var(--violet);padding-left:10px}.jobs small{color:var(--muted);display:block;margin-top:4px}.integration-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.connector{min-height:252px;display:flex;flex-direction:column}.connector-top{display:flex;justify-content:space-between}.connector h3{margin:17px 0 7px}.connector small{color:#737a8f;margin-top:auto}.connector form{margin-top:4px}.security-note{display:flex;gap:13px;margin-top:14px;background:#10101a}.security-note>span{font-size:26px;color:#a773ff}.security-note p{color:var(--muted);line-height:1.6;margin:6px 0 0}.login-page{display:grid;place-items:center;min-height:100vh;background:radial-gradient(600px 420px at 50% 0,#4b248441,transparent 70%),var(--bg)}.login-card{width:min(430px,calc(100% - 30px));padding:38px;border:1px solid var(--border);border-radius:20px;background:#0d0d15;box-shadow:0 24px 80px #0008}.centered{justify-content:center;margin:0 0 32px}.login-card h1{font-size:29px;margin:8px 0}.login-card>p{color:var(--muted);margin:0 0 23px}.login-card form label{display:block;color:#bdc2d2;font-size:12px;margin-top:14px}.login-card input{width:100%;display:block;margin-top:6px;border:1px solid var(--border);background:#151520;color:white;border-radius:9px;padding:12px;outline:0}.error{background:#4b1d28;color:#ffaab6;padding:10px;border-radius:8px}.credentials{display:block;color:#74798c;text-align:center;margin-top:18px}.header-actions select,.filters select,.workflow select{-webkit-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23ab86ff' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}
.header-actions select:hover,.filters select:hover,.workflow select:hover{border-color:#9b67ff88}
.header-actions select:focus,.filters select:focus,.workflow select:focus{outline:0;border-color:var(--violet)}
.header-actions select option,.filters select option,.workflow select option{background:#13131d;color:var(--text)}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[type=number]{-moz-appearance:textfield;appearance:textfield}
.stepper{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:9px;background:#11111a;overflow:hidden;margin-top:6px;width:fit-content}
.stepper input{border:0!important;background:transparent!important;margin:0!important;width:64px;text-align:center;padding:9px 4px!important;color:#dbe0f0;font:inherit}
.stepper input:focus{outline:0}
.stepper-btn{border:0;background:transparent;color:#ab86ff;width:32px;cursor:pointer;font-size:15px;line-height:1;transition:.15s;border-left:1px solid var(--border)}
.stepper-btn.down{border-left:0;border-right:1px solid var(--border)}
.stepper-btn:hover{background:#8b5cf62b;color:#fff}
.stepper-btn:active{background:#8b5cf655}
.table-wrap{scrollbar-width:thin;scrollbar-color:#6335c6 transparent}
.table-wrap::-webkit-scrollbar{height:9px;width:9px}
.table-wrap::-webkit-scrollbar-track{background:transparent}
.table-wrap::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#7651e9,#a355ff);border-radius:20px}
.table-wrap::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#8b63f0,#b566ff)}
.pagination{display:flex;align-items:center;gap:6px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.pagination .page-num,.pagination .page-btn{display:grid;place-items:center;min-width:32px;height:32px;padding:0 8px;border-radius:8px;border:1px solid var(--border);color:#a9aec4;font-size:12px;font-weight:600;transition:.15s}
.pagination .page-num:hover,.pagination .page-btn:hover{border-color:#9b67ff88;color:#fff}
.pagination .page-num.active{background:linear-gradient(100deg,#7651e9,#a355ff);border-color:transparent;color:#fff}
.pagination .page-btn.disabled{opacity:.35;pointer-events:none}
.pagination .page-dots{color:#5f6479;padding:0 2px;font-size:12px}
.pagination-meta{color:var(--muted);font-size:11px;margin-top:6px;text-align:right}
.wa-link{display:inline-flex;align-items:center;gap:6px;color:#5ed990;font-size:12px;margin-top:3px}
.wa-link:hover{text-decoration:underline}
.wa-link i{font-style:normal}
.payload-pre{white-space:pre-wrap;max-width:420px;max-height:220px;overflow:auto;color:#8990a9;font-size:12px;background:#0c0c13;border:1px solid var(--border);border-radius:9px;padding:10px 12px;margin-top:6px;scrollbar-width:thin;scrollbar-color:#6335c6 transparent}
.payload-pre::-webkit-scrollbar{width:8px;height:8px}
.payload-pre::-webkit-scrollbar-track{background:transparent}
.payload-pre::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#7651e9,#a355ff);border-radius:20px}
.intro.slim{padding:0 0 4px;display:flex;justify-content:flex-end}
main>header+*{margin-top:26px}
main input:not([type=checkbox]):not([type=radio]):not([type=file]),main select,main textarea{border:1px solid var(--border);border-radius:9px;background:#11111a;color:#dbe0f0;padding:10px 12px;outline:0;font:inherit;transition:border-color .15s,box-shadow .15s}
main input:not([type=checkbox]):not([type=radio]):not([type=file]):hover,main select:hover,main textarea:hover{border-color:#9b67ff66}
main input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,main select:focus,main textarea:focus{border-color:var(--violet);box-shadow:0 0 0 3px #8b5cf62b}
main input::placeholder,main textarea::placeholder{color:#666c82}
main input:disabled,main select:disabled{opacity:.55;cursor:not-allowed}
main select{-webkit-appearance:none;appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23ab86ff' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}
main select option{background:#13131d;color:var(--text)}
.avatar{overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.avatar-preview{width:84px;height:84px;border-radius:50%;overflow:hidden;background:linear-gradient(145deg,#5332a5,#25184b);display:grid;place-items:center;font:600 26px Outfit;color:#fff;margin-bottom:16px}
.avatar-preview img{width:100%;height:100%;object-fit:cover}
.file-drop{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:1px dashed var(--border);border-radius:12px;padding:16px 18px;cursor:pointer;transition:.2s;max-width:320px}
.file-drop:hover{border-color:#9b67ff88;background:#8b5cf60c}
.file-drop span{font-weight:600;color:#c7aaff;font-size:13px}
.file-drop small{color:var(--muted);font-size:11px}
.file-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;padding:0;border:0}
.row-form{display:inline-flex;align-items:center}
.button.small{padding:7px 12px;font-size:12px}
.field-tip{position:fixed;z-index:80;background:#1b1622;border:1px solid #ff6b6b55;color:#ffb3ba;font-size:12px;line-height:1.4;padding:8px 12px;border-radius:9px;margin-top:8px;box-shadow:0 14px 34px #000a;max-width:260px;animation:tipIn .15s ease-out}
.field-tip:before{content:'';position:absolute;top:-5px;left:14px;width:9px;height:9px;background:#1b1622;border-left:1px solid #ff6b6b55;border-top:1px solid #ff6b6b55;transform:rotate(45deg)}
@keyframes tipIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
.field-invalid{border-color:#ff6b6b99!important;box-shadow:0 0 0 3px #ff6b6b22!important}
.toast-stack{position:fixed;top:20px;right:20px;z-index:90;display:flex;flex-direction:column;gap:10px}
.toast{background:#12121c;border:1px solid var(--border);border-left:3px solid var(--green);color:var(--text);padding:13px 16px;border-radius:10px;font-size:13px;box-shadow:0 16px 40px #000a;min-width:240px;animation:toastIn .2s ease-out}
.toast.error{border-left-color:#ff6b6b}
@keyframes toastIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
.custom-select{position:relative;display:inline-block;width:100%}
.custom-select select.native-select-hidden{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;margin:0}
.custom-select-trigger{width:100%;text-align:left;border:1px solid var(--border);border-radius:9px;background:#11111a;color:#dbe0f0;padding:10px 34px 10px 12px;font:inherit;cursor:pointer;position:relative;transition:border-color .15s,box-shadow .15s}
.custom-select-trigger:after{content:'';position:absolute;right:13px;top:50%;width:10px;height:6px;margin-top:-3px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23ab86ff' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;transition:transform .15s}
.custom-select-trigger.open:after{transform:rotate(180deg)}
.custom-select-trigger:hover{border-color:#9b67ff66}
.custom-select-trigger.open{border-color:var(--violet);box-shadow:0 0 0 3px #8b5cf62b}
.custom-select-trigger:disabled{opacity:.55;cursor:not-allowed}
.custom-select-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#161620;border:1px solid var(--border);border-radius:12px;padding:6px;max-height:240px;overflow:auto;box-shadow:0 20px 50px #000b;z-index:60;display:none}
.custom-select-menu.open{display:block;animation:tipIn .12s ease-out}
.custom-select-option{padding:9px 11px;border-radius:8px;font-size:13px;color:#dbe0f0;cursor:pointer}
.custom-select-option:hover{background:#8b5cf628}
.custom-select-option.selected{background:linear-gradient(100deg,#7651e9,#a355ff);color:#fff}
@media(max-width:1050px){.metrics{grid-template-columns:repeat(3,1fr)}.integration-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{width:60px;padding:20px 7px}.brand{margin:0 auto 28px}.brand>span:last-child,.sidebar nav span,.sidebar p,.sidebar-footer{display:none}.sidebar nav a{justify-content:center;padding:11px}.sidebar nav{font-size:17px}main{width:calc(100% - 60px);margin-left:60px;padding:0 17px 30px}header{margin:0 -17px;padding:0 17px;min-height:75px}.search,.header-actions select{display:none}.intro{padding-top:30px}.intro h2{font-size:24px}.metrics{grid-template-columns:repeat(2,1fr);gap:9px}.metrics article{padding:14px;min-height:105px}.metrics strong{font-size:24px}.dashboard-grid,.workflow-grid{grid-template-columns:1fr}.funnel-steps{overflow:auto;gap:13px}.funnel-steps>div{min-width:90px}.integration-cards{grid-template-columns:1fr}.jobs{grid-template-columns:1fr}.filters{flex-wrap:wrap}.filters input{min-width:100%}.header-actions .ghost{display:none}}

/* --- Refinamiento visual: estados vacíos, notas y textos consistentes en Outfit/DM Sans --- */
.empty-state{padding:24px}
.empty-state p{color:var(--muted);line-height:1.65;margin:0 0 14px}
.panel-narrow{max-width:720px}
.panel-narrow h3{margin-top:9px}
.panel-medium{max-width:820px;margin-bottom:16px}
.form-tight{padding:0 22px 20px}
.sync-note{color:var(--muted);margin-top:10px}
.detail-text{color:#bdc2d2;white-space:pre-wrap;line-height:1.65}
.detail-text.padded{padding:0 22px 20px}
.detail-text.compact{max-width:360px;line-height:1.5}
.text-soft{color:#bdc2d2}
.text-muted{color:var(--muted)}
.stat-value{font:700 32px 'Outfit',sans-serif;letter-spacing:-.4px;margin:10px 0;display:block}
.avatar-form{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.empty-chart{display:grid;place-items:center;min-height:145px;color:var(--muted);font-size:12.5px;text-align:center;border:1px dashed var(--border);border-radius:12px;background:#0d0d14}
.notice.error{background:#4b1d28;color:#ffaab6;border-color:#ff6b6b3d}
.error{margin-bottom:14px}
.hidden{display:none!important}

/* Operations redesign: the inbox keeps its rhythm even when a history is opened. */
.page-intro{padding:34px 0 24px;max-width:720px}.page-intro h2{font-size:28px;margin:8px 0}.page-intro p{color:var(--muted);margin:0;line-height:1.6}.conversation-metrics{grid-template-columns:repeat(3,minmax(0,1fr));max-width:920px}.conversation-list{margin-top:18px;padding:22px}.conversation-filters{display:flex;gap:9px;margin:20px 0 8px}.conversation-filters input{flex:1}.conversation-table{margin:0 -4px}.conversation-heading,.conversation-row{display:grid;grid-template-columns:2.1fr 1.25fr .95fr 1fr auto;gap:14px;align-items:center}.conversation-heading{padding:13px 10px 10px;color:#737a91;border-bottom:1px solid var(--border);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.conversation-row{padding:14px 10px;border-bottom:1px solid #ffffff0d;transition:background .15s,border-color .15s}.conversation-row:hover{background:#8b5cf60b;border-color:#8b5cf635}.patient{display:flex;align-items:center;gap:10px;min-width:0}.patient-avatar{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;flex:none;background:linear-gradient(145deg,#5d38b0,#29164c);color:#e9ddff;font:700 13px Outfit}.patient b,.patient small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patient small{color:#767e95;font-size:11px;margin-top:3px}.conversation-interest{color:#b7bdd0;font-size:12px}.conversation-row time{color:#9fa7bb;font-size:12px}.conversation-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px}.icon-action{width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--border);border-radius:9px;color:#78e2a5;background:#22c55e0d;font-size:17px}.icon-action:hover{border-color:#46d987;color:#a4f4c4}.empty-inbox{display:flex;flex-direction:column;gap:5px;padding:45px 10px;color:var(--muted);text-align:center}.empty-inbox b{color:#d9ddec}.conversation-drawer{width:min(530px,100%);height:100%;margin:0 0 0 auto;border:0;border-left:1px solid var(--border);background:#11111a;color:var(--text);padding:26px;box-shadow:-24px 0 80px #0008}.conversation-drawer::backdrop{background:#02020799;backdrop-filter:blur(3px)}.drawer-top{display:flex;justify-content:space-between;gap:12px}.drawer-top h3{font-size:22px;margin:6px 0}.drawer-top p{color:var(--muted);margin:0}.drawer-close{width:34px;height:34px;border:1px solid var(--border);border-radius:10px;background:#191923;color:#d8dcef;font-size:24px;line-height:1;cursor:pointer}.drawer-status{display:inline-flex;margin:20px 0;padding:6px 10px;border-radius:8px;background:#8b5cf624;color:#c9afff;font-size:12px}.timeline{display:grid;gap:0;padding:7px 0}.timeline-item{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:10px 0 18px}.timeline-dot{width:10px;height:10px;border-radius:99px;background:#a365ff;box-shadow:0 0 0 4px #8b5cf622;margin-top:4px;position:relative}.timeline-item:not(:last-child) .timeline-dot:after{content:'';position:absolute;top:13px;left:4px;width:2px;height:calc(100% + 12px);background:#ffffff16}.timeline-item b{font-size:13px;color:#e8eaf4}.timeline-item p{margin:5px 0;color:#a4abbf;line-height:1.45;font-size:12px}.timeline-item small{color:#717a90;font-size:11px}.empty-timeline{color:var(--muted);padding:35px 0;text-align:center}.drawer-footer{position:absolute;bottom:0;left:0;right:0;padding:18px 26px;background:#15151f;border-top:1px solid var(--border);display:flex;gap:9px}.drawer-footer .button{flex:1}
@media(max-width:900px){.conversation-heading{display:none}.conversation-row{grid-template-columns:1fr auto;gap:10px}.conversation-interest,.conversation-row>span:nth-child(3),.conversation-row time{display:none}.conversation-actions{grid-column:2;grid-row:1}.conversation-filters{flex-wrap:wrap}.conversation-filters input{min-width:100%}.conversation-metrics{grid-template-columns:repeat(3,1fr)}}
.recommendation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(370px,1fr));gap:16px}.recommendation-card{display:flex;flex-direction:column;min-height:320px}.recommendation-body{margin:18px 0;color:#c6cad8;line-height:1.65;white-space:normal;flex:1}.decision{font-size:11px;padding:6px 9px;border-radius:8px}.decision.pending{background:#f59e0b20;color:#ffc66f}.decision.approved{background:#22c55e20;color:#8ee7b1}.decision.dismissed{background:#ef526520;color:#ffacb6}.decision-form{border-top:1px solid var(--border);padding-top:15px;display:grid;gap:10px}.decision-form textarea{min-height:72px;resize:vertical}.decision-form>div{display:flex;gap:8px;flex-wrap:wrap}.decision-form .button{padding:8px 11px;font-size:12px}
.conversation-filters .custom-select{flex:0 0 220px;width:220px}.conversation-filters .custom-select-trigger{height:42px}.conversation-row{min-width:0}.conversation-row>*{min-width:0}.conversation-row .button{white-space:nowrap}
.table-wrap{overflow-x:auto;overflow-y:visible}.inline-form{min-width:238px;right:0;left:auto;display:grid;grid-template-columns:minmax(150px,1fr) auto;align-items:center;padding:8px;box-shadow:0 16px 40px #000c}.inline-form select{min-width:150px!important;width:100%;padding:7px 28px 7px 9px!important;font-size:12px}.inline-form button{height:34px;padding:0 10px!important;white-space:nowrap}.inline-form .custom-select{width:100%;min-width:150px}.inline-form .custom-select-menu{min-width:190px}.row-form .custom-select{min-width:140px}.row-form .custom-select-menu{min-width:180px}
.activity-panel{padding:22px}.payload-drawer{width:min(680px,100%)}.payload-view{margin:20px 0 0;padding:16px;border:1px solid var(--border);border-radius:12px;background:#0b0b11;color:#c7cbdb;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow:auto;max-height:calc(100vh - 190px)}
.settings-page{max-width:1320px}.settings-page .table-panel{max-width:940px;padding:22px;margin-top:14px}.settings-page .avatar-form{display:grid;grid-template-columns:92px minmax(230px,1fr) auto;align-items:center;gap:18px;padding:14px 0 0}.settings-page .avatar-preview{width:76px;height:76px;margin:0;font-size:23px}.settings-page .file-drop{max-width:none;width:100%;padding:13px 16px}.settings-page .connection-form.form-tight{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px 0 0;margin:0}.settings-page .connection-form.form-tight .connection-actions{grid-column:1/-1;margin:4px 0 0}.settings-page .jobs{grid-template-columns:1fr 1fr;margin:0}.settings-page .panel-head{padding-bottom:2px}@media(max-width:760px){.settings-page .avatar-form,.settings-page .connection-form.form-tight{grid-template-columns:1fr}.settings-page .avatar-form .connection-actions{justify-self:start}.settings-page .jobs{grid-template-columns:1fr}}
.profile-chip{display:flex;align-items:center;gap:9px;border:1px solid var(--border);padding:4px 5px 4px 11px;border-radius:999px;background:#12121b;color:#cfd4e4;font-size:12px;transition:.2s}.profile-chip:hover{border-color:#9b67ff99;background:#8b5cf612}.profile-chip .avatar{width:30px;height:30px;flex:none}.profile-chip-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){.profile-chip{padding:3px}.profile-chip-name{display:none}}

/* Identidad visual única: el logo sustituye cualquier marca textual. */
.brand-logo-link{display:flex;align-items:center;width:100%;height:48px;padding:0!important;margin-bottom:30px}.brand-logo-link img{display:block;max-width:168px;max-height:42px;width:auto;height:auto;object-fit:contain;object-position:left center}.login-logo{display:flex;justify-content:center;align-items:center;min-height:70px;margin:0 0 18px}.login-logo img{display:block;max-width:190px;max-height:66px;width:auto;height:auto;object-fit:contain}.login-card .login-logo+h1{margin-top:0}

/* Estado de META: lectura clara, jerarquía y acción al alcance. */
.connection-summary{display:grid;grid-template-columns:minmax(185px,.9fr) minmax(145px,.65fr) minmax(280px,1.5fr) auto;align-items:center;gap:24px;padding:18px 21px}.connection-provider{display:flex;align-items:center;gap:12px}.connection-provider strong{display:block;margin-top:2px;font:700 16px 'Outfit',sans-serif}.connection-state{display:grid;gap:5px;padding-left:22px;border-left:1px solid var(--border)}.connection-state small,.connection-detail small{font-size:11px;color:var(--muted)}.connection-detail{display:grid;gap:4px;min-width:0}.connection-detail>span{font-size:11px;color:#8991a9;text-transform:uppercase;letter-spacing:.7px}.connection-detail strong{font-size:13px;color:#e8eaf3;font-weight:600}.connection-detail small{line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-action{justify-self:end;white-space:nowrap}.connection-summary .status{margin:0}

/* Los paneles rápidos no atrapan al usuario: siempre tienen una X. */
details:has(.inline-form){position:relative}.detail-close{position:absolute;z-index:4;right:7px;top:25px;width:23px;height:23px;padding:0;border:1px solid var(--border);border-radius:7px;background:#1a1a25;color:#cbd0df;font:22px/18px Arial,sans-serif;cursor:pointer}.detail-close:hover{background:#3b1f4f;border-color:#a966ff;color:#fff}.inline-form{padding-right:38px!important}
@media(max-width:900px){.connection-summary{grid-template-columns:1fr 1fr}.connection-action{justify-self:start}.connection-detail{grid-column:1/-1;border-top:1px solid var(--border);padding-top:13px}}@media(max-width:760px){.brand-logo-link{justify-content:center;margin-bottom:24px}.brand-logo-link img{max-width:42px;max-height:42px;object-position:center}.connection-summary{display:flex;flex-direction:column;align-items:stretch;gap:14px}.connection-state{padding:12px 0;border-left:0;border-top:1px solid var(--border)}.connection-detail{border-top:0;padding-top:0}.connection-detail small{white-space:normal}.connection-action{width:100%;justify-content:center}.detail-close{top:24px}}

/* Cada módulo ocupa el área disponible; no se reserva una franja vacía a la derecha. */
main{max-width:none}.settings-page{max-width:none;width:calc(100% - 244px)}.settings-page .table-panel{max-width:none;width:100%}.settings-page .panel{width:100%}.panel-narrow,.panel-medium{max-width:none}
@media(max-width:760px){.settings-page{width:calc(100% - 60px)}}

/* Global production polish: consistent rhythm and safe layouts on every screen. */
:root{--page-gutter:clamp(20px,3vw,56px)}
html{min-width:320px;overflow-x:hidden}
body{line-height:1.45;overflow-x:hidden}
main{max-width:none;padding:0 var(--page-gutter) 56px}
main>header{margin:0 calc(-1 * var(--page-gutter));padding:0 var(--page-gutter);min-height:96px}
h1,h2,h3{line-height:1.2;overflow-wrap:anywhere}
h1{font-size:clamp(22px,1.6vw,28px)}
h2{font-size:clamp(25px,2.2vw,34px)}
h3{line-height:1.28}
.eyebrow,.crumb{display:block;line-height:1.35}
.panel{min-width:0}
.panel-head{align-items:flex-start}
.panel-head h3{margin-top:4px}
.page-intro{padding:clamp(28px,4vw,48px) 0 26px}
.page-intro p,.intro p,.connector p,.security-note p{overflow-wrap:anywhere}
.jobs{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.jobs span{min-width:0;padding:4px 0 4px 12px;line-height:1.35}
.jobs b{display:block;line-height:1.28}
.jobs small{line-height:1.45}
.metrics{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}
.metrics article{min-width:0}
.filters,.conversation-filters{align-items:center}
.filters input,.filters select,.conversation-filters input,.conversation-filters select{min-height:44px}
.filters .button,.conversation-filters .button{min-height:44px;white-space:nowrap}
.button{min-height:42px;white-space:nowrap}
.connection-actions{flex-wrap:wrap}
.connection-actions .button{min-height:42px}
.avatar-form .connection-actions{justify-content:flex-end}
.recommendation-body{overflow-wrap:anywhere}
.recommendation-body h4{font:700 14px/1.35 Outfit,sans-serif;color:#f1f2f8;margin:18px 0 7px}
.recommendation-body h4:first-child{margin-top:0}
.recommendation-body p{margin:0 0 12px}
.recommendation-body ul{margin:0 0 14px;padding-left:20px}
.recommendation-body li{margin:5px 0}
.decision.pending{cursor:help}

@media (min-width:1920px){
  :root{--page-gutter:clamp(48px,4vw,92px)}
  body{font-size:15px}
  .panel{padding:24px}
  .metrics article{min-height:142px;padding:23px}
}
@media (max-width:1050px){
  .settings-page .avatar-form{grid-template-columns:76px minmax(180px,1fr) auto}
  .connection-summary{gap:18px}
}
@media (max-width:760px){
  :root{--page-gutter:16px}
  main{padding-bottom:34px}
  main>header{min-height:76px}
  main>header .header-actions{gap:7px}
  .header-actions>.button{display:none}
  .panel{padding:16px}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .metrics article{padding:15px;min-height:108px}
  .metrics strong{font-size:25px}
  .filters,.conversation-filters{gap:8px}
  .filters input,.conversation-filters input{min-width:100%}
  .filters .custom-select,.conversation-filters .custom-select{flex:1 1 100%;width:100%}
  .filters .button,.conversation-filters .button{flex:1 1 auto}
  .recommendation-grid{grid-template-columns:1fr}
  .recommendation-card{min-height:0}
  .settings-page .avatar-form{grid-template-columns:1fr;gap:13px}
  .settings-page .avatar-form .connection-actions{justify-self:stretch}
  .avatar-form .connection-actions{justify-content:stretch}
  .avatar-form .connection-actions .button{flex:1}
  .jobs{grid-template-columns:1fr;gap:12px}
}
@media (max-width:420px){
  .metrics{grid-template-columns:1fr 1fr}
  .metrics article{padding:13px}
  .panel-head{gap:8px}
  .range-label{font-size:10px;padding:5px 6px}
  .decision-form>div .button{width:100%}
}

/* Brand mark: icon only, with enough breathing room to read at a glance. */
.brand-logo-link{height:62px;margin-bottom:24px}
.brand-logo-link img{max-width:100px;max-height:56px}
.login-logo img{max-width:116px;max-height:76px}
@media(max-width:760px){.brand-logo-link{height:50px;margin-bottom:22px}.brand-logo-link img{max-width:48px;max-height:42px}}

/* A brand asset can be replaced with a wide, tall or square logo without
   shifting the navigation: it always occupies and centers within one frame. */
.sidebar .brand-logo-link{display:flex;justify-content:center;align-items:center;width:100%;height:76px;margin:0 0 28px;padding:8px!important}
.sidebar .brand-logo-link img{display:block;width:auto;height:auto;max-width:100%;max-height:60px;object-fit:contain;object-position:center}
.login-logo{min-height:94px;padding:9px}.login-logo img{width:auto;height:auto;max-width:100%;max-height:76px;object-fit:contain;object-position:center}
@media(max-width:760px){.sidebar .brand-logo-link{height:58px;margin-bottom:23px;padding:6px!important}.sidebar .brand-logo-link img{max-width:100%;max-height:46px}.login-logo{min-height:78px}.login-logo img{max-height:62px}}

/* Acento naranja del isotipo (el círculo/"Ads" del logo) llevado al resto del panel. */
:root{--orange2:#ff7a45}
.button.primary{background:linear-gradient(100deg,var(--orange),var(--orange2));box-shadow:0 8px 22px #f59e0b33}
.sidebar nav a:hover,.sidebar nav .active{background:#f59e0b17}
.sidebar nav .active{box-shadow:inset 2px 0 var(--orange)}
.brand-mark,.avatar{background:linear-gradient(145deg,var(--orange2),#c2660f)}
.avatar-preview{background:linear-gradient(145deg,var(--orange2),#c2660f)}
.table-wrap::-webkit-scrollbar-thumb{background:linear-gradient(90deg,var(--orange),var(--orange2))}
.table-wrap::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#ffb066,var(--orange2))}
.pagination .page-num.active{background:linear-gradient(100deg,var(--orange),var(--orange2));border-color:transparent}
.custom-select-option.selected{background:linear-gradient(100deg,var(--orange),var(--orange2))}
.payload-pre::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--orange),var(--orange2))}
.login-page{display:grid;place-items:center;min-height:100vh;min-height:100dvh;background:radial-gradient(600px 420px at 50% 0,#7a3d1a3d,transparent 70%),var(--bg)}
.badge.orange{color:#ffc36b;background:#f5941d25}

/* Filtro de período: presets + "Entre x fecha y x fecha". */
.range-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.range-custom{display:none;align-items:center;gap:6px}
.range-custom.open{display:flex}
.range-custom input[type=date]{padding:9px 8px;min-width:0}
.range-custom span{color:var(--muted);font-size:12px}
@media(max-width:900px){.range-filter{width:100%}.range-custom{width:100%}.range-custom input[type=date]{flex:1}}

/* Gráfica de dos líneas del dashboard: leads nuevos (azul) vs. IA gestionados (naranja). */
.line-leads{fill:none;stroke:var(--blue);stroke-width:3;filter:drop-shadow(0 5px 8px #4d9cff55)}
.line-managed{fill:none;stroke:var(--orange);stroke-width:3;filter:drop-shadow(0 5px 8px #f59e0b55)}
.chart-legend{display:flex;gap:16px;margin-top:6px;font-size:11px;color:var(--muted)}
.chart-legend span{display:inline-flex;align-items:center;gap:6px}
.dot-legend{display:inline-block;width:8px;height:8px;border-radius:50%}
.dot-legend.leads{background:var(--blue)}
.dot-legend.managed{background:var(--orange)}

/* Mini panel de estado de integraciones en el dashboard. */
.integrations-mini{display:flex;flex-direction:column;justify-content:center}
.integrations-mini .status{font-size:13px;margin-left:0}
.integrations-mini .status.connected{color:#5ed990}
.integrations-mini .status.error{color:#fa6f7f}

/* Selector de cuentas por usuario (estilo GHL) en Permisos. */
.access-check{display:flex;align-items:center;gap:7px;padding:6px 2px;font-size:12px;color:#dbe0f0}
.access-form{flex-direction:column;align-items:stretch;max-height:260px;overflow:auto;min-width:220px}


/* ===========================================================================
   Tablas estables (campañas, anuncios, leads, audiencias…)
   ---------------------------------------------------------------------------
   Problema que resuelve: con 10-13 columnas la tabla desbordaba el panel y las
   últimas columnas (Facturados, Ingresos, CPL, Costo/resultado) quedaban
   cortadas fuera del contenedor, sin forma de saber que seguían ahí. Además
   los números se alineaban a la izquierda y las filas cambiaban de alto según
   el largo del nombre, así que la lista "bailaba" al pasar de página.
   =========================================================================== */

/* Ancho mínimo propio para las tablas con muchas columnas: que cada columna
   respire y el scroll horizontal sea intencional, no un recorte. */
/* La tabla se ajusta a su contenido: si cabe, no hay scroll; si no cabe,
   scroll horizontal con la primera columna fija. Un min-width fijo hacía
   aparecer scroll incluso cuando sobraba espacio. */
table.wide{width:max-content;min-width:100%}
table.wide th,table.wide td{white-space:nowrap}
table.wide td:first-child b{white-space:normal}

/* Columnas numéricas: a la derecha, en una sola línea y con cifras de ancho
   fijo, para que se puedan comparar de un vistazo entre filas. */
th.num,td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;padding-left:14px}

/* Primera columna fija: el nombre de la campaña/anuncio sigue visible mientras
   se recorren las métricas a la derecha. */
table.sticky-first th:first-child,table.sticky-first td:first-child{position:sticky;left:0;z-index:1;background:#11111a;padding-right:16px;min-width:210px}
table.sticky-first thead th:first-child{z-index:2}
table.sticky-first th:first-child:after,table.sticky-first td:first-child:after{content:'';position:absolute;top:0;right:0;bottom:0;width:1px;background:var(--border)}

/* Alto de fila estable aunque el nombre ocupe dos líneas. */
.table-wrap tbody td{height:52px;vertical-align:middle}
.table-wrap tbody td b{line-height:1.3}

/* Aviso de que la tabla continúa: sombra al borde derecho del contenedor. */
.table-panel{position:relative}
.table-wrap{scroll-behavior:smooth}

/* Nota explicativa encima de una tabla (por qué una columna está en cero). */
.table-note{margin:12px 0 0;padding:10px 12px;border-left:2px solid var(--orange);background:#f59e0b0f;border-radius:0 8px 8px 0;color:#c9ceda;font-size:12px;line-height:1.55}
.table-note b{color:#edf0f8}

/* Estado vacío consistente en todas las listas. */
.empty-state{padding:26px 4px;color:var(--muted);line-height:1.6}
.empty-state p{margin:0 0 12px}

/* Aviso informativo (distinto del rojo de error). */
.notice.warn{background:#3a2a10;color:#f6d79b;border:1px solid #8a601f66}
.notice code{background:#00000038;padding:1px 5px;border-radius:5px}

/* Filtros dentro del encabezado de un panel, sin empujar el título. */
.inline-filters{gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:520px}
.inline-filters input[name=q]{min-width:180px;flex:0 1 220px}

/* Valor grande de un panel de una sola cifra. */
.stat-value{font:600 34px Outfit;margin:16px 0 6px}

@media(max-width:760px){
  table.sticky-first th:first-child,table.sticky-first td:first-child{min-width:150px}
  .inline-filters{max-width:100%}
  .inline-filters input[name=q]{min-width:100%}
}

/* Señal de que la tabla sigue hacia la derecha: sombra en el borde que
   desaparece sola al llegar al final del scroll (sin JavaScript). */
.table-wrap{
  background-image:
    linear-gradient(to left, var(--surface) 40%, rgba(14,14,21,0)) ,
    radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,.55), rgba(0,0,0,0));
  background-position: right center, right center;
  background-size: 36px 100%, 16px 100%;
  background-repeat: no-repeat, no-repeat;
  background-attachment: local, scroll;
}

/* Filtros en línea del encabezado: una sola fila.
   ui.js reemplaza cada <select> por un .custom-select con width:100%, que
   dentro de un flex se comía todo el ancho y partía el filtro en tres
   renglones. Aquí se le fija su ancho. */
.inline-filters{flex-wrap:nowrap;align-items:center;max-width:560px}
.inline-filters .custom-select{flex:0 0 185px;width:185px}
.inline-filters select{flex:0 0 185px;width:185px}
.inline-filters .button{flex:0 0 auto;white-space:nowrap}

/* Barra de scroll siempre visible en las tablas anchas: el usuario ve de
   entrada que la lista continúa a la derecha, en vez de creer que las últimas
   columnas no existen. */
.table-wrap:has(table.wide){overflow-x:scroll}
.table-wrap:has(table.wide)::-webkit-scrollbar{height:10px}
.table-wrap:has(table.wide)::-webkit-scrollbar-track{background:#ffffff0d;border-radius:20px}

@media(max-width:900px){
  .inline-filters{flex-wrap:wrap;max-width:100%;justify-content:stretch}
  .inline-filters .custom-select,.inline-filters select{flex:1 1 100%;width:100%}
}

/* ============================================================
   MEJORAS VISUALES — revisión oct 2026
   ============================================================ */

/* ----------------------------------------------------------
   1. NOTICE: banners más legibles (error, warn, info, success)
   ----------------------------------------------------------
   Antes: bloque de texto monolítico sin jerarquía visual.
   Ahora: layout flex con icono fijo, título en negrita en su
   propia línea y cuerpo con espacio de respiración.
   ---------------------------------------------------------- */
.notice{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:14px 18px;
  border-radius:12px;
  margin:14px 0;
  line-height:1.6;
  font-size:13px;
}
.notice-icon{
  flex:none;
  font-size:18px;
  line-height:1;
  margin-top:1px;
}
.notice-body{
  flex:1;
  min-width:0;
}
.notice-body b,
.notice-body strong{
  display:block;
  margin-bottom:5px;
  font-size:13.5px;
}
.notice-body p{
  margin:6px 0 0;
  color:inherit;
  opacity:.88;
}
.notice-body code{
  background:#00000030;
  padding:1px 6px;
  border-radius:5px;
  font-size:12px;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
}
/* Colores por tipo */
.notice{background:#16422c;color:#a2f1bb;border:1px solid #28905255}
.notice.error{background:#3c1520;color:#ffb3c0;border-color:#ff4f6855}
.notice.warn{background:#3a2a10;color:#f6d79b;border-color:#8a601f66}
.notice.info{background:#12203a;color:#99c8ff;border-color:#2d6daf55}

/* Botón de acción dentro del notice */
.notice .button{margin-top:10px;align-self:flex-start}

/* ----------------------------------------------------------
   2. TABLE-NOTE: ajuste de contraste y tipografía
   ---------------------------------------------------------- */
.table-note{
  margin:14px 0 0;
  padding:11px 15px;
  border-left:3px solid var(--orange);
  background:#f59e0b0d;
  border-radius:0 10px 10px 0;
  color:#c9ceda;
  font-size:12.5px;
  line-height:1.6;
}
.table-note b{color:#edf0f8}
.table-note code{
  background:#00000038;
  padding:1px 5px;
  border-radius:5px;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
}

/* ----------------------------------------------------------
   3. PANEL-HEAD: más respiro entre eyebrow y h3
   ---------------------------------------------------------- */
.panel-head .eyebrow{margin-bottom:3px}
.panel-head h3{margin-top:2px}

/* ----------------------------------------------------------
   4. CONNECTOR (integration cards): altura mínima flexible
      y separación entre secciones
   ---------------------------------------------------------- */
.connector{min-height:0;padding:22px}
.connector h3{font-size:16px;line-height:1.28}
.connector p{font-size:12.5px;line-height:1.6;margin:6px 0 10px}
.connector small{font-size:11.5px;color:#737a8f;line-height:1.35}
.connector .connection-actions{margin-top:16px;display:flex;gap:9px;flex-wrap:wrap}

/* ----------------------------------------------------------
   5. SECURITY-NOTE: mejor layout con icon grande
   ---------------------------------------------------------- */
.security-note{
  display:flex;
  gap:15px;
  align-items:flex-start;
  margin-top:14px;
  padding:16px 18px;
  background:#13131e;
  border:1px solid var(--border);
  border-radius:12px;
}
.security-note>span{
  font-size:24px;
  color:#a773ff;
  line-height:1;
  flex:none;
  margin-top:2px;
}
.security-note h3{margin:0 0 6px;font-size:15px}
.security-note p{
  color:var(--muted);
  line-height:1.6;
  margin:0;
  font-size:12.5px;
}
.security-note code{
  background:#ffffff0d;
  padding:1px 6px;
  border-radius:5px;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:11.5px;
  word-break:break-all;
}

/* ----------------------------------------------------------
   6. HEADER: sombra inferior sutil para separar del contenido
   ---------------------------------------------------------- */
main>header{
  box-shadow:0 1px 0 var(--border), 0 4px 24px #00000044;
}

/* ----------------------------------------------------------
   7. METRICS ARTICLE: hover sutil para orientar al usuario
   ---------------------------------------------------------- */
.metrics article{
  transition:border-color .2s, box-shadow .2s;
}
.metrics article:hover{
  border-color:#f59e0b44;
  box-shadow:0 8px 28px #00000033;
}

/* ----------------------------------------------------------
   8. BADGE "gray": estilo neutral para estados desconocidos
   ---------------------------------------------------------- */
.badge.gray{color:#9da3b6;background:#ffffff0f}

/* ----------------------------------------------------------
   9. SIDEBAR: separador entre secciones más visible en hover
   ---------------------------------------------------------- */
.sidebar nav a i{
  font-style:normal;
  font-size:15px;
  width:18px;
  text-align:center;
  flex:none;
}

/* ----------------------------------------------------------
  10. EMPTY-STATE: centrado consistente en paneles angostos
   ---------------------------------------------------------- */
.empty-state{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:28px 4px;
  gap:6px;
  color:var(--muted);
  line-height:1.65;
}
.empty-state p{margin:0}
.empty-state .button{margin-top:8px}

/* ----------------------------------------------------------
  11. RANGE-LABEL: badge de período más visible
   ---------------------------------------------------------- */
.range-label{
  font-size:11px;
  color:var(--muted);
  background:#181823;
  border:1px solid var(--border);
  padding:5px 10px;
  border-radius:8px;
  white-space:nowrap;
}

/* ----------------------------------------------------------
  12. TABLA: fila de datos con mejor contraste en hover
   ---------------------------------------------------------- */
tbody tr{transition:background .15s}
tbody tr:hover td{background:#8b5cf60a}

/* ----------------------------------------------------------
  13. CRUMB: más contraste
   ---------------------------------------------------------- */
.crumb{color:#7a8099;font-size:10px;letter-spacing:1.3px}

/* ----------------------------------------------------------
  14. CONNECTION-FORM: espaciado de labels e inputs
   ---------------------------------------------------------- */
.connection-form label{
  display:block;
  color:#a4aabd;
  font-size:12px;
  margin-top:16px;
}
.connection-form label:first-of-type{margin-top:8px}
.connection-form input,
.connection-form textarea{
  display:block;
  width:100%;
  margin-top:6px;
}
.connection-form textarea{
  min-height:96px;
  resize:vertical;
}
.connection-actions{
  display:flex;
  gap:9px;
  margin-top:20px;
  flex-wrap:wrap;
}
