/* ==========================================================================
   后台 · 设置 / SETTINGS
   深墨控制台里的分类面板：站点 / 首页 / 外观 / 页脚 / 系统。
   ========================================================================== */
body.admin :focus-visible{outline:3px solid var(--ppk);outline-offset:3px}

.set-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.sp{position:relative;background:var(--panel);border:2px solid var(--pline);box-shadow:4px 4px 0 var(--ppk-deep);min-width:0}
.sp--wide{grid-column:1 / -1}
.sp-head{display:flex;align-items:center;gap:10px;padding:11px 15px;border-bottom:2px solid var(--pline-2)}
.sp-head h2{font-size:15px;font-weight:900;letter-spacing:.02em;line-height:1.3;color:var(--pp)}
.sp-en{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--pp-55)}
.sp-state{margin-left:auto;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--pp-55);white-space:nowrap}
.sp-body{padding:13px 16px 15px}

/* 表单字段 */
.fields{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px}
.fld{min-width:0}
.fld label,.fld-k{display:block;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.12em;color:var(--pp-55);margin-bottom:6px}
.fld input{
  display:block;width:100%;height:40px;padding:0 11px;
  background:var(--desk);border:2px solid var(--pline);border-radius:0;
  color:var(--pp);font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.01em;
  transition:border-color .15s var(--ease),box-shadow .15s var(--ease);
}
.fld input:hover{border-color:var(--pp-55)}
.fld input:focus{outline:none;border-color:var(--ppk);box-shadow:3px 3px 0 var(--ppk-deep)}
.hint{margin-top:10px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;line-height:1.8;color:var(--pp-55)}
.hint .sep{margin:0 6px;color:var(--pp-55)}
.hint b{font-weight:500;color:var(--pp-70)}

/* 主题分栏 */
.seg{display:flex;gap:7px;margin-top:10px}
.seg button{
  flex:1;height:38px;border:2px solid var(--pline);background:var(--desk);border-radius:0;
  color:var(--pp-62);font-size:12px;font-weight:700;letter-spacing:.02em;
  transition:background .14s var(--ease),border-color .14s var(--ease),color .14s var(--ease),box-shadow .14s var(--ease);
}
.seg button:hover{border-color:var(--ppk);color:var(--pp)}
.seg button[aria-pressed="true"]{background:var(--ppk);color:var(--ink);border-color:var(--ink);box-shadow:3px 3px 0 color-mix(in srgb, var(--pp) 30%, transparent)}

/* 开关行（开关本体在 admin.css 的 .switch 共享组件里） */
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:2px solid var(--pline-2);transition:opacity .15s var(--ease)}
.switch-row:first-child{padding-top:2px}
.switch-row:last-of-type{border-bottom:0;padding-bottom:2px}
.switch-label{min-width:0}
.switch-label b{display:block;font-size:13px;font-weight:700;letter-spacing:.01em;line-height:1.5;color:var(--pp)}
.switch-label span{display:block;margin-top:2px;font-size:11px;letter-spacing:.01em;line-height:1.6;color:var(--pp-55)}
.switch-row.is-off{opacity:.52}

/* 只读行 */
.ro{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:2px solid var(--pline-2)}
.ro:last-of-type{border-bottom:0}
.ro-k{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--pp-55);white-space:nowrap}
.ro-v{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--pp-80);white-space:nowrap}
.ro-v .sq{width:7px;height:7px;flex:none;background:var(--ppk)}
.ro-v em{font-style:normal;color:var(--pp-55)}
.ro-env{margin-top:11px;padding:10px 12px;background:var(--desk);border:2px solid var(--pline-2)}
.ro-env-k{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--pp-55);margin-bottom:6px}
.env-row{display:flex;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--pp-70);line-height:2}
.env-row span:last-child{color:var(--pp-55)}

