/* 列表：待处理条、分组、事项行、分页、折叠行、时间线、键值、五格、分段、表格、空态、骨架 */

/* 待处理：一屏唯一的“盒”，只在有事时出现 */
.todo{padding:6px 22px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--paper-2);box-shadow:var(--sh-box)}
.todo-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 0 6px}
.todo-head h2{font-size:var(--fs-sub);font-weight:500}
.todo-head .meta{font-size:var(--fs-meta);color:var(--ink-faint)}
.todo-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:60px;padding:10px 0;border-top:1px solid var(--line-soft);color:inherit}
.todo-item:first-of-type{border-top:0}
.todo-item b{display:block;font-size:var(--fs-control);font-weight:500;color:var(--ink);line-height:1.5}
.todo-item span{display:block;font-size:var(--fs-meta);color:var(--ink-faint);line-height:1.6}
.todo-item .go{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-meta);color:var(--ink-soft);white-space:nowrap}
.todo-item:hover .go{color:var(--ink)}
@media (max-width:560px){.todo{padding:4px 16px}.todo-item{grid-template-columns:minmax(0,1fr) auto}.todo-item>.tag{display:none}}

/* 分组（按分支）：组头是按钮，可折叠 */
.groups{display:grid;gap:4px}
.group-h{font:inherit;letter-spacing:0}
.group-head{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 2px;border-bottom:1px solid var(--line);color:var(--ink)}
.group-head .gname{font-size:var(--fs-sub);font-weight:500}
.group-head .meta{font-size:var(--fs-meta);color:var(--ink-faint)}
.group-head .meta b{font-weight:400;color:var(--attn)}
.group-head .i{margin-left:auto;width:16px;height:16px;color:var(--ink-faint);transition:transform var(--t-base) var(--ease)}
.group-head[aria-expanded="false"] .i{transform:rotate(-90deg)}
.group-body[hidden]{display:none}
.group-kicker{padding:22px 2px 2px;font-size:var(--fs-tiny);letter-spacing:.24em;color:var(--bronze-deep)}

/* 行：整行一个链接，内部不再嵌按钮 */
.rows>*+*{border-top:1px solid var(--line-soft)}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;min-height:72px;padding:14px 2px;color:inherit;transition:background-color var(--t-fast) var(--ease)}
a.row:hover,button.row:hover{background:var(--hover-bg)}
button.row{width:100%;text-align:left}
.row-title{display:block;font-size:var(--fs-control);font-weight:500;color:var(--ink);line-height:1.55}
.row-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;font-size:var(--fs-meta);color:var(--ink-faint);line-height:1.6}
.row-next{display:block;margin-top:4px;font-size:var(--fs-small);color:var(--ink-soft);line-height:1.65}
.row-side{display:flex;align-items:center;gap:12px;color:var(--ink-faint)}
.row-side .i{width:16px;height:16px}
.row.is-draft .row-title{color:var(--ink-soft)}
.row.quiet{min-height:60px}
.row.quiet .row-title{font-weight:400;color:var(--ink-soft)}
@media (max-width:560px){.row{gap:10px}.row-side .status{display:none}}

/* 分页：右下角 1 2 3 */
.pager{display:flex;justify-content:flex-end;align-items:center;gap:4px;padding:12px 0 4px}
.pager button{min-width:36px;min-height:36px;padding:0 8px;border-radius:var(--r-1);font-family:var(--font-data);font-size:var(--fs-meta);color:var(--ink-faint)}
.pager button:hover{color:var(--ink);background:var(--hover-bg)}
.pager button[aria-current="page"]{color:var(--ink);background:var(--select-bg);font-weight:500}
.pager button[disabled]{opacity:.35;cursor:default}
@media (pointer:coarse){.pager button{min-width:44px;min-height:44px}}

/* 折叠行（账号与授权）：收起时右侧就给出状态，不用展开也知道 */
.acc{border-top:1px solid var(--line)}
.acc-item{border-bottom:1px solid var(--line)}
.acc-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;width:100%;min-height:64px;padding:12px 2px;text-align:left}
.acc-head b{display:block;font-size:var(--fs-control);font-weight:500;color:var(--ink)}
.acc-head small{display:block;margin-top:2px;font-size:var(--fs-meta);color:var(--ink-faint);line-height:1.6}
.acc-head .state{font-size:var(--fs-meta);color:var(--ink-soft);white-space:nowrap;text-align:right}
.acc-head .i{width:16px;height:16px;color:var(--ink-faint);transition:transform var(--t-base) var(--ease)}
.acc-head[aria-expanded="true"] .i{transform:rotate(180deg)}
.acc-body{padding:4px 2px 26px}
@media (max-width:560px){.acc-head{grid-template-columns:minmax(0,1fr) auto}.acc-head .state{grid-column:1;grid-row:2;text-align:left;margin-top:-4px}}

