/* ============================================================
 * pro-mod2.css — V17-Pro 模块4-6 高级功能样式
 * 品牌色 var(--indigo)，只做加法
 * ============================================================ */

/* --- 视图切换器 --- */
.p2-viewbar{display:flex;align-items:center;gap: 8px;margin-bottom: 12px;flex-wrap:wrap}
.p2-viewbtn{padding: 4px 16px;border-radius: 18px;border:1px solid var(--line);background:var(--card);font-size: 13px;font-weight: 600;color:var(--ink-2);cursor:pointer;font-family:inherit;transition: all .15s}
.p2-viewbtn:hover{border-color:var(--indigo);color:var(--indigo)}
.p2-viewbtn.on{background:var(--indigo);color:var(--card);border-color:var(--indigo)}
.p2-viewbar .p2-spacer{flex:1}

/* --- 批量操作栏 --- */
.p2-batchbar{display:none;align-items:center;gap: 8px;padding: 8px 12px;background:var(--indigo-50);border-radius: 14px;margin-bottom: 8px;font-size: 13px;flex-wrap:wrap}
.p2-batchbar.show{display:flex}
.p2-batchbar select,.p2-batchbar button{font-size: 13px;padding: 4px 8px;border-radius: 14px;border:1px solid var(--line);background:var(--card);cursor:pointer;font-family:inherit}
.p2-batchbar button.p2-danger{color:var(--error);border-color:var(--error-bg)}

/* --- 任务卡片 checkbox --- */
.p2-tcheck{display:none;align-items:center;margin-right: 8px;cursor:pointer}
.p2-tcheck.show{display:inline-flex}
.p2-tcheck input{cursor:pointer}

/* --- 列表视图 --- */
.p2-list{background:var(--card);border-radius: 14px;overflow:hidden;border:1px solid var(--bg-soft)}
.p2-list-hd,.p2-list-row{display:grid;grid-template-columns:30px 1fr 90px 80px 90px 90px;gap: 8px;padding: 8px 12px;align-items:center;font-size: 13px}
.p2-list-hd{background:var(--bg-soft);font-weight: 600;color:var(--ink-2);font-size: 12px;text-transform:uppercase}
.p2-list-row{border-top:1px solid var(--bg-soft);cursor:pointer}
.p2-list-row:hover{background:var(--indigo-50)}
.p2-list-row .lt{font-weight: 600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){
  .p2-list-hd{display:none}
  .p2-list-row{grid-template-columns:24px 1fr 70px;padding: 8px}
  .p2-list-row .hide-m{display:none}
}

