:root{color:#1f2933;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f7f9}*{box-sizing:border-box}body{min-width:320px;margin:0}#root,.app-shell{min-height:100vh}.app-sider{height:100vh;position:sticky;top:0;overflow:auto}.brand-lockup{color:#fff;white-space:nowrap;align-items:center;gap:10px;height:64px;padding:0 18px;font-size:16px;font-weight:700;display:flex}.brand-logo{object-fit:contain;filter:brightness(0)invert();flex:none;width:44px;height:28px;display:block}.app-menu{border-inline-end:0}.app-header{z-index:10;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex;position:sticky;top:0}.header-title,.header-subtitle{line-height:1.2;display:block}.header-subtitle{margin-top:3px;font-size:12px}.app-content{padding:24px}.user-menu-button{height:44px;padding-inline:8px}.user-menu-name{text-overflow:ellipsis;max-width:220px;overflow:hidden}.page-stack{width:100%}.page-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-heading h2{margin:0 0 4px}.table-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.search-input{max-width:360px}.table-subtext{text-overflow:ellipsis;max-width:260px;font-size:12px;line-height:1.4;display:block;overflow:hidden}.modal-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.auth-loading{background:#f6f7f9;place-items:center;min-height:100vh;display:grid}.login-screen{background:linear-gradient(135deg,#116a7b14,#0000 36%),#f6f7f9;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid #e5e7eb;width:min(100%,420px);box-shadow:0 20px 50px #17202a14}.login-stack{width:100%}.login-logo{width:118px;height:auto;margin-bottom:14px;display:block}.login-card h2{margin:0 0 4px}@media (max-width:767px){.app-header{padding:0 16px}.header-subtitle{display:none}.app-content{padding:16px}.page-heading,.table-toolbar{flex-direction:column;align-items:stretch}.search-input{max-width:none}}
