:root{color-scheme:light;--ink: #1c2b27;--muted: #5e6f69;--line: #d7e0db;--paper: #f4f7f5;--card: #ffffff;--deep: #1a3a32;--deep-2: #24584b;--accent: #c46b3a;--good: #1f7a4d;--bad: #9b3d32;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer}button.primary{background:var(--deep);color:#fff;border-color:var(--deep);white-space:nowrap}button:disabled{opacity:.6;cursor:wait}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:#fff}textarea{min-height:92px;resize:vertical}.shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0 48px}.top,.panel-head,.tabs,footer,.actions,.inline,.search{display:flex;gap:12px;align-items:center;justify-content:space-between}.top{align-items:flex-end;margin-bottom:18px}.eyebrow{margin:0 0 4px;color:var(--accent);letter-spacing:.08em;font-size:12px}h1{margin:0;font-size:42px;letter-spacing:.12em}h2{margin:0;font-size:20px}h3{margin:22px 0 8px;font-size:16px}.sub,.muted,small,footer{color:var(--muted)}.health{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-size:13px}.health[data-ok=true]{color:var(--good);border-color:#b7d8c6;background:#f2faf5}.tabs{justify-content:flex-start;margin-bottom:14px}.tabs button.on{background:var(--deep);color:#fff}.tabs span{margin-left:auto;color:var(--muted);font-size:13px;white-space:nowrap}.panel{background:transparent;margin-top:14px}.panel-head{margin-bottom:12px}.board-tools{display:grid;gap:12px;margin-bottom:12px}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filters select,.filters input{width:auto;min-width:140px}.filters input{flex:1;min-width:240px}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.summary div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.summary strong{display:block;font-size:22px}.summary span{color:var(--muted);font-size:12px}.stats{display:flex;gap:8px;flex-wrap:wrap}.stats span,.card small{font-size:12px;color:var(--muted)}.stats span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 8px}.board,.articles{display:grid;gap:12px}.board{grid-template-columns:repeat(4,1fr);align-items:start}.column{background:#e7eee9;border-radius:14px;padding:10px;min-height:220px}.column h2{display:flex;justify-content:space-between;font-size:15px;margin-bottom:10px}.column h2 em{font-style:normal;color:var(--muted)}.card{width:100%;text-align:left;display:grid;gap:6px;margin-bottom:8px;border-radius:12px;padding:12px;background:var(--card)}.card strong{font-size:12px;color:var(--deep-2)}.card.selected{outline:2px solid var(--deep)}.pri-高{border-left:4px solid var(--bad)}.pri-中{border-left:4px solid var(--accent)}.pri-低{border-left:4px solid #7d8f88}.detail{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.body-text{line-height:1.75;white-space:pre-wrap}.notes{list-style:none;padding:0;margin:0;display:grid;gap:8px}.notes li,.checks li,.events li{display:grid;gap:3px;background:var(--paper);border-radius:10px;padding:10px}.checks,.events{list-style:none;padding:0;margin:0;display:grid;gap:8px}.checks li{grid-template-columns:22px 1fr;align-items:center}.checks li.empty{display:block;grid-column:1 / -1}.source{display:inline-block;margin-top:8px;color:var(--deep-2);word-break:break-all}.inline input:first-child{max-width:140px}.actions{flex-wrap:wrap}.actions button{min-width:112px}.search{flex:1;justify-content:flex-start}.search input{max-width:420px}.articles{grid-template-columns:repeat(3,1fr)}footer{margin-top:28px;font-size:13px}.modal{border:0;width:min(520px,calc(100% - 24px));margin:8vh auto;border-radius:16px;padding:18px;box-shadow:0 24px 60px #14282033}.modal form,.modal label{display:grid;gap:8px}.modal label{font-size:13px;color:var(--muted)}.toast{position:fixed;left:50%;top:16px;transform:translate(-50%);display:flex;gap:12px;align-items:center;background:var(--deep);color:#fff;border-radius:12px;padding:12px 14px;max-width:min(560px,calc(100% - 32px));z-index:5}.toast.bad{background:var(--bad)}.toast button{background:transparent;color:#fff;border-color:#ffffff80}.acceptance-summary{display:grid;gap:8px;margin-top:20px;padding:16px;border:1px solid #b7d8c6;border-radius:12px;background:#f2faf5}.acceptance-summary span{font-size:14px;color:var(--muted)}.acceptance-summary p{margin:0;line-height:1.6}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c46b3a;outline-offset:3px}.detail .actions{justify-content:flex-start;margin-top:16px}.detail .inline{margin-top:16px}.body-text,.notes li,.events li{overflow-wrap:anywhere}.banner{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#f8ece9;color:var(--bad);border:1px solid #efcfc9}.empty{color:var(--muted);font-size:13px}.mobile-moves{display:none!important}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.project-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.project-meta{display:flex;justify-content:space-between;gap:12px;color:var(--accent);font-size:13px}.project-card h3{font-size:20px;margin:20px 0 8px}.project-card p{color:var(--muted);line-height:1.7;flex:1}.project-card a{color:var(--deep);font-weight:600;overflow-wrap:anywhere}.project-card a small{display:block;margin-top:8px;font-weight:400}.local-project{font-size:13px;color:var(--muted)}@media(max-width:900px){.projects-grid,.board,.articles,.summary{grid-template-columns:1fr}.top,.panel-head,.inline,.search,footer{align-items:stretch;flex-direction:column}.tabs span{margin-left:0}h1{font-size:34px}.summary{grid-template-columns:repeat(2,1fr)}.tabs{flex-wrap:wrap}.tabs span{width:100%}.filters input{min-width:0;width:100%;flex-basis:100%}.filters select{min-width:0;flex:1}.inline input:first-child{max-width:none}.card small{white-space:normal}}