/* 危险区 */
.sp--danger{border-color:color-mix(in srgb, var(--pink) 45%, transparent)}
.sp--danger .sp-head{border-bottom-color:color-mix(in srgb, var(--pink) 30%, transparent)}
.sp--danger .sp-head h2{color:var(--ppk-soft)}
.danger-tag{
  margin-left:auto;background:var(--ink);color:var(--ppk-soft);border:2px solid var(--ppk-soft);
  box-shadow:none;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.1em;
  padding:2px 7px 3px;line-height:1.5;white-space:nowrap;
}
.danger-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:2px solid var(--pline-2)}
.danger-row:first-child{padding-top:2px}
.danger-row:last-child{border-bottom:0;padding-bottom:2px}
.dr-txt{min-width:0}
.dr-txt b{display:block;font-size:13px;font-weight:700;letter-spacing:.01em;line-height:1.5;color:var(--pp)}
.dr-txt span{display:block;margin-top:2px;font-size:11px;letter-spacing:.01em;line-height:1.6;color:var(--pp-55)}
.danger-btn{
  flex:none;height:38px;padding:0 14px;border:2px solid color-mix(in srgb, var(--pink) 55%, transparent);background:transparent;border-radius:0;
  color:var(--ppk-soft);font-size:12px;font-weight:700;letter-spacing:.03em;
  transition:background .14s var(--ease),border-color .14s var(--ease),color .14s var(--ease);
}
.danger-btn:hover{background:color-mix(in srgb, var(--pink) 14%, transparent);border-color:var(--ppk);color:var(--pp)}
.danger-btn:focus-visible{outline:3px solid var(--ppk);outline-offset:2px}

/* 页头/页脚小字 */
.ph-note{margin-top:2px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--pp-55);text-align:right}
.ph-note.is-dirty{color:var(--ppk)}
.page-note{margin-top:14px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;line-height:1.8;color:var(--pp-55)}

/* 确认弹层 */
.cfm-head{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:2px solid var(--ink);margin-bottom:12px}
.cfm-head .sec-num{box-shadow:none}
.cfm-title{font-size:17px;font-weight:900;line-height:1.3;color:var(--ink)}
.cfm-text{font-size:13px;line-height:1.8;color:var(--ink-80)}
.cfm-meta{margin-top:10px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink-62)}
.cfm-f{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:12px;border-top:2px solid var(--line)}

/* 管理令牌 */
.sp--token{margin-top:0}
.token-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:end}
.token-row .fld{min-width:0}
.token-row .btn{height:40px}

/* 主题色 */
.fld--wide{grid-column:1 / -1}
.fld--color{margin-top:14px}
.color-row{display:flex;align-items:center;gap:8px}
.fld .color-pick{flex:none;width:44px;height:40px;padding:2px;border:2px solid var(--pline);background:var(--desk);cursor:pointer;transition:border-color .15s var(--ease)}
.fld .color-pick:hover{border-color:var(--pp-55)}
.fld .color-pick::-webkit-color-swatch-wrapper{padding:0}
.fld .color-pick::-webkit-color-swatch{border:0}
.fld .color-pick::-moz-color-swatch{border:0}
.fld .color-text{flex:1;min-width:0;width:auto;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.color-preview{flex:none;width:64px;height:40px;border:2px solid var(--pline);background:var(--ppk);box-shadow:2px 2px 0 color-mix(in srgb, var(--pp) 22%, transparent)}
.fld-err{margin-top:6px;font-family:var(--mono);font-size:11px;letter-spacing:.03em;line-height:1.6;color:var(--ppk-soft)}
.fld-err[hidden]{display:none}
.fld.is-invalid input{border-color:var(--ppk);box-shadow:3px 3px 0 var(--ppk-deep)}

/* 订阅预览：长地址换行 */
.ro-v--wrap{white-space:normal;text-align:right;word-break:break-all;line-height:1.6}

/* 未连接 / 只读：表单控件与保存按钮变灰 */
.sp-body input:disabled,.sp-body button:disabled{opacity:.5;cursor:not-allowed}
.fld input:disabled:hover{border-color:var(--pline)}
#saveBtn:disabled,#saveBtn:disabled:hover{opacity:.45;cursor:not-allowed;transform:none;box-shadow:4px 4px 0 var(--ppk-deep);background:var(--ppk)}

/* ---------- 分类分组 ---------- */
.set-cat{margin-top:22px}
.set-cat:first-of-type{margin-top:18px}
.set-cat-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:2px solid var(--pline);padding-top:11px;margin-bottom:12px}
.set-cat-mark{width:8px;height:8px;flex:none;background:var(--ppk);border:2px solid var(--ink);box-shadow:2px 2px 0 color-mix(in srgb, var(--pp) 30%, transparent)}
.set-cat-h h2{font-size:15px;font-weight:900;letter-spacing:.02em;line-height:1.3;color:var(--pp)}
.set-cat-en{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--pp-55)}
.set-cat-note{margin-left:auto;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--pp-55)}
.set-cat > .set-grid{margin-top:0}

