/* V99 PROFESSIONAL FULL UI -------------------------------------------------- */
:root{
  --v99-nav:#0b1830;--v99-nav2:#132544;--v99-blue:#2367e8;--v99-blue2:#eaf2ff;
  --v99-bg:#f5f7fb;--v99-panel:#fff;--v99-line:#e3e9f1;--v99-text:#142033;--v99-muted:#6c7b91;
  --v99-green:#13864b;--v99-green-bg:#e8f8ef;--v99-yellow:#bd7200;--v99-yellow-bg:#fff4d8;
  --v99-orange:#d35d16;--v99-orange-bg:#fff0e5;--v99-red:#d23642;--v99-red-bg:#fdebed;
  --v99-grey:#718096;--v99-grey-bg:#eef2f6;--v99-shadow:0 8px 28px rgba(20,35,60,.06);
}
html{background:var(--v99-bg)}body.v99-app{margin:0;background:var(--v99-bg);color:var(--v99-text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45}
body.v99-app *{box-sizing:border-box}body.v99-app a{text-decoration:none}body.v99-app button,body.v99-app input,body.v99-app select,body.v99-app textarea{font:inherit}
.v99-shell{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}.v99-sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#0c1a33 0%,#0a162a 100%);color:#dce6f4;padding:18px 14px 16px;display:flex;flex-direction:column;z-index:80;transition:.18s width,.18s transform}.v99-brand{display:flex;align-items:center;gap:11px;padding:4px 8px 22px;color:#fff}.v99-logo{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#397cf4,#1953d1);box-shadow:0 8px 18px rgba(37,99,235,.28);font-weight:900}.v99-brand-copy strong,.v99-brand-copy small{display:block}.v99-brand-copy strong{font-size:15px}.v99-brand-copy small{font-size:10px;color:#91a3bd;text-transform:uppercase;letter-spacing:.075em}.v99-nav{min-height:0;overflow:auto;padding-right:2px}.v99-nav p{margin:19px 11px 7px;color:#7185a4;font-size:10px;font-weight:850;letter-spacing:.14em}.v99-nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;margin:2px 0;color:#c9d5e7;font-weight:700;position:relative}.v99-nav a:hover,.v99-nav a.active{background:#1b2e50;color:#fff}.v99-nav a.active:before{content:"";position:absolute;left:-14px;width:3px;height:23px;background:#4c8cff;border-radius:0 5px 5px 0}.v99-ico{width:19px;text-align:center;color:#90a6c7}.v99-side-bottom{margin-top:auto;border-top:1px solid #223553;padding-top:12px}.v99-collapse{width:100%;border:0;background:transparent;color:#97a9c2;display:flex;gap:10px;align-items:center;padding:9px 10px;cursor:pointer}.v99-account{display:flex;align-items:center;gap:10px;border:1px solid #203554;background:#10203a;border-radius:12px;padding:10px;margin-top:5px}.v99-account strong,.v99-account small{display:block}.v99-account small{color:#91a3bd;font-size:11px}.v99-avatar{width:34px;height:34px;border-radius:50%;background:#1f6bdc;color:#fff;display:grid;place-items:center;font-weight:850;flex:0 0 auto}.v99-main{min-width:0;display:flex;flex-direction:column;min-height:100vh}.v99-topbar{height:66px;background:#fff;border-bottom:1px solid var(--v99-line);display:flex;align-items:center;gap:16px;padding:0 24px;position:sticky;top:0;z-index:60}.v99-company-switch{display:flex;align-items:center;gap:9px}.v99-company-switch label{font-size:10px;font-weight:850;color:#728299;text-transform:uppercase;letter-spacing:.08em}.v99-company-switch select{min-width:145px;border:1px solid var(--v99-line);border-radius:10px;background:#f8fafc;color:var(--v99-text);padding:9px 11px}.v99-context span,.v99-context small{display:block}.v99-context span{font-weight:800}.v99-context small{font-size:11px;color:var(--v99-muted)}.v99-global-search{flex:1;max-width:560px;margin:auto;display:flex;align-items:center;border:1px solid var(--v99-line);border-radius:11px;background:#fafbfd;height:40px;padding:0 10px}.v99-global-search>span{color:#728299;font-size:20px}.v99-global-search input{border:0;outline:0;background:transparent;flex:1;min-width:0;padding:0 10px;color:var(--v99-text)}.v99-global-search kbd{background:#edf1f5;border:1px solid #e0e5ec;color:#77869b;border-radius:6px;padding:2px 6px;font-size:10px}.v99-top-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;color:#65758d;position:relative}.v99-top-icon:hover{background:#f3f6fa}.v99-top-icon i{position:absolute;right:1px;top:0;background:#dc2f3b;color:#fff;border-radius:99px;font-size:9px;font-style:normal;min-width:16px;height:16px;display:grid;place-items:center}.v99-top-user{display:flex;align-items:center;gap:9px;padding-left:5px}.v99-top-user>span:nth-child(2) strong,.v99-top-user>span:nth-child(2) small{display:block}.v99-top-user small{color:var(--v99-muted);font-size:10px}.v99-top-user>a{color:#64748b;padding:8px}.v99-mobile-menu{display:none;border:0;background:#eef3fb;border-radius:8px;padding:8px 10px}.v99-content{width:100%;max-width:1540px;margin:0 auto;padding:28px 30px 76px;flex:1}.v99-statusbar{position:fixed;left:236px;right:0;bottom:0;height:34px;background:#0c1a31;color:#cbd7e8;display:flex;align-items:center;gap:22px;padding:0 24px;font-size:11px;z-index:70;box-shadow:0 -1px 0 rgba(255,255,255,.04)}.v99-statusbar b{font-weight:800}.v99-statusbar b.ok{color:#5ce18f}.v99-statusbar b.warn{color:#f2b64a}.v99-statusbar b.bad{color:#ff7b82}.v99-statusbar .push{margin-left:auto}
body.v99-app.v99-collapsed .v99-shell{grid-template-columns:78px minmax(0,1fr)}body.v99-app.v99-collapsed .v99-brand-copy,body.v99-app.v99-collapsed .v99-nav p,body.v99-app.v99-collapsed .v99-nav b,body.v99-app.v99-collapsed .v99-collapse b,body.v99-app.v99-collapsed .v99-account>span:last-child{display:none}body.v99-app.v99-collapsed .v99-nav a{justify-content:center}body.v99-app.v99-collapsed .v99-nav a.active:before{left:-14px}body.v99-app.v99-collapsed .v99-account{justify-content:center}body.v99-app.v99-collapsed .v99-statusbar{left:78px}
/* shared page language */
body.v99-app h1,body.v99-app h2,body.v99-app h3{color:var(--v99-text);letter-spacing:-.02em}body.v99-app h1{font-size:31px}body.v99-app .muted{color:var(--v99-muted)!important}.v99-pagehead,.ws-pagehead,.sensorhero,.panel-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:0 0 22px}.v99-pagehead h1,.ws-pagehead h1,.sensorhero h1,.panel-head h1{margin:3px 0 6px;line-height:1.05}.v99-eyebrow,.eyebrow,.v91-eyebrow{font-size:10px!important;letter-spacing:.12em!important;font-weight:850!important;color:#71829a!important;text-transform:uppercase!important;margin:0!important}.v99-breadcrumb,.crumb{display:flex;align-items:center;gap:8px;color:#75849a;font-size:12px;margin:0 0 15px}.v99-breadcrumb a,.crumb a{color:#61718a}.v99-breadcrumb a:hover,.crumb a:hover{color:var(--v99-blue)}
/* existing controls */
body.v99-app .button,body.v99-app button:not(.v93-modal-close):not(.v99-collapse):not(.v99-mobile-menu),body.v99-app .btn{border:0;border-radius:10px;background:var(--v99-blue);color:#fff;padding:9px 14px;font-weight:750;cursor:pointer;box-shadow:none}body.v99-app .button.secondary,body.v99-app .btn.ghost,body.v99-app button.secondary{background:#fff;color:#22334c;border:1px solid var(--v99-line)}body.v99-app .button.danger,body.v99-app button.danger,body.v99-app .danger{background:#c93743;color:#fff}body.v99-app input:not([type=checkbox]):not([type=radio]),body.v99-app select,body.v99-app textarea{border:1px solid #dce4ee;border-radius:9px;background:#fff;color:var(--v99-text);padding:9px 10px;outline:none}body.v99-app input:focus,body.v99-app select:focus,body.v99-app textarea:focus{border-color:#8bb2fb;box-shadow:0 0 0 3px #e8f0ff}body.v99-app label{color:#41516a;font-weight:650}.panel,.card,.ws-panel,.v93-panel{background:#fff;border:1px solid var(--v99-line);border-radius:15px;box-shadow:var(--v99-shadow)}body.v99-app .panel{padding:20px}.cards{gap:13px}.card{padding:17px}body.v99-app table{background:#fff;border-collapse:collapse;width:100%}body.v99-app th{background:#f8fafc;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:11px 12px}body.v99-app td{border-top:1px solid #edf1f6;padding:12px}body.v99-app tr:hover td{background:#fbfcfe}.alert{border-radius:10px;padding:11px 13px}.alert.error{background:var(--v99-red-bg);color:#9f2630}.alert.success{background:var(--v99-green-bg);color:#126f40}
/* workspace classes get upgraded but remain backward compatible */
.ws-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin-bottom:20px}.ws-metrics article{background:#fff;border:1px solid var(--v99-line);border-top:3px solid #d7e0eb;border-radius:14px;padding:16px 17px;box-shadow:var(--v99-shadow)}.ws-metrics article.ok{border-top-color:#52bd81}.ws-metrics article.warn{border-top-color:#f1b141}.ws-metrics article.bad{border-top-color:#ef6970}.ws-metrics article.muted{border-top-color:#a7b4c5}.ws-metrics span{display:block;color:#607189;font-size:11px;font-weight:750}.ws-metrics strong{display:block;font-size:28px;line-height:1.05;margin:8px 0 4px}.ws-metrics small{color:#8794a6}.ws-two{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:18px;margin-bottom:18px}.ws-three{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.ws-panel{overflow:hidden}.panelhead{min-height:64px;padding:16px 18px 11px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid #edf1f6}.panelhead h2{font-size:18px;margin:2px 0}.panelhead>a{color:var(--v99-blue);font-weight:700;font-size:12px}.ws-list{display:grid}.ws-row{min-height:66px;padding:11px 17px;display:flex;gap:12px;align-items:center;border-bottom:1px solid #edf1f6;color:inherit}.ws-row:last-child{border-bottom:0}.ws-row:hover{background:#f9fbff}.ws-row .grow{flex:1;min-width:0}.ws-row strong,.ws-row small,.ws-row em{display:block}.ws-row small{color:var(--v99-muted);font-size:11px}.ws-row em{font-style:normal;color:#43536a;font-size:11px;margin-top:2px}.dot{width:9px;height:9px;border-radius:99px;flex:0 0 9px;background:#94a3b8}.dot.normal,.dot.online,.dot.info{background:#27a25e}.dot.warning,.dot.observe,.dot.lost,.dot.learning,.dot.calibration{background:#dfa02e}.dot.critical,.dot.alarm,.dot.error{background:#dc4650}.dot.offline,.dot.no_data{background:#94a3b8}.pill,.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:99px;background:#eef2f7;color:#536174;font-size:10px;font-weight:800;white-space:nowrap}.pill.normal,.pill.online,.pill.done,.pill.success,.badge.normal,.badge.online,.badge.success{background:var(--v99-green-bg);color:var(--v99-green)}.pill.warning,.pill.observe,.pill.lost,.pill.learning,.pill.calibration,.badge.warning,.badge.observe,.badge.lost{background:var(--v99-yellow-bg);color:var(--v99-yellow)}.pill.critical,.pill.alarm,.pill.error,.badge.critical,.badge.alarm,.badge.error{background:var(--v99-red-bg);color:var(--v99-red)}.pill.offline,.pill.no_data,.badge.offline,.badge.no_data{background:var(--v99-grey-bg);color:#65758a}.ws-cardgrid,.assetgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.ws-card,.assetcard{background:#fff;border:1px solid var(--v99-line);border-radius:15px;padding:18px;box-shadow:var(--v99-shadow);transition:.16s transform,.16s box-shadow;color:inherit}.ws-card:hover,.assetcard:hover{transform:translateY(-2px);box-shadow:0 14px 35px rgba(18,35,60,.10)}.cardstats,.assetmeta{display:flex;gap:13px;flex-wrap:wrap;padding-top:11px;border-top:1px solid #edf1f6;color:#66758c;font-size:11px}.iconbox,.cardicon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#edf4ff;color:#2c64c9;font-weight:800}.ws-empty{padding:32px 22px;color:var(--v99-muted);text-align:center}.ws-empty.good{background:#fbfefc}.chipgrid{display:flex;gap:9px;flex-wrap:wrap;padding:17px}.ws-chip{padding:10px 13px;border:1px solid var(--v99-line);border-radius:10px;background:#f9fbfd}.tablewrap{overflow:auto}.ws-table{width:100%}.ws-table td small,.ws-table td a small{display:block;color:var(--v99-muted)}.inline-search{display:flex;gap:8px}.inline-search input{min-width:260px}
/* dashboard pro */
.v99-dashboard-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:18px}.v99-dashboard-actions{display:flex;gap:9px}.v99-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.9fr) minmax(0,.95fr);gap:18px;margin-bottom:18px}.v99-donut-wrap{display:flex;align-items:center;gap:25px;padding:23px}.v99-donut{--normal:75;--observe:12.5;--warning:8.3;width:165px;height:165px;border-radius:50%;background:conic-gradient(#28aa63 0 calc(var(--normal)*1%),#f0b22f calc(var(--normal)*1%) calc((var(--normal) + var(--observe))*1%),#e67a22 calc((var(--normal) + var(--observe))*1%) calc((var(--normal) + var(--observe) + var(--warning))*1%),#df424c 0);display:grid;place-items:center;position:relative}.v99-donut:after{content:"";width:108px;height:108px;border-radius:50%;background:#fff;position:absolute}.v99-donut-center{position:relative;z-index:2;text-align:center}.v99-donut-center strong{display:block;font-size:28px}.v99-donut-center small{color:var(--v99-muted)}.v99-legend{display:grid;gap:9px;flex:1}.v99-legend-row{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;font-size:12px}.v99-legend-row i{width:8px;height:8px;border-radius:99px}.v99-quick{display:grid;padding:12px}.v99-quick a{display:flex;align-items:center;gap:12px;padding:11px;border:1px solid #edf1f6;border-radius:10px;margin:5px;color:inherit}.v99-quick a:hover{border-color:#b9ccf0;background:#f9fbff}.v99-quick .iconbox{flex:0 0 36px}.v99-quick strong,.v99-quick small{display:block}.v99-quick small{color:var(--v99-muted)}.v99-banner{padding:14px 16px;border:1px solid #dfe7f0;border-radius:13px;background:#fff;display:flex;gap:13px;align-items:center;margin-bottom:18px}.v99-banner.warning{background:#fffaf0;border-color:#f4ddb0}.v99-banner strong,.v99-banner small{display:block}.v99-banner small{color:var(--v99-muted)}
/* sensor navigation: five logical groups */
.v99-sensor-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:16px}.v99-sensor-title h1{margin:3px 0 5px}.v99-sensor-title p{margin:0;color:var(--v99-muted)}.v99-sensor-pills{display:flex;gap:7px;align-items:center}.v99-sensor-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;background:#fff;border:1px solid var(--v99-line);border-radius:14px;padding:6px;margin:0 0 9px;box-shadow:0 5px 20px rgba(18,35,60,.035)}.v99-sensor-nav a{padding:10px 13px;border-radius:10px;color:#526176;font-weight:760;text-align:center}.v99-sensor-nav a:hover,.v99-sensor-nav a.active{background:#eaf1ff;color:#194fae}.v99-sensor-subnav{display:flex;gap:6px;align-items:center;overflow:auto;margin:0 0 15px;padding:0 2px}.v99-sensor-subnav span{font-size:10px;font-weight:850;color:#8491a2;text-transform:uppercase;letter-spacing:.08em;margin-right:3px}.v99-sensor-subnav a{white-space:nowrap;border:1px solid var(--v99-line);background:#fff;border-radius:9px;padding:7px 11px;color:#526176;font-size:12px;font-weight:700}.v99-sensor-subnav a.active{border-color:#9fbcf5;color:#1d55b6;background:#f2f6ff}.v99-page-context{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid var(--v99-line);border-left:4px solid var(--v99-blue);border-radius:12px;margin-bottom:20px}.v99-page-context strong{min-width:105px}.v99-page-context span{color:var(--v99-muted)}
/* auth */
body.v99-auth-page{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 20%,#163a73 0,#0c1a32 33%,#081426 100%);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.v99-auth-shell{min-height:100vh;display:grid;place-items:center;padding:25px}.v99-auth-card{width:min(430px,100%);background:#fff;border-radius:19px;box-shadow:0 24px 80px rgba(0,0,0,.32);padding:31px}.v99-auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:26px}.v99-auth-brand .v99-logo{width:44px;height:44px}.v99-auth-card h1{margin:0 0 7px;font-size:27px;color:#142033}.v99-auth-card p{color:#6c7b91}.v99-auth-card .form{display:grid;gap:7px;margin-top:20px}.v99-auth-card input{width:100%;padding:11px 12px!important}.v99-auth-card button{margin-top:8px;width:100%;padding:11px 14px!important}.v99-auth-card>a,.v99-auth-card p a{color:#2367e8;font-weight:700}
/* old forms/pages inside new shell */
body.v99-app .login-card{max-width:460px;margin:60px auto;background:#fff;border:1px solid var(--v99-line);border-radius:16px;padding:25px;box-shadow:var(--v99-shadow)}body.v99-app .form{display:grid;gap:8px}body.v99-app details{border-color:var(--v99-line)}body.v99-app code{background:#f2f5f9;border-radius:6px;padding:2px 5px;color:#334155}
/* mobile */
@media(max-width:1100px){.v99-shell{grid-template-columns:78px minmax(0,1fr)}.v99-brand-copy,.v99-nav p,.v99-nav b,.v99-collapse b,.v99-account>span:last-child{display:none}.v99-nav a{justify-content:center}.v99-account{justify-content:center}.v99-statusbar{left:78px}.ws-metrics{grid-template-columns:repeat(3,1fr)}.v99-dashboard-grid{grid-template-columns:1fr 1fr}.v99-dashboard-grid>:last-child{grid-column:1/-1}.v99-sensor-nav{grid-template-columns:repeat(5,minmax(110px,1fr));overflow:auto}}
@media(max-width:760px){.v99-shell{display:block}.v99-sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;height:100vh;transform:translateX(-105%);box-shadow:12px 0 30px rgba(0,0,0,.2)}body.v99-menu-open .v99-sidebar{transform:translateX(0)}.v99-brand-copy,.v99-nav b,.v99-account>span:last-child{display:block}.v99-nav p{display:block}.v99-nav a{justify-content:flex-start}.v99-topbar{padding:8px 12px;height:auto;min-height:58px;flex-wrap:wrap}.v99-mobile-menu{display:block}.v99-company-switch{order:1}.v99-global-search{order:3;flex-basis:100%;max-width:none}.v99-top-icon{display:none}.v99-top-user{margin-left:auto;order:2}.v99-top-user>span:nth-child(2){display:none}.v99-content{padding:20px 13px 65px}.v99-statusbar{left:0;height:32px;gap:9px;padding:0 10px}.v99-statusbar span:nth-child(2),.v99-statusbar span:nth-child(3){display:none}.v99-pagehead,.ws-pagehead,.sensorhero,.panel-head,.v99-sensor-head{align-items:flex-start;flex-direction:column}.ws-metrics{grid-template-columns:repeat(2,1fr)}.ws-two,.ws-three,.v99-dashboard-grid{grid-template-columns:1fr}.v99-dashboard-grid>:last-child{grid-column:auto}.v99-donut-wrap{flex-direction:column}.v99-sensor-nav{grid-template-columns:repeat(5,145px)}.inline-search{width:100%}.inline-search input{min-width:0;width:100%}}
.v99-donut.empty{background:#e5eaf1!important}
/* workspace detail utilities retained in V99 */
.ws-card h2,.assetcard h3{margin:12px 0 6px}.ws-card p,.assetcard p{color:var(--v99-muted)}.cardgo{display:block;margin-top:15px;color:var(--v99-blue);font-weight:750}.assettop{display:flex;justify-content:space-between;align-items:center}.soft{color:var(--v99-muted)}.right{text-align:right}.sensorhero{margin-bottom:16px}.hero-status{display:flex;gap:7px}.ws-section{scroll-margin-top:120px;margin-bottom:24px}.ws-metrics.sensor{grid-template-columns:repeat(5,1fr)}.diagnosis{padding:21px;margin-bottom:18px}.diagnosis h2{margin:4px 0 7px}.diagnosis p{color:var(--v99-muted);margin-bottom:16px}.sectionhead{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:26px 0 13px}.sectionhead h2{margin:3px 0 5px}.sectionhead p{color:var(--v99-muted);margin:0}.toolgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.tool{background:#fff;border:1px solid var(--v99-line);border-radius:14px;padding:18px;min-height:150px;box-shadow:var(--v99-shadow);color:inherit}.tool:hover{border-color:#aac5fa;transform:translateY(-1px)}.tool>span{font-size:23px;color:#2d68d3}.tool h3{margin:11px 0 6px}.tool p{color:var(--v99-muted);font-size:12px}.calsteps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.calsteps>div{background:#fff;border:1px solid var(--v99-line);border-radius:12px;padding:13px;display:flex;gap:10px;align-items:center}.calsteps b{width:28px;height:28px;display:grid;place-items:center;border-radius:99px;background:#e9eef5}.calsteps .done b{background:var(--v99-green-bg);color:var(--v99-green)}.calsteps .bad b{background:var(--v99-red-bg);color:var(--v99-red)}.calsteps strong,.calsteps small{display:block}.calsteps small{color:var(--v99-muted)}
@media(max-width:1050px){.ws-metrics.sensor{grid-template-columns:repeat(3,1fr)}.toolgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.ws-metrics.sensor{grid-template-columns:repeat(2,1fr)}.toolgrid,.calsteps{grid-template-columns:1fr}.sectionhead{align-items:flex-start;flex-direction:column}}
.v99-legacy-link{display:block;color:#8ea4c7;font-size:11px;font-weight:700;padding:7px 11px;border-radius:8px;margin:0 0 4px}.v99-legacy-link:hover{color:#fff;background:rgba(255,255,255,.06)}body.v99-collapsed .v99-legacy-link{font-size:0;text-align:center}body.v99-collapsed .v99-legacy-link:after{content:'↩';font-size:16px}


/* V100 PROFESSIONAL FULL-LAYOUT POLISH -------------------------------------
   Goal: one calm responsive shell across the complete authenticated server.
   Desktop sidebar must fit the viewport without an ugly nested scrollbar.
   On very small heights the layout becomes denser instead of hiding features.
*/
@media (min-width:761px){
  .v99-sidebar{
    padding:14px 12px 12px;
    overflow:hidden;
  }
  .v99-brand{padding:2px 7px 12px;gap:10px}
  .v99-logo{width:38px;height:38px;border-radius:11px}
  .v99-brand-copy strong{font-size:14px;line-height:1.15}
  .v99-brand-copy small{font-size:9px}
  .v99-nav{
    flex:0 1 auto;
    min-height:0;
    overflow:visible;
    padding-right:0;
    scrollbar-width:none;
  }
  .v99-nav::-webkit-scrollbar{display:none}
  .v99-nav p{margin:11px 10px 4px;font-size:9px;line-height:1}
  .v99-nav a{padding:7px 10px;margin:1px 0;border-radius:9px;font-size:14px;line-height:1.2;min-height:32px}
  .v99-ico{width:18px;font-size:14px}
  .v99-side-bottom{padding-top:8px;margin-top:auto}
  .v99-collapse{padding:7px 9px}
  .v99-account{padding:8px;margin-top:3px}
  .v99-avatar{width:32px;height:32px}
  /* Legacy / route is preserved for rollback/control, but the redundant link
     no longer consumes permanent navigation space. */
  .v99-legacy-link{display:none!important}
}

@media (min-width:761px) and (max-height:760px){
  .v99-sidebar{padding-top:9px;padding-bottom:8px}
  .v99-brand{padding-bottom:7px}
  .v99-logo{width:34px;height:34px}
  .v99-nav p{margin:7px 9px 3px;font-size:8px}
  .v99-nav a{padding:5px 9px;font-size:13px;min-height:28px}
  .v99-side-bottom{padding-top:5px}
  .v99-collapse{padding:5px 8px;font-size:12px}
  .v99-account{padding:6px 7px}
  .v99-account small{font-size:9px}
  .v99-avatar{width:29px;height:29px;font-size:12px}
}

@media (min-width:761px) and (max-height:630px){
  .v99-brand-copy small,.v99-nav p,.v99-account small{display:none}
  .v99-brand{padding-bottom:5px}
  .v99-nav a{padding:4px 8px;min-height:26px}
  .v99-collapse{padding:4px 8px}
  .v99-account{padding:5px 7px}
}

/* Prevent accidental inner vertical scrollbars on the full desktop shell. */
@media (min-width:761px){
  .v99-shell,.v99-main{min-height:100vh}
  .v99-content{min-width:0}
}

/* Root command-center hero: keep the combined status readable and contained. */
@media (min-width:1151px){
  .v93-dashboard-shell{
    grid-template-columns:minmax(0,1fr) minmax(210px,250px) minmax(140px,165px);
    gap:16px;
    padding:28px 30px;
  }
  .v93-hero-status{min-width:0;padding:15px 16px;overflow:hidden}
  .v93-hero-status strong{
    font-size:clamp(20px,1.55vw,25px);
    line-height:1.08;
    letter-spacing:-.03em;
    white-space:nowrap;
    max-width:100%;
  }
  .v93-hero-status small{display:block;white-space:normal;line-height:1.35}
  .v93-hero-actions{min-width:140px}
  .v93-hero-actions .button{white-space:nowrap;padding-left:12px;padding-right:12px}
}
@media (min-width:1151px) and (max-width:1320px){
  .v93-dashboard-shell{grid-template-columns:minmax(0,1fr) 215px 142px;gap:12px;padding:24px}
  .v93-hero-status strong{font-size:20px}
}

/* More consistent responsive behavior on all authenticated legacy + V99 pages. */
body.v99-app .v93-panel,
body.v99-app .panel,
body.v99-app .card,
body.v99-app .ws-panel{min-width:0}
body.v99-app .tablewrap,
body.v99-app .panel[style*="overflow"],
body.v99-app .v93-advanced-grid .panel{max-width:100%}
body.v99-app img,body.v99-app svg,body.v99-app canvas{max-width:100%}

/* The shell itself is now the permanent server layout; legacy content is still
   available through its routes but renders inside this same professional frame. */
body.v99-app .v99-main > .v99-content{isolation:isolate}


/* V102.1 COMPANY ACCOUNTS -------------------------------------------------- */
.v102-auth-wrap{width:min(980px,100%);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,430px);gap:42px;align-items:center}
.v102-auth-wrap.compact{width:min(930px,100%)}
.v102-auth-intro{color:#fff;padding:20px 8px}.v102-auth-intro .v99-auth-brand{margin-bottom:28px}.v102-auth-intro h1{font-size:clamp(34px,4vw,54px);line-height:1.03;letter-spacing:-.045em;margin:0 0 18px;max-width:650px}.v102-auth-intro>p{font-size:17px;line-height:1.65;color:#b8c8dd;max-width:620px}
.v102-auth-points{display:grid;gap:10px;margin-top:28px;color:#dbe7f5;font-weight:650}.v102-auth-card{width:100%;margin:auto}
.v102-auth-card label{font-size:12px;font-weight:800;color:#42516a;margin-top:5px}.v102-auth-card label small{font-weight:500;color:#8290a3}.v102-auth-card input,.v102-auth-card select{border:1px solid #d9e1eb;border-radius:10px;outline:0;background:#fbfcfe}.v102-auth-card input:focus{border-color:#72a0f4;box-shadow:0 0 0 3px rgba(35,103,232,.10)}
.v102-password{display:grid;grid-template-columns:1fr auto;gap:7px}.v102-password button{margin:0!important;width:auto!important;background:#edf3fc!important;color:#315d9f!important;padding:0 12px!important;border-radius:9px!important}
.v102-auth-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 2px;font-size:12px}.v102-check{display:flex!important;align-items:center;gap:7px;font-weight:600!important;margin:0!important}.v102-check input{width:auto!important}
.v102-auth-divider{height:1px;background:#e7ecf2;position:relative;margin:24px 0}.v102-auth-divider span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;color:#8a97a9;padding:0 10px;font-size:11px}
.v102-secondary-button,.v102-primary-link{display:block;text-align:center;border:1px solid #cbd8eb;border-radius:10px;padding:11px 14px;font-weight:800;color:#235fca!important;background:#f8fbff}.v102-primary-link{background:#2367e8;color:white!important;border-color:#2367e8;margin-top:18px}
.v102-auth-note{font-size:11px!important;line-height:1.5;margin-top:15px!important;color:#7c899b!important}
.v102-alert{padding:11px 13px;border-radius:10px;margin:12px 0;font-size:12px;line-height:1.45}.v102-alert.success{background:#e9f8ef;color:#106d3f;border:1px solid #c7edd7}.v102-alert.error{background:#fdebed;color:#a7222e;border:1px solid #f4c8cc}.v102-alert.warn{background:#fff5da;color:#8a5a00;border:1px solid #f2dfac}.v102-alert.info{background:#edf4ff;color:#315d9f;border:1px solid #d2e2fb}
.v102-mail-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#eaf2ff;color:#2367e8;font-size:27px;font-weight:900;margin:0 auto 18px}.v102-auth-card>.v102-mail-icon~h1{text-align:center}.v102-auth-card>.v102-mail-icon~p{text-align:center}
.v102-auth-card button:disabled{opacity:.5;cursor:not-allowed}
.v102-users-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);gap:16px;margin-bottom:16px}
.v102-invite-form select,.v102-inline select,.v102-users-grid select{width:100%;border:1px solid #d9e1eb;border-radius:9px;background:#fff;padding:10px 11px;color:#26364c}
.v102-role-list{display:grid;gap:12px}.v102-role-list div{padding:12px 0;border-bottom:1px solid #edf0f4}.v102-role-list div:last-child{border:0}.v102-role-list b,.v102-role-list span{display:block}.v102-role-list span{font-size:12px;color:#6f7c8e;margin-top:3px}
.v102-user-table{display:grid}.v102-user-table .head,.v102-user-table .row{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(165px,.8fr) minmax(130px,.65fr) minmax(110px,.55fr);gap:14px;align-items:center;padding:11px 12px}.v102-user-table .head{font-size:10px;font-weight:900;color:#7d899a;text-transform:uppercase;letter-spacing:.08em;background:#f7f9fc;border-radius:9px}.v102-user-table .row{border-bottom:1px solid #edf0f4}.v102-user-table .row>span:first-child strong,.v102-user-table .row>span:first-child small{display:block}.v102-user-table small{color:#8490a1}.v102-inline{margin:0}.v102-danger-link{border:0;background:transparent;color:#b8323d;font-weight:800;cursor:pointer;padding:6px}
.v102-claim-details{margin:8px 0 14px;padding:12px;border:1px solid #e0e6ef;border-radius:10px;background:#fafcff}.v102-claim-details summary{font-weight:800;cursor:pointer;margin-bottom:8px}
@media(max-width:900px){.v102-users-grid{grid-template-columns:1fr}.v102-user-table{overflow-x:auto}.v102-user-table .head,.v102-user-table .row{min-width:700px}}
@media(max-width:820px){.v102-auth-wrap{grid-template-columns:1fr;gap:12px}.v102-auth-intro{display:none}.v99-auth-shell{padding:18px}.v99-auth-card{padding:24px}}
