/* ValueDr unified design system */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
:root{
  --navy-950:#071f43;--navy-900:#0b2f62;--navy-800:#123e77;--blue-600:#1d63d6;
  --blue-500:#2f80ed;--blue-100:#eaf2ff;--teal:#0caf91;--ink:#162337;--muted:#6b7c93;
  --bg:#f4f7fb;--surface:#fff;--line:#e3e9f2;--soft:#f8fafd;--success:#138a68;
  --warning:#b7791f;--danger:#d64545;--shadow:0 8px 28px rgba(21,47,83,.08);
  --sidebar:244px;--topbar:72px;--radius:12px
}
html{font-size:15px;scroll-behavior:smooth}
body{font-family:"Inter",Arial,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
a{color:inherit}

/* Application shell */
.app-shell{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:100;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--navy-900),var(--navy-950));color:#dce9fa;border-right:1px solid rgba(255,255,255,.06);box-shadow:8px 0 28px rgba(7,31,67,.08)}
.brand{height:88px;display:flex;align-items:center;margin:0 16px;padding:13px 12px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand img{display:block;width:182px;height:auto;filter:brightness(0) invert(1)}
.side-nav{flex:1;overflow:auto;padding:16px 12px 24px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}
.nav-section-label{margin:20px 12px 7px;color:#7894ba;font-size:.67rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.nav-section-label:first-child{margin-top:2px}
.side-link{position:relative;display:flex;align-items:center;gap:12px;min-height:43px;margin:3px 0;padding:10px 12px;color:#c8d8ed;border-radius:8px;text-decoration:none;font-size:.86rem;font-weight:550;transition:background .18s,color .18s,transform .18s}
.side-link i{width:19px;text-align:center;font-size:.92rem;color:#8eacd3}
.side-link:hover{color:#fff;background:rgba(255,255,255,.08);transform:translateX(2px)}
.side-link.active{color:#fff;background:linear-gradient(90deg,rgba(47,128,237,.88),rgba(47,128,237,.45));box-shadow:inset 3px 0 #63d9c1,0 4px 16px rgba(0,0,0,.12)}
.side-link.active i{color:#fff}
.sidebar-footer{display:flex;align-items:center;gap:10px;padding:15px 16px;border-top:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.09)}
.user-avatar,.topbar-avatar{display:grid;place-items:center;border-radius:50%;font-weight:800}
.user-avatar{width:36px;height:36px;flex:none;background:linear-gradient(135deg,#4b8ee9,#15b99c);color:#fff}
.user-meta{display:flex;flex:1;min-width:0;flex-direction:column}
.user-meta strong{overflow:hidden;text-overflow:ellipsis;font-size:.79rem;color:#fff}
.user-meta span{font-size:.68rem;color:#8fa9cc}
.logout-icon{color:#93aac9;padding:7px;border-radius:7px}.logout-icon:hover{color:#fff;background:rgba(255,255,255,.1)}
.app-main{min-height:100vh;margin-left:var(--sidebar)}
.topbar{position:sticky;top:0;z-index:80;height:var(--topbar);display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
.topbar-context{display:flex;flex-direction:column;gap:1px}.topbar-context .eyebrow{color:var(--muted);font-size:.67rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.topbar-context strong{font-size:.92rem}
.topbar-actions{display:flex;align-items:center;gap:14px}.secure-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;color:#49627f;background:#f5f8fc;border:1px solid var(--line);border-radius:999px;font-size:.71rem;font-weight:650}.secure-badge i{color:var(--teal)}
.topbar-avatar{width:34px;height:34px;color:var(--navy-900);background:var(--blue-100);border:1px solid #d8e6fb;font-size:.8rem}
.mobile-menu{display:none;width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy-900);cursor:pointer}
.container{width:100%;max-width:1720px;margin:0 auto;padding:28px 30px 60px}

/* Typography and page structure */
.page-title{color:#101d30;font-size:1.72rem;font-weight:800;letter-spacing:-.035em;line-height:1.2;margin-bottom:5px}
.page-subtitle{max-width:760px;color:var(--muted);font-size:.88rem;line-height:1.55}
h1,h2,h3,h4{color:#17243a}h3{font-size:1rem;margin-top:4px}
.muted{color:var(--muted)!important;opacity:1!important}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.page-heading .btn{margin-top:0}.section-kicker{display:block;margin-bottom:6px;color:var(--blue-600);font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card{display:flex;align-items:center;gap:16px;min-height:126px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 5px 18px rgba(21,47,83,.05)}.stat-icon{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:11px;font-size:1.1rem}.stat-card>div:last-child{display:flex;flex-direction:column}.stat-card span{color:var(--muted);font-size:.72rem;font-weight:700}.stat-card strong{margin:1px 0;color:#12233a;font-size:1.7rem;line-height:1.2}.stat-card small{color:#8a99aa;font-size:.67rem}.stat-blue .stat-icon{color:#1f67d2;background:#eaf2ff}.stat-teal .stat-icon{color:#07866f;background:#e7f8f4}.stat-amber .stat-icon{color:#aa7018;background:#fff5df}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:18px}.dashboard-grid .card{margin-top:0}.quick-actions{display:flex;flex-direction:column}.quick-actions>a{display:flex;align-items:center;gap:13px;padding:14px 4px;border-bottom:1px solid #edf1f5;text-decoration:none}.quick-actions>a:last-child{border-bottom:0}.quick-actions>a>span{display:grid;place-items:center;width:39px;height:39px;color:var(--blue-600);background:#eef5ff;border-radius:9px}.quick-actions>a>div{display:flex;flex:1;flex-direction:column}.quick-actions strong{font-size:.79rem}.quick-actions small{margin-top:2px;color:var(--muted);font-size:.7rem}.quick-actions>a>i{color:#9aabbd;font-size:.7rem}.quick-actions>a:hover>i{color:var(--blue-600);transform:translateX(2px)}.governance-panel{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,var(--navy-900),#12447f);color:#fff!important}.governance-panel h3{margin:15px 0 7px;color:#fff}.governance-panel p{color:#c5d6ea;font-size:.77rem;line-height:1.6}.governance-icon{display:grid;place-items:center;width:48px;height:48px;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);border-radius:11px}.health-status{display:inline-flex;align-items:center;gap:7px;width:max-content;margin-top:20px;padding:6px 9px;color:#bff5e9;background:rgba(12,175,145,.15);border-radius:999px;font-size:.68rem;font-weight:700}

/* Cards */
.card{width:100%;margin-top:18px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card:first-child{margin-top:0}
.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid #edf1f6}
.card-title{color:#13233a;font-size:1.24rem;font-weight:800;letter-spacing:-.025em}
.card-hint{margin-top:4px;color:var(--muted);font-size:.79rem}
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:18px}
.feature-box{position:relative;overflow:hidden;min-height:140px;padding:20px;background:linear-gradient(145deg,#fff,#f7faff);border:1px solid var(--line);border-radius:11px;transition:transform .2s,box-shadow .2s,border-color .2s}
.feature-box::after{content:"";position:absolute;right:-24px;bottom:-30px;width:100px;height:100px;border-radius:50%;background:rgba(47,128,237,.06)}
.feature-box:hover{transform:translateY(-3px);border-color:#c9d9f1;box-shadow:0 12px 25px rgba(21,47,83,.09)}
.feature-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:17px;color:var(--blue-600);background:var(--blue-100);border-radius:10px}.feature-icon i{font-size:1.05rem}
.feature-box h3{font-size:.82rem;color:var(--muted);font-weight:650}.feature-box p{position:relative;z-index:1;margin-top:5px;color:var(--ink);font-size:1.55rem;font-weight:800;line-height:1.25}

/* Buttons and tags */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;margin-top:14px;padding:9px 15px;border:1px solid var(--blue-600);border-radius:7px;background:var(--blue-600);color:#fff;text-decoration:none;font-size:.78rem;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 4px 10px rgba(29,99,214,.15);transition:background .18s,transform .18s,box-shadow .18s}
.btn:hover{background:#1555bb;transform:translateY(-1px);box-shadow:0 7px 15px rgba(29,99,214,.2)}
.btn.secondary{color:#314761;background:#fff;border-color:#d7e0ec;box-shadow:none}.btn.secondary:hover{color:var(--blue-600);background:#f6f9fd;border-color:#bfcde0}
.btn.danger{color:#c33636;background:#fff6f6;border-color:#efcaca;box-shadow:none}.btn.danger:hover{color:#fff;background:var(--danger);border-color:var(--danger)}
.btn.small{min-height:34px;margin-top:0;padding:7px 11px;font-size:.72rem}.btn:disabled,.btn.disabled{opacity:.55;cursor:not-allowed;transform:none}
.pill,.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid #dbe5f0;border-radius:999px;background:#f6f9fc;color:#526a85;font-size:.69rem;font-weight:650}
.pill.success{color:#08775a;background:#e9f8f3;border-color:#c2eadc}.pill.warning{color:#956018;background:#fff7e7;border-color:#f0dfb8}.pill.neutral{color:#526a85;background:#f4f7fa;border-color:#dfe6ee}

/* Forms */
form label,.map-row label{display:block;margin-bottom:6px;color:#405674;font-size:.73rem;font-weight:700}
.map-row{padding:0;background:transparent;border:0;border-radius:0}
.file-input,.select,input[type="text"],input[type="password"],input[type="email"],input[type="number"],textarea,select{width:100%;min-height:42px;padding:10px 12px;color:#1b2b40;background:#fff;border:1px solid #cfdae8;border-radius:7px;outline:none;transition:border .18s,box-shadow .18s}
.file-input{margin-top:0;max-width:none}
.file-input:focus,.select:focus,input:focus,textarea:focus,select:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(47,128,237,.12)}
select.select,select.select.filter{color:#1b2b40;background:#fff;border-color:#cfdae8}select option{color:#17243a;background:#fff}
.mapping-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.upload-box{margin-top:16px;padding:34px 24px;text-align:center;background:#f8fbff;border:1.5px dashed #9ebce5;border-radius:11px}.drop-icon{margin-bottom:10px;color:var(--blue-600);font-size:2rem}
.steps{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.step{display:flex;align-items:center;gap:8px;padding:7px 11px;color:#60748e;background:#f7f9fc;border:1px solid var(--line);border-radius:999px;font-size:.72rem}.step .dot{display:grid;place-items:center;width:20px;height:20px;color:#526a85;background:#e6edf6;border-radius:50%;font-size:.66rem;font-weight:800}.step.active{color:#1555bb;background:#eef5ff;border-color:#cbdcf5}.step.active .dot{color:#fff;background:var(--blue-600)}

/* Data tables */
.table-wrap{width:100%;margin-top:12px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:9px}
table{width:100%;min-width:700px;border-collapse:collapse}
thead th{padding:11px 13px;text-align:left;color:#64748b;background:#f7f9fc;border-bottom:1px solid var(--line);font-size:.65rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap}
tbody td{padding:12px 13px;color:#34465d;border-bottom:1px solid #edf1f5;font-size:.76rem;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8fbff}
.empty-cell{padding:30px!important;text-align:center;color:var(--muted)!important}.table-primary{display:flex;align-items:center;gap:9px}.mini-project-icon{display:grid;place-items:center;width:31px;height:31px;color:var(--blue-600);background:#edf4ff;border-radius:7px}.member-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:9px}.member-row{display:flex;align-items:center;gap:10px;padding:12px;background:#f9fbfd;border:1px solid var(--line);border-radius:9px}.member-avatar{display:grid;place-items:center;width:35px;height:35px;color:#fff;background:linear-gradient(135deg,#397ddd,#0caf91);border-radius:50%;font-size:.73rem;font-weight:800}.member-row>div:nth-child(2){display:flex;flex:1;flex-direction:column}.member-row strong{font-size:.75rem}.member-row small{color:var(--muted);font-size:.65rem}.role-badge{padding:4px 7px;color:#536b85;background:#edf2f7;border-radius:999px;font-size:.64rem;font-weight:700}

/* Project workspace */
.project-section-head{display:flex;align-items:center;justify-content:space-between;margin:26px 0 11px}.project-section-head>div{display:flex;align-items:center;gap:10px}.project-section-head h2{font-size:.91rem}.project-section-head span{padding:3px 7px;color:var(--muted);background:#e9eef5;border-radius:999px;font-size:.63rem;font-weight:700}.shared-head{margin-top:32px}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:14px}.project-card{position:relative;min-height:236px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 14px rgba(21,47,83,.045);transition:transform .18s,border .18s,box-shadow .18s}.project-card:hover{transform:translateY(-2px);border-color:#bed0e8;box-shadow:0 10px 24px rgba(21,47,83,.08)}.project-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.project-symbol{display:grid;place-items:center;width:40px;height:40px;color:var(--blue-600);background:#ecf3fe;border-radius:9px}.project-card h3{font-size:.93rem}.project-card>p{margin-top:5px;color:var(--muted);font-size:.71rem}.project-card>p i{width:15px}.project-meta{display:flex;gap:16px;margin-top:18px;padding:11px 0;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5;color:#72849a;font-size:.66rem}.project-meta i{margin-right:4px;color:#96a6b8}.project-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:14px}.project-more{position:absolute;right:14px;bottom:17px}.project-more summary{display:grid;place-items:center;width:31px;height:31px;color:#73859b;background:#f6f8fb;border:1px solid var(--line);border-radius:7px;cursor:pointer;list-style:none}.project-more summary::-webkit-details-marker{display:none}.project-more form{position:absolute;right:0;bottom:40px;z-index:5;width:245px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 14px 35px rgba(21,47,83,.18)}.project-more form .btn{width:100%;margin-top:8px}.permission-row{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 6px}.permission-row span{padding:5px 7px;color:#9aa7b7;background:#f6f7f9;border-radius:6px;font-size:.63rem}.permission-row span.granted{color:#12745a;background:#e9f7f2}.shared-card{min-height:225px}.empty-state{grid-column:1/-1;padding:42px;text-align:center;background:#fff;border:1px dashed #c7d5e6;border-radius:10px}.empty-state>span{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 13px;color:var(--blue-600);background:#edf4ff;border-radius:12px}.empty-state p{margin:5px 0;color:var(--muted);font-size:.75rem}

.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:18px}.form-layout>.card{margin-top:0}.form-card{padding:24px}.stacked-form{display:flex;flex-direction:column;gap:18px}.form-wide{grid-column:1/-1}.field-help{margin-top:6px;color:#7a8ca2;font-size:.66rem}.optional{margin-left:4px;color:#8b9bae;font-size:.61rem;font-weight:500}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:5px;padding-top:18px;border-top:1px solid var(--line)}.form-actions .btn{margin-top:0}.form-aside{padding:23px;background:#f9fbfe}.form-aside>span{display:grid;place-items:center;width:43px;height:43px;margin-bottom:15px;color:var(--blue-600);background:#e8f1ff;border-radius:10px}.form-aside h3{margin-bottom:10px}.form-aside ul{padding-left:17px;color:#667a92}.form-aside li{margin-top:10px;font-size:.7rem;line-height:1.55}.project-guide ol{display:flex;flex-direction:column;gap:15px;list-style:none}.project-guide li{display:flex;align-items:flex-start;gap:10px;margin:0}.project-guide li>b{display:grid;place-items:center;width:24px;height:24px;flex:none;color:#fff;background:var(--blue-600);border-radius:50%;font-size:.65rem}.project-guide li>div{display:flex;flex-direction:column}.project-guide small{margin-top:2px;color:var(--muted);font-size:.65rem}

/* Alerts */
.alerts{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.alert{display:flex;align-items:flex-start;gap:9px;padding:11px 13px;color:#31506d;background:#eef6ff;border:1px solid #cfe2f8;border-radius:8px;font-size:.78rem}.alert.success{color:#12694f;background:#eaf8f3;border-color:#bfe9db}.alert.error{color:#a83b3b;background:#fff1f1;border-color:#efc8c8}.alert.warning{color:#865d20;background:#fff8e9;border-color:#efddb4}

/* Compatibility layer for dense analytics templates */
.app-authenticated .sku-wrap,.app-authenticated .decision-wrap{width:100%!important;margin:0!important}
.app-authenticated .filters-wrap,.app-authenticated .filter-section,.app-authenticated .kpi-section,.app-authenticated .static-panel,.app-authenticated .panel,.app-authenticated .perimeter,.app-authenticated .metric-select,.app-authenticated .entry-switch,.app-authenticated .gtm-panel,.app-authenticated .catalog-panel{color:var(--ink)!important;background:#fff!important;border-color:var(--line)!important;box-shadow:none!important}
.app-authenticated .filters-wrap{background:#f9fbfd!important;border-radius:10px!important}
.app-authenticated .filter-section-title,.app-authenticated .kpi-section-title{color:#263b55!important}
.app-authenticated .filter-section-title i,.app-authenticated .kpi-section-title i{color:var(--blue-600)!important}
.app-authenticated .ms-trigger,.app-authenticated .pillchk{color:#2b405a!important;background:#fff!important;border-color:#d5dfeb!important}
.app-authenticated .ms-trigger:hover,.app-authenticated .pillchk:hover{background:#f7faff!important;border-color:#9dbce5!important}
.app-authenticated .kpi-card{color:var(--ink)!important;background:linear-gradient(145deg,#fff,#f7faff)!important;border-color:var(--line)!important;box-shadow:0 3px 12px rgba(21,47,83,.05)!important}
.app-authenticated .kpi-label{color:var(--muted)!important;opacity:1!important}
.app-authenticated .chip{color:#526a85!important;background:#f4f8fc!important;border-color:#dce6f0!important}
.app-authenticated .hint-banner{color:#23425f!important;background:#eef6ff!important;border-color:#c4dbf7!important}
.app-authenticated .table-wrap{background:#fff!important;border-color:var(--line)!important}
.app-authenticated .table-wrap thead th{color:#64748b!important;background:#f5f8fc!important;border-color:var(--line)!important;backdrop-filter:none!important}
.app-authenticated .table-wrap td{color:#34465d!important;border-color:#edf1f5!important}
.app-authenticated .static-title,.app-authenticated .panel-title{color:#243a55!important}
.app-authenticated .metric-select select,.app-authenticated .entry-switch select,.app-authenticated .gtm-panel select,.app-authenticated .gtm-panel input,.app-authenticated .catalog-panel select,.app-authenticated .catalog-panel input{color:#1b2b40!important;background:#fff!important;border-color:#cfdae8!important}
.app-authenticated .status-good{color:#08775a!important}.app-authenticated .status-bad{color:#c33d3d!important}.app-authenticated .status-warn{color:#9a681c!important}
.filters-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.filter-section{min-width:0;padding:13px;background:#fff;border:1px solid var(--line);border-radius:10px}.filter-section-title{display:flex;align-items:center;gap:8px;margin-bottom:11px;color:#2d435e;font-size:.73rem;font-weight:800}.filter-section-title i{color:var(--blue-600)}.filter-section .filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px}.no-data-kpi{display:none!important}
.calculation-guide{display:flex;align-items:flex-start;gap:12px;margin-top:14px;padding:14px 16px;color:#29445f;background:#eef6ff;border:1px solid #c9def7;border-radius:10px}.calculation-guide-icon{display:grid;place-items:center;width:37px;height:37px;flex:none;color:#fff;background:var(--blue-600);border-radius:9px}.calculation-guide strong{font-size:.76rem}.calculation-guide p{margin-top:4px;color:#5e7289;font-size:.7rem;line-height:1.55}
.focus-guidance{display:flex;align-items:flex-start;gap:11px;margin-top:14px;padding:13px 15px;color:#65501d;background:#fff8e8;border:1px solid #efddb0;border-radius:10px}.focus-guidance>i{margin-top:2px;color:#b77a18}.focus-guidance strong{font-size:.75rem}.focus-guidance p{margin-top:3px;color:#7c6b43;font-size:.69rem}.focus-guidance.focused{color:#145f4c;background:#eaf8f3;border-color:#bee6d9}.focus-guidance.focused>i{color:#0b8b6d}.focus-guidance.focused p{color:#467364}
.security-form{max-width:500px;margin:35px auto!important;padding:28px}.security-icon{display:grid;place-items:center;width:46px;height:46px;margin-bottom:15px;color:#fff;background:linear-gradient(135deg,var(--blue-500),var(--blue-600));border-radius:11px}.security-form form{margin-top:22px}.security-form .btn{width:100%;margin-top:0}.text-link,.auth-links a{color:var(--blue-600);font-size:.7rem;font-weight:650;text-decoration:none}.text-link{text-align:center}.auth-links{display:flex;justify-content:space-between;margin-top:13px}.row-actions{display:flex;align-items:center;gap:6px}.row-actions form{display:inline-flex}.device-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope-cell{max-width:350px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role-user a[href^="/upload"],.role-manager a[href^="/upload"]{display:none!important}.usage-note{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;color:#31506d;background:#eef6ff;border:1px solid #cfe2f8;border-radius:10px}.usage-note>i{margin-top:2px;color:var(--blue-600)}.usage-note>div{display:flex;flex-direction:column}.usage-note strong{font-size:.73rem}.usage-note span{margin-top:2px;color:#60758c;font-size:.68rem}
.module-description{display:flex;align-items:flex-start;gap:9px;margin:0 0 15px;padding:11px 13px;color:#49647f;background:#f4f8fd;border-left:3px solid var(--blue-500);border-radius:0 8px 8px 0;font-size:.7rem;line-height:1.55}.module-description i{margin-top:2px;color:var(--blue-600)}
.inline-status-form{display:flex;align-items:center;gap:6px}.inline-status-form select{min-height:34px;padding:6px 8px}

/* Signed-out pages */
.app-public{background:radial-gradient(circle at 12% 10%,rgba(47,128,237,.16),transparent 28%),linear-gradient(135deg,#f7faff 0%,#edf3fb 55%,#f8fbfd 100%)}
.public-shell{position:relative;min-height:100vh;padding:105px 24px 50px}.public-brand{position:absolute;top:26px;left:34px;display:block}.public-brand img{width:180px;height:auto}.public-shell>.card,.public-shell>form,.public-shell>.container{position:relative;z-index:1}.public-shell .card{box-shadow:0 18px 50px rgba(26,60,100,.13)}.public-shell::after{content:"";position:fixed;right:-120px;bottom:-180px;width:520px;height:520px;border:100px solid rgba(47,128,237,.04);border-radius:50%;pointer-events:none}.public-alerts{max-width:720px;margin:0 auto 16px}
.auth-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(390px,.65fr);align-items:center;gap:70px;width:min(1120px,100%);min-height:calc(100vh - 175px);margin:0 auto}.auth-story{max-width:590px}.auth-label{display:inline-flex;align-items:center;gap:7px;margin-bottom:20px;padding:7px 10px;color:#1858b7;background:#e7f0ff;border:1px solid #cbdcf6;border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.auth-story h1,.welcome-hero h1{max-width:680px;color:#10284a;font-size:clamp(2.25rem,4.5vw,4.1rem);font-weight:800;letter-spacing:-.055em;line-height:1.06}.auth-story>p,.welcome-hero>p{max-width:620px;margin-top:20px;color:#5e728d;font-size:1rem;line-height:1.7}.auth-benefits{display:grid;gap:12px;margin-top:34px}.auth-benefits>div{display:flex;align-items:center;gap:12px}.auth-benefits>div>span{display:grid;place-items:center;width:38px;height:38px;color:#1761cb;background:#fff;border:1px solid #d9e3f0;border-radius:9px;box-shadow:0 4px 12px rgba(21,47,83,.05)}.auth-benefits>div>div{display:flex;flex-direction:column}.auth-benefits strong{font-size:.77rem}.auth-benefits small{color:var(--muted);font-size:.69rem}.auth-card{margin:0;padding:30px}.auth-card-head{display:flex;align-items:center;gap:13px;margin-bottom:26px}.auth-card-head h2{font-size:1.35rem}.auth-card-head p{margin-top:3px;color:var(--muted);font-size:.74rem}.auth-lock{display:grid;place-items:center;width:44px;height:44px;color:#fff;background:linear-gradient(135deg,#2f80ed,#1d63d6);border-radius:10px;box-shadow:0 7px 16px rgba(29,99,214,.2)}.auth-field{margin-top:16px}.input-icon{position:relative}.input-icon i{position:absolute;left:13px;top:50%;z-index:2;transform:translateY(-50%);color:#8798ab;font-size:.78rem}.input-icon input{padding-left:38px}.auth-submit{width:100%;margin-top:22px}.auth-help{display:flex;align-items:flex-start;gap:8px;margin-top:20px;padding-top:16px;color:#72849a;border-top:1px solid var(--line);font-size:.67rem}.auth-help i{margin-top:2px;color:var(--blue-500)}
.welcome-hero{position:relative;z-index:1;width:min(1120px,100%);margin:55px auto 0;text-align:center}.welcome-hero h1,.welcome-hero>p{margin-left:auto;margin-right:auto}.welcome-actions{display:flex;justify-content:center;gap:10px;margin-top:25px}.welcome-features{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:58px;text-align:left}.welcome-features article{padding:23px;background:rgba(255,255,255,.8);border:1px solid var(--line);border-radius:11px;box-shadow:0 8px 24px rgba(21,47,83,.05)}.welcome-features article>span{display:grid;place-items:center;width:40px;height:40px;margin-bottom:16px;color:var(--blue-600);background:#eaf2ff;border-radius:9px}.welcome-features h3{font-size:.85rem}.welcome-features p{margin-top:6px;color:var(--muted);font-size:.72rem;line-height:1.55}

/* Responsive */
@media(max-width:1100px){.container{padding:24px 22px 50px}.secure-badge{display:none}.kpi-grid{grid-template-columns:repeat(3,minmax(140px,1fr))}.project-grid{grid-template-columns:repeat(2,minmax(250px,1fr))}.auth-layout{gap:35px}}
@media(max-width:900px){:root{--sidebar:250px}.sidebar{transform:translateX(-105%);transition:transform .22s ease}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open::after{content:"";position:fixed;inset:0;z-index:90;background:rgba(5,20,43,.42)}.app-main{margin-left:0}.mobile-menu{display:grid;place-items:center}.topbar{padding:0 18px}.topbar-context{margin-right:auto;margin-left:12px}.mapping-grid{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}.auth-layout{grid-template-columns:1fr;gap:28px;min-height:auto}.auth-story{max-width:720px}.auth-benefits{grid-template-columns:repeat(3,1fr)}.app-authenticated .filters-sections,.app-authenticated .kpi-sections{grid-template-columns:1fr!important}}
@media(max-width:700px){.stat-grid{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .btn{width:100%}.welcome-features,.auth-benefits{grid-template-columns:1fr}.welcome-actions{align-items:stretch;flex-direction:column}.welcome-actions .btn{width:100%}}
@media(max-width:640px){html{font-size:14px}.container{padding:18px 12px 40px}.topbar{height:64px}.topbar-actions{display:none}.card{padding:16px;border-radius:10px}.card-header{flex-direction:column}.card-header>div:last-child{width:100%}.page-title{font-size:1.45rem}.features-grid{grid-template-columns:1fr}.btn{min-height:38px}.public-shell{padding:94px 12px 35px}.public-brand{top:22px;left:20px}.public-brand img{width:160px}.table-wrap{border-radius:7px}.kpi-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.auth-story h1,.welcome-hero h1{font-size:2.25rem}.auth-card{padding:21px}.auth-story>p{font-size:.88rem}.project-meta{flex-direction:column;gap:5px}.project-more{position:static;margin-top:9px}.project-more form{right:auto;left:0}}
@media(max-width:900px){.form-layout{grid-template-columns:1fr}}
