:root {
  color-scheme: light;
  --bg: #f4f7fb; --panel: #ffffff; --panel-2: #f7f9fc; --elevated: #eef2f8;
  --line: #dce4ef; --line-soft: #e8edf4; --text: #172033; --muted: #65748b; --faint: #98a4b5;
  --primary: #6d6bff; --primary-strong: #8583ff; --primary-dim: #524fe0; --primary-glow: rgba(109,107,255,.20);
  --cyan: #22d3ee; --green: #2fd97f; --red: #ff5c7a; --amber: #fdb833;
  --shadow: 0 20px 55px rgba(36,50,74,.12); --radius: 10px; --radius-sm: 6px;
  font-family: Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
}
html,body{background:var(--bg);color:var(--text);font-size:14px}
body{background-image:radial-gradient(circle at 15% 0%,rgba(109,107,255,.10),transparent 40%),radial-gradient(circle at 85% 100%,rgba(34,211,238,.07),transparent 45%);background-attachment:fixed}
::selection{background:var(--primary-glow);color:var(--text)}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}

.loginPage{position:relative;overflow:hidden;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:42px 42px}
.loginPage::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 65% 55% at 50% 42%,transparent 0,var(--bg) 78%)}
.loginCard{position:relative;width:min(380px,100%);padding:36px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow)}
.brandMark{color:transparent;background:var(--panel-2) url('/autozalo-logo.png') center/cover no-repeat;border:1px solid var(--line);border-radius:12px;box-shadow:0 0 24px var(--primary-glow)}
.loginCard h1,header h1,.sectionHead h2,.card h2{color:var(--text)}.eyebrow{color:var(--primary-strong)}
.muted,.deviceMeta,.summary,.loginCard small{color:var(--muted)}.loginCard label,.formGrid label{color:var(--muted)}

