:root{
    --bg:#f0eee6; --panel:#ffffff; --panel2:#f5f3ec; --line:#e4e1d7;
    --ink:#2b2926; --muted:#6f6b62; --accent:#d97757; --accent2:#5f7fb0;
    --ok:#2f9e6b; --danger:#c4503a;
  }
  *{box-sizing:border-box}
  body{margin:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
    background:var(--bg);color:var(--ink);line-height:1.6}
  .app{display:flex;align-items:flex-start;max-width:1180px;margin:0 auto}
  .sidebar{position:sticky;top:0;align-self:flex-start;height:100vh;overflow:auto;width:212px;flex:0 0 212px;
    background:var(--panel2);border-right:1px solid var(--line);padding:12px 10px;display:flex;flex-direction:column;gap:3px}
  .brand{font-size:15px;font-weight:700;padding:4px 6px 8px}
  .draftbar{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12px;
    color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px}
  .draftbar b{color:var(--ink);font-weight:600}
  #flowDraft{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #newDraft{font-size:11px;padding:4px 8px;flex:0 0 auto}
  .navlbl{font-size:11px;color:#9a958b;letter-spacing:.6px;padding:10px 8px 3px}
  .snav{display:flex;align-items:center;gap:8px;width:100%;text-align:left;justify-content:flex-start;
    font-size:13px;font-weight:400;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:8px;padding:8px 9px;cursor:pointer}
  .snav:hover{background:#ece9df;filter:none}
  .snav.active{background:var(--panel);border-color:var(--line);font-weight:600}
  .snav .dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;display:inline-block}
  .snav .cnt{margin-left:auto;color:var(--muted);font-size:11px;font-weight:400}
  .dot.done{background:var(--ok)} .dot.cur{background:var(--accent);box-shadow:0 0 0 3px #faece7} .dot.todo{background:#cfcabd}
  .content{flex:1;min-width:0;max-width:940px;padding:18px 24px}
  .cbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:10px;min-height:22px}
  .cnext{font-size:13px;color:var(--accent2);font-weight:600;margin-right:auto}
  .step{display:block}
  @media(max-width:860px){
    .app{flex-direction:column}
    .sidebar{position:static;height:auto;width:100%;flex:none;flex-direction:row;flex-wrap:wrap;overflow:visible;border-right:0;border-bottom:1px solid var(--line)}
    .sidebar .draftbar{order:-1;width:100%}
    .content{max-width:100%;width:100%;padding:14px}
    .navlbl{width:100%}.snav{width:auto}
  }
  .card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:18px}
  .card h2{font-size:15px;margin:0 0 4px;display:flex;align-items:center;gap:8px}
  .step-no{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--accent);
    color:#1a212b;font-size:13px;font-weight:700;align-items:center;justify-content:center}
  .hint{font-size:12.5px;color:var(--muted);margin:2px 0 12px}
  textarea,input,select{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--ink);
    border-radius:9px;padding:10px 12px;font-size:14px;font-family:inherit;resize:vertical}
  textarea:focus,input:focus,select:focus{outline:none;border-color:var(--accent2)}
  .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}
  button{background:var(--accent);color:#fff;border:0;border-radius:9px;padding:9px 16px;
    font-size:14px;font-weight:600;cursor:pointer;transition:.15s}
  button:hover{filter:brightness(1.07)}
  button:disabled{opacity:.5;cursor:not-allowed}
  button.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}
  button.alt{background:var(--accent2);color:#fff}
  .out{margin-top:14px;background:#faf9f4;border:1px solid var(--line);border-radius:10px;
    padding:14px 16px;font-size:14px;min-height:10px;white-space:normal;max-height:62vh;overflow:auto}
  .out:empty{display:none}
  .out h1,.out h2,.out h3{color:var(--accent);margin:.8em 0 .4em;font-size:15px}
  .out h1{font-size:17px}
  .out table{border-collapse:collapse;width:100%;margin:.5em 0;font-size:13px}
  .out th,.out td{border:1px solid var(--line);padding:6px 9px;text-align:left;vertical-align:top}
  .out th{background:var(--panel2)}
  .out code{background:var(--panel2);padding:1px 5px;border-radius:4px;font-size:13px}
  .out pre{background:var(--panel2);padding:10px;border-radius:8px;overflow:auto}
  .out ul,.out ol{padding-left:1.3em}
  .out blockquote{border-left:3px solid var(--accent);margin:.5em 0;padding:.2em 0 .2em 12px;color:var(--muted)}
  .status{font-size:12.5px;color:var(--muted);margin-top:8px;min-height:16px}
  .status.err{color:var(--danger)}
  .pill{font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);
    background:var(--panel2);color:var(--muted);cursor:pointer}
  .pill.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
  .toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
  .tab{font-size:13px;padding:6px 14px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);color:var(--muted);cursor:pointer}
  .tab.on{background:var(--accent2);color:#fff;border-color:var(--accent2);font-weight:600}
  details>summary{list-style:none;cursor:pointer}
  details>summary::-webkit-details-marker{display:none}
  dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:14px;
    padding:22px;max-width:460px;width:92%}
  dialog::backdrop{background:#000a}
  dialog h3{margin:0 0 10px}
  dialog label{font-size:13px;color:var(--muted);display:block;margin:12px 0 4px}
  a{color:var(--accent2)}
  .muted{color:var(--muted);font-size:12.5px}
  .copy{font-size:12px;background:transparent;border:1px solid var(--line);color:var(--muted);padding:4px 10px}
  .outbar{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
  .spin{display:inline-block;width:13px;height:13px;border:2px solid var(--muted);border-top-color:transparent;
    border-radius:50%;animation:s .7s linear infinite;vertical-align:-2px;margin-right:6px}
  @keyframes s{to{transform:rotate(360deg)}}

/* ---- 今日计划（打开即见） ---- */
#todayPlan:empty{display:none}
.today{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:13px}
.today .trow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:3px 0}
.today .ttl{font-weight:700;margin-right:auto}
.today .tag{font-size:11px;padding:1px 8px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);flex:0 0 auto}
.today .tag.warn{color:var(--danger);border-color:var(--danger)}
.today .tag.go{color:var(--ok);border-color:var(--ok)}
.today .ttxt{flex:1;min-width:140px}
