:root{--primary:#1561d6;--primary-soft:#e9f1fd;--bg:#f3f5f8;--surface:#fff;--line:#e2e6ec;--text:#1c2330;--muted:#596273}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);margin:0}.center-page{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:10px;width:380px;max-width:100%;padding:32px 28px}.brand-mark{flex:none;display:inline-block}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:20;background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:14px;height:52px;padding:0 16px;display:flex;position:sticky;top:0}.brand{color:var(--text);flex:none;align-items:center;gap:8px;text-decoration:none;display:flex}.brand-name{font-size:15px;font-weight:700}.context-switcher .ant-select-selector{font-weight:600;background:var(--primary-soft)!important;border-color:#c9d8f3!important}.scan-search{flex:0 460px;min-width:0}.kbd{color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px;font-family:inherit;font-size:12px}.spacer{flex:1}.user-button{align-items:center;gap:8px;max-width:260px;display:flex}.user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar{font-weight:600;background:var(--primary-soft)!important;color:var(--primary)!important}.tabbar{border-bottom:1px solid var(--line);background:#eaedf2;align-items:flex-end;gap:2px;height:38px;padding:0 12px;display:flex;overflow-x:auto}.tab{white-space:nowrap;border-radius:6px 6px 0 0;align-items:center;gap:6px;height:32px;padding:0 10px 0 14px;display:inline-flex}.tab a{color:#3b4454;text-decoration:none}.tab-active{background:var(--surface)}.tab-active a{color:var(--primary);font-weight:600}.tab-close{color:#8a93a3;cursor:pointer;background:0 0;border:none;padding:2px;font-size:11px}.body{flex:1;min-height:0;display:flex}.sider{background:var(--surface);border-right:1px solid var(--line);flex:none;width:196px;padding-top:8px}.main{flex:1;min-width:0;padding:16px 20px 24px}.shell-mobile .topbar{gap:6px;padding:0 8px}.mobile-context{background:var(--surface);border-bottom:1px solid var(--line);padding:8px 12px}.shell-mobile .main{padding:12px 12px calc(84px + env(safe-area-inset-bottom,0px))}.bottom-tabs{z-index:20;height:calc(62px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--line);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-tab{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;text-decoration:none;display:flex}.bottom-tab .anticon{font-size:20px}.bottom-tab.active{color:var(--primary);font-weight:700}.page-head{flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:12px;display:flex}.page-head h1{margin:0;font-size:20px;font-weight:600}.page-head .hint{color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px}.panel-pad{padding:14px 16px}.toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}.mono{letter-spacing:.3px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}.num{font-variant-numeric:tabular-nums}.status-tag{white-space:nowrap;border-radius:999px;padding:1px 10px;font-size:12px;display:inline-block}.reason{color:#8a4b00;font-size:12px}.card-list{flex-direction:column;gap:10px;display:flex}.m-card{text-align:left;width:100%;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px;display:block}.m-card-row{align-items:flex-start;gap:8px;display:flex}.m-card-title{flex:1;min-width:0;font-weight:600}.m-card-sub{color:var(--muted);font-size:13px}.planned-menu-label{justify-content:space-between;align-items:center;gap:8px;display:flex}.planned-menu-label small{font-size:11px}.ant-menu .planned-menu-item.ant-menu-item-disabled{color:#858b94;cursor:not-allowed}.shortcut-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.shortcut{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--primary);color:var(--text);border-radius:8px;flex-direction:column;gap:6px;padding:16px 18px;text-decoration:none;display:flex}.shortcut:hover{border-color:#b9cdf0}.shortcut b{font-size:16px}.shortcut span{color:var(--muted);font-size:13px}@media (max-width:767px){.shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.work-frame{max-width:640px}.work-frame .ant-btn-lg{min-height:44px}.work-list{flex-direction:column;gap:8px;display:flex}.work-item{text-align:left;border:1px solid var(--line);background:var(--surface);cursor:pointer;width:100%;font:inherit;color:inherit;border-radius:8px;padding:12px 14px;display:block}.work-item:hover,.work-item.active{border-color:var(--primary);background:var(--primary-soft)}.work-item .sub{color:var(--muted);margin-top:2px;font-size:12px}.photo-button{display:inline-block}@media (max-width:767px){.toolbar .ant-btn,.ant-drawer-body .ant-btn,.ant-modal-footer .ant-btn,.ant-modal-confirm-btns .ant-btn,.photo-button .ant-btn,.work-frame .ant-btn{min-height:44px}}@media (min-width:768px){.sider{height:calc(100vh - 90px);height:calc(100dvh - 90px);position:sticky;top:90px;overflow-y:auto}.scan-search{min-width:120px}.topbar .context-switcher{min-width:0}}.user-button{flex-shrink:1;min-width:0}.user-button .avatar{flex:none}.user-name{min-width:0}.roles-layout{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:12px;display:grid}.roles-layout>.panel{min-width:0}.role-detail .ant-tree-node-content-wrapper{white-space:normal;overflow-wrap:anywhere;min-width:0}.role-detail .ant-tree-treenode{width:100%}.role-detail .ant-tree-title{overflow-wrap:anywhere}.role-detail .ant-tree-indent-unit{width:16px}.scope-tag{white-space:normal;overflow-wrap:anywhere;max-width:100%}.partner-fields{gap:12px;display:flex}.partner-fields>.ant-form-item{flex:1;min-width:0}.integration-card{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:12px}.integration-card .ant-descriptions-item-content{overflow-wrap:anywhere}@media (min-width:768px) and (max-width:1100px){.roles-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:767px){.shell-mobile .user-button{max-width:calc(100vw - 160px)}.shell-mobile .topbar>.ant-btn{flex-shrink:0}.shell-mobile .topbar .user-button{flex-shrink:1}.shell-mobile .ant-btn,.ant-modal .ant-btn,.ant-drawer .ant-btn{min-height:44px}.shell-mobile .topbar .ant-btn{min-width:44px}.partner-fields{flex-direction:column;gap:0}.ant-modal-footer{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.ant-modal-footer>.ant-btn+.ant-btn{margin-inline-start:0}.role-detail .ant-tree-indent-unit{width:12px}}.reason-button{flex-direction:column;align-items:flex-start;gap:4px;max-width:100%;display:inline-flex}.reason-button .reason{white-space:normal;overflow-wrap:anywhere;max-width:300px;font-size:12px}.read-state{text-align:center;padding:24px}.work-scan{flex-direction:column;gap:6px;min-width:0;display:flex}.work-scan-result{color:var(--muted);overflow-wrap:anywhere;font-size:12px}@media (max-width:767px){.work-frame{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.work-frame input,.work-frame .ant-input-number-input{font-size:16px}}.main .ant-table-content{overflow-x:auto}.native-login-card .ant-btn{white-space:normal;height:auto;min-height:44px}
