/* ===== 优化：表格内输入幽灵化 ===== */
.tbl input[type=text],.tbl input[type=date]{border:none;background:transparent;padding:6px 8px;border-radius:6px;transition:.15s;box-shadow:none}
.tbl input[type=date]{padding:6px 5px;font-size:12.5px}
.dtpick{position:relative;display:block;min-width:132px}
.dtpick input[type=date]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0;background:transparent;min-width:0;z-index:2}
.dtpick .dt-view{display:block;width:100%;min-width:132px;font-size:12.5px;font-variant-numeric:tabular-nums;padding:6px 5px 6px 8px;color:var(--text);border-radius:6px;box-sizing:border-box;cursor:pointer;user-select:none;-webkit-user-select:none;position:relative;padding-right:24px}
.dtpick .dt-view::after{content:"";position:absolute;right:5px;top:50%;transform:translateY(-50%);width:14px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2386868b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center/contain no-repeat;opacity:.6;pointer-events:none}
.dtpick:hover .dt-view{background:rgba(0,0,0,.03)}
.dtpick:hover .dt-view::after{opacity:.9}
.tbl input[type=text]:hover,.tbl input[type=date]:hover{background:rgba(0,0,0,.03)}
.tbl input[type=text]:focus,.tbl input[type=date]:focus{background:var(--blue-soft);box-shadow:none}
.tbl select{border:none;background:rgba(0,0,0,.03);padding:6px 8px;border-radius:6px;width:auto}
.tbl select:focus{background:var(--blue-soft);box-shadow:none}
.tbl tbody tr td:first-child{color:var(--text-3);font-variant-numeric:tabular-nums}
/* ===== 历史周报弹窗 ===== */
.hist-card{width:min(80vw,1400px);max-width:none;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;padding:22px 24px}
.hist-card h3{flex:none}
.hist-card .sub{flex:none}
.hist-card .modal-actions{flex:none;padding-top:14px}
.hist-list{max-height:172px;overflow:auto;display:flex;flex-direction:column;gap:8px;flex:none}
.hist-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--hairline);border-radius:10px;padding:10px 14px;background:var(--card-solid)}
.hist-item b{font-size:13.5px}
.hist-item .sub{display:block;font-size:11.5px;margin-top:2px}
.hist-detail{flex:1;min-height:0;overflow:auto;margin-top:2px;padding-right:6px}
.hist-detail h4{font-size:13px;font-weight:600;margin:12px 0 4px;color:var(--text-2)}
.hist-detail table{margin:0;min-width:820px;table-layout:auto}
.hist-detail table th:nth-child(2),.hist-detail table td:nth-child(2){min-width:220px}
.hist-detail table th:nth-child(3),.hist-detail table th:nth-child(4),.hist-detail table th:nth-child(5){width:150px}
@media(max-width:640px){
  .hist-card{width:calc(100vw - 24px);max-height:88vh;padding:16px}
  .hist-detail table{min-width:0}
  .hist-detail table th:nth-child(2),.hist-detail table td:nth-child(2){min-width:0}
}
/* ===== 提交状态 ===== */
.app{display:flex;min-height:100vh}
.sidebar{width:224px;flex:none;background:rgba(255,255,255,.78);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--hairline);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:60}
.sb-brand{display:flex;align-items:center;gap:10px;padding:20px 18px 16px}
.sb-brand .logo{width:34px;height:34px;border-radius:10px;background:var(--blue);color:#fff;display:grid;place-items:center;box-shadow:0 6px 16px rgba(0,113,227,.3)}
.sb-brand .logo svg{width:18px;height:18px}
.sb-brand-t{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.sb-brand-t b{font-size:14.5px;font-weight:700;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:152px;display:block}
.sb-brand-t small{font-size:11px;color:var(--text-3);font-weight:500;margin-top:1px}
.sb-nav{flex:1;display:flex;flex-direction:column;gap:3px;padding:6px 12px;overflow-y:auto}
.sb-nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;font-size:13.5px;font-weight:500;color:var(--text-2);text-decoration:none;transition:background .18s,color .18s}
.sb-nav a svg{width:17px;height:17px;flex:none;opacity:.85}
.sb-nav a:hover{background:rgba(120,120,128,.09);color:var(--text)}
.sb-nav a.active{background:var(--blue);color:#fff;box-shadow:0 4px 12px rgba(0,113,227,.3)}
.sb-nav a.active svg{opacity:1}
.sb-foot{padding:12px 16px;border-top:1px solid var(--hairline)}
.sb-foot .week-pill{width:100%;justify-content:center}
.main-wrap{flex:1;min-width:0;display:flex;flex-direction:column}
.sb-mask{position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.32);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.sb-toggle{display:none}
@media(max-width:900px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:60;transform:translateX(-102%);visibility:hidden;pointer-events:none;transition:transform .28s ease,visibility 0s .28s;box-shadow:0 16px 48px rgba(0,0,0,.18)}
  .sidebar.open{transform:translateX(0);visibility:visible;pointer-events:auto;transition:transform .28s ease}
  .sb-toggle{display:inline-flex}
}
.sub-ok{display:inline-flex;align-items:center;gap:5px;background:var(--green-soft);color:var(--green);font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}
.sub-ok svg{width:13px;height:13px}


/* ===== 小屏：周报表格卡片化 ===== */
@media (max-width:640px){
  .tbl-wrap{overflow:visible}
  table.tbl{display:block;width:100%;min-width:0}
  table.tbl colgroup{display:none}
  .tbl thead{display:none}
  table.tbl tbody{display:block}
  .tbl tbody tr{width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:3px 12px;
    border:1px solid var(--hairline);
    border-radius:12px;
    padding:10px 12px 8px;
    margin-bottom:10px;
    background:var(--card-solid);
    box-shadow:0 1px 4px rgba(0,0,0,.04)
  }
  .tbl tbody tr td{border:none !important;padding:3px 0;min-width:0}
  .tbl tbody tr td:first-child{display:none}
  .tbl tbody tr td:nth-child(2){grid-column:1/-1;margin-bottom:2px}
  .tbl tbody tr td:nth-child(2) input{width:100%;padding:8px 10px;background:rgba(0,0,0,.03);border-radius:8px;font-size:14px;font-weight:600}
  .dtpick{min-width:0}
  .dtpick .dt-view{min-width:0;font-size:12px;padding:7px 22px 7px 8px}
  .tbl tbody tr td:nth-child(5) select,
  .tbl tbody tr td:nth-child(6) input,
  .tbl tbody tr td:nth-child(7) input,
  .tbl tbody tr td:nth-child(4) input{width:100%;padding:7px 9px;background:rgba(0,0,0,.03);border-radius:8px;font-size:13px}
  .tbl tbody tr td:nth-child(5) select{font-size:12.5px}
  .tbl tbody tr td:last-child{grid-column:1/-1;justify-self:end;margin-top:4px}
  .tbl tbody tr td:last-child .icon-btn{background:rgba(255,69,58,.08);color:var(--red);border-radius:8px}
}
@media (max-width:560px){
  #view-weekly .head-actions .btn{font-size:12px;padding:6px 10px;white-space:nowrap}
  #view-weekly .head-actions .btn svg{width:14px;height:14px}
  #view-weekly .field select{min-width:0 !important;width:100%}
}


/* ===== 我的周报 ===== */
.mr-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.mr-stats .ts-item{flex:1;min-width:130px;background:var(--card,#fff);border:1px solid var(--hairline,#e5e5ea);border-radius:12px;padding:12px 14px;text-align:center}
.mr-stats .ts-num{display:block;font-size:19px;font-weight:700;line-height:1.3}
.mr-stats .ts-num.ok{color:#1d8a3c}.mr-stats .ts-num.warn{color:#b25e00}.mr-stats .ts-num.info{color:#0071e3}
.mr-stats .ts-item span{font-size:12px;color:var(--text-3,#999)}
.mr-wrap{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start}
.mr-list{display:flex;flex-direction:column;gap:8px;max-height:560px;overflow:auto}
.mr-item{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;background:var(--card,#fff);border:1px solid var(--hairline,#e5e5ea);border-radius:12px;padding:11px 14px;cursor:pointer;font:inherit;width:100%;box-sizing:border-box}
.mr-item:hover{border-color:var(--blue,#0071e3)}
.mr-item.on{border-color:#0071e3;background:rgba(0,113,227,.05);box-shadow:0 0 0 3px rgba(0,113,227,.12)}
.mr-wk{font-size:13.5px;font-weight:600;color:var(--text,#1c1c1e)}
.mr-meta{font-size:12px;color:var(--text-3,#999)}
.mr-detail{background:var(--card,#fff);border:1px solid var(--hairline,#e5e5ea);border-radius:14px;padding:16px;min-width:0;overflow:auto;max-height:640px}
.mr-d-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.mr-d-hd b{font-size:15px}
.mr-d-hd span{font-size:12px;color:var(--text-3,#999)}
.mr-detail .ex-tbl{width:100%;border-collapse:collapse;font-size:12.5px;margin-bottom:14px}
@media(max-width:900px){.mr-wrap{grid-template-columns:1fr}.mr-list{max-height:none;order:1}.mr-detail{order:2;max-height:none}}
