/* ============================================================
   今天吃啥 · Neo-Brutalism（单焦点收敛版）
   ------------------------------------------------------------
   设计原则：
   1) 单一视觉焦点 —— 全站只有「首选卡片」是橙色实心块，
      其余一律黑/白/奶油中性层级；同屏不出现第二个橙色面积块。
   2) 设计语言统一 —— 只用一套强调手段：橙色填充 / 黑描边 / 硬阴影。
      语义不用杂色：正向=橙，警示=黑底反白，中性=灰。
   色板：橙 #FF5A1F（唯一强调色）、黑 #111、白 #FFF、奶油 #FFF4E6
   ============================================================ */
:root{
  --orange:#FF5A1F;        /* 唯一强调色 */
  --orange-d:#E84400;
  --orange-l:#FFE3D3;
  --ink:#111111;           /* 线条 / 操作 / 警示 */
  --ink2:#3D3D3D;          /* 正文 */
  --ink3:#8A8A8A;          /* 次要信息 */
  --paper:#FFF4E6;         /* 底色 */
  --white:#FFFFFF;
  --bd:4px;                /* 主容器粗黑线 */
  --bd2:3px;               /* 次级元素 */
  --bd3:2.5px;             /* 小元素 */
  --sh:6px 6px 0 var(--ink);
  --sh-sm:4px 4px 0 var(--ink);
  --sh-xs:3px 3px 0 var(--ink);
  --r:18px;                /* 卡片 / 弹窗 */
  --r2:12px;               /* 按钮 / 块 */
  --r3:8px;                /* 小元素 */
}
*{box-sizing:border-box;margin:0;padding:0}

/* hidden 属性必须能压过一切 display，否则弹窗遮罩会盖住页面导致点不动 */
[hidden]{display:none!important}

html{-webkit-text-size-adjust:100%}
body{
  font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB",system-ui,sans-serif;
  color:var(--ink);line-height:1.55;font-weight:700;
  background-color:var(--paper);
  /* 底纹压到极淡，只做质感不抢注意力 */
  background-image:
    linear-gradient(rgba(17,17,17,.032) 1px,transparent 1px),
    linear-gradient(90deg,rgba(17,17,17,.032) 1px,transparent 1px);
  background-size:26px 26px;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
h1,h2,h3,h4{line-height:1.25;font-weight:900;letter-spacing:-.5px}
::selection{background:var(--orange);color:var(--white)}

/* ============================================================
   顶部：白底，只有 logo 是橙色小方块（面积受控，不构成主焦点）
   ============================================================ */
.topbar{
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  padding:16px 28px;background:var(--white);
  border-bottom:var(--bd) solid var(--ink);
}
.brand{display:flex;align-items:center;gap:13px}
.logo{
  font-size:27px;background:var(--orange);border:var(--bd2) solid var(--ink);
  border-radius:14px;padding:5px 10px;box-shadow:var(--sh-sm);
  display:grid;place-items:center;line-height:1;
}
.brand h1{font-size:25px;color:var(--ink)}
.sub{font-size:12px;color:var(--ink2);font-weight:800;margin-top:2px}
.top-actions{display:flex;gap:10px;flex-wrap:wrap}

/* ============================================================
   按钮：操作层统一用「黑」，把橙色留给内容焦点
   ============================================================ */
.btn{
  padding:10px 18px;border-radius:var(--r2);font-size:14px;font-weight:900;
  border:var(--bd2) solid var(--ink);background:var(--white);color:var(--ink);
  box-shadow:var(--sh-sm);transition:transform .08s,box-shadow .08s,background .12s;white-space:nowrap;
}
.btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}
.btn:active{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink)!important}
.btn.solid{background:var(--ink);color:var(--white)}
.btn.solid:hover{background:var(--orange);color:var(--white)}
.btn.ghost{background:var(--white)}
.btn.ghost:hover{background:var(--orange-l)}
.btn.tiny{padding:6px 12px;font-size:12.5px;border-radius:var(--r3);border-width:var(--bd3);box-shadow:var(--sh-xs)}
.btn.small{padding:8px 14px;font-size:13px}
.btn.danger{background:var(--ink);color:var(--white)}
.btn.danger:hover{background:var(--orange)}
.btn:disabled{opacity:.3;cursor:not-allowed;transform:none!important;box-shadow:var(--sh-sm)!important}