/* 时间线 */
.timeline{position:relative;display:grid;gap:18px;padding-left:22px}
.timeline::before{content:"";position:absolute;left:4px;top:8px;bottom:8px;width:1px;background:var(--line)}
.tl-item{position:relative}
.tl-item::before{content:"";position:absolute;left:-22px;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 1px var(--ink-faint)}
.tl-item.now::before{background:var(--bronze);box-shadow:none}
.tl-item b{display:block;font-size:var(--fs-control);font-weight:500;color:var(--ink);line-height:1.6}
.tl-item p{margin-top:2px;font-size:var(--fs-small);line-height:1.75}
.tl-item .meta{margin-top:2px;font-size:var(--fs-meta);color:var(--ink-faint)}

/* 键值：资料与事实 */
.kv>*+*{border-top:1px solid var(--line-soft)}
.kv-row{display:grid;grid-template-columns:minmax(96px,168px) minmax(0,1fr) auto;align-items:start;gap:16px;padding:14px 2px}
.kv-row .k{font-size:var(--fs-small);color:var(--ink-faint);line-height:1.75}
.kv-row .v{font-size:var(--fs-control);color:var(--ink);line-height:1.75;word-break:break-word}
.kv-row .v small{display:block;margin-top:2px;font-size:var(--fs-meta);color:var(--ink-faint)}
.kv-row .kv-act{margin-top:-6px}
@media (max-width:560px){.kv-row{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}.kv-row .k{grid-column:1/-1}}

/* 五格判断 */
.grid5{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.grid5>div{padding:18px 20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.grid5>div.wide{grid-column:1/-1;background:rgba(238,232,220,.45)}
.grid5 h3{font-size:var(--fs-meta);font-weight:500;letter-spacing:.2em;color:var(--bronze-deep)}
.grid5 p{margin-top:6px;font-size:var(--fs-control);line-height:1.8}
@media (max-width:560px){.grid5{grid-template-columns:1fr}}

/* 分段切换：原位切换内容 */
.seg{display:flex;gap:4px;margin-bottom:var(--sp-6);overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line)}
.seg::-webkit-scrollbar{display:none}
.seg>a,.seg [role="tab"]{position:relative;flex:none;display:inline-flex;align-items:center;min-height:var(--touch);padding:8px 14px;color:var(--ink-faint);font-size:var(--fs-control);white-space:nowrap}
.seg>a:hover,.seg [role="tab"]:hover{color:var(--ink)}
.seg>a[aria-current="page"],.seg [role="tab"][aria-selected="true"]{color:var(--ink)}
.seg>a[aria-current="page"]::after,.seg [role="tab"][aria-selected="true"]::after{content:"";position:absolute;left:50%;bottom:-1px;width:22px;height:2px;background:var(--bronze);transform:translateX(-50%)}
.seg .count{margin-left:6px;font-family:var(--font-data);font-size:var(--fs-tiny);color:var(--ink-faint)}

/* 筛选胶囊：是筛选，不是标签页 */
.chips{display:flex;gap:8px;margin-bottom:var(--sp-5);overflow-x:auto;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 14px;border:1px solid var(--line);border-radius:var(--r-pill);font-size:var(--fs-small);color:var(--ink-soft);transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.chip:hover{color:var(--ink);border-color:var(--line-strong)}
.chip[aria-pressed="true"]{background:var(--select-bg);border-color:transparent;color:var(--ink);font-weight:500}
.chip .n{font-family:var(--font-data);font-size:var(--fs-tiny);color:var(--ink-faint);font-weight:400}
@media (pointer:coarse){.chip{min-height:var(--touch)}}

/* 空态与骨架 */
.empty{display:grid;justify-items:center;gap:8px;padding:56px 16px;text-align:center}
.empty b{font-size:var(--fs-sub);font-weight:400;color:var(--ink)}
.empty p{max-width:32ch;font-size:var(--fs-small);color:var(--ink-faint);line-height:1.75}
.empty .btn{margin-top:14px}
.sk{display:block;height:14px;margin:12px 0;border-radius:var(--r-1);background:rgba(35,33,28,.06);animation:sk 1.4s var(--ease) infinite alternate}
.sk.t{height:22px;width:42%}
@keyframes sk{from{opacity:.5}to{opacity:1}}
