/* lzlive — LINE-like visual language: #06C755 primary, #FF334B danger, #F7F8FA bg, 12px cards, 2px rounded outline icons (Tabler), LINE Seed Sans TH. */
@font-face{font-family:"LINE Seed Sans TH";src:url("fonts/LINESeedSansTH_W_Th.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"LINE Seed Sans TH";src:url("fonts/LINESeedSansTH_W_Rg.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"LINE Seed Sans TH";src:url("fonts/LINESeedSansTH_W_Bd.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"LINE Seed Sans TH";src:url("fonts/LINESeedSansTH_W_XBd.woff2") format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"LINE Seed Sans TH";src:url("fonts/LINESeedSansTH_W_He.woff2") format("woff2");font-weight:900;font-display:swap}

:root{--primary:#06C755;--primary-ink:#05a847;--primary-soft:#E6F9EE;--danger:#FF334B;--danger-soft:#FFE9EC;--warn:#F5A623;--warn-soft:#FFF4E0;--bg:#F7F8FA;--card:#FFFFFF;--ink:#111111;--muted:#666666;--icon:#8c8c8c;--line:#E9EAEE;--line2:#D9DBE0;--log-bg:#FAFAFB;--radius:12px;--shadow:0 1px 2px rgba(0,0,0,.04),0 4px 14px rgba(17,17,17,.04)}
:root[data-theme="dark"]{--primary-soft:#0F2A1B;--danger-soft:#3A1218;--warn-soft:#3A2A10;--bg:#0E1013;--card:#17191D;--ink:#F1F2F4;--muted:#A3A7AE;--icon:#8c8c8c;--line:#262930;--line2:#33363E;--log-bg:#111318;--shadow:none}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"LINE Seed Sans TH","Noto Sans Thai","Segoe UI",system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.3}h1{font-size:20px}h3{font-size:15px}h4{font-size:13px;margin:12px 0 6px;color:var(--muted);font-weight:700}
a{color:var(--primary-ink);text-decoration:none}a.link{cursor:pointer;font-weight:700}
.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.err{color:var(--danger)}.pos{color:var(--primary-ink);font-weight:700}.neg{color:var(--danger);font-weight:700}.ok{color:var(--primary-ink)}
code{font:12px ui-monospace,Consolas,monospace;background:var(--bg);padding:1px 6px;border-radius:6px;word-break:break-all}
.ic{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}.ic.muted{color:var(--icon)}

/* buttons */
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:10px;padding:8px 14px;cursor:pointer;font:inherit;font-weight:700;line-height:1.3;white-space:nowrap;transition:background .15s,border-color .15s}
button .ic,.btn .ic{width:18px;height:18px}
button:hover,.btn:hover{background:var(--bg)}
button.primary,.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}button.primary:hover{background:var(--primary-ink)}
button.danger,.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}button.danger:hover{filter:brightness(.95)}
button.ghost,.btn.ghost{background:transparent}
button.small,.btn.small{padding:5px 10px;font-size:12px;border-radius:8px}button.small .ic{width:16px;height:16px}
button:disabled{opacity:.45;cursor:not-allowed}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--icon);cursor:pointer}.iconbtn:hover{background:var(--bg);color:var(--ink)}
.grow{flex:1}
input,select,textarea{font:inherit;padding:9px 12px;border:1px solid var(--line2);border-radius:10px;background:var(--card);color:var(--ink);min-width:0;max-width:100%;width:100%}
input:focus,select:focus{outline:2px solid var(--primary);outline-offset:0;border-color:var(--primary)}
input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--primary);margin:0}
label{display:grid;gap:4px;font-size:12px;color:var(--muted);font-weight:700}label>input,label>select{color:var(--ink);font-weight:400}
.password-field{position:relative;display:block;min-width:0}.password-field>input{padding-right:48px;color:var(--ink);font-weight:400}.password-field>.password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:34px;height:34px}.password-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
label.chk{grid-template-columns:auto 1fr;align-items:center;gap:8px;color:var(--ink);font-weight:400;font-size:13px}

