:root{--bg:#060917;--bg2:#0c1224;--surface:#121a31;--surface2:#192442;--blue:#246bfd;--cyan:#16d9ff;--violet:#7b42f6;--magenta:#d946ef;--mint:#25e6b1;--green:#16c784;--amber:#f5a623;--red:#ff4d67;--white:#f8faff;--muted:#9daac5;--border:rgba(157,170,197,.16);--shadow:0 24px 70px rgba(0,0,0,.36);--radius:24px;--gradient:linear-gradient(135deg,#16d9ff 0%,#246bfd 38%,#7b42f6 72%,#d946ef 100%)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Poppins,Arial,sans-serif;background:var(--bg);color:var(--white);line-height:1.5}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:46px;padding:.75rem 1.15rem;border-radius:14px;border:1px solid transparent;font-weight:750;cursor:pointer;transition:.2s transform,.2s border-color,.2s background}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--gradient);color:#fff;box-shadow:0 10px 30px rgba(36,107,253,.25)}.btn-ghost{background:rgba(255,255,255,.04);border-color:var(--border);color:var(--white)}.btn-light{background:var(--white);color:#10172a}.btn-block{width:100%}.eyebrow{display:inline-block;color:var(--cyan);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.alert{padding:1rem 1.1rem;border-radius:16px;margin-bottom:1rem;border:1px solid}.alert.success{background:rgba(22,199,132,.1);border-color:rgba(22,199,132,.3);color:#adf6d7}.alert.error{background:rgba(255,77,103,.1);border-color:rgba(255,77,103,.3);color:#ffc1cb}.public-body{min-height:100vh;background:radial-gradient(circle at 85% 10%,rgba(123,66,246,.22),transparent 30%),radial-gradient(circle at 15% 30%,rgba(22,217,255,.13),transparent 28%),var(--bg)}.public-header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1rem,5vw,5rem);border-bottom:1px solid rgba(255,255,255,.06);backdrop-filter:blur(18px);position:sticky;top:0;z-index:10;background:rgba(6,9,23,.72)}.brand img{width:185px;height:64px;object-fit:contain;object-position:left center}.hero{min-height:calc(100vh - 88px);display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:4rem;padding:clamp(3rem,7vw,7rem) clamp(1rem,6vw,7rem)}.hero-copy h1{font-family:"Space Grotesk",Inter,sans-serif;font-size:clamp(2.7rem,6vw,6rem);line-height:.98;letter-spacing:-.055em;margin:.9rem 0 1.4rem;max-width:850px}.hero-copy>p{color:var(--muted);font-size:clamp(1.02rem,1.6vw,1.28rem);max-width:650px}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:2rem 0}.trust-row{display:flex;gap:1.25rem;flex-wrap:wrap;color:#c6d1e8;font-size:.9rem}.trust-row span:before{content:"✓";color:var(--mint);margin-right:.4rem}.hero-visual{position:relative;min-height:500px;display:grid;place-items:center}.glass-card{background:linear-gradient(145deg,rgba(25,36,66,.92),rgba(12,18,36,.78));border:1px solid rgba(255,255,255,.12);box-shadow:var(--shadow);backdrop-filter:blur(20px)}.dashboard-preview{width:min(100%,560px);padding:1.6rem;border-radius:30px;position:relative;z-index:2;transform:perspective(900px) rotateY(-8deg) rotateX(4deg)}.preview-head,.preview-grid{display:flex;justify-content:space-between;align-items:center;gap:1rem}.status-dot{font-size:.78rem;color:var(--mint)}.status-dot:before{content:"";display:inline-block;width:8px;height:8px;background:var(--mint);border-radius:99px;margin-right:.35rem;box-shadow:0 0 15px var(--mint)}.preview-amount{font-size:3.3rem;font-weight:850;margin:1.5rem 0}.preview-amount small{font-size:.8rem;color:var(--muted)}.preview-bars{height:170px;display:flex;align-items:flex-end;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border)}.preview-bars i{flex:1;border-radius:10px 10px 3px 3px;background:var(--gradient);opacity:.85}.preview-grid{margin-top:1rem}.preview-grid div{flex:1;padding:1rem;border-radius:18px;background:rgba(255,255,255,.04)}.preview-grid span{display:block;color:var(--muted);font-size:.8rem}.preview-grid strong{display:block;font-size:1.15rem;margin-top:.3rem}.orbit{position:absolute;border:1px solid rgba(22,217,255,.2);border-radius:50%;inset:8%}.orbit-two{inset:18%;border-color:rgba(217,70,239,.25);transform:rotate(24deg)}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;padding:2rem clamp(1rem,6vw,7rem) 7rem}.benefits article{background:rgba(18,26,49,.7);border:1px solid var(--border);border-radius:var(--radius);padding:2rem}.feature-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--gradient);font-weight:900}.benefits h2{font-size:1.2rem}.benefits p{color:var(--muted)}.public-footer{border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:1rem;padding:1.5rem clamp(1rem,6vw,7rem);color:var(--muted);font-size:.85rem}.auth-body{min-height:100vh;background:var(--bg)}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.auth-visual{position:relative;padding:3rem clamp(1.5rem,5vw,5rem);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:radial-gradient(circle at 15% 20%,rgba(22,217,255,.17),transparent 30%),radial-gradient(circle at 80% 70%,rgba(123,66,246,.24),transparent 34%),#080d1d}.auth-visual:after{content:"";position:absolute;inset:auto -15% -30% auto;width:500px;height:500px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 60px rgba(255,255,255,.018),0 0 0 120px rgba(255,255,255,.012)}.auth-logo img{width:230px;height:105px;object-fit:contain;object-position:left center}.auth-message{position:relative;z-index:1;max-width:650px;margin-bottom:8vh}.auth-message h1{font-family:"Space Grotesk",Inter,sans-serif;font-size:clamp(3rem,5vw,5.5rem);line-height:1;letter-spacing:-.05em;margin:.8rem 0 1.2rem}.auth-message p{color:var(--muted);font-size:1.1rem}.auth-panel{display:grid;align-content:center;padding:clamp(1.2rem,5vw,5rem);background:#0a0f20}.form-card{max-width:520px;width:100%;margin:auto}.form-heading h2{font-size:2rem;margin:.5rem 0}.form-heading p{color:var(--muted);margin-bottom:2rem}.stack-form{display:grid;gap:1rem}.stack-form label,.settings-grid label,.installer-form label{display:grid;gap:.45rem;color:#dce5f7;font-size:.9rem;font-weight:650}.stack-form label small{color:var(--muted);font-weight:400}.stack-form input,.settings-grid input,.settings-grid select,.installer-form input,.installer-form select{width:100%;min-height:50px;border:1px solid var(--border);border-radius:14px;background:#0f172d;color:var(--white);padding:.8rem .95rem;outline:none}.stack-form input:focus,.settings-grid select:focus,.installer-form input:focus,.installer-form select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(22,217,255,.08)}.password-field{display:flex;background:#0f172d;border:1px solid var(--border);border-radius:14px;overflow:hidden}.password-field input{border:0;background:transparent}.password-field button{background:transparent;color:var(--cyan);border:0;padding:0 1rem;cursor:pointer}.form-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.88rem}.form-row a,.text-center{color:var(--cyan)}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.check input{width:17px;height:17px;min-height:auto}.text-center{text-align:center}.admin-body{min-height:100vh;background:var(--bg2)}.app-shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:1.25rem;display:flex;flex-direction:column;background:#080d1d;border-right:1px solid var(--border);z-index:30}.sidebar-brand img{width:210px;height:90px;object-fit:contain;object-position:left center}.nav-list{display:grid;gap:.4rem;margin-top:1.5rem}.nav-item{display:flex;align-items:center;gap:.8rem;padding:.85rem 1rem;border-radius:14px;color:var(--muted);font-weight:650}.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,rgba(22,217,255,.12),rgba(123,66,246,.12));color:var(--white);border:1px solid rgba(22,217,255,.13)}.nav-icon{width:24px;text-align:center;color:var(--cyan)}.sidebar-user{margin-top:auto;padding:1rem;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:18px;display:flex;align-items:center;gap:.75rem;min-width:0}.sidebar-user div:last-child{min-width:0}.sidebar-user strong,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:var(--muted);font-size:.75rem}.avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:var(--gradient);font-weight:900;flex:none}.avatar-large{width:88px;height:88px;border-radius:28px;font-size:2rem}.app-main{min-width:0}.topbar{height:96px;padding:0 clamp(1rem,3vw,2.5rem);display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);background:rgba(12,18,36,.78);backdrop-filter:blur(18px);position:sticky;top:0;z-index:20}.topbar h1{margin:.1rem 0 0;font-size:1.4rem}.topbar-kicker{font-size:.75rem;color:var(--muted)}.content-area{padding:clamp(1rem,3vw,2.5rem)}.welcome-banner{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:2rem;border-radius:28px;background:linear-gradient(120deg,#102b78,#246bfd 45%,#7b42f6);box-shadow:0 20px 50px rgba(36,107,253,.2)}.welcome-banner h2{font-size:2rem;margin:.3rem 0}.welcome-banner p{margin:0;color:#dce6ff}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.2rem 0}.metric-card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 35px rgba(0,0,0,.16)}.metric-card{padding:1.35rem;position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-25px;top:-25px;opacity:.12;background:currentColor}.metric-card span,.metric-card small{display:block;color:var(--muted)}.metric-card strong{display:block;font-size:1.7rem;margin:.45rem 0}.tone-cyan{color:var(--cyan)}.tone-blue{color:#6d93ff}.tone-green{color:var(--mint)}.tone-red{color:#ff8295}.dashboard-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:1rem}.panel{padding:1.5rem}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.panel-head h2,.panel-head h3{margin:.2rem 0}.panel-head p{color:var(--muted)}.pill{font-size:.75rem;color:#cbd6ed;padding:.45rem .7rem;border-radius:99px;background:rgba(255,255,255,.05)}.empty-chart{min-height:280px;display:grid;place-items:center;position:relative;border-radius:18px;background:linear-gradient(180deg,rgba(22,217,255,.05),transparent);overflow:hidden}.empty-chart:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:48px 48px}.chart-line{position:absolute;width:75%;height:120px;border-top:3px solid var(--cyan);border-radius:50%;transform:rotate(-5deg);filter:drop-shadow(0 0 12px rgba(22,217,255,.4));opacity:.55}.empty-chart p{position:relative;color:var(--muted);background:rgba(6,9,23,.72);padding:.7rem 1rem;border-radius:12px}.setup-list{display:grid;gap:.9rem}.setup-list>div{display:flex;gap:.8rem;align-items:center;padding:.9rem;border-radius:16px;background:rgba(255,255,255,.035)}.check-mark{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:rgba(37,230,177,.12);color:var(--mint)}.setup-list strong,.setup-list small{display:block}.setup-list small{color:var(--muted)}.quick-panel{margin-top:1rem}.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.quick-actions a{display:grid;grid-template-columns:44px 1fr;gap:.15rem .8rem;padding:1rem;border:1px solid var(--border);border-radius:18px}.quick-actions a>span{grid-row:1/3;width:44px;height:44px;display:grid;place-items:center;background:rgba(22,217,255,.08);border-radius:14px;color:var(--cyan)}.quick-actions small{color:var(--muted)}.content-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:1rem}.content-grid.narrow{max-width:1050px}.profile-summary{text-align:center}.profile-summary .avatar{margin:0 auto 1rem}.profile-summary p{color:var(--muted)}.detail-list{display:grid;gap:.7rem;text-align:left;margin-top:1.5rem}.detail-list span{padding:.85rem;background:rgba(255,255,255,.035);border-radius:14px}.detail-list small,.detail-list strong{display:block}.detail-list small{color:var(--muted)}.settings-panel{max-width:1000px}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.settings-grid .form-actions{grid-column:1/-1}.icon-btn{width:44px;height:44px;border:1px solid var(--border);background:var(--surface);color:var(--white);border-radius:13px}.mobile-only{display:none}.sidebar-backdrop{display:none}.error-body{min-height:100vh;display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at center,rgba(36,107,253,.13),transparent 35%),var(--bg)}.error-card{width:min(100%,560px);text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:30px;padding:2rem;box-shadow:var(--shadow)}.error-card img{width:210px;height:100px;object-fit:contain;margin:auto}.error-code{font-size:4rem;font-weight:900;background:var(--gradient);-webkit-background-clip:text;color:transparent}.error-card p{color:var(--muted)}.error-reference{font-family:monospace}.installer-body{min-height:100vh;padding:2rem 1rem;background:radial-gradient(circle at 80% 10%,rgba(123,66,246,.2),transparent 30%),var(--bg)}.installer-shell{width:min(100%,1050px);margin:auto}.installer-head{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem}.installer-head img{width:230px;height:120px;object-fit:contain}.installer-head h1{margin:.2rem 0;font-size:2rem}.installer-head p{color:var(--muted)}.requirements,.installer-form,.install-success{background:var(--surface);border:1px solid var(--border);border-radius:28px;padding:1.5rem;margin-bottom:1rem}.requirement-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.requirement{display:flex;gap:.7rem;align-items:center;padding:.8rem;border-radius:14px;background:rgba(255,255,255,.035)}.requirement>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px}.requirement.ok>span{background:rgba(22,199,132,.14);color:var(--mint)}.requirement.fail>span{background:rgba(255,77,103,.14);color:var(--red)}.requirement strong,.requirement small{display:block}.requirement small{color:var(--muted)}.installer-form{display:grid;gap:1rem}.installer-form fieldset{border:1px solid var(--border);border-radius:20px;padding:1rem}.installer-form legend{font-weight:800;padding:0 .5rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.install-success{text-align:center;padding:3rem}.success-icon{width:70px;height:70px;display:grid;place-items:center;border-radius:24px;background:rgba(22,199,132,.14);color:var(--mint);font-size:2rem;margin:0 auto 1rem}
@media(max-width:1100px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.hero{grid-template-columns:1fr}.hero-visual{min-height:420px}.auth-shell{grid-template-columns:1fr}.auth-visual{min-height:390px}.auth-message{margin:2rem 0}.auth-panel{padding:3rem 1rem}.app-shell{grid-template-columns:230px 1fr}}
@media(max-width:800px){.app-shell{display:block}.sidebar{position:fixed;left:0;transform:translateX(-105%);width:280px;transition:.25s transform}.sidebar.open{transform:translateX(0)}.sidebar-backdrop.open{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:25}.mobile-only{display:inline-grid;place-items:center}.topbar{height:82px}.topbar .btn{padding:.65rem .8rem}.welcome-banner{align-items:flex-start;flex-direction:column}.content-grid{grid-template-columns:1fr}.benefits{grid-template-columns:1fr}.public-footer{flex-direction:column}.requirement-grid,.form-grid,.settings-grid{grid-template-columns:1fr}.settings-grid .form-actions{grid-column:auto}}
@media(max-width:560px){.public-header{height:74px}.brand img{width:150px;height:54px}.hero{padding-top:2rem}.hero-copy h1{font-size:2.7rem}.hero-visual{min-height:340px}.dashboard-preview{transform:none;padding:1rem}.preview-amount{font-size:2.4rem}.preview-bars{height:120px;gap:.5rem}.metrics-grid{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr}.topbar h1{font-size:1.05rem}.topbar-kicker{display:none}.content-area{padding:1rem}.panel,.metric-card{border-radius:20px}.welcome-banner{padding:1.35rem;border-radius:22px}.auth-visual{display:none}.auth-panel{min-height:100vh}.form-row{align-items:flex-start;flex-direction:column}.installer-head{flex-direction:column;text-align:center}.installer-head img{height:95px}.installer-body{padding:1rem .7rem}}

.preview-bars .bar-1{height:28%}.preview-bars .bar-2{height:45%}.preview-bars .bar-3{height:38%}.preview-bars .bar-4{height:67%}.preview-bars .bar-5{height:58%}.preview-bars .bar-6{height:82%}.preview-bars .bar-7{height:74%}.form-row-end{justify-content:flex-end}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.page-heading h2{margin:.25rem 0;font-size:clamp(1.6rem,3vw,2.2rem)}.page-heading p{margin:0;color:var(--muted)}.heading-actions,.card-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.filter-panel{margin-bottom:1rem}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:1rem;align-items:end}.filter-actions{display:flex;gap:.6rem}.table-panel{padding:0;overflow:hidden}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:860px}.data-table th,.data-table td{padding:1rem 1.1rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.data-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:rgba(255,255,255,.025)}.data-table tbody tr:hover{background:rgba(22,217,255,.025)}.identity-cell{display:flex;align-items:center;gap:.7rem}.identity-cell strong,.identity-cell small,.cell-subtext{display:block}.identity-cell small,.cell-subtext{color:var(--muted);font-size:.78rem;margin-top:.2rem}.avatar-small{width:36px;height:36px;border-radius:12px}.role-text,.device-text{display:block;max-width:280px;color:#cbd6ed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;border-radius:99px;font-size:.75rem;font-weight:800}.status-badge.success{background:rgba(22,199,132,.13);color:var(--mint)}.status-badge.danger{background:rgba(255,77,103,.13);color:#ff8295}.status-badge.warning,.alert.warning{background:rgba(245,166,35,.13);color:#ffd186}.status-badge.neutral{background:rgba(157,170,197,.12);color:var(--muted)}.alert.warning a{color:var(--white);text-decoration:underline}.btn-compact{padding:.58rem .8rem;font-size:.78rem}.btn-danger{background:rgba(255,77,103,.12);border:1px solid rgba(255,77,103,.28);color:#ff9aaa}.btn-danger:hover{background:rgba(255,77,103,.2)}.pagination{display:flex;gap:.45rem;justify-content:flex-end;padding:1rem}.pagination a{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;border:1px solid var(--border);color:var(--muted)}.pagination a.active{background:var(--gradient);color:white;border-color:transparent}.empty-state{min-height:130px;display:grid;place-items:center;align-content:center;gap:.35rem;color:var(--muted);text-align:center}.empty-state strong{color:var(--white)}.form-panel{max-width:1100px}.choice-fieldset,.permission-group{border:1px solid var(--border);border-radius:20px;padding:1rem}.choice-fieldset legend,.permission-group legend{padding:0 .5rem;font-weight:800}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.choice-card,.permission-item{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.025);cursor:pointer}.choice-card input,.permission-item input{width:18px;height:18px;min-height:auto;margin-top:.15rem;flex:none}.choice-card strong,.choice-card small,.permission-item strong,.permission-item small{display:block}.choice-card small,.permission-item small{color:var(--muted);margin-top:.2rem}.field-note{align-self:end;padding:1rem;border-radius:16px;background:rgba(22,217,255,.06);border:1px solid rgba(22,217,255,.12)}.field-note strong,.field-note span{display:block}.field-note span{color:var(--muted);font-size:.82rem}.form-actions{display:flex;gap:.75rem;align-items:center}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.detail-grid>span{padding:1rem;border-radius:16px;background:rgba(255,255,255,.035)}.detail-grid small,.detail-grid strong{display:block}.detail-grid small{color:var(--muted);margin-bottom:.25rem}.role-chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.role-chips.centered{justify-content:center}.role-chips span{padding:.45rem .7rem;border-radius:99px;background:rgba(123,66,246,.12);color:#d7c9ff;font-size:.78rem}.action-panel{display:grid;align-content:start;gap:1rem}.credential-form{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1rem 0}.cards-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.role-card{display:grid;gap:1rem}.role-card-head{display:flex;justify-content:space-between;gap:1rem}.role-card h3{margin:.8rem 0 .35rem}.role-card p{color:var(--muted);margin:0}.role-symbol{font-size:2rem;color:var(--cyan)}.role-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.role-stats span{padding:.8rem;border-radius:14px;background:rgba(255,255,255,.03)}.role-stats strong,.role-stats small{display:block}.role-stats small{color:var(--muted);font-size:.72rem;margin-top:.2rem}.role-edit-grid{grid-template-columns:.7fr 1.3fr}.permission-list{display:grid;gap:.55rem}.permission-panel .stack-form{gap:1rem}.danger-zone{margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid rgba(255,77,103,.25)}.danger-zone h4{color:#ff9aaa;margin:0}.danger-zone p{color:var(--muted)}textarea{resize:vertical;min-height:110px}
@media(max-width:1050px){.filter-grid{grid-template-columns:1fr 1fr}.filter-actions{align-self:end}.choice-grid{grid-template-columns:repeat(2,1fr)}.cards-list{grid-template-columns:1fr}.role-edit-grid{grid-template-columns:1fr}}
@media(max-width:650px){.page-heading{flex-direction:column}.page-heading>.btn,.heading-actions{width:100%}.heading-actions .btn{flex:1}.filter-grid,.choice-grid,.detail-grid{grid-template-columns:1fr}.filter-actions .btn{flex:1}.form-actions{flex-direction:column}.form-actions .btn{width:100%}.role-stats{grid-template-columns:1fr}.data-table th,.data-table td{padding:.85rem}.cards-list{gap:.75rem}}
.topbar-title{min-width:0}.topbar-title h1,.topbar-title .topbar-kicker{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;min-width:0}.context-switcher{min-width:240px}.context-switcher label{display:grid;gap:.2rem}.context-switcher label>span{font-size:.68rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.context-switcher select{width:100%;min-height:42px;padding:.55rem 2rem .55rem .75rem;border:1px solid var(--border);border-radius:13px;background:#0f172d;color:var(--white);outline:none}.company-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.company-card{min-width:0}.company-owner{padding:.85rem;border-radius:14px;background:rgba(255,255,255,.03)}.company-owner small,.company-owner strong{display:block}.company-owner small{color:var(--muted);font-size:.72rem}.company-metrics{margin-top:0}.two-column{display:grid;grid-template-columns:1.35fr .65fr;gap:1rem}.detail-layout{align-items:start}.field-wide{grid-column:1/-1}.table-note{display:block;color:var(--muted);font-size:.75rem;margin-top:.2rem}.table-actions{display:flex;gap:.5rem;justify-content:flex-end}.branch-actions{margin-top:1rem}.branch-actions .form-actions{flex-wrap:wrap}.branch-actions form{display:inline-flex}.company-card .status-badge{height:max-content}.company-card .role-stats{grid-template-columns:repeat(3,1fr)}
@media(max-width:1200px){.company-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.context-switcher{min-width:190px}.two-column{grid-template-columns:1fr}}
@media(max-width:900px){.topbar-actions{gap:.45rem}.context-switcher{min-width:160px}.context-switcher option{max-width:180px}}
@media(max-width:800px){.topbar{height:auto;min-height:82px;align-items:center;flex-wrap:wrap;padding:.7rem 1rem}.topbar-title{flex:1}.topbar-actions{width:100%;flex:1 0 100%;order:3}.context-switcher{display:block;min-width:0;flex:1}.context-switcher label>span{display:none}.company-cards{grid-template-columns:1fr}}
@media(max-width:650px){.field-wide{grid-column:auto}.company-metrics{grid-template-columns:1fr 1fr}.topbar-title h1{font-size:1.1rem}.topbar-actions .btn{font-size:.78rem}.branch-actions .form-actions,.branch-actions form,.branch-actions .btn{width:100%}}
.tone-amber{color:#ffd186}.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.span-two{grid-column:span 2}.customer-form-panel{max-width:1250px}.customer-form-panel fieldset{border:1px solid var(--border);border-radius:20px;padding:1rem}.customer-form-panel legend{padding:0 .55rem;font-weight:800}.customer-table{min-width:980px}.warning-text{color:#ffd186}.customer-summary-grid{display:grid;grid-template-columns:1.3fr repeat(3,minmax(0,.7fr));gap:1rem;margin-bottom:1rem}.customer-identity-card{display:flex;align-items:center;gap:1rem}.customer-avatar-large{width:78px;height:78px;border-radius:24px;display:grid;place-items:center;background:var(--gradient);font-size:1.6rem;font-weight:900;flex:none}.customer-identity-card h3{margin:.55rem 0 .2rem}.customer-identity-card p{margin:0;color:var(--muted)}.dossier-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.65fr);gap:1rem;align-items:start}.dossier-main,.dossier-side{display:grid;gap:1rem}.dossier-details{grid-template-columns:repeat(3,1fr)}.record-list{display:grid;gap:.7rem}.record-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.025)}.record-item strong,.record-item small{display:block}.record-item small{color:var(--muted);margin-top:.2rem}.inline-details{margin-top:1rem;border-top:1px solid var(--border);padding-top:1rem}.inline-details summary{cursor:pointer;color:var(--cyan);font-weight:750}.compact-form{margin-top:1rem}.finance-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.finance-columns h4{margin-top:0}.record-box{padding:1rem;border-radius:15px;background:rgba(255,255,255,.03);margin-bottom:.6rem}.record-box strong,.record-box small{display:block}.record-box small,.muted-text{color:var(--muted)}.mini-ledger{display:grid;gap:.5rem}.mini-ledger span{display:flex;justify-content:space-between;gap:1rem;padding:.8rem;border-radius:14px;background:rgba(255,255,255,.03)}.positive-text{color:var(--mint)}.negative-text{color:#ff9aaa}.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.document-card{display:grid;grid-template-columns:42px 1fr;gap:.8rem;padding:1rem;border:1px solid var(--border);border-radius:17px;background:rgba(255,255,255,.025)}.document-card .card-actions{grid-column:1/-1}.document-card strong,.document-card small{display:block}.document-card small{color:var(--muted);overflow-wrap:anywhere}.document-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:rgba(22,217,255,.08);color:var(--cyan)}.upload-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.duplicate-list,.note-list{display:grid;gap:.75rem}.duplicate-card,.note-item{padding:.9rem;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.025)}.duplicate-card strong,.duplicate-card small,.note-item strong,.note-item small{display:block}.duplicate-card small,.note-item small{color:var(--muted)}.note-item p{margin:.6rem 0 0;white-space:normal;overflow-wrap:anywhere}.timeline{display:grid;gap:.75rem}.timeline>div{display:grid;grid-template-columns:16px 1fr;gap:.65rem}.timeline>div>span{width:10px;height:10px;border-radius:50%;background:var(--cyan);margin-top:.35rem;box-shadow:0 0 12px rgba(22,217,255,.5)}.timeline p{margin:0}.timeline strong,.timeline small{display:block}.timeline small{color:var(--muted)}.empty-state.compact{min-height:80px}.confirm-card{margin-top:.2rem}
@media(max-width:1250px){.customer-summary-grid{grid-template-columns:repeat(2,1fr)}.dossier-grid{grid-template-columns:1fr}.dossier-side{grid-template-columns:repeat(2,minmax(0,1fr))}.dossier-side .panel:last-child{grid-column:1/-1}}
@media(max-width:900px){.three-columns,.dossier-details{grid-template-columns:repeat(2,1fr)}.document-grid{grid-template-columns:1fr}.dossier-side{grid-template-columns:1fr}.dossier-side .panel:last-child{grid-column:auto}}
@media(max-width:650px){.three-columns,.customer-summary-grid,.finance-columns,.dossier-details{grid-template-columns:1fr}.span-two{grid-column:auto}.customer-identity-card{align-items:flex-start}.record-item{align-items:flex-start;flex-direction:column}.record-item form,.record-item .btn{width:100%}.document-card .card-actions,.document-card .card-actions form,.document-card .card-actions .btn{width:100%}.mini-ledger span{flex-direction:column;gap:.2rem}}
.support-panel{min-width:0}.support-counter{display:inline-flex;align-items:center;padding:.48rem .72rem;border:1px solid rgba(22,217,255,.16);border-radius:999px;background:rgba(22,217,255,.06);color:#b9f4ff;font-size:.78rem;font-weight:800}.support-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.support-card{min-width:0;padding:1rem;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.025)}.support-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.support-card-head strong,.support-card-head small{display:block}.support-card-head small{color:var(--muted);margin-top:.25rem}.support-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.85rem}.support-details>span{min-width:0;padding:.72rem;border-radius:13px;background:rgba(255,255,255,.03)}.support-details small,.support-details strong{display:block}.support-details small{color:var(--muted);font-size:.7rem}.support-details strong{margin-top:.18rem;overflow-wrap:anywhere}.support-note{margin:.75rem 0 0;padding:.75rem;border-left:2px solid rgba(22,217,255,.35);border-radius:0 12px 12px 0;background:rgba(22,217,255,.035);color:var(--muted);overflow-wrap:anywhere}.support-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.55rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--border)}.support-actions details{min-width:120px;flex:1}.support-actions details[open]{flex-basis:100%}.support-actions summary{cursor:pointer;padding:.55rem .7rem;border:1px solid var(--border);border-radius:12px;color:var(--cyan);font-size:.78rem;font-weight:800;text-align:center;list-style:none}.support-actions summary::-webkit-details-marker{display:none}.support-actions details[open] summary{margin-bottom:.65rem;background:rgba(22,217,255,.05)}.support-actions .compact-form{padding:.75rem;border-radius:14px;background:rgba(255,255,255,.025)}.danger-details summary{color:#ff9aaa}.support-actions .choice-card{padding:.7rem}.support-actions textarea{min-height:72px}
@media(max-width:900px){.support-card-grid{grid-template-columns:1fr}}
@media(max-width:650px){.support-card-head{flex-direction:column}.support-details{grid-template-columns:1fr}.support-counter{max-width:100%;white-space:normal}.support-actions{display:grid;grid-template-columns:1fr}.support-actions details,.support-actions .btn{width:100%}}

/* Módulo 6 — Productos y reglas de crédito */
.product-table{min-width:1120px}.product-counts{display:grid;gap:.2rem}.product-counts small{color:var(--muted);white-space:nowrap}.product-form-panel{max-width:1280px}.product-form-panel fieldset{border:1px solid var(--border);border-radius:20px;padding:1rem}.product-form-panel legend{padding:0 .55rem;font-weight:800}.product-summary-grid{display:grid;grid-template-columns:minmax(340px,1.5fr) repeat(3,minmax(170px,.55fr));gap:1rem;margin-bottom:1rem}.product-hero-card{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;background:linear-gradient(135deg,rgba(16,43,120,.8),rgba(36,107,253,.35),rgba(123,66,246,.25))}.product-hero-card h3{font-size:1.5rem;margin:.7rem 0 .25rem}.product-hero-card p{margin:0;color:#c9d7f2}.product-hero-card>strong{font-family:"Space Grotesk",Inter,sans-serif;font-size:1.35rem;text-align:right}.product-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.65fr);gap:1rem;align-items:start}.product-main,.product-side{display:grid;gap:1rem}.product-rule-grid{grid-template-columns:repeat(3,1fr)}.product-record{align-items:flex-start}.product-record>div:first-child{min-width:0}.product-record>div:first-child>strong,.product-record>div:first-child>small{display:block}.product-record>div:first-child>strong{margin:.45rem 0 .15rem}.product-record>div:first-child>small{color:var(--muted)}.product-record details{min-width:190px;margin-top:0;border-top:0;padding-top:0}.level-number{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:11px;background:var(--gradient);font-weight:900}.branch-choice-list{display:grid;gap:.65rem;max-height:360px;overflow:auto;padding-right:.25rem}.product-side .choice-card{align-items:center}.product-side .timeline{max-height:430px;overflow:auto}.product-side .record-box:last-child{margin-bottom:0}
@media(max-width:1250px){.product-summary-grid{grid-template-columns:repeat(2,1fr)}.product-layout{grid-template-columns:1fr}.product-side{grid-template-columns:repeat(2,minmax(0,1fr))}.product-side section:last-child{grid-column:1/-1}}
@media(max-width:900px){.product-rule-grid{grid-template-columns:repeat(2,1fr)}.product-side{grid-template-columns:1fr}.product-side section:last-child{grid-column:auto}.product-record{display:grid}.product-record details{min-width:0}}
@media(max-width:650px){.product-summary-grid,.product-rule-grid{grid-template-columns:1fr}.product-hero-card{align-items:flex-start;flex-direction:column}.product-hero-card>strong{text-align:left}.product-form-panel fieldset{padding:.8rem}.product-record .settings-grid{grid-template-columns:1fr}}

/* Módulo 7 — Solicitudes de crédito */
.tone-violet{color:#b99cff}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.page-head h2{margin:.25rem 0;font-size:clamp(1.6rem,3vw,2.2rem)}.page-head p{margin:0;color:var(--muted)}.page-actions{display:flex;gap:.65rem;flex-wrap:wrap}.filter-bar{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:1rem;align-items:end}.filter-bar label{display:grid;gap:.4rem;font-size:.85rem;font-weight:700}.filter-bar label>span{color:var(--muted)}.filter-bar input,.filter-bar select{width:100%;min-height:48px;border:1px solid var(--border);border-radius:14px;background:#0f172d;color:var(--white);padding:.75rem .9rem}.application-table{min-width:1220px}.application-table td strong,.application-table td small{display:block}.application-table td small{color:var(--muted);margin-top:.2rem}.warning-counter{color:#ffd186;border-color:rgba(245,166,35,.25);background:rgba(245,166,35,.08)}.success-counter{color:var(--mint);border-color:rgba(37,230,177,.22);background:rgba(37,230,177,.07)}.application-form-panel{max-width:1280px}.application-wizard{display:grid;gap:1.2rem}.wizard-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.wizard-progress button{display:flex;align-items:center;gap:.65rem;padding:.8rem;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.025);color:var(--muted);font-weight:800;cursor:pointer}.wizard-progress button span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.05)}.wizard-progress button.active{color:var(--white);border-color:rgba(22,217,255,.32);background:linear-gradient(90deg,rgba(22,217,255,.1),rgba(123,66,246,.1))}.wizard-progress button.active span{background:var(--gradient)}.wizard-step{display:none;padding:1.1rem;border:1px solid var(--border);border-radius:22px;background:rgba(255,255,255,.015)}.wizard-step.active{display:block}.wizard-step-head{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem}.wizard-step-head>span{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--gradient);font-weight:900}.wizard-step-head h3{margin:0}.wizard-step-head p{margin:.2rem 0 0;color:var(--muted)}.wizard-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.2rem}.product-limit-note,.capacity-preview{padding:1rem;border:1px solid rgba(22,217,255,.15);border-radius:16px;background:rgba(22,217,255,.05);color:#c8f7ff}.capacity-preview{display:grid;grid-template-columns:1fr auto;align-items:center;margin-top:1rem}.capacity-preview span,.capacity-preview small{color:var(--muted)}.capacity-preview strong{font-size:1.5rem}.capacity-preview small{grid-column:1/-1}.span-three{grid-column:1/-1}.confirmation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.confirmation-grid article{padding:1rem;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.025)}.confirmation-grid span,.confirmation-grid strong{display:block}.confirmation-grid span{color:var(--muted);font-size:.78rem}.confirmation-grid strong{margin-top:.3rem;overflow-wrap:anywhere}.application-summary-grid{display:grid;grid-template-columns:minmax(340px,1.45fr) repeat(3,minmax(170px,.55fr));gap:1rem;margin-bottom:1rem}.application-hero-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:linear-gradient(135deg,rgba(16,43,120,.8),rgba(36,107,253,.35),rgba(123,66,246,.25))}.application-hero-card h3{font-size:1.45rem;margin:.7rem 0 .2rem}.application-hero-card p{margin:0;color:#cbd8f0}.application-hero-card>strong{font-family:"Space Grotesk",Inter,sans-serif;font-size:1.45rem;text-align:right}.metric-text{font-size:1.05rem!important;line-height:1.25}.application-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.65fr);gap:1rem;align-items:start}.application-main,.application-side{display:grid;gap:1rem}.application-details{grid-template-columns:repeat(3,1fr)}.requirement-list{display:grid;gap:.8rem}.requirement-card{padding:1rem;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.025)}.requirement-card.complete{border-color:rgba(37,230,177,.2)}.requirement-card.pending{border-color:rgba(245,166,35,.18)}.requirement-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.requirement-card-head strong,.requirement-card-head small{display:block}.requirement-card-head strong{margin:.55rem 0 .2rem}.requirement-card-head small{color:var(--muted)}.requirement-card>p{color:var(--muted)}.requirement-check{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:rgba(255,255,255,.05);font-weight:900}.requirement-card.complete .requirement-check{color:var(--mint);background:rgba(37,230,177,.09)}.requirement-card.pending .requirement-check{color:#ffd186;background:rgba(245,166,35,.09)}.application-side .action-panel p{color:var(--muted);margin:0}.application-timeline{max-height:560px;overflow:auto}.application-side .panel{min-width:0}
@media(max-width:1250px){.application-summary-grid{grid-template-columns:repeat(2,1fr)}.application-layout{grid-template-columns:1fr}.application-side{grid-template-columns:repeat(2,minmax(0,1fr))}.application-side section:last-child{grid-column:1/-1}}
@media(max-width:900px){.filter-bar{grid-template-columns:1fr 1fr}.filter-bar .search-field{grid-column:1/-1}.wizard-progress{grid-template-columns:repeat(2,1fr)}.confirmation-grid,.application-details{grid-template-columns:repeat(2,1fr)}.application-side{grid-template-columns:1fr}.application-side section:last-child{grid-column:auto}}
@media(max-width:650px){.page-head{flex-direction:column}.page-head .btn,.page-actions{width:100%}.page-actions .btn{flex:1}.filter-bar,.wizard-progress,.confirmation-grid,.application-summary-grid,.application-details{grid-template-columns:1fr}.filter-actions,.filter-actions .btn{width:100%}.wizard-progress button{font-size:.82rem}.wizard-actions{display:grid;grid-template-columns:1fr}.wizard-actions .btn{width:100%}.wizard-actions span{display:none}.application-hero-card{align-items:flex-start;flex-direction:column}.application-hero-card>strong{text-align:left}.capacity-preview{grid-template-columns:1fr}.capacity-preview small{grid-column:auto}.requirement-card-head{flex-direction:column}.span-three{grid-column:auto}}

/* Módulo 8 — Evaluación y autorizaciones */
.evaluation-table{min-width:1260px}.evaluation-table td strong,.evaluation-table td small{display:block}.evaluation-table td small{color:var(--muted);margin-top:.2rem}.danger-counter{color:#ff9aaa;border-color:rgba(255,77,103,.25);background:rgba(255,77,103,.08)}.evaluation-summary-grid{display:grid;grid-template-columns:minmax(340px,1.45fr) repeat(3,minmax(170px,.55fr));gap:1rem;margin-bottom:1rem}.evaluation-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:linear-gradient(135deg,rgba(16,43,120,.82),rgba(36,107,253,.38),rgba(123,66,246,.25))}.evaluation-hero h3{font-size:1.45rem;margin:.7rem 0 .2rem}.evaluation-hero p{margin:0;color:#cbd8f0}.evaluation-hero>strong{font-family:"Space Grotesk",Inter,sans-serif;font-size:1.45rem;text-align:right}.metric-money{font-size:1.15rem!important}.evaluation-empty-panel{min-height:280px;display:grid;place-items:center}.evaluation-empty-panel .empty-state{max-width:620px;gap:1rem}.evaluation-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.65fr);gap:1rem;align-items:start}.evaluation-main,.evaluation-side{display:grid;gap:1rem}.evaluation-form{display:grid;gap:1.2rem}.capacity-result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.capacity-result-grid article{padding:1rem;border:1px solid rgba(22,217,255,.16);border-radius:16px;background:rgba(22,217,255,.045)}.capacity-result-grid span,.capacity-result-grid strong{display:block}.capacity-result-grid span{color:var(--muted);font-size:.75rem}.capacity-result-grid strong{margin-top:.3rem;font-size:1.2rem}.evaluation-check-list{display:grid;gap:.75rem}.evaluation-check{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(160px,.55fr) minmax(240px,1fr);gap:.8rem;align-items:center;padding:.9rem;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.025)}.evaluation-check>div strong,.evaluation-check>div small{display:block}.evaluation-check>div small{color:var(--muted);margin-top:.2rem}.evaluation-check label{display:grid;gap:.4rem;font-size:.78rem;font-weight:750;color:var(--muted)}.evaluation-check select,.evaluation-check input{width:100%;min-height:44px;border:1px solid var(--border);border-radius:12px;background:#0f172d;color:var(--white);padding:.65rem .75rem}.evaluation-check-list.readonly .evaluation-check{grid-template-columns:minmax(220px,1fr) auto}.evaluation-check-list.readonly .evaluation-check p{grid-column:1/-1;margin:.1rem 0 0;color:var(--muted)}.evaluation-details{grid-template-columns:repeat(3,1fr)}.approval-flow{display:grid;gap:.75rem}.approval-step{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:center;padding:1rem;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.022)}.approval-step.current{border-color:rgba(245,166,35,.3);background:rgba(245,166,35,.045)}.approval-step.approved{border-color:rgba(37,230,177,.22)}.approval-step.rejected{border-color:rgba(255,77,103,.24)}.approval-order{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.06);font-weight:900;color:var(--cyan)}.approval-step strong,.approval-step small{display:block}.approval-step strong{margin:.5rem 0 .18rem}.approval-step small{color:var(--muted)}.decision-history{display:grid;gap:.7rem;margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--border)}.decision-history h4{margin:0}.decision-history article{display:flex;align-items:flex-start;gap:.8rem;padding:.85rem;border-radius:15px;background:rgba(255,255,255,.025)}.decision-history strong,.decision-history small{display:block}.decision-history small{color:var(--muted);margin-top:.2rem}.decision-history p{margin:.35rem 0 0;color:#cbd8f0}.support-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.support-metrics article{padding:1rem;border-radius:16px;background:rgba(255,255,255,.025);border:1px solid var(--border)}.support-metrics span,.support-metrics strong{display:block}.support-metrics span{color:var(--muted);font-size:.75rem}.support-metrics strong{font-size:1.35rem;margin-top:.3rem}.evaluation-side .panel{min-width:0}.evaluation-side .action-panel p{color:var(--muted);margin:0}.approval-action textarea{min-height:84px}
@media(max-width:1250px){.evaluation-summary-grid{grid-template-columns:repeat(2,1fr)}.evaluation-layout{grid-template-columns:1fr}.evaluation-side{grid-template-columns:repeat(2,minmax(0,1fr))}.evaluation-side section:last-child{grid-column:1/-1}}
@media(max-width:900px){.evaluation-check{grid-template-columns:1fr 1fr}.evaluation-check>div{grid-column:1/-1}.evaluation-details,.support-metrics{grid-template-columns:repeat(2,1fr)}.evaluation-side{grid-template-columns:1fr}.evaluation-side section:last-child{grid-column:auto}}
@media(max-width:650px){.evaluation-summary-grid,.capacity-result-grid,.evaluation-details,.support-metrics{grid-template-columns:1fr}.evaluation-hero{align-items:flex-start;flex-direction:column}.evaluation-hero>strong{text-align:left}.evaluation-check{grid-template-columns:1fr}.evaluation-check>div{grid-column:auto}.decision-history article{flex-direction:column}.approval-step{align-items:flex-start}.evaluation-side .btn{width:100%}}
/* Módulo 9 · Contratos, pagarés y documentos */
.contract-eligible-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.contract-eligible-card{display:flex;justify-content:space-between;gap:20px;padding:20px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,rgba(22,217,255,.06),rgba(123,66,246,.06))}.contract-eligible-card h4{font-size:1.08rem;margin:10px 0 4px}.contract-eligible-card p,.contract-eligible-card small{margin:0;color:var(--muted)}.contract-eligible-card>div:last-child{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:8px;text-align:right}.contract-summary-grid{display:grid;grid-template-columns:minmax(340px,1.6fr) repeat(3,minmax(160px,1fr));gap:16px;margin-bottom:18px}.contract-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;background:radial-gradient(circle at top right,rgba(22,217,255,.15),transparent 42%),var(--surface)}.contract-hero h3{margin:12px 0 4px}.contract-hero p{margin:0;color:var(--muted)}.contract-hero>strong{font-size:clamp(1.4rem,2.8vw,2.3rem);text-align:right}.contract-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.72fr);gap:18px;align-items:start}.contract-main,.contract-side{display:grid;gap:18px}.contract-document-list{display:grid;gap:12px}.contract-document-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.025)}.contract-document-item>div{display:flex;align-items:center;gap:14px;min-width:0}.contract-document-item strong,.contract-document-item small,.contract-document-item code{display:block}.contract-document-item small{color:var(--muted);margin-top:4px}.contract-document-item code{font-size:.72rem;margin-top:7px;color:var(--cyan)}.contract-document-item.is-void{opacity:.52}.document-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--gradient);color:white;font-size:1.3rem;flex:0 0 auto}.signature-list{display:grid;gap:10px}.signature-list article{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.signature-list article:last-child{border-bottom:0}.signature-list strong,.signature-list small{display:block}.signature-list strong{margin:6px 0 2px}.signature-list small{color:var(--muted)}.action-panel{display:grid;gap:14px}.action-panel h3,.action-panel p{margin:0}.action-panel p{color:var(--muted)}.action-panel form{display:grid;gap:12px}.action-panel .btn{width:100%}.danger-panel{border-color:rgba(255,77,103,.28)}.contract-data dl{display:grid;gap:12px;margin:14px 0 0}.contract-data dl div{padding-bottom:11px;border-bottom:1px solid var(--line)}.contract-data dt{font-size:.78rem;color:var(--muted)}.contract-data dd{margin:5px 0 0;overflow-wrap:anywhere}.contract-data code{font-size:.7rem;color:var(--cyan)}.signature-form label{display:grid;gap:7px}.signature-pad{display:grid;gap:8px}.signature-pad canvas{width:100%;height:150px;background:white;border:1px solid rgba(157,170,197,.35);border-radius:15px;touch-action:none;cursor:crosshair}.template-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.42fr);gap:18px;align-items:start}.template-variable-panel{position:sticky;top:92px}.template-variable-panel>div{display:grid;gap:8px;margin-top:14px}.variable-chip{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);background:rgba(255,255,255,.025);color:var(--text);border-radius:13px;padding:10px 12px;text-align:left;cursor:pointer}.variable-chip:hover{border-color:rgba(22,217,255,.5)}.variable-chip code{color:var(--cyan);font-size:.75rem}.variable-chip small{color:var(--muted)}
.document-shell{min-height:100vh;background:#edf1f8;color:#101426;padding:34px 18px}.print-document{width:min(900px,100%);min-height:1100px;margin:0 auto;background:#fff;padding:64px 72px;box-shadow:0 24px 70px rgba(16,20,38,.18);font-family:Inter,Arial,sans-serif}.print-document-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:2px solid #182342}.print-document-head>div{display:flex;align-items:center;gap:12px}.print-document-head>div:last-child{display:block;text-align:right}.print-document-head strong,.print-document-head small,.print-document-head span{display:block}.print-document-head small{color:#5e6780;margin-top:4px}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:linear-gradient(135deg,#16d9ff,#246bfd 45%,#7b42f6);color:#fff;font-weight:800;font-size:1.3rem}.brand-mark.large{width:66px;height:66px;border-radius:22px;font-size:1.8rem;margin:0 auto 18px}.print-document h1{text-align:center;font-size:1.7rem;margin:44px 0 32px;color:#101426}.document-body{font-family:Georgia,'Times New Roman',serif;font-size:1rem;line-height:1.85;text-align:justify}.document-body p{margin:0 0 20px}.print-signatures{margin-top:70px}.print-signatures h2{font-size:1rem;text-transform:uppercase;letter-spacing:.08em}.print-signatures>div{display:grid;grid-template-columns:repeat(2,1fr);gap:36px;margin-top:24px}.print-signatures article{text-align:center;border-top:1px solid #222;padding-top:8px}.print-signatures img{display:block;width:180px;height:70px;object-fit:contain;margin:-78px auto 8px}.print-signatures strong,.print-signatures small{display:block}.print-signatures small{color:#687188;margin-top:4px}.print-verification{display:grid;grid-template-columns:150px 1fr;gap:24px;align-items:center;margin-top:70px;padding-top:24px;border-top:1px solid #cfd5e2}.print-verification p,.print-verification small{overflow-wrap:anywhere}.print-verification p{font-size:.77rem;color:#505b75}.print-verification small{display:block;font-size:.63rem;color:#727b90;margin-top:5px}.qr-box svg{display:block;width:145px;height:145px}.print-actions{display:flex;justify-content:center;gap:10px;margin:22px auto}.verification-page{display:grid;place-items:center;min-height:calc(100vh - 80px);padding:28px}.verification-card{width:min(650px,100%);text-align:center;padding:44px;border:1px solid var(--line);border-radius:30px;background:var(--surface);box-shadow:var(--shadow)}.verification-card h1{margin:10px 0}.verification-card>p{color:var(--muted)}.verification-card dl{display:grid;gap:12px;text-align:left;margin:26px 0}.verification-card dl div{padding:14px;border:1px solid var(--line);border-radius:14px}.verification-card dt{font-size:.75rem;color:var(--muted)}.verification-card dd{margin:6px 0 0;overflow-wrap:anywhere}.verification-card code{font-size:.72rem;color:var(--cyan)}.verification-success,.verification-warning{padding:14px;border-radius:14px}.verification-success{background:rgba(22,199,132,.12);color:#78f0bd}.verification-warning{background:rgba(255,77,103,.12);color:#ff8799}
@media(max-width:1200px){.contract-summary-grid{grid-template-columns:repeat(2,1fr)}.contract-layout{grid-template-columns:1fr}.contract-side{grid-template-columns:repeat(2,minmax(0,1fr))}.template-layout{grid-template-columns:1fr}.template-variable-panel{position:static}}
@media(max-width:720px){.contract-eligible-grid,.contract-summary-grid,.contract-side{grid-template-columns:1fr}.contract-eligible-card{flex-direction:column}.contract-eligible-card>div:last-child{align-items:flex-start;text-align:left}.contract-document-item,.signature-list article{align-items:flex-start;flex-direction:column}.contract-hero{align-items:flex-start;flex-direction:column}.contract-hero>strong{text-align:left}.print-document{padding:38px 24px;min-height:auto}.print-document-head{align-items:flex-start}.print-document-head>div:last-child{text-align:left}.print-signatures>div{grid-template-columns:1fr}.print-verification{grid-template-columns:1fr}.document-shell{padding:0}.print-actions{padding:0 14px}}
@media print{.document-shell{background:#fff;padding:0}.print-document{width:100%;min-height:0;box-shadow:none;padding:16mm 18mm}.print-actions{display:none}.print-document a{color:inherit;text-decoration:none}@page{size:A4;margin:0}}
.compact-metrics{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}.policy-banner{margin-bottom:18px;background:radial-gradient(circle at top right,rgba(22,217,255,.14),transparent 40%),var(--surface)}.policy-banner h3{margin:12px 0 4px}.policy-banner p{margin:0;color:var(--muted)}.disbursement-form{gap:18px}.metric-text{font-size:1.08rem!important;line-height:1.25}.disbursement-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.disbursement-detail-grid code{display:block;color:var(--cyan);font-size:.72rem;overflow-wrap:anywhere}.evidence-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.evidence-actions form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}.evidence-actions input{min-height:42px;max-width:240px;border:1px solid var(--border);border-radius:12px;background:#0f172d;color:var(--white);padding:.65rem .8rem;outline:none}.evidence-actions input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(22,217,255,.08)}.disbursement-detail-grid article{min-width:0}.disbursement-detail-grid article strong{overflow-wrap:anywhere}@media(max-width:720px){.compact-metrics,.disbursement-detail-grid{grid-template-columns:1fr}.evidence-actions,.evidence-actions form{width:100%}.evidence-actions input,.evidence-actions .btn{width:100%;max-width:none}}
/* Módulo 11 · Motor financiero y amortizaciones */
.loan-generator-form{gap:18px}.loan-terms-grid,.loan-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.loan-terms-grid article,.loan-detail-grid article{padding:16px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.025);min-width:0}.loan-terms-grid span,.loan-detail-grid span{display:block;color:var(--muted);font-size:.78rem}.loan-terms-grid strong,.loan-detail-grid strong{display:block;margin-top:6px;overflow-wrap:anywhere}.loan-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.schedule-preview,.loan-schedule-table{max-height:620px}.integrity-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--cyan);font-size:.78rem;overflow-wrap:anywhere}.table-note{margin:14px 18px 18px;color:var(--muted);font-size:.85rem}.confirmation-panel,.integrity-panel,.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:20px}.confirmation-panel h3,.confirmation-panel p,.integrity-panel h3,.integrity-panel p,.danger-zone h3,.danger-zone p{margin:0}.confirmation-panel p,.integrity-panel p,.danger-zone p{color:var(--muted);margin-top:6px}.integrity-panel{border-color:rgba(22,217,255,.22)}.integrity-panel.verified{background:linear-gradient(145deg,rgba(22,199,132,.07),rgba(22,217,255,.04)),var(--surface)}.integrity-panel.invalid{background:linear-gradient(145deg,rgba(255,77,103,.08),rgba(123,66,246,.04)),var(--surface);border-color:rgba(255,77,103,.28)}.integrity-panel p{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;overflow-wrap:anywhere}.danger-zone{border-color:rgba(255,77,103,.28)}.danger-zone .inline-action-form{min-width:min(100%,520px)}
@media(max-width:980px){.loan-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.loan-terms-grid,.loan-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.confirmation-panel,.integrity-panel,.danger-zone{align-items:flex-start;flex-direction:column}.danger-zone .inline-action-form{width:100%}}
@media(max-width:620px){.loan-summary-grid,.loan-terms-grid,.loan-detail-grid{grid-template-columns:1fr}.confirmation-panel .btn,.integrity-panel .btn,.danger-zone .btn{width:100%}}
/* Módulos 12–13 · Pagos, cajas, arqueos y conciliación */
.page-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cash-register-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cash-register-card{display:grid;gap:18px}.cash-register-card .btn{width:100%}.cash-register-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.cash-register-metrics div{padding:14px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.025)}.cash-register-metrics span,.cash-register-metrics strong{display:block}.cash-register-metrics span{font-size:.76rem;color:var(--muted)}.cash-register-metrics strong{font-size:1.2rem;margin-top:6px}.cash-side{display:grid;gap:18px;align-content:start}.cash-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.denomination-grid{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:12px}.denomination-grid label{display:grid;gap:6px}.denomination-grid span{font-size:.78rem;color:var(--muted)}.cash-actions-grid h3{margin:0}.cash-actions-grid .panel{align-content:start}.cash-actions-grid .btn{justify-self:start}.document-list{display:grid;gap:10px;margin-top:16px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.36fr);gap:18px;align-items:start}.inline-action-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.inline-action-form input[type=file]{max-width:100%}.btn-danger{background:rgba(255,77,103,.16);border-color:rgba(255,77,103,.38);color:#ff9aaa}.btn-danger:hover{background:rgba(255,77,103,.25)}
@media(max-width:1100px){.cash-register-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-layout{grid-template-columns:1fr}.denomination-grid{grid-template-columns:repeat(4,minmax(80px,1fr))}}
@media(max-width:720px){.cash-register-grid,.cash-actions-grid{grid-template-columns:1fr}.denomination-grid{grid-template-columns:repeat(2,minmax(80px,1fr))}.page-actions,.page-actions .btn,.inline-action-form,.inline-action-form input,.inline-action-form .btn{width:100%}}
/* Módulo 14 · Cobradores y asignaciones */
.collector-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.collector-filter-grid{grid-template-columns:1.35fr repeat(3,minmax(150px,.75fr)) auto}.collector-branch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.collector-branch-choice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px;border:1px solid var(--border);border-radius:17px;background:rgba(255,255,255,.025)}.collector-branch-choice>label{display:flex;align-items:center;gap:10px;margin:0}.collector-branch-choice strong,.collector-branch-choice small{display:block}.collector-branch-choice small{color:var(--muted);margin-top:3px}.primary-choice{font-size:.75rem;color:var(--muted);white-space:nowrap}.collector-detail-layout{grid-template-columns:minmax(0,1fr) minmax(310px,.4fr)}.collector-timeline{display:grid;gap:4px}.collector-timeline article{display:grid;grid-template-columns:14px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.collector-timeline article>span{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 14px rgba(22,217,255,.45)}.collector-timeline strong,.collector-timeline small{display:block}.collector-timeline strong{text-transform:capitalize}.collector-timeline small,.collector-timeline p{color:var(--muted)}.collector-timeline p{margin:6px 0 0}.collector-branch-compact{margin-top:16px}.collector-branch-compact>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.collector-branch-compact label{margin:0}.collector-loan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.collector-loan-card{display:grid;gap:18px;align-content:start}.collector-loan-card.is-overdue{border-color:rgba(255,77,103,.28)}.collector-loan-card>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.collector-loan-card h3,.collector-loan-card p{margin:0}.collector-loan-card p{color:var(--muted);margin-top:5px}.collector-loan-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.collector-loan-metrics div,.assignment-current{padding:13px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.025)}.collector-loan-metrics span,.collector-loan-metrics strong,.assignment-current span,.assignment-current strong,.assignment-current small{display:block}.collector-loan-metrics span,.assignment-current span,.assignment-current small{color:var(--muted);font-size:.76rem}.collector-loan-metrics strong,.assignment-current strong{margin-top:5px}.assignment-inline{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,1fr);gap:12px}.assignment-form{padding-top:16px;border-top:1px solid var(--border)}.assignment-remove{padding-top:14px;border-top:1px solid var(--border)}.collector-workload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px}.workload-card{display:grid;gap:16px}.workload-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.workload-card h3,.workload-card p{margin:0}.workload-card p{color:var(--muted);margin-top:4px}.capacity-number{font-size:1.6rem}.capacity-progress{display:block;width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08);appearance:none}.capacity-progress::-webkit-progress-bar{background:rgba(255,255,255,.08);border-radius:999px}.capacity-progress::-webkit-progress-value{background:linear-gradient(90deg,var(--cyan),var(--violet));border-radius:999px}.capacity-progress::-moz-progress-bar{background:linear-gradient(90deg,var(--cyan),var(--violet));border-radius:999px}.capacity-high .capacity-progress::-webkit-progress-value,.capacity-full .capacity-progress::-webkit-progress-value{background:linear-gradient(90deg,var(--amber),var(--red))}.capacity-high .capacity-progress::-moz-progress-bar,.capacity-full .capacity-progress::-moz-progress-bar{background:linear-gradient(90deg,var(--amber),var(--red))}.workload-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.workload-metrics div{padding:12px;border:1px solid var(--border);border-radius:14px}.workload-metrics span,.workload-metrics strong{display:block}.workload-metrics span{color:var(--muted);font-size:.75rem}.workload-metrics strong{margin-top:5px;overflow-wrap:anywhere}
@media(max-width:1200px){.collector-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.collector-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.collector-branch-grid,.collector-workload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.collector-detail-layout{grid-template-columns:1fr}}
@media(max-width:760px){.collector-summary-grid,.collector-filter-grid,.collector-branch-grid,.collector-loan-grid,.collector-workload-grid,.collector-loan-metrics,.assignment-inline,.workload-metrics{grid-template-columns:1fr}.collector-branch-choice,.collector-loan-card>header{align-items:flex-start;flex-direction:column}.collector-branch-choice{width:100%}.collector-branch-choice>label{width:100%}.collector-branch-compact>div{align-items:flex-start;flex-direction:column}.assignment-form .btn,.assignment-remove .btn{width:100%}}
/* Módulo 15 · Zonas, rutas y visitas */
.route-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.route-filter-grid{grid-template-columns:repeat(4,minmax(150px,1fr)) auto}.route-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.route-card{display:grid;gap:18px;align-content:start}.route-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.route-card h3,.route-card p{margin:0}.route-card p{color:var(--muted);margin-top:4px}.route-progress{display:grid;gap:8px}.route-progress>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.route-progress span{color:var(--muted);font-size:.78rem}.route-progress progress,.metric-card progress{display:block;width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08);appearance:none}.route-progress progress::-webkit-progress-bar,.metric-card progress::-webkit-progress-bar{background:rgba(255,255,255,.08)}.route-progress progress::-webkit-progress-value,.metric-card progress::-webkit-progress-value{background:linear-gradient(90deg,var(--cyan),var(--violet));border-radius:999px}.route-progress progress::-moz-progress-bar,.metric-card progress::-moz-progress-bar{background:linear-gradient(90deg,var(--cyan),var(--violet));border-radius:999px}.route-card-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.route-card-stats span{padding:11px;border:1px solid var(--border);border-radius:14px;color:var(--muted);font-size:.75rem}.route-card-stats strong{display:block;color:var(--white);font-size:.9rem;margin-bottom:3px;overflow-wrap:anywhere}.metric-text{font-size:1.25rem!important}.route-detail-layout{grid-template-columns:minmax(0,1fr) minmax(300px,.38fr)}.route-side{position:sticky;top:116px}.route-stop-list{display:grid;gap:14px}.route-stop{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;padding:16px;border:1px solid var(--border);border-radius:20px;background:rgba(255,255,255,.025)}.route-stop-muted{opacity:.62}.route-stop-sequence label{display:grid;gap:6px}.route-stop-sequence span{font-size:.72rem;color:var(--muted)}.route-stop-sequence input{width:72px;min-height:44px;border:1px solid var(--border);border-radius:12px;background:#0f172d;color:var(--white);padding:.6rem}.route-stop-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.route-stop-title strong,.route-stop-title small{display:block}.route-stop-title small,.route-stop-main>p{color:var(--muted)}.route-stop-main>p{margin:8px 0}.route-stop-meta,.visit-meta{display:flex;flex-wrap:wrap;gap:8px}.route-stop-meta span,.visit-meta span{padding:6px 9px;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.025);font-size:.72rem;color:var(--muted)}.route-instructions{padding:10px 12px;border-left:3px solid var(--cyan);background:rgba(22,217,255,.05);border-radius:0 12px 12px 0}.route-stop-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.action-disclosure{position:relative}.action-disclosure>summary{list-style:none}.action-disclosure>summary::-webkit-details-marker{display:none}.action-disclosure[open]{width:100%}.action-disclosure[open]>summary{margin-bottom:10px}.visit-form,.compact-form{padding:14px;border:1px solid var(--border);border-radius:16px;background:#0d1428}.visit-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.visit-list{display:grid;gap:12px}.visit-card{padding:16px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.025)}.visit-card>div:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.visit-card strong,.visit-card small{display:block}.visit-card small{color:var(--muted)}.visit-card p{color:#dce5f7}.inline-upload{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px;border:1px solid var(--border);border-radius:14px}.day-choice-grid{grid-template-columns:repeat(7,minmax(90px,1fr))}.route-filter-grid .filter-actions{align-self:end}.route-card-grid>.empty-state{grid-column:1/-1}
@media(max-width:1250px){.route-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-detail-layout{grid-template-columns:1fr}.route-side{position:static}.day-choice-grid{grid-template-columns:repeat(4,minmax(90px,1fr))}}
@media(max-width:760px){.route-summary-grid,.route-card-grid,.route-filter-grid,.route-card-stats,.visit-form .form-grid,.day-choice-grid{grid-template-columns:1fr}.route-stop{grid-template-columns:1fr}.route-stop-sequence input{width:100%}.route-stop-title,.visit-card>div:first-child{align-items:flex-start;flex-direction:column}.route-stop-actions,.route-stop-actions .btn,.inline-upload,.inline-upload input,.inline-upload .btn{width:100%}.action-disclosure{width:100%}.route-side .btn{width:100%}}
/* Módulo 16 · Aplicación móvil del cobrador */
.collector-mobile-body{min-width:320px;margin:0;background:radial-gradient(circle at 12% -10%,rgba(22,217,255,.13),transparent 32%),radial-gradient(circle at 100% 22%,rgba(123,66,246,.12),transparent 30%),var(--bg);color:var(--white);font-family:Inter,Arial,sans-serif}.collector-mobile-shell{width:min(100%,720px);min-height:100vh;margin:0 auto;background:rgba(6,9,23,.92);box-shadow:0 0 70px rgba(0,0,0,.28)}.collector-mobile-topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:48px minmax(0,1fr) 44px;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;border-bottom:1px solid var(--border);background:rgba(6,9,23,.9);backdrop-filter:blur(18px)}.collector-mobile-brand{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:linear-gradient(145deg,rgba(22,217,255,.14),rgba(123,66,246,.12));border:1px solid rgba(255,255,255,.08)}.collector-mobile-brand img{width:38px;height:38px;object-fit:contain}.collector-mobile-topbar small,.collector-mobile-topbar strong{display:block}.collector-mobile-topbar small{color:var(--muted);font-size:.7rem}.collector-mobile-topbar strong{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-icon-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.035);color:var(--white);font-size:1.1rem}.collector-mobile-content{display:grid;gap:18px;padding:18px 16px calc(100px + env(safe-area-inset-bottom))}.collector-mobile-nav{position:fixed;z-index:35;left:50%;bottom:0;transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,1fr);width:min(100%,720px);padding:9px 10px calc(9px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:rgba(6,9,23,.94);backdrop-filter:blur(20px)}.collector-mobile-nav a{display:grid;place-items:center;gap:3px;min-height:58px;border-radius:16px;color:var(--muted);text-decoration:none}.collector-mobile-nav a span{font-size:1.15rem}.collector-mobile-nav a small{font-size:.69rem}.collector-mobile-nav a.active{color:var(--white);background:linear-gradient(135deg,rgba(22,217,255,.14),rgba(123,66,246,.14));box-shadow:inset 0 0 0 1px rgba(22,217,255,.12)}.mobile-greeting,.mobile-route-summary,.mobile-customer-card{display:flex;align-items:center;justify-content:space-between;gap:16px}.mobile-greeting h2,.mobile-route-summary h2,.mobile-customer-card h2,.mobile-history-hero h2{margin:5px 0 4px;font-size:clamp(1.45rem,6vw,2rem)}.mobile-greeting p,.mobile-route-summary p,.mobile-customer-card p,.mobile-history-hero p{margin:0;color:var(--muted)}.availability-dot{width:14px;height:14px;border-radius:50%;background:var(--red);box-shadow:0 0 18px rgba(255,77,103,.55)}.availability-dot.online{background:var(--green);box-shadow:0 0 18px rgba(22,199,132,.55)}.mobile-metric-grid{display:grid;grid-template-columns:1.3fr repeat(2,.7fr);gap:10px}.mobile-metric-grid article,.mobile-balance-card>div{padding:15px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.03)}.mobile-metric-grid span,.mobile-metric-grid strong,.mobile-balance-card span,.mobile-balance-card strong{display:block}.mobile-metric-grid span,.mobile-balance-card span{color:var(--muted);font-size:.73rem}.mobile-metric-grid strong,.mobile-balance-card strong{margin-top:6px;font-size:1.05rem}.mobile-route-hero,.mobile-section,.mobile-contact-card,.mobile-action-panel,.mobile-receipt-card,.mobile-empty-card,.mobile-history-hero{padding:18px;border:1px solid var(--border);border-radius:24px;background:linear-gradient(145deg,rgba(25,36,66,.78),rgba(12,18,36,.78));box-shadow:0 16px 45px rgba(0,0,0,.14)}.mobile-route-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mobile-route-head h3{margin:9px 0 4px}.mobile-route-head p{margin:0;color:var(--muted)}.mobile-route-head>strong{font-size:1.55rem}.mobile-route-hero progress,.mobile-progress progress{display:block;width:100%;height:9px;margin:16px 0;border:0;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08);appearance:none}.mobile-route-hero progress::-webkit-progress-bar,.mobile-progress progress::-webkit-progress-bar{background:rgba(255,255,255,.08)}.mobile-route-hero progress::-webkit-progress-value,.mobile-progress progress::-webkit-progress-value{background:linear-gradient(90deg,var(--cyan),var(--violet));border-radius:999px}.mobile-route-hero progress::-moz-progress-bar,.mobile-progress progress::-moz-progress-bar{background:linear-gradient(90deg,var(--cyan),var(--violet));border-radius:999px}.mobile-route-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.mobile-route-stats span{padding:10px;border-radius:14px;background:rgba(255,255,255,.035);color:var(--muted);font-size:.68rem}.mobile-route-stats strong{display:block;margin-bottom:4px;color:var(--white);font-size:.83rem;overflow-wrap:anywhere}.btn-block{width:100%;justify-content:center}.mobile-section{display:grid;gap:14px}.mobile-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mobile-section-head h3,.mobile-section-head p{margin:0}.mobile-section-head p{margin-top:4px;color:var(--muted);font-size:.78rem}.mobile-section-head>a{color:var(--cyan);font-size:.78rem;text-decoration:none}.mobile-payment-list,.mobile-installment-list,.mobile-visit-list,.mobile-device-list,.mobile-allocation-list{display:grid;gap:10px}.mobile-payment-list>a,.mobile-installment-list>article,.mobile-device-list>article,.mobile-allocation-list>article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.025);color:var(--white);text-decoration:none}.mobile-payment-list strong,.mobile-payment-list small,.mobile-installment-list strong,.mobile-installment-list small,.mobile-device-list strong,.mobile-device-list small,.mobile-allocation-list strong,.mobile-allocation-list small{display:block}.mobile-payment-list small,.mobile-installment-list small,.mobile-device-list small,.mobile-allocation-list small{margin-top:3px;color:var(--muted);font-size:.69rem}.mobile-payment-list b,.mobile-installment-list b{white-space:nowrap}.mobile-list-empty{padding:18px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:16px}.mobile-empty-card{text-align:center}.mobile-empty-card>span{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 12px;border-radius:18px;background:rgba(22,217,255,.1);color:var(--cyan);font-size:1.5rem}.mobile-empty-card h3,.mobile-empty-card p{margin:0}.mobile-empty-card p{margin-top:6px;color:var(--muted)}.mobile-device-form,.mobile-stack-form{display:grid;gap:13px}.mobile-device-list article{align-items:flex-start;flex-wrap:wrap}.mobile-device-list form{margin-left:auto}.mobile-device-list .text-danger{border:0;background:transparent;color:var(--red);padding:4px}.mobile-route-summary>strong{display:grid;place-items:center;min-width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,rgba(22,217,255,.16),rgba(123,66,246,.16));font-size:1.15rem}.mobile-progress>div{display:flex;align-items:center;justify-content:space-between}.mobile-progress span{color:var(--muted)}.mobile-stop-list{display:grid;gap:12px}.mobile-stop-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--border);border-radius:22px;background:rgba(18,26,49,.82)}.mobile-stop-card.status-visited{border-color:rgba(22,199,132,.28)}.mobile-stop-card.status-no_contact{border-color:rgba(255,77,103,.25)}.mobile-stop-number{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,rgba(22,217,255,.18),rgba(123,66,246,.16));font-weight:800}.mobile-stop-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mobile-stop-title strong,.mobile-stop-title small{display:block}.mobile-stop-title small,.mobile-stop-content>p{color:var(--muted)}.mobile-stop-content>p{margin:9px 0;font-size:.8rem;line-height:1.45}.mobile-stop-money{display:flex;flex-wrap:wrap;gap:7px}.mobile-stop-money span{padding:7px 9px;border:1px solid var(--border);border-radius:12px;color:var(--muted);font-size:.68rem}.mobile-stop-money b{display:block;margin-top:3px;color:var(--white)}.danger-text,.danger-text b{color:var(--red)!important}.mobile-stop-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.mobile-stop-actions .btn{min-height:42px;padding:.65rem .85rem;font-size:.78rem}.mobile-customer-card{justify-content:flex-start}.mobile-customer-avatar{display:grid;place-items:center;flex:0 0 auto;width:58px;height:58px;border-radius:20px;background:var(--gradient);font-size:1.35rem;font-weight:800}.mobile-balance-card{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}.mobile-contact-card p{margin:0;color:#dce5f7;line-height:1.5}.mobile-contact-card>div{display:flex;gap:8px;margin-top:12px}.mobile-action-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:5px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.025)}.mobile-action-tabs button{min-height:44px;border:0;border-radius:14px;background:transparent;color:var(--muted);font-weight:700}.mobile-action-tabs button.active{background:linear-gradient(135deg,rgba(22,217,255,.16),rgba(123,66,246,.16));color:var(--white)}.mobile-action-panel{display:none}.mobile-action-panel.active{display:block}.mobile-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mobile-location-note{display:block;margin-top:-6px;color:var(--muted);text-align:center}.mobile-signature{background:#fff;border-radius:18px;overflow:hidden}.mobile-signature canvas{display:block;width:100%;height:150px;touch-action:none}.mobile-signature .btn{margin:0 10px 10px}.mobile-visit-list article{padding:13px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.025)}.mobile-visit-list article>div{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mobile-visit-list strong,.mobile-visit-list small{display:block}.mobile-visit-list small{color:var(--muted);font-size:.68rem}.mobile-visit-list p{margin:8px 0 0;color:#dce5f7;font-size:.8rem}.mobile-receipt-card{text-align:center}.mobile-receipt-check{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 14px;border-radius:22px;background:rgba(22,199,132,.13);color:var(--green);font-size:2rem}.mobile-receipt-card h2{margin:6px 0;font-size:2rem}.mobile-receipt-card>p{margin:0;color:var(--muted)}.mobile-receipt-card>strong{display:block;margin-top:8px}.mobile-receipt-data{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}.mobile-receipt-data div{padding:11px;border:1px solid var(--border);border-radius:14px;text-align:left}.mobile-receipt-data span,.mobile-receipt-data b{display:block}.mobile-receipt-data span{color:var(--muted);font-size:.67rem}.mobile-receipt-data b{margin-top:4px;font-size:.78rem}.mobile-receipt-qr{display:grid;place-items:center;width:190px;min-height:190px;margin:0 auto 10px;padding:10px;border-radius:18px;background:#fff}.mobile-receipt-qr svg{width:100%;height:auto}.mobile-allocation-list article>div:last-child{display:grid;gap:3px;text-align:right;font-size:.7rem;color:var(--muted)}.mobile-allocation-list article>div:last-child b{color:var(--white);font-size:.82rem}.mobile-receipt-actions{display:grid;gap:10px}.history-list{max-height:none}.mobile-history-hero{background:linear-gradient(145deg,rgba(22,217,255,.09),rgba(123,66,246,.12))}.status-badge.muted{color:var(--muted)}
@media(max-width:480px){.collector-mobile-content{padding-left:12px;padding-right:12px}.mobile-metric-grid{grid-template-columns:1.2fr .8fr}.mobile-metric-grid article:last-child{grid-column:1/-1}.mobile-route-stats{grid-template-columns:1fr}.mobile-stop-card{grid-template-columns:38px minmax(0,1fr)}.mobile-stop-number{width:38px;height:38px}.mobile-stop-title{flex-direction:column}.mobile-stop-actions .btn{flex:1 1 calc(50% - 8px)}.mobile-form-grid,.mobile-balance-card,.mobile-receipt-data{grid-template-columns:1fr}.mobile-contact-card>div{flex-direction:column}.mobile-payment-list>a,.mobile-installment-list>article,.mobile-allocation-list>article{align-items:flex-start}.mobile-payment-list b,.mobile-installment-list b{font-size:.78rem}.collector-mobile-topbar{grid-template-columns:44px minmax(0,1fr) 40px;padding-left:12px;padding-right:12px}.collector-mobile-brand{width:42px;height:42px}.mobile-icon-button{width:38px;height:38px}}
@media print{.collector-mobile-topbar,.collector-mobile-nav,.mobile-receipt-actions,.mobile-section:not(:has(.mobile-allocation-list)){display:none!important}.collector-mobile-body,.collector-mobile-shell{background:#fff;color:#111;box-shadow:none}.collector-mobile-content{padding:0}.mobile-receipt-card,.mobile-section{border:0;box-shadow:none;background:#fff;color:#111}.mobile-receipt-card p,.mobile-receipt-data span,.mobile-allocation-list small,.mobile-allocation-list span{color:#555}.mobile-receipt-data b,.mobile-allocation-list b{color:#111}}

/* Módulo 17 · trabajo sin conexión */
.collector-mobile-nav{grid-template-columns:repeat(5,1fr)}
.collector-mobile-nav a small{font-size:.62rem}
.offline-heading{align-items:flex-start}.offline-network-pill{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:8px 11px;border:1px solid rgba(255,77,103,.25);border-radius:999px;background:rgba(255,77,103,.08);color:var(--red);font-size:.72rem;font-weight:800}.offline-network-pill.online{border-color:rgba(22,199,132,.28);background:rgba(22,199,132,.1);color:var(--green)}
.offline-control-card,.offline-editor{padding:18px;border:1px solid var(--border);border-radius:24px;background:linear-gradient(145deg,rgba(25,36,66,.86),rgba(12,18,36,.9));box-shadow:0 18px 50px rgba(0,0,0,.18)}
.offline-control-top,.offline-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.offline-control-top span,.offline-control-top strong,.offline-control-top small{display:block}.offline-control-top>div>span{color:var(--cyan);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.offline-control-top strong{margin-top:7px;font-size:1.15rem}.offline-control-top small{margin-top:4px;color:var(--muted);line-height:1.45}.offline-lock{display:grid!important;place-items:center;flex:0 0 auto;width:48px;height:48px;border-radius:17px;background:linear-gradient(135deg,rgba(22,217,255,.18),rgba(123,66,246,.2));color:var(--cyan);font-size:1.25rem}.offline-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}.offline-actions .btn{flex:1 1 140px}.offline-meter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:16px}.offline-meter-grid article{padding:13px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.028)}.offline-meter-grid span,.offline-meter-grid strong{display:block}.offline-meter-grid span{color:var(--muted);font-size:.68rem}.offline-meter-grid strong{margin-top:5px;font-size:1.1rem}.offline-message{margin-top:14px;padding:12px 13px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.035);font-size:.8rem;line-height:1.45}.offline-message.success{border-color:rgba(22,199,132,.3);background:rgba(22,199,132,.08);color:#b8f3db}.offline-message.error{border-color:rgba(255,77,103,.28);background:rgba(255,77,103,.08);color:#ffd0d8}
.offline-route-section{min-height:180px}.offline-stop-card{border-color:rgba(22,217,255,.12)}.offline-operation-note{display:block;width:100%;padding:10px 11px;border:1px solid var(--border);border-radius:13px;color:var(--muted);font-size:.74rem}.offline-operation-note.pending{border-color:rgba(245,166,35,.3);color:#ffd794}.offline-operation-note.conflict,.offline-operation-note.rejected{border-color:rgba(255,77,103,.3);color:#ffc0cb}.offline-editor[hidden]{display:none}.offline-editor{position:relative;z-index:4}.offline-editor-head h3{margin:5px 0 0}.offline-editor .mobile-stack-form{margin-top:16px}.offline-editor label{display:grid;gap:7px;color:#dce5f7;font-size:.78rem}.offline-editor input,.offline-editor select,.offline-editor textarea{width:100%;min-height:46px;padding:11px 12px;border:1px solid var(--border);border-radius:14px;background:rgba(6,9,23,.62);color:var(--white);font:inherit}.offline-editor textarea{min-height:92px;resize:vertical}.offline-editor input[type=file]{padding:10px}.offline-editor [hidden]{display:none!important}.offline-editor .mobile-form-grid{align-items:end}.offline-editor .mobile-location-note{align-self:center;margin:0}.offline-editor-head .mobile-icon-button{flex:0 0 auto}.offline-editor .mobile-signature{border:1px solid rgba(255,255,255,.15)}
@media(max-width:480px){.collector-mobile-nav a small{font-size:.56rem}.collector-mobile-nav a{min-height:54px}.offline-meter-grid{grid-template-columns:1fr}.offline-actions .btn{flex-basis:100%}.offline-heading{display:grid}.offline-network-pill{justify-self:start}.offline-editor{padding:15px}.offline-editor .mobile-form-grid{grid-template-columns:1fr}}

/* Módulo 21 · portal del cliente */
.portal-auth-body{min-height:100vh;background:radial-gradient(circle at 12% 18%,rgba(22,217,255,.16),transparent 28%),radial-gradient(circle at 82% 78%,rgba(123,66,246,.2),transparent 34%),var(--bg)}
.portal-auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)}
.portal-auth-brand{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,7vw,7rem);position:relative;overflow:hidden}
.portal-auth-brand:after{content:"";position:absolute;inset:auto -140px -180px auto;width:520px;height:520px;border-radius:50%;border:1px solid rgba(255,255,255,.08);box-shadow:0 0 0 70px rgba(255,255,255,.018),0 0 0 140px rgba(255,255,255,.012)}
.portal-auth-brand img{width:250px;height:110px;object-fit:contain;object-position:left center;margin-bottom:3rem;position:relative;z-index:1}
.portal-auth-brand h1{font-family:"Space Grotesk",Inter,sans-serif;font-size:clamp(3rem,6vw,6rem);line-height:.98;letter-spacing:-.055em;max-width:780px;margin:.8rem 0 1.2rem;position:relative;z-index:1}
.portal-auth-brand p{max-width:650px;color:var(--muted);font-size:1.1rem;position:relative;z-index:1}
.portal-auth-card{display:grid;align-content:center;padding:clamp(1.25rem,5vw,5rem);background:rgba(10,15,32,.9);border-left:1px solid var(--border)}
.portal-auth-card>form,.portal-login-head,.portal-help,.portal-auth-card>.alert{width:min(100%,520px);margin-left:auto;margin-right:auto}
.portal-login-head h2{font-size:2.2rem;margin:.4rem 0}.portal-login-head p,.portal-help{color:var(--muted)}.portal-help{margin-top:1.2rem;font-size:.86rem}
.portal-body{min-height:100vh;background:radial-gradient(circle at 80% -10%,rgba(36,107,253,.12),transparent 30%),var(--bg2)}
.portal-topbar{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:0 clamp(1rem,4vw,4rem);position:sticky;top:0;z-index:40;border-bottom:1px solid var(--border);background:rgba(6,9,23,.9);backdrop-filter:blur(18px)}
.portal-brand{display:flex;align-items:center;gap:.85rem;font-weight:800}.portal-brand img{width:145px;height:60px;object-fit:contain;object-position:left center}.portal-brand span{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#dce5f7}
.portal-nav{display:flex;align-items:center;gap:.35rem}.portal-nav>a,.portal-nav form button{min-height:42px;padding:.65rem .85rem;border-radius:12px;border:0;background:transparent;color:var(--muted);font-weight:700;cursor:pointer}.portal-nav>a:hover,.portal-nav>a.active,.portal-nav form button:hover{background:rgba(255,255,255,.06);color:var(--white)}.portal-nav form{margin:0}.portal-menu-button{display:none}
.portal-content{width:min(100%,1320px);margin:0 auto;padding:clamp(1.2rem,4vw,3.2rem)}.portal-heading{margin-bottom:1.2rem}.portal-heading h1{margin:.25rem 0;font-size:clamp(1.9rem,4vw,3rem)}
.portal-hero{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:clamp(1.5rem,4vw,3rem);border-radius:30px;background:linear-gradient(120deg,#102b78,#246bfd 50%,#7b42f6);box-shadow:0 24px 60px rgba(36,107,253,.2);margin-bottom:1.25rem}.portal-hero h2{font-size:clamp(2rem,4vw,3.6rem);margin:.3rem 0}.portal-hero p{margin:0;color:#dce6ff}
.portal-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.25rem}.portal-metrics article{padding:1.4rem;border-radius:22px;background:var(--surface);border:1px solid var(--border)}.portal-metrics span,.portal-metrics strong,.portal-metrics small{display:block}.portal-metrics span{color:var(--muted);font-size:.8rem}.portal-metrics strong{font-size:clamp(1.4rem,3vw,2.2rem);margin:.35rem 0}.portal-metrics small{color:#bdc9df}.portal-metrics a{color:var(--cyan)}
.portal-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.portal-loan-card{padding:1.25rem;border:1px solid var(--border);border-radius:22px;background:linear-gradient(145deg,rgba(25,36,66,.72),rgba(12,18,36,.85))}.portal-loan-card>div:first-child{display:flex;justify-content:space-between;gap:.8rem;align-items:center}.portal-loan-card>div:first-child small{color:var(--muted)}.portal-loan-card h3{font-size:1.25rem}.portal-loan-card dl{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0}.portal-loan-card dl div{padding:.8rem;border-radius:14px;background:rgba(255,255,255,.035)}.portal-loan-card dt{color:var(--muted);font-size:.72rem}.portal-loan-card dd{margin:.2rem 0 0;font-weight:800}
.portal-loan-summary{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.7rem;border-radius:28px;background:linear-gradient(135deg,rgba(16,43,120,.9),rgba(123,66,246,.72));margin-bottom:1.2rem}.portal-loan-summary h2{font-size:2rem;margin:.25rem 0}.portal-loan-summary p{margin:0;color:#d7e2fa}.portal-loan-summary>div:last-child{text-align:right}.portal-loan-summary>div:last-child span,.portal-loan-summary>div:last-child strong,.portal-loan-summary>div:last-child small{display:block}.portal-loan-summary>div:last-child span,.portal-loan-summary>div:last-child small{color:#d7e2fa}.portal-loan-summary>div:last-child strong{font-size:2.1rem;margin:.2rem 0}
.portal-payment-panel{border-color:rgba(22,217,255,.24)}.portal-link-list,.portal-document-list,.portal-ticket-list,.portal-admin-link-list{display:grid;gap:.8rem}.portal-payment-link,.portal-document-list article,.portal-admin-link-list article{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.035)}.portal-payment-link:hover{border-color:rgba(22,217,255,.4);background:rgba(22,217,255,.06)}.portal-payment-link strong,.portal-payment-link small,.portal-document-list strong,.portal-document-list small,.portal-admin-link-list strong,.portal-admin-link-list small{display:block}.portal-payment-link small,.portal-document-list small,.portal-admin-link-list small{color:var(--muted);margin-top:.2rem}.portal-payment-link b{color:var(--cyan);white-space:nowrap}.portal-document-icon{display:grid;place-items:center;flex:0 0 auto;width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,rgba(22,217,255,.14),rgba(123,66,246,.18));color:var(--cyan);font-size:1.3rem}.portal-document-list article>div{flex:1;min-width:0}
.portal-two-column,.admin-grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.portal-ticket-list>article{padding:1rem;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.025)}.portal-ticket-list>article>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:1rem}.portal-ticket-list h4{margin:.8rem 0 .4rem}.portal-ticket-list p{color:#dce5f7}.portal-response{margin-top:1rem;padding:1rem;border-left:3px solid var(--cyan);border-radius:0 14px 14px 0;background:rgba(22,217,255,.06)}.portal-response p{margin:.4rem 0}.portal-response small{color:var(--muted)}.admin-ticket-list>article{padding:1.2rem}.admin-ticket-list form{margin-top:1rem}
.portal-agreement-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1rem}.portal-agreement-summary div{padding:.9rem;border-radius:15px;background:rgba(255,255,255,.035)}.portal-agreement-summary span,.portal-agreement-summary strong{display:block}.portal-agreement-summary span{color:var(--muted);font-size:.75rem}.portal-agreement-summary strong{margin-top:.25rem}
.statement-sheet,.document-sheet{background:#fff;color:#172036;border-radius:24px;padding:clamp(1.2rem,4vw,3rem);box-shadow:0 24px 70px rgba(0,0,0,.25)}.statement-sheet header,.document-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-bottom:1.2rem;border-bottom:1px solid #dfe5ef}.statement-sheet header img,.document-header img{width:180px;height:75px;object-fit:contain;object-position:left center}.statement-sheet header>div,.document-header>div{text-align:right}.statement-sheet header span,.document-header span{color:#65718a}.statement-sheet h2,.document-header h1{margin:.2rem 0;color:#10172a}.statement-customer{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0}.statement-customer div{padding:1rem;border-radius:16px;background:#f2f5fb}.statement-customer span,.statement-customer strong,.statement-customer small{display:block}.statement-customer span,.statement-customer small{color:#65718a}.statement-sheet table{color:#172036}.statement-sheet th{color:#65718a}.statement-sheet td,.statement-sheet th{border-color:#dfe5ef}.statement-sheet footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #dfe5ef;color:#65718a;font-size:.82rem}.document-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.5rem 0}.document-meta div{padding:1rem;background:#f2f5fb;border-radius:16px}.document-meta span,.document-meta strong{display:block}.document-meta span{color:#65718a;font-size:.76rem}.document-total{padding:1.5rem;text-align:center;border-radius:20px;background:linear-gradient(135deg,#102b78,#7b42f6);color:#fff}.document-total span,.document-total strong{display:block}.document-total strong{font-size:2.5rem}.document-note{color:#65718a;margin-top:1.2rem}.document-actions{display:flex;justify-content:flex-end;margin-top:1rem}.rendered-document{line-height:1.65}.rendered-document table{width:100%;border-collapse:collapse}.rendered-document td,.rendered-document th{padding:.6rem;border:1px solid #dfe5ef}
.portal-admin-link-list article{align-items:flex-start}.portal-admin-link-list article>div{flex:1}.inline-action-form{display:flex;align-items:center;gap:.5rem}.inline-action-form input{min-height:40px;min-width:190px}.filter-inline{display:flex;gap:.6rem;align-items:center}.filter-inline input{min-height:44px;border:1px solid var(--border);border-radius:13px;background:#0f172d;color:var(--white);padding:.7rem .85rem}.button-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.page-actions{display:flex;justify-content:flex-end;gap:.65rem;flex-wrap:wrap;margin-bottom:1rem}
.portal-body textarea,.portal-body select,.portal-auth-body textarea,.portal-auth-body select{font:inherit}.portal-body .stack-form textarea,.portal-body .stack-form select,.portal-auth-body .stack-form textarea,.portal-auth-body .stack-form select{width:100%;border:1px solid var(--border);border-radius:14px;background:#0f172d;color:var(--white);padding:.8rem .95rem;outline:none}.portal-body .stack-form textarea{resize:vertical}.alert.warning{background:rgba(245,166,35,.1);border-color:rgba(245,166,35,.3);color:#ffe1a8}.alert a{text-decoration:underline}.no-print{}
@media(max-width:1024px){.portal-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-auth-shell{grid-template-columns:1fr}.portal-auth-brand{min-height:440px}.portal-auth-card{border-left:0;border-top:1px solid var(--border);min-height:560px}.portal-brand span{display:none}.portal-menu-button{display:grid}.portal-nav{display:none;position:absolute;top:75px;right:1rem;left:1rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:#0a0f20;box-shadow:var(--shadow);align-items:stretch;flex-direction:column}.portal-nav.open{display:flex}.portal-nav>a,.portal-nav form button{width:100%;text-align:left}.portal-nav form{width:100%}.portal-two-column,.admin-grid-two{grid-template-columns:1fr}.portal-agreement-summary{grid-template-columns:1fr}}
@media(max-width:700px){.portal-auth-brand{padding:2rem 1.25rem;min-height:380px}.portal-auth-brand img{width:190px;height:80px;margin-bottom:1.5rem}.portal-auth-brand h1{font-size:2.8rem}.portal-auth-card{padding:2rem 1.1rem}.portal-topbar{min-height:74px}.portal-brand img{width:125px;height:52px}.portal-content{padding:1rem}.portal-hero,.portal-loan-summary{align-items:flex-start;flex-direction:column}.portal-loan-summary>div:last-child{text-align:left}.portal-metrics,.portal-card-grid,.statement-customer,.document-meta{grid-template-columns:1fr}.portal-card-grid{gap:.75rem}.portal-payment-link,.portal-document-list article{align-items:flex-start;flex-wrap:wrap}.portal-document-list article .btn{width:100%}.filter-inline{width:100%;flex-direction:column;align-items:stretch}.panel-head{align-items:flex-start;flex-direction:column}.inline-action-form{align-items:stretch;flex-direction:column}.inline-action-form input{min-width:0}.statement-sheet,.document-sheet{border-radius:18px;padding:1rem}.statement-sheet header,.document-header{align-items:flex-start;flex-direction:column}.statement-sheet header>div,.document-header>div{text-align:left}.portal-agreement-summary{grid-template-columns:1fr}}
@media print{.no-print,.portal-topbar,.portal-heading,.portal-content>.alert{display:none!important}.portal-body{background:#fff}.portal-content{width:100%;max-width:none;padding:0}.statement-sheet,.document-sheet{box-shadow:none;border-radius:0;padding:0}.statement-sheet .table-wrap{overflow:visible}.statement-sheet table{font-size:10pt}}
/* Módulo 22: comunicaciones */
textarea{font:inherit}.settings-grid textarea,.stack-form textarea{width:100%;border:1px solid var(--border);border-radius:14px;background:#0f172d;color:var(--white);padding:.85rem .95rem;outline:none;resize:vertical}.settings-grid textarea:focus,.stack-form textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(22,217,255,.08)}.field-wide{grid-column:1/-1}.panel-actions{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}.panel-actions form,.table-actions form,.compact-form{margin:0}.provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.subpanel{background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:20px;padding:1.1rem}.subpanel h4{margin:.25rem 0;font-size:1.1rem}.template-variables{padding:1rem;border:1px solid rgba(22,217,255,.18);background:rgba(22,217,255,.05);border-radius:16px}.template-variables p{margin:.45rem 0 0;color:var(--muted);overflow-wrap:anywhere}.message-preview{white-space:normal;overflow-wrap:anywhere;background:#0b1225;border:1px solid var(--border);border-radius:18px;padding:1.2rem;margin:1rem 0;color:#dce6fa}.channel-checks{display:flex;gap:1rem;flex-wrap:wrap;border:1px solid var(--border);border-radius:16px;padding:1rem}.channel-checks legend{padding:0 .45rem;color:var(--muted);font-weight:700}.preference-row{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:.8rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border)}.preference-row:last-child{border-bottom:0}.preference-row strong,.preference-row small{display:block}.preference-row small{color:var(--muted)}.preference-row select{min-height:44px;border:1px solid var(--border);border-radius:12px;background:#0f172d;color:var(--white);padding:.6rem}.preference-summary{display:grid;gap:.55rem;margin-top:1rem}.preference-summary span{padding:.7rem .85rem;border-radius:12px;background:rgba(255,255,255,.035);color:var(--muted)}.push-subscription-form{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.push-subscription-form small{color:var(--muted);flex:1 1 280px}.status.queued,.status.scheduled,.status.retry,.status.processing{background:rgba(245,166,35,.12);color:#ffd593}.status.delivered,.status.manual_action{background:rgba(22,199,132,.12);color:#adf6d7}.status.failed,.status.cancelled,.status.suppressed{background:rgba(255,77,103,.12);color:#ffc1cb}.status.started{background:rgba(36,107,253,.15);color:#bcd0ff}.status.active{background:rgba(22,199,132,.12);color:#adf6d7}.status.inactive{background:rgba(157,170,197,.12);color:#c6d1e8}
@media(max-width:980px){.provider-grid{grid-template-columns:1fr}.preference-row{grid-template-columns:1fr}.panel-actions{width:100%}.panel-actions form,.panel-actions .btn{width:100%}}

/* Módulo 23: reportes, estadísticas y auditoría */
.report-nav{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:1rem;padding:.5rem;background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:18px}.report-nav a{padding:.7rem 1rem;border-radius:13px;color:var(--muted);font-weight:750}.report-nav a:hover,.report-nav a.active{color:var(--white);background:linear-gradient(135deg,rgba(22,217,255,.12),rgba(123,66,246,.15));border:1px solid rgba(22,217,255,.16)}.report-filter-panel{padding:1rem;margin-bottom:1rem}.report-filters{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr)) auto;gap:.8rem;align-items:end}.report-filters label{display:grid;gap:.35rem;color:#dce5f7;font-size:.78rem;font-weight:700}.report-filters input,.report-filters select{min-height:44px;border:1px solid var(--border);border-radius:12px;background:#0f172d;color:var(--white);padding:.65rem .75rem;min-width:0}.report-filters .btn{min-height:44px}.report-hero{margin-bottom:1rem}.report-summary-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.report-dashboard-grid{grid-template-columns:1.3fr .7fr}.report-mini-list{display:grid;gap:.7rem}.report-mini-list article{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--border)}.report-mini-list article:last-child{border-bottom:0}.report-mini-list strong,.report-mini-list small{display:block}.report-mini-list small{color:var(--muted)}.report-mini-list b{white-space:nowrap}.report-actions{margin-bottom:1rem}.report-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.report-section-grid .panel{min-width:0}.report-target-form{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--border)}.risk-criteria{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.risk-criteria span{padding:.65rem .8rem;border:1px solid rgba(22,217,255,.16);border-radius:12px;background:rgba(22,217,255,.05);color:#dce6fa;font-size:.82rem}.risk-criteria small{flex-basis:100%;color:var(--muted)}.risk-score{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;font-weight:900}.risk-score.low{background:rgba(22,199,132,.12);color:#adf6d7}.risk-score.medium{background:rgba(245,166,35,.13);color:#ffd593}.risk-score.high{background:rgba(255,77,103,.13);color:#ffc1cb}.audit-filters{grid-template-columns:repeat(6,minmax(120px,1fr)) auto;margin-top:1rem}.audit-timeline{display:grid;gap:0}.audit-timeline>article{display:grid;grid-template-columns:22px minmax(0,1fr);gap:.8rem;position:relative}.audit-timeline>article:not(:last-child):before{content:"";position:absolute;left:10px;top:22px;bottom:-8px;width:1px;background:var(--border)}.audit-marker{width:10px;height:10px;margin-top:1.25rem;border-radius:50%;background:var(--cyan);box-shadow:0 0 14px rgba(22,217,255,.5);position:relative;z-index:1}.audit-card{margin-bottom:.8rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.022)}.audit-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.audit-card strong,.audit-card small{display:block}.audit-card small,.audit-card time,.audit-card p{color:var(--muted)}.audit-card time{font-size:.75rem;white-space:nowrap}.audit-card p{margin:.65rem 0}.audit-meta{display:flex;gap:.5rem;flex-wrap:wrap}.audit-meta span{padding:.35rem .55rem;border-radius:9px;background:rgba(255,255,255,.04);font-size:.72rem;color:#cbd6eb}.audit-card details{margin-top:.8rem;border-top:1px solid var(--border);padding-top:.7rem}.audit-card summary{cursor:pointer;color:var(--cyan);font-weight:700}.audit-card pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto;padding:.75rem;border-radius:12px;background:#090f20;color:#cbd6eb;font-size:.72rem}.status-badge.warning{background:rgba(245,166,35,.12);color:#ffd593}
@media(max-width:1200px){.report-filters,.audit-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}.report-dashboard-grid{grid-template-columns:1fr}.report-section-grid{grid-template-columns:1fr}}
@media(max-width:720px){.report-filters,.audit-filters{grid-template-columns:1fr 1fr}.report-filters .btn,.audit-filters .btn{grid-column:1/-1}.report-nav{overflow-x:auto;flex-wrap:nowrap}.report-nav a{white-space:nowrap}.audit-card header{flex-direction:column}.audit-card time{white-space:normal}}
@media(max-width:480px){.report-filters,.audit-filters{grid-template-columns:1fr}.report-filters .btn,.audit-filters .btn{grid-column:auto}.risk-criteria span{width:100%}}

/* Módulo 24: planes, licencias e identidad empresarial */
.company-brand-chip{display:flex;align-items:center;gap:.55rem;padding:.45rem .7rem;border:1px solid rgba(46,211,208,.22);border-radius:13px;background:rgba(255,255,255,.025);max-width:220px}.company-brand-chip img{width:28px;height:28px;object-fit:contain;border-radius:8px;background:#fff}.company-brand-chip strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.usage-card{padding:1rem;border:1px solid var(--border);border-radius:17px;background:rgba(255,255,255,.025)}.usage-card>div{display:flex;justify-content:space-between;gap:1rem}.usage-card strong,.usage-card span,.usage-card small{display:block}.usage-card span,.usage-card small{color:var(--muted);font-size:.78rem}.usage-progress{width:100%;height:10px;margin:.8rem 0;border:0;border-radius:999px;overflow:hidden;background:#131d35}.usage-progress::-webkit-progress-bar{background:#131d35}.usage-progress::-webkit-progress-value{background:linear-gradient(90deg,var(--cyan),var(--violet))}.usage-progress::-moz-progress-bar{background:linear-gradient(90deg,var(--cyan),var(--violet))}.brand-preview{min-height:300px;border-radius:24px;padding:2rem;display:grid;place-items:center;text-align:center;background:linear-gradient(135deg,#0b1224,#2ed3d0);color:#fff}.brand-preview img{max-width:180px;max-height:120px;object-fit:contain;padding:1rem;border-radius:20px;background:#fff}.brand-preview>strong{width:92px;height:92px;display:grid;place-items:center;border-radius:25px;background:rgba(255,255,255,.16);font-size:2rem}.brand-preview span{font-size:1.3rem;font-weight:900}.brand-preview small{max-width:300px}.portal-company-mark{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;border:1px solid rgba(46,211,208,.22);border-radius:12px}.portal-company-mark img{width:30px;height:30px;object-fit:contain;border-radius:8px;background:#fff}.portal-company-mark strong{font-size:.82rem}.document-company-brand{display:flex;align-items:center;gap:1rem;max-width:980px;margin:1rem auto;padding:1rem 1.25rem;border:1px solid #dce3ee;border-radius:14px;background:#fff;color:#172036}.document-company-brand img{width:54px;height:54px;object-fit:contain}.document-company-brand div{flex:1}.document-company-brand strong,.document-company-brand small{display:block}.document-company-brand small{margin-top:.25rem;color:#5e6b82}.document-company-brand span{font-weight:900;color:#246bfd}.document-company-footer{max-width:980px;margin:1rem auto;padding:1rem;text-align:center;color:#5e6b82;font-size:.78rem}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.panel-divider{display:flex;justify-content:space-between;gap:1rem;margin-top:.8rem;padding-top:1rem;border-top:1px solid var(--border)}.panel-divider small{color:var(--muted)}.inline-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.timeline>article{padding:.85rem 0;border-bottom:1px solid var(--border)}.timeline>article:last-child{border-bottom:0}.timeline>article strong,.timeline>article small{display:block}.timeline>article p{margin:.35rem 0;color:var(--muted)}.muted{opacity:.55}.portal-heading small{color:var(--muted)}
@media(max-width:900px){.permission-grid{grid-template-columns:repeat(2,1fr)}.company-brand-chip{display:none}.portal-company-mark{display:none}}
@media(max-width:600px){.permission-grid{grid-template-columns:1fr}.usage-card>div{flex-direction:column;gap:.25rem}.document-company-brand{margin:.5rem;align-items:flex-start}.document-company-brand span{display:none}}
