/* ====== 85 宿舍住宿费 · 原木棕 + 米白 + 天蓝 ====== */
.dfc{
  --bg:#f7f2e9; --bg2:#efe7d9; --card:#fff; --card2:#fbf7ef;
  --ink:#1b1610; --sub:#4a4034; --faint:#8a7d6b; --line:#e0d6c4; --line2:#eee6d8;
  --wood:#8a6544; --wood-d:#5f452e; --wood-soft:#f0e3d3;
  --sky:#3d7fa6; --sky-soft:#e0eef6; --red:#b0512e;
  --shadow-sm:0 1px 2px rgba(27,22,16,.05),0 7px 18px rgba(27,22,16,.05);
  --shadow:0 2px 6px rgba(27,22,16,.07),0 22px 48px rgba(27,22,16,.10);
  --r:20px; --r-sm:13px;
  background:
    radial-gradient(700px 320px at 100% -6%, rgba(138,101,68,.12), transparent 62%),
    radial-gradient(520px 260px at -6% 20%, rgba(61,127,166,.10), transparent 66%),
    repeating-linear-gradient(90deg,rgba(138,101,68,.04) 0 1px,transparent 1px 30px),
    var(--bg);
}
:root[data-theme="dark"] .dfc{
  --bg:#12100c; --bg2:#191611; --card:#211d17; --card2:#27221b;
  --ink:#f0e9df; --sub:#b8ab97; --faint:#7f7361; --line:#33291f; --line2:#282218;
  --wood:#c99a6c; --wood-d:#e0b98f; --wood-soft:rgba(201,154,108,.12);
  --sky:#7cb1d0; --sky-soft:rgba(124,177,208,.12);
}
.dfc .tsk-h1 b{color:var(--wood-d);}

.dfc-hero{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:32px;padding:30px 0 24px;align-items:start;}

/* ---- 价目牌 ---- */
.dfc-board{
  position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:20px 22px 22px;box-shadow:var(--shadow);
}
.dfc-board::before{
  content:"";position:absolute;inset:0 0 auto 0;height:6px;border-radius:var(--r) var(--r) 0 0;
  background:linear-gradient(90deg,var(--wood),#c69a70 60%,var(--sky));
}
.dfc-board-head{display:flex;justify-content:space-between;align-items:center;padding:5px 0 10px;border-bottom:1px dashed var(--line);margin-bottom:11px;}
.dfc-board-head span{font-size:12px;font-weight:800;letter-spacing:.26em;color:var(--wood-d);}
.dfc-board-head em{font-style:normal;font-size:9px;font-weight:800;letter-spacing:.22em;color:var(--faint);}

.dfc-beds{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;margin-bottom:12px;}
.dfc-beds i{
  height:22px;border-radius:5px;background:var(--line2);border:1px solid var(--line);
  position:relative;transition:background .25s,border-color .25s;
}
.dfc-beds i::after{content:"";position:absolute;left:4px;right:4px;top:3px;height:6px;border-radius:2px;background:rgba(0,0,0,.06);}
.dfc-beds i.on{background:linear-gradient(180deg,#a77c55,var(--wood));border-color:var(--wood-d);}
.dfc-beds i.on::after{background:rgba(255,255,255,.5);}

.dfc-board label{display:block;font-size:11.5px;font-weight:700;color:var(--faint);margin-top:9px;}
.dfc-board select,.dfc-board input{
  width:100%;height:36px;margin-top:4px;padding:0 10px;border:1.5px solid var(--line);border-radius:8px;
  background:var(--card2);color:var(--ink);font:700 13.5px/34px var(--num,"Bahnschrift",monospace);outline:none;
}
.dfc-board select{font-family:inherit;font-weight:700;}
.dfc-board input:focus,.dfc-board select:focus{border-color:var(--wood);box-shadow:0 0 0 3px var(--wood-soft);}
.dfc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;}
.dfc-board .tsk-btn-main{background:linear-gradient(180deg,#9c7350,var(--wood-d));border:0;box-shadow:0 10px 22px rgba(138,101,68,.28);}
.dfc-board-foot{margin-top:10px;font-size:10.5px;color:var(--faint);text-align:center;}

/* ---- 结果 ---- */
.dfc-result{margin-top:6px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:22px 24px;}
.dfc-res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(152px,1fr));gap:11px;}
.dfc-res-card{background:var(--card2);border:1px solid var(--line2);border-radius:var(--r-sm);padding:15px 17px;}
.dfc-res-card b{display:block;font:800 24px/1.15 var(--num,"Bahnschrift",monospace);color:var(--ink);font-variant-numeric:tabular-nums;}
.dfc-res-card span{display:block;font-size:11.5px;color:var(--faint);font-weight:700;margin-top:5px;}
.dfc-res-card i{display:block;font-style:normal;font-size:10.5px;color:var(--sub);margin-top:4px;line-height:1.5;}
.dfc-res-card.dfc-main{background:var(--wood-soft);border-color:rgba(138,101,68,.32);}
.dfc-res-card.dfc-main b{color:var(--wood-d);}

.dfc-cmp{margin-top:16px;display:grid;gap:8px;}
.dfc-cmp-row{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:center;}
.dfc-cmp-row span{font-size:11px;font-weight:800;color:var(--faint);}
.dfc-cmp-bar{height:14px;border-radius:99px;background:var(--line2);overflow:hidden;}
.dfc-cmp-bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#b9ad9a,#95856f);transition:width .45s ease;}
.dfc-cmp-bar.dfc-now i{background:linear-gradient(90deg,var(--wood),#c99a6c);}

.dfc-alert{margin-top:14px;padding:12px 15px;border-radius:10px;background:var(--sky-soft);border:1px solid rgba(61,127,166,.26);font-size:12.5px;line-height:1.8;color:var(--sub);}
.dfc-alert b{color:var(--sky);}
.dfc-alert.is-warn{background:rgba(176,81,46,.09);border-color:rgba(176,81,46,.3);}
.dfc-alert.is-warn b{color:var(--red);}

/* ---- 表格 ---- */
.dfc-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.dfc-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;box-shadow:var(--shadow-sm);min-width:620px;}
.dfc-table th,.dfc-table td{padding:12px 15px;text-align:left;font-size:12.5px;line-height:1.7;border-bottom:1px solid var(--line2);}
.dfc-table tr:last-child td{border-bottom:0;}
.dfc-table thead th{background:var(--card2);font-weight:800;color:var(--wood-d);font-size:12px;}
.dfc-table tbody tr:nth-child(even){background:var(--card2);}
.dfc-strong{font-weight:800;color:var(--ink);white-space:nowrap;}
.dfc-num{font:800 12.5px/1.5 var(--num,"Bahnschrift",monospace);color:var(--sky);white-space:nowrap;}

/* ---- 分账 ---- */
.dfc-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;}
.dfc-split-item{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--wood);border-radius:var(--r-sm);padding:14px 17px;box-shadow:var(--shadow-sm);}
.dfc-split-item b{font-size:12.5px;font-weight:800;color:var(--wood-d);}
.dfc-split-item p{margin:5px 0 0;font-size:12px;line-height:1.75;color:var(--sub);}

@media (max-width:900px){
  .dfc-hero{grid-template-columns:1fr;gap:22px;}
}
@media (max-width:520px){
  .dfc-grid2{grid-template-columns:1fr;}
  .dfc-beds{grid-template-columns:repeat(4,1fr);}
}