/* auth */
.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:24px;padding:24px;max-width:1040px;margin:0 auto}
.auth-side .brand{margin-bottom:28px}.auth-side h1{font-size:34px;font-weight:800;margin-bottom:10px}
.steps{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}.steps li{display:flex;gap:12px;align-items:center}.steps li b{width:28px;height:28px;border-radius:50%;background:var(--primary-soft);color:var(--primary-ink);display:grid;place-items:center;font-size:12px;flex:none}
.steps.cols{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.auth-card{display:grid;gap:12px;padding:28px}.auth-card h2{font-size:22px}

/* app frame */
.app{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
aside{background:var(--card);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:10px;font-weight:400;font-size:17px;color:var(--ink);padding:4px 6px}.brand b{font-weight:800}
.logo{width:34px;height:34px;border-radius:10px;background:var(--primary);color:#fff;display:grid;place-items:center;flex:none}
nav{display:grid;gap:2px}nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;color:var(--ink);font-weight:700;white-space:nowrap}nav a .ic{color:var(--icon)}
nav a:hover{background:var(--bg)}nav a.active{background:var(--primary-soft);color:var(--primary-ink)}nav a.active .ic{color:var(--primary)}
.aside-foot{margin-top:auto;padding:0 6px}
.body{min-width:0;display:flex;flex-direction:column}
header.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.crumb{display:flex;align-items:center;gap:8px;min-width:0}.crumb h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hdr-right{display:flex;align-items:center;gap:12px}.hdr-right .row{gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--primary-soft);color:var(--primary-ink);font-weight:700;cursor:pointer}.chip .ic{width:18px;height:18px}
.user{display:flex;align-items:center;gap:6px;color:var(--muted)}
main{padding:20px 24px 40px;max-width:1240px;width:100%}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:var(--shadow)}
.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.card-head .hint{margin:2px 0 0;color:var(--muted);font-size:12px}
.card-actions{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}.card-actions .iconbtn{margin-left:auto}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:14px}.cards .card{margin:0}
.card.chan.onair{border-color:var(--danger)}
.readybar{display:flex;align-items:center;gap:10px;margin:6px 0}.readybar .bar{flex:1;margin:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.grid2.wide-right{grid-template-columns:1fr 1.6fr}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;align-items:end}.form .full{grid-column:1/-1}.form-actions{display:flex;gap:8px;grid-column:1/-1;flex-wrap:wrap}
.form.inline{grid-template-columns:1fr auto}.form.inline .form-actions{grid-column:auto}
.notice{display:flex;gap:8px;align-items:flex-start;border-radius:10px;padding:10px 12px;margin:0 0 12px;font-size:13px}.notice .ic{flex:none;margin-top:1px}.notice.warn{background:var(--warn-soft);color:#8a5a00}.notice.info{background:var(--primary-soft);color:var(--primary-ink)}.notice.err{background:var(--danger-soft);color:var(--danger);margin-top:8px}
.emptybox{border:1px dashed var(--line2);border-radius:10px;padding:26px;text-align:center;color:var(--muted);font-size:13px}
.toast{position:fixed;right:16px;bottom:16px;display:flex;gap:8px;align-items:center;padding:10px 14px;border-radius:12px;color:#fff;background:#111;z-index:99;max-width:min(380px,calc(100vw - 32px));box-shadow:0 8px 24px rgba(0,0,0,.2);font-weight:700}.toast.err{background:var(--danger)}
.bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin:6px 0}.bar i{display:block;height:100%;background:var(--primary);transition:width .4s}

/* tables */
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 10px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-weight:700;font-size:12px}tr:last-child td{border-bottom:0}th.w40{width:40%}td.actions{white-space:nowrap;text-align:right}td.actions button{margin-left:4px}
tr.empty td{text-align:center;padding:28px 10px;color:var(--muted);font-size:13px}tr.dim{opacity:.6}
.thumb{width:40px;height:40px;object-fit:cover;border-radius:8px;flex:none}.thumb-ph{display:inline-grid;place-items:center;background:var(--bg);color:var(--icon)}.prodcell{display:flex;gap:10px;align-items:center}
.basket{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--primary-soft);color:var(--primary-ink);font-weight:800;font-size:12px}
.switch{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.switch input{position:absolute;opacity:0;width:0;height:0}.switch i{position:absolute;inset:0;background:var(--line2);border-radius:999px;transition:.2s}.switch i::after{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}.switch input:checked+i{background:var(--primary)}.switch input:checked+i::after{transform:translateX(18px)}
.search{position:relative;display:block}.search .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--icon);width:18px;height:18px}.search input{padding-left:34px;width:200px}

