/* 私有学业组件：复用 V8 Design Tokens，完全本地/离线可用。 */
#app .xu-private-panel{grid-column:1/-1;padding:20px;min-width:0}
#app .xu-private-panel .card-header{align-items:center;flex-wrap:wrap}
#app .xu-private-status{font-size:11px;color:var(--xu-muted);border:1px solid var(--xu-line);border-radius:20px;padding:4px 9px}
#app .xu-private-status.is-ready{color:var(--xu-brand);background:var(--xu-soft)}
#app .xu-private-sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:9px;margin:14px 0}
#app .xu-private-source{border:1px solid var(--xu-line);border-radius:12px;background:var(--xu-soft);padding:10px 12px;min-width:0}
#app .xu-private-source>span{display:block;font-size:12px;font-weight:700;color:var(--xu-ink)}
#app .xu-private-source>small{display:block;font-size:11px;color:var(--xu-muted);margin-top:6px;overflow-wrap:anywhere}
#app .xu-private-connect{margin:14px 0}
#app .xu-private-connect>label{display:block;font-size:12px;font-weight:650;color:var(--xu-ink);margin-bottom:7px}
#app .xu-private-connect-row{display:flex;gap:9px;min-width:0}
#app .xu-private-connect-row input{background:var(--xu-surface);border:1px solid var(--xu-line);border-radius:10px;padding:11px 12px;flex:1;min-width:0;color:var(--xu-ink)}
#app .xu-private-connect-row input:focus-visible{outline:3px solid var(--xu-ring);outline-offset:2px}
#app .xu-private-connect-row button{flex:none}
#app .xu-private-error{color:#c75358}
#app .xu-private-view{margin:15px 0;padding:18px;min-width:0}
#app .xu-private-list{margin-top:12px}
#app .xu-private-item{display:flex;flex-direction:column;gap:5px;padding:13px 0;border-top:1px solid var(--xu-line)}
#app .xu-private-item strong{font-size:13px;color:var(--xu-ink);overflow-wrap:anywhere}
#app .xu-private-item span{font-size:12px;line-height:1.55;color:var(--xu-muted);overflow-wrap:anywhere}
#app .xu-private-task .xu-private-mark{color:var(--xu-brand);font-size:11px;padding-right:3px}
#app .xu-private-task .task-main{min-width:0}
@media(max-width:540px){
 #app .xu-private-panel{padding:15px}
 #app .xu-private-connect-row{flex-direction:column}
 #app .xu-private-connect-row button{min-height:40px}
 #app .xu-private-sources{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* 个人云端作业：在现有 V8 组件体系中复用卡片，不新增重复页面。 */
.xu-cloud-panel .button-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.xu-cloud-panel .button-row button{min-height:42px}
.xu-cloud-panel .xu-private-status{white-space:nowrap}
.xu-cloud-task .task-main{min-width:0}
.xu-cloud-task .task-main .entry-sub{overflow-wrap:anywhere}
.xu-cloud-task button{white-space:nowrap;min-height:40px;align-self:center}
.xu-cloud-deadline{margin:12px 0}
.xu-cloud-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
.xu-cloud-metrics span{min-width:0;overflow-wrap:anywhere;padding:10px;background:var(--surface2);border-radius:10px;font-size:12px;color:var(--muted)}
.xu-cloud-metrics strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:16px}
@media(max-width:540px){.xu-cloud-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.xu-cloud-panel .button-row button{flex:1 1 140px}}

/* 前台提醒仅在当前页面展示；不会申请系统通知权限。 */
.xu-deadline-alerts{margin:12px 0;padding:16px 18px}
.xu-deadline-alerts .card-header{display:flex;justify-content:space-between;align-items:center}
.xu-deadline-alert-item{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:10px 0;border-top:1px solid var(--xu-line)}
.xu-deadline-alert-item>span{display:flex;flex-direction:column;gap:5px;min-width:0}
.xu-deadline-alert-item strong{font-size:13px;overflow-wrap:anywhere}
.xu-deadline-alert-item small{color:var(--xu-muted);font-size:12px}
.xu-deadline-alert-item button{white-space:nowrap;min-height:40px}
@media(max-width:540px){.xu-deadline-alerts{padding:12px 14px}}
