/* 任務追蹤板樣式：UI 原則＝表格預設純文字，點下去才變控制項 */
  :root{
    --bg:#f7f7f5; --panel:#fff; --line:#e8e7e3; --line-strong:#d5d3cd;
    --ink:#23211d; --ink-soft:#75716a; --ink-faint:#9a958c;
    --accent:#3f6b5d; --accent-soft:#eef3f1;
    --hi:#b4483a; --mid:#8c7433; --lo:#8a867e;
  }
  *{box-sizing:border-box}
  body{margin:0;background:var(--bg);color:var(--ink);
       font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:13.5px}
  .wrap{max-width:1500px;margin:0 auto;padding:18px 18px 70px}
  h1{font-size:28px;font-weight:800;margin:0 0 14px;letter-spacing:.5px;color:var(--ink)}
  .sub{color:var(--ink-faint);font-size:12px;margin-bottom:14px}
  .bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
  button{font:inherit;font-size:12.5px;background:transparent;border:1px solid var(--line-strong);
         border-radius:5px;padding:4px 10px;cursor:pointer;color:var(--ink-soft)}
  button:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
  button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
  button.primary:hover{filter:brightness(1.1);color:#fff}
  .spacer{flex:1}
  .stat{color:var(--ink-faint);font-size:12px;margin-right:4px}
  .panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}
  .panel + .panel{margin-top:14px}
  /* 上方儀表板：焦點｜提醒 ／ 排程｜每日結果，視窗窄就疊成一欄 */
  :root{ --card-h:180px; }                     /* 四格統一高度 */
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;align-items:stretch}
  .grid2 > .panel{margin-top:0;height:var(--card-h);display:flex;flex-direction:column}
  .grid2 > .panel + .panel{margin-top:0}
  .grid2 > .panel > h2{cursor:default;flex:0 0 auto}      /* 這四格不收合 */
  .grid2 > .panel > h2 .caret{display:none}
  .grid2 .body{flex:1 1 auto;min-height:0;overflow:auto}
  .grid2 #rem{max-height:none}                 /* 捲動交給外層 body */
  .grid2 #focus .row:last-child{border-bottom:none}
  @media (max-width:1080px){ .grid2{grid-template-columns:1fr} }
  .panel > h2{font-size:13px;margin:0;padding:9px 13px;border-bottom:1px solid var(--line);
              color:var(--ink-soft);display:flex;align-items:center;gap:7px;cursor:pointer;user-select:none}
  .panel > h2 .caret{color:var(--ink-faint);font-size:10px}
  table{width:100%;border-collapse:collapse}
  th,td{border-bottom:1px solid var(--line);padding:6px 9px;vertical-align:middle;text-align:left}
  thead th{background:#fcfcfb;font-weight:500;font-size:11.5px;color:var(--ink-faint);letter-spacing:.3px;
           position:sticky;top:0;z-index:2}
  tr.filters th{position:sticky;top:27px;z-index:2;background:#fcfcfb;padding:2px 8px 5px}
  tr.filters input,tr.filters select{width:100%;font:inherit;font-size:11.5px;padding:2px 0;color:var(--ink);
           border:none;border-bottom:1px solid var(--line-strong);border-radius:0;background:transparent}
  tr.filters input:focus,tr.filters select:focus{outline:none;border-bottom-color:var(--accent)}
  tr.filters input::placeholder{color:#c3bfb7}
  /* 專案分組：左側色條＋淡色塊標題＋組間留白，讓一眼就能切開專案 */
  tr.group td{font-weight:800;cursor:pointer;user-select:none;font-size:15.5px;letter-spacing:.3px;color:var(--ink);
              padding:9px 10px;border-bottom:1px solid var(--line)}
  tr.group td .meta{font-weight:500;color:var(--ink-soft);font-size:12px;margin-left:12px}
  tr.group td .caret2{font-size:10px;color:var(--ink-faint);margin-right:6px}
  tr.gap td{padding:0;height:10px;border:none;background:var(--bg)}
  tbody tr.item td:first-child{border-left:3px solid transparent;padding-left:30px}   /* Tab 縮排：掛在專案底下 */
  tbody tr.item td.task{position:relative}
  tbody tr.item td.task::before{content:"";position:absolute;left:14px;top:50%;width:8px;height:1px;background:var(--line-strong)}
  /* 專案籤（取代重複的 Project 欄） */
  .chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
  .chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);border-radius:20px;
        padding:4px 13px;font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;background:#fff}
  .chip:hover{border-color:var(--ink-faint)}
  .chip .n{color:var(--ink-faint);font-size:11px}
  .chip.on{color:#fff;border-color:transparent}
  .chip.on .n{color:rgba(255,255,255,.75)}
  .chip .sq{width:8px;height:8px;border-radius:2px}
  .chip.on .sq{background:#fff!important}
  tbody tr:hover td{background:#fcfcfa}
  tr.sel td{background:#fffdf2}
  /* 就地編輯：平常是文字，hover 有淡底，focus 才像輸入框 */
  .ed{outline:none;cursor:text;border-radius:3px;padding:1px 3px;margin:-1px -3px;display:block}
  .ed:hover{background:#f3f2ee}
  .ed:focus{background:#fff;box-shadow:0 0 0 1.5px var(--accent);white-space:normal!important}
  .flash{animation:fl .7s ease-out}
  @keyframes fl{from{background:#dcebe4}to{background:transparent}}
  td.task{font-weight:600;min-width:210px;cursor:pointer}
  td.task:hover .nm{color:var(--accent);text-decoration:underline dotted}
  td.task .nm.editing{outline:none;background:#fff;box-shadow:0 0 0 1.5px var(--accent);border-radius:3px;
                      padding:1px 4px;margin:-1px -4px;text-decoration:none;color:var(--ink);cursor:text}
  #drawer header h3[contenteditable]:hover{background:#f3f2ee;border-radius:4px}
  #drawer header h3:focus{outline:none;background:#fff;box-shadow:0 0 0 1.5px var(--accent);border-radius:4px}
  .badge{font-weight:400;font-size:11px;color:var(--ink-faint);margin-left:5px}
  td.note .ed,td.fb .ed{max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-soft)}
  td.fb .ed{max-width:150px}
  /* 點一下才變控制項的欄位 */
  .pick{cursor:pointer;border-radius:3px;padding:1px 4px;margin:-1px -4px;display:inline-block;white-space:nowrap}
  .pick:hover{background:#f3f2ee}
  .pick.empty{color:#c3bfb7}
  select.live,input.live{font:inherit;font-size:12.5px;border:1px solid var(--accent);border-radius:4px;
                         padding:1px 3px;background:#fff;color:var(--ink)}
  .dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:1px}
  .p-High{color:var(--hi);font-weight:600}
  .p-Medium{color:var(--mid)}
  .p-Low{color:var(--ink-faint)}
  .age{font-size:11.5px;color:var(--ink-faint)}
  .age.hot{color:var(--hi);font-weight:600}
  .done-btn{color:#cfcdc7;border:none;background:none;cursor:pointer;padding:2px 5px;border-radius:4px;font-size:13px}
  .done-btn:hover{background:var(--accent-soft);color:var(--accent)}
  .late-badge{color:var(--hi);border:1px solid #e8c9c3;border-radius:20px;padding:0 6px}
  .del{color:#cfcdc7;border:none;background:none;cursor:pointer;padding:2px 5px;border-radius:4px;font-size:12px}
  .del:hover{background:#f6e7e4;color:var(--hi)}
  /* 焦點摘要 */
  #focus{padding:4px 0}
  #focus .row{display:flex;gap:12px;align-items:center;padding:7px 13px;border-bottom:1px solid var(--line);cursor:pointer}
  #focus .row:last-child{border-bottom:none}
  #focus .row:hover{background:#fcfcfa}
  #focus .nm{flex:1;font-weight:600}
  #focus .who{color:var(--ink-soft);width:120px;font-size:12px}
  #focus .st{width:86px;font-size:12px;color:var(--ink-soft)}
  #focus .nx{flex:1.1;color:var(--ink-faint);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #focus .empty{padding:12px 13px;color:var(--ink-faint)}
  /* 提醒 */
  .meta2{font-weight:400;color:var(--ink-faint);font-size:11.5px}
  #rem{max-height:200px;overflow-y:auto}          /* 固定約 5 列，其餘用捲軸 */
  #rem::-webkit-scrollbar{width:8px}
  #rem::-webkit-scrollbar-thumb{background:#dcdad4;border-radius:8px}
  #rem .r{display:flex;gap:10px;align-items:flex-start;padding:7px 13px;border-bottom:1px solid var(--line)}
  #rem .r:hover{background:#fcfcfa}
  #rem .r .tag{font-size:11px;border-radius:3px;padding:1px 6px;white-space:nowrap;margin-top:1px}
  #rem .r .txt{flex:1;cursor:pointer}
  #rem .r .when{color:var(--ink-faint);font-size:11.5px;white-space:nowrap}
  #rem .none{padding:11px 13px;color:var(--ink-faint)}
  .addrem{display:flex;gap:6px;padding:9px 13px;align-items:center}
  .addrem input[type=text],.addrem input:not([type]){flex:1}
  .addrem input{font:inherit;font-size:12.5px;padding:4px 8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink)}
  .addrem input:first-child{flex:1}
  /* 每日結果／計畫 */
  .daily{display:flex;flex-direction:column;gap:10px;padding:12px 13px}
  .daily .col{flex:1}
  .daily h4{margin:0 0 6px;font-size:12px;color:var(--ink-faint);font-weight:600}
  .daily textarea{width:100%;min-height:74px;font:inherit;font-size:12.5px;line-height:1.6;padding:7px;
                  border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);resize:vertical}
  .hist{padding:0 13px 12px;color:var(--ink-soft);font-size:12px;line-height:1.7}
  .hist b{color:var(--ink)}
  /* 排程：緊湊列表，一天一列 */
  .panel > h2 .sp2{flex:1}
  button.mini{font-size:11.5px;padding:2px 8px;border-radius:4px}
  #schedList{padding:4px 0}
  .sd{display:grid;grid-template-columns:84px repeat(3,1fr);gap:0 10px;padding:3px 13px;
      border-bottom:1px solid var(--line);font-size:12px;align-items:baseline}
  .sd:last-child{border-bottom:none}
  .sd:hover{background:#fcfcfa}
  .sd .dt{color:var(--ink-soft);white-space:nowrap}
  .sd .dt b{color:var(--ink);font-weight:600}
  .sd.today{background:#fffdf2}
  .sd.today .dt b{color:var(--accent)}
  .sd .s{color:var(--ink);line-height:1.5;padding:2px 0}
  .sd .s:empty::before,.sd .s.none::before{content:"—";color:#d5d3cd}
  .sd .s.meet{color:var(--ink-faint)}
  .sd.off{background:#fbfbfa;color:var(--ink-faint);grid-template-columns:84px 1fr}
  .sd.off .rest{color:var(--ink-faint)}
  /* 排程：檢視切換列與標題 */
  .seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:6px;overflow:hidden;margin-left:8px}
  .seg .mini{border:none;border-radius:0;padding:2px 10px}
  .seg .mini + .mini{border-left:1px solid var(--line)}
  .seg .mini.on{background:var(--accent);color:#fff}
  .segwrap{display:inline-flex;gap:4px}
  .schedhead{padding:8px 13px 2px;font-size:13px;font-weight:700;color:var(--ink)}
  /* 日檢視 */
  .dayslot{display:grid;grid-template-columns:78px 1fr;gap:10px;align-items:start;padding:10px 13px;border-bottom:1px solid var(--line)}
  .dayslot:last-child{border-bottom:none}
  .dayslot .lbl{color:var(--ink-faint);font-size:12px;padding-top:3px}
  .dayslot .big{font-size:14px;line-height:1.7;min-height:26px}
  .dayslot.today{background:#fffdf2}
  /* 月檢視 */
  .cal{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);padding:1px 13px 13px}
  .grid2 .cal .ci{-webkit-line-clamp:1}
  .cal .cw{background:#fbfbfa;text-align:center;font-size:11.5px;color:var(--ink-faint);padding:4px 0}
  .cal .cd{background:#fff;min-height:64px;padding:4px 5px;font-size:11px;line-height:1.45;cursor:pointer;overflow:hidden}
  .cal .cd:hover{background:#fcfcfa}
  .cal .cd.empty{background:#fbfbfa;cursor:default}
  .cal .cd.wk{background:#fbfbfa}
  .cal .cd.today{background:#fffdf2;box-shadow:inset 0 0 0 2px var(--accent)}
  .cal .cn{font-weight:700;font-size:12px;color:var(--ink-soft);margin-bottom:2px}
  .cal .cd.today .cn{color:var(--accent)}
  .cal .ci{color:var(--ink);margin-bottom:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .cal .ci span{color:var(--ink-faint);margin-right:3px}
  /* 專案 Context 卡 */
  .ctxwrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:11px;padding:12px 13px}
  .ctx{border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:7px;padding:10px 12px;background:#fdfdfc}
  .ctx h3{margin:0 0 7px;font-size:15px;font-weight:700}
  .ctx .f{display:grid;grid-template-columns:62px 1fr;gap:4px 8px;font-size:12.5px;line-height:1.6}
  .ctx .k{color:var(--ink-faint)}
  .ctx .v{color:var(--ink)}
  .obj{padding:11px 13px;line-height:1.7;color:var(--ink-soft)}
  .obj b{color:var(--ink)}
  .obj ul{margin:5px 0 0;padding-left:17px}
  .hint{color:var(--ink-faint);font-size:11.5px;padding:7px 13px}
  /* 抽屜 */
  #mask{position:fixed;inset:0;background:rgba(35,33,29,.26);display:none;z-index:8}
  #drawer{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);
          width:min(540px,92vw);max-height:74vh;background:var(--panel);
          border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.18);
          display:none;z-index:9;overflow:auto}
  #drawer.on,#mask.on{display:block}
  #drawer header{position:sticky;top:0;background:var(--panel);border-bottom:1px solid var(--line);
                 padding:13px 15px;display:flex;align-items:flex-start;gap:10px}
  #drawer header h3{margin:0;font-size:15px}
  #drawer header .m{color:var(--ink-faint);font-size:12px;margin-top:3px}
  #drawer section{padding:11px 15px;border-bottom:1px solid var(--line)}
  #drawer section:last-child{border-bottom:none}
  #drawer h4{margin:0 0 7px;font-size:12px;color:var(--ink-faint);font-weight:600;letter-spacing:.3px}
  #drawer textarea{width:100%;min-height:56px;font:inherit;font-size:12.5px;line-height:1.6;padding:7px;
                   border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);resize:vertical}
  ul.subs{list-style:none;margin:0 0 7px;padding:0}
  ul.subs li{display:flex;gap:8px;align-items:flex-start;padding:4px 0;border-bottom:1px dashed var(--line)}
  ul.subs li .t{flex:1;outline:none}
  ul.subs li.done .t{text-decoration:line-through;color:var(--ink-faint)}
  table.mx{border:1px solid var(--line);font-size:12px}
  table.mx th{position:static;background:var(--accent-soft);color:var(--ink);white-space:nowrap;font-weight:600}
  table.mx td{min-width:92px}
  .mxwrap{overflow-x:auto}
  /* 工作守則 */
  #rules{padding:12px 14px;line-height:1.75;color:var(--ink-soft);font-size:12.5px}
  #rules h4{margin:12px 0 4px;font-size:12.5px;color:var(--ink)}
  #rules h4:first-child{margin-top:0}
  #rules ul{margin:2px 0 0;padding-left:17px}
  #rules .bad{color:var(--hi)}
  #rules .tpl{background:#fbfbfa;border:1px solid var(--line);border-radius:6px;padding:9px 11px;margin-top:6px;white-space:pre-wrap;color:var(--ink)}
  /* Agent：線條 icon＋近全螢幕的 messenger 版面 */
  #agentFab{position:fixed;right:22px;bottom:22px;width:48px;height:48px;border-radius:50%;
            background:var(--panel);color:var(--accent);border:1px solid var(--line-strong);cursor:pointer;z-index:15;
            display:flex;align-items:center;justify-content:center;box-shadow:0 3px 12px rgba(0,0,0,.10)}
  #agentFab:hover{border-color:var(--accent);background:var(--accent-soft)}
  #agentMask{position:fixed;inset:0;background:rgba(35,33,29,.28);display:none;z-index:15}
  #agentMask.on{display:block}
  #agentBox{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);
            width:min(1100px,94vw);height:min(860px,90vh);background:var(--panel);
            border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.22);
            display:none;flex-direction:column;z-index:16;overflow:hidden}
  #agentBox.on{display:flex}
  #agentBox header{display:flex;align-items:center;gap:11px;padding:13px 18px;border-bottom:1px solid var(--line)}
  #agentBox header .avatar{width:32px;height:32px;border-radius:50%;border:1px solid var(--line-strong);
            color:var(--accent);display:flex;align-items:center;justify-content:center}
  #agentBox header .who{display:flex;flex-direction:column;line-height:1.35}
  #agentBox header .who b{font-size:14px}
  #agentBox header .who span{font-size:11.5px;color:var(--ink-faint)}
  #agentBox header .sp{flex:1}
  #agentBox header button{border:none;background:none;color:var(--ink-faint);padding:4px;display:flex}
  #agentBox header button:hover{color:var(--ink)}
  #agentLog{flex:1;overflow:auto;padding:20px 22px;display:flex;flex-direction:column;gap:14px;background:#fbfbfa}
  #agentLog .m{display:flex;flex-direction:column;max-width:min(680px,76%)}
  #agentLog .m.mine{align-self:flex-end;align-items:flex-end}
  #agentLog .m.theirs{align-self:flex-start}
  #agentLog .bub{padding:10px 14px;border-radius:16px;font-size:13.5px;line-height:1.65;white-space:pre-wrap;word-break:break-word}
  #agentLog .mine .bub{background:var(--accent);color:#fff;border-bottom-right-radius:5px}
  #agentLog .theirs .bub{background:#fff;border:1px solid var(--line);border-bottom-left-radius:5px}
  #agentLog .ts{color:var(--ink-faint);font-size:11px;margin-top:4px}
  #agentLog .waiting{color:var(--ink-faint);font-size:12px;font-style:italic}
  #agentLog .empty{margin:auto;color:var(--ink-faint);font-size:13px;text-align:center;line-height:1.9}
  .agentIn{display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--line);align-items:flex-end}
  .agentIn textarea{flex:1;font:inherit;font-size:13.5px;padding:10px 14px;border:1px solid var(--line-strong);
                    border-radius:20px;resize:none;max-height:160px;color:var(--ink);line-height:1.6}
  .agentIn textarea:focus{outline:none;border-color:var(--accent)}
  .agentIn button{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;border:none;
                  display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  .agentIn button:hover{filter:brightness(1.1);color:#fff}
  /* 彈出提醒 */
  #popMask{position:fixed;inset:0;background:rgba(35,33,29,.3);display:none;z-index:19}
  #pop{position:fixed;left:50%;top:22%;transform:translateX(-50%);width:min(460px,92vw);background:var(--panel);
       border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.2);
       display:none;z-index:20;padding:18px 20px}
  #pop.on,#popMask.on{display:block}
  #pop h3{margin:0 0 10px;font-size:15px}
  #popBody{font-size:13px;line-height:1.75;color:var(--ink-soft);max-height:40vh;overflow:auto}
  #popBody .ln{padding:3px 0}
  .popBtns{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
  /* 小提示 */
  #toast{position:fixed;right:18px;bottom:18px;background:var(--ink);color:#fff;font-size:12.5px;
         padding:9px 14px;border-radius:6px;opacity:0;transform:translateY(6px);
         transition:.22s;pointer-events:none;z-index:20;max-width:340px}
  #toast.on{opacity:.95;transform:none}

  /* ─── 週報草稿（Joyce 視角） ─── */
  .wk{display:grid;grid-template-columns:minmax(300px,1fr) 1.4fr;gap:14px;padding:12px 14px}
  .wkH{font-size:12px;color:var(--ink-faint);font-weight:600;margin-bottom:6px}
  #wkCheck .c{display:flex;gap:8px;padding:5px 0;border-bottom:1px solid var(--line);font-size:12.5px;line-height:1.5}
  #wkCheck .c .tag{font-size:11px;border-radius:3px;padding:1px 6px;white-space:nowrap;height:fit-content;margin-top:2px}
  #wkCheck .c.ok .tag{color:#3f6b5d;background:#e8f0ec}
  #wkCheck .c.bad .tag{color:#b4483a;background:#f7e9e6}
  #wkCheck .c .t{flex:1;cursor:pointer}
  .wkRules{margin:0;padding-left:18px;font-size:12.5px;line-height:1.7}
  .wkBtns{display:flex;gap:6px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
  #wkText{width:100%;min-height:340px;font:12.5px/1.6 ui-monospace,Consolas,monospace;padding:9px;
          border:1px solid var(--line);border-radius:6px;resize:vertical;box-sizing:border-box}
  @media (max-width:1080px){ .wk{grid-template-columns:1fr} }
  /* 抽屜：週報三問 */
  #drawer .wq{display:block;font-size:11.5px;color:var(--ink-faint);margin-bottom:7px}
  #drawer .wq textarea{margin-top:3px;min-height:44px}
  #drawer .wq.chk{display:flex;align-items:center;gap:6px;color:var(--ink);font-size:12.5px}
