  /* ── 工作台 ── */
  .hero{ background:linear-gradient(120deg,#7a3b1e,#c0642f 70%,#d98a4a); color:#fff; border-radius:18px;
         padding:22px 26px; margin-bottom:18px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
  .hero .slogo{ width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.18);
                display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:800; flex:0 0 auto; }
  .hero .wel{ font-size:20px; font-weight:800; letter-spacing:-.3px; }
  .hero .sub2{ font-size:12.5px; opacity:.8; margin-top:4px; }
  .journey{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:8px; }
  .jstep{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:13px 15px; display:flex; gap:11px; align-items:flex-start; }
  .jstep .jn{ width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center;
              font-size:12.5px; font-weight:800; flex:0 0 auto; }
  .jstep .jt{ font-size:14px; font-weight:800; }
  .jstep .js{ font-size:12px; color:var(--muted); margin-top:2px; line-height:1.6; }
  @media(max-width:900px){ .journey{ grid-template-columns:1fr; } }
  .hsec{ font-size:15px; font-weight:800; margin:22px 0 12px; display:flex; align-items:baseline; gap:9px; }
  .hsec .hcnt{ font-size:12px; font-weight:600; color:var(--muted); }
  .dgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:12px; margin-bottom:8px; }
  .dcard{ background:var(--card); border:1.6px solid #ead9c9; border-radius:16px; overflow:hidden;
          display:flex; flex-direction:column; box-shadow:0 4px 14px rgba(120,70,30,.06); transition:.15s; }
  .dcard:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(120,70,30,.12); }
  .dcard .dbody{ padding:13px 15px 13px; display:flex; flex-direction:column; flex:1; }
  .dcard .dnm{ font-size:15px; font-weight:800; margin-bottom:5px; }
  .dcard .dblurb{ font-size:12.5px; color:var(--g5); line-height:1.6; margin:0 0 12px; }
  .dcard .dfoot{ display:flex; align-items:center; gap:8px; margin-top:auto; }
  .tbox{ background:var(--card); border:1px solid var(--line); border-radius:14px; padding:16px 18px; }
  .tbox h4{ margin:0 0 10px; font-size:14px; font-weight:800; }
  .muted{ color:var(--muted); font-size:12.5px; }


  /* ── 我的画像(工作台) ── */
  .portrait{ background:var(--card); border:1.6px solid #ead9c9; border-radius:18px; padding:18px 20px; margin-bottom:18px;
             display:grid; grid-template-columns:220px 1fr; gap:22px; box-shadow:0 4px 14px rgba(120,70,30,.06); }
  @media(max-width:900px){ .portrait{ grid-template-columns:1fr; } }
  .portrait.big{ grid-template-columns:300px 1fr; }
  .portrait.big .pimg{ width:300px; height:300px; }
  .portrait.home{ grid-template-columns:220px 1fr; align-items:start; }
  .portrait .pedit{ display:block; text-align:center; font-size:12.5px; font-weight:700; color:var(--warm); text-decoration:none; margin-top:8px; }
  .pcols{ display:grid; grid-template-columns:1.15fr 1fr; gap:22px; }
  @media(max-width:1100px){ .pcols{ grid-template-columns:1fr; } }
  .axl{ display:flex; flex-direction:column; gap:4px; }
  .axr{ display:grid; grid-template-columns:34px 1fr auto; align-items:baseline; gap:8px; font-size:13px; line-height:1.55; padding:4px 0; border-bottom:1px dashed var(--line); }
  .axr:last-child{ border-bottom:0; }
  .axr .ak{ font-weight:800; color:var(--g5); }
  .axr .av{ color:var(--ink); }
  .axr .av .none{ color:#b9a897; }
  .axr .ac a{ color:var(--warm); font-weight:700; text-decoration:none; font-size:12px; white-space:nowrap; }
  .pk{ font-size:12px; font-weight:800; color:var(--muted); letter-spacing:.5px; margin-bottom:6px; }
  .pquote{ margin:0; font-size:14px; line-height:1.7; color:var(--ink); padding-left:12px; border-left:3px solid var(--gold); }
  .pquote.none{ color:#b9a897; border-left-color:var(--g3); font-size:12.5px; }
  .plist{ list-style:none; margin:0; padding:0; }
  .plist li{ display:flex; gap:9px; align-items:flex-start; font-size:13px; line-height:1.55; padding:6px 0; border-bottom:1px dashed var(--line); }
  .plist li:last-child{ border-bottom:0; }
  .plist li small{ display:block; font-size:11.5px; color:var(--muted); }
  .goals .chk{ width:17px; height:17px; border-radius:5px; border:1.5px solid var(--g3); flex:0 0 auto; margin-top:2px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; color:#fff; }
  .goals li.done .chk{ background:var(--warm); border-color:var(--warm); }
  .goals li.done > span:last-child{ color:var(--muted); text-decoration:line-through; }
  .rems .when{ flex:0 0 auto; font-size:11.5px; font-weight:800; color:var(--cat-world-fg); background:var(--cat-world-bg); border-radius:6px; padding:2px 7px; margin-top:1px; white-space:nowrap; }
  .portrait .pimg{ width:220px; height:220px; border-radius:16px; overflow:hidden; background:linear-gradient(135deg,var(--cat-self-bg),#fff8f0);
                   display:flex; align-items:center; justify-content:center; color:var(--cat-self-fg); position:relative; }
  .portrait .pimg img{ width:100%; height:100%; object-fit:cover; display:block; }
  .portrait .pimg svg{ width:72px; height:72px; opacity:.85; }
  .portrait .pimg .pst{ position:absolute; left:0; right:0; bottom:0; font-size:11.5px; font-weight:700; text-align:center;
                        padding:6px; background:rgba(255,255,255,.85); color:var(--g5); }
  .portrait h3{ margin:0 0 4px; font-size:16px; font-weight:800; }
  .portrait .psub{ font-size:12.5px; color:var(--muted); margin:0 0 12px; line-height:1.6; }
  .axes{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:12px; }
  @media(max-width:1100px){ .axes{ grid-template-columns:1fr; } }
  .axis{ border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:var(--g1); }
  .axis .ak{ font-size:12px; font-weight:800; margin-bottom:3px; }
  .axis .av{ font-size:12.5px; color:var(--g5); line-height:1.55; }
  .axis .av.none{ color:#b9a897; }
  .axis .av a{ color:var(--warm); font-weight:700; text-decoration:none; }
  .portrait textarea{ width:100%; min-height:64px; border:1.5px solid var(--g3); border-radius:12px; padding:10px 12px; font:inherit;
                      font-size:13px; color:var(--ink); resize:vertical; outline:none; background:#fff; }
  .portrait textarea:focus{ border-color:var(--warm); box-shadow:0 0 0 3px rgba(184,86,42,.12); }
  .portrait .prow{ display:flex; align-items:center; gap:10px; margin-top:10px; flex-wrap:wrap; }
  .portrait .motto-in{ flex:1; min-width:220px; border:1.5px solid var(--g3); border-radius:12px; padding:9px 12px; font:inherit; font-size:14px; color:var(--ink); background:#fff; }
  .portrait .motto-in:focus{ outline:none; border-color:var(--warm); box-shadow:0 0 0 3px rgba(184,86,42,.12); }
  .portrait .mrow{ margin:0 0 12px; }
  .portrait .pmsg{ font-size:12.5px; color:var(--g5); }
  .portrait .pmsg.warn{ color:#8a5a12; }
  .portrait details{ margin-top:10px; font-size:12px; color:var(--muted); }
  .portrait details pre{ white-space:pre-wrap; background:var(--g1); border-radius:10px; padding:10px 12px; margin:6px 0 0; font:inherit; font-size:12px; color:var(--g5); line-height:1.6; }


  /* ── 日历 + 记事本(工作台) ── */
  .tools{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:18px; }
  @media(max-width:1100px){ .tools{ grid-template-columns:1fr; } }
  .tool{ background:var(--card); border:1.6px solid #ead9c9; border-radius:16px; padding:14px 16px; }
  .tool .th{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
  .tool .tt{ font-size:14px; font-weight:800; }
  .tool .nav{ display:flex; align-items:center; gap:6px; font-size:13px; }
  .tool .nb{ border:1px solid var(--g3); background:#fff; border-radius:8px; width:26px; height:26px; cursor:pointer; font:inherit; font-size:15px; line-height:1; color:var(--g5); }
  .tool .nb.txt{ width:auto; padding:0 9px; font-size:12px; font-weight:700; }
  .tool .nb:hover{ border-color:var(--warm); color:var(--warm); }
  .cw{ display:grid; grid-template-columns:repeat(7,1fr); font-size:11px; color:var(--muted); text-align:center; margin-bottom:2px; }
  .cg{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
  .cd{ position:relative; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:13px; cursor:pointer; border:1.5px solid transparent; }
  .cd.empty{ cursor:default; }
  .cd:not(.empty):hover{ background:var(--g1); }
  .cd.today .n{ font-weight:800; color:var(--warm); }
  .cd.sel{ background:var(--cat-self-bg); border-color:var(--warm); }
  .cd .dot{ position:absolute; bottom:4px; width:5px; height:5px; border-radius:50%; background:var(--warm); }
  .cd .dot.done{ background:var(--g3); }
  .dl{ margin-top:10px; border-top:1px dashed var(--line); padding-top:8px; }
  .dl .dh{ font-size:12.5px; font-weight:800; color:var(--g5); margin-bottom:4px; }
  .di{ display:flex; align-items:center; gap:6px; font-size:13px; padding:4px 0; }
  .di label{ display:flex; align-items:center; gap:8px; flex:1; cursor:pointer; margin:0; font-weight:500; color:var(--ink); }
  .di input{ accent-color:var(--warm); width:15px; height:15px; margin:0; }
  .di .tm{ font-size:11.5px; font-weight:800; color:var(--cat-world-fg); background:var(--cat-world-bg); border-radius:6px; padding:1px 6px; }
  .di.done .tx{ color:var(--muted); text-decoration:line-through; }
  .del{ border:0; background:transparent; color:var(--g4); cursor:pointer; font-size:12px; padding:2px 6px; }
  .del:hover{ color:var(--warm); }
  .add{ display:flex; gap:6px; margin-top:8px; }
  .add input[type=time]{ width:92px; border:1.5px solid var(--g3); border-radius:9px; padding:0 6px; font:inherit; font-size:12.5px; color:var(--ink); background:#fff; }
  .add input[type=text]{ flex:1; border:1.5px solid var(--g3); border-radius:9px; padding:7px 10px; font:inherit; font-size:13px; color:var(--ink); background:#fff; outline:none; }
  .add input:focus{ border-color:var(--warm); }
  .nadd textarea{ width:100%; min-height:58px; border:1.5px solid var(--g3); border-radius:10px; padding:8px 10px; font:inherit; font-size:13px; color:var(--ink); resize:vertical; outline:none; background:#fff; }
  .nadd textarea:focus{ border-color:var(--warm); box-shadow:0 0 0 3px rgba(184,86,42,.12); }
  .nl{ margin-top:10px; max-height:300px; overflow:auto; }
  .ni{ border-top:1px dashed var(--line); padding:8px 0; }
  .ni .nt{ font-size:13px; line-height:1.6; white-space:pre-wrap; }
  .ni .nf{ display:flex; align-items:center; gap:8px; font-size:11.5px; margin-top:4px; }
  .lnk{ border:0; background:transparent; color:var(--warm); font:inherit; font-size:11.5px; font-weight:700; cursor:pointer; padding:2px 4px; }
  .lnk.del{ color:var(--g4); }
  .lnk:hover{ text-decoration:underline; }

