:root{
  --blue:#0968e5;--blue-dark:#004cae;--blue-soft:#eaf3ff;--ink:#122033;--muted:#65758b;--line:#e4e9f1;--panel:#fff;--bg:#f6f8fb;
  --green:#0fa968;--green-soft:#e8f8f0;--orange:#f59e0b;--orange-soft:#fff5df;--red:#dc3d4f;--red-soft:#ffebee;--purple:#7c4dff;--purple-soft:#f1edff;
  --shadow:0 8px 28px rgba(26,48,84,.07);--radius:16px;--sidebar:224px;
}
*{box-sizing:border-box}
html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:15px}
body{margin:0;min-height:100vh;background:var(--bg)}
a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30}.brand{height:78px;display:flex;align-items:center;gap:11px;padding:0 18px;color:var(--blue-dark);border-bottom:1px solid #f0f3f7}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#0b72f1,#004baa);color:#fff;font-weight:800;font-size:20px;box-shadow:0 8px 20px rgba(9,104,229,.22)}.brand strong{font-size:18px;display:block;line-height:1.05}.brand small{font-size:12px;color:var(--muted);display:block;margin-top:3px}.nav-list{padding:16px 10px;display:grid;gap:5px;overflow:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;color:#40516a;font-weight:600}.nav-item:hover{background:#f5f8fc;color:var(--blue)}.nav-item.is-active{background:var(--blue-soft);color:var(--blue);box-shadow:inset 3px 0 0 var(--blue)}.nav-icon{width:24px;text-align:center;font-size:19px}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding:13px 12px;display:flex;align-items:center;gap:8px}.user-chip{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#0b72f1,#0050b7);color:#fff;font-weight:700}.user-chip-copy{min-width:0}.user-chip-copy strong,.user-chip-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip-copy strong{font-size:13px}.user-chip-copy small{font-size:11px;color:var(--muted);margin-top:2px}.logout-button,.icon-button{border:0;background:transparent;cursor:pointer;color:var(--muted);font-size:20px;padding:7px;border-radius:8px}.logout-button:hover,.icon-button:hover{background:#f2f5f8;color:var(--blue)}
.main-area{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));min-height:100vh}.page-container{max-width:1530px;margin:0 auto;padding:26px 30px 50px}.mobile-header{display:none}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:20px}.page-header h1{margin:0;font-size:28px;line-height:1.15;letter-spacing:-.035em}.page-header p{margin:7px 0 0;color:var(--muted);font-size:14px}.page-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border-radius:9px;border:1px solid transparent;font-weight:700;cursor:pointer;transition:.16s ease;white-space:nowrap}.button-primary{color:#fff;background:var(--blue);box-shadow:0 7px 18px rgba(9,104,229,.19)}.button-primary:hover{background:var(--blue-dark);transform:translateY(-1px)}.button-secondary{color:var(--blue);border-color:#8ab9f5;background:#fff}.button-secondary:hover{background:var(--blue-soft)}.button-neutral{color:#40516a;border-color:var(--line);background:#fff}.button-danger{color:var(--red);border-color:#f3b7bf;background:#fff}.button-success{color:#fff;background:var(--green)}.button-small{min-height:34px;padding:0 11px;font-size:13px}.button-icon{font-size:18px}.text-link{font-weight:700}.muted{color:var(--muted)}.small{font-size:12px}.nowrap{white-space:nowrap}.text-right{text-align:right}.text-center{text-align:center}.mt-0{margin-top:0}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-0{margin-bottom:0}.mb-2{margin-bottom:16px}
.grid{display:grid;gap:16px}.grid-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-main-side{grid-template-columns:minmax(0,1.35fr) minmax(350px,.85fr)}.grid-compact{gap:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-body{padding:20px}.card-header{padding:17px 20px 13px;display:flex;align-items:center;justify-content:space-between;gap:14px}.card-header h2,.card-header h3{margin:0;font-size:17px}.card-header p{margin:4px 0 0;color:var(--muted);font-size:13px}.card-footer{padding:13px 20px;border-top:1px solid var(--line)}.kpi-card{padding:18px;display:flex;gap:13px;min-height:124px}.kpi-icon{flex:0 0 44px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-size:20px}.kpi-icon.gold{background:var(--orange-soft);color:var(--orange)}.kpi-icon.green{background:var(--green-soft);color:var(--green)}.kpi-icon.purple{background:var(--purple-soft);color:var(--purple)}.kpi-label{font-size:13px;font-weight:700;margin:2px 0 6px}.kpi-value{font-size:26px;font-weight:800;letter-spacing:-.03em;color:var(--blue-dark)}.kpi-value.gold{color:#d68b00}.kpi-value.green{color:var(--green)}.kpi-help{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.35}
.progress-head{display:flex;justify-content:space-between;gap:12px;align-items:end}.progress-head strong{font-size:20px}.progress{height:10px;background:#e5ebf3;border-radius:999px;overflow:hidden;margin:11px 0}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#0871f4,#005bc8);border-radius:999px}.metric-lines{display:grid;gap:9px;margin-top:16px}.metric-line{display:flex;gap:9px;color:#40516a;font-size:13px}.metric-line strong{color:var(--blue-dark)}.tier-track{display:flex;align-items:flex-start;justify-content:space-between;margin-top:22px;position:relative}.tier-track:before{content:"";position:absolute;left:8%;right:8%;top:10px;height:2px;background:#dce3ec}.tier-step{position:relative;text-align:center;z-index:1;font-size:11px;font-weight:700;color:var(--muted);min-width:60px}.tier-dot{display:block;width:22px;height:22px;border:3px solid #a7b3c3;background:#fff;border-radius:50%;margin:0 auto 7px}.tier-step.current{color:#b97800}.tier-step.current .tier-dot{border-color:var(--orange);box-shadow:0 0 0 5px var(--orange-soft)}
.wallet-grid{display:grid;grid-template-columns:repeat(4,1fr)}.wallet-stat{text-align:center;padding:6px 9px;border-right:1px solid var(--line)}.wallet-stat:last-child{border-right:0}.wallet-stat .circle{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;margin:0 auto 9px;background:var(--blue-soft);color:var(--blue);font-size:19px}.wallet-stat.green .circle{background:var(--green-soft);color:var(--green)}.wallet-stat.teal .circle{background:#e5fafb;color:#08a7b2}.wallet-stat.orange .circle{background:var(--orange-soft);color:var(--orange)}.wallet-stat span{display:block;color:var(--muted);font-size:12px;min-height:31px}.wallet-stat strong{font-size:22px;color:var(--blue-dark)}.wallet-stat.green strong{color:var(--green)}.wallet-stat.teal strong{color:#0797a0}.wallet-stat.orange strong{color:var(--orange)}
.bar-chart{height:240px;display:flex;align-items:flex-end;gap:10px;padding:20px 6px 0;border-bottom:1px solid var(--line);background:linear-gradient(to top,transparent 24%,#edf1f6 25%,transparent 25.5%,transparent 49%,#edf1f6 50%,transparent 50.5%,transparent 74%,#edf1f6 75%,transparent 75.5%)}.bar-column{flex:1;min-width:22px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.bar-value{font-size:11px;font-weight:700;color:var(--blue);margin-bottom:5px}.bar{width:min(30px,70%);min-height:2px;background:linear-gradient(#87bbf8,#d7e9ff);border-radius:5px 5px 0 0}.bar-label{position:absolute;bottom:-24px;color:var(--muted);font-size:11px}.chart-foot{padding-top:32px;text-align:center;color:var(--muted);font-size:13px}.alert-list{display:grid}.alert-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.alert-row:last-child{border-bottom:0}.alert-symbol{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-weight:800}.alert-row.warning .alert-symbol{background:var(--orange-soft);color:#d77e00}.alert-row.success .alert-symbol{background:var(--green-soft);color:var(--green)}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{background:#f5f7fa;color:#516177;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:9px 12px;white-space:nowrap}.data-table td{padding:11px 12px;border-bottom:1px solid #edf0f4;font-size:13px;vertical-align:middle}.data-table tbody tr:hover{background:#fbfcfe}.data-table tr:last-child td{border-bottom:0}.data-table .actions{display:flex;gap:6px;justify-content:flex-end}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.badge-success{background:var(--green-soft);color:#087a4c}.badge-warning{background:var(--orange-soft);color:#b96f00}.badge-danger{background:var(--red-soft);color:#b32335}.badge-info{background:var(--blue-soft);color:#0658be}.badge-neutral{background:#eef1f5;color:#596879}.summary-list{display:grid;gap:10px}.summary-item{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.summary-item:last-child{border-bottom:0}.summary-item span{color:var(--muted)}.summary-item strong{text-align:right}.mini-card{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.mini-card:last-child{margin-bottom:0}.mini-card:hover{border-color:#b7d2f5;background:#fbfdff}.empty-state{text-align:center;padding:44px 20px;color:var(--muted)}.empty-state strong{display:block;color:var(--ink);font-size:17px;margin-bottom:6px}
.form-card{max-width:980px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-group{display:grid;gap:7px}.form-group.full{grid-column:1/-1}.form-label{font-weight:700;font-size:13px}.form-help{color:var(--muted);font-size:11px}.license-assignment-grid .form-group:not(.full){grid-template-rows:32px 42px auto;align-content:start}.license-assignment-grid .form-label{display:flex;align-items:flex-end}.field,.select,.textarea{width:100%;border:1px solid #ccd5e1;background:#fff;color:var(--ink);border-radius:9px;min-height:42px;padding:9px 11px;outline:none;transition:.15s}.textarea{min-height:105px;resize:vertical}.field:focus,.select:focus,.textarea:focus{border-color:#6ca9f2;box-shadow:0 0 0 4px rgba(9,104,229,.1)}.field-error{color:var(--red);font-size:12px}.checkbox-row{display:flex;align-items:center;gap:9px}.checkbox-row input{width:17px;height:17px}.form-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:18px;border-top:1px solid var(--line);margin-top:20px}.search-bar{display:flex;gap:9px;align-items:center}.search-bar .field{min-width:270px}.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-form .field,.inline-form .select{width:auto;min-width:120px}
.profile-sections{display:flex;flex-direction:column;gap:20px}
/* The switcher is styled for the dark sidebar it came from; on a white card it only needs a
   width that does not look cramped. */
.profile-language-card .language-switcher{min-width:260px;max-width:100%}
/* Full-width cards carry the .form-card cap and ended up narrower than the two-card row next
   to them, which does span the whole width. Inside the profile the columns win, not the cap. */
.profile-sections>.form-card{max-width:none}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);padding:0 20px}.tab-button{border:0;background:transparent;padding:13px 12px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}.tab-button.is-active{color:var(--blue);border-bottom-color:var(--blue)}.tab-panel{display:none}.tab-panel.is-active{display:block}.contract-banner{display:flex;gap:16px;align-items:center;padding:16px;border-radius:13px;background:linear-gradient(110deg,#fff8e8,#fff);border:1px solid #f5d58a}.contract-medal{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--orange-soft);color:var(--orange);font-size:26px}.tier-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.tier-card{border:1px solid var(--line);border-radius:14px;padding:18px;background:#fff;position:relative}.tier-card.current{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}.tier-card h3{margin:0 0 6px}.tier-price{font-size:27px;font-weight:800;color:var(--blue-dark);margin:14px 0}.tier-volume{color:var(--muted);font-size:12px}.current-label{position:absolute;right:12px;top:12px;background:var(--orange-soft);color:#a96800;font-size:10px;font-weight:800;padding:4px 7px;border-radius:999px}.rule-strip{display:grid;grid-template-columns:repeat(4,1fr)}.rule-item{padding:17px;display:flex;align-items:center;gap:10px;border-right:1px solid var(--line);font-weight:700;font-size:13px}.rule-item:last-child{border-right:0}.rule-icon{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue)}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr);gap:16px}.definition-list{display:grid;grid-template-columns:180px 1fr;gap:0}.definition-list dt,.definition-list dd{padding:11px 0;border-bottom:1px solid var(--line);margin:0}.definition-list dt{color:var(--muted)}.definition-list dd{font-weight:600}.invoice-sheet{max-width:920px;margin:0 auto;background:#fff;padding:44px;border:1px solid var(--line);box-shadow:var(--shadow)}.invoice-header{display:flex;justify-content:space-between;gap:30px;margin-bottom:40px}.invoice-brand{font-size:24px;font-weight:800;color:var(--blue)}.invoice-meta{text-align:right}.invoice-total{font-size:30px;font-weight:800;color:var(--blue-dark)}
.alert{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;border-radius:10px;margin-bottom:18px;font-weight:600}.alert button{border:0;background:transparent;font-size:20px;cursor:pointer}.alert-success{background:var(--green-soft);color:#087a4c;border:1px solid #bde8d1}.alert-error{background:var(--red-soft);color:#a92839;border:1px solid #f4c0c7}.alert-warning{background:var(--orange-soft);color:#9d6300;border:1px solid #f3d59e}.alert-info{background:var(--blue-soft);color:#0756b5;border:1px solid #bfd9fa}
.guest-body{background:radial-gradient(circle at 10% 10%,#e8f3ff,transparent 34%),linear-gradient(145deg,#f8fbff,#eef3f9);display:grid;place-items:center;padding:25px}.guest-shell{width:100%;max-width:1050px}.login-shell{display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 30px 80px rgba(27,55,93,.15)}.login-visual{padding:55px;background:linear-gradient(145deg,#086de9,#00459d);color:#fff;min-height:610px;display:flex;flex-direction:column;justify-content:space-between}.login-visual h1{font-size:38px;line-height:1.1;margin:0 0 16px;letter-spacing:-.04em}.login-visual p{font-size:17px;line-height:1.55;color:#d9eaff}.login-features{display:grid;gap:13px}.login-feature{display:flex;gap:10px;align-items:center;color:#eef6ff}.login-form-side{padding:58px;display:flex;flex-direction:column;justify-content:center}.login-form-side h2{font-size:28px;margin:0}.login-form-side>p{color:var(--muted);margin:8px 0 28px}.login-logo{display:flex;gap:10px;align-items:center;font-size:19px;font-weight:800;margin-bottom:28px}.login-note{margin-top:20px;padding:13px;border-radius:10px;background:#f5f7fa;color:var(--muted);font-size:12px;line-height:1.5}
.admin-accent{border-left:4px solid var(--purple)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:6px}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f1f4f8;padding:2px 5px;border-radius:5px;font-size:12px}.danger-zone{border-color:#f1bdc4;background:#fffafb}.pagination{display:flex;gap:5px;justify-content:center;padding-top:18px}
.print-body{background:#fff;padding:0}.print-body .invoice-sheet{border:0;box-shadow:none;max-width:none}.print-only{display:none}
@media(max-width:1260px){.grid-kpis{grid-template-columns:repeat(3,1fr)}.tier-cards{grid-template-columns:repeat(2,1fr)}.wallet-grid{grid-template-columns:repeat(3,1fr)}.wallet-stat:nth-child(3){border-right:0}.wallet-stat:nth-child(n+4){margin-top:16px}.grid-main-side{grid-template-columns:1fr}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){:root{--sidebar:260px}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.is-open{transform:translateX(0);box-shadow:20px 0 50px rgba(0,0,0,.18)}.main-area{margin-left:0;width:100%}.mobile-header{display:flex;height:58px;background:#fff;border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:0 15px;position:sticky;top:0;z-index:20}.mobile-brand{font-weight:800;color:var(--blue)}.page-container{padding:18px}.page-header{flex-direction:column}.page-actions{justify-content:flex-start}.grid-kpis,.grid-2,.grid-3,.detail-grid{grid-template-columns:1fr}.form-grid,.form-grid-3{grid-template-columns:1fr}.form-group.full{grid-column:auto}.login-shell{grid-template-columns:1fr}.login-visual{display:none}.login-form-side{padding:35px}.rule-strip{grid-template-columns:repeat(2,1fr)}.rule-item:nth-child(2){border-right:0}.rule-item:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:600px){.grid-kpis{grid-template-columns:1fr}.wallet-grid{grid-template-columns:repeat(2,1fr)}.wallet-stat:nth-child(2n){border-right:0}.wallet-stat:nth-child(n+3){margin-top:16px}.tier-cards{grid-template-columns:1fr}.rule-strip{grid-template-columns:1fr}.rule-item{border-right:0;border-bottom:1px solid var(--line)}.page-actions .button{flex:1}.search-bar{align-items:stretch;flex-direction:column}.search-bar .field{min-width:0}.definition-list{grid-template-columns:1fr}.definition-list dt{border-bottom:0;padding-bottom:2px}.definition-list dd{padding-top:2px}.invoice-sheet{padding:20px}.invoice-header{flex-direction:column}.invoice-meta{text-align:left}}
@media print{.no-print{display:none!important}.print-only{display:block}.invoice-sheet{border:0!important;box-shadow:none!important;padding:0!important}.print-body{padding:0}.data-table th{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.sidebar-footer{flex-wrap:wrap}
.language-switcher{display:inline-flex;align-items:center;gap:8px}
.sidebar-footer .language-switcher{flex-basis:100%;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.language-switcher-icon{font-size:15px;opacity:.55;line-height:1}
.language-select-wrap{position:relative;flex:1}
.language-select{appearance:none;-webkit-appearance:none;width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 34px 8px 12px;font:inherit;font-size:13px;font-weight:600;color:#40516a;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.language-select-wrap::after{content:"";position:absolute;right:13px;top:50%;width:8px;height:8px;transform:translateY(-65%) rotate(45deg);border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);pointer-events:none}
.language-select:hover{border-color:#c3d2e6}
.language-select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.language-noscript{margin-left:6px}
.login-form-side .language-switcher{margin-top:22px;align-self:flex-start}
.login-form-side .language-select-wrap{flex:0 0 auto}
.login-form-side .language-select{min-width:150px}
.login-logo-img{height:32px;width:auto;display:inline-block;vertical-align:middle}
.brand-logo{width:40px;height:40px;object-fit:contain;display:block}
.btn-icon{display:inline-block;width:16px;height:16px;vertical-align:-3px;margin-right:7px}
.form-hint{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.login-alt{margin-top:18px;font-size:13px;color:var(--muted)}
.login-alt a{font-weight:700}
.register-shell .login-visual{min-height:0}
.register-shell .login-form-side{padding:34px 48px;justify-content:center}
.register-shell .login-logo{margin-bottom:10px}
.register-shell h2{font-size:23px}
.register-shell .login-form-side>p{margin:6px 0 18px;font-size:14px}
.register-shell .register-form{display:flex;flex-direction:column;gap:16px}
.register-shell .register-form input[type="hidden"]{display:none}
.register-shell .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.register-shell .form-group{margin-bottom:0}
.register-shell .form-label{margin-bottom:5px}
.register-shell .field{padding:9px 12px}
.register-shell .form-hint{margin-top:5px}
.register-shell .login-alt{margin-top:16px}
.register-shell .login-form-side .language-switcher{margin-top:16px}
@media(max-width:640px){.register-shell form{gap:14px}.register-shell .form-row{grid-template-columns:1fr;gap:14px}}
/* --- Responsive hardening: nunca scroll horizontal --- */
html,body{max-width:100%}
body{overflow-x:hidden;overflow-x:clip}
img,svg,video,canvas{max-width:100%;height:auto}
.page-container,.guest-shell{max-width:100%}
/* rompe cadenas largas (emails, tokens, urls) en vez de desbordar */
.card,.mini-card,.kpi-card,.alert,.metric-line,.summary-item,.definition-list dd,.data-table td,.login-note{overflow-wrap:anywhere;word-break:break-word}
/* Los nombres de nivel son etiquetas legibles: no deben cortarse por la mitad. */
.kpi-card .kpi-value{overflow-wrap:normal;word-break:normal;hyphens:none}
/* hijos de flex/grid deben poder encoger para no forzar el ancho */
.user-chip,.page-header,.card-header,.summary-item strong,.definition-list dd,.detail-grid>*,.grid>*,.grid-main-side>*{min-width:0}
@media(max-width:600px){.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.invoice-sheet{padding:16px}}

/* Professional workspace redesign */
:root{
  --blue:#0667d9;--blue-dark:#063f88;--blue-soft:#edf5ff;--ink:#17243a;--muted:#64748b;--line:#dfe6ef;--panel:#fff;--bg:#f4f7fb;
  --green:#07875b;--green-soft:#eaf8f2;--orange:#c87800;--orange-soft:#fff6e5;--red:#c9384a;--red-soft:#fff0f2;--purple:#6558d9;--purple-soft:#f1f0ff;
  --shadow:0 1px 2px rgba(15,35,62,.03),0 8px 24px rgba(31,55,90,.045);--shadow-raised:0 12px 32px rgba(18,45,82,.10);--radius:13px;--sidebar:248px;
}
html{font-size:14px;line-height:1.5;text-rendering:optimizeLegibility}
body{background:linear-gradient(180deg,#f8fafd 0,#f4f7fb 210px)}
a,button,input,select,textarea{transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(6,103,217,.22);outline-offset:2px}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
.ui-icon,.kpi-icon svg,.wallet-stat .circle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.button .ui-icon{width:15px;height:15px;flex:0 0 15px}
.sidebar{background:rgba(255,255,255,.98);border-right-color:#dce4ee;box-shadow:4px 0 18px rgba(27,50,80,.025)}
.brand{height:88px;padding:0 22px;gap:13px;border-bottom-color:#edf1f6}
.brand-logo{width:42px;height:42px}
.brand strong{font-size:19px;letter-spacing:-.025em;color:#0d2d5a}
.brand small{margin-top:2px;color:#718096;font-size:11px;font-weight:650;letter-spacing:.045em;text-transform:uppercase}
.nav-list{padding:22px 14px;gap:6px}
.nav-item{position:relative;min-height:43px;padding:10px 13px;border-radius:9px;gap:12px;color:#506078;font-size:13px;font-weight:650}
.nav-item:hover{background:#f3f7fc;color:#173b6b}
.nav-item.is-active{background:#eaf3ff;color:#075fca;box-shadow:none}
.nav-item.is-active:before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--blue)}
.nav-icon{width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sidebar-footer{padding:14px;border-top-color:#e8edf4;gap:9px;background:#fbfcfe}
.sidebar-footer .language-switcher{margin-bottom:10px;padding-bottom:11px;border-bottom-color:#e8edf4}
.language-switcher-icon{font-size:14px}
.language-select{min-height:36px;border-color:#d9e1eb;border-radius:8px;color:#536278;background:#fff;font-size:12px;font-weight:650}
.user-chip{padding:5px;border-radius:9px;color:var(--ink)}
.user-chip:hover{background:#f0f5fb}
.avatar{width:36px;height:36px;background:#e8f2ff;color:#075fca;border:1px solid #d4e7ff;font-size:13px}
.user-chip-copy strong{font-size:12px;color:#26364d}.user-chip-copy small{font-size:10px}
.logout-button,.icon-button{display:grid;place-items:center;min-width:34px;min-height:34px;font-size:18px}
.main-area{background:transparent}
.page-container{max-width:1500px;padding:35px 40px 56px}
.page-header{align-items:center;margin-bottom:24px}
.page-header h1{font-size:27px;font-weight:750;color:#14243a;letter-spacing:-.03em}
.page-header p{margin-top:5px;color:#6b7a90;font-size:13px}
.page-actions{gap:9px}
.button{min-height:40px;padding:0 15px;border-radius:8px;font-size:12px;font-weight:700;box-shadow:none}
.button-primary{background:linear-gradient(180deg,#0b72eb,#0663d1);border-color:#075fc6;box-shadow:0 1px 2px rgba(6,57,116,.16)}
.button-primary:hover{background:#075fc6;box-shadow:0 5px 14px rgba(6,84,177,.18);transform:translateY(-1px)}
.button-secondary{border-color:#b8d3f4;color:#075fca}.button-secondary:hover{border-color:#8cb9ed;background:#f3f8ff}
.button-neutral{border-color:#d5dde8;color:#46566d}.button-neutral:hover{border-color:#b9c5d4;background:#f8fafc;color:#26364d}
.button-danger{border-color:#efc3ca;background:#fff;color:#b72c3e}.button-danger:hover{background:#fff3f5;border-color:#e7a7b1}
.button:disabled,.field:disabled,.select:disabled,.textarea:disabled{cursor:not-allowed;opacity:.62;box-shadow:none;transform:none}
.text-link{font-size:12px;font-weight:700}
.grid{gap:18px}.grid-kpis{gap:14px;margin-bottom:20px}.mb-2{margin-bottom:20px}
.card{border-color:#e0e7f0;border-radius:var(--radius);box-shadow:var(--shadow)}
.card-header{min-height:59px;padding:17px 21px;border-bottom:1px solid #edf1f5}
.card-header h2,.card-header h3{font-size:15px;font-weight:750;letter-spacing:-.012em;color:#1a2a41}
.card-header p{font-size:12px}.card-body{padding:21px}.card-footer{padding:14px 21px;border-top-color:#edf1f5}
.kpi-card{position:relative;min-height:116px;padding:18px 17px;gap:13px;overflow:hidden}
.kpi-icon{width:40px;height:40px;flex-basis:40px;border-radius:10px;border:1px solid #d8e9fd;background:#f0f6ff;font-size:17px}
.kpi-icon.gold{border-color:#f3dfba}.kpi-icon.green{border-color:#cbeadc}.kpi-icon.purple{border-color:#dedafb}
.kpi-label{margin:0 0 5px;color:#5b6b81;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.kpi-value{font-size:25px;font-weight:760;color:#153b6f}.kpi-value.gold{color:#9a6208}.kpi-value.green{color:#087552}
.kpi-help{margin-top:5px;font-size:11px;color:#77869a}
.progress{height:8px;background:#e7edf5;margin:14px 0}.progress>span{background:linear-gradient(90deg,#2381e8,#0966d4)}
.metric-lines{gap:10px}.metric-line{color:#58687f;font-size:12px}.metric-line strong{color:#274a78}
.wallet-grid{border:1px solid #e6ebf2;border-radius:10px;overflow:hidden}
.wallet-stat{padding:14px 9px;background:#fbfcfe}.wallet-stat .circle{width:36px;height:36px;margin-bottom:8px;border-radius:9px;font-size:15px}.wallet-stat span{font-size:11px}.wallet-stat strong{font-size:20px;color:#203c64}
.bar-chart{height:250px;border-bottom-color:#dfe6ef;background:repeating-linear-gradient(to top,transparent 0,transparent 59px,#edf1f5 60px)}
.bar{background:linear-gradient(180deg,#2b82e6,#a9cff8);border-radius:4px 4px 0 0}.bar-value{color:#245b9d}.chart-foot{font-size:12px}
.alert-row{padding:14px 0;border-bottom-color:#edf1f5;color:#485970;font-size:12px}.alert-symbol{width:25px;height:25px;font-size:11px}
.mini-card{margin-bottom:8px;padding:13px;border-radius:9px;border-color:#e1e7ef}.mini-card:hover{border-color:#b9d2ef;background:#f8fbff;box-shadow:0 5px 14px rgba(32,65,105,.05)}
.table-wrap{border-radius:0 0 var(--radius) var(--radius)}
.data-table{min-width:760px}.data-table.is-compact{min-width:0}.table-wrap.is-compact{overflow:visible}
.data-table th{height:41px;padding:10px 14px;background:#f7f9fc;color:#69788d;border-bottom:1px solid #dde5ef;font-size:10px;font-weight:750;letter-spacing:.065em}
.data-table td{height:50px;padding:11px 14px;border-bottom-color:#e9eef4;color:#33445c;font-size:12px}
.data-table tbody tr:hover{background:#f8fbff}.data-table a strong{color:#145ba8}.data-table a:hover strong{color:#073e7e}
.client-license-breakdown{display:grid;gap:5px;min-width:185px}.client-license-type{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:5px 8px;border:1px solid #e1e8f1;border-radius:8px;background:#f8fafc;color:#53647a;font-size:11px;line-height:1.2}.client-license-type:before{content:"";width:7px;height:7px;border-radius:50%;background:#2b76d2;flex:0 0 auto}.client-license-type span{flex:1}.client-license-type strong{color:#172b45;font-size:12px;font-variant-numeric:tabular-nums}.client-license-type-training:before{background:#14a06f}.client-license-type-tokens:before{background:#8b5cf6}.client-license-type .client-license-nums{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:6px}.client-license-remaining{font-style:normal;font-weight:700;font-size:12px;font-variant-numeric:tabular-nums}.client-license-remaining.is-ok{color:#087a4c}.client-license-remaining.is-low{color:#c0392b}.client-license-rhub{font-weight:700;font-size:12px;color:#5b6b82;font-variant-numeric:tabular-nums}.client-license-hint{font-size:10px;color:#93a1b3;font-style:italic}
.badge{gap:5px;padding:4px 9px;border:1px solid transparent;font-size:10px;font-weight:750;letter-spacing:.01em}
.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.72}
.badge-success{border-color:#c9e8da}.badge-warning{border-color:#f0ddb8}.badge-danger{border-color:#efc8ce}.badge-info{border-color:#cfe2fa}.badge-neutral{border-color:#dfe5ed}
.form-card{max-width:1040px}
.form-grid{gap:18px}.form-group{gap:6px}.form-label{color:#34445b;font-size:12px;font-weight:700}.form-help,.form-hint{color:#77869a;font-size:10px}
.field,.select,.textarea{min-height:42px;border-color:#cfd8e4;border-radius:8px;padding:9px 12px;color:#27384f;box-shadow:0 1px 1px rgba(19,39,66,.02)}
.field:hover,.select:hover,.textarea:hover{border-color:#aebdce}.field:focus,.select:focus,.textarea:focus{border-color:#3983d7;box-shadow:0 0 0 3px rgba(6,103,217,.11)}
.field:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:0}
.field::placeholder,.textarea::placeholder{color:#9aa7b7}.field:disabled,.select:disabled,.textarea:disabled{background:#f3f5f8;color:#7d8999}
.form-actions{margin-top:22px;padding-top:18px;border-top-color:#e7ecf2}
.tabs{gap:17px;padding:0 21px;background:#fbfcfe;border-bottom-color:#e3e9f1;border-radius:var(--radius) var(--radius) 0 0}
.tab-button{position:relative;padding:16px 2px 14px;color:#69788d;font-size:12px}.tab-button:hover{color:#2e4f77}.tab-button.is-active{color:#075fca;border-bottom-color:#0968df}
.summary-item{padding:12px 0;border-bottom-color:#e9eef4}.definition-list dt,.definition-list dd{border-bottom-color:#e7ecf2}
.client-information{grid-template-columns:1fr}.client-information dt{padding-bottom:2px;border-bottom:0;font-size:11px;font-weight:700}.client-information dd{padding-top:2px;color:#2d3f57}
.iti{width:100%}.iti .field{width:100%}.iti__country-selector{z-index:80;border-color:#d5dde8;border-radius:9px;box-shadow:0 14px 35px rgba(18,45,82,.16)}
.order-payment-layout{grid-template-columns:minmax(0,.85fr) minmax(430px,1.15fr)}
.payment-card .card-body{display:grid;gap:16px}.payment-methods{display:grid;gap:12px}.payment-option{display:grid;gap:15px;padding:16px;border:1px solid #dfe6ef;border-radius:11px;background:#fbfcfe}.payment-option-head{display:flex;align-items:flex-start;gap:12px}.payment-option-head h3{margin:1px 0 3px;font-size:14px}.payment-option-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.payment-option-icon{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border:1px solid #d7e7fa;border-radius:9px;background:#edf5ff;color:#075fca}.payment-option-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.payment-option .button{justify-self:start}
.bank-details{display:grid;gap:0;margin:0;border:1px solid #e1e7ef;border-radius:9px;background:#fff}.bank-details>div{display:flex;justify-content:space-between;gap:16px;padding:9px 11px;border-bottom:1px solid #edf1f5;font-size:11px}.bank-details>div:last-child{border-bottom:0}.bank-details dt{color:#708096}.bank-details dd{margin:0;color:#283a52;font-weight:700;text-align:right}.bank-details .code{border:0;background:transparent;padding:0}
.transfer-upload{display:grid;gap:8px;padding-top:3px}.file-field{width:100%;padding:8px;border:1px dashed #b8c7d9;border-radius:8px;background:#fff;color:#52647b;font-size:11px}.file-field::file-selector-button{margin-right:10px;padding:7px 10px;border:0;border-radius:6px;background:#eaf3ff;color:#075fca;font-weight:700;cursor:pointer}.transfer-upload .button{margin-top:4px}
.payment-result{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid #dfe6ef;border-radius:10px;background:#f8fafc}.payment-result strong{display:block;color:#263950}.payment-result p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.payment-result-icon{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:50%;font-weight:800}.payment-result-success{border-color:#c9e8da;background:#f1fbf6}.payment-result-success .payment-result-icon{background:#dff4ea;color:#087552}.payment-result-review{border-color:#efddb9;background:#fffaf0}.payment-result-review .payment-result-icon{background:#fff0ce;color:#a86900}
.payment-proof-link{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid #dfe6ef;border-radius:9px;color:#2d4564}.payment-proof-link:hover{border-color:#aac7e9;background:#f8fbff}.payment-proof-link .ui-icon{color:#075fca}.payment-proof-link strong,.payment-proof-link small{display:block}.payment-proof-link small{margin-top:2px;color:var(--muted);font-size:10px}.payment-cancel{padding-top:14px;border-top:1px solid #e7ecf2}
@media(max-width:1100px){.order-payment-layout{grid-template-columns:1fr}}
.empty-state{padding:52px 24px}.empty-state strong{font-size:15px}.empty-state p{font-size:12px}
.contract-banner{background:#fffaf0;border-color:#efd49e}.contract-medal{border-radius:12px}.tier-card{border-color:#e0e7f0;border-radius:11px}.tier-card.current{border-color:#d59a3f;box-shadow:0 0 0 3px #fff4dc}
.tier-cards .tier-card{padding:16px}.tier-cards .tier-card h3{margin:0 0 3px;line-height:1.25}.tier-cards .tier-volume{line-height:1.35}.tier-cards .tier-price{margin:8px 0 1px;line-height:1.1}.tier-cards .summary-list.mt-2{gap:0;margin-top:10px}.tier-cards .summary-item{padding:8px 0}.tier-cards .summary-item:last-child{padding-bottom:2px}
.rule-strip{box-shadow:none;background:#f9fbfd}.rule-item{border-color:#e4eaf2;color:#43546b;font-size:12px}.rule-icon{width:32px;height:32px;border-radius:8px}
.alert{padding:12px 15px;border-radius:8px;font-size:12px}.code{background:#f0f3f7;color:#40516a;border:1px solid #e3e8ef}
.invoice-sheet{border-color:#dce4ee;box-shadow:var(--shadow-raised)}
@media(max-width:1260px){.page-container{padding:30px 28px 50px}}
@media(max-width:900px){
  :root{--sidebar:270px}.sidebar{box-shadow:20px 0 45px rgba(18,38,66,.16)}.mobile-header{height:62px;border-bottom-color:#dce4ee;box-shadow:0 2px 10px rgba(20,42,70,.04)}
  .mobile-brand{color:#173b6b;font-size:14px}.page-container{padding:24px 20px 44px}.page-header{align-items:flex-start}.page-header h1{font-size:24px}
}
@media(max-width:600px){
  .page-container{padding:20px 14px 36px}.page-header{gap:16px;margin-bottom:20px}.page-actions{display:grid;grid-template-columns:1fr;width:100%}.page-actions .button{width:100%}
  .card-header{align-items:flex-start;flex-direction:column}.kpi-card{min-height:105px}.wallet-grid{border:0}.wallet-stat{border-bottom:1px solid var(--line)}
}

/* Night navigation */
.sidebar{background:linear-gradient(180deg,#0a1c35 0%,#08172c 100%);border-right-color:#142b49;box-shadow:8px 0 28px rgba(12,29,52,.10)}
.brand{border-bottom-color:rgba(180,202,229,.12);color:#fff}
.brand-logo{padding:5px;border-radius:11px;background:#fff;box-shadow:0 5px 16px rgba(0,0,0,.16)}
.brand strong{color:#fff}.brand small{color:#8298b6}
.nav-list{gap:0;padding-top:18px}
.nav-group{display:grid;gap:4px;margin-bottom:18px}
.nav-group:last-child{margin-bottom:0}
.nav-group-label{padding:0 13px 7px;color:#7187a5;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.nav-item{color:#aebdd1}
.nav-item:hover{background:rgba(130,169,218,.09);color:#f1f6fc}
.nav-item.is-active{background:rgba(41,130,229,.18);color:#fff;box-shadow:inset 0 0 0 1px rgba(105,170,243,.08)}
.nav-item.is-active:before{background:#4d9ff5;box-shadow:0 0 12px rgba(77,159,245,.58)}
.sidebar-footer{border-top-color:rgba(180,202,229,.12);background:rgba(4,14,28,.22)}
.sidebar-footer .language-switcher{border-bottom-color:rgba(180,202,229,.12)}
.language-switcher-icon{color:#8298b6}
.sidebar-footer .language-select{border-color:#293d58;background:#10243f;color:#c3cede}
.sidebar-footer .language-select:hover{border-color:#49698e}
.sidebar-footer .language-select-wrap::after{border-color:#8195af}
.sidebar-footer .language-select:focus{border-color:#579fee;box-shadow:0 0 0 3px rgba(77,159,245,.16)}
.sidebar .user-chip{color:#fff}.sidebar .user-chip:hover{background:rgba(130,169,218,.09)}
.sidebar .avatar{border-color:#335d8d;background:#163b65;color:#e9f4ff}
.sidebar .user-chip-copy strong{color:#eef4fb}.sidebar .user-chip-copy small{color:#8298b6}
.sidebar .logout-button{color:#8298b6}.sidebar .logout-button:hover{background:rgba(130,169,218,.09);color:#fff}

/* Framed workspace */
.app-shell{background:#08172c}
.brand{flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;padding:0 24px}
.brand-logo{width:132px;height:auto;padding:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}
.brand-context{color:#8298b6;font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.main-area{padding:16px;background:#08172c}
.page-container{max-width:none;min-height:calc(100vh - 32px);margin:0;padding:34px 38px 52px;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:linear-gradient(180deg,#f9fbfd 0,#f4f7fb 220px);box-shadow:0 18px 45px rgba(0,8,20,.18)}
@media(max-width:1260px){.page-container{padding:30px 28px 48px}}
@media(max-width:900px){
  .main-area{padding:0 10px 10px}
  .mobile-header{background:#08172c;border-bottom:0;box-shadow:none;color:#fff}
  .mobile-header .icon-button{color:#c4d2e4}.mobile-header .icon-button:hover{background:rgba(130,169,218,.1);color:#fff}
  .mobile-brand{color:#fff}
  .page-container{min-height:calc(100vh - 72px);padding:24px 20px 42px;border-radius:16px}
}
@media(max-width:600px){.page-container{padding:20px 14px 34px;border-radius:14px}}

/* License assignment wizard */
.license-stepper{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;padding:24px 24px 12px}
.license-step{position:relative;display:flex;align-items:center;gap:10px;min-width:0;color:#7b8899}
.license-step:not(:last-child):after{content:"";position:absolute;left:42px;right:-14px;top:15px;height:1px;background:#d9e1eb;z-index:0}
.license-step span{position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border:1px solid #d9e1eb;border-radius:50%;background:#eef2f6;color:#536278;font-weight:750}
.license-step strong{position:relative;z-index:1;padding-right:8px;background:#fff;color:inherit;font-size:12px;white-space:nowrap}
.license-step.is-current{color:#075fca}.license-step.is-current span{border-color:#126fdd;background:#126fdd;color:#fff;box-shadow:0 0 0 4px #edf5ff}
.license-step.is-complete span{border-color:#9dc5f2;background:#eaf4ff;color:#075fca}
.license-step.is-complete:not(:last-child):after{background:#9dc5f2}
.license-wizard-grid{display:grid;grid-template-columns:1fr;padding:10px 24px 28px}
.license-wizard-panel{display:grid;grid-template-columns:42px minmax(0,1fr);column-gap:18px;min-width:0;padding:24px 0}
.license-wizard-panel:not(:last-child){border-bottom:1px solid #e7ecf2}
.license-panel-number{display:grid;place-items:center;align-self:start;width:34px;height:34px;border:1px solid #cfe0f4;border-radius:9px;background:#edf5ff;color:#075fca;font-size:12px;font-weight:800}
.license-wizard-panel>.form-group,.license-wizard-panel>.license-type-fieldset,.license-wizard-panel>.license-quantity-fields,.license-wizard-panel>.license-details-step,.license-wizard-panel>.license-summary,.license-wizard-panel>.license-optional-details,.license-wizard-panel>.license-confirm-actions{grid-column:2}
.license-type-fieldset{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;border:0;min-width:0}
.license-type-fieldset legend{grid-column:1/-1;margin-bottom:5px}
.license-type-option{display:flex;align-items:center;gap:11px;min-height:48px;padding:11px 13px;border:1px solid #d7dfe9;border-radius:9px;background:#fff;color:#3f5067;font-size:12px;font-weight:650;cursor:pointer}
.license-type-option:hover{border-color:#a9bfd9;background:#f9fbfe}
.license-type-option:has(input:checked){border-color:#3983d7;background:#f2f7ff;color:#145ba8;box-shadow:0 0 0 2px rgba(6,103,217,.08)}
.license-type-option:has(input:disabled){cursor:not-allowed;opacity:.55}
.license-type-option[hidden]{display:none}
.license-type-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.license-radio{display:grid;place-items:center;width:18px;height:18px;flex:0 0 18px;border:2px solid #c4ceda;border-radius:50%;background:#fff}
.license-type-option input:checked+.license-radio{border-color:#1670da;box-shadow:inset 0 0 0 4px #fff;background:#1670da}
.license-type-option input:focus-visible+.license-radio{outline:3px solid rgba(6,103,217,.2);outline-offset:2px}
.license-quantity-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:780px}
.license-quantity-fields .form-group{grid-template-rows:34px 42px auto;align-content:start}
.license-quantity-fields .form-label{display:flex;align-items:flex-end;min-height:34px}
.license-quantity-fields .field{height:42px;min-height:42px}
.license-summary{padding:17px;border:1px solid #dce4ee;border-radius:11px;background:#fbfcfe}
.license-summary h3{margin:0 0 12px;color:#20334c;font-size:13px}
.license-summary dl{display:grid;gap:9px;margin:0}.license-summary dl>div{display:flex;justify-content:space-between;gap:12px;color:#66768b;font-size:11px}.license-summary dt,.license-summary dd{margin:0}.license-summary dd{color:#2d3f57;font-weight:700;text-align:right}
.license-summary .license-summary-total{margin-top:3px;padding-top:12px;border-top:1px solid #dfe6ef;color:#1c2e46;font-size:14px}.license-summary-total dd{font-size:17px;color:#163f76}
.license-summary dd .license-summary-note{display:block;margin-top:2px;color:#77869a;font-weight:400;font-size:10px}
.license-details-step h3{margin:0 0 14px;color:#20334c;font-size:13px}
.license-optional-details{margin-top:12px;border-top:1px solid #e3e9f1}.license-optional-details summary{padding:11px 0;color:#53667e;font-size:11px;font-weight:700;cursor:pointer}.license-optional-details summary:hover{color:#075fca}
.license-optional-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-top:2px}.license-optional-fields .full{grid-column:1/-1}.license-optional-fields .textarea{min-height:76px}
.license-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.license-mobile-next,.license-mobile-actions,.license-mobile-back{display:none}
@media(max-width:1180px){
  .license-type-fieldset{grid-template-columns:1fr}.license-quantity-fields{max-width:none}
}
@media(max-width:700px){
  .license-stepper{gap:8px;padding:20px 16px 14px}.license-step{justify-content:center}.license-step strong{display:none}.license-step:not(:last-child):after{left:calc(50% + 18px);right:calc(-50% + 18px);top:14px}.license-step span{width:28px;height:28px;flex-basis:28px;font-size:11px}
  .license-wizard-grid{display:block;padding:16px}
  .license-wizard-panel{display:none}.license-wizard-panel.is-current{display:block}.license-wizard-panel:nth-child(-n+2){padding-bottom:0;border-bottom:0}
  .license-panel-number{display:block;width:auto;height:auto;margin-bottom:5px;border:0;background:transparent;color:#7590b2;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
  .license-quantity-fields,.license-optional-fields{grid-template-columns:1fr}
  .license-mobile-next{display:flex;width:100%;margin-top:18px}.license-mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.license-mobile-back{display:flex}
  .license-summary{padding:15px}.license-confirm-actions{display:grid;grid-template-columns:1fr 1.4fr}
}

/* Public growth experience */
.public-body{display:block;width:100%;max-width:100%;padding:0;overflow-x:hidden;background:#08172c;color:#17243a}
.public-shell{width:100%;max-width:100%;min-width:0;min-height:100vh;overflow:hidden;background:#f7f9fc}
.public-nav{position:absolute;z-index:10;top:0;left:50%;display:flex;align-items:center;justify-content:space-between;width:min(1240px,calc(100% - 64px));height:92px;transform:translateX(-50%);border-bottom:1px solid rgba(181,205,234,.15)}
.public-brand{display:flex;flex-direction:column;align-items:flex-start;gap:2px;color:#fff}
.public-brand img{width:126px;height:auto;display:block}
.public-brand span{color:#8298b6;font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.public-nav-links{display:flex;align-items:center;gap:30px}
.public-nav-links>a{color:#afbed1;font-size:12px;font-weight:700}
.public-nav-links>a:hover{color:#fff}
.public-nav-links .public-nav-cta{min-height:39px;padding:0 16px;display:inline-flex;align-items:center;border:1px solid rgba(113,177,247,.4);border-radius:8px;background:rgba(31,121,220,.18);color:#fff}
.public-nav-links .public-nav-cta:hover{background:#1474dc;border-color:#1474dc}
.public-hero{position:relative;display:grid;grid-template-columns:minmax(0,.87fr) minmax(550px,1.13fr);align-items:center;gap:60px;width:100%;max-width:100%;min-width:0;min-height:790px;padding:138px max(32px,calc((100vw - 1240px)/2)) 84px;overflow:hidden;background:radial-gradient(circle at 78% 18%,rgba(25,111,207,.22),transparent 28%),radial-gradient(circle at 4% 75%,rgba(23,95,179,.16),transparent 32%),linear-gradient(145deg,#0a1c35 0%,#08172c 66%,#0a203c 100%);color:#fff}
.public-hero>*,.public-value-section>*,.public-value-grid>*{min-width:0}
.public-hero:after{content:"";position:absolute;right:-170px;bottom:-320px;width:700px;height:700px;border:1px solid rgba(115,165,224,.09);border-radius:50%;box-shadow:0 0 0 110px rgba(115,165,224,.025),0 0 0 220px rgba(115,165,224,.02);pointer-events:none}
.public-hero-copy{position:relative;z-index:2;width:100%;max-width:610px;min-width:0}
.public-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:20px;color:#8fbef2;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.public-eyebrow>span{width:28px;height:1px;background:#4d9ff5}
.public-hero h1{max-width:660px;margin:0;font-size:clamp(42px,5vw,68px);font-weight:760;line-height:1.07;letter-spacing:-.018em;text-wrap:balance}
.public-hero-lead{max-width:590px;margin:27px 0 0;color:#adbed2;font-size:17px;line-height:1.7}
.public-hero-actions{display:flex;align-items:center;gap:12px;margin-top:34px}
.public-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:50px;padding:0 21px;border:1px solid transparent;border-radius:9px;font-size:13px;font-weight:750;transition:.18s ease}
.public-button:hover{transform:translateY(-2px)}
.public-button-primary{border-color:#1a78de;background:linear-gradient(180deg,#1680f1,#0765cf);box-shadow:0 12px 28px rgba(3,74,157,.28);color:#fff}
.public-button-primary:hover{background:#1478df;box-shadow:0 16px 32px rgba(3,74,157,.35)}
.public-button-secondary{border-color:#314966;background:rgba(255,255,255,.025);color:#c3d0df}
.public-button-secondary:hover{border-color:#54769d;background:rgba(255,255,255,.05);color:#fff}
.public-trust-line{display:flex;flex-wrap:wrap;gap:18px;margin-top:30px;color:#7f93ac;font-size:10px;font-weight:650}
.public-trust-line span{display:flex;align-items:center;gap:5px}
.public-trust-line span::first-letter{color:#55bb91}
.public-product-stage{position:relative;z-index:2;display:grid;place-items:center;width:100%;max-width:760px;min-width:0;min-height:510px}
.public-product-glow{position:absolute;width:520px;height:420px;border-radius:50%;background:rgba(15,108,215,.19);filter:blur(75px)}
.public-app-preview{position:relative;z-index:2;display:grid;grid-template-columns:126px minmax(0,1fr);width:min(680px,100%);max-width:100%;min-width:0;height:445px;overflow:hidden;border:1px solid rgba(160,192,230,.24);border-radius:18px;background:#f7f9fc;box-shadow:0 34px 80px rgba(0,8,20,.46);transform:perspective(1400px) rotateY(-4deg) rotateX(1deg)}
.preview-sidebar{padding:21px 13px;background:linear-gradient(180deg,#0b213d,#091a31);color:#9eb0c7}
.preview-sidebar img{width:86px;margin:0 4px}
.preview-sidebar>small{display:block;margin:4px 4px 24px;color:#7087a4;font-size:6px;font-weight:800;letter-spacing:.14em}
.preview-nav-label{margin:17px 7px 7px;color:#607794;font-size:6px;font-weight:800;letter-spacing:.14em}
.preview-nav-item{display:flex;align-items:center;gap:7px;padding:8px 7px;border-radius:6px;font-size:8px;font-weight:700}
.preview-nav-item i{width:9px;height:9px;border:1px solid currentColor;border-radius:3px;opacity:.75}
.preview-nav-item.is-active{background:rgba(41,130,229,.19);color:#eef6ff}
.preview-workspace{min-width:0;padding:24px 22px;background:linear-gradient(180deg,#fafbfd,#f3f6fa)}
.preview-topline{display:flex;align-items:center;justify-content:space-between;color:#26384f;font-size:13px;font-weight:780}
.preview-topline b{display:flex;align-items:center;gap:5px;color:#07875b;font-size:7px;text-transform:uppercase;letter-spacing:.08em}
.preview-topline b:before{content:"";width:5px;height:5px;border-radius:50%;background:#13a774;box-shadow:0 0 0 3px #def6ec}
.preview-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:18px}
.preview-kpis>div{padding:13px;border:1px solid #e0e7f0;border-radius:9px;background:#fff;box-shadow:0 5px 15px rgba(24,45,72,.035)}
.preview-kpis small,.preview-kpis strong,.preview-kpis em{display:block}
.preview-kpis small{min-height:20px;color:#718096;font-size:7px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.preview-kpis strong{margin-top:4px;color:#143d72;font-size:19px;line-height:1}
.preview-kpis em{margin-top:7px;color:#7d8a9b;font-size:6px;font-style:normal}
.preview-chart-card{margin-top:10px;padding:14px;border:1px solid #e0e7f0;border-radius:9px;background:#fff}
.preview-card-head{display:flex;align-items:center;justify-content:space-between;color:#263950;font-size:9px;font-weight:750}
.preview-card-head small{color:#8794a4;font-size:6px;font-weight:600}
.preview-chart{height:115px;display:flex;align-items:flex-end;gap:14px;margin-top:11px;padding:8px 9px 0;border-bottom:1px solid #e9edf3;background:repeating-linear-gradient(to top,transparent 0,transparent 28px,#eef2f6 29px)}
.preview-chart span{flex:1;max-width:28px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,#5ba0eb,#c7def8)}
.preview-activity{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding:10px 12px;border:1px solid #e1e8f0;border-radius:8px;background:#fff;color:#5e6f84;font-size:7px}
.preview-activity span{display:flex;align-items:center;gap:7px}.preview-activity i{width:6px;height:6px;border-radius:50%;background:#0ea671}.preview-activity b{color:#087552;font-size:9px}
.public-floating-card{position:absolute;z-index:3;border:1px solid rgba(175,205,238,.23);border-radius:11px;background:rgba(12,34,61,.94);box-shadow:0 18px 38px rgba(0,9,23,.32);backdrop-filter:blur(10px)}
.public-floating-card small,.public-floating-card strong{display:block}.public-floating-card small{color:#7990ac;font-size:7px;text-transform:uppercase;letter-spacing:.08em}.public-floating-card strong{margin-top:4px;color:#eff6ff;font-size:10px}
.public-floating-profit{top:42px;right:-18px;padding:13px 16px}
.public-floating-secure{left:-20px;bottom:50px;display:flex;align-items:center;gap:10px;padding:12px 15px}.public-floating-secure>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#123f43;color:#5ad0a1;font-size:11px;font-weight:800}
.public-proof{display:grid;grid-template-columns:.7fr 1.3fr;align-items:center;gap:40px;padding:26px max(32px,calc((100vw - 1240px)/2));border-bottom:1px solid #e2e8f0;background:#fff}
.public-proof p{margin:0;color:#6b7a8e;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em}
.public-proof>div{display:flex;align-items:center;justify-content:space-between;gap:24px;color:#78879a;font-size:10px;font-weight:650}.public-proof strong{color:#0b438d;font-size:20px;letter-spacing:-.03em}.public-proof span{padding-left:23px;border-left:1px solid #e2e8f0}
.public-section{padding:110px max(32px,calc((100vw - 1140px)/2))}
.public-section-heading{max-width:680px;margin:0 auto;text-align:center}.public-eyebrow-dark{justify-content:center;color:#3077c5}.public-section-heading h2,.public-value-copy h2{margin:0;color:#14243a;font-size:clamp(34px,4vw,49px);line-height:1.13;letter-spacing:-.014em;text-wrap:balance}.public-section-heading>p{max-width:610px;margin:20px auto 0;color:#66768b;font-size:15px;line-height:1.7}
.public-step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:58px}
.public-step-grid article{position:relative;min-height:275px;padding:28px;border:1px solid #dee6f0;border-radius:14px;background:#fff;box-shadow:0 9px 30px rgba(23,48,81,.045)}
.public-step-grid article>span{position:absolute;top:22px;right:24px;color:#c8d4e2;font-size:11px;font-weight:800;letter-spacing:.08em}
.public-step-icon{display:grid;place-items:center;width:43px;height:43px;border:1px solid #d4e6fa;border-radius:10px;background:#edf5ff;color:#0967d3;font-size:17px;font-weight:800}
.public-step-grid h3{margin:48px 0 10px;color:#1d3049;font-size:17px;letter-spacing:-.02em}.public-step-grid p{margin:0;color:#6c7b8f;font-size:12px;line-height:1.65}
.public-value-section{display:grid;grid-template-columns:.82fr 1.18fr;gap:70px;padding:105px max(32px,calc((100vw - 1240px)/2));background:linear-gradient(145deg,#0a1c35,#08172c);color:#fff}
.public-value-copy{align-self:center}.public-value-copy h2{color:#fff}.public-value-copy>p{margin:22px 0;color:#a5b5c9;font-size:15px;line-height:1.7}.public-value-copy>a{display:inline-block;margin-top:13px;color:#70b1f6;font-size:12px;font-weight:750}.public-value-copy>a:hover{color:#fff}
.public-value-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.public-value-grid article{padding:28px;border:1px solid rgba(155,187,225,.17);border-radius:14px;background:rgba(255,255,255,.035)}.public-value-grid article>small{color:#5fa5ed;font-size:8px;font-weight:800;letter-spacing:.14em}.public-value-grid h3{margin:30px 0 9px;font-size:18px}.public-value-grid p{min-height:57px;margin:0;color:#9eafc3;font-size:11px;line-height:1.65}.public-value-grid ul{display:grid;gap:10px;margin:24px 0 0;padding:20px 0 0;border-top:1px solid rgba(155,187,225,.13);list-style:none}.public-value-grid li{position:relative;padding-left:17px;color:#c2cedc;font-size:10px}.public-value-grid li:before{content:"✓";position:absolute;left:0;color:#56bd92;font-weight:800}
.public-final-cta{display:flex;align-items:center;justify-content:space-between;gap:60px;margin:80px auto;width:min(1140px,calc(100% - 64px));padding:52px 58px;border-radius:18px;background:linear-gradient(125deg,#0969d8,#0752ae);box-shadow:0 20px 50px rgba(7,72,149,.2);color:#fff}.public-final-cta>div>span{font-size:9px;font-weight:800;letter-spacing:.14em;color:#a9d0fb}.public-final-cta h2{max-width:650px;margin:13px 0 9px;font-size:34px;line-height:1.17;letter-spacing:-.012em}.public-final-cta p{margin:0;color:#c7ddf5;font-size:13px}.public-button-light{flex:0 0 auto;background:#fff;color:#0758b8;box-shadow:0 10px 28px rgba(0,36,81,.18)}.public-button-light:hover{color:#063f88}
.public-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:48px;padding:34px max(32px,calc((100vw - 1240px)/2));border-top:1px solid #162c49;background:#08172c;color:#8295ad}.public-footer-intro{display:flex;align-items:center;gap:22px;min-width:0}.public-footer p{margin:0;font-size:10px}.public-footer-meta{display:grid;justify-items:end;gap:13px;flex:0 0 auto}.public-footer .language-switcher{min-width:145px}.public-footer .language-select{border-color:#293d58;background:#10243f;color:#c3cede}.public-footer .language-select-wrap::after{border-color:#8195af}.public-footer-links{display:flex;align-items:center;gap:18px}.public-footer-links a{color:inherit;font-size:10px;font-weight:400}.public-footer-links a:hover{color:#fff}

/* Public legal documents */
.legal-body{background:#f7f9fc}.legal-main{min-height:100vh}.legal-hero{padding:138px max(32px,calc((100vw - 1080px)/2)) 64px;background:radial-gradient(circle at 83% 10%,rgba(41,126,225,.18),transparent 31%),linear-gradient(145deg,#0b213d,#08172c);color:#fff}.legal-back{display:inline-flex;align-items:center;gap:7px;margin-bottom:38px;color:#91bce9;font-size:11px;font-weight:700}.legal-back:hover{color:#fff}.legal-hero .public-eyebrow{margin-bottom:18px}.legal-hero h1{max-width:850px;margin:0;font-size:clamp(42px,6vw,68px);line-height:1.03;letter-spacing:-.035em}.legal-hero>p{max-width:760px;margin:22px 0 0;color:#b3c2d4;font-size:15px;line-height:1.75}.legal-meta{margin-top:28px;color:#7f95b0;font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:.07em}.legal-meta time{color:#b9c9da}.legal-layout{display:grid;grid-template-columns:245px minmax(0,735px);gap:68px;justify-content:center;padding:70px 32px 100px}.legal-toc{position:sticky;top:116px;align-self:start;padding:22px;border:1px solid #e0e7f0;border-radius:12px;background:#fff;box-shadow:0 8px 28px rgba(26,48,84,.045)}.legal-toc>strong{display:block;padding-bottom:14px;border-bottom:1px solid #e8edf3;color:#31465f;font-size:10px;text-transform:uppercase;letter-spacing:.09em}.legal-toc ol{display:grid;gap:10px;margin:16px 0 0;padding:0;list-style:none;counter-reset:legal}.legal-toc li{counter-increment:legal}.legal-toc a{display:grid;grid-template-columns:20px 1fr;gap:6px;color:#718096;font-size:10px;line-height:1.35}.legal-toc a:before{content:counter(legal,decimal-leading-zero);color:#a8b5c4;font-size:8px;font-weight:800}.legal-toc a:hover{color:#0968e5}.legal-document{min-width:0}.legal-document>section{scroll-margin-top:120px;padding:0 0 46px;margin:0 0 46px;border-bottom:1px solid #dfe6ef}.legal-document>section:last-child{margin-bottom:0;border-bottom:0}.legal-document h2{display:flex;align-items:flex-start;gap:14px;margin:0 0 22px;color:#182b44;font-size:23px;line-height:1.25;letter-spacing:-.02em}.legal-document h2 span{flex:0 0 auto;margin-top:5px;color:#3c85d7;font-size:9px;font-weight:800;letter-spacing:.1em}.legal-document p,.legal-document li{color:#5b6c81;font-size:13px;line-height:1.85}.legal-document p{margin:0 0 15px}.legal-document ul{display:grid;gap:10px;margin:18px 0 0;padding:0;list-style:none}.legal-document li{position:relative;padding-left:21px}.legal-document li:before{content:"";position:absolute;top:.74em;left:2px;width:6px;height:6px;border-radius:50%;background:#4b93df}.legal-document strong{color:#334a64}.legal-document a{font-weight:650;text-decoration:underline;text-decoration-color:#b9d6f6;text-underline-offset:3px}.legal-document a:hover{text-decoration-color:currentColor}.legal-document .legal-translation-notice{margin:0 0 38px;padding:15px 18px;border:1px solid #cfe0f5;border-left:3px solid #4b93df;border-radius:10px;background:#f2f7fd;color:#42566e;font-size:12px;line-height:1.75}

/* Public authentication, aligned with the workspace */
.guest-body:not(.public-body){padding:16px;background:#08172c}
.guest-body:not(.public-body) .guest-shell{width:100%;max-width:1180px;min-width:0}
.guest-body:not(.public-body) .login-shell{grid-template-columns:1fr .9fr;min-height:min(740px,calc(100vh - 32px));border-color:rgba(255,255,255,.15);border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(0,7,18,.28)}
.guest-body:not(.public-body) .login-visual{position:relative;min-height:0;padding:58px;background:radial-gradient(circle at 85% 12%,rgba(38,126,226,.22),transparent 30%),linear-gradient(150deg,#0b213d,#08172c);overflow:hidden}
.guest-body:not(.public-body) .login-visual:after{content:"";position:absolute;right:-190px;bottom:-250px;width:530px;height:530px;border:1px solid rgba(113,164,223,.1);border-radius:50%;box-shadow:0 0 0 90px rgba(113,164,223,.025),0 0 0 180px rgba(113,164,223,.018)}
.login-logo{position:relative;z-index:1;color:inherit}.login-visual .login-logo{flex-direction:column;align-items:flex-start;gap:3px;margin-bottom:58px;color:#fff}.login-visual .login-logo-img{width:132px;height:auto}.login-visual .login-logo span{color:#8298b6;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.auth-visual-badge{position:relative;z-index:1;display:inline-flex;margin-bottom:18px;padding:6px 9px;border:1px solid rgba(102,166,238,.23);border-radius:999px;background:rgba(40,123,216,.1);color:#8dbef4;font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.guest-body:not(.public-body) .login-visual h1{position:relative;z-index:1;max-width:520px;font-size:44px;font-weight:700;line-height:1.12;letter-spacing:0}.guest-body:not(.public-body) .login-visual p{position:relative;z-index:1;max-width:520px;color:#a8b9cc;font-size:15px;line-height:1.7}.guest-body:not(.public-body) .login-features{position:relative;z-index:1;grid-template-columns:repeat(2,1fr);gap:12px}.guest-body:not(.public-body) .login-feature{gap:12px;min-height:64px;padding:15px 16px;border:1px solid rgba(145,180,220,.13);border-radius:10px;background:rgba(255,255,255,.025);color:#c9d5e3;font-size:12px;font-weight:600;line-height:1.45}.guest-body:not(.public-body) .login-feature span{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:#113f44;color:#65d3a7;font-size:11px}
.guest-body:not(.public-body) .login-form-side{min-width:0;padding:58px 62px}.guest-body:not(.public-body) .login-form-side form,.guest-body:not(.public-body) .login-form-side .form-group,.guest-body:not(.public-body) .register-shell .form-row>*{min-width:0}.login-form-side>.login-logo{align-self:flex-start;margin-bottom:46px;color:#173b6b}.login-form-side>.login-logo img{width:112px;height:auto}.login-form-side>.login-logo span{color:#718096;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.auth-form-kicker{display:block;margin-bottom:9px;color:#1970cf;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.guest-body:not(.public-body) .login-form-side h2{font-size:30px;font-weight:700;line-height:1.18;letter-spacing:0}.guest-body:not(.public-body) .login-form-side>p{margin:7px 0 27px;font-size:12px}.guest-body:not(.public-body) .login-form-side .field{max-width:100%;min-height:45px;border-radius:8px}.guest-body:not(.public-body) .login-form-side .button{min-height:45px;margin-top:3px}.auth-footer{display:contents}.guest-body:not(.public-body) .login-alt{font-size:13px}.auth-security-note{display:flex;align-items:center;gap:7px;margin-top:20px;padding-top:18px;border-top:1px solid #e8edf3;color:#7b899a;font-size:11px}.auth-security-note span{display:grid;place-items:center;width:17px;height:17px;flex:0 0 17px;border-radius:50%;background:#e8f7f0;color:#07875b;font-size:8px;font-weight:800}.guest-body:not(.public-body) .language-switcher{max-width:100%;margin-top:18px}.guest-body:not(.public-body) .register-shell .login-form-side{padding:34px 46px}.guest-body:not(.public-body) .register-shell .login-form-side>.login-logo{margin-bottom:18px}.guest-body:not(.public-body) .register-shell h2{font-size:25px;line-height:1.2;letter-spacing:.005em}.guest-body:not(.public-body) .register-shell .register-form{gap:13px}.guest-body:not(.public-body) .register-shell .field{min-height:40px}.guest-body:not(.public-body) .register-shell .auth-security-note{margin-top:12px;padding-top:12px}

@media(max-width:1100px){
  .public-hero{grid-template-columns:1fr;gap:55px;padding-top:155px}.public-hero-copy{max-width:780px}.public-product-stage{width:min(760px,100%);margin:0 auto}.public-value-section{grid-template-columns:1fr;gap:50px}.public-value-copy{max-width:720px}.public-proof{grid-template-columns:1fr;gap:15px}.public-proof>div{justify-content:flex-start}.guest-body:not(.public-body) .login-visual{padding:44px}.guest-body:not(.public-body) .login-visual h1{font-size:38px}.guest-body:not(.public-body) .login-features{grid-template-columns:1fr}.guest-body:not(.public-body) .login-feature{min-height:52px}.guest-body:not(.public-body) .login-form-side{padding:46px 40px}.guest-body:not(.public-body) .register-shell .login-form-side{padding:30px 36px}
}
@media(max-width:960px){
  .guest-body:not(.public-body){align-items:start;min-height:100vh;padding:14px}
  .guest-body:not(.public-body) .guest-shell{width:min(100%,680px);margin:auto}
  .guest-body:not(.public-body) .login-shell,.guest-body:not(.public-body) .register-shell{grid-template-columns:minmax(0,1fr);min-height:calc(100vh - 28px)}
  .guest-body:not(.public-body) .login-visual{display:none}
  .guest-body:not(.public-body) .login-form-side,.guest-body:not(.public-body) .register-shell .login-form-side{width:100%;padding:48px 54px}
  .guest-body:not(.public-body) .login-form-side>.login-logo,.guest-body:not(.public-body) .register-shell .login-form-side>.login-logo{margin-bottom:34px}
  .guest-body:not(.public-body) .register-shell .register-form{gap:16px}
}
@media(max-width:820px){
  .public-nav{left:18px;right:18px;width:auto;max-width:none;height:78px;transform:none}.legal-hero{padding-top:124px}.public-nav-links>.public-nav-section-link{display:none}.public-nav-links{gap:14px}.public-nav-links .public-nav-cta{padding:0 13px}.public-hero{padding:125px 20px 68px}.public-hero h1{font-size:46px}.public-product-stage{min-height:430px}.public-app-preview{grid-template-columns:100px minmax(0,1fr);height:390px;transform:none}.preview-sidebar{padding:18px 10px}.preview-sidebar img{width:72px}.preview-workspace{padding:19px 16px}.preview-chart{height:95px}.public-floating-profit{right:-4px}.public-floating-secure{left:-5px;bottom:25px}.public-proof{padding:24px 20px}.public-proof>div{flex-wrap:wrap}.public-section{padding:80px 20px}.public-step-grid{grid-template-columns:1fr}.public-step-grid article{min-height:220px}.public-step-grid h3{margin-top:34px}.public-value-section{padding:80px 20px}.public-final-cta{align-items:flex-start;flex-direction:column;width:calc(100% - 40px);margin:55px auto;padding:38px}.public-footer{grid-template-columns:1fr;justify-items:start;padding:34px 20px}.guest-body:not(.public-body) .login-shell{grid-template-columns:1fr}.guest-body:not(.public-body) .login-visual{display:none}
}
@media(max-width:560px){
  .public-brand img{width:105px}.public-brand span{font-size:7px}.public-nav-links>a:nth-last-child(2){display:none}.public-hero{min-height:auto}.public-hero h1{font-size:38px}.public-hero-lead{font-size:14px}.public-hero-actions{align-items:stretch;flex-direction:column}.public-button{width:100%}.public-trust-line{display:grid;gap:8px}.public-product-stage{min-height:350px;margin-top:10px}.public-app-preview{grid-template-columns:76px minmax(0,1fr);height:320px;border-radius:13px}.preview-sidebar{padding:14px 7px}.preview-sidebar img{width:56px}.preview-sidebar>small{margin-bottom:14px;font-size:4px}.preview-nav-label{margin:12px 4px 5px;font-size:5px}.preview-nav-item{gap:4px;padding:6px 4px;font-size:6px}.preview-nav-item i{width:7px;height:7px}.preview-workspace{padding:14px 10px}.preview-topline{font-size:10px}.preview-kpis{gap:5px;margin-top:11px}.preview-kpis>div{padding:8px 6px}.preview-kpis small{min-height:15px;font-size:5px}.preview-kpis strong{font-size:13px}.preview-kpis em{font-size:4px}.preview-chart-card{padding:9px}.preview-chart{height:65px;gap:7px}.preview-activity{padding:7px;font-size:5px}.public-floating-card{display:none}.public-proof>div{gap:14px}.public-proof span{padding-left:14px}.public-section-heading h2,.public-value-copy h2{font-size:33px}.public-step-grid{margin-top:38px}.public-value-grid{grid-template-columns:1fr}.public-value-grid article{padding:24px}.public-final-cta{padding:30px 25px}.public-final-cta h2{font-size:28px}.guest-body:not(.public-body){padding:8px}.guest-body:not(.public-body) .guest-shell{width:100%}.guest-body:not(.public-body) .login-shell,.guest-body:not(.public-body) .register-shell{min-height:calc(100vh - 16px);border-radius:15px}.guest-body:not(.public-body) .login-form-side,.guest-body:not(.public-body) .register-shell .login-form-side{padding:30px 23px}.guest-body:not(.public-body) .login-form-side h2{font-size:27px}.guest-body:not(.public-body) .login-form-side>p{margin-bottom:23px;line-height:1.55}.login-form-side>.login-logo{margin-bottom:30px}.guest-body:not(.public-body) .register-shell .form-row{grid-template-columns:1fr;gap:12px}.guest-body:not(.public-body) .register-shell .login-form-side>.login-logo{margin-bottom:16px}.guest-body:not(.public-body) .register-shell .register-form{gap:12px}.guest-body:not(.public-body) .language-switcher{width:100%}.guest-body:not(.public-body) .language-select-wrap{flex:1}.guest-body:not(.public-body) .language-select{width:100%;min-width:0}
}
@media(max-width:380px){
  .guest-body:not(.public-body){padding:0;background:#fff}
  .guest-body:not(.public-body) .login-shell,.guest-body:not(.public-body) .register-shell{min-height:100vh;border:0;border-radius:0;box-shadow:none}
  .guest-body:not(.public-body) .login-form-side,.guest-body:not(.public-body) .register-shell .login-form-side{padding:25px 18px}
  .guest-body:not(.public-body) .login-form-side h2{font-size:25px}
  .guest-body:not(.public-body) .login-form-side>.login-logo{margin-bottom:24px}
  .guest-body:not(.public-body) .register-shell .login-form-side>.login-logo{margin-bottom:14px}
}
@media(min-width:961px) and (max-height:820px){
  .guest-body:not(.public-body) .login-visual{padding:38px 46px}
  .login-visual .login-logo{margin-bottom:26px}
  .guest-body:not(.public-body) .login-visual h1{font-size:37px}
  .guest-body:not(.public-body) .login-form-side{padding-top:34px;padding-bottom:34px}
  .guest-body:not(.public-body) .register-shell .login-form-side{padding:22px 38px}
  .guest-body:not(.public-body) .register-shell .login-form-side>.login-logo{margin-bottom:10px}
  .guest-body:not(.public-body) .register-shell .login-form-side>p{margin:4px 0 12px}
  .guest-body:not(.public-body) .register-shell .register-form{gap:10px}
  .guest-body:not(.public-body) .register-shell .form-row{gap:12px}
  .guest-body:not(.public-body) .register-shell .form-group{gap:4px}
  .guest-body:not(.public-body) .register-shell .field{min-height:38px;padding-top:7px;padding-bottom:7px}
  .guest-body:not(.public-body) .register-shell .button{min-height:40px}
  .guest-body:not(.public-body) .register-shell .login-alt{margin-top:9px}
  .guest-body:not(.public-body) .register-shell .auth-security-note{margin-top:8px;padding-top:8px}
  .guest-body:not(.public-body) .register-shell .language-switcher{margin-top:8px}
}
@media(max-width:960px) and (max-height:920px){
  .guest-body:not(.public-body) .login-form-side,.guest-body:not(.public-body) .register-shell .login-form-side{padding-top:26px;padding-bottom:26px}
  .guest-body:not(.public-body) .login-form-side>.login-logo{margin-bottom:22px}
  .guest-body:not(.public-body) .register-shell .login-form-side>.login-logo{margin-bottom:10px}
  .guest-body:not(.public-body) .register-shell .login-form-side>p{margin:4px 0 12px}
  .guest-body:not(.public-body) .register-shell .register-form{gap:10px}
  .guest-body:not(.public-body) .register-shell .form-row{gap:10px}
  .guest-body:not(.public-body) .register-shell .form-group{gap:4px}
  .guest-body:not(.public-body) .register-shell .field{min-height:38px;padding-top:7px;padding-bottom:7px}
  .guest-body:not(.public-body) .register-shell .button{min-height:40px}
  .guest-body:not(.public-body) .register-shell .login-alt{margin-top:10px}
  .guest-body:not(.public-body) .register-shell .auth-security-note{margin-top:8px;padding-top:8px}
  .guest-body:not(.public-body) .register-shell .language-switcher{margin-top:10px}
}
@media(orientation:landscape) and (max-height:700px){
  .guest-body:not(.public-body){align-items:start;padding:8px}
  .guest-body:not(.public-body) .guest-shell{width:min(100%,920px)}
  .guest-body:not(.public-body) .login-shell,.guest-body:not(.public-body) .register-shell{min-height:calc(100vh - 16px);border-radius:14px}
  .guest-body:not(.public-body) .login-form-side,.guest-body:not(.public-body) .register-shell .login-form-side{padding:18px 30px}
  .guest-body:not(.public-body) .login-form-side>.login-logo,.guest-body:not(.public-body) .register-shell .login-form-side>.login-logo{margin-bottom:10px}
  .guest-body:not(.public-body) .login-form-side>.login-logo img{width:94px}
  .guest-body:not(.public-body) .login-form-side h2{font-size:24px}
  .guest-body:not(.public-body) .login-form-side>p{margin:3px 0 12px}
  .guest-body:not(.public-body) .auth-form-kicker{margin-bottom:4px}
  .guest-body:not(.public-body) .login-form-side .field{min-height:36px;padding-top:7px;padding-bottom:7px}
  .guest-body:not(.public-body) .login-form-side .button{min-height:38px}
  .guest-body:not(.public-body) .login-form-side .mb-2{margin-bottom:10px}
  .guest-body:not(.public-body) .login-alt{margin-top:8px}
  .guest-body:not(.public-body) .auth-security-note{margin-top:8px;padding-top:8px}
  .guest-body:not(.public-body) .language-switcher{margin-top:8px}
  .guest-body:not(.public-body) .register-shell .register-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
  .guest-body:not(.public-body) .register-shell .form-row{display:contents}
  .guest-body:not(.public-body) .register-shell .form-group{gap:3px}
  .guest-body:not(.public-body) .register-shell .form-label{margin:0;font-size:11px}
  .guest-body:not(.public-body) .register-shell .form-hint{margin-top:1px;font-size:9px}
  .guest-body:not(.public-body) .register-shell .button{grid-column:1/-1}
  .guest-body:not(.public-body) .auth-footer{display:grid;align-items:center;gap:8px 14px;margin-top:7px;padding-top:7px;border-top:1px solid #e8edf3}
  .guest-body:not(.public-body) .auth-footer-login{grid-template-columns:repeat(4,auto);justify-content:space-between}
  .guest-body:not(.public-body) .auth-footer-register{grid-template-columns:auto 1fr auto}
  .guest-body:not(.public-body) .auth-footer .login-alt,.guest-body:not(.public-body) .auth-footer .auth-security-note,.guest-body:not(.public-body) .auth-footer .language-switcher{width:auto;margin:0;padding:0;border:0;white-space:nowrap}
  .guest-body:not(.public-body) .auth-footer .auth-security-note{justify-self:center}
  .guest-body:not(.public-body) .auth-footer .language-select{min-width:108px;padding-top:6px;padding-bottom:6px;font-size:10px}
}
@media(orientation:landscape) and (max-height:480px){
  .guest-body:not(.public-body) .auth-form-kicker{display:none}
  .guest-body:not(.public-body) .register-shell .login-form-side>p{display:none}
  .guest-body:not(.public-body) .register-shell .login-form-side>.login-logo{margin-bottom:6px}
  .guest-body:not(.public-body) .register-shell h2{font-size:21px}
  .guest-body:not(.public-body) .register-shell .register-form{gap:6px 10px}
  .guest-body:not(.public-body) .register-shell .field{min-height:32px;padding-top:5px;padding-bottom:5px}
  .guest-body:not(.public-body) .register-shell .button{min-height:34px}
  .guest-body:not(.public-body) .register-shell .form-hint{display:none}
}

/* Workspace density: un punto menos de tipografia en el area logada para que las columnas quepan */
.app-shell .page-header h1{font-size:24px}
.app-shell .page-header p{font-size:12px}
.app-shell .card-header h2,.app-shell .card-header h3{font-size:14px}
.app-shell .card-header p{font-size:11px}
.app-shell .nav-item{font-size:12px}
.app-shell .kpi-label{font-size:10px}
.app-shell .kpi-value{font-size:22px}
.app-shell .kpi-help{font-size:10px}
.app-shell .wallet-stat span{font-size:10px}
.app-shell .wallet-stat strong{font-size:18px}
.app-shell .metric-line,.app-shell .alert-row,.app-shell .rule-item,.app-shell .summary-item,.app-shell .definition-list dd,.app-shell .definition-list dt{font-size:11px}
.app-shell .tab-button,.app-shell .form-label{font-size:11px}
.app-shell .alert{font-size:11px}
.app-shell .button{font-size:11px}
.app-shell .button-small{min-height:30px;padding:0 9px;font-size:10px}
.app-shell .text-link{font-size:11px}
.app-shell .code{font-size:11px;padding:2px 4px}
.app-shell .badge{padding:3px 7px;font-size:9px}
/* Tablas: celdas mas compactas y sin partir palabras por la mitad */
.app-shell .data-table{min-width:680px}
.app-shell .data-table th{height:36px;padding:8px 10px;font-size:9px;letter-spacing:.05em}
.app-shell .data-table td{height:44px;padding:9px 10px;font-size:11px;overflow-wrap:break-word;word-break:normal}
.app-shell .data-table td .small{font-size:10px}
/* Importes y cantidades: una sola linea, digitos de ancho fijo */
.app-shell .data-table td.text-right{white-space:nowrap;font-variant-numeric:tabular-nums}
.app-shell .data-table .actions{gap:5px}
.app-shell .client-license-breakdown{min-width:168px}
.app-shell .client-license-type{padding:4px 7px;font-size:10px}
.app-shell .client-license-type strong,.app-shell .client-license-remaining,.app-shell .client-license-rhub{font-size:11px}
.app-shell .client-license-hint{font-size:9px}
/* Stepper: la etiqueta larga ("Estado y detalles opcionales") desbordaba su
   columna y quedaba tapada por el circulo del paso siguiente. Que reparta en
   dos lineas en vez de salirse. */
.app-shell .license-step strong{font-size:11px;white-space:normal;line-height:1.25;padding-right:10px}
/* Licences by type: the column always shows "remaining / assigned", so the RHUB number
   becomes secondary and the remaining one leads visually. The dash covers the unsynced
   case, where CogniFit has not yet said how much is left. */
.client-license-breakdown{min-width:205px}
.client-license-legend{display:block;margin-top:2px;text-transform:none;letter-spacing:0;font-size:9px;font-weight:600;color:#93a1b3}
.client-license-sep{color:#c2ccd9;font-size:11px}
.client-license-remaining.is-unknown{color:#a9b4c2;font-weight:600}
.client-license-rhub{font-weight:600;color:#7c8a9d}
.app-shell .client-license-breakdown{min-width:190px}
.app-shell .client-license-legend{font-size:8px}

.register-legal{margin:12px 0 0;color:#8693a4;font-size:9px;line-height:1.5;text-align:center}
.register-legal a{font-weight:650;text-decoration:underline;text-underline-offset:2px}

@media(max-width:900px){
  .legal-layout{grid-template-columns:1fr;gap:38px;padding:50px 24px 80px}
  .legal-toc{position:static}
  .legal-toc ol{grid-template-columns:repeat(2,minmax(0,1fr))}
  .public-footer{flex-direction:column;gap:24px}
  .public-footer-meta{justify-items:start}
  .public-footer-links{flex-wrap:wrap}
}
@media(max-width:620px){
  .legal-hero{padding:124px 20px 48px}
  .legal-back{margin-bottom:30px}
  .legal-hero h1{font-size:40px}
  .legal-hero>p{font-size:13px}
  .legal-layout{padding:38px 20px 65px}
  .legal-toc ol{grid-template-columns:1fr}
  .legal-document>section{padding-bottom:34px;margin-bottom:34px}
  .legal-document h2{font-size:20px}
  .legal-document p,.legal-document li{font-size:12px}
  .public-footer-intro{align-items:flex-start;flex-direction:column;gap:14px}
}

/* Salto de nivel: la barra dorada mide lo que falta para el nivel siguiente, frente a la
   barra azul, que mide el mínimo del nivel actual. Dos colores porque son dos objetivos. */
.next-tier{margin-top:18px;padding-top:16px;border-top:1px solid #edf1f5}
.next-tier-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.next-tier-head span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.035em;color:#5b6b81}
.next-tier-head strong{font-size:15px;font-weight:750;color:#9a6208}
.next-tier .progress{margin:9px 0 0;background:#f2e6cf}
.next-tier .progress>span{background:linear-gradient(90deg,#f3b53f,#d98c05)}
.next-tier-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-top:8px;font-size:12px;color:#58687f}
.next-tier-foot strong{color:#9a6208;white-space:nowrap}
.next-tier-note{margin:10px 0 0;font-size:12px;line-height:1.5;color:#77869a}

/* Tabla de pedidos de administración: dos botones de acción no caben uno al lado del otro
   en una tabla de diez columnas, así que se apilan. El justificante es un icono con el
   texto en title/aria-label, porque el enlace completo ensanchaba la columna de pago. */
.actions.actions-stacked{flex-direction:column;align-items:stretch;gap:5px}
.actions.actions-stacked .button{width:100%}
.icon-link{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid #dfe6ef;border-radius:8px;color:#075fca}
.icon-link:hover{border-color:#aac7e9;background:#f3f8ff}

/* Formularios en rejilla: .form-group es un grid y, como elemento de .form-grid, se estira a
   la altura de la fila. Sus filas internas se estiraban con él, así que un campo sin texto de
   ayuda quedaba con el input más alto que el de al lado (el select de nivel frente al importe,
   o Nombre frente a Contraseña inicial). align-content:start los deja a su altura natural y
   los inputs de una misma fila se alinean. */
.form-grid .form-group{align-content:start}

/* Modales. Se usan cuando la acción necesita que el usuario escriba algo, en lugar del
   confirm() del navegador, que solo admite sí o no. */
.modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:12px;background:rgba(16,32,56,.5)}
.modal[hidden]{display:none}
.modal-panel{width:min(560px,100%);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 24px 60px rgba(16,32,56,.28)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 21px;border-bottom:1px solid #edf1f5}
.modal-head h2{margin:0;font-size:15px;font-weight:750;letter-spacing:-.012em;color:#1a2a41}
.modal-head p{margin:4px 0 0;color:var(--muted);font-size:12px}
.modal-body{padding:21px}
.modal-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;padding:14px 21px;border-top:1px solid #edf1f5}
.modal-close{border:0;background:transparent;color:var(--muted);font-size:20px;line-height:1;padding:3px 7px;border-radius:7px;cursor:pointer}
.modal-close:hover{background:#f2f5f8;color:var(--ink)}
.reason-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#40516a;font-size:13px;line-height:1.55}
body.has-modal{overflow:hidden}
.reason-block{margin-top:16px;padding:14px;border:1px solid #f3d1d7;border-radius:10px;background:#fff7f8}
.reason-block-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:7px}
.reason-block-head strong{font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.035em;color:#b02f42}
/* Un formulario completo no cabe en el ancho de un diálogo de confirmación. Por debajo de
   900px de ventana, la regla general ya deja las rejillas de formulario en una columna. */
.modal-panel-wide{width:min(880px,100%)}
/* Dos columnas solo donde hay casillas: tres dejan 267px por campo y una etiqueta como
   "Desactivar la revisión automática de nivel (nivel manual)" necesita 272, así que partía en
   dos líneas. Un diálogo de campos cortos se queda con las tres y ocupa menos alto. */
.modal-panel .form-grid-roomy{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Las casillas llevan una frase entera por etiqueta ("Desactivar la revisión automática de
   nivel (nivel manual)"), no una palabra como el resto de los campos. En una columna normal
   iba justa y se partía en dos líneas en cuanto el navegador renderizaba el texto un punto
   más grande, así que ocupan dos columnas: sobra sitio en cualquier caso. */
.form-grid-3 .form-group-check{grid-column:span 2}
.form-group-check .checkbox-row{min-height:34px}
/* Dentro del diálogo el alto es el recurso escaso: el formulario del contrato mide 758px
   y en un portátil no cabía sin scroll. Se recorta el aire, no los campos. */
.modal-panel .form-grid{gap:13px}
.modal-panel .textarea{min-height:80px}
.modal-panel .modal-body{padding:17px 21px}
/* Leyenda sobre la barra azul: lo que falta a la izquierda y el porcentaje a la derecha. */
.progress-legend{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;margin-top:16px;font-size:12px;color:#58687f}
.progress-legend strong{color:#274a78}
.contract-banner+.progress,.progress-legend+.progress{margin-top:8px}
/* Aviso de límite de licencias: el mensaje y el botón de comprar en la misma línea. */
.token-limit-alert{margin:10px 0 0;font-weight:600}
.token-limit-alert[hidden]{display:none}
.field-invalid{border-color:#e7a7b1;box-shadow:0 0 0 4px rgba(220,61,79,.1)}
