/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-44{height:calc(var(--spacing)*44)}.min-h-screen{min-height:100vh}.w-44{width:calc(var(--spacing)*44)}.w-full{width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--line\)\]{border-color:var(--line)}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-\[var\(--surface\)\]{background-color:var(--surface)}.bg-white{background-color:var(--color-white)}.p-2{padding:calc(var(--spacing)*2)}.p-6{padding:calc(var(--spacing)*6)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.break-all{word-break:break-all}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--danger\)\]{color:var(--danger)}.text-\[var\(--down\)\]{color:var(--down)}.text-\[var\(--muted\)\]{color:var(--muted)}.text-\[var\(--ok\)\]{color:var(--ok)}.text-\[var\(--warn\)\]{color:var(--warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:48rem){.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:flex-col{flex-direction:column}}}:root{color-scheme:light;--bg:#f4f6f8;--surface:#fff;--ink:#17202a;--muted:#5b6773;--line:#d7dee6;--accent:#125e8a;--accent-soft:#e7f2f8;--danger:#9b3a32;--ok:#1f7a4d;--warn:#8a6a12;--down:#9b3a32;font-family:Segoe UI,ui-sans-serif,system-ui,sans-serif}html,body,#root{background:var(--bg);min-height:100%;color:var(--ink)}body{margin:0}*{box-sizing:border-box}button,input,select{font:inherit}button{cursor:pointer}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mobile-nav{gap:.25rem;display:flex;overflow-x:auto}.mobile-nav button{flex:none}@media(min-width:768px){.mobile-nav{display:none}}.clients-page{gap:1rem;max-width:1540px;margin:0 auto;display:grid}.page-heading,.section-heading,.client-toolbar,.client-drawer>header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.page-heading h1,.placeholder-page h1{letter-spacing:-.025em;margin:.1rem 0 0;font-size:1.65rem;font-weight:650}.page-heading p:not(.eyebrow),.placeholder-page p{color:var(--muted);margin:.25rem 0 0;font-size:.875rem}.eyebrow{color:var(--accent);letter-spacing:.16em;margin:0;font-size:.65rem;font-weight:700}.poll-indicator{border:1px solid var(--line);background:var(--surface);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:.45rem;padding:.4rem .7rem;font-size:.72rem;display:flex}.poll-indicator span{background:var(--ok);border-radius:50%;width:.45rem;height:.45rem}.error-banner{color:var(--danger);background:#fff5f3;border:1px solid #e9c2bd;border-radius:.5rem;margin:0;padding:.7rem .85rem;font-size:.82rem}.kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;display:grid}.kpi-grid article,.summary-metric{border:1px solid var(--line);background:var(--surface);border-radius:.65rem;min-width:0;padding:.75rem .85rem}.summary-metric{transition:border-color .12s,box-shadow .12s}button.summary-metric:hover,button.summary-metric:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);border-color:#8cb7ce}.kpi-grid span{color:var(--muted);font-size:.7rem;display:block}.kpi-grid strong{margin-top:.25rem;font-size:1.25rem;font-weight:650;display:block}.kpi-grid small{color:var(--muted);margin-top:.25rem;font-size:.6rem;line-height:1.25;display:block}.financial-kpi{border-top:2px solid var(--ok)!important}.financial-kpi--pending{border-top-color:var(--warn)!important}.map-panel,.clients-panel{border:1px solid var(--line);background:var(--surface);border-radius:.75rem;overflow:hidden}.section-heading{align-items:end;padding:.85rem 1rem .5rem}.section-heading h2{margin:.1rem 0 0;font-size:1rem;font-weight:650}.section-heading>p{max-width:32rem;color:var(--muted);text-align:right;margin:0;font-size:.7rem}.world-map{min-height:260px;margin:0 1rem;position:relative}.world-map svg{border:1px solid #d4e4eb;border-radius:.65rem;width:100%;height:260px;display:block}.map-grid line{stroke:#cfdee5;stroke-width:.8px}.map-land path{fill:#f9fbfc;stroke:#98b1bd;stroke-width:1.5px}.map-marker{cursor:pointer;outline:none}.map-marker:focus circle:last-child{stroke:#102e42;stroke-width:2px}.map-marker-ring{fill:none;stroke:var(--accent);stroke-width:2px;opacity:.35}.map-popover{border:1px solid var(--line);background:#fffffff7;border-radius:.65rem;width:min(310px,100% - 1.5rem);padding:.8rem;position:absolute;top:.75rem;right:.75rem;box-shadow:0 10px 30px #192f3e29}.status-badge{white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;padding:.18rem .45rem;font-size:.67rem;font-weight:650;display:inline-flex}.map-popover-grid{grid-template-columns:1fr 1fr;gap:.45rem;margin-top:.6rem;display:grid}.map-popover-grid dt,.detail-grid dt{color:var(--muted);font-size:.64rem}.map-popover-grid dd,.detail-grid dd{margin:.1rem 0 0;font-size:.74rem;font-weight:550}.primary-button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:.45rem;padding:.5rem .7rem;font-size:.78rem;font-weight:650}.map-legend{color:var(--muted);flex-wrap:wrap;gap:.75rem;padding:.55rem 1rem .8rem;font-size:.68rem;display:flex}.map-legend span{align-items:center;gap:.3rem;display:flex}.map-legend i{border-radius:50%;width:.48rem;height:.48rem}.client-toolbar{align-items:center;padding:.7rem}.filter-tabs{flex-wrap:wrap;gap:.3rem;display:flex}.filter-tabs button{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:999px;padding:.38rem .65rem;font-size:.73rem}.filter-tabs button.active{background:var(--accent-soft);color:var(--accent);border-color:#b8d4e2;font-weight:650}.client-controls{gap:.4rem;display:flex}.client-controls input,.client-controls select{border:1px solid var(--line);height:2rem;color:var(--ink);background:#fff;border-radius:.4rem;padding:0 .55rem;font-size:.72rem}.client-table-wrap{border-top:1px solid var(--line);overflow-x:auto}.client-table{border-collapse:collapse;width:100%;min-width:1700px;font-size:.7rem}.client-table th{color:var(--muted);letter-spacing:.025em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#f8fafb;padding:.58rem .65rem;font-size:.62rem;font-weight:650}.client-table td{vertical-align:middle;white-space:nowrap;border-top:1px solid #edf0f3;padding:.55rem .65rem}.client-table tbody tr{cursor:pointer}.client-table tbody tr:hover,.client-table tbody tr:focus{background:#f5fafe;outline:none}.client-table td strong,.client-table td small{display:block}.client-table td small{color:var(--muted);margin-top:.1rem}.presence{color:var(--muted);white-space:nowrap;align-items:center;gap:.38rem;font-size:.69rem;display:inline-flex}.presence i{background:#98a1aa;border-radius:50%;width:.5rem;height:.5rem}.presence--online{color:var(--ok);font-weight:650}.presence--online i{background:#23a363;animation:1.8s infinite presence-pulse;box-shadow:0 0 #23a36359}@keyframes presence-pulse{0%{box-shadow:0 0 #23a36359}70%{box-shadow:0 0 0 6px #23a36300}to{box-shadow:0 0 #23a36300}}@media(prefers-reduced-motion:reduce){.presence--online i{animation:none}}.empty-state{color:var(--muted);text-align:center;margin:0;padding:1.5rem;font-size:.8rem}.drawer-backdrop{z-index:30;background:#101f2947;border:0;position:fixed;inset:0}.client-drawer{z-index:31;border-left:1px solid var(--line);background:var(--surface);width:min(560px,100%);padding:1rem;position:fixed;inset:0 0 0 auto;overflow-y:auto;box-shadow:-14px 0 35px #152a3729}.client-drawer header h2{margin:.15rem 0 0;font-size:1.2rem}.client-drawer header p:not(.eyebrow){color:var(--muted);margin:.15rem 0 0;font-size:.78rem}.close-button{border:1px solid var(--line);width:2rem;height:2rem;color:var(--muted);background:#fff;border-radius:.4rem;font-size:1.25rem}.drawer-presence{justify-content:space-between;margin:1rem 0 .7rem;display:flex}.world-map--compact{min-height:190px;margin:0}.location-note{color:var(--muted);margin:.45rem 0 0;font-size:.7rem}.detail-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0 0;display:grid}.detail-grid>div{border-bottom:1px solid #edf0f3;padding-bottom:.55rem}.drawer-section{border-top:1px solid var(--line);margin-top:1rem;padding-top:.9rem}.drawer-section h3{margin:0 0 .65rem;font-size:.82rem;font-weight:650}.usage-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.usage-grid span{border:1px solid var(--line);color:var(--muted);border-radius:.45rem;padding:.55rem;font-size:.67rem}.usage-grid strong{color:var(--ink);margin-bottom:.15rem;font-size:.9rem;display:block}.payment-summary{grid-template-columns:1fr 1fr;gap:.7rem;margin:0;display:grid}.payment-summary>div{border-bottom:1px solid #edf0f3;padding-bottom:.45rem}.payment-summary dt{color:var(--muted);font-size:.64rem}.payment-summary dd{margin:.12rem 0 0;font-size:.75rem;font-weight:550}.payment-history-title{margin:1rem 0 .55rem;font-size:.72rem;font-weight:650}.payment-history{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.payment-history li{border:1px solid var(--line);background:#fbfcfd;border-radius:.5rem;padding:.6rem}.payment-history li>div{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.payment-history p,.payment-history small{color:var(--muted);margin:.25rem 0 0;font-size:.66rem;display:block}.history-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.history-list li{border-left:2px solid var(--accent);background:#f7fafc;justify-content:space-between;padding:.35rem .5rem;font-size:.7rem;display:flex}.history-list time{color:var(--muted)}.placeholder-page{border:1px solid var(--line);background:var(--surface);border-radius:.75rem;max-width:620px;margin:8vh auto;padding:1.5rem}@media(max-width:1000px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.client-toolbar{flex-direction:column;align-items:stretch}.client-controls input{width:min(320px,60vw)}}@media(max-width:640px){.page-heading,.section-heading{flex-direction:column;align-items:flex-start}.section-heading>p{text-align:left}.kpi-grid{grid-template-columns:1fr 1fr}.kpi-grid article:last-child{grid-column:1/-1}.world-map{min-height:220px;margin:0 .65rem}.world-map svg{height:220px}.map-popover{width:auto;margin-top:.5rem;position:relative;inset:auto}.map-legend{padding-inline:.65rem}.filter-tabs{flex-wrap:nowrap;padding-bottom:.2rem;overflow-x:auto}.filter-tabs button{flex:none}.client-controls{grid-template-columns:1fr;display:grid}.client-controls input,.client-controls select{width:100%}.client-drawer{padding-bottom:5rem}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--control-bg: #F4F7FA;--control-surface: #FFFFFF;--control-border: #DDE4EC;--control-text: #0B1E33;--control-muted: #5B6B7F;--control-blue: #0A3D73;--control-cyan: #0EA5C0;--control-success: #0E8F63;--control-warning: #B9791F;--control-danger: #B23B33;--control-inactive: #9AA5B3;--control-success-bg: #E6F4EE;--control-warning-bg: #FAF1E2;--control-danger-bg: #F8E9E7;--control-cyan-bg: #E3F4F7;--control-inactive-bg: #EEF1F5;--chart-line: var(--control-cyan);--chart-point: var(--control-cyan);--chart-grid: var(--control-border);--chart-label: var(--control-muted);--chart-highlight: var(--control-blue);--map-land: #E3EBF1;--map-grid: var(--control-border);--map-equator: #C7D3DE;--map-marker-activo: var(--control-success);--map-marker-demo: var(--control-cyan);--map-marker-pendiente: var(--control-warning);--map-marker-suspendido: var(--control-danger);--map-marker-inactivo: var(--control-inactive);--map-marker-halo-opacity: .18;--font-sans: "IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Consolas, monospace;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 14px;--radius-pill: 999px;--radius-full: 50%;--shadow-card: 0 1px 2px rgba(10, 20, 35, .06);--shadow-elevated: 0 18px 40px -20px rgba(10, 20, 35, .35);--shadow-hover: 0 4px 10px rgba(10, 20, 35, .08);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--border-width: 1px;--border-color: var(--control-border);--border-dashed: 1px dashed var(--control-border);--bg: var(--control-bg);--surface: var(--control-surface);--ink: var(--control-text);--muted: var(--control-muted);--line: var(--control-border);--accent: var(--control-blue);--accent-soft: var(--control-cyan-bg);--danger: var(--control-danger);--ok: var(--control-success);--warn: var(--control-warning);--down: var(--control-danger)}html{background:var(--control-bg)}body{overflow-x:hidden;background:var(--control-bg);color:var(--control-text);font-family:var(--font-sans);text-rendering:optimizeLegibility}button,input,select{font-family:inherit}button{color:inherit}:where(button,input,select,[tabindex]):focus-visible{outline:2px solid var(--control-cyan);outline-offset:2px;border-radius:4px}.control-shell{grid-template-columns:236px minmax(0,1fr);background:var(--control-bg)}.control-sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--control-border);background:var(--control-surface);padding:var(--space-6) var(--space-5)}.control-brand-tagline,.eyebrow{margin:0;color:var(--control-blue);font:600 11px/1.2 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.control-brand{margin:var(--space-1) 0 0;color:var(--control-text);font-size:20px;font-weight:700;letter-spacing:-.02em}.control-sidebar-nav{display:grid;gap:var(--space-1);margin-top:var(--space-7)}.control-nav-item{min-height:40px;border:0;border-radius:var(--radius-md);background:transparent;padding:10px 12px;color:var(--control-muted);font-size:13px;font-weight:500;text-align:left}.control-nav-item:hover{background:var(--control-bg);color:var(--control-text)}.control-nav-item.active{background:var(--control-bg);color:var(--control-blue);font-weight:600;box-shadow:inset 3px 0 0 var(--control-blue)}.control-user{display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--space-3);align-items:center;margin-top:auto;border-top:1px solid var(--control-border);padding-top:var(--space-5);color:var(--control-muted);font-size:11px}.control-user p{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.control-user p:first-child{color:var(--control-text);font-size:12px;font-weight:600}.control-avatar{display:grid;width:36px;height:36px;place-items:center;border-radius:var(--radius-full);background:var(--control-cyan-bg);color:var(--control-blue);font:600 13px/1 var(--font-mono)}.control-logout{grid-column:1 / -1;min-height:40px;border:1px solid var(--control-border);border-radius:var(--radius-md);background:var(--control-surface);color:var(--control-muted);font-size:12.5px;font-weight:600}.control-logout:hover{background:var(--control-bg);color:var(--control-text)}.control-main{padding:var(--space-6);padding-bottom:var(--space-7)}.clients-page,.summary-page,.health-page{display:grid;gap:var(--space-4);width:100%;max-width:1540px;margin:0 auto}.page-heading{min-height:54px;align-items:flex-end}.page-heading h1,.placeholder-page h1{margin:var(--space-1) 0 0;color:var(--control-text);font-size:26px;font-weight:700;line-height:1.1;letter-spacing:-.025em}.page-heading p:not(.eyebrow),.placeholder-page p{max-width:540px;margin:var(--space-1) 0 0;color:var(--control-muted);font-size:14px;line-height:1.4}.poll-indicator{min-height:32px;border-color:var(--control-border);border-radius:var(--radius-pill);padding:6px 10px;background:var(--control-surface);color:var(--control-muted);font:500 11px/1 var(--font-mono);box-shadow:var(--shadow-card)}.poll-indicator span{width:7px;height:7px;background:var(--control-success)}.error-banner{border-color:#e8c6c2;border-radius:var(--radius-md);background:var(--control-danger-bg);color:var(--control-danger)}.kpi-grid,.summary-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3)}.kpi-grid article,.summary-metric{--kpi-color: var(--control-blue);position:relative;min-width:0;overflow:hidden;border:1px solid var(--control-border);border-radius:var(--radius-lg);background:var(--control-surface);padding:16px 18px;box-shadow:var(--shadow-card)}.kpi-grid article:before,.summary-metric:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--kpi-color)}.kpi-card--cyan,.summary-metric--cyan{--kpi-color: var(--control-cyan)}.kpi-grid article.kpi-card--cyan{--kpi-color: var(--control-cyan)}.kpi-card--success,.financial-kpi,.summary-metric--success{--kpi-color: var(--control-success)}.kpi-grid article.kpi-card--success,.kpi-grid article.financial-kpi{--kpi-color: var(--control-success)}.kpi-card--warning,.financial-kpi--pending,.summary-metric--warning{--kpi-color: var(--control-warning)}.kpi-grid article.kpi-card--warning,.kpi-grid article.financial-kpi--pending{--kpi-color: var(--control-warning)}.summary-metric--danger{--kpi-color: var(--control-danger)}.summary-metric--inactive{--kpi-color: var(--control-inactive)}.financial-kpi,.financial-kpi--pending{border-top:1px solid var(--control-border)!important}.kpi-grid span,.summary-metric>p:first-child{color:var(--control-muted);font:500 12px/1.3 var(--font-sans)}.kpi-grid strong,.summary-metric>p:nth-child(2){margin-top:var(--space-2);color:var(--control-text);font:600 22px/1 var(--font-mono);letter-spacing:-.02em}.financial-kpi:not(.financial-kpi--pending) strong{color:var(--control-success)}.kpi-grid small,.summary-metric>p:nth-child(3){margin-top:var(--space-2);color:var(--control-muted);font-size:11px;line-height:1.3}button.summary-metric{width:100%}button.summary-metric:hover{border-color:#b7c4d0;box-shadow:var(--shadow-hover)}button.summary-metric:focus-visible{border-color:var(--control-border);box-shadow:var(--shadow-card)}.map-panel,.clients-panel,.summary-activity-card,.health-card,.health-alerts{border:1px solid var(--control-border);border-radius:var(--radius-xl);background:var(--control-surface);box-shadow:var(--shadow-card)}.map-panel,.clients-panel{overflow:hidden}.section-heading{align-items:flex-end;padding:var(--space-4) var(--space-5) var(--space-3)}.section-heading h2{margin:var(--space-1) 0 0;color:var(--control-text);font-size:21px;font-weight:700;line-height:1.1}.section-heading>p{max-width:520px;color:var(--control-muted);font-size:11px;line-height:1.35}.world-map{min-height:268px;margin:0 var(--space-5)}.world-map svg{height:268px;overflow:hidden;border:1px solid var(--control-border);border-radius:var(--radius-lg);background:var(--control-bg)}.map-ocean{fill:var(--control-bg)}.map-grid line{stroke:var(--map-grid);stroke-width:.8}.map-equator{stroke:var(--map-equator);stroke-width:1;stroke-dasharray:4 5}.map-land path{fill:var(--map-land);stroke:#c8d4de;stroke-width:1.2}.map-marker{outline:none}.map-marker-halo{fill:currentColor;opacity:var(--map-marker-halo-opacity)}.map-marker-point{fill:currentColor}.map-marker-ring{fill:none;stroke:currentColor;stroke-width:2;opacity:.7}.map-marker:focus-visible .map-marker-ring,.map-marker:focus .map-marker-point{stroke:var(--control-text);stroke-width:2}.map-popover{border-color:var(--control-border);border-radius:var(--radius-lg);background:#fffffffa;box-shadow:var(--shadow-elevated)}.map-popover-grid dt,.detail-grid dt,.payment-summary dt{color:var(--control-muted);font:500 10.5px/1.2 var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.map-popover-grid dd,.detail-grid dd,.payment-summary dd{color:var(--control-text);font-size:13px}.primary-button{min-height:40px;border:1px solid var(--control-blue);border-radius:var(--radius-md);background:var(--control-blue);padding:11px 10px;color:#fff;font:600 12.5px/1 var(--font-sans)}.primary-button:hover{background:#0d4a88}.primary-button:active{background:#082e58;transform:scale(.98)}.map-legend{gap:var(--space-4);padding:var(--space-3) var(--space-5) var(--space-4);color:var(--control-muted);font-size:11px}.map-legend i{width:7px;height:7px}.status-badge{gap:6px;border:0;border-radius:var(--radius-pill);padding:5px 12px;font:600 12px/1 var(--font-sans)}.status-badge:before{content:"";flex:0 0 auto;width:7px;height:7px;border-radius:var(--radius-full);background:currentColor}.status-badge[data-status=activo],.status-badge[data-payment-status=approved]{background:var(--control-success-bg)}.status-badge[data-status=demo_activo]{background:var(--control-cyan-bg)}.status-badge[data-status=pago_pendiente],.status-badge[data-payment-status=pending]{background:var(--control-warning-bg)}.status-badge[data-status=suspendido],.status-badge[data-payment-status=rejected]{background:var(--control-danger-bg)}.status-badge[data-status=inactivo],.status-badge[data-status=demo_vencido]{background:var(--control-inactive-bg)}.status-badge[data-payment-status=refunded]{background:var(--control-cyan-bg)}.account-class-badge{display:inline-flex;align-items:center;width:fit-content;margin-top:4px;border-radius:var(--radius-pill);background:var(--control-cyan-bg);padding:4px 9px;color:var(--control-blue);font:600 11px/1 var(--font-sans)}.account-class-badge[data-account-class=fixture]{background:var(--control-inactive-bg);color:var(--control-muted)}.client-toolbar{gap:var(--space-4);padding:var(--space-3) var(--space-4)}.filter-tabs{gap:var(--space-1)}.filter-tabs button{min-height:36px;border-radius:var(--radius-md);padding:8px 11px;color:var(--control-muted);font-size:12px;font-weight:500}.filter-tabs button:hover{background:var(--control-bg);color:var(--control-text)}.filter-tabs button.active{border-color:var(--control-border);background:var(--control-bg);color:var(--control-blue);font-weight:600}.client-controls{gap:var(--space-2)}.client-controls input,.client-controls select{height:40px;border-color:var(--control-border);border-radius:var(--radius-sm);background:var(--control-surface);padding:0 12px;color:var(--control-text);font-size:12.5px}.client-controls input::placeholder{color:var(--control-inactive)}.invite-form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin:.75rem 0}.invite-url{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;font-size:.875rem}.client-table-wrap{max-width:100%;border-top-color:var(--control-border)}.client-table{min-width:1340px;font-size:13px}.client-table th{background:var(--control-bg);padding:10px 14px;color:var(--control-muted);font:500 10.5px/1.2 var(--font-mono);letter-spacing:.06em}.client-table td{border-top-color:#edf1f5;padding:10px 14px;color:var(--control-text);font-size:13px;line-height:1.3}.client-table td:not(:nth-child(2)):not(:nth-child(4)):not(:nth-child(5)):not(:nth-child(6)){font-family:var(--font-mono);font-size:12px}.client-table td strong{font-family:var(--font-sans);font-size:14px;font-weight:600}.client-table td small{margin-top:var(--space-1);color:var(--control-muted);font-family:var(--font-sans);font-size:11.5px}.client-table tbody tr:hover,.client-table tbody tr:focus{background:#fafbfd}.presence{gap:6px;color:var(--control-muted);font-size:12px}.presence i{width:7px;height:7px;background:var(--control-inactive)}.presence--online{color:var(--control-success);font-weight:600}.presence--online i{background:var(--control-success);animation-duration:2s}.mobile-client-list{display:none}.drawer-backdrop{background:#0b1e3347;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.client-drawer{width:min(560px,100%);border-left-color:var(--control-border);padding:var(--space-5);box-shadow:var(--shadow-elevated)}.client-drawer>header{position:sticky;top:calc(var(--space-5) * -1);z-index:2;margin:calc(var(--space-5) * -1) calc(var(--space-5) * -1) 0;border-bottom:1px solid var(--control-border);background:#fffffff5;padding:var(--space-5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.client-drawer header h2{font-size:21px;font-weight:700}.close-button{width:40px;height:40px;border-color:var(--control-border);border-radius:var(--radius-md);background:var(--control-surface)}.close-button:hover{background:var(--control-bg);color:var(--control-text)}.drawer-presence{align-items:center;margin:var(--space-5) 0 var(--space-3)}.world-map--compact{min-height:190px}.world-map--compact svg{height:190px}.location-note{font-size:11px;line-height:1.4}.detail-grid{gap:var(--space-3) var(--space-4);margin-top:var(--space-5)}.detail-grid>div,.payment-summary>div{border-bottom:var(--border-dashed);padding-bottom:var(--space-3)}.drawer-section{margin-top:var(--space-5);border-top-color:var(--control-border);padding-top:var(--space-4)}.drawer-section h3{margin-bottom:var(--space-3);color:var(--control-text);font-size:14px;font-weight:700}.usage-grid,.payment-summary{gap:var(--space-2)}.usage-grid span{border-color:var(--control-border);border-radius:var(--radius-md);background:var(--control-bg);padding:var(--space-3);font-size:11px}.usage-grid strong{color:var(--control-text);font:600 14px/1.2 var(--font-mono)}.payment-history-title{margin:var(--space-5) 0 var(--space-2);font-size:12px}.payment-history{gap:var(--space-2)}.payment-history li{border-color:var(--control-border);border-radius:var(--radius-md);background:var(--control-bg);padding:var(--space-3)}.payment-history li>div>strong{font:600 13px/1.3 var(--font-mono)}.payment-history p,.payment-history small{color:var(--control-muted);font-size:11px;line-height:1.35}.history-list li{border-left:3px solid var(--control-blue);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--control-bg);font-size:12px}.history-list time{font-family:var(--font-mono);font-size:11px}.summary-activity-grid,.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.summary-activity-card,.health-card,.health-alerts{padding:var(--space-4)}.summary-activity-card h2,.health-alerts h2{color:var(--control-text);font-size:14px;font-weight:600}.summary-activity-card li{border-bottom:var(--border-dashed);padding:6px 0}.summary-activity-card li span:last-child{color:var(--control-blue);font-family:var(--font-mono);font-weight:600}.health-overall{font-weight:600!important}.health-card{position:relative;overflow:hidden}.health-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--control-success)}.placeholder-page{border-color:var(--control-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}@media(max-width:1200px){.kpi-grid,.summary-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.control-mobile-header{display:flex;min-height:64px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--control-border);background:var(--control-surface);padding:10px var(--space-4)}.control-mobile-header .control-logout{width:auto;min-width:64px;padding:0 12px}.control-main{padding:var(--space-4);padding-bottom:92px}.mobile-nav{z-index:25;display:flex;gap:var(--space-1);overflow-x:auto;border-top:1px solid var(--control-border);background:#fffffffa;padding:var(--space-2) var(--space-3) max(var(--space-2),env(safe-area-inset-bottom));box-shadow:0 -6px 20px #0a14230f;scrollbar-width:none}.mobile-nav::-webkit-scrollbar{display:none}.mobile-nav .control-nav-item{flex:0 0 auto;min-width:72px;min-height:44px;padding:9px 10px;font-size:11px;text-align:center}.mobile-nav .control-nav-item.active{box-shadow:inset 0 -3px 0 var(--control-blue)}.clients-page,.summary-page,.health-page{gap:var(--space-3)}.page-heading{min-height:0;align-items:flex-start}.page-heading h1,.placeholder-page h1{font-size:24px}.page-heading p:not(.eyebrow){font-size:13px}.poll-indicator{align-self:flex-start}.kpi-grid,.summary-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.kpi-grid article,.summary-metric{padding:14px}.kpi-grid article:last-child{grid-column:auto}.kpi-grid strong,.summary-metric>p:nth-child(2){overflow-wrap:anywhere;font-size:18px}.section-heading{padding:var(--space-4) var(--space-4) var(--space-3)}.section-heading h2{font-size:18px}.world-map{min-height:220px;margin:0 var(--space-3)}.world-map svg{height:220px}.map-popover{margin-top:var(--space-2)}.map-legend{gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-4)}.client-toolbar{padding:var(--space-3)}.filter-tabs{margin-right:calc(var(--space-3) * -1);margin-left:calc(var(--space-3) * -1);padding:0 var(--space-3) var(--space-1);scrollbar-width:none}.filter-tabs::-webkit-scrollbar{display:none}.filter-tabs button,.client-controls input,.client-controls select{min-height:40px}.client-table-wrap{display:none}.mobile-client-list{display:grid;gap:var(--space-2);border-top:1px solid var(--control-border);padding:var(--space-3)}.mobile-client-card{display:grid;width:100%;min-height:40px;gap:var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius-lg);background:var(--control-surface);padding:var(--space-3);color:var(--control-text);text-align:left;box-shadow:var(--shadow-card)}.mobile-client-card:active{background:var(--control-bg)}.mobile-client-card__header,.mobile-client-card__meta,.mobile-client-card__payment,.mobile-client-card__usage{display:flex}.mobile-client-card__header{align-items:flex-start;justify-content:space-between;gap:var(--space-2)}.mobile-client-card__header>span:first-child{min-width:0}.mobile-client-card__header strong,.mobile-client-card__header small{display:block}.mobile-client-card__header strong{overflow:hidden;font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.mobile-client-card__header small{margin-top:2px;color:var(--control-muted);font-size:11.5px}.mobile-client-card .status-badge{flex:0 0 auto}.mobile-client-card__meta{flex-wrap:wrap;gap:6px var(--space-3);color:var(--control-muted);font:500 11px/1.3 var(--font-mono)}.mobile-client-card__payment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.mobile-client-card__payment>span{min-width:0;border-top:var(--border-dashed);padding-top:var(--space-2)}.mobile-client-card__payment small,.mobile-client-card__payment strong{display:block}.mobile-client-card__payment small{color:var(--control-muted);font-size:10.5px}.mobile-client-card__payment strong{margin-top:3px;overflow-wrap:anywhere;font:600 11px/1.3 var(--font-mono)}.mobile-client-card__usage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-1) var(--space-2);color:var(--control-muted);font-size:10.5px}.mobile-client-card__usage span{min-width:0}.mobile-client-card__usage strong{display:block;overflow-wrap:anywhere;color:var(--control-text);font:600 11px/1.2 var(--font-mono)}.client-drawer{padding:var(--space-4);padding-bottom:84px}.client-drawer>header{top:calc(var(--space-4) * -1);margin:calc(var(--space-4) * -1) calc(var(--space-4) * -1) 0;padding:var(--space-4)}.detail-grid,.payment-summary{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.summary-activity-grid,.health-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