/* ---------- 首页封面 ---------- */
.hf{margin-top:18px;min-width:0}
.hf:first-child{margin-top:0}
.hf-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:2px solid var(--pline-2);padding-bottom:7px;margin-bottom:10px}
.hf-head b{font-size:13px;font-weight:900;letter-spacing:.02em;line-height:1.4;color:var(--pp)}
.hf-head span{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--pp-55);line-height:1.5}
.hf-head .hf-note{margin-left:auto;letter-spacing:.04em}
.hf-head .hf-count{color:var(--ppk-soft);white-space:nowrap}

/* 七页主标签 */
.page-labels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px 12px;margin-bottom:12px}
.page-labels .fld{min-width:0}
.page-labels .fld label{font-size:11px;letter-spacing:.06em;white-space:nowrap}

/* 多行文本 */
.fld textarea{
  display:block;width:100%;padding:9px 11px;min-height:78px;
  background:var(--desk);border:2px solid var(--pline);border-radius:0;
  color:var(--pp);font-family:var(--sans);font-size:13px;font-weight:500;line-height:1.75;letter-spacing:.01em;
  resize:vertical;transition:border-color .15s var(--ease),box-shadow .15s var(--ease);
}
.fld textarea:hover{border-color:var(--pp-55)}
.fld textarea:focus{outline:none;border-color:var(--ppk);box-shadow:3px 3px 0 var(--ppk-deep)}
.fld textarea:disabled{opacity:.5;cursor:not-allowed}
.fld.is-invalid textarea{border-color:var(--ppk);box-shadow:3px 3px 0 var(--ppk-deep)}

/* 页脚 HTML 示例 */
.hint--example{margin-top:2px}
.hint code{font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--pp-70);background:var(--desk);border:2px solid var(--pline-2);padding:1px 5px 2px;border-radius:0;overflow-wrap:anywhere}