/* ---------- 画像条：中性，不抢焦点 ---------- */
.profile-bar{
  display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  margin:18px 28px 0;padding:13px 18px;background:var(--white);
  border:var(--bd) solid var(--ink);border-radius:var(--r);box-shadow:var(--sh-sm);
}
.pb-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pb-label{
  font-size:12px;font-weight:900;color:var(--white);background:var(--ink);
  padding:4px 10px;border-radius:var(--r3);letter-spacing:1px;
}
.pb-right{display:flex;align-items:center;gap:10px}
.pb-time{font-size:12px;color:var(--ink3);font-weight:800}
.badges{display:flex;gap:8px;flex-wrap:wrap}
/* 徽章统一白底黑边；仅「当前状态」一项用橙，作为画像区的唯一锚点 */
.badge{
  padding:5px 12px;border-radius:999px;font-size:12.5px;font-weight:900;
  background:var(--white);color:var(--ink);border:var(--bd3) solid var(--ink);
}
.badge.primary{background:var(--orange);color:var(--white)}

/* ---------- 提醒横幅：需要用户行动时才用橙，可关闭 ---------- */
.notice{
  display:flex;align-items:center;gap:12px;margin:14px 28px 0;flex-wrap:wrap;
  padding:12px 16px;background:var(--orange);color:var(--white);
  border:var(--bd) solid var(--ink);border-radius:14px;box-shadow:var(--sh-sm);
  font-size:13.5px;font-weight:900;
}
.notice .btn.tiny{background:var(--white);color:var(--ink)}
.notice .close{margin-left:auto;font-size:22px;font-weight:900;line-height:1;color:var(--white)}

.wrap{max-width:1120px;margin:0 auto;padding:22px 28px 44px}

/* ---------- 筛选条：中性容器 ---------- */
.filters{
  display:flex;gap:22px;align-items:flex-end;flex-wrap:wrap;
  padding:18px 20px;background:var(--white);border:var(--bd) solid var(--ink);
  border-radius:var(--r);box-shadow:var(--sh);margin-bottom:22px;
}
.fgroup{display:flex;flex-direction:column;gap:8px}
.fgroup.grow{flex:1;min-width:180px}
.fgroup label{font-size:12.5px;color:var(--ink2);font-weight:900}
.fgroup label b{background:var(--orange);color:var(--white);padding:1px 7px;border-radius:6px;border:var(--bd3) solid var(--ink)}
.segmented{display:flex;background:var(--paper);border:var(--bd2) solid var(--ink);border-radius:var(--r2);padding:3px;gap:3px}
.segmented button{padding:7px 15px;border-radius:var(--r3);font-size:13px;font-weight:900;color:var(--ink2);transition:.1s}
.segmented button:hover{background:var(--orange-l)}
.segmented button.on{background:var(--orange);color:var(--white);box-shadow:2px 2px 0 var(--ink)}
.segmented.sm button{padding:5px 12px;font-size:12.5px}
input[type=range]{
  -webkit-appearance:none;height:14px;border-radius:8px;background:var(--white);
  border:var(--bd2) solid var(--ink);outline:none;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;width:24px;height:24px;border-radius:6px;
  background:var(--orange);border:var(--bd2) solid var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);
}

/* ---------- 结果标题 ---------- */
.result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px;flex-wrap:wrap}
.result-head h2{
  font-size:21px;background:var(--white);border:var(--bd2) solid var(--ink);
  padding:6px 14px;border-radius:var(--r2);box-shadow:var(--sh-sm);
}
.rh-actions{display:flex;gap:10px;flex-wrap:wrap}