/* --- 日历视图 --- */
.p2-cal{background:var(--card);border-radius: 14px;border:1px solid var(--bg-soft);padding: 12px}
.p2-cal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom: 8px}
.p2-cal-hd h4{margin: 0;font-size: 13px}
.p2-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap: 4px}
.p2-calDow{font-size: 12px;color:var(--ink-3);text-align:center;padding: 4px 0;font-weight: 600}
.p2-calCell{min-height:64px;border:1px solid var(--bg-soft);border-radius: 14px;padding: 4px;font-size: 12px;position:relative;background:var(--card)}
.p2-calCell.other{background:var(--bg-soft);color:var(--ink-4)}
.p2-calCell.today{border-color:var(--indigo);background:var(--indigo-50)}
.p2-calNum{font-weight: 600;font-size: 12px;color:var(--ink-2)}
.p2-calDot{display:block;font-size: 12px;padding: 1px 4px;border-radius: 14px;margin-top: 4px;background:var(--indigo-50);color:var(--indigo);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.p2-calDot.urgent{background:var(--error-bg);color:var(--error)}

/* --- 甘特图 --- */
.p2-gantt{background:var(--card);border-radius: 14px;border:1px solid var(--bg-soft);overflow:auto;max-height:560px;position:relative}
.p2-gantt-inner{position:relative;min-width:760px}
.p2-gantt-head{position:sticky;top:0;z-index: var(--z-base);background:var(--bg-soft);display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid var(--line)}
.p2-gantt-times{position:relative;height:32px}
.p2-gantt-tick{position:absolute;top:0;bottom:0;border-left:1px solid var(--line);font-size: 12px;color:var(--ink-3);padding: 4px 0 0 4px}
.p2-gantt-row{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid var(--bg-soft);min-height:36px;position:relative}
.p2-gantt-label{padding: 8px 8px;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-right:1px solid var(--bg-soft);background:var(--card)}
.p2-gantt-track{position:relative;height:36px;background-image:linear-gradient(to right,var(--indigo-50) 1px,transparent 1px);background-size:calc(100% / 14) 100%}
.p2-gantt-bar{position:absolute;top:6px;height:24px;border-radius: 14px;background:var(--indigo);opacity:.85;color:var(--card);font-size: 12px;line-height:24px;padding: 0 8px;cursor:grab;overflow:hidden;white-space:nowrap;user-select:none}
.p2-gantt-bar:active{cursor:grabbing}
.p2-gantt-bar.done{background:var(--success);opacity:.7}
.p2-gantt-bar.overdue{background:var(--error)}
.p2-gantt-bar .p2-g-resize{position:absolute;right:0;top:0;width:6px;height:100%;cursor:ew-resize;background:rgba(255,255,255,.3)}
.p2-gantt-today{position:absolute;top:0;bottom:0;width:1px;background:var(--error);z-index: var(--z-base);pointer-events:none}
.p2-gantt-today::before{content:'今天';position:absolute;top:0;left:2px;font-size: 12px;color:var(--error)}

/* --- 时间追踪按钮 --- */
.p2-timer{display:inline-flex;align-items:center;gap: 4px;font-size: 12px;padding: 4px 8px;border-radius: 14px;cursor:pointer;border:none;font-family:inherit}
.p2-timer.start{background:var(--success-bg);color:var(--success)}
.p2-timer.stop{background:var(--error-bg);color:var(--error);animation: p2pulse 1.5s infinite}
@keyframes p2pulse{0%,100%{opacity:1}50%{opacity:.6}}
.p2-timedisp{font-size: 12px;color:var(--ink-3);margin-left: 8px}

/* --- 任务详情扩展区 --- */
.p2-sec{margin-top: 16px;border-top:1px solid var(--bg-soft);padding-top: 12px}
.p2-sec h4{margin: 0 0 8px;font-size: 13px;color:var(--ink);display:flex;align-items:center;gap: 8px}
.p2-actitem{display:flex;gap: 8px;padding: 8px 0;font-size: 12px;border-bottom:1px dashed var(--bg-soft)}
.p2-actitem .at{color:var(--ink-3);font-size: 12px;white-space:nowrap;min-width:120px}
.p2-actitem .aa{color:var(--ink-2);flex:1}
.p2-cfrow{display:flex;gap: 8px;align-items:center;margin-bottom: 8px;font-size: 13px}
.p2-cfrow label{min-width:80px;color:var(--ink-3)}
.p2-cfrow input,.p2-cfrow select{flex:1;border:1px solid var(--line);border-radius: 14px;padding: 4px 8px;font-size: 13px}

/* --- 会议 --- */
.p2-ongroup{display:inline-flex;align-items:center;gap: 4px;font-size: 12px;padding: 4px 8px;border-radius: 14px;background:var(--error-bg);color:var(--error);font-weight: 600;margin-left: 8px}
.p2-ongroup::before{content:'';width:6px;height:6px;border-radius: 50%;background:var(--error);animation: p2pulse 1.2s infinite}
.p2-mrec{display:flex;gap: 8px;align-items:center;margin-top: 8px;padding: 8px;background:var(--indigo-50);border-radius: 14px;font-size: 13px;flex-wrap:wrap}
.p2-mrec input{flex:1;border:1px solid var(--line);border-radius: 14px;padding: 8px 8px;font-size: 13px;min-width:160px}
.p2-mstats{display:grid;grid-template-columns:repeat(4,1fr);gap: 8px;margin-bottom: 16px}
.p2-mstat{background:var(--bg-soft);border-radius: 14px;padding: 12px;text-align:center}
.p2-mstat .n{font-size: 22px;font-weight: 600;color:var(--indigo)}
.p2-mstat .l{font-size: 12px;color:var(--ink-3);margin-top: 4px}
@media(max-width:600px){.p2-mstats{grid-template-columns:repeat(2,1fr)}}
.p2-mtpl-item{display:flex;align-items:center;gap: 8px;padding: 8px;background:var(--indigo-50);border-radius: 14px;margin-bottom: 8px;font-size: 13px}
.p2-mtpl-item .nm{flex:1;font-weight: 600}

/* --- 富文本编辑器 --- */
.p2-rte{border:1px solid var(--line);border-radius: 14px;overflow:hidden}
.p2-rte-bar{display:flex;gap: 4px;padding: 8px;background:var(--bg-soft);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center}
.p2-rte-bar button{min-width:28px;height:28px;border:none;background:transparent;border-radius: 14px;cursor:pointer;font-size: 13px;color:var(--ink-2);font-family:inherit;padding: 0 8px}
.p2-rte-bar button:hover{background:var(--line);color:var(--indigo)}
.p2-rte-bar .sep{width:1px;height:18px;background:var(--line);margin: 0 4px}
.p2-rte-area{min-height:200px;padding: 12px;font-size: 13px;line-height:1.7;outline:none;background:var(--card);max-height:500px;overflow:auto}
.p2-rte-area:empty::before{content:attr(data-placeholder);color:var(--ink-4)}
.p2-rte-area h1{font-size: 22px;font-weight: 600;margin: 12px 0 8px}
.p2-rte-area h2{font-size: 17px;font-weight: 600;margin: 8px 0 8px}
.p2-rte-area h3{font-size: 17px;font-weight: 600;margin: 8px 0 4px}
.p2-rte-area ul,.p2-rte-area ol{padding-left: 24px;margin: 8px 0}
.p2-rte-area blockquote{border-left:3px solid var(--indigo);background:var(--indigo-50);padding: 8px 12px;margin: 8px 0;color:var(--ink-2)}
.p2-rte-area pre{background:var(--ink);color:var(--line);padding: 8px;border-radius: 14px;overflow-x:auto;font-size: 13px;font-family:monospace}
.p2-rte-area code{background:var(--bg-soft);padding: 1px 4px;border-radius: 14px;font-size: 13px;font-family:monospace}
.p2-rte-area table{border-collapse:collapse;width:100%;margin: 8px 0;font-size: 13px}
.p2-rte-area td,.p2-rte-area th{border:1px solid var(--line);padding: 8px 8px}
.p2-rte-area img{max-width:100%;border-radius: 14px}
.p2-rte-bar .p2-rte-mode{margin-left: auto;font-size: 12px;color:var(--ink-3)}

/* --- 权限面板 --- */
.p2-perm{background:var(--indigo-50);border-radius: 14px;padding: 8px;margin-top: 8px}
.p2-perm-row{display:flex;align-items:center;gap: 8px;margin-bottom: 8px;font-size: 13px}
.p2-perm-row label{min-width:60px;color:var(--ink-3)}
.p2-perm-row select{flex:1;border:1px solid var(--line);border-radius: 14px;padding: 4px 8px;font-size: 13px}

/* --- 模板市场 --- */
.p2-tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap: 8px;margin-top: 8px}
.p2-tpl-card{border:1px solid var(--line);border-radius: 14px;padding: 12px;cursor:pointer;transition: all .15s;background:var(--card)}
.p2-tpl-card:hover{border-color:var(--indigo);}
.p2-tpl-card .ti{font-size: 13px;font-weight: 600;color:var(--ink);margin-bottom: 4px}
.p2-tpl-card .tm{font-size: 12px;color:var(--ink-3)}
.p2-tpl-card .td{margin-top: 8px;display:flex;gap: 8px}

