:root{--ui-font:Inter,"Segoe UI",Arial,sans-serif;--ui-accent:#087f92;--ui-sidebar:#ffffff;--ui-header:#eaf0f5;--ui-background:#f5f7fb;--sidebar-text:#40546b;--sidebar-muted:#8493a6;--sidebar-line:#e1e8ef;--sidebar-active:#edf6f8;--type-body:14px;--type-small:12px;--type-card:14px;--type-page:18px;--type-brand:18px;font-family:var(--ui-font);color:#112846;background:var(--ui-background);font-size:var(--type-body)}
*{box-sizing:border-box}
body{margin:0}
button,input,select{font:inherit}
button{cursor:pointer;border:0;border-radius:8px;background:var(--ui-accent);color:#fff;padding:9px 14px;font-weight:650;min-height:36px;font-size:var(--type-body)}
button:hover{background:#076d7d}
button.secondary{color:#173b5d;background:#e6eef5}
button:disabled{opacity:.5;cursor:not-allowed}
input,select{width:100%;min-height:38px;border:1px solid #cbd7e5;border-radius:8px;background:#fff;padding:8px 10px;color:#112846;outline:none;font-size:var(--type-body)}
input:focus,select:focus{border-color:#078aa2;box-shadow:0 0 0 3px #0796ac1f}
label{display:grid;gap:5px;font-weight:650;margin-bottom:12px;font-size:var(--type-body)}
h1{font-size:var(--type-page);line-height:1.25;margin:0 0 10px}
h2{font-size:var(--type-card);line-height:1.25;margin:0 0 12px}
p{line-height:1.45;color:#64758c;margin:0 0 16px}
.eyebrow{color:var(--ui-accent);letter-spacing:.09em;font-weight:750;text-transform:uppercase;font-size:var(--type-small)}
.app{display:grid;grid-template-columns:205px minmax(0,1fr);min-height:100vh}
.app.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}
.sidebar-collapsed .side{display:none}
.page-shell{min-width:0}
.side{position:sticky;top:0;height:100vh;min-height:0;background:var(--ui-sidebar);color:var(--sidebar-text);padding:16px 10px;display:flex;flex-direction:column;gap:12px;border-right:1px solid var(--sidebar-line);box-shadow:2px 0 12px #12335809}
.brand{font-weight:750;font-size:var(--type-brand);line-height:1.25;white-space:nowrap;padding:9px 12px 13px;border-bottom:1px solid var(--sidebar-line)}
.brand small{display:block;font-size:var(--type-small);font-weight:400;color:var(--sidebar-muted);margin:3px 0 0}
.mark{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--ui-accent);margin-right:9px;font-size:var(--type-brand)}
.topbar{position:sticky;top:0;z-index:20;height:56px;display:flex;align-items:center;justify-content:space-between;gap:11px;padding:0 16px;background:var(--ui-header);border-bottom:1px solid #d1dce7;box-shadow:0 2px 9px #12335808}
.account-area{display:flex;align-items:center;gap:12px;min-width:0}
.header-company{max-width:min(280px,28vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-body);font-weight:650;color:#35546d}
.topbar-brand{display:flex;align-items:center;gap:11px;min-width:0}
.menu-toggle{width:34px;height:34px;min-height:34px;padding:0;background:transparent;color:#35556b;border:1px solid #bdcfda;font-size:19px;line-height:1}
.menu-toggle:hover{background:#dcebee;color:#174459}
.topbar .mark{width:36px;height:36px;margin:0;flex:none;font-weight:800;color:white}
.topbar-title{display:flex;flex-direction:column;gap:2px;line-height:1.15}
.topbar-title strong{font-size:var(--type-brand);letter-spacing:-.015em}
.topbar-title small{font-size:var(--type-small);color:#6d7e92}
.page-heading{position:sticky;top:56px;z-index:19;background:#fff;border-bottom:1px solid #dce5ee;padding:9px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.page-heading h1{font-size:var(--type-page);font-weight:650;margin:0 0 3px}
.heading-meta{color:#61758e;font-size:var(--type-small);white-space:nowrap}
.heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.heading-actions button{min-height:31px;padding:5px 10px;font-size:var(--type-small)}
.breadcrumb{font-size:var(--type-small);color:#61758e}
.side nav{display:grid;align-content:start;gap:3px;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.nav-group{padding:13px 10px 5px;color:var(--sidebar-muted);font-size:var(--type-small);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.nav-group:not(:first-child){margin-top:10px;border-top:1px solid var(--sidebar-line)}
.side nav button{text-align:left;display:flex;align-items:center;gap:10px;background:transparent;padding:9px 11px;min-height:39px;font-size:var(--type-body);color:var(--sidebar-text);font-weight:600;border-radius:7px;border-left:3px solid transparent}
.side nav button.active,.side nav button:hover{background:var(--sidebar-active);color:var(--sidebar-text);border-left-color:var(--ui-accent)}
.side nav button.nav-subitem{padding-left:23px;font-weight:500;min-height:34px}
.nav-icon{display:inline-grid;place-items:center;width:20px;font-size:var(--type-brand);font-weight:400;color:var(--sidebar-muted);flex:none}
.side nav button.active .nav-icon{color:var(--sidebar-text)}
.profile-menu{position:relative;flex:none}
.profile-menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#e0f0f2;border:1px solid #badde2;font-size:var(--type-body);font-weight:650}
.profile-menu summary::-webkit-details-marker{display:none}
.avatar{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#cde8e9;color:#146172;font-weight:750}
.chevron{font-size:var(--type-brand);line-height:1}
.profile-panel{position:absolute;z-index:10;right:0;top:calc(100% + 7px);width:min(275px,calc(100vw - 25px));padding:14px;background:#fff;border:1px solid #d6e1eb;border-radius:9px;box-shadow:0 10px 25px #11284624;overflow-wrap:anywhere}
.profile-caption{font-size:var(--type-small);color:#667b97;margin-bottom:4px}
.profile-panel strong{display:block;font-size:var(--type-body);font-weight:600}
.profile-panel button{margin-top:14px;width:100%}
.main{width:100%;padding:12px 16px}
.main.module-main{padding:0;max-width:none}
.module-frame{display:block;width:100%;height:calc(100vh - 106px);min-height:560px;border:0;background:#fff}
.section-title{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.section-title .muted{font-size:var(--type-small)}
.section-company{font-size:var(--type-card)}
#new-company,#assign-user{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}
#new-company>.row,#new-company>.check,#new-company>.actions,#assign-user>.actions{grid-column:1/-1}
#new-company>.row>label{margin-bottom:12px}
#assign-user>label:first-child{grid-column:1/-1}
.company-list{display:grid;gap:8px}
.company-row{display:grid;grid-template-columns:minmax(180px,2fr) minmax(165px,1.5fr) minmax(160px,1fr) 22px;align-items:center;gap:15px;padding:13px 17px;background:#fff;border:1px solid #dce5ee;border-radius:9px;font-size:var(--type-body);color:#63758b}
.company-row strong{font-size:var(--type-body);color:#112846}
.company-row.clickable{cursor:pointer}
.company-row.clickable:hover{border-color:#0995ab;background:#fbfeff}
.company-arrow{font-size:20px;color:var(--ui-accent);text-align:right}
.module-launch strong{display:block;margin-bottom:6px}
.module-launch p{margin-bottom:12px}
.module-cards{display:grid;gap:10px}
.module-launch+.module-launch{border-top:1px solid #e6eef4;padding-top:10px}
.launch-button{display:inline-flex;align-items:center;min-height:34px;padding:8px 12px;border-radius:8px;background:var(--ui-accent);color:#fff;text-decoration:none;font-size:var(--type-body);font-weight:650}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px}
.card{background:#fff;border:1px solid #dce5ee;border-radius:12px;padding:16px;box-shadow:0 3px 14px #12335808}
.card:has(> .panel-body){padding:0;background:transparent;border:0;box-shadow:none}
.card:has(> .panel-body)>h2{margin:0 0 9px;padding:0 2px}
.panel-body{background:#fff;border:1px solid #dce5ee;border-radius:10px;padding:16px;box-shadow:0 3px 14px #12335808}
.panel-body>:last-child{margin-bottom:0}
.card.clickable{cursor:pointer}
.card.clickable:hover{border-color:#0995ab;box-shadow:0 5px 18px #12335813}
.cols{display:grid;grid-template-columns:minmax(270px,390px) minmax(320px,1fr);gap:12px;align-items:start}
.license-layout{grid-template-columns:minmax(270px,390px) minmax(320px,1fr)}
.license-layout:has(> :only-child){grid-template-columns:minmax(0,1fr)}
.row{display:flex;gap:10px;align-items:start;flex-wrap:wrap}
.row>label{flex:1 1 135px}
.muted{color:#667b97}
.error{background:#fce7e9;color:#a32939;border-radius:8px;padding:10px;margin:0 0 14px}
.success{background:#def5ed;color:#08735b;border-radius:8px;padding:10px;margin:0 0 14px}
.signin{max-width:400px;margin:10vh auto}
.signin h1{font-size:var(--type-brand)}
.list{display:grid;gap:8px}
.list .card{padding:13px}
.top{display:flex;justify-content:space-between;gap:12px;align-items:center}
.loading{padding:25px}
.pill{display:inline-block;background:#e8f3f6;color:var(--ui-accent);border-radius:99px;padding:4px 8px;font-size:var(--type-small);font-weight:700}
.check{display:flex;align-items:center;gap:8px}
.check input{width:auto;min-height:0}
.actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.actions button{min-height:30px;padding:6px 10px;font-size:var(--type-small)}
.actions .danger{background:#fff0f1;color:#ac3342}
.actions .danger:hover{background:#fbdde0}
.list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f5}
.list-row:last-child{border-bottom:0}
.list-row small{display:block;color:#687b91;font-size:var(--type-small);margin-top:3px;overflow-wrap:anywhere}
.filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(130px,1fr));gap:10px;align-items:end;margin:0 0 17px}
.filters label{margin:0}
.report-scroll{overflow:auto;background:#fff;border:1px solid #dce5ee;border-radius:12px}
table{width:100%;border-collapse:collapse;min-width:680px}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid #e9eef4}
th{background:#f5f8fb;font-size:var(--type-small);color:#526781}
tr:last-child td{border-bottom:0}
.appearance-layout{grid-template-columns:minmax(380px,680px) minmax(250px,1fr)}
.appearance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
.appearance-grid input[type=color]{padding:3px;width:100%;height:38px}
.appearance-preview{border:1px solid #dce5ee;border-radius:9px;padding:16px;margin-bottom:13px;background:#fff}
@media(max-width:1100px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.app{display:block}.side{position:relative;height:auto;padding:10px 14px;gap:9px}.side nav{display:flex;overflow-x:auto;overflow-y:hidden;align-items:center}.side nav button{white-space:nowrap}.nav-group{display:none}.topbar{padding:0 12px}.page-heading{padding:9px 12px}.header-company{max-width:28vw}.main{padding:12px}.cols{grid-template-columns:1fr}.card{padding:14px}.panel-body{padding:14px}.signin{margin:8vh 14px}.company-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.company-row strong{grid-column:1}.company-row span:nth-child(2),.company-row span:nth-child(3){grid-column:1}.company-arrow{grid-column:2;grid-row:1/4;align-self:center}}
@media(max-width:520px){.filters{grid-template-columns:1fr}.list-row{align-items:flex-start;flex-direction:column}#new-company,#assign-user{grid-template-columns:1fr}}
@media(max-width:520px){.page-heading{align-items:flex-start;flex-wrap:wrap}.heading-actions{width:100%;justify-content:flex-start}.heading-meta{order:2}}
.header-upload{position:relative}.header-upload summary{list-style:none;cursor:pointer;background:#087f92;color:#fff;border-radius:7px;padding:7px 12px;font-size:var(--type-small);font-weight:650;white-space:nowrap}.header-upload summary::-webkit-details-marker{display:none}.header-upload-options{position:absolute;right:0;top:calc(100% + 5px);z-index:30;min-width:235px;padding:5px;background:#fff;border:1px solid #cbd8e7;border-radius:8px;box-shadow:0 8px 24px #18304720}.header-upload-options button{display:block;width:100%;text-align:left;background:transparent;color:#19344d;margin:0;padding:8px 10px;white-space:nowrap}.header-upload-options button:hover{background:#edf4f8}
.module-uploads{flex-wrap:wrap;gap:6px}.module-uploads .header-action{min-height:31px;padding:6px 10px;font-size:var(--type-small);white-space:nowrap}.module-uploads .header-action:disabled{opacity:.45}
.brand{display:flex;align-items:center;gap:9px}
.brand img{width:30px;height:30px;flex:none}
.brand span{min-width:0}
.brand-logo{display:block;width:36px;height:36px;flex:none}
.signin-brand{display:flex;align-items:center;gap:9px;margin-bottom:12px;color:var(--ui-accent);font-weight:750;font-size:var(--type-small)}
.signin-brand img{width:32px;height:32px}
@media(max-width:520px){.brand-logo{width:31px;height:31px}.topbar-title strong{font-size:14px}}
/* Keep the icon rail visible when the menu is collapsed. */
.app.sidebar-collapsed{grid-template-columns:58px minmax(0,1fr)}
.sidebar-collapsed .side{display:flex;width:58px;padding:12px 6px}
.sidebar-collapsed .brand{justify-content:center;padding:8px 0 12px}
.sidebar-collapsed .brand img{width:32px;height:32px}
.sidebar-collapsed .brand span,.sidebar-collapsed .nav-group,.sidebar-collapsed .nav-label{display:none}
.sidebar-collapsed .side nav{gap:5px}
.sidebar-collapsed .side nav button{justify-content:center;padding:8px 0;min-height:42px}
.sidebar-collapsed .nav-icon{width:25px;font-size:20px}
@media(max-width:760px){.app.sidebar-collapsed{display:grid;grid-template-columns:58px minmax(0,1fr)}.sidebar-collapsed .side{position:sticky;top:0;height:100vh}.sidebar-collapsed .side nav{display:grid;overflow-y:auto;overflow-x:hidden;align-content:start}.sidebar-collapsed .page-shell{min-width:0}.sidebar-collapsed .topbar-title strong{font-size:14px}}
