.dm25{min-width:0;color:inherit}.dm25-tools,.dm25 form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:12px 0}.dm25 label{display:grid;gap:6px;min-width:130px;flex:1}.dm25 input,.dm25 select{width:100%;box-sizing:border-box}.dm25 button{cursor:pointer;white-space:normal}.dm25 button[aria-pressed=true]{border-color:#14b8a6;box-shadow:0 0 0 2px #14b8a633}.dm25-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.dm25-metrics article,.dm25-detail{padding:16px;border:1px solid #839eac55;border-radius:16px;background:#7ba4a510}.dm25 strong,.dm25 small{display:block}.dm25 small,.dm25-hint{opacity:.85;font-size:.85em}.dm25-metrics strong{font-variant-numeric:tabular-nums;font-size:1.2em;margin-top:8px}.dm25-scroll{overflow:auto;border:1px solid #839eac55;border-radius:14px;margin-top:16px}.dm25 table{width:100%;min-width:780px;border-collapse:collapse}.dm25 td,.dm25 th{padding:12px;text-align:left;border-bottom:1px solid #839eac44}.dm25 td small{margin-top:4px}.dm25-details{margin-top:16px}.dm25 details{padding:14px;border:1px solid #839eac55;border-radius:14px;margin:12px 0}.dm25 summary{cursor:pointer}.dm25-error{color:#dc596d}.dm25-history{display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;padding:10px 0;border-bottom:1px solid #839eac44}.dm25 dd{margin-bottom:8px}.dm25 form button{min-height:42px}#modal:has(.dm25){width:min(1250px,95vw);max-width:95vw}.dark .dm25 input,.dark .dm25 select{background:#102c40;color:#e9faff;border:1px solid #52798d}.dark .dm25 button{background:#17394b;color:#effaff;border:1px solid #52798d}.dark .dm25-error,[data-appearance=night] .dm25-error{color:#ff9fae}@media(max-width:650px){.dm25-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dm25-tools>*{flex:1}.dm25 form>*{flex:1 1 140px}.dm25-history{display:grid;gap:4px}}@media(prefers-reduced-motion:reduce){.dm25 *{transition:none!important;animation:none!important}}

.dm25-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.dm25-badges span{font-size:.78em;border:1px solid #14b8a666;border-radius:20px;padding:3px 8px;background:#14b8a61a}

.dm26-controls-only>.dm25-tools,.dm26-controls-only>.dm25-metrics,.dm26-controls-only>.dm25-scroll,.dm26-controls-only>label,.dm26-controls-only>details{display:none}.session-monitor-toolbar26{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.session-monitor-toolbar26 label{display:grid;gap:5px}.session-monitor-toolbar26 small{display:block;opacity:.8}.session-monitor-toolbar26 button[aria-pressed=true]{background:#087e7e;color:white}.session-speed26{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #7b9ca744;font-variant-numeric:tabular-nums}.session-speed26 small{display:block;font-size:11px;opacity:.8}.session-speed26 strong{font-family:system-ui,sans-serif}.session-policy26{font-size:11px;color:inherit}.session-bottom13{flex-wrap:wrap}.session-policy26:empty{display:none}@media(max-width:600px){.session-monitor-toolbar26>*{flex:1 1 130px}}#modal:has(.dm26-controls-only){width:min(850px,95vw)}

.temporary-badge27{display:inline-flex;align-items:center;gap:3px;padding:3px 7px;margin:4px 0;border:1px solid #35b9ab66;border-radius:20px;background:#30b6a51a;color:inherit;font-size:11px;font-weight:600;white-space:nowrap}.session-bottom13{flex-wrap:wrap}.session-bottom13 [aria-pressed=true]{border-color:#1db9a6;background:#1db9a620}

.temporary-menu28{display:grid;gap:12px}.temporary-menu28 button{min-height:48px;text-align:left}.temporary-menu28 p{line-height:1.6}

.temporary-route30{display:flex;gap:12px}.temporary-route30 button{flex:1}.temporary-menu28 label{display:grid;gap:6px}.temporary-menu28 input,.temporary-menu28 select{width:100%;box-sizing:border-box}.temporary-menu28 form{display:grid;gap:12px}.temporary-menu28 [aria-pressed=true]{border-color:#14b8a6;box-shadow:0 0 0 2px #14b8a633}

/* Device Monitor digital workspace — shared UI, no extra requests/timers. */
.dm25{--dm-bg:#fff;--dm-inset:#f3fafb;--dm-line:#d6e6ed;--dm-ink:#12354b;--dm-muted:#526f81;--dm-accent:#008b91;--dm-soft:#e0f6f4;font:14px/1.5 system-ui,sans-serif}
html[data-appearance=night] .dm25,.dark .dm25{--dm-bg:#0c2636;--dm-inset:#092131;--dm-line:#285264;--dm-ink:#e9f8ff;--dm-muted:#aac5d4;--dm-accent:#43e2df;--dm-soft:#103d47}
#app .dm25{color:var(--dm-ink)}.dm33-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 0 24px}.dm33-eyebrow{font-size:10px;font-weight:750;letter-spacing:2px;color:var(--dm-accent)}#app .dm33-heading h2{font:750 28px/1.2 system-ui,sans-serif;margin:7px 0;color:var(--dm-ink)}.dm33-heading p{color:var(--dm-muted);margin:0}.dm33-live{border:1px solid var(--dm-line);border-radius:12px;background:var(--dm-bg);padding:10px 15px;font-size:12px;font-weight:700;white-space:nowrap}.dm33-live i,.dm33-status i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--dm-muted);margin-right:7px}.dm33-live small{font-weight:400;font-size:10px;margin-top:3px;color:var(--dm-muted)}
.dm25 .dm33-toolbar{align-items:center;padding:15px 18px;background:var(--dm-bg);border:1px solid var(--dm-line);border-radius:15px;margin-bottom:10px}.dm33-toolbar label{flex:1;max-width:540px;font-weight:600;font-size:11px}.dm33-toolbar>small{margin-left:auto;font-size:11px;color:var(--dm-muted)}#app .dm25 select,#app .dm25 input{background:var(--dm-inset);color:var(--dm-ink);border:1px solid var(--dm-line);border-radius:9px;padding:10px 12px;min-height:42px}#app .dm25 button{background:var(--dm-soft);color:var(--dm-ink);border:1px solid var(--dm-line);border-radius:9px;padding:9px 13px;font:600 12px/1.4 system-ui,sans-serif;box-shadow:none}#app .dm25 button:hover:not(:disabled){border-color:var(--dm-accent);background:var(--dm-inset)}.dm25 button:focus-visible,.dm25 input:focus-visible,.dm25 select:focus-visible{outline:2px solid var(--dm-accent);outline-offset:3px}.dm25 button:disabled{opacity:.55}.dm33-toolbar button{display:flex;gap:8px;align-items:center}.dm25 svg{width:21px;height:21px;flex-shrink:0}.dm25-hint{color:var(--dm-muted);font-size:11px}.dm25>[role=status]:empty,.dm25>[role=alert]:empty{display:none}
.dm33-overview{gap:14px!important;margin:18px 0!important}.dm25 .dm33-overview article{background:linear-gradient(135deg,var(--dm-bg),var(--dm-inset));border:1px solid var(--dm-line);border-radius:16px;position:relative;padding:20px;min-height:155px;box-shadow:0 4px 18px #001e3505}.dm33-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;background:var(--dm-soft);color:var(--dm-accent);margin-bottom:13px}.dm33-overview small{color:var(--dm-muted);font-size:11px}.dm25 .dm33-overview strong{font:700 27px/1.4 SawdaDigital,system-ui,sans-serif;margin:3px 0 7px;letter-spacing:-.5px}.dm33-overview strong em{font:500 12px/1.4 system-ui,sans-serif;letter-spacing:0;color:var(--dm-muted);font-style:normal}.dm33-meta{color:var(--dm-muted);font-size:10px}.dm33-good{color:var(--dm-accent)}.dm33-muted{color:var(--dm-muted)}.dm33-resource-bottom{display:flex;gap:12px;align-items:center}.dm33-resource-bottom>span:last-child{flex:1}.dm33-gauge{height:38px;width:38px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:radial-gradient(circle,var(--dm-bg) 54%,transparent 58%),conic-gradient(var(--dm-accent) var(--meter),var(--dm-line) 0);font-size:9px;font-weight:700}.dm33-resource progress{width:100%;height:5px;accent-color:var(--dm-accent)}
.dm33-engines{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 18px}.dm33-engines article{display:flex;align-items:center;gap:15px;padding:18px;border:1px solid var(--dm-line);border-radius:15px;background:var(--dm-bg)}.dm33-engine-icon{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;color:var(--dm-accent);background:var(--dm-soft);border-radius:13px}.dm33-engine-icon svg{width:27px;height:27px}.dm33-engines small{font-size:8px;font-weight:650;letter-spacing:1.2px;color:var(--dm-muted)}#app .dm33-engines h3{font:700 16px/1.4 system-ui,sans-serif;margin:3px 0;color:var(--dm-ink)}.dm33-engines p{margin:3px 0;color:var(--dm-muted);font-size:10px}.dm33-status{margin-left:auto;border:1px solid var(--dm-line);border-radius:20px;padding:5px 9px;font-size:10px;white-space:nowrap;color:var(--dm-muted)}.dm33-status.is-good{color:var(--dm-accent);background:var(--dm-soft)}.dm33-status.is-good i{background:var(--dm-accent)}
.dm25 details{background:var(--dm-bg);border:1px solid var(--dm-line);padding:16px 18px}.dm25 summary{font-weight:650;font-size:12px}.dm33-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,3fr);gap:15px;padding:17px 0}.dm33-filters label{font-size:11px;font-weight:600}.dm25 .dm25-scroll{background:var(--dm-bg);border:1px solid var(--dm-line);border-radius:15px;margin-top:0}.dm25 table{font-size:12px}.dm25 th{background:var(--dm-inset);font-size:9px;letter-spacing:.75px;color:var(--dm-muted);padding:16px}.dm25 td{padding:17px 16px;border-color:var(--dm-line)}.dm25 td small{font-size:10px;color:var(--dm-muted);opacity:1}.dm25 tbody tr:hover,.dm25 .dm33-selected{background:var(--dm-inset)}#app .dm25 .dm33-device{display:flex;align-items:center;gap:9px;padding:0;background:transparent;border:0;font-size:12px;text-align:left;color:var(--dm-ink)}.dm33-avatar{display:grid;place-items:center;min-width:33px;height:33px;border-radius:10px;background:var(--dm-soft);color:var(--dm-accent);font-size:13px}.dm33-presence,.dm33-result{display:inline-block;border-radius:6px;padding:4px 7px;background:var(--dm-inset);border:1px solid var(--dm-line);font-size:10px}.dm33-presence.is-present{background:var(--dm-soft);color:var(--dm-accent)}.dm25-detail{background:var(--dm-bg);border-color:var(--dm-line);padding:22px}.dm25-detail h3{font-weight:700}.dm25-detail form{background:var(--dm-inset);border:1px solid var(--dm-line);border-radius:12px;padding:16px}.dm25-detail form label{font-size:11px}.dm25-history{border-color:var(--dm-line)}
html[data-appearance=compact] .dm33-overview article{padding:14px;min-height:120px}html[data-appearance=compact] .dm33-icon{width:30px;height:30px;margin-bottom:5px}html[data-appearance=compact] .dm33-overview strong{font-size:22px}html[data-appearance=compact] .dm25 td{padding:11px 12px}html[data-appearance=compact] .dm33-heading{margin-bottom:14px}
@media(max-width:1000px){.dm25-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dm33-engines article{flex-wrap:wrap}.dm33-status{margin-left:0}}
@media(max-width:600px){.dm33-heading{align-items:flex-start;gap:10px;flex-wrap:wrap}#app .dm33-heading h2{font-size:25px}.dm33-heading p{font-size:11px}.dm33-live{padding:7px 11px}.dm25 .dm33-toolbar{padding:12px}.dm33-toolbar label{flex:1 1 100%}.dm33-toolbar>small{flex:1 1 100%;margin:0}.dm25 .dm33-overview article{padding:14px;min-height:150px}.dm25 .dm33-overview strong{font-size:22px}.dm33-resource strong em{display:block}.dm33-engines,.dm33-filters{grid-template-columns:1fr}.dm33-engines article{flex-wrap:nowrap;padding:14px;gap:10px}.dm33-engine-icon{width:36px;height:36px}.dm33-status{margin-left:auto;font-size:9px}.dm33-engines p{max-width:175px}.dm25 table{min-width:850px}.dm25 label{min-width:0}}

.dm33-gauge{position:relative;background:none!important}.dm33-gauge svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.dm33-gauge circle{fill:none;stroke-width:4}.dm33-gauge-track{stroke:var(--dm-line)}.dm33-gauge-value{stroke-linecap:round;transition:stroke-dasharray .72s cubic-bezier(.22,.7,.2,1),filter .4s ease;filter:drop-shadow(0 0 2px color-mix(in srgb,var(--dm-accent) 38%,transparent));animation:dm33-cpu-glow-pay56 3.8s ease-in-out infinite}

.dm33-engines article{flex-wrap:wrap}.dm33-engines article>div:not(.dm33-engine-controls){flex:1}.dm33-engine-controls{display:flex;flex-wrap:wrap;gap:6px;flex:0 0 100%;padding-top:11px;border-top:1px solid var(--dm-line)}#app .dm33-engine-controls button{font-size:10px;padding:6px 10px}.dm33-engine-controls>small{flex:0 0 100%;letter-spacing:0;font-size:10px;font-weight:400;line-height:1.5;margin-top:5px}.dm26-controls-only>.dm33-heading,.dm26-controls-only>.dm33-engines{display:none}

/* Device Monitor sections, bulk groups and low-cost usage analytics. */
.dm25{--dm-upload:#4d80d5}
html[data-appearance=night] .dm25,.dark .dm25{--dm-upload:#78a9ff}
.dm25 .dm27-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 14px;padding:0;border:0;background:transparent}
#app .dm25 .dm27-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 17px;border-radius:11px;background:var(--dm-bg);color:var(--dm-ink);border:1px solid var(--dm-line);font-size:12px;font-weight:700}
#app .dm25 .dm27-tabs button.is-active{background:var(--dm-accent);border-color:var(--dm-accent);color:#052c35;box-shadow:0 4px 18px color-mix(in srgb,var(--dm-accent) 20%,transparent)}
.dm25 .dm27-panel[hidden],.dm25 [hidden]{display:none!important}
.dm25 .dm27-panel{display:grid;gap:15px;margin:0 0 16px;color:var(--dm-ink)}
.dm27-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
#app .dm25 .dm27-panel-heading h3{font:750 20px/1.25 system-ui,sans-serif;color:var(--dm-ink);margin:3px 0}
#app .dm25 .dm27-panel-heading h4{font:700 15px/1.35 system-ui,sans-serif;color:var(--dm-ink);margin:0}
.dm27-panel-heading p{font-size:11px;color:var(--dm-muted);margin:3px 0 0}
.dm27-history-badge,.dm27-lifetime-rank{border:1px solid var(--dm-line);border-radius:20px;background:var(--dm-bg);color:var(--dm-muted);padding:7px 11px;font-size:10px;white-space:nowrap}
.dm27-bulk-grid{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(320px,1.15fr);gap:14px;align-items:start}
.dm25 .dm27-card{min-width:0;background:var(--dm-bg);border:1px solid var(--dm-line);border-radius:15px;padding:17px;box-shadow:0 4px 18px #001e3505}
#app .dm25 .dm27-card h4{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 13px;color:var(--dm-ink);font:700 14px/1.4 system-ui,sans-serif}
.dm27-card h4 span{color:var(--dm-muted);font-size:10px;font-weight:500}
.dm27-group-list{display:grid;gap:6px;margin-bottom:13px;max-height:260px;overflow:auto}
#app .dm25 .dm27-group-choice{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:9px 11px;background:var(--dm-inset);border-color:var(--dm-line);font-size:11px}
#app .dm25 .dm27-group-choice.is-selected{border-color:var(--dm-accent);background:var(--dm-soft)}
.dm27-group-choice strong{font-variant-numeric:tabular-nums;color:var(--dm-accent)}
.dm27-form{display:grid;gap:10px;margin-top:13px;padding-top:13px;border-top:1px solid var(--dm-line)}
.dm27-form label{display:grid;gap:5px;color:var(--dm-muted);font-size:10px;font-weight:650}
#app .dm25 .dm27-form input,#app .dm25 .dm27-form select{width:100%;min-width:0;box-sizing:border-box}
#app .dm25 .dm27-form button[type=submit]{justify-self:start}
.dm27-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#app .dm25 .dm27-danger{margin-top:10px;color:#bd4b4b;border-color:#bd4b4b66;background:color-mix(in srgb,#bd4b4b 8%,var(--dm-bg))}
.dm27-form small{font-size:10px;color:var(--dm-muted);line-height:1.5}
.dm27-members{padding:0!important;overflow:hidden}
.dm27-members>.dm27-panel-heading{padding:15px 17px 9px}
.dm27-table-wrap{width:100%;overflow:auto}
.dm27-table-wrap table{width:100%;border-collapse:collapse;min-width:460px;font-size:11px}
.dm27-table-wrap th{background:var(--dm-inset);color:var(--dm-muted);font-size:9px;letter-spacing:.5px;text-align:left;padding:10px 12px}
.dm27-table-wrap td{padding:10px 12px;border-top:1px solid var(--dm-line);color:var(--dm-ink);font-variant-numeric:tabular-nums}
.dm27-table-wrap td small{display:block;color:var(--dm-muted);font-size:9px;margin-top:3px}
.dm27-feedback{color:var(--dm-accent);font-size:11px;margin:0}
.dm27-error{color:#c44b4b;font-size:12px;padding:10px 12px;border:1px solid #c44b4b66;border-radius:9px;background:color-mix(in srgb,#c44b4b 8%,var(--dm-bg))}
.dm27-loading,.dm27-empty{padding:22px;text-align:center;color:var(--dm-muted);font-size:12px;border:1px dashed var(--dm-line);border-radius:12px}
.dm27-usage-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;background:var(--dm-bg);border:1px solid var(--dm-line);border-radius:13px}
.dm27-scope,.dm27-range{display:flex;gap:6px;flex-wrap:wrap}
#app .dm25 .dm27-scope button,#app .dm25 .dm27-range button{padding:8px 12px;min-height:36px;font-size:10px}
#app .dm25 .dm27-scope button.is-active,#app .dm25 .dm27-range button.is-active{background:var(--dm-accent);border-color:var(--dm-accent);color:#052c35}
.dm27-usage-toolbar label{display:grid;gap:4px;color:var(--dm-muted);font-size:10px;font-weight:650;min-width:160px}
.dm27-usage-toolbar select{min-width:160px}
.dm27-range{padding:2px 0}
.dm27-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dm27-metrics article{min-width:0;padding:14px 15px;border:1px solid var(--dm-line);border-radius:13px;background:linear-gradient(135deg,var(--dm-bg),var(--dm-inset));display:grid;gap:5px}
.dm27-metrics small{color:var(--dm-muted);font-size:10px}
#app .dm25 .dm27-metrics strong{font:700 20px/1.35 SawdaDigital,system-ui,sans-serif;color:var(--dm-accent);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.dm27-chart-card{padding:14px 16px 10px!important}
.dm27-chart-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
#app .dm25 .dm27-chart-heading h4{margin:0 0 3px}
.dm27-chart-heading p{margin:0;color:var(--dm-muted);font-size:10px}
.dm27-legend{display:flex;gap:14px;color:var(--dm-muted);font-size:10px}
.dm27-legend span{display:inline-flex;align-items:center;gap:5px}
.dm27-legend i,.dm27-dot-download,.dm27-dot-upload{width:8px;height:8px;border-radius:50%;display:inline-block}
.dm27-dot-download{background:var(--dm-accent)}.dm27-dot-upload{background:var(--dm-upload)}
.dm27-chart{display:block;width:100%;height:auto;min-height:170px;overflow:visible}
.dm27-grid{stroke:var(--dm-line);stroke-width:1;opacity:.8}
.dm27-axis{fill:var(--dm-muted);font:10px system-ui,sans-serif}
.dm27-download{fill:var(--dm-accent);opacity:.9}.dm27-upload{fill:var(--dm-upload);opacity:.9}
.dm27-history-note{font-size:10px;line-height:1.6;color:var(--dm-muted);margin:0}
.dm27-top{padding:0!important;overflow:hidden}
.dm27-top>.dm27-panel-heading{padding:15px 17px 8px}
.dm27-top .dm27-table-wrap button{padding:5px 8px!important;font-size:10px!important}
.dm27-device-summary{padding:15px 17px!important}

/* pay54: keep the analytics SVG at chart width; the legacy .dm25 svg rule is icon-only. */
#app .dm25 svg.dm27-chart{display:block;width:100%;height:auto;min-height:180px;max-height:420px;flex-shrink:1;max-width:100%}
#app .dm25 svg.dm27-tab-icon{display:block;width:17px;height:17px;flex:0 0 17px;flex-shrink:0}
#app .dm25 .dm27-tabs button{min-width:0;white-space:nowrap}
.dm27-bulk-grid{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:16px}
.dm27-bulk-grid>.dm27-card{min-width:0;align-content:start}
#app .dm25 form.dm27-form{display:grid;align-items:end;gap:10px;flex-wrap:initial;margin:13px 0 0;min-width:0}
#app .dm25 form.dm27-form-create{grid-template-columns:minmax(0,1fr) auto}
#app .dm25 form.dm27-form-rename{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
#app .dm25 form.dm27-form-control{grid-template-columns:repeat(2,minmax(0,1fr))}
#app .dm25 form.dm27-form-control>.dm27-two{grid-column:1/-1;min-width:0}
#app .dm25 form.dm27-form-control>label:last-of-type{grid-column:1/-1}
#app .dm25 form.dm27-form-control>button[type=submit],#app .dm25 form.dm27-form-control>small{grid-column:1/-1}
#app .dm25 form.dm27-form-assign{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
#app .dm25 form.dm27-form-assign h4{grid-column:1/-1;margin:0}
#app .dm25 form.dm27-form-assign button[type=submit],#app .dm25 form.dm27-form-create button[type=submit],#app .dm25 form.dm27-form-rename button[type=submit]{justify-self:stretch;min-height:42px}
.dm27-two{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}
.dm27-usage-toolbar{display:grid;grid-template-columns:minmax(240px,auto) minmax(220px,1.4fr) minmax(150px,.8fr);align-items:end;justify-content:stretch}
.dm27-usage-toolbar label{min-width:0;max-width:none}
.dm27-usage-toolbar select{width:100%;min-width:0}
.dm27-metrics article{min-height:86px;align-content:center}
.dm27-chart-card{min-width:0;overflow:hidden}
.dm27-top .dm27-table-wrap table{table-layout:fixed;min-width:560px}
.dm27-top .dm27-table-wrap th:nth-child(1){width:64px}
.dm27-top .dm27-table-wrap th:nth-child(2){width:45%}
.dm27-top .dm27-table-wrap th:nth-child(3){width:24%}
.dm27-top .dm27-table-wrap th:nth-child(4){width:112px}
.dm27-top .dm27-table-wrap td:last-child{text-align:right}
.dm27-members .dm27-table-wrap table{table-layout:fixed;min-width:600px}
.dm27-members .dm27-table-wrap th:nth-child(1){width:56%}
.dm27-members .dm27-table-wrap th:nth-child(2){width:20%}
.dm27-members .dm27-table-wrap th:nth-child(3){width:24%}
html[data-appearance=compact] #app .dm25 form.dm27-form{gap:7px;margin-top:8px;padding-top:8px}
html[data-appearance=compact] #app .dm25 form.dm27-form button[type=submit]{min-height:34px}
@media(max-width:1050px){.dm27-bulk-grid{grid-template-columns:minmax(0,1fr)}.dm27-usage-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dm27-scope{grid-column:1/-1}}
@media(max-width:700px){#app .dm25 form.dm27-form-create,#app .dm25 form.dm27-form-rename,#app .dm25 form.dm27-form-control,#app .dm25 form.dm27-form-assign{grid-template-columns:minmax(0,1fr)}#app .dm25 form.dm27-form-control>.dm27-two,#app .dm25 form.dm27-form-control>label:last-of-type,#app .dm25 form.dm27-form-control>button[type=submit],#app .dm25 form.dm27-form-control>small,#app .dm25 form.dm27-form-assign h4{grid-column:1}#app .dm25 form.dm27-form button[type=submit]{justify-self:stretch}.dm27-usage-toolbar{grid-template-columns:minmax(0,1fr)}.dm27-scope{grid-column:1}.dm27-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

html[data-appearance=compact] .dm25 .dm27-tabs{margin-bottom:8px;gap:6px}
html[data-appearance=compact] #app .dm25 .dm27-tabs button{min-height:34px;padding:6px 11px}
html[data-appearance=compact] .dm25 .dm27-card{padding:11px}
html[data-appearance=compact] .dm27-metrics article{padding:9px 11px}
html[data-appearance=compact] #app .dm25 .dm27-metrics strong{font-size:17px}
html[data-appearance=compact] .dm27-form{gap:7px;margin-top:8px;padding-top:8px}
html[data-appearance=compact] .dm27-table-wrap td{padding:7px 9px}
html[data-appearance=compact] .dm27-chart-card{padding:10px 12px 6px!important}
@media(max-width:900px){.dm27-bulk-grid{grid-template-columns:1fr}.dm27-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.dm25 .dm27-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.dm25 .dm27-tabs button{padding:7px 5px!important;font-size:10px!important}.dm25 .dm27-tabs button span{white-space:nowrap}.dm27-usage-toolbar{align-items:stretch}.dm27-scope{width:100%}.dm27-scope button{flex:1}.dm27-usage-toolbar label{flex:1 1 130px}.dm27-range button{flex:1 1 65px}.dm27-two{grid-template-columns:1fr}.dm27-metrics{gap:7px}.dm27-metrics article{padding:10px}.dm27-chart{min-height:140px}.dm27-panel-heading{align-items:flex-start}.dm27-history-badge{white-space:normal}}

/* pay55: explicit analytics SVG sizing prevents generic icon rules from collapsing charts. */
#app .dm25 svg.dm27-chart{display:block;width:100%!important;height:270px!important;min-height:180px;max-height:none;flex:1 1 auto;flex-shrink:1;max-width:100%;overflow:visible}
#app .dm25 svg.dm27-tab-icon{display:block;width:18px!important;height:18px!important;flex:0 0 18px;flex-shrink:0}
#app .dm25 .dm27-bulk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px}
#app .dm25 .dm27-bulk-grid>.dm27-card{min-width:0;height:100%;box-sizing:border-box;align-content:start}
#app .dm25 form.dm27-form-control>.dm27-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}
#app .dm25 form.dm27-form-control>label{min-width:0}
#app .dm25 form.dm27-form-control>label input,#app .dm25 form.dm27-form-control>label select,#app .dm25 form.dm27-form-control>.dm27-two input,#app .dm25 form.dm27-form-control>.dm27-two select{width:100%;min-width:0;box-sizing:border-box}
#app .dm25 form.dm27-form-control>button[type=submit]{grid-column:1/-1;justify-self:end;min-width:180px}
html[data-appearance=compact] #app .dm25 .dm27-bulk-grid{gap:10px}
html[data-appearance=compact] #app .dm25 .dm27-bulk-grid>.dm27-card{padding:12px}
html[data-appearance=compact] #app .dm25 .dm27-usage-toolbar{gap:8px;padding:10px}
html[data-appearance=compact] #app .dm25 .dm27-range{gap:5px}
html[data-appearance=compact] #app .dm25 .dm27-range button{min-height:32px;padding:6px 10px}
html[data-appearance=compact] #app .dm25 .dm27-chart-card{padding:10px 12px 6px!important}
@media(max-width:900px){#app .dm25 .dm27-bulk-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){#app .dm25 svg.dm27-chart{height:220px!important;min-height:180px}#app .dm25 form.dm27-form-control>.dm27-two{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){#app .dm25 svg.dm27-chart{scroll-behavior:auto}}

/* pay55: digital lifetime-rank badges; inherit the existing table font. */
#app .dm25 .dm27-rank-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;isolation:isolate;width:32px;height:32px;min-width:32px;border:1px solid var(--dm-line);border-radius:10px;background:linear-gradient(145deg,var(--dm-inset),var(--dm-bg));color:var(--dm-ink);font:inherit;font-size:12px;font-weight:750;line-height:1;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 #ffffff24,0 2px 8px #001e3512}
#app .dm25 .dm27-rank-badge b{font:inherit;position:relative;z-index:1}
#app .dm25 .dm27-rank-badge svg{position:absolute;right:2px;top:2px;width:9px;height:9px;fill:currentColor;opacity:.58;flex:none}
#app .dm25 .dm27-rank-1{border-color:#d8a83c;background:linear-gradient(145deg,color-mix(in srgb,#f2c75d 35%,var(--dm-bg)),color-mix(in srgb,#c98b21 18%,var(--dm-inset)));color:#a66a08;box-shadow:inset 0 1px 0 #fff8c766,0 0 12px #e3ad3633}
#app .dm25 .dm27-rank-2{border-color:#9caebc;background:linear-gradient(145deg,color-mix(in srgb,#c9d7e2 32%,var(--dm-bg)),color-mix(in srgb,#8498a8 17%,var(--dm-inset)));color:#617789;box-shadow:inset 0 1px 0 #ffffff88,0 0 10px #9fb4c322}
#app .dm25 .dm27-rank-3{border-color:#bd8551;background:linear-gradient(145deg,color-mix(in srgb,#dca06c 30%,var(--dm-bg)),color-mix(in srgb,#a96735 17%,var(--dm-inset)));color:#a35c2a;box-shadow:inset 0 1px 0 #ffdfc044,0 0 10px #bd855122}
#app .dm25 .dm27-rank-neutral{border-color:color-mix(in srgb,var(--dm-accent) 36%,var(--dm-line));background:linear-gradient(145deg,color-mix(in srgb,var(--dm-accent) 12%,var(--dm-bg)),var(--dm-inset));color:var(--dm-accent)}
html[data-appearance=compact] #app .dm25 .dm27-rank-badge{width:27px;height:27px;min-width:27px;border-radius:8px;font-size:11px}
html[data-appearance=night] #app .dm25 .dm27-rank-1,.dark #app .dm25 .dm27-rank-1{color:#ffe29a}
html[data-appearance=night] #app .dm25 .dm27-rank-2,.dark #app .dm25 .dm27-rank-2{color:#e1edf5}
html[data-appearance=night] #app .dm25 .dm27-rank-3,.dark #app .dm25 .dm27-rank-3{color:#ffc49b}
/* pay56: smooth gradient meters use only existing router health reports. */
.dm33-resource progress{display:block;width:100%;height:8px;appearance:none;border:0;border-radius:20px;background:var(--dm-line);overflow:hidden;accent-color:var(--dm-accent)}
.dm33-resource progress::-webkit-progress-bar{background:var(--dm-line);border-radius:20px}
.dm33-resource progress::-webkit-progress-value{background:linear-gradient(105deg,var(--dm-accent) 0%,#4fe2d0 42%,#b5fff1 52%,#58a8ee 72%,var(--dm-accent) 100%);background-size:220% 100%;border-radius:20px;animation:dm33-ram-flow-pay56 3.8s linear infinite;transition:width .72s cubic-bezier(.22,.7,.2,1)}
.dm33-resource progress::-moz-progress-bar{background:linear-gradient(105deg,var(--dm-accent) 0%,#4fe2d0 42%,#b5fff1 52%,#58a8ee 72%,var(--dm-accent) 100%);background-size:220% 100%;border-radius:20px;animation:dm33-ram-flow-pay56 3.8s linear infinite;transition:width .72s cubic-bezier(.22,.7,.2,1)}
@keyframes dm33-ram-flow-pay56{to{background-position:220% 0}}
@keyframes dm33-cpu-glow-pay56{0%,100%{filter:drop-shadow(0 0 2px color-mix(in srgb,var(--dm-accent) 32%,transparent))}50%{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--dm-accent) 62%,transparent))}}
@media(prefers-reduced-motion:reduce){.dm33-gauge-value,.dm33-resource progress::-webkit-progress-value,.dm33-resource progress::-moz-progress-bar{animation:none!important;transition:none!important}}

/* pay56: consistent tab alignment and bounded Device Monitor table rendering. */
.dm25 .dm27-tabs{display:flex;align-items:stretch;flex-wrap:nowrap;gap:9px;overflow-x:auto;scrollbar-width:thin}
#app .dm25 .dm27-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;min-height:42px;box-sizing:border-box;line-height:1.2;flex:0 0 auto;white-space:nowrap}
#app .dm25 .dm27-tabs button svg{display:block;width:17px!important;height:17px!important;flex:0 0 17px}
#app .dm25 .dm27-tabs button span{display:inline-flex;align-items:center;line-height:1.2;white-space:nowrap}
html[data-appearance=compact] .dm25 .dm27-tabs{align-items:stretch}
html[data-appearance=compact] #app .dm25 .dm27-tabs button{height:34px;min-height:34px;padding:6px 11px}
.dm25-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px 2px;color:var(--dm-muted);font-size:11px}
.dm25-pagination>div{display:flex;align-items:center;gap:9px}
#app .dm25 .dm25-pagination button{height:32px;min-height:32px;padding:6px 10px;white-space:nowrap}
.dm25-pagination strong{font-variant-numeric:tabular-nums;color:var(--dm-accent)}
@media(max-width:600px){.dm25 .dm27-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:5px;overflow:visible}.dm25 .dm27-tabs button{width:100%;min-width:0;min-height:42px;height:42px;padding:6px 4px!important;gap:5px!important;font-size:10px!important}.dm25 .dm27-tabs button span{max-width:100%;overflow:hidden;text-overflow:ellipsis}.dm25-pagination{align-items:flex-start;flex-direction:column}.dm25-pagination>div{width:100%;justify-content:space-between}}

@media(max-width:600px){html[data-appearance=compact] #app .dm25 .dm27-tabs button{height:34px;min-height:34px}}
.dm26-controls-only .dm25-pagination{display:none}

/* pay57: align Bulk Group Control fields and actions on shared rows. */
#app .dm25 .dm27-bulk-grid{align-items:stretch}
#app .dm25 .dm27-bulk-grid>.dm27-card{display:flex;flex-direction:column;align-self:stretch;min-width:0}
#app .dm25 form.dm27-form{display:grid;align-items:end;justify-items:stretch;gap:10px;min-width:0}
#app .dm25 form.dm27-form>label{display:grid;grid-template-rows:auto 42px;align-content:end;align-self:end;min-width:0;width:100%;flex:none;box-sizing:border-box}
#app .dm25 form.dm27-form>label input,#app .dm25 form.dm27-form>label select{height:42px;min-height:42px;width:100%;min-width:0;box-sizing:border-box}
#app .dm25 form.dm27-form>button[type=submit]{align-self:end;justify-self:stretch;width:100%;height:42px;min-height:42px;min-width:0;box-sizing:border-box;white-space:nowrap;line-height:1.2}
#app .dm25 form.dm27-form-create{grid-template-columns:minmax(0,1fr) 132px}
#app .dm25 form.dm27-form-rename{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 138px}
#app .dm25 form.dm27-form-control{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}
#app .dm25 form.dm27-form-control>.dm27-two{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}
#app .dm25 form.dm27-form-control>label:last-of-type{grid-column:1/span 2;min-width:0}
#app .dm25 form.dm27-form-control>button[type=submit]{grid-column:3;justify-self:stretch;align-self:end;min-width:0}
#app .dm25 form.dm27-form-control>small{grid-column:1/-1;align-self:start}
#app .dm25 form.dm27-form-assign{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 138px;align-items:end}
#app .dm25 form.dm27-form-assign h4{grid-column:1/-1;margin:0}
#app .dm25 .dm27-danger{align-self:flex-start;min-height:38px;margin-top:10px}
html[data-appearance=compact] #app .dm25 form.dm27-form{gap:7px}
html[data-appearance=compact] #app .dm25 form.dm27-form>label{grid-template-rows:auto 34px}
html[data-appearance=compact] #app .dm25 form.dm27-form>label input,html[data-appearance=compact] #app .dm25 form.dm27-form>label select{height:34px;min-height:34px}
html[data-appearance=compact] #app .dm25 form.dm27-form>button[type=submit]{height:34px;min-height:34px}
@media(max-width:700px){
 #app .dm25 form.dm27-form-create,#app .dm25 form.dm27-form-rename,#app .dm25 form.dm27-form-control,#app .dm25 form.dm27-form-assign{grid-template-columns:minmax(0,1fr)}
 #app .dm25 form.dm27-form-control>.dm27-two,#app .dm25 form.dm27-form-control>label:last-of-type,#app .dm25 form.dm27-form-control>button[type=submit],#app .dm25 form.dm27-form-control>small,#app .dm25 form.dm27-form-assign h4{grid-column:1}
 #app .dm25 form.dm27-form-control>.dm27-two{grid-template-columns:minmax(0,1fr)}
 #app .dm25 form.dm27-form>button[type=submit]{justify-self:stretch}
}
#app .dm25 form.dm27-form .dm27-two>label{display:grid;grid-template-rows:auto 42px;align-content:end;min-width:0;width:100%;flex:none;box-sizing:border-box}
#app .dm25 form.dm27-form .dm27-two>label input,#app .dm25 form.dm27-form .dm27-two>label select{height:42px;min-height:42px;width:100%;min-width:0;box-sizing:border-box}
html[data-appearance=compact] #app .dm25 form.dm27-form .dm27-two>label{grid-template-rows:auto 34px}
html[data-appearance=compact] #app .dm25 form.dm27-form .dm27-two>label input,html[data-appearance=compact] #app .dm25 form.dm27-form .dm27-two>label select{height:34px;min-height:34px}
@media(max-width:700px){#app .dm25 form.dm27-form .dm27-two>label{grid-template-rows:auto 42px}}

/* pay58: reset the portal-wide label margin only inside monitor controls.
   The global 18px label margin was pushing adjacent buttons below their fields. */
#app .dm25 label{margin:0}
#app .session-monitor-toolbar26 label,#app .temporary-menu28 label{margin:0}

/* Dashboard router selector and device filters share one control baseline. */
#app .dm25 .dm33-toolbar{align-items:end}
#app .dm25 .dm33-toolbar label{grid-template-rows:auto 42px;align-content:end}
#app .dm25 .dm33-toolbar select{height:42px;min-height:42px;box-sizing:border-box}
#app .dm25 .dm33-toolbar button{display:inline-flex;align-items:center;justify-content:center;align-self:end;height:42px;min-height:42px;box-sizing:border-box;white-space:nowrap}
#app .dm25 .dm33-filters{align-items:end}
#app .dm25 .dm33-filters label{grid-template-rows:auto 42px;align-content:end}
#app .dm25 .dm33-filters input,#app .dm25 .dm33-filters select{height:42px;min-height:42px;box-sizing:border-box}

/* Data Usage scope buttons, selectors, and range controls align consistently. */
#app .dm25 .dm27-usage-toolbar{align-items:end}
#app .dm25 .dm27-usage-toolbar label{grid-template-rows:auto 42px;align-content:end}
#app .dm25 .dm27-usage-toolbar select{height:42px;min-height:42px;box-sizing:border-box}
#app .dm25 .dm27-usage-toolbar .dm27-scope button{display:inline-flex;align-items:center;justify-content:center;height:42px;min-height:42px;box-sizing:border-box;white-space:nowrap}
#app .dm25 .dm27-range button{display:inline-flex;align-items:center;justify-content:center;height:36px;min-height:36px;box-sizing:border-box}

/* Session Monitor and device detail/temporary controls use the same field baseline. */
#app .session-monitor-toolbar26{align-items:end}
#app .session-monitor-toolbar26 label{display:grid;grid-template-rows:auto 42px;align-content:end}
#app .session-monitor-toolbar26 select{height:42px;min-height:42px;box-sizing:border-box}
#app .session-monitor-toolbar26 button{display:inline-flex;align-items:center;justify-content:center;height:42px;min-height:42px;box-sizing:border-box;white-space:nowrap}
#app .dm25 .dm25-detail form{align-items:end}
#app .dm25 .dm25-detail form label{margin:0}
#app .dm25 .dm25-detail form input,#app .dm25 .dm25-detail form select{height:42px;min-height:42px;box-sizing:border-box}
#app .dm25 .dm25-detail form button{height:42px;min-height:42px;box-sizing:border-box;white-space:nowrap}
#app .temporary-menu28 label{display:grid;grid-template-rows:auto 42px;align-content:end}
#app .temporary-menu28 input,#app .temporary-menu28 select{height:42px;min-height:42px;box-sizing:border-box}
#app .temporary-menu28 form button[type=submit]{height:42px;min-height:42px;box-sizing:border-box;white-space:nowrap}

/* Compact density scales every aligned control together. */
html[data-appearance=compact] #app .dm25 .dm33-toolbar label,
html[data-appearance=compact] #app .dm25 .dm33-filters label,
html[data-appearance=compact] #app .dm25 .dm27-usage-toolbar label,
html[data-appearance=compact] #app .session-monitor-toolbar26 label,
html[data-appearance=compact] #app .temporary-menu28 label{grid-template-rows:auto 34px}
html[data-appearance=compact] #app .dm25 .dm33-toolbar select,
html[data-appearance=compact] #app .dm25 .dm33-filters input,
html[data-appearance=compact] #app .dm25 .dm33-filters select,
html[data-appearance=compact] #app .dm25 .dm27-usage-toolbar select,
html[data-appearance=compact] #app .session-monitor-toolbar26 select,
html[data-appearance=compact] #app .temporary-menu28 input,
html[data-appearance=compact] #app .temporary-menu28 select{height:34px;min-height:34px}
html[data-appearance=compact] #app .dm25 .dm33-toolbar button,
html[data-appearance=compact] #app .dm25 .dm27-usage-toolbar .dm27-scope button,
html[data-appearance=compact] #app .session-monitor-toolbar26 button,
html[data-appearance=compact] #app .dm25 .dm25-detail form button,
html[data-appearance=compact] #app .temporary-menu28 form button[type=submit]{height:34px;min-height:34px;padding:6px 10px}
html[data-appearance=compact] #app .dm25 .dm27-range button{height:32px;min-height:32px;padding:5px 9px}

@media(max-width:700px){
 #app .dm25 .dm33-toolbar{align-items:stretch}
 #app .dm25 .dm33-toolbar label{grid-template-rows:auto 42px;flex:1 1 100%;max-width:none}
 #app .dm25 .dm33-filters{grid-template-columns:minmax(0,1fr)}
 #app .dm25 .dm27-usage-toolbar{grid-template-columns:minmax(0,1fr);align-items:stretch}
 #app .dm25 .dm27-usage-toolbar .dm27-scope{width:100%}
 #app .dm25 .dm27-usage-toolbar .dm27-scope button{flex:1 1 0;min-width:0}
 #app .session-monitor-toolbar26{align-items:stretch}
 #app .session-monitor-toolbar26>*{flex:1 1 130px}
 #app .dm25 .dm25-detail form{display:grid;grid-template-columns:minmax(0,1fr)}
}
html[data-appearance=compact] #app .dm25 .dm25-detail form label,
html[data-appearance=compact] #app .dm25 details form label{grid-template-rows:auto 34px}
html[data-appearance=compact] #app .dm25 .dm25-detail form input,
html[data-appearance=compact] #app .dm25 .dm25-detail form select,
html[data-appearance=compact] #app .dm25 details form input,
html[data-appearance=compact] #app .dm25 details form select{height:34px;min-height:34px}
html[data-appearance=compact] #app .dm25 .dm25-detail form button,
html[data-appearance=compact] #app .dm25 details form button{height:34px;min-height:34px;padding:6px 10px}