/* ============================================================
   卡片区：首选卡 = 全站唯一橙色实心块（视觉焦点）
   其余卡降为白底，只靠边框与阴影存在
   ============================================================ */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.card{
  background:var(--white);border:var(--bd) solid var(--ink);border-radius:var(--r);
  padding:18px;box-shadow:var(--sh);position:relative;overflow:hidden;transition:.12s;
  animation:pop .34s cubic-bezier(.2,.9,.3,1.2) backwards;
}
.card:hover{transform:translate(-2px,-2px);box-shadow:9px 9px 0 var(--ink);z-index:1}

/* 焦点卡：橙色实心 + 更粗描边 + 宽屏占两列，体型本身就是层级 */
.card.best{
  background:var(--orange);border-width:5px;box-shadow:8px 8px 0 var(--ink);
}
@media(min-width:960px){ .card.best{grid-column:span 2} }
.card.best:hover{box-shadow:11px 11px 0 var(--ink)}
.card.best h4{color:var(--white);font-size:23px;text-shadow:2px 2px 0 var(--ink)}
.card.best .shop{color:rgba(255,255,255,.95)}
.card.best .card-ico{background:var(--white)}
.card.best .dim{background:var(--white)}
.card.best .dt{color:var(--ink2)}

.card .pick{
  position:absolute;top:0;right:0;background:var(--ink);color:var(--white);
  font-size:12px;font-weight:900;padding:6px 16px;border-bottom-left-radius:14px;letter-spacing:2px;
}
.card-ico{
  width:54px;height:54px;border:var(--bd2) solid var(--ink);border-radius:14px;
  display:grid;place-items:center;font-size:28px;margin-bottom:12px;
  background:var(--paper);box-shadow:var(--sh-xs);
}
.card h4{font-size:19px;margin-bottom:4px;padding-right:74px}
.card .shop{font-size:12.5px;color:var(--ink3);font-weight:800;margin-bottom:14px}