/* pills & levels */
.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.pill.live,.pill.on{background:var(--danger-soft);color:var(--danger);border-color:transparent}.pill.done,.pill.ready,.pill.ok{background:var(--primary-soft);color:var(--primary-ink);border-color:transparent}
.pill.running,.pill.renting,.pill.preparing,.pill.training,.pill.exporting,.pill.pending,.pill.stopping,.pill.queued,.pill.preparing_voice{background:var(--warn-soft);color:#8a5a00;border-color:transparent}.pill.failed,.pill.needs_provider,.pill.cancelled{background:var(--danger-soft);color:var(--danger);border-color:transparent}
.lv{display:inline-block;padding:0 7px;border-radius:999px;font-size:10px;font-weight:800;line-height:16px;letter-spacing:.2px}.lv.ok{background:var(--primary-soft);color:var(--primary-ink)}.lv.warn{background:var(--danger-soft);color:var(--danger)}.lv.system{background:var(--line);color:var(--muted)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0 0 14px}.stats.six{grid-template-columns:repeat(6,1fr)}.stat{background:var(--bg);border-radius:10px;padding:10px 12px;min-width:0}.stat .muted{font-size:12px}.stat b{font-size:20px;display:block;overflow-wrap:anywhere}.stat b.small{font-size:13px}.stat.bad{outline:1px solid var(--danger)}.stat.bad b{color:var(--danger)}
.row{display:flex;gap:10px;align-items:flex-start}.row.between{justify-content:space-between;align-items:center}.row.wrap{flex-wrap:wrap}.row.center{align-items:center;flex-wrap:wrap}

/* checklist (ความพร้อม) */
.checklist{list-style:none;margin:0;padding:0;display:grid;gap:4px}.checklist.cols{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.checklist li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer}.checklist li:hover{background:var(--bg)}.checklist li span{flex:1;display:grid;min-width:0}.checklist li small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.checklist li .st{color:var(--primary)}.checklist li.warn .st{color:var(--warn)}.checklist li.fail .st{color:var(--danger)}.checklist li.fail b{color:var(--danger)}

/* tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}
.tabs a{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;color:var(--muted);font-weight:700;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tabs a .ic{width:18px;height:18px}.tabs a:hover{color:var(--ink)}.tabs a.active{color:var(--primary-ink);border-color:var(--primary)}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:10px;overflow:hidden}.seg button{border:0;border-radius:0;background:transparent}.seg button+button{border-left:1px solid var(--line2)}.seg button.active{background:var(--primary-soft);color:var(--primary-ink)}

/* live console */
.console .console-grid{display:grid;grid-template-columns:300px 1fr;gap:16px}
.console-left video.wide{width:100%;max-width:300px;aspect-ratio:9/16;max-height:420px;border-radius:10px;background:#000;display:block}
.sim{display:grid;gap:6px}.sim .row{gap:6px}
.prodcard{display:flex;gap:10px;align-items:flex-start;background:var(--bg);border-radius:10px;padding:10px;margin-bottom:8px}.prodcard img,.prodcard .thumb-ph{width:64px;height:64px;object-fit:cover;border-radius:8px;flex:none}.prodcard .price{font-weight:800;color:var(--danger)}
#liveControls{gap:6px;margin-bottom:6px}
.legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;margin:4px 0 6px;color:var(--muted)}.legend .k{display:inline-flex;align-items:center;gap:3px}.legend .k::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.log{background:var(--log-bg);border:1px solid var(--line);border-radius:10px;padding:6px 8px;height:460px;overflow:auto;font-size:13px}.log.tall{height:620px}
.log .ev{display:grid;grid-template-columns:auto auto auto 1fr;gap:8px;align-items:baseline;padding:5px 6px;border-radius:8px}.log .ev:nth-child(even){background:rgba(0,0,0,.02)}:root[data-theme="dark"] .log .ev:nth-child(even){background:rgba(255,255,255,.03)}
.log .t{font:11px ui-monospace,Consolas,monospace;color:var(--muted)}
.log .k{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;white-space:nowrap}.log .k .ic{width:14px;height:14px}
.log .body{overflow-wrap:anywhere}.log.hide-spoken .ev.spoken{display:none}
.k.chat_in{color:#1E6FD9}.k.chat_out{color:var(--primary-ink)}.k.spoken{color:#B8860B}.k.pin{color:#D9369B}.k.warn{color:var(--danger)}.k.system{color:var(--muted)}.k.join,.k.share,.k.gift,.k.follow{color:#7C4DFF}.k.control{color:#E86A1C}
.log .ev.warn{background:var(--danger-soft)}.log .ev.spoken .body{color:var(--muted)}

/* jobs (C1) */
.job{background:var(--bg);border-radius:10px;padding:12px;margin-bottom:10px}.job pre{white-space:pre-wrap;font:12px/1.6 ui-monospace,Consolas,monospace;color:var(--muted);max-height:260px;overflow:auto;margin:6px 0 0;background:var(--card);padding:8px;border-radius:8px}.job pre .t{color:var(--primary-ink)}
.job details summary{cursor:pointer;color:var(--muted);font-size:12px;margin-top:6px;font-weight:700}
.compare{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.compare figure{margin:0;flex:1 1 180px;max-width:240px}.compare figcaption{font-size:12px;color:var(--muted);margin-bottom:4px;font-weight:700}.compare video{width:100%;border-radius:10px;background:#000}
.script ol{margin:4px 0 0;padding-left:22px;font-size:13px;line-height:1.6}
video{max-width:100%;border-radius:10px;background:#000}#faceClipPreview{width:200px;aspect-ratio:9/16;margin-top:10px}

/* overlay (C2) */
.ovWrap{align-items:flex-start}.ovForm{display:grid;gap:10px;flex:1 1 260px}.ovForm label output{float:right;color:var(--ink)}.ovForm input[type=range]{padding:0;accent-color:var(--primary)}
.ovCanvas{position:relative;width:198px;height:352px;flex:none;border-radius:12px;overflow:hidden;background:linear-gradient(160deg,#3b4252,#111318);border:1px solid var(--line)}
.ovLabel{position:absolute;right:8px;top:6px;font-size:10px;color:#9aa0a6}
.ovCard{position:absolute;display:flex;gap:5px;align-items:center;background:rgba(255,255,255,.96);color:#111;border-radius:7px;padding:5px;font-size:10px;line-height:1.25;box-shadow:0 2px 8px rgba(0,0,0,.35);overflow:hidden}
.ovCard img,.ovCard .ovImg{width:30px;height:30px;border-radius:5px;object-fit:cover;flex:none;background:#cbd5e1}.ovCard .ovBody{display:grid;min-width:0}.ovCard .ovName{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ovCard .ovPrice{color:var(--danger);font-weight:800}.ovCard .ovOld{color:#6b7280;font-size:9px}
.ovCard.badge{background:var(--danger);color:#fff;border-radius:999px;padding:4px 10px}.ovCard.badge img,.ovCard.badge .ovImg{display:none}.ovCard.badge .ovBody{display:flex;gap:5px;align-items:baseline}.ovCard.badge .ovPrice{color:#fff}.ovCard.badge .ovOld{color:#ffd0d6}

/* avatars (thlive /app/avatars): create form, clip picker, 3-step stepper, confirm modal */
.fld{display:grid;gap:6px;min-width:0}.lbl{font-size:12px;color:var(--muted);font-weight:700}.fld .notice{margin:0}
.fld .seg{display:flex}.fld .seg button{flex:1;flex-direction:column;gap:0;padding:6px 10px;line-height:1.25}.fld .seg small{font-weight:400;color:var(--muted);font-size:11px}
.picklist{display:grid;gap:2px;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:4px}.picklist .emptybox{border:0;padding:18px}
label.chk.pick{grid-template-columns:auto 1fr auto;padding:7px 8px;border-radius:8px;cursor:pointer}label.chk.pick:hover{background:var(--bg)}
.pick span{display:grid;min-width:0}.pick b{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick small{color:var(--muted);font-size:12px}
.tot{display:inline-flex;align-items:center;gap:6px}.tot .ic{width:16px;height:16px}
.eta{display:flex;gap:8px;align-items:flex-start;background:var(--bg);border-radius:10px;padding:10px 12px;margin:0;font-size:13px}.eta .ic{width:18px;height:18px;color:var(--icon);margin-top:1px}
.sect{margin:4px 0 10px}.cards.avs{grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr))}.sect .hint{margin:2px 0 0;color:var(--muted);font-size:12px}
.card.av .card-head{margin-bottom:8px}.card.av>p{margin:6px 0}
.stepper{list-style:none;margin:4px 0 8px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.stepper li{display:flex;gap:8px;align-items:flex-start;padding:8px;border-radius:10px;background:var(--bg);min-width:0}
.stepper li i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;background:var(--line);color:var(--muted);flex:none}.stepper li i .ic{width:14px;height:14px}
.stepper li span{display:grid;min-width:0}.stepper li b{font-size:12px;line-height:1.3}.stepper li small{font-size:11px;color:var(--muted)}
.stepper li.done i{background:var(--primary);color:#fff}.stepper li.cur{outline:1px solid var(--warn)}.stepper li.cur i{background:var(--warn);color:#fff}.stepper li.fail i{background:var(--danger);color:#fff}.stepper li.fail small{color:var(--danger)}
.avlog{font:12px/1.6 ui-monospace,Consolas,monospace;color:var(--muted);background:var(--bg);border-radius:8px;padding:6px 8px;margin-top:6px;overflow-wrap:anywhere}.avlog .t,.card.av pre .t{color:var(--primary-ink)}
.card.av details summary{cursor:pointer;color:var(--muted);font-size:12px;margin-top:6px;font-weight:700}.card.av pre{white-space:pre-wrap;font:12px/1.6 ui-monospace,Consolas,monospace;color:var(--muted);max-height:260px;overflow:auto;margin:6px 0 0;background:var(--bg);padding:8px;border-radius:8px}
.modal-back{position:fixed;inset:0;z-index:60;background:rgba(17,17,17,.45);display:grid;place-items:center;padding:16px}
.modal{width:min(480px,100%);max-height:calc(100vh - 32px);overflow:auto;margin:0;box-shadow:0 12px 40px rgba(0,0,0,.25)}.modal .card-head{margin-bottom:8px}.modal-body p{margin:0 0 10px}.modal-body .notice{margin:0 0 10px}
table.pods .pill{white-space:nowrap}table.pods td small{display:block;font-size:12px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0 0 12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:700;text-align:right;overflow-wrap:anywhere}.kv dd small{display:block;font-weight:400;color:var(--muted);font-size:12px}

pre.help{background:var(--bg);border-radius:10px;padding:12px;font:12px/1.6 ui-monospace,Consolas,monospace;white-space:pre-wrap;overflow:auto;margin:0}
.spoken-col{display:none}table.show-spoken .spoken-col{display:table-cell}

/* tablet */
@media (max-width:960px){.grid2,.grid2.wide-right{grid-template-columns:1fr}.console .console-grid{grid-template-columns:1fr}.console-left video.wide{margin:0 auto}.stats.six{grid-template-columns:repeat(3,1fr)}}
@media (max-width:800px){
  .app{grid-template-columns:64px 1fr}aside{padding:12px 8px;gap:10px}.brand-text{display:none}.brand{justify-content:center;padding:0}nav a{justify-content:center;padding:10px}nav a span{display:none}
  header.top{padding:10px 14px}main{padding:14px}.auth{grid-template-columns:1fr;max-width:460px}.auth-side{display:none}.search input{width:140px}
}
/* phone */
@media (max-width:480px){
  body{font-size:13px}
  .app{grid-template-columns:1fr}aside{position:fixed;left:0;right:0;bottom:0;top:auto;height:auto;flex-direction:row;border-right:0;border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));z-index:20;background:var(--card)}
  aside .brand,.aside-foot{display:none}nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:0;width:100%}nav a{flex-direction:column;gap:2px;padding:6px 2px;font-size:10px;font-weight:700;border-radius:8px}nav a span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}nav a.active{background:transparent}
  header.top{flex-wrap:wrap;padding:10px 12px}.crumb{flex:1 1 100%}.hdr-right{width:100%;justify-content:space-between}.user span{display:none}#hdrActions button{padding:6px 10px;font-size:12px}
  main{padding:12px 12px 90px}.card{padding:12px}.cards{grid-template-columns:1fr}
  .form,.form.inline{grid-template-columns:1fr}.form-actions button{flex:1}
  .stats{grid-template-columns:1fr 1fr}.stats.six{grid-template-columns:repeat(3,1fr)}.stat b{font-size:17px}
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}thead{display:table-header-group}tbody{display:table-row-group}tr{display:table-row}th,td{padding:8px;font-size:12px;white-space:nowrap}td b,td div,td small{white-space:normal}tr.empty td{white-space:normal}
  .log{height:300px}.log.tall{height:420px}.log .ev{grid-template-columns:auto auto 1fr}.log .ev .k{grid-column:1/-1}
  .console-left video.wide{max-width:220px}.ovCanvas{width:144px;height:256px}
  .checklist.cols{grid-template-columns:1fr}.tabs a{padding:8px 10px;font-size:12px}
  .toast{left:12px;right:12px;bottom:80px;max-width:none}
  .search input{width:100%}.card-head{flex-wrap:wrap}.card-head .row{width:100%}
  .stepper{grid-template-columns:1fr}.kv{font-size:12px}.modal-back{align-items:end;padding:12px 12px calc(12px + env(safe-area-inset-bottom))}
}

/* เชื่อม TikTok (desktop) */
.tk-connect{margin:8px 0}
.tk-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tk-mode{flex:1 1 200px;padding:8px 10px;border-radius:8px}

.lang-sel{height:34px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-pill,999px);background:var(--card);color:var(--ink);font:inherit;font-size:var(--fs-sm,13px);cursor:pointer}
