:root{color:#0f172a;background:#f4f7fb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:1180px}.app-shell{min-height:100vh}.app-sider{background:#fff!important;border-right:1px solid #e8edf5;position:sticky!important;top:0;height:100vh}.app-logo{height:72px;padding:16px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #eef2f7}.app-logo-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:#fff;font-weight:800;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 8px 20px #2563eb3d}.app-logo small{display:block;color:#94a3b8;margin-top:2px}.app-sider .ant-menu{border-inline-end:0!important;padding:12px 10px}.app-header{height:64px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:#ffffffeb;border-bottom:1px solid #e8edf5;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-content{padding:24px 28px 40px}.directory-refresh-slot{display:flex;flex-direction:column;align-items:flex-end}.surface-card{background:#fff;border:1px solid #e8edf5;border-radius:12px;box-shadow:0 4px 18px #0f172a0a}.page-title{padding:24px;font-size:22px;font-weight:650}.page-loading{min-height:100vh;display:grid;place-items:center}.login-page{min-height:100vh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 20% 15%,rgb(37 99 235 / 13%),transparent 28%),radial-gradient(circle at 85% 75%,rgb(14 165 233 / 10%),transparent 25%),#f4f7fb}.login-card{width:420px;padding:18px;border-radius:16px;box-shadow:0 24px 60px #0f172a1f}.brand-mark{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:22px;color:#fff;background:#2563eb}.login-card h2{margin:0 0 8px!important}.login-footnote{display:block;text-align:center;font-size:12px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.page-heading h2{margin:0 0 6px!important}.table-card{padding:18px}.filter-bar{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap}.role-tag{margin:2px 4px 2px 0}.muted{color:#64748b}
