:root{--navy:#14243d;--blue:#216bda;--bg:#f4f7fc;--muted:#748198;--line:#e6ebf3}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:#1a2940}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#2267c9;text-decoration:none}h1,h2,p{margin-top:0}h1{font-size:26px;line-height:1.3}h2{font-size:18px;margin:0 0 4px}.eyebrow{color:#4776c8;font-size:11px;letter-spacing:.14em;font-weight:750}.login-background{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(ellipse at top left,#254b86 0,#122038 48%,#0b162b 100%)}.login-panel{width:min(420px,100%);background:#fff;border-radius:20px;padding:32px;box-shadow:0 22px 90px #020a1b55}.logo-mark,.brand-icon{background:#2169d8;color:white;border-radius:12px;display:grid;place-items:center;font-size:25px;width:46px;height:46px;margin-bottom:14px}.login-panel h1{margin:8px 0 8px}.login-panel p{color:#69758a;font-size:14px}.stack{display:grid;gap:16px}.stack label{display:grid;gap:6px;font-weight:650;color:#3d4a61;font-size:13px}.stack input{width:100%;border:1px solid #ccd5e3;border-radius:9px;padding:12px}.stack input:focus,.toolbar input:focus,textarea:focus{outline:2px solid #b2ceff;border-color:var(--blue)}.primary{border:0;background:var(--blue);color:white;border-radius:10px;padding:12px 20px;font-weight:700}.primary:hover{background:#1659c1}.links{display:flex;justify-content:space-between;margin-top:22px;font-size:13px}.message{color:#b43e2b;font-size:13px;min-height:22px;margin:12px 0}.dashboard{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{background:var(--navy);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:25px 14px}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;padding:2px 6px 30px}.brand-icon{width:38px;height:38px;margin:0;border-radius:9px;flex:0 0 38px}.brand small{display:block;font-size:9px;letter-spacing:.14em;color:#8fa9d0;font-weight:400}.sidebar nav{display:grid;gap:8px}.nav-btn{width:100%;background:transparent;color:#b3c3da;text-align:left;border:0;border-radius:9px;padding:12px 14px;font-weight:600}.nav-btn span{font-size:20px;margin-right:12px}.nav-btn.active,.nav-btn:hover{background:#2d4569;color:white}.sidebar-foot{margin-top:auto;border-top:1px solid #344760;padding:14px 12px 0;color:#c5d2e7}.sidebar-foot button{background:transparent;color:#b9cde8;padding:5px 0;border:0;margin-top:7px}.dashboard-body{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;padding:24px 35px;border-bottom:1px solid var(--line)}.topbar h1{font-size:25px;margin:2px 0 0}.top-actions{display:flex;align-items:center;gap:14px;font-size:13px}.refresh,#logsRefresh{border:1px solid #d0dded;background:#fff;border-radius:8px;color:#2c5588;padding:9px 12px}.content{padding:28px 35px;max-width:1500px;margin:0 auto}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.metrics article{border:1px solid var(--line);background:#fff;border-radius:14px;padding:18px 20px}.metrics small{color:var(--muted);font-size:12px;display:block}.metrics strong{font-size:31px;display:block;margin-top:7px}.surface{background:#fff;border:1px solid var(--line);border-radius:15px;padding:23px;margin-bottom:20px}.surface.narrow{max-width:560px}.section-heading{display:flex;gap:20px;justify-content:space-between}.section-heading p{color:#718097;font-size:13px;margin:0 0 20px}.toolbar{display:flex;gap:10px;margin-bottom:17px;align-items:center}.toolbar input,.toolbar select{background:#fff;border:1px solid #d6dfed;border-radius:9px;padding:9px 12px}.toolbar input{flex:1;max-width:350px}.user-list{display:grid;gap:16px}.user-card{border:1px solid #e0e8f3;border-radius:13px;padding:18px;background:#fcfdff}.user-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.username{font-size:17px;font-weight:700}.user-meta{font-size:12px;color:var(--muted)}.status{display:inline-block;padding:3px 9px;border-radius:18px;font-size:12px;background:#fdf1d5;color:#9b6819}.status.approved{background:#e3f7eb;color:#14814d}.status.disabled{background:#ffe9e9;color:#b33939}.user-controls{display:grid;grid-template-columns:minmax(140px,180px) 1fr;gap:15px}.user-controls label{display:grid;gap:6px;font-weight:600;font-size:12px;color:#4c5d77}.user-controls select{background:#fff;border:1px solid #d8e0ec;border-radius:8px;padding:9px 10px}.check-label{display:flex!important;align-items:center;gap:9px!important;font-size:14px!important}.check-label input{width:19px;height:19px;accent-color:#1769d3}.rule-row{margin-top:13px}.rule-row label{font-size:12px;font-weight:700;color:#51617a}.rule-row textarea{width:100%;display:block;min-height:78px;resize:vertical;margin:7px 0;background:#fff;border:1px solid #d7deea;border-radius:9px;padding:11px;color:#1d365d}.rule-hint{font-size:12px;color:#7b8598}.rule-hint code{color:#126bc1}.save-row{display:flex;gap:10px;align-items:center;margin-top:12px}.save-row button{border:0;background:#236dda;color:white;padding:9px 16px;border-radius:8px;font-weight:650}.save-row span{color:#2e8967;font-size:13px}.log-table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:730px}th,td{text-align:left;border-bottom:1px solid #edf0f6;padding:12px 9px;font-size:13px;white-space:nowrap}th{color:#697a96;background:#f8fafe}td{color:#354560}td.changed{color:#1459b1;font-weight:700}.empty{padding:35px;text-align:center;color:#8a96a6}@media(max-width:950px){.sidebar{width:190px}.dashboard{grid-template-columns:190px 1fr}.content{padding:22px}.topbar{padding:20px 24px}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.dashboard{display:block}.sidebar{position:relative;width:100%;height:auto;padding:11px 12px}.brand{padding:2px 8px 10px;font-size:15px}.brand small{display:none}.sidebar nav{display:flex;gap:5px;overflow:auto}.nav-btn{white-space:nowrap;padding:9px 10px;font-size:12px}.nav-btn span{margin-right:3px;font-size:13px}.sidebar-foot{position:absolute;right:17px;top:10px;margin:0;border:0;padding:0;font-size:11px;display:grid;gap:0}.sidebar-foot button{font-size:11px;margin:0}.topbar{padding:16px;align-items:flex-start}.topbar h1{font-size:21px}.top-actions{gap:8px}.top-actions a{display:none}.content{padding:12px}.metrics{gap:8px;margin-bottom:12px}.metrics article{padding:11px}.metrics strong{font-size:23px}.surface{padding:14px}.user-card{padding:12px}.user-controls{grid-template-columns:1fr}.toolbar{gap:7px}.toolbar input{min-width:0;flex:1}.toolbar select{max-width:120px}}

/* V33: compact desktop console, spacious phone experience, live calculator panel. */
:root{--navy:#152744;--blue:#2169d2;--bg:#f2f5fa;--line:#e1e7f0}
body{color:#20314c;line-height:1.55}
.dashboard{grid-template-columns:245px minmax(0,1fr)}
.sidebar{z-index:20;box-shadow:3px 0 24px #172d4910}
.dashboard-body{width:100%;min-width:0}
.topbar{padding:22px clamp(18px,3vw,38px);gap:18px}
.topbar h1{font-size:clamp(20px,2.4vw,26px)}
.top-actions{flex-wrap:wrap;justify-content:flex-end}
.top-actions a{white-space:nowrap}
.top-actions .admin-upgrade-link{font-size:12px;color:#6f7c93}
.content{width:100%;max-width:1520px;padding:clamp(14px,2vw,30px)}
.surface{border-radius:16px;padding:clamp(16px,2vw,25px);box-shadow:0 4px 18px #1c2d4a06}
.user-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));align-items:start;gap:14px}
.user-card{height:100%;padding:18px;border-radius:14px;background:#fbfcff}
.user-heading{align-items:flex-start}
.username{font-variant-numeric:tabular-nums}
.rule-row textarea{min-height:72px;max-height:240px}
.save-row{flex-wrap:wrap}
.save-row .monitor-open{background:#e7effb;color:#235aac}
.save-row button{font-size:13px;min-height:40px}
.metrics article{box-shadow:0 3px 15px #142b4207}
.monitor-intro .section-heading p{max-width:800px;margin:6px 0 16px}
.monitor-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.monitor-controls label{font-size:13px;color:#6c7990;font-weight:650}
.monitor-controls select{padding:10px 14px;border:1px solid #d2dce9;border-radius:10px;background:#fff;min-width:170px;max-width:100%;font:inherit}
.live-pill{font-size:12px;padding:7px 12px;border-radius:20px;background:#eff2f7;color:#58667d;white-space:nowrap}
.live-pill.online{background:#e1f6e9;color:#117a47;font-weight:700}
.live-pill.offline{background:#f4f0f0;color:#876265}
.monitor-grid{display:grid;grid-template-columns:minmax(280px,400px) minmax(0,1fr);align-items:start;gap:clamp(16px,2vw,28px)}
.monitor-phone-column{min-width:0}
.live-device{--live-op:#43dfa2;width:min(100%,365px);margin:0 auto;background:#202020;border:6px solid #172231;border-radius:22px;overflow:hidden;box-shadow:0 22px 38px #1c294225;display:flex;flex-direction:column;color:#202020}
.live-screen{height:230px;position:relative;display:flex;flex-direction:column;background:#202020;color:#ececec;padding:12px 10px 10px}
.live-device-menu{color:#969696;letter-spacing:1px;font-size:20px;line-height:22px;opacity:.7}
.live-device-caption{font-size:10px;color:#a8b4ba;position:absolute;left:45px;top:15px;right:10px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-device-history{flex:1;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;font-size:15px;line-height:1.5;font-weight:300;color:#d5dce0;text-align:right;white-space:nowrap}
.live-device-display{font-size:clamp(25px,3vw,35px);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:6px}
.live-device-arrow{position:absolute;left:10px;bottom:12px;width:21px;height:21px;border:1px solid #555;color:#888;display:grid;place-items:center;border-radius:50%;font-size:20px;line-height:14px}
.live-device-keypad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));aspect-ratio:4/5;width:100%;gap:0;background:#d5d5d5}
.live-device-keypad>div{background:#d5d5d5;border-right:.5px solid #767676;border-bottom:.5px solid #767676;display:flex;align-items:center;justify-content:center;font-size:clamp(24px,3vw,37px);line-height:1;color:#202020;font-weight:400}
.live-device-keypad>div.live-op{background:var(--live-op)}
.live-device-keypad>div.live-tall{grid-column:4;grid-row:4/span 2}
.live-device-keypad>div.live-wide{grid-column:span 2}
.live-device.history-open .live-screen{height:460px}
.live-device.history-open .live-device-keypad{display:none}
.live-device.history-open .live-device-display{display:none}
.live-device.history-open .live-device-arrow{bottom:68px;transform:rotate(180deg)}
.live-device-footer{display:grid;grid-template-columns:1fr 1fr;height:56px}
.live-device-footer>span{background:#d5d5d5;display:flex;justify-content:center;align-items:center;font-size:22px}
.live-device-footer>span:last-child{background:var(--live-op)}
.monitor-caption{font-size:12px;color:#77849a;max-width:365px;margin:12px auto 8px;text-align:center}
.monitor-side{min-width:0;display:grid;gap:18px}
.monitor-card{border:1px solid var(--line);border-radius:16px;padding:22px;background:#fff;box-shadow:0 5px 20px #1b2d4b05}
.monitor-card h3{font-size:16px;margin:0 0 8px}
.monitor-card p{font-size:13px;color:#718198;line-height:1.65}
.monitor-card label{display:block;font-size:13px;font-weight:700;color:#4c6080;margin:14px 0 6px}
.monitor-card input{width:100%;border:1px solid #cbd7e7;border-radius:10px;min-height:47px;padding:10px 12px;font-size:16px}
.monitor-card input:focus{outline:2px solid #a3c4f8;border-color:#3676ca}
.monitor-button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.monitor-button-row button{flex:1;min-width:135px;border-radius:10px;padding:12px 14px;font-weight:700;font-size:13px}
.monitor-button-row button:disabled{opacity:.48;cursor:not-allowed}
.outline-button{color:#145bb5;background:#ecf3fd;border:1px solid #c7d9f3}
.recent-list{max-height:260px;overflow:auto}
.recent-item{padding:12px 0;border-top:1px solid #edf0f5;word-break:break-word}
.recent-item strong{display:block;font-size:14px;font-weight:700;color:#344b6a}
.recent-item small{font-size:12px;color:#8190a5}
.muted{font-size:13px;color:#8090a3}
@media(max-width:1100px){.monitor-grid{grid-template-columns:minmax(260px,360px) minmax(0,1fr)}.sidebar{width:210px}.dashboard{grid-template-columns:210px 1fr}.user-list{grid-template-columns:1fr}}
@media(max-width:820px){.monitor-grid{grid-template-columns:1fr}.monitor-phone-column{width:100%}.monitor-side{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-side .monitor-card:first-child{grid-column:1/-1}.live-device{max-width:345px}.top-actions .admin-upgrade-link{display:none}}
@media(max-width:650px){.dashboard{display:block}.sidebar{width:100%;height:auto;position:relative;padding:12px 12px 9px}.brand{padding:0 7px 12px}.sidebar nav{display:flex;overflow:auto;scrollbar-width:none;gap:6px;padding-bottom:2px}.nav-btn{flex:0 0 auto;font-size:12px;padding:9px 11px}.sidebar-foot{right:14px;top:14px}.topbar{padding:17px 14px}.top-actions{gap:8px}.top-actions button{padding:8px}.content{padding:13px}.surface{padding:16px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.user-list{grid-template-columns:1fr}.user-card{padding:15px}.user-controls{grid-template-columns:1fr}.monitor-side{grid-template-columns:1fr}.monitor-side .monitor-card:first-child{grid-column:auto}.monitor-card{padding:17px}.monitor-grid{gap:16px}.monitor-phone-column{order:0}.monitor-side{order:1}.monitor-controls select{flex:1;min-width:0}.monitor-button-row button{min-width:0}.login-panel{padding:24px}.toolbar{flex-wrap:wrap}.toolbar input{flex:1 1 180px}.section-heading p{line-height:1.6}}
@media(max-width:370px){.nav-btn{padding:8px}.monitor-button-row{flex-direction:column}}
@media(max-width:650px){
  .sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;overflow:visible;padding:0 0 3px}
  .nav-btn{width:100%;min-width:0;text-align:center;white-space:normal;padding:10px 5px;line-height:1.35}
  .nav-btn span{margin-right:4px}
}


/* V43: Stable live mirror — polling changes content, never the device's box size. */
.monitor-grid{grid-template-columns:minmax(280px,380px) minmax(0,1fr);align-items:start;gap:clamp(16px,2.25vw,28px)}
.monitor-phone-column{min-width:0;align-self:start;position:relative}
.live-device{
  width:min(100%,365px);
  aspect-ratio:365 / 700;
  height:auto;
  min-height:0;
  flex-shrink:0;
  contain:layout paint;
  overflow:hidden;
}
.live-screen{
  height:auto;
  flex:0 0 33.5%;
  min-height:0;
  overflow:hidden;
}
.live-device-keypad{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  aspect-ratio:auto;
}
.live-device.history-open .live-screen{
  height:auto;
  flex:1 1 auto;
}
.live-device.history-open .live-device-keypad{display:none}
.live-device-footer{flex:0 0 56px;min-height:56px}
.live-device-display{flex:0 0 auto;line-height:1.2;min-height:40px;font-variant-numeric:tabular-nums}
.live-device-history{min-height:0;white-space:nowrap;gap:0}
.live-device-history>div{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.52}
.live-device-menu,.live-device-caption,.live-device-arrow{flex-shrink:0}
.live-pill{display:inline-flex;align-items:center;justify-content:center;min-width:100px;height:34px}
.monitor-card{min-width:0}
.monitor-card textarea#liveExpression{
  display:block;
  width:100%;
  height:118px;
  min-height:118px;
  resize:vertical;
  max-height:250px;
  padding:17px 16px;
  border:1px solid #cbd7e7;
  border-radius:12px;
  background:#fff;
  color:#15253e;
  font:500 clamp(18px,1.6vw,23px)/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;
  letter-spacing:.01em;
  overflow-wrap:anywhere;
}
.monitor-card textarea#liveExpression:focus{outline:2px solid #a3c4f8;border-color:#3676ca}
.input-hint{font-size:12px!important;color:#8390a5!important;margin:6px 0 0!important}
.monitor-button-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.monitor-button-row button{width:100%;min-width:0;min-height:50px;padding:12px 10px;white-space:normal;line-height:1.35}
.monitor-side{min-width:0;align-content:start}
.recent-list{overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;max-height:280px}
@media (min-width:1101px){.monitor-grid{grid-template-columns:minmax(290px,380px) minmax(0,1fr)}}
@media (max-width:1100px){.monitor-grid{grid-template-columns:minmax(250px,345px) minmax(0,1fr)}}
@media (max-width:920px){.monitor-grid{grid-template-columns:1fr}.monitor-phone-column{width:100%;}.monitor-side{grid-template-columns:1fr 1fr}.monitor-side .monitor-card:first-child{grid-column:1/-1}}
@media (max-width:650px){
  .monitor-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .monitor-phone-column,.monitor-side{width:100%;min-width:0}
  .monitor-side{grid-template-columns:1fr}
  .monitor-side .monitor-card:first-child{grid-column:auto}
  .live-device{width:min(100%,345px)}
  .monitor-card textarea#liveExpression{height:114px;min-height:114px;padding:14px}
  .monitor-button-row{gap:9px}
  .monitor-button-row button{font-size:13px;min-height:48px}
  .monitor-controls{display:grid;grid-template-columns:1fr auto;gap:10px}
  .monitor-controls label{grid-column:1/-1}
  .monitor-controls select{width:100%;max-width:100%}
  .content{overflow-x:hidden}
}
@media (max-width:350px){.monitor-button-row{grid-template-columns:1fr}.monitor-controls{grid-template-columns:1fr}.live-pill{width:max-content}}
/* New records update inside fixed panels instead of pushing surrounding cards. */
.monitor-side .recent-list{height:228px;min-height:228px;max-height:228px;}
.monitor-side .monitor-card:first-child .message{
  height:44px;
  min-height:44px;
  max-height:44px;
  overflow-y:auto;
  overflow-wrap:anywhere;
  scrollbar-width:thin;
}
@media(max-width:650px){
  .monitor-side .recent-list{height:190px;min-height:190px;max-height:190px;}
  .monitor-side .monitor-card:first-child .message{height:50px;min-height:50px;max-height:50px;}
}

/* V46 administrator route and stable mirror layout */
body.admin-booting .login-background,body.admin-booting .dashboard{visibility:hidden!important}
body.admin-booting{background:#f2f5fa}
.sidebar .app-package-link{display:block;text-decoration:none;color:#b3c3da;white-space:normal}
.sidebar .app-package-link:hover{background:#2d4569;color:#fff}
.top-actions .top-app-link{color:#1a62c7;font-weight:650;text-decoration:none}
.live-device{position:relative;overflow:hidden;aspect-ratio:365/700;contain:layout paint;}
.live-device .live-screen{position:absolute;inset:0 0 66.5% 0;height:auto!important;flex:initial;min-height:0;overflow:hidden;}
.live-device .live-device-keypad{position:absolute;left:0;right:0;bottom:0;width:100%;height:66.5%!important;display:grid!important;flex:initial;aspect-ratio:auto;min-height:0;}
.live-device.history-open .live-screen{inset:0 0 56px 0;height:auto!important;flex:initial;}
.live-device.history-open .live-device-keypad{visibility:hidden;pointer-events:none;}
.live-device .live-device-footer{position:absolute;left:0;right:0;bottom:0;height:56px;display:grid;z-index:2;}
.live-device .live-device-footer[hidden]{display:none!important}
.live-device .live-device-history{min-height:0;overflow:hidden;}
.live-device .live-device-display{font-variant-numeric:tabular-nums;flex-shrink:0;}
.monitor-phone-column{align-self:start;}
@media(max-width:650px){.top-actions .top-app-link{display:none}}

.recent-edit-btn{margin-top:8px;padding:6px 14px;border:1px solid #a9c6ef;border-radius:8px;background:#edf5ff;color:#1762b5;cursor:pointer;font-size:13px}

/* V51 — stable mirror; live changes do not resize or flash the surrounding panels. */
.live-device{overflow:hidden;contain:layout paint size;}
.live-screen{overflow:hidden;}
.live-device-history{justify-content:flex-end;overflow:hidden;white-space:nowrap;align-items:stretch;min-height:0;line-height:1.4;}
.live-device-history>.live-history-slot{width:100%;max-width:100%;min-height:22px;height:22px;flex:0 0 22px;position:relative;overflow:hidden;white-space:nowrap;text-overflow:clip;}
.live-history-tail{display:block;width:max-content;min-width:100%;white-space:nowrap;text-align:right;margin-left:auto;}
.live-device-display{position:relative;width:100%;max-width:100%;min-height:40px;overflow:hidden;white-space:nowrap;text-overflow:clip;text-align:right;}
.live-device-display>.live-value-tail{display:block;min-width:100%;width:max-content;white-space:nowrap;text-align:right;margin-left:auto;}
.monitor-phone-column,.monitor-side{overflow-anchor:none}
.monitor-side .recent-list{overflow-anchor:none}
.live-device-display{display:flex!important;justify-content:flex-end!important;align-items:center!important;}
.live-device-display>.live-value-tail{flex:0 0 auto;margin-left:0!important;}
.live-device-history>.live-history-slot{display:flex;justify-content:flex-end;align-items:center;}
.live-history-tail{flex:0 0 auto;margin-left:0!important;}

/* V52: right-aligned edit and growing inline textarea */
.recent-head{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}
.recent-head strong{flex:1;min-width:0;overflow-wrap:anywhere}
.recent-edit-btn{flex:0 0 auto;margin:0!important;white-space:nowrap;padding:5px 10px!important}
.recent-inline-form{margin-top:10px;display:grid;gap:8px}
.recent-inline-form textarea{width:100%;min-height:76px;resize:none;overflow:hidden;border:1px solid #aac5ed;border-radius:9px;padding:12px;font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.recent-inline-actions{display:flex;gap:8px}
.recent-inline-actions button{border:0;border-radius:8px;padding:8px 14px;font-weight:650;background:#246ad1;color:#fff}
.recent-inline-actions .recent-cancel-btn{background:#e9eef5;color:#42516b}
/* phone-first dense administration; retain fixed monitor geometry and scrolling */
@media(max-width:650px){
 .dashboard{display:block}
 .sidebar{padding:7px 10px;position:sticky;top:0;z-index:20;box-shadow:0 1px 8px #101d3022}
 .sidebar .brand{padding:0 4px 5px;font-size:13px;line-height:1.1}
 .sidebar .brand-icon{width:25px;height:25px;flex-basis:25px;font-size:16px}
 .sidebar nav{display:flex;gap:4px;overflow-x:auto;flex-wrap:nowrap;padding:0;scrollbar-width:none}
 .sidebar .nav-btn{width:auto;min-width:max-content;flex:0 0 auto;white-space:nowrap;padding:6px 8px;font-size:11px;border-radius:6px}
 .sidebar .nav-btn span{font-size:12px;margin-right:2px}
 .sidebar-foot{top:8px;right:10px;font-size:10px}
 .sidebar-foot #adminName{display:none}
 .topbar{padding:7px 12px;min-height:45px;gap:6px}
 .topbar h1{font-size:16px;margin:0}
 .topbar .eyebrow{display:none}
 .top-actions{gap:5px;font-size:11px}
 .top-actions a:not(.admin-upgrade-link){display:none}
 .top-actions .refresh{padding:5px 8px}
 .content{padding:8px;max-width:100%}
 .surface,.monitor-card{padding:10px;border-radius:10px;margin-bottom:8px}
 .section-heading p,.monitor-intro p,.monitor-caption{display:none}
 .monitor-intro{padding:8px 10px}
 .monitor-intro h2,.monitor-card h3{font-size:15px;margin-bottom:5px}
 .monitor-controls{display:flex;flex-wrap:nowrap;align-items:center;gap:5px}
 .monitor-controls label{display:none}
 .monitor-controls select{min-width:0;flex:1;font-size:13px;padding:7px}
 .live-pill{flex:0 0 auto;font-size:10px;padding:5px 7px}
 .monitor-grid{gap:8px;grid-template-columns:minmax(0,1fr)}
 .monitor-phone-column{display:flex;justify-content:center}
 .live-device{width:min(100%,230px);max-width:230px}
 .monitor-side{gap:8px;grid-template-columns:1fr}
 .monitor-card textarea#liveExpression{min-height:65px;height:65px;padding:9px;font-size:15px}
 .monitor-card label,.monitor-card .input-hint{font-size:11px}
 .monitor-button-row button{min-height:36px;font-size:12px;padding:6px}
 .monitor-side .recent-list{height:150px;min-height:150px;max-height:150px}
 .recent-item{padding:7px 0}
 .recent-item strong{font-size:12px}
 .recent-item small{font-size:10px}
 .recent-edit-btn{font-size:11px!important}
 .metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
 .metrics article{padding:7px 5px}
 .metrics strong{font-size:19px;margin-top:2px}
 .metrics small{font-size:10px}
 .user-card{padding:9px}
 .user-list{gap:7px}
 .user-heading{margin-bottom:5px}
 .user-controls{gap:6px}
 .rule-row{margin-top:7px}
 .rule-row textarea{min-height:55px}
 .save-row{margin-top:6px}
}


/* V53: stable responsive admin (no pinch-zoom, no sideways overflow). */
html{max-width:100%;min-height:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;touch-action:auto;}
body{width:100%;max-width:100%;overflow-x:hidden;overscroll-behavior-x:none;}
.dashboard,.dashboard-body,.content,.monitor-grid,.monitor-phone-column,.monitor-side,.monitor-card,.surface{min-width:0;max-width:100%;}
.dashboard{overflow-x:clip;}
.monitor-card, .history-panel{overflow-anchor:none;}
.live-device{isolation:isolate;contain:layout size paint;aspect-ratio:365/700;transform:translateZ(0);backface-visibility:hidden;}
.live-device-history>.live-history-slot,.live-device-display{contain:layout paint;}
.live-history-tail,.live-value-tail{font-variant-numeric:tabular-nums;}
.recent-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 8px;}
.recent-title-row h3{margin:0;white-space:nowrap;}
.recent-total{font-size:11px;color:#697d99;font-variant-numeric:tabular-nums;}
.monitor-side .all-recent-list{height:325px;min-height:325px;max-height:325px;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain;overflow-anchor:none;}
.all-recent-list .recent-item{box-sizing:border-box;min-width:0;max-width:100%;}
.recent-bottom-row{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:8px;}
.recent-bottom-row button{border:1px solid #d2def0;border-radius:7px;padding:6px 12px;background:#f4f8ff;color:#245c9a;font-size:12px;}
.recent-bottom-row button[hidden]{display:none!important}
.recent-loading-text{min-height:16px;font-size:11px;margin:4px 0 0!important;line-height:1.4!important;color:#7d899e!important;}
.all-recent-list .recent-inline-form textarea{min-height:76px;max-width:100%;font-size:16px;}
@media(max-width:650px){
  html,body{width:100%;margin:0;overflow-x:hidden;}
  .dashboard{width:100%;max-width:100vw;display:block;}
  .sidebar{box-sizing:border-box;max-width:100%;padding:7px 8px!important;}
  .sidebar nav{scrollbar-width:none;max-width:100%;overscroll-behavior-x:contain;}
  .sidebar nav .nav-btn{font-size:11px;}
  .sidebar nav{touch-action:pan-x;}
  .topbar{max-width:100%;padding:8px 12px!important;}
  .content{padding:8px!important;margin:0;}
  .monitor-grid{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;}
  .monitor-phone-column{width:100%;max-width:100%;}
  .live-device{width:min(100%,232px)!important;max-width:232px!important;min-width:0;}
  .monitor-side{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;}
  .monitor-card{padding:10px!important;border-radius:10px;min-width:0;}
  .monitor-controls select{font-size:16px!important;max-width:100%;}
  .toolbar input,.toolbar select,.stack input,.monitor-card textarea,.user-controls select{font-size:16px!important;}
  .monitor-side .all-recent-list{height:270px!important;min-height:270px!important;max-height:270px!important;}
  .monitor-card textarea#liveExpression{max-width:100%;}
  .recent-head{align-items:flex-start;}
  .recent-head strong{overflow-wrap:anywhere;font-size:12px;}
  .recent-title-row h3{font-size:14px;}
}

/* V56 stable monitor: source is polled, the editable draft is never overwritten. */
.live-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;flex-wrap:wrap}
.live-editor-heading label{margin:0!important}
.live-reload-btn{background:#edf4ff;color:#145db5;border:1px solid #bbd1ef;border-radius:9px;padding:8px 11px;font-size:12px;font-weight:700;flex-shrink:0;cursor:pointer}
.live-draft-state{min-height:18px;margin:5px 0 0!important;font-size:12px!important;color:#617794!important}
.monitor-card textarea#liveExpression{min-height:118px;resize:vertical;overflow-y:auto;overflow-anchor:none}
.live-device,.live-device-history,.live-device-display{overflow-anchor:none}

/* V57: compact paged table navigation; admin operation audit stays in the DB. */
.logs-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;flex-wrap:wrap}
.logs-footer .recent-more{width:auto;min-width:120px}

/* V58: passive LIVE state in place of manual-refresh button. */
.live-follow-label{font-size:12px;padding:6px 10px;border-radius:99px;background:#e4f7eb;color:#176a48;font-weight:650;white-space:nowrap;align-self:center;}
@media(max-width:480px){.live-follow-label{font-size:11px;padding:5px 8px}.live-editor-heading{gap:8px}}


/* V61: contextual whole-number deletion action */
#liveDeleteGroup{color:#ac3a35;border-color:#e7c5c0;white-space:nowrap}
@media(max-width:480px){#liveDeleteGroup{padding:6px 8px;font-size:12px}}
/* Keep three editor actions readable on narrow phones. */
.live-editor-heading{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.live-editor-heading label{flex:1 1 auto;min-width:128px}
@media(max-width:420px){#liveDeleteGroup{font-size:12px;min-height:33px;padding:6px 9px}}

/* V68: phone live-expression editor opens as a true full-screen editing surface.
   The SAME textarea remains connected to the live merge logic, so member input
   continues to arrive while the administrator edits. */
.live-editor-fullscreen-backdrop,.live-editor-fullscreen-bar{display:none}
@media(max-width:650px){
  body.live-editor-fullscreen{overflow:hidden!important;overscroll-behavior:none}
  .live-editor-fullscreen-backdrop{
    display:block;position:fixed;inset:0;z-index:9996;background:#f6f8fc;
  }
  .live-editor-fullscreen-bar{
    display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;
    gap:1px 10px;align-items:center;position:fixed;left:0;right:0;top:var(--live-editor-vtop,0px);z-index:9999;
    min-height:68px;padding:9px 10px calc(8px + env(safe-area-inset-top,0px));
    background:#14243d;color:#fff;box-shadow:0 2px 12px #0b162b33;
  }
  .live-editor-fullscreen-bar strong{font-size:15px;line-height:1.3;grid-column:1}
  .live-editor-fullscreen-bar span{font-size:10px;line-height:1.35;color:#bcd0ec;grid-column:1;white-space:normal}
  .live-editor-fullscreen-bar button{
    grid-column:2;grid-row:1/3;border:0;border-radius:9px;background:#fff;color:#174b8f;
    padding:9px 14px;font-weight:750;min-width:64px;
  }
  body.live-editor-fullscreen #liveExpression{
    position:fixed!important;z-index:9998!important;left:8px!important;right:8px!important;
    top:calc(var(--live-editor-vtop,0px) + var(--live-editor-bar-h,68px) + 6px)!important;bottom:auto!important;width:auto!important;
    height:calc(var(--live-editor-vh,100dvh) - var(--live-editor-bar-h,68px) - 14px)!important;
    min-height:0!important;max-height:none!important;margin:0!important;padding:16px!important;
    resize:none!important;border-radius:10px!important;border:1px solid #aabbd2!important;
    background:#fff!important;color:#14243d!important;
    font:500 19px/1.65 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace!important;
    font-variant-ligatures:none!important;font-feature-settings:"liga" 0,"calt" 0!important;
    letter-spacing:.01em;overflow:auto!important;overscroll-behavior:contain;
    white-space:pre-wrap!important;overflow-wrap:break-word!important;word-break:break-word!important;
    -webkit-user-select:text!important;user-select:text!important;touch-action:auto!important;
    -webkit-overflow-scrolling:auto;caret-color:#216bda;scroll-padding:22px;
    box-shadow:0 8px 35px #132a4c22;
  }
}
