:root{
  --nen:#f6efe2; --the:#fffaf0; --vien:#e6d6b4; --chu:#3b2a10; --phu:#7a6440;
  --vang:#b07c22; --vang-dam:#8a5a12; --vang-nhat:#f3e3c0;
  --o:#fffdf7; --bong:0 1px 2px rgba(90,60,12,.06),0 6px 24px rgba(90,60,12,.08);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --nen:#1b1610; --the:#251e15; --vien:#3d3222; --chu:#f2e6cf; --phu:#b9a580;
    --vang:#d9a94a; --vang-dam:#e8c27a; --vang-nhat:#3a2e1c;
    --o:#1f1912; --bong:0 1px 2px rgba(0,0,0,.3),0 6px 24px rgba(0,0,0,.3);
  }
}
:root[data-theme="dark"]{
  --nen:#1b1610; --the:#251e15; --vien:#3d3222; --chu:#f2e6cf; --phu:#b9a580;
  --vang:#d9a94a; --vang-dam:#e8c27a; --vang-nhat:#3a2e1c;
  --o:#1f1912; --bong:0 1px 2px rgba(0,0,0,.3),0 6px 24px rgba(0,0,0,.3);
}
*{box-sizing:border-box}
body{margin:0;background:var(--nen);color:var(--chu);font:15px/1.5 "Be Vietnam Pro",system-ui,sans-serif}
.khung{max-width:1240px;margin:0 auto;padding:24px 16px 48px}
header{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.dau{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#dcb35e,#a8771f);display:grid;place-items:center;color:#fff;font:700 20px Lora,serif;flex:none}
h1{font:700 22px/1.2 Lora,serif;margin:0}
.mo-ta{margin:2px 0 0;color:var(--phu);font-size:14px}

/* thanh chọn mẫu */
.tab{display:flex;gap:6px;flex-wrap:nowrap;background:var(--the);border:1px solid var(--vien);border-radius:14px;padding:5px;margin-bottom:18px;box-shadow:var(--bong)}
.tab button{flex:1;min-width:0;border:none;background:transparent;border-radius:10px;padding:10px 6px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--phu)}
.tab button:hover{background:var(--vang-nhat);color:var(--chu)}
.tab button.chon{background:linear-gradient(135deg,#c99a3e,#a8771f);color:#fff;box-shadow:0 2px 8px rgba(168,119,31,.35)}

.luoi{display:grid;grid-template-columns:minmax(0,410px) minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:860px){.luoi{grid-template-columns:minmax(0,1fr)}.xem{position:static!important}}
.cot-trai{display:flex;flex-direction:column;gap:16px}
.the{background:var(--the);border:1px solid var(--vien);border-radius:16px;box-shadow:var(--bong);padding:18px}
.tieu-muc{font:700 15px Lora,serif;color:var(--vang-dam);margin:-2px 0 12px;display:flex;align-items:center;gap:8px}
.tieu-muc::after{content:"";flex:1;height:1px;background:var(--vien)}
.truong{margin-bottom:14px}
.truong:last-child{margin-bottom:0}
label{display:block;font-weight:600;font-size:13px;margin-bottom:6px}
.goi-y{font-weight:400;color:var(--phu);font-size:12px}
input[type=text],textarea,select{width:100%;font:inherit;font-size:14px;color:var(--chu);background:var(--o);border:1px solid var(--vien);border-radius:10px;padding:9px 11px;outline:none}
textarea{resize:vertical;min-height:64px;line-height:1.45}
textarea.cao{min-height:120px}
input:focus,textarea:focus,select:focus{border-color:var(--vang);box-shadow:0 0 0 3px color-mix(in srgb,var(--vang) 22%,transparent)}
.hang{display:flex;gap:10px}
.hang>*{flex:1;min-width:0}
.nhom-chon{display:flex;gap:6px;flex-wrap:nowrap}
.nhom-chon button{flex:1;min-width:0;white-space:nowrap;padding:9px 4px;font-size:13px}
button{font:inherit;font-weight:600;font-size:14px;border-radius:10px;padding:9px 12px;cursor:pointer;border:1px solid var(--vien);background:var(--o);color:var(--chu);transition:border-color .15s,background .15s,filter .15s}
button:hover{border-color:var(--vang)}
button.chon{background:var(--vang-nhat);border-color:var(--vang);color:var(--vang-dam)}
button.chinh{background:linear-gradient(135deg,#c99a3e,#a8771f);border:none;color:#fff}
button.chinh:hover{filter:brightness(1.06)}
button:disabled{opacity:.55;cursor:default}
.nhom-nut{display:flex;gap:8px;flex-wrap:nowrap}
.nhom-nut button{flex:1;min-width:0;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.nhom-nut+.nhom-nut{margin-top:8px}
.tep{display:flex;align-items:center;gap:10px}
.tep button{flex:none}
.tep small{color:var(--phu);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.xem{display:flex;flex-direction:column;gap:14px;position:sticky;top:16px}
.san{display:grid;place-items:center;background:repeating-conic-gradient(var(--vang-nhat) 0 25%,transparent 0 50%) 0 0/18px 18px;border-radius:12px;padding:14px;min-height:300px}
.san canvas,.san video{max-width:100%;max-height:70vh;border-radius:6px;box-shadow:0 10px 40px rgba(60,40,8,.25);display:block}
.vid-wrap{display:none;margin-top:12px}
.trang-thai{font-size:13px;color:var(--phu);min-height:20px;display:flex;align-items:center;gap:8px;margin-top:10px}
.quay{width:14px;height:14px;border:2px solid var(--vien);border-top-color:var(--vang);border-radius:50%;animation:q .8s linear infinite;flex:none}
@keyframes q{to{transform:rotate(360deg)}}
.huong-dan{font-size:13px;color:var(--phu)}
.huong-dan b{color:var(--chu)}
.huong-dan ol{margin:6px 0 0;padding-left:18px}
.huong-dan code{background:var(--vang-nhat);color:var(--vang-dam);padding:1px 5px;border-radius:5px;font-size:12px}
.chuyen{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;margin:0;cursor:pointer;white-space:nowrap}
.chuyen input{accent-color:var(--vang);width:16px;height:16px;margin:0}
.mau-san{display:flex;gap:6px;flex-wrap:nowrap;margin-bottom:10px}
.mau-san button{flex:1;min-width:0;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;font-weight:600;white-space:nowrap}
.mau-san i{display:block;width:100%;max-width:46px;height:18px;border-radius:6px;border:1px solid rgba(0,0,0,.12)}
.mau-tuy{display:flex;gap:6px;flex-wrap:nowrap}
.mau-tuy label{flex:1;min-width:0;margin:0;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10.5px;white-space:nowrap;letter-spacing:-.1px;font-weight:600;color:var(--phu);cursor:pointer}
.mau-tuy input[type=color]{width:100%;height:32px;padding:2px;border:1px solid var(--vien);border-radius:8px;background:var(--o);cursor:pointer}
.nho{font-size:11px;font-weight:600;color:var(--phu);margin-bottom:4px;display:flex;justify-content:space-between;white-space:nowrap}
.nho b{color:var(--vang-dam)}
input[type=range]{width:100%;accent-color:var(--vang);margin:6px 0 0}
