/* Ray 後台：手機優先。配色沿用站上黑金，但更安靜——這是工作介面不是行銷頁。 */
:root{
  --b:#15120c;--b2:#211b12;--b3:#2b2417;--l:#4a3b20;
  --g:#f0c65e;--g2:#ffe9a8;--br:#a8895a;
  --i:#f6f1e6;--su:#f6f1e6cc;--f:#f6f1e68c;
  --ok:#6fcf97;--bad:#e05a4e;
  --sf:"Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;
  --r:12px;--e:cubic-bezier(.22,.8,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{overflow-x:clip}
body{font-family:var(--sf);background:var(--b);color:var(--i);font-size:16px;line-height:1.7;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
  background-image:radial-gradient(ellipse 120% 60% at 50% -10%,#4a381433,#0000 60%)}
a{color:var(--g)}
img{max-width:100%;height:auto;display:block}

.wrap{max-width:940px;margin:0 auto;padding:0 16px}
.narrow{max-width:420px}

/* ── 頂欄 ── */
.top{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--l);
  background:linear-gradient(180deg,#2a2013,var(--b));position:sticky;top:0;z-index:20}
.top .brand{font-weight:900;letter-spacing:.04em;color:var(--g2);font-size:16px}
.top .sp{margin-left:auto}
.top .who{font-size:13px;color:var(--f)}

/* ── 卡片與表單 ── */
.card{background:linear-gradient(180deg,var(--b2),var(--b) 92%);border:1px solid var(--l);
  border-radius:var(--r);padding:20px 18px;margin:16px 0}
h1{font:900 22px/1.35 var(--sf);color:#fff;letter-spacing:.02em}
h2{font:900 17px/1.4 var(--sf);color:#fff;margin-bottom:10px}
.lead{color:var(--su);font-size:14.5px;margin-top:6px}
label{display:block;font-size:13.5px;color:var(--br);margin:14px 0 6px;font-weight:700}
input,textarea,select{width:100%;background:#0f0c07;border:1px solid var(--l);color:var(--i);
  border-radius:10px;padding:13px 14px;font:inherit;font-size:16px}      /* 16px 才不會在 iOS 自動放大 */
input:focus,textarea:focus,select:focus{outline:0;border-color:var(--g);box-shadow:0 0 0 3px #f0c65e26}
textarea{min-height:120px;resize:vertical;line-height:1.75}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  background:linear-gradient(180deg,#fff6dc,#ffe9a8 28%,var(--g) 60%,#c9973a);
  color:#2a1e08;font:900 16px/1.1 var(--sf);letter-spacing:.04em;border:0;border-radius:99px;
  padding:15px 24px;cursor:pointer;margin-top:18px}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn.ghost{background:none;color:var(--g2);border:1px solid var(--g);font-weight:800}
.btn.sm{width:auto;padding:9px 16px;font-size:14px;margin-top:0}

/* ── 提示 ── */
.msg{margin-top:14px;padding:11px 13px;border-radius:10px;font-size:14px;display:none}
.msg.show{display:block;animation:fade .3s var(--e) both}
.msg.err{background:#2d100d;border:1px solid #e05a4e59;color:#ffb4ab}
.msg.ok{background:#0f2a1c;border:1px solid #6fcf9759;color:#a7e8c4}
@keyframes fade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ── 規則檢查（打字當下就提示）── */
.rules{margin-top:12px;font-size:13.5px}
.rules li{list-style:none;display:flex;gap:8px;align-items:flex-start;padding:3px 0;color:var(--f)}
.rules li .dot{width:8px;height:8px;border-radius:50%;background:var(--l);margin-top:8px;flex:none}
.rules li.pass{color:var(--su)} .rules li.pass .dot{background:var(--ok)}
.rules li.fail{color:#ffb4ab} .rules li.fail .dot{background:var(--bad)}

/* ── 列表 ── */
.row{display:flex;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--l)}
.row:last-child{border-bottom:0}
.row .t{flex:1;min-width:0}
.row .t b{display:block;color:#fff;font-size:15px;font-weight:800;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .t span{font-size:12.5px;color:var(--f)}
.tag{font-size:11.5px;padding:2px 9px;border-radius:99px;border:1px solid var(--l);color:var(--br);flex:none}
.tag.pub{border-color:#6fcf9759;color:var(--ok)}

/* ── 實戰紀錄欄位 ── */
/* minmax(0,1fr) 不是 1fr：格線的 1fr 最小值是 auto，內容一長就把版面撐破。 */
.rec{border:1px solid var(--l);border-radius:10px;padding:4px 14px 16px;margin-top:16px}
.rec legend{font-size:13px;color:var(--br);font-weight:700;padding:0 6px}
.recgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:0 14px}
.recgrid>span{min-width:0}
@media(min-width:560px){.recgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ── 抽獎 ── */
h3{font:800 15px/1.4 var(--sf);color:var(--g2);margin:22px 0 8px}
.note{font-size:13.5px;color:var(--f);margin-bottom:6px}
.wgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-top:10px}
@media(min-width:560px){.wgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.wcell{position:relative;min-width:0}
.wcell label{margin:0 0 6px}
.wcell input{padding-right:34px}
.wcell em{position:absolute;right:12px;bottom:13px;font-style:normal;color:var(--f);font-size:14px}
.sum{align-self:center;font-size:13.5px;font-weight:700}
.sum.ok{color:var(--ok)} .sum.bad{color:#ffb4ab}
.ogrid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:10px}
.ogrid>*{min-width:0}
.ogrid .btn{margin-top:0}
@media(min-width:720px){.ogrid{grid-template-columns:minmax(0,1.4fr) minmax(0,.7fr) minmax(0,1.4fr) auto}}

.empty{color:var(--f);font-size:14px;padding:18px 0;text-align:center}
.foot{color:var(--f);font-size:12px;text-align:center;padding:24px 0}
@media(min-width:720px){ .btn{width:auto} .btn.full{width:100%} }

/* ── 封面裁切預覽 ── */
.cropwrap{margin-top:12px}
.cropwrap canvas{width:100%;max-width:420px;height:auto;border-radius:10px;border:1px solid var(--l);display:block}
.note.bad{color:#ffb4ab}
input[type=file]{padding:10px 12px;font-size:14px}
input[type=file]::file-selector-button{background:none;border:1px solid var(--g);color:var(--g2);
  border-radius:99px;padding:7px 14px;font:800 13px/1 var(--sf);margin-right:12px;cursor:pointer}

/* ── 插入圖片／影片 ── */
.mediabar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0 4px}
.mediabar .note{margin:0}
