/* Giao diện riêng hobaokhanh.com — nền sáng, nút có chữ, chạy tốt trên iPhone. Dựa trên /core/css/giao-dien.css */
:root{--nhan:#d46a2f;--xanh:#2f8f4f;--vang:#f2c230}
.kh-o{position:absolute;pointer-events:auto}
.kh-tren-trai{top:calc(56px + env(safe-area-inset-top));left:8px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;pointer-events:none}
.kh-tren-trai > *{pointer-events:auto}
.kh-phao{background:rgba(255,255,255,.93);border:1px solid var(--vien);border-radius:12px;padding:5px 10px;box-shadow:var(--bong);font-size:14px;font-weight:600;white-space:nowrap;max-width:62vw;overflow:hidden;text-overflow:ellipsis}
.kh-phao b{color:var(--nhan)}
button.kh-phao{font:inherit;font-size:14px;font-weight:700;cursor:pointer;color:var(--chu)}
.kh-ban-do{top:calc(56px + env(safe-area-inset-top));right:8px;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.kh-ban-do canvas{width:150px;height:150px;border-radius:16px;border:3px solid #fff;box-shadow:var(--bong);background:#d8e8d0;cursor:pointer;display:block}
.kh-ban-do .nut{min-height:38px;padding:6px 12px;font-size:14px;box-shadow:var(--bong)}
.kh-hanh-dong{left:50%;transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom));display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 24px)}
.kh-hanh-dong .nut{min-height:50px;padding:10px 18px;font-size:16px;box-shadow:0 8px 24px rgba(20,40,70,.18);white-space:nowrap}
.kh-hanh-dong .nut.chinh{font-size:17px}
.kh-hanh-dong kbd{font:700 12px system-ui;background:rgba(0,0,0,.12);border-radius:6px;padding:2px 6px;margin-left:2px}
.co-cham .kh-hanh-dong kbd{display:none}
.kh-the-noi{position:fixed;left:50%;transform:translateX(-50%);top:calc(110px + env(safe-area-inset-top));z-index:4;background:#fff;border:1px solid var(--vien);border-radius:16px;box-shadow:var(--bong);padding:10px 14px;max-width:min(420px,calc(100vw - 24px));font-size:15px;pointer-events:auto}
.kh-the-noi h4{margin:0 0 4px;font-size:16px}
.kh-the-noi .goi-y{margin:2px 0}
.kh-the-noi .nut{min-height:38px;padding:6px 12px;font-size:14px;margin-top:6px}
.kh-chuc{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%) scale(.9);z-index:8;background:#fff;border:3px solid var(--vang);border-radius:20px;padding:14px 22px;text-align:center;box-shadow:0 20px 60px rgba(20,40,70,.25);font-weight:700;font-size:18px;opacity:0;transition:all .25s;pointer-events:none;max-width:calc(100vw - 32px)}
.kh-chuc.hien{opacity:1;transform:translate(-50%,-50%) scale(1)}
.kh-chuc .to{font-size:34px;display:block}
.kh-dem-lon{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:7;pointer-events:none;font:900 120px system-ui;color:#fff;text-shadow:0 6px 0 var(--nhan),0 10px 30px rgba(0,0,0,.25)}
.kh-man-nham{position:fixed;inset:0;z-index:6;background:linear-gradient(#fff8ec,#ffe9cf);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;font-size:20px;font-weight:700}
.kh-man-nham .so{font:900 90px system-ui;color:var(--nhan)}
/* bảng */
.bang.kh-bang{width:min(520px,calc(100vw - 24px))}
.kh-luoi{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.kh-luoi .nut{min-height:48px;font-size:15px;text-align:center}
.kh-hh{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.kh-hh div{border:1px solid var(--vien);border-radius:12px;padding:8px;text-align:center;font-size:13px;color:var(--mo);background:#f7f8fa}
.kh-hh div.co{background:#fff8e1;border-color:#f2c230;color:var(--chu)}
.kh-hh div i{display:block;font-style:normal;font-size:26px;filter:grayscale(1);opacity:.45}
.kh-hh div.co i{filter:none;opacity:1}
.kh-hh div b{display:block;font-size:14px}
.kh-cau{font-size:19px;font-weight:700;margin:6px 0 12px;line-height:1.4}
.kh-chon{display:grid;gap:8px}
.kh-chon .nut{min-height:52px;justify-content:flex-start;text-align:left;font-size:16px;white-space:normal}
.kh-chon .nut.dung{background:#e7f6ea;border-color:#2f8f4f;color:#1d5f33}
.kh-chon .nut.sai{background:#fff1ec;border-color:#e8a08a}
.kh-chon .nut.da{border-color:var(--nhan);box-shadow:inset 0 0 0 2px var(--nhan)}
.kh-thanh-tg{height:8px;border-radius:8px;background:#eef1f5;overflow:hidden;margin:6px 0}
.kh-thanh-tg i{display:block;height:100%;background:var(--vang);transition:width .25s linear}
.kh-giai{background:#f3f8ff;border:1px solid #d6e6fb;border-radius:12px;padding:10px;margin-top:10px;font-size:15px}
/* đàn */
.kh-dan{position:relative;height:250px;background:linear-gradient(#fbf6ee,#fff);border:1px solid var(--vien);border-radius:14px;overflow:hidden;margin:8px 0;touch-action:none}
.kh-dan .lan{position:absolute;top:0;bottom:0;border-left:1px dashed #eadfcd}
.kh-dan .vach{position:absolute;left:0;right:0;bottom:56px;height:4px;background:var(--vang)}
.kh-dan .not{position:absolute;width:11%;height:22px;border-radius:8px;margin-left:.75%;box-shadow:0 3px 0 rgba(0,0,0,.12)}
.kh-phim{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;position:absolute;left:4px;right:4px;bottom:4px;height:48px}
.kh-phim button{border:1px solid var(--vien);border-radius:10px;background:#fff;font:700 13px system-ui;color:var(--chu);touch-action:none;padding:0}
.kh-phim button.bam{background:#fff3b0;transform:translateY(2px)}
.kh-dan .khen{position:absolute;left:50%;top:40%;transform:translateX(-50%);font:800 22px system-ui;color:var(--xanh);pointer-events:none;transition:opacity .4s}
/* vẽ */
.kh-ve-lop{position:fixed;inset:0;z-index:3;touch-action:none;cursor:crosshair}
.kh-ve-thanh{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom));z-index:5;background:#fff;border:1px solid var(--vien);border-radius:16px;box-shadow:var(--bong);padding:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;max-width:calc(100vw - 16px)}
.kh-ve-thanh .mau{width:34px;height:34px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px var(--vien);cursor:pointer;padding:0}
.kh-ve-thanh .mau.chon{box-shadow:0 0 0 3px var(--nhan)}
/* trang trí nhà */
.kh-do{left:50%;transform:translateX(-50%);bottom:calc(10px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:6px;max-width:calc(100vw - 16px)}
.kh-do .nhom{display:flex;gap:4px;flex-wrap:nowrap;overflow-x:auto;max-width:calc(100vw - 16px)}
.kh-do .nhom .nut{min-height:32px;padding:4px 10px;font-size:13px;flex:0 0 auto}
.kh-do .day{display:flex;gap:4px;padding:5px;background:rgba(255,255,255,.94);border-radius:14px;border:1px solid var(--vien);box-shadow:var(--bong);overflow-x:auto;max-width:calc(100vw - 16px)}
.kh-do .day button{flex:0 0 auto;width:52px;height:60px;border-radius:10px;border:2px solid transparent;background:#eef2f7 center 4px/36px no-repeat;image-rendering:pixelated;font:600 10px system-ui;color:var(--chu);padding:42px 2px 0;line-height:1.05;overflow:hidden;cursor:pointer;position:relative}
.kh-do .day button.chon{border-color:var(--nhan);background-color:#fff}
.kh-do .day button.khoa{opacity:.5}
.kh-do .day button.khoa:after{content:"🔒";position:absolute;top:2px;right:3px;font-size:12px}
.man3d.kh-truong .thanh-khoi,.man3d.kh-truong .nut-cham [data-nut=dat],.man3d.kh-truong .nut-cham [data-nut=pha]{display:none}
.man3d.kh-nha .thanh-khoi{display:none}
.man3d.kh-truong .tam-ngam{opacity:.55}
.kh-anh img{width:100%;border-radius:12px;border:1px solid var(--vien)}
.kh-ma{font:800 26px system-ui;letter-spacing:3px;color:var(--nhan)}
.kh-sach{border:1px solid var(--vien);border-radius:12px;padding:10px;margin:8px 0;background:#fffdf7}
.kh-sach b{display:block;font-size:16px}
@media (max-width:560px){
  .kh-ban-do canvas{width:104px;height:104px;border-radius:14px}
  .kh-ban-do .nut{min-height:34px;padding:4px 10px;font-size:13px}
  .kh-phao{font-size:13px;padding:4px 8px}
  .co-cham .kh-hanh-dong{left:12px;right:92px;transform:none;justify-content:center;bottom:calc(14px + env(safe-area-inset-bottom))}
  .co-cham .kh-hanh-dong .nut{min-height:48px;padding:8px 14px;font-size:15px}
  .kh-the-noi{top:calc(170px + env(safe-area-inset-top));font-size:14px}
  .co-cham.kh-nha .kh-do{left:8px;right:84px;transform:none}
}