/* --- @人弹出 --- */
.p2-atpop{position:absolute;z-index: var(--z-sticky);background:var(--card);border:1px solid var(--line);border-radius: 14px;max-height:200px;overflow:auto;width:200px}
.p2-atpop .it{padding: 8px 12px;font-size: 13px;cursor:pointer;display:flex;align-items:center;gap: 8px}
.p2-atpop .it:hover,.p2-atpop .it.on{background:var(--indigo-50)}

/* --- 分享链接 --- */
.p2-share{background:var(--success-bg);border:1px solid var(--success-bg);border-radius: 14px;padding: 8px;margin-top: 8px;font-size: 13px}
.p2-share .link{display:flex;gap: 8px;align-items:center;margin-top: 8px}
.p2-share input{flex:1;border:1px solid var(--success-bg);border-radius: 14px;padding: 4px 8px;font-size: 12px;background:var(--card)}

/* --- 导入按钮 --- */
.p2-import{position:relative;overflow:hidden}
.p2-import input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}

/* --- 小组统计卡片（会议） --- */
.p2-stats-card{background:var(--card);border:1px solid var(--bg-soft);border-radius: 14px;padding: 12px;margin-bottom: 12px}
.p2-stats-card h4{margin: 0 0 8px;font-size: 13px}

/* --- 移动端适配 --- */
@media(max-width:600px){
  .p2-mstats{grid-template-columns:repeat(2,1fr)}
  .p2-gantt-inner{min-width:600px}
  .p2-list-hd,.p2-list-row{font-size: 12px}
  .p2-viewbtn{padding: 4px 8px;font-size: 12px}
}