/* 四维度：统一白/奶油底黑边，不再用多色块 */
.dims{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.dim{border:var(--bd2) solid var(--ink);border-radius:var(--r2);padding:9px 11px;background:var(--paper)}
.dim .dl{font-size:11px;color:var(--ink2);font-weight:900;margin-bottom:1px;letter-spacing:.5px}
.dim .dv{font-size:19px;font-weight:900;letter-spacing:-.5px;color:var(--ink)}
.dim .dv small{font-size:11.5px;font-weight:900;margin-left:2px;color:var(--ink2)}
.dim .dt{font-size:11px;margin-top:1px;font-weight:900}
/* 语义：正向=橙，中性=灰，警示=黑底反白 —— 不引入任何杂色 */
.t-lo,.t-good{color:var(--orange-d)}
.t-md,.t-ok{color:var(--ink3)}
.t-hi,.t-bad{color:var(--white);background:var(--ink);display:inline-block;padding:1px 7px;border-radius:5px}

.meta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.chip{
  font-size:11.5px;padding:4px 10px;border-radius:var(--r3);font-weight:900;
  background:var(--white);border:var(--bd3) solid var(--ink);color:var(--ink);
}
/* 焦点卡（橙底）内的标签一律反白，保持可读且不制造第二处彩色 */
.card.best .chip{background:var(--white);color:var(--ink);border-color:var(--ink)}
.card.best .chip.sp{background:var(--ink);color:var(--white)}
.card.best .chip.fast{background:var(--white)}
.chip.sp{background:var(--ink);color:var(--white)}
.chip.fast{background:var(--orange-l)}
.chip.slow{border-style:dashed}

.why{
  font-size:12.5px;font-weight:800;background:var(--white);color:var(--ink);
  border:var(--bd2) solid var(--ink);border-left-width:8px;border-left-color:var(--orange);
  border-radius:var(--r2);padding:10px 12px;margin-bottom:13px;line-height:1.5;
}
.card.best .why{background:var(--white)}
.card-actions{display:flex;gap:8px}
.card-actions .btn{flex:1;text-align:center}
.btn.picked{background:var(--orange);color:var(--white)}

.mix-line{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:2px dashed rgba(17,17,17,.22);font-size:13.5px}
.mix-line:last-child{border:none}
.mix-line .mt{
  font-size:11px;font-weight:900;background:var(--ink);color:var(--white);
  width:38px;text-align:center;border-radius:6px;padding:2px 0;flex:none;
}
.mix-line .mn{flex:1;font-weight:800}
.mix-line .mp{color:var(--ink3);font-size:12px;font-weight:800}
.card.best .mix-line{border-bottom-color:rgba(255,255,255,.45)}
.card.best .mix-line .mp{color:rgba(255,255,255,.9)}
.mix-sum{display:flex;justify-content:space-between;font-size:12.5px;font-weight:900;
  margin-top:10px;padding-top:10px;border-top:var(--bd2) solid var(--ink)}
.card.best .mix-sum{border-top-color:var(--white)}
.mix-sum b{color:var(--orange-d)}
.card.best .mix-sum b{color:var(--white)}

.tip{text-align:center;font-size:13px;font-weight:800;color:var(--ink3);margin:20px 0 32px}

/* ---------- 榜单：全中性，序号统一黑底，hover 才出现橙 ---------- */
.rank{
  background:var(--white);border:var(--bd) solid var(--ink);border-radius:var(--r);
  padding:18px 20px;margin-bottom:20px;box-shadow:var(--sh);
}
.rank-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:10px;flex-wrap:wrap}
.rank-head h3{
  font-size:17px;background:var(--ink);color:var(--white);padding:5px 14px;
  border:var(--bd2) solid var(--ink);border-radius:10px;box-shadow:var(--sh-xs);
}
.rank-list{display:flex;flex-direction:column;gap:9px}
.rrow{
  display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r2);
  border:var(--bd2) solid var(--ink);background:var(--paper);font-size:13.5px;font-weight:800;transition:.1s;
}
.rrow:hover{background:var(--orange-l);transform:translateX(3px)}
.rrow .no{
  width:28px;height:28px;border-radius:var(--r3);background:var(--ink);color:var(--white);
  display:grid;place-items:center;font-size:13px;font-weight:900;flex:none;
}
.rrow:nth-child(1) .no{background:var(--ink);box-shadow:var(--sh-xs)}
.rrow .rn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rrow .rs{font-size:11.5px;color:var(--ink3);margin-left:6px;font-weight:800}
.rrow .rv{
  font-weight:900;color:var(--ink);font-size:13px;background:var(--white);
  border:var(--bd3) solid var(--ink);border-radius:7px;padding:2px 9px;white-space:nowrap;
}

.hist-list{display:flex;flex-wrap:wrap;gap:8px}
.hchip{
  font-size:12.5px;font-weight:800;padding:6px 12px;border-radius:9px;
  background:var(--white);border:var(--bd3) solid var(--ink);box-shadow:var(--sh-xs);
}
.hchip span{color:var(--ink3);font-size:11px;margin-left:6px}

.foot{text-align:center;font-size:12px;font-weight:800;color:var(--ink3);padding:26px 0 46px}

/* ---------- 弹窗：打开时它本身就是唯一焦点，内部只用橙做选中态 ---------- */
.modal{
  position:fixed;inset:0;background:rgba(17,17,17,.66);z-index:50;padding:20px;
  display:grid;place-items:center;overflow:auto;
}
.modal-box{
  background:var(--white);border:5px solid var(--ink);border-radius:22px;width:100%;max-width:540px;
  max-height:88vh;overflow:auto;box-shadow:10px 10px 0 var(--orange);
  animation:pop .3s cubic-bezier(.2,.9,.3,1.2);
}
.modal-box.wide{max-width:980px;box-shadow:10px 10px 0 var(--ink)}
.quiz-progress{height:10px;background:var(--paper);border-bottom:var(--bd) solid var(--ink)}
.quiz-progress i{display:block;height:100%;background:var(--orange);width:20%;transition:.3s}
#quizBody{padding:28px 30px}
.quiz-foot{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:16px 30px 26px;border-top:var(--bd) solid var(--ink);background:var(--paper);
}
.qstep{font-size:12px;color:var(--ink3);font-weight:900}

