/* 总入口与应用端选择页复用管理端的标题、图标、卡片和间距。 */
html:has(body.portal-page),body.portal-page{height:auto;min-height:100%;overflow:auto}
.portal-page{min-height:100dvh;background:var(--bg)}
.portal-page .app-header{position:sticky;top:0;z-index:10}
.portal-page .portal-return{margin-left:auto;flex-shrink:0;font-size:12px;color:var(--mute)}
.portal-page .portal-return:hover{color:var(--pine)}
.portal-page .context-bar{height:40px;min-height:40px}
.portal-breadcrumb{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--mute)}
.portal-breadcrumb a{color:var(--mute);display:flex}.portal-breadcrumb svg{width:13px;height:13px}.portal-breadcrumb b{font-weight:500;color:var(--ink2)}
.entry-dashboard{max-width:1200px;padding-top:48px}
.entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0}
.entry-card{border:1px solid var(--line);border-radius:12px;padding:28px;background:#fff;display:flex;flex-direction:column;min-width:0}
.entry-card h2{font-size:24px;margin:17px 0 8px;font-weight:600}.entry-card p{font-size:13px;line-height:1.85;color:var(--mute);margin:0;min-height:48px}
.entry-card .sys-icon{width:46px;height:46px}.entry-card .sys-icon svg{width:25px;height:25px}
.entry-card ul{list-style:none;padding:0;margin:24px 0 28px;display:grid;gap:12px;flex:1;align-content:start}
.entry-card li{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink2)}.entry-card li svg{width:16px;height:16px;color:var(--pine)}
.entry-card .sys-foot{margin-top:auto;padding-top:19px}.entry-card .btn{height:36px;padding:0 16px;font-size:13px}.entry-card:hover{border-color:#afc4b8}
.entry-note{color:var(--mute);font-size:12px;line-height:1.8}
.app-system-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.app-system-grid .sys-card{min-height:430px;padding:24px}.app-system-grid .sys-desc{min-height:66px}
.app-system-grid .sys-card h3{font-size:20px}
.app-features{list-style:none;padding:0;margin:6px 0 22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start;flex:1}
.app-features li{display:flex;align-items:center;gap:7px;min-width:0;color:var(--ink2);font-size:12px;line-height:1.7}.app-features svg{width:14px;height:14px;flex-shrink:0;color:var(--pine)}
.app-access-hint{font-size:11px;line-height:1.8;color:var(--mute);margin:0 0 3px}
.tone-cl .sys-icon{background:#e6f1ed;color:#286354}.tone-ed .sys-icon{background:#f6f0e4;color:#a58443}.tone-plaza .sys-icon{background:#edf0f8;color:#657ba2}
@media(max-width:950px){.app-system-grid{grid-template-columns:1fr}.app-system-grid .sys-card{min-height:0}.app-system-grid .sys-desc{min-height:0}.app-features{grid-template-columns:repeat(3,minmax(0,1fr))}.entry-grid{gap:16px}.entry-card{padding:24px}}
@media(max-width:600px){.entry-dashboard{padding-top:28px}.entry-grid{grid-template-columns:1fr;margin-top:22px}.entry-card{padding:22px}.entry-card h2{font-size:22px}.entry-card p{min-height:0}.app-system-grid .sys-card{padding:21px}.app-features{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-page .portal-return{font-size:11px}.portal-page .app-header{position:static}.portal-page .dashboard-footer{flex-direction:column;align-items:flex-start}}
.tone-ex .sys-icon{background:#eef0e2;color:#6f7a2f}.tone-dg .sys-icon{background:#e6eef3;color:#3f6a86}.tone-ag .sys-icon{background:#f0eaf4;color:#7a5a8f}.tone-em .sys-icon{background:#f6eee4;color:#9a6b3a}.tone-sys .sys-icon{background:#eceff1;color:#56636b}
