:root {
  --ink:#211d1b; --muted:#756e69; --paper:#f6f3ee; --surface:#fffdfa; --line:#e6dfd7;
  --orange:#c87543; --orange-soft:#fff0e2; --red:#b6544d; --red-soft:#fbeae8;
  --green:#5c876f; --blue:#507f99; --purple:#7964b4; --sidebar:#1f1c1b;
  --display:32px; --page:28px; --section:20px; --title:15px; --body:13px; --meta:12px; --label:11px;
}
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font:var(--body)/1.6 Inter,"PingFang SC","Microsoft YaHei",sans-serif; }
button,input,select,textarea { font:inherit; }
a { color:inherit; text-decoration:none; }
h1,h2,h3,p { margin-top:0; }
.eyebrow { margin:0 0 7px; color:#998f88; font-size:var(--label); font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.muted { margin-bottom:0; color:var(--muted); font-size:var(--body); }
.secondary,.secondary-link { padding:9px 13px; border:1px solid var(--line); border-radius:10px; color:var(--ink); background:#fff; cursor:pointer; font-weight:700; }
.read-only-pill,.live-pill { padding:5px 10px; border-radius:999px; font-size:var(--label); }
.read-only-pill { color:#7d6759; background:#eee7e0; }.live-pill { color:#376a4d; background:#e4f1e8; }

/* 登录与基础状态页 */
.auth-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(135deg,#241d1a,#563426); }
.auth-card { width:min(430px,100%); padding:34px; border-radius:18px; background:var(--surface); box-shadow:0 24px 70px rgba(0,0,0,.28); }
.auth-card h1 { margin:0; font:500 var(--page) Georgia,"Songti SC",serif; }
.auth-card form { margin-top:24px; display:grid; gap:14px; }
.auth-card label { display:grid; gap:6px; color:var(--muted); font-size:var(--meta); }
.auth-card input,.auth-card select { width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.auth-card button { padding:10px 16px; border:0; border-radius:10px; color:#fff; background:var(--orange); cursor:pointer; font-weight:700; }
.auth-card aside { margin-top:20px; padding:13px; border-radius:10px; display:grid; gap:3px; color:var(--muted); background:#faf5ef; font-size:var(--meta); }
.auth-card aside strong { color:var(--ink); }.error { padding:10px 12px; border-radius:9px; color:var(--red); background:var(--red-soft); }
.topbar { min-height:92px; padding:18px 5vw; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; background:var(--surface); }
.topbar h1 { margin:0; font:500 var(--page) Georgia,"Songti SC",serif; }.topbar form { display:flex; gap:12px; align-items:center; }.topbar button { padding:9px 13px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.workspace { width:min(1100px,90vw); margin:34px auto; display:grid; gap:18px; }.notice { padding:18px 20px; border:1px solid var(--line); border-left:4px solid var(--green); border-radius:15px; background:var(--surface); }.notice p { margin:4px 0 0; color:var(--muted); }

/* 正式工作区 */
.app-shell { min-height:100vh; display:grid; grid-template-columns:256px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; padding:27px 20px 22px; display:flex; flex-direction:column; color:#f8f1e9; background:var(--sidebar); }
.brand { padding:0 8px 26px; display:flex; gap:12px; align-items:center; }.brand-mark { width:39px; height:39px; display:grid; place-items:center; border-radius:12px; color:#2a211d; background:linear-gradient(145deg,#f0b474,#df8150); font:24px Georgia,serif; }.brand strong,.brand small { display:block; }.brand strong { font-size:var(--title); }.brand small { margin-top:3px; color:#968c85; font-size:var(--label); }
.main-nav { min-height:0; overflow-y:auto; display:grid; gap:5px; align-content:start; }.nav-group { display:grid; gap:3px; }.nav-item { width:100%; padding:11px 12px; border-radius:10px; display:grid; grid-template-columns:25px 1fr auto; align-items:center; color:#b8aea7; font-size:14px; font-weight:650; }.nav-item:hover,.nav-group.active>.nav-item { color:#fff8ef; background:#39312d; }.nav-group.active>.nav-item { box-shadow:inset 3px 0 var(--orange); }.nav-icon { color:#df9a64; font-size:18px; }.nav-chevron { color:#8e837b; }.nav-count { padding:1px 7px; border-radius:99px; background:#4a403b; font-size:var(--label); }
.nav-submenu { padding:2px 0 7px 25px; display:grid; gap:3px; }.nav-submenu[hidden] { display:none; }.nav-submenu a { padding:8px 9px; border-radius:9px; display:grid; grid-template-columns:28px 1fr; gap:9px; align-items:center; color:#a99f98; }.nav-submenu a:hover,.nav-submenu a.active { color:#fff9f2; background:#302b28; }.nav-submenu a.active { box-shadow:inset 2px 0 var(--orange); }.subnav-mark,.project-mark { display:grid; place-items:center; color:#fff; font-family:Georgia,serif; }.subnav-mark { width:27px; height:27px; border-radius:7px; font-size:var(--meta); }.subnav-mark.all { color:#dba173; background:#4a403b; }.nav-submenu strong,.nav-submenu small { display:block; }.nav-submenu strong { font-size:var(--meta); }.nav-submenu small { margin-top:2px; color:#817871; font-size:var(--label); }
.warm { background:linear-gradient(145deg,#a65039,#6f302b); }.cool { background:linear-gradient(145deg,#4e8191,#294d60); }.dusk { background:linear-gradient(145deg,#766482,#463f5d); }
.sidebar-footer { margin-top:auto; padding:16px 9px 0; border-top:1px solid #37312e; display:grid; grid-template-columns:8px 1fr; gap:10px; }.sidebar-footer i { width:7px; height:7px; margin-top:5px; border-radius:50%; background:#65a77e; box-shadow:0 0 0 4px rgba(101,167,126,.12); }.sidebar-footer strong,.sidebar-footer small { display:block; }.sidebar-footer strong { font-size:var(--label); }.sidebar-footer small { margin-top:3px; color:#887f79; font-size:var(--label); }
.main-area { min-width:0; }.workspace-topbar { min-height:92px; padding:17px 38px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; background:rgba(255,253,250,.92); }.workspace-topbar h1 { margin:0; font:500 var(--page) Georgia,"Songti SC",serif; }.breadcrumb { margin:0 0 3px; color:var(--muted); font-size:var(--label); }.workspace-topbar form { display:flex; gap:10px; align-items:center; }.workspace-topbar form span strong,.workspace-topbar form span small { display:block; }.workspace-topbar form span small { color:var(--muted); font-size:var(--label); }.user-badge { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; color:#fff; background:#ad6546; font-weight:800; }.page-content { padding:34px 38px 50px; }

.page-intro,.board-heading,.archive-heading { margin-bottom:24px; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; }.page-intro h2 { margin:0 0 6px; font:500 var(--page) Georgia,"Songti SC",serif; }
.intro-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }.primary-link { min-height:41px; padding:9px 14px; border-radius:9px; display:inline-flex; align-items:center; color:#fff; background:var(--orange); font-weight:700; }
.stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }.stats article { min-height:126px; padding:21px; border:1px solid var(--line); border-radius:15px; position:relative; overflow:hidden; background:var(--surface); }.stats article::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:currentColor; }.stats span,.stats strong,.stats small { display:block; }.stats span { color:var(--muted); font-size:14px; }.stats strong { margin:8px 0 4px; color:var(--ink); font:36px Georgia,serif; }.stats small { color:#948b85; font-size:var(--meta); }.accent-orange{color:var(--orange)}.accent-purple{color:var(--purple)}.accent-red{color:var(--red)}.accent-blue{color:var(--blue)}
.two-column { display:grid; grid-template-columns:minmax(0,1.22fr) minmax(330px,.78fr); gap:18px; }.panel { border:1px solid var(--line); border-radius:16px; background:var(--surface); }.panel.flush { overflow:hidden; }.panel-head { padding:18px 20px 14px; border-bottom:1px solid #eee8e1; display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }.panel-head h3,.lifecycle-panel h3 { margin:0; font:500 var(--section) Georgia,"Songti SC",serif; }.panel-head>span { color:var(--muted); font-size:var(--meta); }
.todo-row { min-height:78px; padding:14px 18px; border-bottom:1px solid #f0ebe5; display:grid; grid-template-columns:8px 1fr auto; gap:13px; align-items:center; }.todo-row:last-child { border-bottom:0; }.status-bar { width:7px; height:38px; border-radius:5px; }.todo-row strong,.todo-row small { display:block; }.todo-row strong { font-size:var(--title); }.todo-row small { margin-top:4px; color:var(--muted); font-size:var(--meta); }.task-code { color:#9a918a; font-size:var(--label); }
.completed{background:var(--green)}.in-progress{background:var(--blue)}.review{background:var(--purple)}.rework,.blocked{background:var(--red)}.unclaimed{background:var(--orange)}.ready{background:#6e9db5}.locked,.skipped,.cancelled{background:#c8c1ba}
.project-row { min-height:84px; padding:14px 18px; border-bottom:1px solid #f0ebe5; display:grid; grid-template-columns:46px 1fr 46px auto; gap:13px; align-items:center; }.project-row:last-child { border-bottom:0; }.project-mark { width:44px; height:44px; border-radius:10px; font-size:18px; }.project-row>span strong,.project-row>span small { display:block; }.project-row>span strong { font-size:var(--title); }.project-row>span small { margin-top:3px; color:var(--muted); font-size:var(--meta); }.project-row>span i,.stage-list i,.chapter-list i { height:5px; margin-top:9px; display:block; overflow:hidden; border-radius:5px; background:#eee8e2; }.project-row b,.stage-list b,.chapter-list b { height:100%; display:block; background:var(--orange); }.project-percent { font:var(--title) Georgia,serif; }.project-actions { display:grid; gap:5px; }.project-actions a { color:#a35c39; font-size:var(--label); white-space:nowrap; }
.empty-state { padding:34px 20px; color:var(--muted); text-align:center; font-size:var(--meta); }

/* 项目创建向导 */
.wizard-shell { height:calc(100vh - 176px); min-height:500px; border:1px solid var(--line); border-radius:17px; display:grid; grid-template-rows:auto minmax(0,1fr); overflow:hidden; background:var(--surface); box-shadow:0 16px 45px rgba(60,43,34,.08); }
.wizard-header { padding:22px 25px 17px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:24px; align-items:flex-start; }.wizard-header h2 { margin:0 0 5px; font:500 var(--section) Georgia,"Songti SC",serif; }.wizard-shell>.error { margin:12px 25px 0; }
.wizard-shell form { min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto; }.wizard-steps { padding:16px 25px 13px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }.wizard-steps span { min-width:0; display:grid; grid-template-columns:23px minmax(0,1fr); gap:7px; align-items:center; color:#aaa099; font-size:var(--label); }.wizard-steps span::after { content:""; height:4px; grid-column:1/-1; border-radius:5px; background:#e8e1da; }.wizard-steps i { width:22px; height:22px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#b8aea6; font-style:normal; }.wizard-steps b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.wizard-steps .active,.wizard-steps .done { color:var(--ink); }.wizard-steps .active i { background:var(--orange); }.wizard-steps .done i { background:var(--green); }.wizard-steps .active::after { background:var(--orange); }.wizard-steps .done::after { background:#8aa795; }
.wizard-body { min-height:0; padding:5px 25px 25px; overflow-y:auto; overscroll-behavior:contain; }.wizard-footer { padding:14px 25px; border-top:1px solid var(--line); display:grid; grid-template-columns:120px 1fr 150px; gap:12px; align-items:center; background:var(--surface); }.wizard-footer>span { color:var(--muted); font-size:var(--meta); text-align:center; }.wizard-footer button[hidden] { visibility:hidden; display:block; }.wizard-error { margin:0 0 14px; padding:10px 12px; border-radius:9px; color:var(--red); background:var(--red-soft); }
.wizard-grid { display:grid; grid-template-columns:minmax(0,1fr) 160px; gap:15px; }.wizard-grid label,.assignment-intro>label { display:grid; gap:6px; color:var(--muted); font-size:var(--meta); }.wizard-grid label.wide { grid-column:1/-1; }.wizard-grid input,.wizard-grid textarea,.role-add input,.split-step input,.assignment-intro select { width:100%; padding:10px 11px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:#fff; }.wizard-grid textarea { min-height:88px; resize:vertical; }.wizard-grid label>small { color:#9a9089; font-size:var(--label); }.wizard-intro { margin-bottom:15px; padding:13px 15px; border-radius:11px; background:#faf6f1; }.wizard-intro strong { font-size:var(--title); }.wizard-intro p { margin:4px 0 0; color:var(--muted); font-size:var(--meta); }.role-editor { display:grid; gap:15px; }.role-chips { min-height:48px; padding:11px; border:1px dashed #d7ccc2; border-radius:11px; display:flex; gap:7px; align-content:flex-start; flex-wrap:wrap; background:#fffaf5; }.role-chips:empty::after { content:"尚未添加角色"; color:#9a918a; }.role-chips button { padding:6px 9px; border:1px solid #e1c9b8; border-radius:99px; color:#824e34; background:#fff4ea; cursor:pointer; }.role-add { display:grid; grid-template-columns:1fr auto; gap:9px; }
.workflow-groups { display:grid; gap:11px; }.workflow-group { border:1px solid #dfd6ce; border-left:5px solid #c28a64; border-radius:12px; overflow:hidden; background:#fbf7f2; }.workflow-group-head { min-height:68px; padding:12px 14px; display:grid; grid-template-columns:auto 1fr; gap:11px; align-items:center; }.workflow-group-head>input,.workflow-task>input { width:17px; height:17px; accent-color:var(--orange); }.workflow-group-head>button { padding:0; border:0; display:flex; justify-content:space-between; gap:15px; align-items:center; text-align:left; background:transparent; cursor:pointer; }.workflow-group-head span strong,.workflow-group-head span small { display:block; }.workflow-group-head span strong { font-size:var(--title); }.workflow-group-head span small { margin-top:3px; color:var(--muted); font-size:var(--meta); }.workflow-group-head b { color:#a45c38; font-size:var(--label); white-space:nowrap; }.workflow-task-list { margin-left:26px; border-top:1px solid #e7ded6; background:#fff; }.workflow-task { position:relative; padding:14px 14px 14px 12px; border-bottom:1px solid #eee8e2; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:11px; align-items:start; }.workflow-task::before { content:""; position:absolute; left:-15px; top:25px; width:14px; height:1px; background:#d8cdc4; }.workflow-task:last-child { border-bottom:0; }.workflow-task.disabled { opacity:.48; }.workflow-task-copy strong,.workflow-task-copy small,.workflow-task-copy span { display:block; }.workflow-task-copy strong { font-size:var(--body); }.workflow-task-copy small,.workflow-task-copy span { margin-top:3px; color:var(--muted); font-size:var(--label); }.split-button { padding:7px 10px; border:1px solid #ddc8b8; border-radius:8px; color:#965334; background:#fff8f1; cursor:pointer; font-size:var(--label); }.split-button:disabled { cursor:not-allowed; }.split-editor { grid-column:2/-1; margin:4px 0 1px 15px; padding:12px; border-left:3px solid #e1ad80; border-radius:9px; display:grid; gap:9px; background:#faf5ef; }.split-explain strong,.split-explain small { display:block; }.split-explain strong { font-size:var(--meta); }.split-explain small { margin-top:3px; color:var(--muted); font-size:var(--label); }.split-step { display:grid; grid-template-columns:24px minmax(0,1fr) auto; gap:8px; align-items:start; }.split-step>span { width:24px; height:24px; margin-top:8px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--orange); font-size:var(--label); }.split-step>button { margin-top:8px; padding:6px; border:0; color:var(--red); background:transparent; cursor:pointer; font-size:var(--label); }.split-step>button:disabled { opacity:.3; cursor:not-allowed; }.suggestion-row { margin-top:5px; display:flex; gap:5px; flex-wrap:wrap; }.suggestion-row button { padding:4px 7px; border:1px solid #e8d8cc; border-radius:99px; color:#835c49; background:#fff; cursor:pointer; font-size:var(--label); }.split-actions { display:flex; justify-content:space-between; gap:10px; }.text-button { padding:5px; border:0; color:#985536; background:transparent; cursor:pointer; }.danger-text { color:var(--red); }.generated-summary { position:sticky; bottom:-25px; padding:18px 4px 4px; color:var(--muted); text-align:right; background:linear-gradient(transparent,var(--surface) 42%); }.generated-summary strong { color:var(--orange); font:24px Georgia,serif; }
.channel-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }.channel-grid section { padding:15px; border:1px solid var(--line); border-radius:12px; background:#fff; }.channel-grid h3 { margin:0 0 10px; font-size:var(--title); }.channel-option { padding:10px; border:1px solid #eee6de; border-radius:9px; display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:center; }.channel-option+.channel-option { margin-top:7px; }.channel-option input,.toggle-row input { width:17px; height:17px; accent-color:var(--orange); }.channel-option strong,.channel-option small { display:block; }.channel-option strong { font-size:var(--body); }.channel-option small { color:var(--muted); font-size:var(--label); }
.assignment-intro { display:grid; grid-template-columns:1fr 180px; gap:3px 20px; align-items:end; }.assignment-intro>strong,.assignment-intro>p { grid-column:1; }.assignment-intro>label { grid-column:2; grid-row:1/3; }.assignment-list { display:grid; gap:12px; }.assignment-group { border:1px solid var(--line); border-radius:11px; overflow:hidden; background:#fff; }.assignment-group h3 { margin:0; padding:11px 13px; display:flex; justify-content:space-between; background:#faf6f1; font-size:var(--body); }.assignment-group h3 span { color:var(--muted); font-size:var(--label); font-weight:400; }.assignment-task { min-height:62px; padding:10px 13px; border-top:1px solid #eee8e2; display:grid; grid-template-columns:minmax(0,1fr) 110px 100px; gap:10px; align-items:center; }.assignment-task strong,.assignment-task small { display:block; }.assignment-task strong { font-size:var(--body); }.assignment-task small { color:var(--muted); font-size:var(--label); }.assignment-task select,.chapter-assignments select { padding:7px 8px; border:1px solid var(--line); border-radius:8px; background:#fff; }.assignment-task button { padding:7px 8px; border:1px solid #e3d6cc; border-radius:8px; color:#8f5a42; background:#fff9f3; cursor:pointer; font-size:var(--label); }.chapter-assignments { padding:9px 13px 12px 36px; border-top:1px dashed #e6ddd5; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; background:#fffaf6; }.chapter-assignments label { display:grid; grid-template-columns:1fr 85px; gap:8px; align-items:center; }.chapter-assignments span { color:var(--muted); font-size:var(--label); }.toggle-row { padding:13px 15px; border:1px solid var(--line); border-radius:11px; display:flex; justify-content:space-between; gap:15px; align-items:center; background:#fff; }.toggle-row strong,.toggle-row small { display:block; }.toggle-row strong { font-size:var(--body); }.toggle-row small { color:var(--muted); font-size:var(--label); }.creation-summary { padding:13px 15px; border-radius:11px; display:flex; justify-content:space-between; gap:15px; color:#70452f; background:var(--orange-soft); }.creation-summary strong { font-size:var(--title); }.creation-summary span { color:#8d6b59; font-size:var(--meta); }

.story-hero { padding:25px 28px; margin-bottom:18px; border-radius:17px; display:flex; justify-content:space-between; align-items:center; color:#fff; background:linear-gradient(110deg,#38241e,#723d2e 65%,#9b6041); }.story-hero p { margin:0; color:#dcc6b9; font-size:var(--meta); }.story-hero>div:last-child { min-width:120px; padding-left:28px; border-left:1px solid rgba(255,255,255,.2); }.story-hero>div:last-child strong,.story-hero>div:last-child span { display:block; }.story-hero>div:last-child strong { font:34px Georgia,serif; }.story-hero>div:last-child span { color:#dac5b8; font-size:var(--meta); }.overview-columns { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }.status-pill { padding:5px 9px; border-radius:99px; color:var(--green); background:#eaf3ed; font-size:var(--label); }.status-pill.danger { color:#8e3734; background:var(--red-soft); }.stage-list { padding:12px 20px 18px; }.stage-list>div { padding:10px 0; display:grid; grid-template-columns:1fr auto; gap:6px 15px; }.stage-list span,.stage-list strong { font-size:var(--body); }.stage-list strong { color:var(--muted); }.stage-list i { grid-column:1/-1; margin:0; }.chapter-panel { margin-top:18px; }.chapter-list { padding:16px 20px; display:grid; gap:14px; }.chapter-list>div { display:grid; grid-template-columns:90px 1fr 45px; gap:14px; align-items:center; }.chapter-list i { margin:0; }.chapter-list strong { text-align:right; }.lifecycle-panel { margin-top:18px; padding:20px; display:flex; justify-content:space-between; gap:24px; align-items:center; }.lifecycle-panel button { min-width:180px; padding:10px 14px; border:0; border-radius:10px; color:#948b85; background:#eee9e3; }

.filters,.activity-filters { display:flex; gap:9px; flex-wrap:wrap; }.filters a,.activity-filters a { padding:9px 14px; border:1px solid var(--line); border-radius:9px; color:var(--muted); background:#fff; }.filters a.active,.activity-filters a.active { color:#fff; border-color:#3c332f; background:#3c332f; }.whole-tasks { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:16px; }.task-summary { min-height:76px; padding:15px; border:1px solid var(--line); border-radius:12px; display:flex; gap:10px; align-items:center; background:var(--surface); }.task-summary strong,.task-summary small { display:block; }.task-summary strong { font-size:var(--title); }.task-summary small { margin-top:4px; color:var(--muted); font-size:var(--meta); }.dot { width:9px; height:9px; flex:0 0 auto; display:inline-block; border-radius:50%; }.dimmed { opacity:.25; }.matrix-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:15px; background:var(--surface); }.legend { padding:14px 17px; border-bottom:1px solid var(--line); display:flex; gap:19px; flex-wrap:wrap; color:var(--muted); font-size:var(--meta); }.legend span { display:flex; gap:6px; align-items:center; }.task-matrix { min-width:1030px; display:grid; }.matrix-cell { min-height:94px; padding:12px; border-right:1px solid #eee8e2; border-bottom:1px solid #eee8e2; display:flex; flex-direction:column; justify-content:space-between; }.matrix-head { min-height:54px; justify-content:center; color:var(--muted); background:#faf7f3; font-size:var(--body); font-weight:700; text-align:center; }.row-head { justify-content:center; color:var(--muted); background:#faf7f3; font-weight:700; }.task-cell span { display:flex; gap:7px; align-items:center; }.task-cell strong { font-size:var(--body); }.task-cell small { color:var(--muted); font-size:var(--meta); }
.activity-filters { padding:16px 19px; border-bottom:1px solid var(--line); }.activity-list article { min-height:70px; padding:15px 20px; border-bottom:1px solid #eee8e1; display:grid; grid-template-columns:140px 100px 180px 1fr; gap:15px; align-items:center; }.activity-list article:last-child { border-bottom:0; }.activity-list time,.activity-list small { color:var(--muted); font-size:var(--meta); }.activity-list span { font-weight:700; }

.archive-heading form { display:flex; gap:9px; }.archive-heading input,.archive-heading select { min-height:42px; padding:9px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; }.completed-list { padding:0 20px; }.completed-card { padding:20px 2px; border-bottom:1px solid var(--line); }.completed-card:last-child { border-bottom:0; }.completed-card header { display:grid; grid-template-columns:44px 1fr auto; gap:13px; align-items:center; }.completed-card header strong,.completed-card header small { display:block; }.completed-card header strong { font-size:var(--title); }.completed-card header small { color:var(--muted); font-size:var(--meta); }.milestones { position:relative; margin:20px 0 2px 55px; display:grid; grid-template-columns:repeat(5,minmax(110px,1fr)); gap:12px; }.milestones::before { content:""; position:absolute; left:8px; right:8px; top:7px; height:1px; background:#ded5cc; }.milestones>span { position:relative; padding-top:20px; }.milestones>span::before { content:""; position:absolute; top:2px; left:4px; width:11px; height:11px; border:3px solid var(--surface); border-radius:50%; background:#b9afa7; box-shadow:0 0 0 1px #cfc4ba; }.milestones>span.final::before { background:var(--green); }.milestones small,.milestones strong { display:block; }.milestones small { color:var(--muted); font-size:var(--label); }.milestones strong { margin-top:4px; font-size:var(--meta); }

/* 独立发布日程 */
.schedule-error { margin-bottom:16px; }.schedule-empty { max-width:900px; margin:0 auto; padding:30px; display:grid; grid-template-columns:minmax(0,.85fr) minmax(390px,1.15fr); gap:34px; align-items:start; }.schedule-empty h2,.schedule-list-heading h2 { margin:0 0 8px; font:500 var(--section) Georgia,"Songti SC",serif; }
.schedule-enable-form { padding:20px; border-radius:13px; display:grid; gap:16px; background:#faf6f1; }.schedule-enable-form>label,.schedule-entry-form label { display:grid; gap:6px; color:var(--muted); font-size:var(--meta); }.schedule-enable-form input,.schedule-enable-form select,.schedule-entry-form input,.schedule-entry-form select,.schedule-owner select,.platform-manager input,.platform-manager select { width:100%; min-height:42px; padding:9px 11px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:#fff; }.schedule-enable-form small { color:#978d85; font-size:var(--label); }.platform-choice { margin:0; padding:13px; border:1px solid var(--line); border-radius:10px; display:grid; grid-template-columns:repeat(2,1fr); gap:8px; background:#fff; }.platform-choice legend { padding:0 5px; color:var(--muted); font-size:var(--meta); }.platform-choice label { padding:8px; border-radius:8px; display:flex; gap:8px; align-items:center; background:#faf7f3; }.platform-choice input { min-height:0; width:17px; height:17px; accent-color:var(--orange); }
.schedule-toolbar { margin-bottom:18px; padding:20px; display:grid; grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr); gap:25px; }.schedule-owner form { display:flex; gap:9px; }.schedule-owner select { max-width:220px; }.schedule-platforms { min-width:0; }.platform-tags { display:flex; gap:7px; flex-wrap:wrap; }.platform-tags form { padding:6px 8px 6px 11px; border:1px solid #dfc8b8; border-radius:99px; display:flex; gap:8px; align-items:center; color:#7b4b32; background:#fff5eb; }.platform-tags button { padding:0 3px; border:0; color:#a45d48; background:transparent; cursor:pointer; font-size:17px; }.platform-manager { margin-top:11px; }.platform-manager summary { width:max-content; color:#945537; cursor:pointer; font-weight:700; }.platform-manager form { margin-top:10px; display:grid; grid-template-columns:minmax(150px,1fr) auto minmax(160px,1fr) auto; gap:8px; align-items:center; }.platform-manager form>span { color:var(--muted); text-align:center; }
.schedule-editor { margin-bottom:25px; }.schedule-entry-form { padding:18px 20px 22px; display:grid; grid-template-columns:repeat(5,minmax(130px,1fr)) auto; gap:12px; align-items:end; }.schedule-entry-form button { white-space:nowrap; }
.schedule-list-heading { margin-bottom:13px; display:flex; justify-content:space-between; gap:18px; align-items:end; }.schedule-view-tools { display:flex; gap:12px; align-items:center; }.schedule-view-tools>span { color:var(--muted); }.schedule-view-toggle { padding:3px; border:1px solid var(--line); border-radius:10px; display:flex; gap:3px; background:#fff; }.schedule-view-toggle a { padding:7px 11px; border-radius:7px; color:var(--muted); font-size:var(--meta); font-weight:700; }.schedule-view-toggle a.active { color:#fff; background:#3d342f; }.schedule-action-note { margin:0 0 10px; color:var(--muted); font-size:var(--meta); text-align:right; }.schedule-date-group { margin-bottom:14px; border:1px solid var(--line); border-radius:15px; overflow:hidden; background:var(--surface); }.schedule-date-group>header { padding:14px 18px; display:flex; justify-content:space-between; gap:20px; align-items:center; background:#f4eee8; }.schedule-date-group>header time { font:600 var(--section) Georgia,"Songti SC",serif; }.schedule-date-group>header span { color:var(--muted); font-size:var(--meta); }.schedule-row { min-height:92px; padding:12px 18px; border-top:1px solid #eee8e1; display:grid; grid-template-columns:150px 100px minmax(120px,1fr) 90px auto; gap:10px 14px; align-items:center; }.schedule-row:first-child { border-top:0; }.schedule-row>strong { font-size:var(--title); }.schedule-row>span { color:var(--muted); }.schedule-status { width:max-content; padding:5px 9px; border-radius:99px; font-size:var(--label); }.status-计划发布 { color:#386b82!important; background:#e7f1f5; }.status-已发布 { color:#376a4d!important; background:#e4f1e8; }.status-已取消 { color:#7a716b!important; background:#eeeae6; }.duplicate-warning { color:#9b5b34; white-space:nowrap; }.schedule-actions { min-width:0; grid-column:1/-1; display:flex; gap:7px; justify-content:flex-end; flex-wrap:wrap; }.schedule-actions form { display:inline-flex; }.schedule-actions a,.schedule-actions button { min-height:32px; padding:5px 9px; border:1px solid #eadbcf; border-radius:7px; color:#865038; background:#fffaf6; cursor:pointer; font-size:var(--label); white-space:nowrap; }.schedule-actions .schedule-delete { color:var(--red); border-color:#e0b7b3; background:var(--red-soft); }
.schedule-calendar { overflow:visible; }.calendar-toolbar { padding:15px 18px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:42px 1fr 42px; gap:10px; align-items:center; }.calendar-toolbar h3 { margin:0; font:500 var(--section) Georgia,"Songti SC",serif; text-align:center; }.calendar-toolbar a { width:36px; height:36px; border:1px solid var(--line); border-radius:9px; display:grid; place-items:center; background:#fff; font-size:18px; }.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }.calendar-weekdays { border-bottom:1px solid var(--line); background:#faf7f3; }.calendar-weekdays span { padding:9px; color:var(--muted); font-size:var(--meta); font-weight:700; text-align:center; }.calendar-day { min-width:0; min-height:118px; padding:9px; border-right:1px solid #eee8e1; border-bottom:1px solid #eee8e1; position:relative; background:#fff; }.calendar-day:nth-child(7n) { border-right:0; }.calendar-day>time { width:27px; height:27px; display:grid; place-items:center; border-radius:50%; color:var(--muted); font-size:var(--meta); font-weight:700; }.calendar-day.outside { background:#faf8f5; }.calendar-day.outside>time { color:#c5bdb6; }.calendar-day.today>time { color:#fff; background:var(--orange); }.calendar-events { margin-top:5px; display:grid; gap:5px; }.calendar-event { min-width:0; padding:5px 7px; border-radius:7px; position:relative; display:block; color:#74472f; background:var(--orange-soft); cursor:default; outline:none; }.calendar-event>strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--label); }.calendar-status-已发布 { color:#376a4d; background:#e4f1e8; }.calendar-status-已取消 { color:#7a716b; background:#eeeae6; opacity:.7; }.calendar-tooltip { width:max-content; max-width:240px; padding:8px 10px; border-radius:8px; position:absolute; z-index:12; left:50%; bottom:calc(100% + 7px); transform:translateX(-50%); visibility:hidden; opacity:0; color:#fff; background:#302925; box-shadow:0 8px 24px rgba(36,29,25,.24); font-size:var(--label); line-height:1.5; transition:opacity .12s ease; }.calendar-tooltip::after { content:""; position:absolute; top:100%; left:50%; margin-left:-5px; border:5px solid transparent; border-top-color:#302925; }.calendar-event:hover .calendar-tooltip,.calendar-event:focus .calendar-tooltip { visibility:visible; opacity:1; }.calendar-day:nth-child(7n) .calendar-tooltip { left:auto; right:0; transform:none; }.calendar-day:nth-child(7n) .calendar-tooltip::after { left:auto; right:12px; }.calendar-day:nth-child(7n+1) .calendar-tooltip { left:0; transform:none; }.calendar-day:nth-child(7n+1) .calendar-tooltip::after { left:16px; }
.schedule-markers { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }.auto-publish-badge { padding:4px 8px; border-radius:99px; color:#8a551d; background:#fff0cf; font-size:var(--label); font-weight:700; white-space:nowrap; }.schedule-actions .auto-publish-active { color:#785019; border-color:#d9b56f; background:#fff0cf; }

/* 任务详情抽屉与状态操作 */
.drawer-backdrop { position:fixed; inset:0; z-index:20; background:rgba(24,20,18,.42); }
.task-drawer { position:fixed; z-index:21; inset:0 0 0 auto; width:min(520px,calc(100vw - 40px)); display:flex; flex-direction:column; background:var(--surface); box-shadow:-18px 0 50px rgba(30,23,19,.22); }
.drawer-head { padding:23px 25px 19px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; }.drawer-head h2 { margin:0 0 6px; font:500 var(--section) Georgia,"Songti SC",serif; }.drawer-head p:last-child { margin:0; color:var(--muted); font-size:var(--meta); }.drawer-head .dot { margin-right:7px; }.drawer-close { width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--line); border-radius:10px; font-size:24px; }
.drawer-body { min-height:0; padding:0 25px 36px; overflow-y:auto; }.drawer-section { padding:20px 0; border-bottom:1px solid var(--line); }.drawer-section:last-child { border-bottom:0; }.drawer-section h3 { margin:0 0 13px; font-size:var(--title); }.drawer-alert { margin-top:18px; padding:13px 15px; border-radius:10px; color:#813d38; background:var(--red-soft); }.drawer-alert p { margin:4px 0 0; }
.dependency-list { display:grid; gap:8px; }.dependency-list span { display:flex; gap:8px; align-items:center; color:var(--muted); }
.submission-form,.review-actions,.review-actions form { display:grid; gap:12px; }.submission-form label,.review-actions label { display:grid; gap:6px; color:var(--muted); font-size:var(--meta); }.submission-form select,.submission-form textarea,.review-actions textarea { width:100%; padding:10px 11px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:#fff; resize:vertical; }.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }.attachment-picker { margin:0; padding:14px; border:1px dashed #cfc2b7; border-radius:11px; display:grid; gap:9px; background:#fffaf5; }.attachment-picker legend { padding:0 5px; color:var(--muted); font-size:var(--meta); }.attachment-picker p { margin:0; color:#736b65; font-size:var(--meta); }.attachment-picker>small,.attachment-summary { font-size:var(--label); }.attachment-picker>small { color:#958a82; }.attachment-add { width:max-content; padding:8px 12px; border:1px solid #c79e82; border-radius:8px; color:#804b2d!important; background:#fff; cursor:pointer; font-weight:700; }.attachment-summary { color:#735b4d; }.attachment-summary.error { color:var(--red); font-weight:700; }.attachment-selection { display:grid; gap:7px; }.attachment-selected-item { min-width:0; padding:9px 10px; border:1px solid #e2d6cc; border-radius:8px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; background:#fff; }.attachment-selected-item span,.attachment-selected-item strong,.attachment-selected-item small { min-width:0; display:block; }.attachment-selected-item strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--meta); }.attachment-selected-item small { margin-top:2px; color:#978d85; font-size:var(--label); }.attachment-remove { padding:5px 9px; border:1px solid #d8c9be; border-radius:7px; color:#8b5144; background:#fff7f3; cursor:pointer; font-size:var(--label); }.action-row { display:flex; gap:9px; flex-wrap:wrap; }.primary-action,.secondary-action,.danger-action { min-height:41px; padding:9px 14px; border-radius:9px; cursor:pointer; font-weight:700; }.primary-action { border:0; color:#fff; background:#3d342f; }.secondary-action { border:1px solid #ca9d7e; color:#8d4f31; background:#fff7f0; }.danger-action { border:1px solid #d9aaa5; color:#963f3a; background:var(--red-soft); }
.version-list,.task-history { display:grid; gap:10px; }.version-list article { padding:13px; border:1px solid var(--line); border-radius:10px; background:#fff; }.version-list header { display:flex; justify-content:space-between; gap:15px; }.version-list time,.version-list small { color:var(--muted); font-size:var(--label); }.version-list p { margin:9px 0 5px; white-space:pre-wrap; }.version-list em { margin-top:6px; display:block; color:var(--red); font-size:var(--meta); font-style:normal; }.attachment-list { margin:10px 0; display:grid; gap:7px; }.attachment-list a { padding:9px 10px; border:1px solid #e4d8ce; border-radius:8px; display:flex; justify-content:space-between; gap:14px; color:#74482f; background:#fff8f1; }.attachment-list a span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.empty-delivery { padding:9px 10px; border-radius:8px; color:#7c736d; background:#f4f0ec; font-size:var(--meta); }.version-note { color:var(--muted); font-size:var(--meta); }.task-history article { display:grid; grid-template-columns:105px 65px 105px 1fr; gap:8px; align-items:start; }.task-history time,.task-history small { color:var(--muted); font-size:var(--label); }.task-history span { font-weight:700; }

@media (max-width:1050px) { .app-shell{grid-template-columns:220px minmax(0,1fr)}.sidebar{padding-left:15px;padding-right:15px}.workspace-topbar,.page-content{padding-left:26px;padding-right:26px}.stats{grid-template-columns:repeat(2,1fr)}.two-column{grid-template-columns:1fr}.whole-tasks{grid-template-columns:repeat(2,1fr)}.archive-heading{align-items:stretch;flex-direction:column}.activity-list article{grid-template-columns:120px 80px 150px 1fr}.wizard-steps b{display:none}.chapter-assignments{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-empty{grid-template-columns:1fr}.schedule-entry-form{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-row{grid-template-columns:110px 85px minmax(100px,1fr) 85px}.schedule-actions{grid-column:1/-1;justify-content:flex-start}.calendar-day{min-height:105px;padding:7px}.calendar-event{padding:4px 5px} }