.q-title{font-size:23px;margin-bottom:6px}
.q-desc{font-size:13px;color:var(--ink3);font-weight:800;margin-bottom:20px}
.opts{display:flex;flex-direction:column;gap:11px}
.opt{
  display:flex;align-items:center;gap:13px;padding:14px 16px;text-align:left;width:100%;
  border:var(--bd2) solid var(--ink);border-radius:14px;background:var(--white);
  box-shadow:var(--sh-sm);transition:.1s;
}
.opt:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink);background:var(--orange-l)}
.opt.on{background:var(--orange);color:var(--white);box-shadow:5px 5px 0 var(--ink)}
.opt.on .od{color:rgba(255,255,255,.92)}
.opt .oi{
  font-size:22px;background:var(--paper);border:var(--bd2) solid var(--ink);border-radius:10px;
  width:44px;height:44px;display:grid;place-items:center;flex:none;
}
.opt.on .oi{background:var(--white)}
.opt .ot{font-weight:900;font-size:15.5px}
.opt .od{font-size:12px;color:var(--ink3);margin-top:1px;font-weight:700}
.opt-box{display:flex;flex-wrap:wrap;gap:10px}
.pill{
  padding:10px 17px;border:var(--bd2) solid var(--ink);border-radius:999px;font-size:13.5px;font-weight:900;
  background:var(--white);box-shadow:var(--sh-xs);transition:.1s;
}
.pill:hover{background:var(--orange-l)}
.pill.on{background:var(--orange);color:var(--white);box-shadow:4px 4px 0 var(--ink)}

/* ---------- 清单管理 ---------- */
.m-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px 12px;flex-wrap:wrap}
.m-head h3{
  font-size:19px;background:var(--orange);color:var(--white);padding:5px 14px;
  border:var(--bd2) solid var(--ink);border-radius:10px;box-shadow:var(--sh-xs);
}
.m-tools{display:flex;gap:8px;flex-wrap:wrap}
.m-desc{font-size:12.5px;color:var(--ink3);font-weight:800;padding:0 24px 12px}
.table-wrap{max-height:56vh;overflow:auto;padding:0 24px 8px}
table{width:100%;border-collapse:collapse;font-size:12.5px}
th,td{padding:7px 8px;border-bottom:var(--bd3) solid var(--ink);text-align:left}
th{position:sticky;top:0;background:var(--ink);color:var(--white);font-size:11.5px;font-weight:900;z-index:2}
td input{
  width:100%;border:var(--bd3) solid var(--ink);background:var(--white);border-radius:var(--r3);
  padding:5px 8px;font-size:12.5px;font-family:inherit;color:var(--ink);font-weight:700;
}
td input:focus{outline:none;background:var(--orange-l)}
td .del{
  color:var(--white);background:var(--ink);border:var(--bd3) solid var(--ink);
  font-weight:900;font-size:13px;padding:2px 9px;border-radius:7px;
}
.import-box{
  width:calc(100% - 48px);margin:0 24px 12px;height:130px;border:var(--bd2) solid var(--ink);
  border-radius:var(--r2);padding:10px;font-family:monospace;font-size:12px;resize:vertical;
}
.m-foot{padding:8px 24px 22px;display:flex;gap:8px;justify-content:flex-end}

@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}

@media(max-width:680px){
  .topbar{padding:14px 16px}
  .brand h1{font-size:21px}
  .wrap{padding:16px 16px 30px}
  .profile-bar,.notice{margin-left:16px;margin-right:16px}
  .filters{gap:14px;padding:15px}
  .fgroup.grow{min-width:100%}
  #quizBody{padding:22px 20px}
  .quiz-foot{padding:14px 20px 20px}
  .table-wrap{padding:0 12px}
  .result-head h2{font-size:18px}
  .card.best h4{font-size:20px}
}
