@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap");:root{--bg:oklch(0.985 0.006 90);--text:oklch(0.32 0.02 255);--text-muted:oklch(0.55 0.02 255);--navy:oklch(0.3 0.1 260);--navy-deep:oklch(0.24 0.09 260);--teal:#2f8fae;--card-bg:oklab(1 0 0/0.8);--card-border:oklch(0.9 0.008 245);--chip-bg:oklch(0.93 0.03 250);--icon-bg:#e4eefc;font-family:Plus Jakarta Sans,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Plus Jakarta Sans,ui-sans-serif,system-ui,sans-serif;min-height:100vh}a{color:inherit;text-decoration:none}.topbar{justify-content:space-between;padding:18px 32px;border-bottom:1px solid var(--card-border);background:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:100}.topbar,.topbar-brand{display:flex;align-items:center}.topbar-brand{gap:10px;font-weight:800;font-size:18px;color:var(--navy)}.topbar-brand .logo-mark{color:var(--teal);font-size:22px}.topbar-brand small{font-weight:600;color:var(--teal);font-size:10px;letter-spacing:1px;margin-left:4px}.topbar-right{display:flex;align-items:center;gap:16px}.admin-link{border:1px solid var(--card-border);background:#fff;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;color:var(--navy);transition:background .15s}.admin-link:hover{background:var(--chip-bg)}.main-content{max-width:1240px;margin:0 auto;padding:56px 32px}.dash-header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;margin-bottom:40px}.dash-header .eyebrow{text-transform:uppercase;letter-spacing:2.5px;font-size:11px;font-weight:700;color:var(--text-muted);margin-bottom:10px}.dash-header h1{font-size:34px;font-weight:700;color:var(--navy);margin:0 0 10px}.dash-header .subtitle{color:var(--text-muted);font-size:15px}.dash-header .chip{display:inline-block;background:var(--chip-bg);color:var(--navy-deep);font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px}.section-title{text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:700;color:var(--text-muted);margin:36px 0 14px}.section-title:first-of-type{margin-top:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:16px;gap:16px}.module-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:4px;position:relative;transition:box-shadow .15s,transform .15s;cursor:pointer}.module-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.06);transform:translateY(-2px)}.module-card.disabled{opacity:.45;cursor:default;pointer-events:none}.module-card .card-icon{width:40px;height:40px;border-radius:10px;background:var(--icon-bg);color:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:18px}.module-card h3{margin:0 0 6px;font-size:17px;color:var(--navy);font-weight:700}.module-card p{margin:0 0 14px;font-size:13.5px;color:var(--text-muted);line-height:1.4;flex:1 1}.module-card .card-chip{align-self:flex-start;background:var(--chip-bg);color:var(--navy-deep);font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px}.module-card .card-arrow{position:absolute;right:20px;bottom:22px;color:var(--navy);font-size:18px}.module-card .no-access-badge{position:absolute;top:14px;right:14px;font-size:10px;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:1px}.sign-in-shell{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.sign-in-visual{background:linear-gradient(160deg,#1c3a63,#14294a 60%,#0f1f38);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.sign-in-visual .logo-block{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.sign-in-visual .logo-block b{font-size:30px;letter-spacing:1px}.sign-in-visual .logo-block span{font-size:12px;letter-spacing:3px;color:#cfe0f5}.sign-in-visual .quote{font-style:italic;font-size:30px;line-height:1.25;max-width:480px}.sign-in-visual .quote-sub{font-style:normal;font-size:14px;color:#cfe0f5;margin-top:14px;max-width:420px}.sign-in-form-panel{display:flex;align-items:center;justify-content:center;padding:48px}.permission-matrix-wrapper{overflow-x:auto;border:1px solid var(--card-border);border-radius:14px;background:#fff}.permission-matrix-wrapper table{width:100%;border-collapse:collapse;font-size:14px}.permission-matrix-wrapper thead th{position:-webkit-sticky;position:sticky;top:0;background:#f8f9fa;padding:12px 16px;text-align:center;font-weight:700;font-size:12px;text-transform:capitalize;color:var(--navy);border-bottom:2px solid var(--card-border);white-space:nowrap}.permission-matrix-wrapper thead th:first-child{text-align:left;min-width:200px}.permission-matrix-wrapper th[scope=colgroup]{background:var(--chip-bg)!important;text-align:left!important;padding:8px 16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);border-top:1px solid var(--card-border)}.permission-matrix-wrapper tbody td{padding:10px 16px;text-align:center;border-bottom:1px solid oklch(.95 .005 245)}.permission-matrix-wrapper tbody td:first-child{text-align:left;font-weight:500;color:var(--navy)}.permission-matrix-wrapper input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--navy-deep)}.permission-matrix-wrapper input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.permission-matrix-wrapper .error-indicator,.permission-matrix-wrapper .saving-indicator{margin-left:4px;font-size:12px}.empty-state{color:var(--text-muted)}.empty-state,.error-state{text-align:center;padding:4rem 2rem}.error-state h2{color:var(--navy);margin-bottom:8px}.error-state p{color:var(--text-muted)}