/* 旅行笔记 v2 样式：卡片式仪表盘 + 清单 + 笔记 */
#notes-app { max-width: 720px; margin: 0 auto; padding: 14px 14px 40px; display: flex; flex-direction: column; gap: 14px; font-family: system-ui, -apple-system, sans-serif; }

.card { background: #fff; border: 1px solid #E8E2D5; border-radius: 14px; padding: 16px; box-shadow: 0 1px 4px rgba(60, 50, 30, .05); }
.card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.card-head h2 { font-size: 15px; margin: 0; color: #3E3526; }

/* 仪表盘 */
.dash-top { display: flex; align-items: center; gap: 20px; }
.ring { width: 96px; height: 96px; flex-shrink: 0; }
.ring-bg { fill: none; stroke: #EFEBE0; stroke-width: 9; }
.ring-fg { fill: none; stroke: #B71C1C; stroke-width: 9; stroke-linecap: round; transform: rotate(-90deg); transform-origin: center; transition: stroke-dasharray .5s; }
.ring-num { text-anchor: middle; font-size: 19px; font-weight: 800; fill: #B71C1C; }
.ring-lbl { text-anchor: middle; font-size: 9px; fill: #999; }
.dash-nums { display: flex; flex-direction: column; gap: 8px; }
.dn-row { display: flex; align-items: baseline; gap: 8px; }
.dn-row b { font-size: 22px; color: #3E3526; min-width: 48px; }
.dn-row b.dn-done { color: #2E7D32; }
.dn-row span { font-size: 12px; color: #999; }

.dash-countries { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 12px; }
.cc-chip { font-size: 12px; background: #F6F4EE; border: 1px solid #E8E2D5; border-radius: 999px; padding: 4px 10px; color: #5D5340; }
.cc-chip b { color: #B71C1C; }

.dc-row { display: grid; grid-template-columns: 84px 1fr 44px; align-items: center; gap: 8px; padding: 4px 0; }
.dc-name { font-size: 12px; color: #5D5340; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dc-bar { height: 7px; background: #EFEBE0; border-radius: 99px; overflow: hidden; }
.dc-bar i { display: block; height: 100%; border-radius: 99px; transition: width .4s; }
.dc-num { font-size: 11px; color: #999; text-align: right; font-variant-numeric: tabular-nums; }

/* 打卡清单 */
.cl-search { border: 1.5px solid #E8E2D5; border-radius: 9px; padding: 7px 12px; font-size: 13px; width: 170px; outline: none; }
.cl-search:focus { border-color: #B71C1C; }
.cl-city { display: flex; align-items: center; gap: 8px; padding: 9px 4px; cursor: pointer; border-top: 1px solid #F1EDE3; font-size: 13px; color: #3E3526; user-select: none; min-height: 44px; }
.cl-arrow { color: #999; width: 12px; }
.cl-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.cl-name { flex: 1; font-weight: 600; }
.cl-count { font-size: 11px; color: #999; font-variant-numeric: tabular-nums; }
.cl-row { display: flex; align-items: center; gap: 10px; padding: 8px 6px 8px 22px; cursor: pointer; min-height: 44px; border-radius: 8px; }
.cl-row:active { background: #F6F4EE; }
.cl-row input { width: 17px; height: 17px; flex-shrink: 0; }
.cl-pname { flex: 1; font-size: 13px; color: #3E3526; }
.cl-row.done .cl-pname { color: #9E9789; text-decoration: line-through; }
.cl-ptype { font-size: 11px; color: #B0A897; max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 笔记 */
.nh-count { font-size: 12px; color: #999; }
.note { border-top: 1px solid #F1EDE3; padding: 12px 2px; cursor: pointer; }
.note-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.note-title { font-size: 14px; font-weight: 600; color: #3E3526; }
.note.open .note-title { color: #B71C1C; }
.note-date { font-size: 11px; color: #999; flex-shrink: 0; }
.note-summary { font-size: 12px; color: #8A8272; margin-top: 4px; }
.note-body { margin-top: 10px; font-size: 14px; line-height: 1.8; color: #454034; }
.note-body .md img { max-width: 100%; border-radius: 8px; }
.note-body .md h1, .note-body .md h2, .note-body .md h3 { font-size: 16px; margin: 14px 0 6px; color: #3E3526; }
.note-body .md p { margin: 8px 0; }
.note-meta { font-size: 11px; color: #B0A897; margin-top: 10px; }

.empty { padding: 24px; text-align: center; font-size: 13px; color: #999; }

@media (max-width: 480px) {
  .cl-search { width: 130px; }
  .dn-row b { font-size: 19px; min-width: 40px; }
}

/* 打卡详情编辑器（日期 / 次数 / 感想） */
.cl-ckinfo { display: block; font-size: 11px; color: #B0A897; margin-top: 2px; }
.cl-edit { flex-shrink: 0; border: 1px solid #E0D8C6; background: #FDFCF9; color: #8A8071; border-radius: 8px; width: 30px; height: 30px; font-size: 13px; cursor: pointer; }
.cl-edit:active { background: #F1EDE2; }
.cl-editor { display: grid; gap: 6px; margin: 2px 6px 10px 22px; padding: 10px 12px; background: #FBF9F3; border: 1px solid #EDE7D9; border-radius: 10px; }
.cl-editor label { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #6B6151; }
.cl-editor input { flex: 1; min-width: 0; border: 1.5px solid #E0D8C6; border-radius: 8px; padding: 6px 9px; font-size: 13px; background: #fff; color: #3E3526; outline: none; }
.cl-editor input:focus { border-color: #B71C1C; }
.cl-editor-ops { display: flex; gap: 8px; }
.cl-save, .cl-cancel { flex: 1; border-radius: 8px; padding: 8px; font-size: 13px; cursor: pointer; border: 1.5px solid #C9C0AC; background: #fff; color: #5D5340; }
.cl-save { background: #B71C1C; border-color: #B71C1C; color: #fff; font-weight: 600; }
.cl-save:active { background: #8E1414; }
