/* 登录角色入口及独立合成协作演示。 */
#loginPage { display:flex; flex-direction:column; padding:40px 20px; align-items:center; justify-content:center; }
#loginPage .login-box { max-width:400px; padding:0 0 26px; }
#loginPage #loginForm { padding:0 28px; }
#loginPage .login-welcome { padding:0 16px; }
.rd-entry-kicker { color:#3064da; font-size:13px; font-weight:700; letter-spacing:2px; margin-bottom:16px; }
.rd-entry-account { display:block; margin:0 0 16px auto; padding:6px 0; border:0; background:transparent; color:#5277b9; font-size:12px; cursor:pointer; }
.real-demo-setup p { font-size:13px; line-height:1.8; color:#6f7e95; margin-bottom:12px; }
.real-demo-setup label { display:block; margin:14px 0 7px; font-size:12px; color:#60718b; }
.real-demo-setup input { width:100%; border:1px solid #dbe3f0; border-radius:8px; padding:11px; }
.real-demo-setup form>button { margin-top:18px; }
#realDemoCreateResult { margin-top:16px; font-size:12px; line-height:1.9; color:#4d6790; }
.real-demo-account-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:16px 0; }
.real-demo-account-list>div { padding:8px; border:1px solid #e5eaf4; border-radius:7px; }
.real-demo-account-list code { display:block; font-size:11px; color:#5c7496; }
.real-demo-controls { display:flex; flex-wrap:wrap; gap:8px; margin:10px 16px; }
.real-demo-controls:empty { display:none; }
.rd-entry-panel h1 { color:#192a4b; font-size:clamp(28px,3vw,42px); letter-spacing:-1px; line-height:1.3; }
.rd-entry-description { max-width:600px; font-size:14px; line-height:1.9; color:#66758d; margin:16px 0; }
.rd-entry-meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; }
.rd-entry-meta span { padding:6px 10px; background:#e5ecfa; border-radius:6px; font-size:11px; color:#3f5b8a; }
.rd-entry-title { display:flex; align-items:center; justify-content:space-between; margin:0 0 12px; color:#243656; }
.rd-entry-title span { color:#778399; font-size:12px; }
.rd-role-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.rd-role-card { position:relative; min-width:0; border:1px solid #e0e7f2; background:#fff; border-radius:12px; padding:14px 11px; display:flex; gap:9px; align-items:flex-start; text-align:left; cursor:pointer; transition:transform .16s,box-shadow .16s; }
.rd-role-card:hover { transform:translateY(-3px); box-shadow:0 7px 18px #244c8a12; border-color:#9bb8f2; }
.rd-role-card>span:nth-child(2) { min-width:0; }
.rd-role-card b { color:#263958; font-size:14px; }
.rd-role-card small,.rd-role-card em { display:block; font-size:10px; line-height:1.6; margin-top:4px; color:#677991; font-style:normal; }
.rd-role-card i { position:absolute; right:9px; top:10px; font-size:12px; font-style:normal; color:#8495ad; }
.rd-role-icon { width:29px; height:29px; flex-shrink:0; display:grid; place-items:center; background:#eaf0ff; color:#3764c1; border-radius:9px; font-size:12px; font-weight:700; }
.rd-role-icon.tone-1 { background:#f0ebfc; color:#8054b8; }.rd-role-icon.tone-2 { background:#e4f4ee; color:#288f76; }.rd-role-icon.tone-3 { background:#fff1e3; color:#b57a34; }
.rd-entry-note { display:flex; align-items:flex-start; gap:12px; font-size:11px; color:#78849a; line-height:1.7; padding-top:18px; }
.rd-entry-note b { white-space:nowrap; color:#5d6f8e; }
.role-demo-open { overflow:hidden; }
#roleDemoWorkspace { position:fixed; inset:0; z-index:10000; display:flex; overflow:auto; background:#f4f6fa; color:#243452; font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif; font-size:14px; }
#roleDemoWorkspace * { box-sizing:border-box; }
#roleDemoWorkspace button,#roleDemoWorkspace select,#roleDemoWorkspace textarea { font:inherit; }
#roleDemoWorkspace button { cursor:pointer; }
#roleDemoWorkspace button:focus-visible,#roleDemoWorkspace select:focus-visible,#roleDemoWorkspace textarea:focus-visible,.rd-role-card:focus-visible { outline:3px solid #93b6fa; outline-offset:2px; }
.rd-sidebar { position:sticky; top:0; height:100vh; width:226px; flex-shrink:0; background:#fff; border-right:1px solid #e7ebf3; padding:28px 18px 20px; display:flex; flex-direction:column; }
.rd-brand { display:flex; align-items:center; gap:10px; }.rd-brand>span { display:grid; place-items:center; height:38px; width:38px; border-radius:12px; background:#3268dd; color:#fff; font-size:24px; font-weight:800; }
.rd-brand b { display:block; font-size:15px; }.rd-brand small { display:block; color:#8995a9; font-size:10px; margin-top:4px; letter-spacing:2px; }
.rd-company { border:1px solid #e8edf6; border-radius:10px; padding:13px 10px; margin:30px 0 22px; background:#fafbfe; }
.rd-company small,.rd-company span { display:block; color:#8491a7; font-size:10px; }.rd-company b { display:block; font-size:13px; margin:6px 0; }.rd-company span { font-size:9px; }
.rd-sidebar nav { display:grid; gap:7px; }.rd-sidebar nav button { display:flex; align-items:center; gap:12px; padding:13px 14px; background:transparent; text-align:left; color:#6b7990; border-radius:9px; border:0; font-size:13px; }.rd-sidebar nav button.active { color:#3165cb; background:#edf2ff; font-weight:700; }.rd-sidebar nav button>span { font-size:10px; opacity:.7; }.rd-sidebar nav em { margin-left:auto; background:#dfe9ff; padding:2px 6px; border-radius:5px; font-style:normal; font-size:10px; }
.rd-sidebar-bottom { margin-top:auto; padding-top:20px; border-top:1px solid #eef1f6; display:flex; align-items:center; gap:10px; }.rd-sidebar-bottom b { font-size:13px; display:block; }.rd-sidebar-bottom small { display:block; font-size:11px; color:#8b97ab; margin-top:4px; }
.rd-person-avatar { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; flex-shrink:0; background:#e9effc; color:#3f6bc1; font-weight:700; }
.rd-main { min-width:0; flex:1; }.rd-topbar { background:#fff; min-height:76px; padding:16px 32px; border-bottom:1px solid #e7ebf3; display:flex; align-items:center; justify-content:space-between; gap:16px; }.rd-topbar>div,.rd-topbar-actions { display:flex; align-items:center; gap:10px; }.rd-topbar span,.rd-topbar label { font-size:11px; color:#8b96a9; }.rd-topbar .rd-demo-tag { color:#a16c2d; background:#fff3db; border:1px solid #f5dfae; padding:4px 9px; border-radius:5px; }
#roleDemoWorkspace select { border:1px solid #dce3ef; border-radius:8px; background:#fff; padding:9px 12px; color:#344867; max-width:100%; min-width:0; }
.rd-content { max-width:1380px; margin:auto; padding:28px 32px; }.rd-content h1 { font-size:25px; line-height:1.4; margin:5px 0 9px; color:#243452; }.rd-content h2 { font-size:16px; margin:0; }.rd-content h3 { font-size:16px; margin:6px 0; }.rd-content h4 { font-size:13px; margin:22px 0 12px; }.rd-content p { line-height:1.7; }.rd-content small { font-size:11px; }
.rd-hero { background:linear-gradient(110deg,#e4edff,#f0f4ff 66%,#e5f1f6); border:1px solid #dce6f7; border-radius:16px; padding:30px; display:flex; align-items:center; justify-content:space-between; gap:22px; }.rd-hero>div>span { font-size:11px; color:#5279ba; letter-spacing:2px; }.rd-hero p { color:#7b8ca6; font-size:12px; margin:0; }.rd-hero .rd-hero-count { min-width:110px; text-align:center; border-left:1px solid #d3e0f6; padding-left:24px; }.rd-hero-count b { font-size:46px; color:#3267d4; display:block; }.rd-hero .rd-hero-count span { display:block; font-size:11px; color:#758aab; letter-spacing:0; }
.rd-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:20px 0 28px; }.rd-stats>div { background:#fff; border:1px solid #e7ebf3; border-radius:12px; padding:17px 20px; }.rd-stats span { display:block; font-size:11px; color:#8794aa; }.rd-stats b { display:block; font-size:27px; margin-top:9px; font-weight:650; }
.rd-section-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; margin:0 0 16px; }.rd-section-heading>span { font-size:11px; color:#8493a9; }.rd-section-heading p { font-size:12px; color:#8a96a9; margin:0; }.rd-section-heading small { color:#8392aa; }.rd-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:24px; }.rd-project-card { border:1px solid #e2e8f2; border-radius:13px; background:#fff; padding:20px; text-align:left; min-width:0; }.rd-project-card:hover { border-color:#9db9ed; }.rd-card-meta { display:flex; justify-content:space-between; align-items:center; font-size:10px; color:#8391a8; }.rd-card-meta em { background:#f0f5ff; border-radius:5px; color:#5078c2; padding:3px 7px; font-style:normal; }.rd-project-card h3 { margin:14px 0 7px; }.rd-project-card p { font-size:11px; color:#8b98ab; min-height:38px; }.rd-progress { height:5px; border-radius:4px; background:#edf1f8; overflow:hidden; margin:18px 0 12px; }.rd-progress i { display:block; background:#5484e8; height:100%; }.rd-card-footer { display:flex; justify-content:space-between; gap:8px; font-size:10px; color:#8a98af; }.rd-card-footer b { color:#5481cf; font-weight:500; }
.rd-panel,.rd-item-detail { background:#fff; border:1px solid #e4e9f2; border-radius:13px; padding:20px; margin-bottom:20px; min-width:0; }.rd-item-list { display:grid; }.rd-item-row { width:100%; display:flex; align-items:center; gap:12px; background:transparent; text-align:left; padding:16px 0; border:0; border-bottom:1px solid #f0f3f8; min-width:0; }.rd-item-row:last-child { border-bottom:0; }.rd-item-row>span:nth-child(2) { flex:1; min-width:0; }.rd-item-row b { font-size:12px; display:block; line-height:1.6; color:#3e4f6b; }.rd-item-row small { display:block; font-size:10px; color:#95a0b2; margin-top:5px; line-height:1.5; }.rd-item-mark { display:grid; place-items:center; background:#f0f3f8; color:#9aa6b8; width:30px; height:30px; border-radius:8px; flex-shrink:0; }.rd-item-mark.mine { background:#edf3ff; color:#457bdb; }.rd-item-mark.done { background:#e9f7ef; color:#30906b; }.rd-item-owner { color:#536680; text-align:right; font-size:11px; flex-shrink:0; }.rd-item-row.selected { background:#f7f9ff; }.rd-item-row>span:last-child { color:#a3adc0; }
.rd-button { border:1px solid transparent; border-radius:8px; padding:9px 14px; background:#366bda; color:white; font-size:12px!important; line-height:1.4; }.rd-button.secondary { color:#607594; border-color:#dde5f1; background:#fff; }.rd-button.link { color:#4b76bd; padding:4px; background:transparent; border:0; }.rd-empty { padding:24px 10px; color:#8a98ae; font-size:12px; line-height:1.9; text-align:center; }.rd-detail-placeholder { background:#eef2fa; border-radius:12px; align-self:start; }
.rd-project-summary { display:flex; flex-wrap:wrap; gap:20px; padding:18px 22px; border:1px solid #e1e8f5; background:#edf2fc; border-radius:12px; margin-bottom:22px; font-size:11px; color:#8a99af; }.rd-project-summary b { color:#4f668b; margin-left:8px; }.rd-flow-layout { display:grid; grid-template-columns:minmax(260px,.9fr) minmax(340px,1.1fr); gap:18px; align-items:start; }.rd-flow-layout .rd-item-row { gap:8px; }.rd-flow-layout .rd-item-row small { font-size:9px; }.rd-pill { border-radius:5px; background:#eef3ff; color:#4b77c8!important; padding:5px 8px; font-size:10px; white-space:nowrap; }
.rd-step-list { list-style:none; padding:0; margin:18px 0; }.rd-step-list li { display:flex; align-items:center; gap:12px; position:relative; padding:0 0 22px; }.rd-step-list li:before { content:''; position:absolute; left:13px; top:27px; height:calc(100% - 27px); width:1px; background:#e4eaf5; }.rd-step-list li:last-child:before { display:none; }.rd-step-list i { width:27px; height:27px; border:1px solid #dce4f2; border-radius:50%; display:grid; place-items:center; font-size:10px; font-style:normal; color:#9ba9bf; flex-shrink:0; }.rd-step-list .current i { background:#3269db; color:#fff; border-color:#3269db; }.rd-step-list .done i { background:#e5f6ed; color:#2b966a; border-color:#e5f6ed; }.rd-step-list b { display:block; font-size:12px; font-weight:500; color:#526784; }.rd-step-list span { display:block; font-size:10px; color:#8b9ab0; margin-top:4px; }.rd-step-list em { font-size:9px; color:#a0adc0; font-style:normal; margin-left:auto; }.rd-step-list .current em,.rd-step-list .current b { color:#3971d1; }
.rd-action-panel { background:#f3f7ff; border-radius:10px; padding:16px; }.rd-action-panel>b { display:block; font-size:12px; margin-bottom:12px; }.rd-action-panel label { display:block; font-size:10px; color:#8193ad; margin-bottom:7px; }#roleDemoWorkspace textarea { width:100%; padding:10px; border:1px solid #d8e2f2; border-radius:7px; background:#fff; color:#425a7b; resize:vertical; font-size:12px; }.rd-action-buttons { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }.rd-transfer { display:flex; flex-wrap:wrap; align-items:center; gap:8px; border-top:1px solid #dde6f7; margin-top:15px; padding-top:15px; }.rd-transfer label { flex-basis:100%; margin:0; }.rd-transfer select { flex:1; font-size:11px!important; }.rd-next-person { display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:11px; padding:14px; background:#f7f9fd; border-radius:8px; }.rd-delivery { padding:14px; background:#f7fafc; border:1px solid #e9eef4; border-radius:8px; margin:12px 0; font-size:11px; }.rd-delivery p { color:#7f8da3; margin:7px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }.rd-success { padding:16px; font-size:12px; line-height:1.8; background:#edf8f2; color:#4f8c70; border-radius:8px; }
.rd-log { list-style:none; padding:0; margin:0; }.rd-log li { display:flex; gap:12px; border-bottom:1px solid #eef2f7; padding:15px 0; }.rd-log li:last-child { border:0; }.rd-log i { height:7px; width:7px; border-radius:50%; background:#9bb9e6; margin-top:6px; flex-shrink:0; }.rd-log b { font-size:11px; color:#536882; font-weight:500; }.rd-log p { font-size:11px; color:#8797ad; margin:5px 0; overflow-wrap:anywhere; }.rd-log small { font-size:9px; color:#a3afc0; }
.rd-people-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:20px; }.rd-person { display:flex; gap:12px; }.rd-person b { font-size:12px; }.rd-person small { font-size:10px; font-weight:400; color:#8494ad; }.rd-person p,.rd-muted { font-size:11px; color:#8c9bb0; margin:5px 0; }.rd-table-wrap { overflow:auto; }.rd-table-wrap table { border-collapse:collapse; width:100%; min-width:540px; text-align:left; font-size:11px; }.rd-table-wrap th { font-weight:500; color:#8a9ab1; background:#f7f9fc; padding:13px; }.rd-table-wrap td { padding:16px 13px; border-bottom:1px solid #edf1f7; }.rd-table-wrap td small { display:block; font-size:9px; color:#9ba8bb; margin-top:7px; }.rd-notice { margin-top:20px; padding:14px; background:#fff8eb; border-radius:8px; font-size:11px; line-height:1.8; color:#aa8b54; }.rd-feedback { position:sticky; bottom:14px; color:#345c9a; background:#e9f1ff; border-radius:10px; padding:12px 16px; font-size:12px; line-height:1.8; box-shadow:0 3px 15px #24426b0a; }.rd-feedback:empty { display:none; }.rd-feedback button { margin-left:12px; }.rd-footer { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:20px 0 4px; color:#a1adbf; font-size:10px; }
/* 已认证账号首页：真实项目流转，仅调用当前账号获准读取的接口。 */
.home-project-flow { margin:20px 0; padding:20px; border:1px solid #e1e8f3; border-radius:14px; background:#fff; }.home-project-flow h3 { font-size:15px; margin:0 0 7px; }.home-project-flow>p { font-size:11px; color:#8793a6; margin-bottom:14px; }.home-flow-project { border-top:1px solid #edf1f7; padding:14px 0; }.home-flow-project summary { cursor:pointer; display:flex; justify-content:space-between; gap:12px; font-size:12px; color:#415b7d; }.home-flow-project summary span { color:#8c9aaf; font-size:10px; }.home-flow-list { padding-top:12px; }.home-flow-list button { display:block; text-align:left; width:100%; background:#f7f9fd; padding:12px; margin:5px 0; border-radius:8px; font-size:12px; color:#435e83; }.home-flow-list button small { display:block; margin-top:5px; color:#8a9cb5; font-size:10px; }.home-flow-state { padding:12px; font-size:11px; line-height:1.8; color:#8c9bb0; }
@media(min-width:1500px) { #loginPage { gap:64px; } }
@media(max-width:1100px) { #loginPage { gap:26px; grid-template-columns:330px minmax(0,1fr); padding:32px 24px; }.rd-role-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.rd-sidebar { width:190px; padding:22px 12px; }.rd-topbar { padding:15px 20px; }.rd-topbar>div>span:last-child { display:none; }.rd-content { padding:24px 20px; }.rd-topbar label { display:none; }.rd-flow-layout { grid-template-columns:1fr; }.rd-hero { padding:24px; } }
@media(max-width:760px) { #loginPage { display:flex; flex-direction:column; gap:32px; padding:24px 16px; justify-content:flex-start; }#loginPage .login-box { max-width:460px; order:2; }.rd-entry-panel { width:100%; max-width:560px; order:1; padding-top:10px; }.rd-entry-panel h1 { font-size:30px; }.rd-entry-panel h1 br { display:none; }.rd-entry-kicker { font-size:11px; margin-bottom:10px; }.rd-entry-description { font-size:12px; margin:10px 0; }.rd-entry-meta { margin-bottom:22px; }.rd-role-card { padding:13px 10px; min-height:93px; }.rd-role-card b { font-size:13px; }.rd-entry-note { font-size:10px; }.rd-sidebar { position:fixed; top:auto; bottom:0; height:auto; padding:7px 3px max(7px,env(safe-area-inset-bottom)); width:100%; z-index:2; border:0; border-top:1px solid #e4eaf5; }.rd-brand,.rd-company,.rd-sidebar-bottom { display:none; }.rd-sidebar nav { display:flex; gap:0; }.rd-sidebar nav button { flex:1; min-width:0; padding:7px 0; justify-content:center; flex-direction:column; gap:4px; font-size:10px; white-space:nowrap; position:relative; }.rd-sidebar nav button>span { font-size:9px; }.rd-sidebar nav em { position:absolute; right:4px; top:0; font-size:8px; padding:1px 4px; }.rd-topbar { padding:12px; flex-wrap:wrap; gap:8px; }.rd-topbar>div { gap:6px; }.rd-topbar select { max-width:170px!important; padding:7px!important; font-size:11px!important; }.rd-topbar .rd-button { font-size:10px!important; padding:7px 9px; }.rd-content { padding:18px 14px 100px; }.rd-content h1 { font-size:21px; }.rd-hero { padding:20px 17px; gap:10px; }.rd-hero-count { display:none; }.rd-hero p { font-size:11px; }.rd-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:14px 0 22px; }.rd-stats>div { padding:14px; }.rd-stats b { font-size:23px; }.rd-stats span { font-size:10px; }.rd-project-grid { grid-template-columns:1fr; gap:12px; }.rd-project-card { padding:17px; }.rd-section-heading { flex-wrap:wrap; gap:8px; }.rd-section-heading h2 { font-size:15px; }.rd-section-heading>span { font-size:10px; }.rd-panel,.rd-item-detail { padding:16px; margin-bottom:14px; }.rd-item-row { gap:9px; }.rd-item-row b { font-size:11px; }.rd-item-row small { font-size:9px; }.rd-item-owner { font-size:10px; }.rd-project-summary { padding:14px; gap:12px; font-size:10px; }.rd-project-summary b { margin-left:4px; }.rd-people-grid { grid-template-columns:1fr; }.rd-flow-layout { grid-template-columns:minmax(0,1fr); }.rd-footer { flex-wrap:wrap; padding-top:10px; }.rd-feedback { bottom:78px; font-size:11px; }.home-project-flow { padding:16px; }.home-flow-project summary { flex-wrap:wrap; } }
