/* Đóng góp tính năng (KQ-20261030-002, CONTRACT §52). Token màu của app.css; mobile-first; danh sách rộng hết khung. */
.dg{padding:0 16px 28px;min-width:0}
.dg-h{padding-top:14px}
.dg-ht{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dg-new{flex:none;min-height:44px;padding:0 14px;text-decoration:none;font-size:14px}
.dg-new .ic{width:18px;height:18px}
.dg-h p{margin-top:4px}
@media (min-width:760px){.dg-h p{max-width:640px}}

/* thanh sắp xếp + lọc: một dòng, cuộn ngang được khi hẹp */
.dg-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 0 10px}
.dg-tabs{display:flex;gap:2px;background:var(--muted-soft);padding:3px;border-radius:10px}
.dg-tabs a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:8px;color:var(--ink-2);font-weight:600;font-size:13.5px;text-decoration:none;white-space:nowrap}
.dg-tabs a[aria-current]{background:var(--sheet);color:var(--ink);box-shadow:var(--shadow-1,0 1px 2px rgba(0,0,0,.08))}
.dg-picks{display:flex;gap:8px;min-width:0;flex:1 1 auto}
.dg-pick{position:relative;display:inline-flex;align-items:center;min-width:0}
.dg-pick select{appearance:none;-webkit-appearance:none;min-height:40px;max-width:100%;padding:0 32px 0 12px;border:1px solid var(--rule);border-radius:999px;background:var(--sheet);font-size:13.5px;font-weight:500;color:var(--ink);text-overflow:ellipsis}
.dg-pick .ic{position:absolute;right:10px;width:15px;height:15px;color:var(--ink-3);pointer-events:none}
.field .dg-pick-full{display:flex;align-items:center;margin:0;color:var(--ink);font-size:inherit}
.dg-pick-full select{width:100%;min-height:46px;border-radius:10px;background:var(--paper);font-size:16px}
@media (max-width:420px){.dg-tabs{flex:1 1 100%}.dg-tabs a{flex:1;justify-content:center}.dg-picks .dg-pick{flex:1 1 0}.dg-pick select{width:100%}}

/* danh sách */
.dg-list{list-style:none;margin:0;padding:0;background:var(--sheet);border:1px solid var(--rule-2);border-radius:var(--r-lg);overflow:hidden}
.dg-row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px;align-items:start;padding:12px 12px 12px 8px;border-top:1px solid var(--rule-2)}
.dg-row:first-child{border-top:0}
.dg-row:hover{background:var(--sheet-2)}
.dg-sk{display:block;padding:14px}
.dg-sk .skeleton{display:block;height:54px;border-radius:8px}
.dg-main{display:grid;gap:4px;min-width:0;color:var(--ink);text-decoration:none;padding:2px 0}
.dg-main b{font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.dg-main:hover b{color:var(--accent)}
.dg-sum{font-size:13.5px;line-height:1.5;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.dg-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12.5px;color:var(--ink-3);margin:2px 0 0}
.dg-c{display:inline-flex;align-items:center;gap:4px}
.dg-c .ic{width:14px;height:14px}

/* nút bình chọn */
.dg-vote{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:48px;min-height:52px;border:1px solid var(--rule);border-radius:10px;background:var(--sheet);color:var(--ink-2);padding:4px 0}
.dg-vote .ic{width:20px;height:20px;stroke-width:2.2}
.dg-vote b{font-size:16px;line-height:1;color:var(--ink)}
.dg-vote:hover{border-color:var(--accent);color:var(--accent)}
.dg-vote[aria-pressed="true"]{background:var(--brand,var(--accent));border-color:var(--brand,var(--accent));color:var(--brand-ink,#fff)}
.dg-vote[aria-pressed="true"] b{color:inherit}
.dg-vote:disabled{opacity:.85}
.dg-vote.big{flex-direction:row;gap:8px;width:auto;min-height:46px;padding:0 18px;font-weight:600}
.dg-vote.big b{font-size:18px}

/* trạng thái */
.dg-st{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap;background:var(--muted-soft);color:var(--ink-2)}
.dg-st::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.dg-st-ke_hoach{background:var(--tender-soft,var(--accent-soft));color:var(--tender,var(--accent))}
.dg-st-dang_lam{background:var(--warn-soft,var(--gold-soft));color:var(--warn,var(--gold))}
.dg-st-da_xong{background:var(--ok-soft,var(--accent-soft));color:var(--ok,var(--accent))}
.dg-st-khong_lam{background:var(--closed-soft,var(--muted-soft));color:var(--closed,var(--ink-3))}

.dg-foot{padding:14px 0 0;text-align:center}
.dg-foot .empty{margin:12px 0;text-align:left}
.dg-count{margin:4px 0;color:var(--ink-3);font-size:13px}

/* chi tiết + form */
.dg-doc{padding-top:14px;max-width:760px}
.dg-title{margin:10px 0 6px;font:700 19px/1.35 var(--f-ui);overflow-wrap:anywhere}
.dg-body{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
.dg-act{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:16px 0 4px}
.dg-hint{font-size:12.5px;color:var(--ink-3);margin:-8px 0 14px}
.dg-act .dg-hint{margin:0}
.dg-sec{margin-top:24px}
.dg-sec h3{margin:0 0 8px;font:700 16px/1.3 var(--f-ui)}
.dg-n{color:var(--ink-3);font-weight:500}
.dg-none{color:var(--ink-3);font-size:13.5px;margin:0 0 10px}
.dg-comments{list-style:none;margin:0 0 12px;padding:0}
.dg-comments:empty{display:none}
.dg-comments li{padding:10px 0;border-top:1px solid var(--rule-2)}
.dg-comments li:first-child{border-top:0}
.dg-comments p{margin:0;font-size:14px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}
.dg-comments time{font-size:12px;color:var(--ink-3)}
.dg-cform textarea,.dg-form textarea{width:100%;border:1px solid var(--rule);border-radius:10px;background:var(--paper);padding:10px 12px;font:inherit;font-size:16px;line-height:1.5;resize:vertical;color:var(--ink)}
.dg-crow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
.dg-len{font-size:12px;color:var(--ink-3)}
.dg-lead{margin:0 0 14px;color:var(--ink-2);font-size:14px}
.dg-f{margin-bottom:6px}
.dg-form .field input{background:var(--paper);color:var(--ink)}
.dg-form [aria-invalid="true"]{border-color:var(--bad,var(--seal))}
.dg-err{margin:0 0 12px;color:var(--bad,var(--seal));font-size:13px}
.dg-form .dg-err{margin-top:-8px}
.dg-form .field{margin-bottom:14px}
.dg-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.dg-submit{display:flex;margin-top:6px}
.dg-submit .btn-primary{flex:1}
@media (min-width:760px){.dg-submit .btn-primary{flex:0 1 320px}}

/* gợi ý trùng */
.dg-sim{margin:-4px 0 16px;padding:12px;border-radius:var(--r-lg);background:var(--gold-soft);border:1px solid var(--rule-2)}
.dg-sim p{margin:0 0 8px;font-size:13.5px;color:var(--ink-2)}
.dg-sim ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dg-sim li{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:6px;background:var(--sheet);border-radius:10px;padding:6px 10px 6px 4px}
.dg-sim a{display:grid;gap:2px;min-width:0;color:var(--ink);text-decoration:none;font-size:14px;font-weight:600}
.dg-sim a span{overflow-wrap:anywhere}
.dg-sim small{font-weight:500;color:var(--ink-3);font-size:12px}

