.ui-button{border-radius:var(--radius-sm,4px);min-width:72px;height:36px;font:inherit;letter-spacing:0;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:0 16px;font-size:14px;font-weight:500;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex;position:relative}.ui-button:disabled{cursor:not-allowed;opacity:.56}.ui-button--primary{color:#fff;background:var(--color-brand,#3370ff)}.ui-button--primary:hover:not(:disabled){background:var(--color-brand-hover,#245bdb)}.ui-button--secondary{color:var(--color-text,#1f2329);border-color:var(--color-border,#dee0e3);background:var(--color-surface,#fff)}.ui-button--ghost,.ui-button--icon{color:var(--color-text-secondary,#646a73);background:0 0}.ui-button--ghost:hover:not(:disabled),.ui-button--icon:hover:not(:disabled){background:#1f23290f}.ui-button--icon{width:36px;min-width:36px;padding:0}.ui-button--sm{min-width:56px;height:28px;padding:0 12px;font-size:13px}.ui-button--lg{min-width:88px;height:44px;padding:0 20px}.ui-button__content{justify-content:center;align-items:center;gap:6px;display:inline-flex}.ui-button[aria-busy=true] .ui-button__content{opacity:0}.ui-button__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite ui-spin;position:absolute}.ui-segmented{border-radius:var(--radius-sm,4px);background:#1f23290f;gap:2px;padding:2px;display:inline-flex}.ui-segmented__option{min-height:28px;color:var(--color-text-secondary,#646a73);font:inherit;letter-spacing:0;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:0 12px}.ui-segmented__option[aria-pressed=true]{color:var(--color-text,#1f2329);background:var(--color-surface,#fff);box-shadow:0 1px 3px #1f23291f}.ui-status-badge{border-radius:var(--radius-sm,4px);letter-spacing:0;align-items:center;height:24px;padding:0 8px;font-size:12px;display:inline-flex}.ui-status-badge--completed{color:#237804;background:#f0fbe8}.ui-status-badge--active{color:#245bdb;background:#eaf0ff}.ui-status-badge--overdue{color:#d4380d;background:#fff1f0}.ui-status-badge--neutral{color:var(--color-text-secondary,#646a73);background:#f2f3f5}@keyframes ui-spin{to{transform:rotate(360deg)}}.auth-state{text-align:center;place-content:center;min-height:100vh;padding:32px;display:grid}.auth-state h1,.auth-state p{margin:0}.auth-state p{color:var(--color-text-secondary);margin-top:10px}.login-page{background:#f5f6f7;place-items:center;min-height:100vh;padding:48px 24px;display:grid}.login-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:min(100%,420px);box-shadow:var(--shadow-panel)}.login-lockup{border-bottom:1px solid var(--color-border);margin:0;padding:22px 24px}.login-panel__content{padding:42px 36px 40px}.login-eyebrow{color:var(--color-brand);margin:0 0 10px;font-size:13px;font-weight:600}.login-panel h1{margin:0;font-size:26px;font-weight:600}.login-panel__content>p:last-of-type{color:var(--color-text-secondary);margin:12px 0 28px;line-height:1.65}.login-action{border-radius:var(--radius-sm);color:#fff;background:var(--color-brand);justify-content:center;align-items:center;gap:8px;width:100%;height:44px;font-weight:500;display:inline-flex}.login-action:hover{background:var(--color-brand-hover)}.user-menu{border-left:1px solid var(--color-border);align-items:center;gap:8px;min-width:0;padding-left:8px;display:flex}.user-menu img,.user-menu__avatar{width:30px;height:30px;color:var(--color-brand);object-fit:cover;background:#eaf0ff;border-radius:50%;flex:none;place-items:center;display:grid}.user-menu__name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:14px;overflow:hidden}@media (width<=480px){.login-page{padding:16px}.login-panel__content{padding:32px 24px}}.notification-trigger{flex:0 0 36px;position:relative}.notification-trigger__badge{border:2px solid var(--color-surface);color:#fff;background:var(--color-danger);border-radius:9px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10px;line-height:1;display:grid;position:absolute;top:-4px;right:-5px}.notification-overlay{z-index:80;background:#1f232947;position:fixed;inset:0}.notification-drawer{background:var(--color-surface);flex-direction:column;width:min(420px,100vw);height:100%;display:flex;position:absolute;top:0;right:0;box-shadow:-8px 0 24px #1f232924}.notification-drawer__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;min-height:68px;padding:0 18px 0 22px;display:flex}.notification-drawer__header h2{margin:0;font-size:18px;font-weight:600}.notification-drawer__header span{color:var(--color-text-tertiary);margin-top:2px;font-size:12px;display:block}.notification-drawer__commands{align-items:center;gap:4px;display:flex}.notification-drawer__body{flex:1;min-height:0;overflow-y:auto}.notification-state{min-height:220px;color:var(--color-text-tertiary);place-content:center;margin:0;font-size:14px;display:grid}.notification-state--error{color:var(--color-danger)}.notification-item{border-bottom:1px solid var(--color-border);background:#f7faff;grid-template-columns:8px minmax(0,1fr) 32px;gap:10px;padding:16px 16px 16px 20px;display:grid}.notification-item.is-read{background:var(--color-surface)}.notification-item__indicator{background:var(--color-brand);border-radius:50%;width:6px;height:6px;margin-top:7px}.notification-item.is-read .notification-item__indicator{background:0 0}.notification-item__content{min-width:0}.notification-item__content a{color:var(--color-text);font-size:14px;font-weight:600}.notification-item__content a:hover{color:var(--color-brand)}.notification-item__content p{overflow-wrap:anywhere;color:var(--color-text-secondary);margin:5px 0 8px;font-size:13px;line-height:1.5}.notification-item__content time{color:var(--color-text-tertiary);font-size:12px}@media (width<=520px){.notification-drawer{width:100vw}.notification-drawer__header{padding-inline:14px 10px}.notification-drawer__commands .ui-button--ghost{padding-inline:8px}}:root{--color-brand:#3370ff;--color-brand-hover:#245bdb;--color-text:#1f2329;--color-text-secondary:#646a73;--color-text-tertiary:#8f959e;--color-border:#dee0e3;--color-surface:#fff;--color-page:#f5f6f7;--color-success:#34c724;--color-warning:#f80;--color-danger:#f54a45;--topbar-height:64px;--sidebar-width:248px;--radius-sm:4px;--radius-md:8px;--shadow-panel:0 8px 24px #1f232914;font-family:Inter,PingFang SC,Microsoft YaHei,Arial,sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{min-width:1180px;color:var(--color-text);background:var(--color-page);letter-spacing:0;-webkit-font-smoothing:antialiased;margin:0;font-family:inherit}button,input,select,textarea{font:inherit;letter-spacing:0}:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}a{color:inherit;text-decoration:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{min-height:100vh}.topbar{z-index:20;height:var(--topbar-height);border-bottom:1px solid var(--color-border);background:var(--color-surface);align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.product-lockup{flex:none;align-items:center;gap:10px;margin-right:34px;display:flex}.product-mark{background:var(--color-brand);border-radius:6px;place-items:center;width:28px;height:28px;display:grid;position:relative}.product-mark:before,.product-mark span{content:"";background:#fff;border-radius:2px;width:13px;height:3px;transform:translateY(-3px)}.product-mark span{transform-origin:0;position:absolute;transform:translateY(4px)scaleX(.68)}.product-name{white-space:nowrap;font-size:18px;font-weight:600}.primary-nav{align-self:stretch;min-width:420px;display:flex}.primary-nav__link{color:var(--color-text-secondary);white-space:nowrap;align-items:center;padding:0 20px;font-size:15px;display:inline-flex}.primary-nav__link:hover{color:var(--color-text)}.primary-nav__link.is-active{color:var(--color-brand);box-shadow:inset 0 -3px var(--color-brand)}.topbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.topbar-search{border-radius:var(--radius-sm);width:180px;height:34px;color:var(--color-text-tertiary);background:#f2f3f5;border:1px solid #0000;align-items:center;gap:8px;padding:0 10px;display:flex}.topbar-search:focus-within{border-color:var(--color-brand);background:var(--color-surface)}.topbar-search input{background:0 0;border:0;outline:0;min-width:0}.app-main{min-height:calc(100vh - var(--topbar-height))}.topbar-menu{display:none}.route-loading{min-height:calc(100vh - var(--topbar-height));color:var(--color-text-secondary);place-content:center;display:grid}.module-placeholder{padding:32px 40px}.module-placeholder h1{letter-spacing:0;margin:0;font-size:24px;font-weight:600}@media (width<=760px){:root{--topbar-height:56px}body{min-width:0}.topbar{height:var(--topbar-height);padding:0 12px;display:flex}.product-lockup{margin-right:12px}.product-name{font-size:16px}.primary-nav{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;min-width:0;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 8px 18px #1f23291a}.primary-nav.is-open{display:flex}.primary-nav__link{justify-content:flex-start;min-height:44px;padding:0 20px;font-size:14px}.topbar-actions{min-width:0}.topbar-search,.topbar-actions>.ui-button:not(.topbar-menu):not(.notification-trigger){display:none}.topbar-menu{display:inline-flex}}