input,select,textarea{min-height:42px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);color:var(--text);padding:11px 13px}
input::placeholder,textarea::placeholder{color:var(--faint)}
input:focus,select:focus,textarea:focus{border-color:var(--primary);background:var(--panel);box-shadow:0 0 0 3px var(--primary-glow)}
select option{background:var(--panel-2);color:var(--text)}input[type="checkbox"],input[type="radio"],input[type="range"]{accent-color:var(--primary);min-height:0}
button{min-height:40px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--elevated);color:var(--text);box-shadow:none}
button:hover:not(:disabled){border-color:var(--primary);filter:brightness(1.08);box-shadow:0 0 0 3px var(--primary-glow)}button:active:not(:disabled){transform:scale(.98)}
.primary{border-color:transparent;background:linear-gradient(135deg,var(--primary-strong),var(--primary-dim));color:#fff;box-shadow:0 7px 20px rgba(109,107,255,.28)}
.secondary{border-color:var(--line);background:var(--panel-2);color:var(--muted)}.danger{border-color:rgba(220,60,89,.28);background:#fff0f3;color:#c92648}

.appShell{grid-template-columns:236px minmax(0,1fr);background:transparent}
.sidebar{padding:20px 14px;border-right-color:var(--line);background:var(--panel);box-shadow:none}.brand{padding:3px 8px 22px}.brand strong{color:var(--text)}.brand span,.account span{color:var(--muted)}
nav{gap:4px}nav button{min-height:42px;padding:9px 10px;border-color:transparent;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:13.5px}
nav button:hover:not(:disabled){background:var(--panel-2);color:var(--text);box-shadow:none;border-color:transparent}nav button.active{background:var(--elevated);color:var(--text);box-shadow:inset 3px 0 var(--primary)}
.account{grid-template-columns:38px minmax(0,1fr) 34px;border-top-color:var(--line-soft)}.avatar{background:var(--elevated);color:var(--primary-strong)}.account .iconBtn{min-width:34px;min-height:34px;padding:5px}
header{height:80px;padding:16px 24px;border-bottom-color:var(--line);background:rgba(255,255,255,.90);backdrop-filter:blur(16px)}header h1{font-size:20px}.pageContent{padding:22px 24px 64px}
.status{border:1px solid var(--line);background:var(--elevated);color:var(--muted)}.status.online{border-color:rgba(47,217,127,.28);color:var(--green);background:rgba(47,217,127,.13)}.status.running{border-color:rgba(253,184,51,.28);color:var(--amber);background:rgba(253,184,51,.14)}
.stats{gap:12px}.card{padding:17px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 10px 26px rgba(36,50,74,.07)}.stat strong{color:var(--text);font-size:26px}.stat span{color:var(--muted)}
.sectionHead{margin:24px 0 12px}.grid{gap:12px}.actions{gap:8px;margin-top:14px}.actions button{min-height:38px}.empty{border-color:var(--line);background:var(--panel);color:var(--muted)}
.tableWrap{overflow:auto;border-color:var(--line);border-radius:var(--radius);background:var(--panel)}table{background:var(--panel)}th,td{border-bottom-color:var(--line-soft)}th{background:var(--panel-2);color:var(--muted)}
.badge{border:1px solid var(--line);background:var(--elevated);color:var(--muted)}.badge.ok{border-color:rgba(47,217,127,.28);color:var(--green);background:rgba(47,217,127,.13)}.badge.warn{border-color:rgba(253,184,51,.28);color:var(--amber);background:rgba(253,184,51,.14)}
.modalBackdrop{background:rgba(5,7,12,.78)}.modalCard{border-color:var(--line);border-radius:14px;background:var(--panel)}.choice,.processCard{border-color:var(--line);border-radius:var(--radius);background:var(--panel-2)}
.toast{border-color:var(--line);background:var(--panel);color:var(--text)}.toast.error{border-color:#e8a7b5;background:#fff1f3;color:#9e1f39}
.viewerPanel{border-color:var(--line);border-radius:14px;background:var(--panel)}.screenStage{background:#03050a}.screenStage img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center}.screenPlaceholder,.viewerHint{color:var(--muted)}
.runLogs{margin-top:7px}.runLogs summary{cursor:pointer;color:var(--primary-strong);font-weight:700;font-size:11px}.runLogs p{margin:7px 0 0;padding-left:10px;border-left:2px solid var(--line);color:var(--muted);line-height:1.45}

.liveWall{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px;align-items:start}.liveCard{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 10px 28px rgba(36,50,74,.08)}.liveCard.offline{border-color:#efc7d0;background:#fffafb}.liveCardTop,.liveCardBottom{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;background:var(--panel)}.liveCardBottom{min-height:43px;border-top:1px solid var(--line-soft)}.liveCardTop>div{display:grid;min-width:0}.liveCardTop strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.liveCardTop span,.liveCardBottom>span{color:var(--muted);font-size:10px}.liveDot{flex:none!important;padding:4px 6px;border-radius:5px;background:#e7fbef!important;color:#12824a!important;font-weight:900;letter-spacing:.05em}.liveDot::before{content:"";display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#1fbf6b;box-shadow:0 0 0 3px #bdf2d2}.liveDot.offline{background:#fff0f3!important;color:#c92648!important}.liveDot.offline::before{background:#df3d5e;box-shadow:0 0 0 3px #ffd1da}.liveScreen{display:grid;width:100%;height:auto;min-height:0;aspect-ratio:9/16;padding:0;border:0;border-radius:0;background:#111827;place-items:center;overflow:hidden}.liveScreen img{position:static!important;display:none;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important}.liveScreen span{padding:20px;color:#b8c2d1;font-size:11px;text-align:center}.overviewActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.buttonLink{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 14px;border:1px solid transparent;border-radius:var(--radius-sm);font-weight:750;text-decoration:none}.buttonLink:hover{filter:brightness(1.05);box-shadow:0 0 0 3px var(--primary-glow)}
.controlTopbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:0 8px 24px rgba(36,50,74,.06)}.controlMetrics,.controlTopActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.controlMetrics>span{display:flex;align-items:baseline;gap:5px;padding:6px 9px;border:1px solid var(--line-soft);border-radius:7px;background:var(--panel-2);color:var(--muted);font-size:10px}.controlMetrics b{color:var(--text);font-size:14px}.controlMetrics .ok b{color:#168b52}.controlTopActions button{min-height:34px;padding:7px 12px;font-size:11px}.syncSwitch{display:flex;align-items:center;gap:8px;margin:0!important;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--text)!important;font-size:11px!important;font-weight:800;cursor:pointer}.syncSwitch input{position:absolute;opacity:0;width:1px;min-height:1px}.syncSwitch span{position:relative;width:28px;height:16px;border-radius:99px;background:#c7ceda;transition:.18s}.syncSwitch span::after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:white;box-shadow:0 1px 3px #0003;transition:.18s}.syncSwitch input:checked+span{background:var(--primary)}.syncSwitch input:checked+span::after{transform:translateX(12px)}
.xiaoweiWorkspace{display:grid;grid-template-columns:232px minmax(0,1fr);gap:12px;align-items:start}.controlRail,.controlCenter{border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 10px 30px rgba(36,50,74,.06)}.controlRail{position:sticky;top:108px;max-height:calc(100dvh - 125px);overflow:hidden}.controlRailHead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px;border-bottom:1px solid var(--line-soft)}.controlRailHead>div:first-child{display:grid}.controlRailHead small{margin-top:2px;color:var(--muted);font-size:9px}.railActions{display:flex;gap:5px}.railActions button{width:29px;min-width:29px;min-height:29px;padding:3px;border:1px solid var(--line);background:var(--panel-2);color:var(--primary);font-size:12px}.controlDeviceList{display:grid;gap:5px;max-height:calc(100dvh - 185px);padding:7px;overflow:auto}.controlDeviceItem{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:5px;padding:4px;border:1px solid transparent;border-radius:8px}.controlDeviceItem:has(input:checked){border-color:#bbb9ff;background:#f2f1ff}.controlDeviceItem.main{box-shadow:inset 3px 0 var(--primary)}.controlDeviceItem.offline{opacity:.55}.controlDeviceItem>input{width:15px;min-height:15px;margin:0}.controlDeviceItem>button{display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;min-width:0;padding:6px;border-radius:6px;background:transparent;color:var(--text);text-align:left}.controlDeviceItem>button:hover:not(:disabled){background:#e9edf5;box-shadow:none}.controlDeviceItem button>span:nth-child(2){display:grid;min-width:0}.controlDeviceItem button b,.controlDeviceItem button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.controlDeviceItem button b{font-size:11px}.controlDeviceItem button small{margin-top:2px;color:var(--muted);font-size:8px}.controlDeviceItem button i{padding:3px 5px;border-radius:4px;background:#ecebff;color:#514ee1;font-size:7px;font-style:normal;font-weight:900}.deviceGlyph{display:grid;width:25px;height:25px;border-radius:6px;background:#e8edff;color:#5669da;place-items:center}.controlCenter{min-width:0;padding:13px}.controlCenterHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}.controlCenterHead .eyebrow{margin:0 0 2px}.controlCenterHead h2{margin:0;font-size:16px}.masterArea{display:grid;grid-template-columns:minmax(260px,390px) minmax(240px,1fr);gap:12px;align-items:start}.masterPhone,.followerPhone{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#f8f9fc}.masterPhone{width:100%;max-width:390px;margin:auto;box-shadow:0 12px 30px rgba(20,29,48,.13)}.masterPhone header,.followerPhone header,.masterPhone footer,.followerPhone footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;background:var(--panel)}.masterPhone header>div,.followerPhone header>div{display:flex;align-items:center;gap:6px;min-width:0}.masterPhone header b,.followerPhone header b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.masterPhone header>span,.followerPhone header>span,.masterPhone footer,.followerPhone footer{color:var(--muted);font-size:8px}.masterPhone header em{padding:3px 5px;border-radius:4px;background:#ecebff;color:#514ee1;font-size:7px;font-style:normal;font-weight:900}.phoneCanvas{position:relative;display:grid;width:100%;height:auto;min-height:0;aspect-ratio:9/16;padding:0;border:0;border-radius:0;background:#0b1020;place-items:center;overflow:hidden;touch-action:none}.phoneCanvas:hover:not(:disabled){filter:none;box-shadow:none}.phoneCanvas img{position:static!important;display:none;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important;pointer-events:none}.phoneCanvas>span{max-width:80%;color:#aeb9ca;font-size:9px;line-height:1.5;text-align:center;pointer-events:none}.masterPhone footer,.followerPhone footer{border-top:1px solid var(--line-soft)}.controlResult{padding:3px 5px;border-radius:4px;background:#edf1f7;color:#68768a;font-weight:800}.controlResult.success{background:#e5f8ed;color:#14834d}.controlResult.failed{background:#ffeaee;color:#bd2844}.controlToolbox{display:grid;gap:10px}.toolGroup,.textTool{padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2)}.toolGroup>b,.textTool>b{display:block;margin-bottom:7px;font-size:10px}.toolButtons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.toolButtons button{display:grid;min-height:54px;padding:7px 4px;border:1px solid var(--line);background:var(--panel);color:var(--primary);font-size:16px;place-items:center}.toolButtons button small{color:var(--text);font-size:8px}.toolButtons .dangerSoft{color:#d23d59}.textTool>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.textTool input{min-height:38px;padding:8px 10px;font-size:11px}.textTool button{min-height:38px;padding:7px 11px;font-size:10px}.textTool label{display:flex;align-items:center;gap:6px;margin-top:7px!important;color:var(--muted)!important;font-size:9px!important}.textTool label input{width:14px;min-height:14px}.controlHint{margin:0;padding:9px;border-radius:8px;background:#eef3fb;color:var(--muted);font-size:9px;line-height:1.55}.followersSection{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft)}.followersSection>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.followersSection h3{margin:0;font-size:13px}.followersSection>div:first-child span{color:var(--muted);font-size:9px}.followersGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:8px}.followerPhone .phoneCanvas>span{font-size:8px}.controlEmpty{padding:50px 20px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center}
.workspaceCard{max-width:900px}.sectionIntro{display:flex;align-items:flex-start;gap:11px;margin-bottom:12px}.sectionIntro.second{margin-top:24px}.sectionIntro h2{margin:1px 0 2px;font-size:16px}.sectionIntro p{margin:0}.stepBadge,.processNumber{display:grid;flex:none;width:27px;height:27px;border-radius:8px;background:#ecebff;color:#514ee1;font-size:12px;font-weight:900;place-items:center}.checkTiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px}.checkTile{display:grid!important;grid-template-columns:auto 9px minmax(0,1fr);align-items:center;gap:9px;min-height:58px;margin:0!important;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);cursor:pointer}.checkTile input{width:16px;min-height:16px;margin:0}.checkTile>span:last-child{display:grid}.checkTile small{margin-top:2px;color:var(--muted)}.stateDot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(47,217,127,.16)}.checkTile.offline{opacity:.68;background:#fff5f6}.checkTile.offline .stateDot{background:var(--red);box-shadow:0 0 0 3px rgba(255,92,122,.14)}.checkTile.offline small{color:#c72d49}.checkTile:has(input:checked){border-color:var(--primary);background:#f0efff;box-shadow:0 0 0 2px var(--primary-glow)}
.scenarioPageHead{margin-top:0}.scenarioManager{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(430px,1.18fr);gap:14px;min-height:610px}.managerPane{display:flex;min-width:0;overflow:hidden;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 12px 30px rgba(36,50,74,.07)}.managerPaneHead{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:74px;padding:13px 14px;border-bottom:1px solid var(--line-soft)}.managerPaneHead>div:first-child{min-width:0}.managerPaneHead .eyebrow{margin:0 0 3px}.managerPaneHead h3{display:flex;align-items:center;gap:7px;min-width:0;margin:0;overflow:hidden;color:var(--text);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.managerPaneHead h3 span{display:inline-grid;flex:none;min-width:23px;height:23px;padding:0 6px;border-radius:99px;background:var(--elevated);color:var(--primary-dim);font-size:10px;place-items:center}.iconActions{display:flex;flex:none;gap:5px}.iconAction{display:grid;width:34px;min-width:34px;height:34px;min-height:34px;padding:0;border-radius:8px;font-size:16px;place-items:center}.iconAction.add{border-color:#b3dbc5;background:#e7f8ee;color:#11814a}.iconAction.edit{border-color:#bdcef2;background:#edf3ff;color:#315fb8}.iconAction.copy{border-color:#ecd6a8;background:#fff8e7;color:#a46708}.iconAction.remove{border-color:#efc7d0;background:#fff0f3;color:#c92648}.iconAction:disabled{filter:grayscale(.7);opacity:.38}.managerColumns{display:grid;align-items:center;min-height:34px;padding:0 12px;border-bottom:1px solid var(--line);background:var(--panel-2);color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.scenarioColumns{grid-template-columns:42px minmax(0,1fr) 105px}.actionColumns{grid-template-columns:42px minmax(0,1fr) 125px}.managerList{flex:1;min-height:410px;overflow:auto;background:linear-gradient(180deg,#fff,#fbfcfe)}.managerRow{display:grid;align-items:center;width:100%;min-height:54px;padding:8px 12px;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;background:transparent;color:var(--text);text-align:left}.managerRow:hover:not(:disabled){border-color:var(--line-soft);background:#f4f6ff;box-shadow:none;filter:none}.managerRow:active:not(:disabled){transform:none}.managerRow.selected{position:relative;background:#eceeff;color:#25258f;box-shadow:inset 4px 0 var(--primary)}.scenarioRow{grid-template-columns:42px minmax(0,1fr) 105px}.scenarioRow>span:first-child,.actionRow>span:first-child{color:var(--muted);font-size:11px}.scenarioRow strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.scenarioRow em{justify-self:start;white-space:nowrap;font-style:normal}.actionRow{grid-template-columns:42px minmax(0,1fr) 125px}.actionRow>span:nth-child(2){display:grid;min-width:0;gap:3px}.actionRow strong,.actionRow small,.actionRow>em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actionRow strong{font-size:13px}.actionRow small{color:var(--muted);font-size:9.5px;font-weight:500}.actionRow>em{color:#465a78;font-size:11px;font-style:normal}.managerEmpty{display:grid;min-height:410px;padding:32px;color:var(--muted);place-content:center;text-align:center}.managerEmpty b{margin-bottom:6px;color:var(--text);font-size:14px}.managerEmpty span{max-width:300px;font-size:11px;line-height:1.55}.managerFooter{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:9px 13px;border-top:1px solid var(--line);background:var(--panel-2);color:var(--muted);font-size:10px}.managerToggle{display:flex!important;align-items:center;gap:8px;margin:0!important;color:var(--text)!important;font-size:11px!important;cursor:pointer}.managerToggle input{width:16px;min-height:16px}.actionEditorForm{margin-top:5px}.actionEditorForm small{color:var(--muted)}
.fieldGroup{min-width:0;margin:8px 0 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.fieldGroup legend{padding:0 6px;color:var(--text);font-size:12px;font-weight:800}.dayTiles{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.dayTiles label{margin:0!important}.dayTiles input{position:absolute;opacity:0;pointer-events:none}.dayTiles span{display:grid;min-height:38px;padding:6px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--muted);font-size:11px;place-items:center;cursor:pointer}.dayTiles input:checked+span{border-color:var(--primary);background:#ecebff;color:#4542c9;font-weight:800}.toggleRow{display:flex!important;align-items:center;gap:9px;margin-top:11px!important;padding:10px 12px;border-radius:8px;background:var(--panel-2)}.toggleRow input{width:16px;min-height:16px}.compactForm{row-gap:2px}.scheduleForm{gap:5px 14px}.processTitle{display:flex;align-items:center;gap:9px}.processTitle h3{margin:0}.processFields{margin-top:4px}.processFields label{padding-top:5px}.processFields small{color:var(--muted)}.rangeField{grid-template-columns:1fr auto}.rangeField b{color:var(--primary-dim);font-size:12px}.rangeField input{grid-column:1/-1}.removeProcess{width:42px;min-width:42px;padding:5px}.choiceCards{gap:10px}.choice{min-height:92px}.choice h3{font-size:14px}

@media(max-width:1180px){.masterArea{grid-template-columns:1fr}.masterPhone{max-width:360px}.controlToolbox{grid-template-columns:1fr 1fr}.textTool,.controlHint{grid-column:1/-1}}
@media(max-width:1000px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.xiaoweiWorkspace{grid-template-columns:205px minmax(0,1fr)}}
@media(max-width:760px){
  body:has(.sidebar.open){overflow:hidden}body:has(.sidebar.open)::after{content:"";position:fixed;inset:0;z-index:20;background:rgba(2,4,9,.70);backdrop-filter:blur(3px)}
  .appShell{display:block}.sidebar{z-index:30;width:min(84vw,310px);padding:18px 14px;transform:translateX(-105%);transition:transform .2s ease;box-shadow:24px 0 60px rgba(0,0,0,.48)}.sidebar.open{transform:none}.brand{padding-bottom:16px}nav button{min-height:46px;font-size:14px}
  .workspace header{height:70px;padding:11px 14px;gap:10px}#mobileMenu{display:grid;place-items:center;flex:0 0 42px;min-width:42px;height:42px}header h1{max-width:48vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px}header .eyebrow{font-size:9px}.headerActions{gap:6px}.headerActions .secondary{display:none}.headerActions .status{max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pageContent{padding:14px 12px 88px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{padding:13px 14px}.stat strong{font-size:22px;margin-top:5px}.stat span{font-size:11px}.grid{grid-template-columns:1fr;gap:10px}.card{padding:14px;border-radius:10px}
  .controlTopbar{align-items:stretch;flex-direction:column;padding:9px}.controlMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.controlMetrics>span{display:grid;gap:1px;padding:6px;text-align:center}.controlTopActions{display:grid;grid-template-columns:1fr 1fr}.controlTopActions>*{width:100%;justify-content:center}.xiaoweiWorkspace{grid-template-columns:1fr;gap:9px}.controlRail{position:static;max-height:none}.controlRailHead{padding:9px}.controlDeviceList{grid-template-columns:repeat(2,minmax(0,1fr));max-height:210px;padding:6px}.controlDeviceItem{grid-template-columns:16px minmax(0,1fr);padding:2px}.controlDeviceItem>button{grid-template-columns:24px minmax(0,1fr);padding:5px}.controlDeviceItem button i{display:none}.controlCenter{padding:9px}.controlCenterHead{margin-bottom:8px;padding-bottom:8px}.controlCenterHead h2{font-size:14px}.masterArea{grid-template-columns:1fr;gap:9px}.masterPhone{max-width:330px}.controlToolbox{grid-template-columns:1fr;gap:7px}.textTool,.controlHint{grid-column:auto}.toolGroup,.textTool{padding:9px}.toolButtons{grid-template-columns:repeat(4,minmax(0,1fr))}.toolButtons button{min-height:51px}.textTool>div{grid-template-columns:1fr}.textTool button{width:100%}.followersSection{margin-top:10px}.followersGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .sectionHead{align-items:stretch;flex-direction:column;gap:10px;margin:20px 0 10px}.sectionHead>button{width:100%}.sectionHead h2{font-size:16px}.sectionHead p{margin:5px 0 0}
  .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.actions button{width:100%;min-height:42px;padding:8px}.deviceCard .actions button:first-child{grid-column:1/-1}.liveWall{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.liveCardTop,.liveCardBottom{padding:8px}.liveCardTop span{display:none}.liveDot{display:inline!important}.liveScreen{height:auto;aspect-ratio:9/16}.liveCardBottom>span{display:none}.liveCardBottom button{width:100%}.checkTiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.checkTile{grid-template-columns:auto 8px minmax(0,1fr);min-height:54px;padding:8px}.checkTile b{font-size:12px}.dayTiles{grid-template-columns:repeat(4,minmax(0,1fr))}.processFields{grid-template-columns:1fr}.processCard{grid-template-columns:minmax(0,1fr) 38px}.removeProcess{width:38px;min-width:38px}.choiceCards{grid-template-columns:1fr 1fr;gap:7px}.choice{min-height:78px;padding:10px}.choice span{font-size:11px}
  input,select,textarea{min-height:46px;font-size:16px}.formGrid,.choiceCards{grid-template-columns:1fr;gap:0}.formGrid .full{grid-column:auto}.choice{min-height:82px;text-align:left}.processCard{grid-template-columns:minmax(0,1fr) 42px;padding:12px}.rangeLine{gap:7px}
  .modal{padding:0;align-items:end}.modalCard{width:100%;max-height:92dvh;padding:20px 16px calc(18px + env(safe-area-inset-bottom));border-right:0;border-bottom:0;border-left:0;border-radius:18px 18px 0 0}.modalClose{width:42px;height:42px;top:8px;right:8px}
  .tableWrap{overflow:visible;border:0;background:transparent}table,thead,tbody,tr,th,td{display:block;min-width:0;width:100%}thead{display:none}tbody{display:grid;gap:10px}tr{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}td{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;padding:7px 0;border:0;overflow-wrap:anywhere}td::before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:700}td button{width:100%}
  .viewerPanel{inset:0;width:100%;padding:12px;border:0;border-radius:0}.screenStage{height:calc(100dvh - 160px)}.viewerControls{gap:6px}.viewerControls button{min-height:44px;padding:8px 5px}
  .toast{right:12px;bottom:12px;left:12px;max-width:none}.loginPage{padding:16px}.loginCard{width:100%;padding:28px 20px;border-radius:14px}
}
@media(max-width:380px){.pageContent{padding-inline:9px}.stats{gap:6px}.stat{padding:11px}td{grid-template-columns:96px minmax(0,1fr)}.liveScreen{height:auto}.checkTiles{grid-template-columns:1fr}.choiceCards{grid-template-columns:1fr}}
.removeProcess{align-self:start!important;height:38px!important;min-height:38px!important}

/* M28: bố cục điều khiển kiểu XIAOWEI, hai thanh bên cân đối */
.navShort{display:none}
@media(min-width:1181px){
  .xiaoweiWorkspace{grid-template-columns:232px minmax(320px,1fr) 232px}
  .taskRail{position:sticky;top:108px;max-height:calc(100dvh - 125px);padding:10px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 10px 30px rgba(36,50,74,.06)}
  .masterArea{display:block}.masterPhone{max-width:430px}
}
.taskRailHead{padding:2px 2px 9px;border-bottom:1px solid var(--line-soft)}
.taskRailHead>div{display:grid;gap:3px}.taskRailHead b{font-size:14px}.taskRailHead small{color:var(--muted);font-size:11px;line-height:1.35}
.taskRail .toolGroup,.taskRail .textTool{padding:10px}.taskRail .toolGroup>b,.taskRail .textTool>b{font-size:12px}
.taskRail .toolButtons{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.taskRail .toolButtons button{min-height:66px;font-size:20px}.taskRail .toolButtons button small{font-size:10px;line-height:1.25}
.taskRail .textTool>div{grid-template-columns:1fr}.taskRail .textTool input{font-size:12px}.taskRail .textTool button{width:100%;font-size:11px}
.taskRail .textTool label,.taskRail .controlHint{font-size:10px!important}
.equalDevices{display:grid;gap:10px}.equalDevicesHint{padding:9px 11px;border:1px solid #d9d7ff;border-radius:8px;background:#f2f1ff;color:#504dc9;font-size:12px;font-weight:750;text-align:center}.equalDeviceGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;align-items:start}.equalDeviceGrid .followerPhone{width:100%}.masterArea .masterPhone{width:min(100%,520px);max-width:520px}.followersGrid .followerPhone{max-width:300px}
.phoneCanvas,.phoneCanvas:hover:not(:disabled),.phoneCanvas:active:not(:disabled),.phoneCanvas:focus{transform:none!important;filter:none!important;box-shadow:none!important;outline:0!important;transition:none!important;-webkit-tap-highlight-color:transparent;user-select:none}

@media(min-width:761px) and (max-width:1180px){
  .xiaoweiWorkspace{grid-template-columns:205px minmax(0,1fr)}
  .taskRail{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
  .taskRailHead{grid-column:1/-1}.taskRail .textTool,.taskRail .controlHint{grid-column:1/-1}
}

@media(max-width:760px){
  body:has(.sidebar.open){overflow:auto}body:has(.sidebar.open)::after{display:none}
  .appShell{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .sidebar,.sidebar.open{position:fixed;inset:auto 0 0 0;z-index:45;width:100%;height:calc(68px + env(safe-area-inset-bottom));padding:0 4px env(safe-area-inset-bottom);transform:none;border:1px solid var(--line);border-width:1px 0 0;background:rgba(255,255,255,.97);box-shadow:0 -8px 24px rgba(36,50,74,.12);backdrop-filter:blur(16px)}
  .sidebar .brand,.sidebar .account{display:none}
  .sidebar nav{display:flex;height:68px;gap:0;overflow-x:auto;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}
  .sidebar nav button{position:relative;display:grid;flex:1 0 52px;min-width:52px;height:68px;min-height:68px;padding:7px 2px 5px;border:0;border-radius:0;background:transparent;place-items:center;align-content:center;gap:3px;text-align:center}
  .sidebar nav button.active{background:#f0efff;color:var(--primary-dim);box-shadow:inset 0 3px var(--primary)}
  .sidebar nav .navIcon{width:auto;font-size:20px;line-height:1}.sidebar nav .navText{display:none}.sidebar nav .navShort{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:800}
  #mobileMenu{display:none!important}.pageContent{padding-bottom:18px}.toast{bottom:calc(78px + env(safe-area-inset-bottom))}
  .taskRail{display:grid;grid-template-columns:1fr;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
  .taskRail .toolButtons{grid-template-columns:repeat(4,minmax(0,1fr))}.taskRail .toolButtons button{min-height:58px;font-size:18px}.taskRail .toolButtons button small{font-size:9px}
  .taskRail .textTool input{font-size:16px}
  .equalDeviceGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.equalDevicesHint{font-size:11px}.masterPhone{min-width:0}.masterArea .masterPhone{width:100%;max-width:360px}
}

/* M30: Tổng quan lưới đơn giản, không Main/HD/điều khiển hàng loạt. */
@media(max-width:760px){
  .overviewHead{align-items:stretch}.overviewActions{display:grid;grid-template-columns:1fr 1fr;width:100%}.overviewActions>*{width:100%;min-width:0;padding-inline:8px;font-size:11px}
  .liveWall{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.liveCardTop,.liveCardBottom{padding:8px}.liveCardTop strong{font-size:12px}.liveCardTop>div span{display:none}.liveDot{font-size:8px}.liveCardBottom{display:grid;gap:3px;min-height:48px}.liveCardBottom span{display:block!important;font-size:9px}.liveScreen span{font-size:10px}
  .scenarioManager{grid-template-columns:1fr;gap:10px;min-height:0}.managerPane{min-height:0}.managerPaneHead{min-height:64px;padding:10px}.managerPaneHead h3{font-size:13px}.iconActions{gap:4px}.iconAction{width:32px;min-width:32px;height:32px;min-height:32px}.managerList{min-height:220px;max-height:330px}.managerEmpty{min-height:220px;padding:24px 16px}.managerColumns{padding-inline:9px}.managerRow{padding:7px 9px}.scenarioColumns,.scenarioRow{grid-template-columns:32px minmax(0,1fr) 92px}.actionColumns,.actionRow{grid-template-columns:32px minmax(0,1fr) 92px}.scenarioRow strong,.actionRow strong{font-size:12px}.scenarioRow .badge{padding:4px 5px;font-size:8px}.actionRow>em{font-size:9.5px}.managerFooter{align-items:flex-start;flex-direction:column}.managerToggle{font-size:10px!important}
}
@media(max-width:380px){.overviewActions{grid-template-columns:1fr}.liveWall{grid-template-columns:1fr 1fr}}

/* M31: nhịp form/popup thống nhất cho desktop và mobile. */
.modalCard{overflow-x:hidden;padding:28px 30px 30px}
.modalCard.modalSimple{width:min(620px,100%)}
.modalCard.modalMedium{width:min(720px,100%)}
.modalCard.modalComplex{width:min(820px,100%)}
.modalClose{display:grid;width:38px;min-width:38px;height:38px;min-height:38px;padding:0;border-color:var(--line);background:var(--panel);font-size:20px;place-items:center}
#modalContent{min-width:0}
#modalContent>.eyebrow{margin:4px 52px 8px 0}
#modalContent>h2{margin:0 52px 0 0;font-size:22px;line-height:1.3}
#modalContent>.muted{margin:9px 52px 0 0}
#modalContent>form{margin-top:24px}
.formGrid,.compactForm,.scheduleForm,.actionEditorForm{gap:18px 16px;min-width:0}
.formGrid>*,.formGrid label,.formGrid fieldset,.rangeLine>*{min-width:0}
.formGrid label{gap:7px;margin-top:0;color:var(--muted);font-size:12.5px;line-height:1.35}
.formGrid label small{margin-top:-3px;color:var(--muted);font-size:10.5px}
.formGrid input,.formGrid select{min-height:44px}
.formGrid textarea{min-height:96px}
.formGrid>button.primary.full:last-child{min-width:210px;min-height:44px;margin-top:4px;justify-self:end}
.modalComplex .formGrid>button.primary.full:last-child{width:100%}
.actionEditorForm .rangeLine{gap:12px}
.actionEditorForm .rangeLine span{padding-bottom:13px;color:var(--muted);font-size:11px}
.actionEditorForm .rangeField{margin-top:2px;padding-top:3px}
.actionEditorForm .toggleRow{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:11px;border:1px solid var(--line)}
.actionEditorForm .toggleRow input{width:18px;min-height:18px;margin:0}.actionEditorForm .toggleRow span{display:grid;gap:3px}.actionEditorForm .toggleRow b{color:var(--text);font-size:13px}.actionEditorForm .toggleRow small{margin:0}
.aiStyleGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.aiStyleTile{position:relative;display:block!important;margin:0!important;cursor:pointer}.aiStyleTile input{position:absolute;width:1px;min-width:1px;height:1px;min-height:1px;opacity:0}.aiStyleTile span{display:grid;min-height:40px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);font-size:11px;font-weight:800;place-items:center}.aiStyleTile input:checked+span{border-color:var(--primary);background:#ecebff;color:var(--primary-dim);box-shadow:0 0 0 2px var(--primary-glow)}.fieldHint{margin:10px 0 0;color:var(--muted);font-size:10.5px;line-height:1.5}
.fieldGroup{margin:0;padding:14px}
.toggleRow{margin-top:0!important}
.scheduleForm{overflow:hidden}
.scheduleForm .dayTiles,.scheduleForm .checkTiles{min-width:0}
.scheduleForm .dayTiles input{position:absolute;width:1px;min-width:1px;height:1px;min-height:1px;margin:0;overflow:hidden;clip-path:inset(50%)}

@media(max-width:760px){
  .modalCard,.modalCard.modalSimple,.modalCard.modalMedium,.modalCard.modalComplex{width:100%;max-width:none;padding:20px 16px calc(18px + env(safe-area-inset-bottom))}
  #modalContent>.eyebrow{margin-top:2px}#modalContent>h2{font-size:20px}#modalContent>.muted{font-size:12px}
  #modalContent>form{margin-top:20px}
  .formGrid,.compactForm,.scheduleForm,.actionEditorForm{grid-template-columns:1fr;gap:15px}
  .formGrid .full{grid-column:auto}
  .formGrid>button.primary.full:last-child,.modalSimple .formGrid>button.primary.full:last-child,.modalMedium .formGrid>button.primary.full:last-child{width:100%;min-height:48px;margin-top:5px;justify-self:stretch}
  .actionEditorForm .rangeLine{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px}
  .actionEditorForm .rangeLine span{padding-bottom:15px}
  .aiStyleGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fieldGroup{padding:12px 10px}.dayTiles{grid-template-columns:repeat(4,minmax(0,1fr))}
  .scheduleForm .checkTiles{grid-template-columns:1fr}
}