/* 行编辑器：数据块 / 联系方式 */
.row-head{display:grid;gap:8px;padding:0 9px 6px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--pp-55)}
.row-head--stat,.row--stat{grid-template-columns:22px minmax(0,1.2fr) minmax(0,1fr) 72px 120px}
.row-head--link,.row--link{grid-template-columns:22px minmax(0,.9fr) minmax(0,1.2fr) minmax(0,1.9fr) 120px}
.row-head--stat span:nth-child(4),.row-head--stat span:nth-child(5),.row-head--link span:nth-child(5){text-align:center}
.row-list{display:flex;flex-direction:column;gap:8px}
.row{display:grid;gap:8px;align-items:end;position:relative;background:var(--desk);border:2px solid var(--pline-2);padding:8px 9px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
.row::before,.row::after{content:"";position:absolute;left:0;right:0;height:3px;background:var(--ppk);opacity:0;pointer-events:none;transition:opacity .1s var(--ease)}
.row::before{top:-6px}
.row::after{bottom:-6px}
.row.is-drop-before::before,.row.is-drop-after::after{opacity:1}
.row.is-dragging{opacity:.45}
.row .fld{margin:0}
.row .fld input{height:36px;font-size:13px}
.row--link input[data-key="icon"]{font-family:var(--mono);font-size:12px;letter-spacing:0}
.row .fld select{display:block;width:100%;height:36px;padding:0 8px;background:var(--desk);border:2px solid var(--pline);border-radius:0;color:var(--pp);font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.01em}
.row .fld select:hover{border-color:var(--pp-55)}
.row .fld select:focus{outline:none;border-color:var(--ppk);box-shadow:3px 3px 0 var(--ppk-deep)}
.row-hint{grid-column:1 / -1;margin:0;font-family:var(--mono);font-size:12px;letter-spacing:.03em;line-height:1.6;color:var(--pp-55)}
.row-check{display:flex;align-items:center;justify-content:center;gap:6px;height:36px;border:2px solid transparent;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--pp-70);cursor:pointer;white-space:nowrap}
.row-check input{width:14px;height:14px;margin:0;accent-color:var(--ppk);flex:none}
.row-actions{display:flex;align-items:center;gap:6px;height:36px}
body.is-row-dragging{user-select:none;cursor:grabbing}
.row-grip{display:inline-flex;align-items:center;justify-content:center;width:22px;height:36px;color:var(--pp-55);cursor:grab;user-select:none;touch-action:none}
.row-grip::before{content:"";width:8px;height:14px;background-image:radial-gradient(circle,currentColor 1.2px,transparent 1.4px);background-size:4px 5px;background-position:0 0;opacity:.7;transition:opacity .12s var(--ease)}
.row-grip:hover{color:var(--ink)}
.row-grip:hover::before{opacity:1}
.row.is-dragging .row-grip{cursor:grabbing}
.row-move{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:36px;padding:0;border:2px solid var(--pline);background:transparent;color:var(--pp-70);font-family:var(--mono);font-size:13px;line-height:1;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease)}
.row-move:hover:not(:disabled){background:var(--desk);color:var(--ink);border-color:var(--ink)}
.row-move:disabled{opacity:.3;cursor:not-allowed}
.row-move:focus-visible{outline:2px solid var(--ppk);outline-offset:2px}
.row-del{height:36px;padding:0 9px;border:2px solid var(--pline);background:transparent;color:var(--ppk-soft);font-family:var(--mono);font-size:11px;letter-spacing:.05em;line-height:1.5;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease)}
.row-del:hover{background:var(--ppk-deep);color:var(--pp);border-color:var(--ink)}
.row-del:focus-visible{outline:2px solid var(--ppk);outline-offset:2px}
.row.is-invalid{border-color:var(--ppk);box-shadow:3px 3px 0 var(--ppk-deep)}
.row-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:9px}
.row-add{height:32px;padding:0 11px;border:2px solid var(--pline);background:transparent;color:var(--pp-70);font-family:var(--mono);font-size:11px;letter-spacing:.05em;line-height:1.5;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease)}
.row-add:hover:not(:disabled){background:var(--ppk);color:var(--ink);border-color:var(--ink)}
.row-add:disabled{opacity:.4;cursor:not-allowed}
.row-add:focus-visible{outline:2px solid var(--ppk);outline-offset:2px}

@media (max-width:1100px){
  .set-grid{grid-template-columns:1fr}
  .sp--wide{grid-column:auto}
}
@media (max-width:760px){
  .token-row{grid-template-columns:1fr}
  .token-row .btn{width:100%}
  .color-row{flex-wrap:wrap}
  .fld .color-text{flex:1 1 100%;order:3}
  .set-cat-note{display:none}
  .hf-head .hf-note{display:none}
  .page-labels{grid-template-columns:repeat(2,minmax(0,1fr))}
  .row-head{display:none}
  .row--stat,.row--link{grid-template-columns:1fr}
  .row-grip{display:none}
  .row .fld label.sr-only{
    display:block;position:static;width:auto;height:auto;margin:0 0 4px;padding:0;
    overflow:visible;clip:auto;white-space:normal;
    font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--pp-55);
  }
  .row-check{justify-content:flex-start;height:auto;padding:2px 0}
  .row-actions{justify-content:flex-start}
  .row-actions .row-del{width:auto;flex:1}
}
@media (max-width:600px){
  .fields{grid-template-columns:1fr}
  .danger-row{flex-wrap:wrap;gap:10px}
  .danger-btn{width:100%}
  .ph-note{text-align:left}
  .seg{flex-direction:column}
}
