/* Layout: one working column under a sticky top bar; dense tables scroll inside their own frames with sticky edges; bottom tab bar on phones. Light by default, dark from the profile menu. */
:root{
  --bg:#FAF9F5; --panel:#FFFFFF; --panel-2:#F6F4EE; --ink:#14171A; --ink-2:#63675F; --ink-3:#9A9C93;
  --line:#E7E3D8; --line-2:#D6D1C1; --track:#F0EDE4;
  --blue:#2E4CFF; --blue-deep:#1E2E99; --blue-tint:#EEF1FF; --on-blue:#FFFFFF;
  --coral:#FF6A4D; --green:#1E9E5A;
  --pos:#0B5C33; --pos-bg:rgba(30,158,90,.09); --pos-fill:rgba(30,158,90,.26);
  --neg:#9E2A14; --neg-bg:rgba(255,106,77,.10); --neg-fill:rgba(255,106,77,.32);
  --warn-row:#FFF6D6; --weekend:rgba(99,103,95,.06); --hl:#EEF1FF; --area:rgba(30,158,90,.08);
  --shadow:0 10px 30px rgba(20,23,26,.12);
  --f-display:"Space Grotesk","Inter",system-ui,sans-serif;
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --r:8px; color-scheme:light;
}
html.dark{
  --bg:#111315; --panel:#191C1F; --panel-2:#20242A; --ink:#ECEDEA; --ink-2:#A4A79F; --ink-3:#6E716A;
  --line:#2A2E33; --line-2:#3A3F46; --track:#2A2E33;
  --blue:#7088FF; --blue-deep:#91A3FF; --blue-tint:#1D2340; --on-blue:#0B0D1A;
  --coral:#FF8466; --green:#3CC380;
  --pos:#5AD496; --pos-bg:rgba(60,195,128,.10); --pos-fill:rgba(60,195,128,.28);
  --neg:#FF8F78; --neg-bg:rgba(255,132,102,.10); --neg-fill:rgba(255,132,102,.30);
  --warn-row:#2C2716; --weekend:rgba(255,255,255,.035); --hl:#1D2340; --area:rgba(60,195,128,.10);
  --shadow:0 10px 30px rgba(0,0,0,.45); color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{background:var(--bg);min-height:100%}
body{color:var(--ink);font-family:var(--f-body);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--panel)}
.num{font-variant-numeric:tabular-nums}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.flag{display:inline-block;vertical-align:-2px;border-radius:2px;flex:none}

/* top bar */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:25;background:var(--panel);border-bottom:1px solid var(--line);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.top-in{max-width:1600px;margin:0 auto;display:flex;align-items:center;gap:28px;height:52px}
.brand{display:flex;align-items:baseline;gap:8px;text-decoration:none;color:var(--ink)}
.brand b{font-family:var(--f-display);font-weight:600;font-size:16px;letter-spacing:.06em}
.brand small{font-family:var(--f-mono);font-size:10px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}
.nav{display:flex;gap:2px;height:100%}
.nav a{display:flex;align-items:center;padding:0 12px;color:var(--ink-2);text-decoration:none;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px}
.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--blue)}
.role-tag{font-family:var(--f-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-2);border-radius:3px;padding:0 4px;margin-left:6px;color:var(--ink-3)}
.top-right{margin-left:auto;display:flex;align-items:center;gap:12px;position:relative}
.avatar{width:32px;height:32px;border-radius:50%;border:1px solid var(--line-2);background:var(--panel-2);cursor:pointer;font-weight:600;font-size:12px;display:flex;align-items:center;justify-content:center}
.avatar:hover{border-color:var(--blue)}
.menu{position:absolute;right:0;top:42px;width:270px;background:var(--panel);border:1px solid var(--line-2);border-radius:10px;box-shadow:var(--shadow);padding:14px;z-index:40;display:flex;flex-direction:column;gap:12px}
.menu .em{font-weight:500}
.menu hr{border:0;border-top:1px solid var(--line);margin:0}
.menu .rowx{display:flex;align-items:center;justify-content:space-between;gap:10px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 11px;border-radius:6px;border:1px solid var(--line-2);background:var(--panel);cursor:pointer;font-weight:500;font-size:12.5px;white-space:nowrap}
.btn:hover{border-color:var(--ink-3)}
.btn.primary{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}
.btn.primary:hover{background:var(--blue-deep);border-color:var(--blue-deep)}
.btn.ghost{border-color:transparent;background:none;color:var(--ink-2)}
.btn.ghost:hover{color:var(--ink);border-color:var(--line-2)}
.btn:disabled{opacity:.45;cursor:default}
.btn.danger{color:var(--neg)}

.sample{background:var(--blue-tint);color:var(--blue-deep);font-size:12px;text-align:center;padding:5px 16px}

main{max-width:1600px;margin:0 auto;padding-block:16px 96px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:16px}
.view{display:flex;flex-direction:column;gap:16px;min-width:0}
h1{font-family:var(--f-display);font-weight:600;font-size:18px;letter-spacing:-.01em;margin:0;white-space:nowrap;display:flex;align-items:center;gap:8px}
h2{font-family:var(--f-display);font-weight:600;font-size:15px;margin:0}
.sub{color:var(--ink-2);font-size:12.5px;margin:2px 0 0}
.label{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}

.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;min-width:0}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}

.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:6px;overflow:hidden}
.seg button{border:0;background:var(--panel);height:28px;padding:0 10px;cursor:pointer;font-size:12px;color:var(--ink-2)}
.seg button+button{border-left:1px solid var(--line-2)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}

/* chart */
.legend{display:flex;gap:16px;font-size:12px;color:var(--ink-2);flex-wrap:wrap}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:14px;height:3px;border-radius:2px;display:inline-block}
.chart-wrap{position:relative}
.chart-wrap svg{width:100%;height:auto;display:block;overflow:visible}
svg .grid{stroke:var(--line)} svg .zero{stroke:var(--line-2)}
svg .ax{fill:var(--ink-2);font-size:11px;font-family:var(--f-mono)} svg .ax.we{fill:var(--ink-3)}
svg .ln{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.c-rev{stroke:var(--blue);fill:var(--blue)} .c-cost{stroke:var(--coral);fill:var(--coral)} .c-mar{stroke:var(--green);fill:var(--green)}
svg .ln.c-rev,svg .ln.c-cost,svg .ln.c-mar{fill:none}
svg .end{font-size:11.5px;font-weight:600;font-family:var(--f-body);stroke:none}
svg .area{fill:var(--area)} svg .guide{stroke:var(--ink-3);stroke-dasharray:3 3}
.tip{position:absolute;pointer-events:none;background:var(--panel);border:1px solid var(--line-2);border-radius:6px;padding:8px 10px;font-size:12px;box-shadow:var(--shadow);min-width:150px}
.tip div{display:flex;justify-content:space-between;gap:14px}
.tip .t{font-weight:600;margin-bottom:4px;display:block}

/* goals */
.goals{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:16px}
.team-goal .big{font-family:var(--f-display);font-weight:600;font-size:26px;letter-spacing:-.01em}
.team-goal .of{color:var(--ink-2);font-size:13px}
.prog{height:8px;border-radius:4px;background:var(--track);overflow:hidden;margin:12px 0 14px}
.prog i{display:block;height:100%;background:var(--blue);border-radius:4px}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.kpi .v{font-weight:600;font-size:14px}
.g2g{display:inline-flex;align-items:center;gap:3px;font-weight:600}
.up{color:var(--pos)} .down{color:var(--neg)}
.mini-prog{height:6px;border-radius:3px;background:var(--track);overflow:hidden;min-width:80px}
.mini-prog i{display:block;height:100%;background:var(--blue)}
.edit{border:0;background:none;color:var(--ink-3);cursor:pointer;padding:2px 4px;font-size:12px}
.edit:hover{color:var(--blue)}

/* simple tables */
.tbl-frame{overflow-x:auto;min-width:0}
table.simple{width:100%;border-collapse:collapse}
table.simple th{font-family:var(--f-mono);font-weight:400;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);text-align:left;padding:0 10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
table.simple td{padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
table.simple tr:last-child td{border-bottom:0}
table.simple .r{text-align:right}
table.simple tbody tr:hover td{background:var(--panel-2)}

.tops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tops .card{padding:14px 16px}
.rank{list-style:none;margin:10px 0 0;padding:0;counter-reset:r}
.rank li{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);counter-increment:r}
.rank li:last-child{border-bottom:0}
.rank li::before{content:counter(r);font-family:var(--f-mono);font-size:10.5px;color:var(--ink-3);width:16px}
.rank .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:7px}
.rank .v{font-weight:500}

.gc{font-family:var(--f-mono);font-size:10.5px;font-weight:500;letter-spacing:.04em}
.src{font-size:12px;color:var(--ink-2)}

/* toolbars */
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.toolbar .grow{flex:1}
.field{height:30px;border:1px solid var(--line-2);border-radius:6px;background:var(--panel);padding:0 9px;font-size:12.5px;min-width:0}
.field.search{padding-left:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239A9C93' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:8px 50%;width:170px}
input[type=date].field{padding:0 6px}
.switch{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-2);cursor:pointer;user-select:none;white-space:nowrap}
.switch input{appearance:none;width:28px;height:16px;border-radius:8px;background:var(--line-2);position:relative;cursor:pointer;margin:0;transition:background .15s;flex:none}
.switch input::after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .15s}
.switch input:checked{background:var(--blue)}
.switch input:checked::after{transform:translateX(12px)}
.toggles{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.filters-btn{display:none}
.daterange{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}

/* multi select */
.ms{position:relative;display:inline-block}
.ms>button{height:30px;border:1px solid var(--line-2);border-radius:6px;background:var(--panel);padding:0 26px 0 9px;font-size:12.5px;cursor:pointer;position:relative;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.ms>button::after{content:"";position:absolute;right:10px;top:12px;border:4px solid transparent;border-top-color:var(--ink-2)}
.ms>button.on{border-color:var(--blue);color:var(--blue)}
.ms-pop{position:absolute;left:0;top:34px;min-width:220px;max-height:300px;overflow:auto;background:var(--panel);border:1px solid var(--line-2);border-radius:8px;box-shadow:var(--shadow);padding:6px;z-index:45}
.ms-pop label{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:5px;cursor:pointer;white-space:nowrap}
.ms-pop label:hover{background:var(--panel-2)}
.ms-pop input{accent-color:var(--blue)}
.ms-pop .ms-acts{display:flex;justify-content:space-between;padding:4px 6px 6px;border-bottom:1px solid var(--line);margin-bottom:4px}
.ms-pop .ms-acts button{border:0;background:none;color:var(--blue);cursor:pointer;font-size:12px;padding:2px}

/* matrix + detail tables */
.mx-frame{overflow:auto;max-height:calc(100vh - 168px);border:1px solid var(--line);border-radius:var(--r);background:var(--panel);position:relative}
.mx-frame.fs{position:fixed;inset:0;z-index:50;max-height:none;border-radius:0;padding-top:env(safe-area-inset-top,0px)}
.fs-close{display:none}
.mx-frame.fs .fs-close{display:inline-flex;position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60}
table.mx{border-collapse:separate;border-spacing:0;font-size:11px;line-height:16px}
table.mx th,table.mx td{background-color:var(--panel);white-space:nowrap;padding:2px 6px;border-bottom:1px solid var(--line);text-align:right}
table.mx thead th{position:sticky;top:0;z-index:3;font-weight:500;color:var(--ink-2);border-bottom:1px solid var(--line-2);padding-top:6px;padding-bottom:6px;font-size:11.5px}
table.mx thead tr.h2 th{top:var(--h1h,29px);font-family:var(--f-mono);font-weight:400;font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;padding-top:3px;padding-bottom:3px}
table.mx thead .dn{font-weight:600;color:var(--ink);font-size:11.5px}
table.mx thead .wd{font-family:var(--f-mono);font-size:9.5px;color:var(--ink-3);margin-left:3px;text-transform:uppercase}
table.mx .stk{position:sticky;z-index:2}
table.mx.measuring .stk,table.mx.measuring thead th{position:static!important}
table.mx thead .stk{z-index:5}
table.mx .lft{text-align:left}
table.mx .edge{border-right:1px solid var(--line-2)}
table.mx .ds{border-left:1px solid var(--line)}
table.mx tr.grp-end td{border-bottom:1px solid var(--line-2)}
table.mx td.k{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding-right:4px}
table.mx .g{color:var(--ink-2)}
table.mx tr.mrow td{font-size:12px;padding-top:3px;padding-bottom:3px}
table.mx td.m{font-size:12px}
table.mx .tot{font-weight:500}
table.mx .we{background-image:linear-gradient(var(--weekend),var(--weekend))}
table.mx tr.neg-row>td{background-color:var(--warn-row)}
table.mx thead .yd{box-shadow:inset 0 -2px 0 var(--blue)}
table.mx tfoot td{position:sticky;bottom:0;z-index:2;background-color:var(--panel-2);border-bottom:0;font-weight:500}
table.mx tfoot td.stk{z-index:4}
table.mx tfoot tr:first-child td{box-shadow:inset 0 1px 0 var(--line-2)}
table.mx.unfrozen tfoot td{position:static}
table.mx.unfrozen tfoot td.stk{position:sticky}
table.mx .dash{color:var(--ink-3)}
table.mx .pend{color:var(--ink-3);font-style:italic}
table.mx .pdot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ink-3);margin-right:4px;vertical-align:middle}
.gl{position:sticky;top:var(--hh,30px);display:flex;align-items:center;gap:7px;padding-top:3px}
.geo-link{display:flex;align-items:center;gap:7px;color:var(--ink);text-decoration:none;font-weight:600;font-size:12px}
.geo-link:hover .gname{color:var(--blue);text-decoration:underline}
.gname{font-weight:500}

.bar{position:relative;display:block;padding:0 5px;border-radius:3px;font-weight:700;isolation:isolate}
.bar::before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--w);border-radius:3px;z-index:-1}
.bar.p{color:var(--pos);background:var(--pos-bg)} .bar.p::before{background:var(--pos-fill)}
.bar.n{color:var(--neg);background:var(--neg-bg)} .bar.n::before{background:var(--neg-fill);left:auto;right:0}
.bar.z{color:var(--ink-2);font-weight:500}
table.mx td.m{min-width:84px}

.edit-cell{cursor:pointer;border-radius:3px;padding:0 2px;margin:0 -2px}
.edit-cell:hover{outline:1px solid var(--blue)}
.lock{display:inline-block;width:8px;height:9px;margin-right:3px;vertical-align:-1px;background:var(--ink-2);-webkit-mask:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E");mask:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E")}
table.mx tr.grp-row>td{background-color:var(--panel-2);font-weight:600;border-bottom:1px solid var(--line-2)}
table.mx tr.grp-row td.g{font-weight:500}
.grp-tg{border:0;background:none;cursor:pointer;padding:0 4px 0 0;color:var(--ink-2);font-size:11px;width:16px;text-align:left}
.cname{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis}

.head-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.back{color:var(--ink-2);text-decoration:none;font-size:12.5px;white-space:nowrap}
.back:hover{color:var(--blue)}
.jump{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.jump a{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 8px;border:1px solid var(--line-2);border-radius:6px;text-decoration:none;color:var(--ink);font-size:11.5px;background:var(--panel)}
.jump a:hover{border-color:var(--blue);color:var(--blue)}
.jump a[aria-current="page"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}

/* missing investment */
.mi-input{width:110px;height:30px;border:1px solid var(--line-2);border-radius:6px;padding:0 8px;text-align:right;background:var(--panel)}
.mi-input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px var(--blue-tint)}
.mi-input.filled{border-color:var(--green)}
.count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:var(--neg-bg);color:var(--neg);font-size:11px;font-weight:600;margin-left:8px}
.empty{color:var(--ink-2);padding:18px 4px}

/* settings */
.set-wrap{display:grid;grid-template-columns:190px minmax(0,1fr);gap:20px;align-items:start}
.set-nav{position:sticky;top:68px;display:flex;flex-direction:column;gap:2px}
.set-nav a{padding:6px 10px;border-radius:6px;color:var(--ink-2);text-decoration:none}
.set-nav a:hover{background:var(--panel);color:var(--ink)}
.set-body{display:flex;flex-direction:column;gap:16px;min-width:0}
.set-body .card{scroll-margin-top:68px}
.desc{color:var(--ink-2);font-size:12.5px;margin:-8px 0 14px;max-width:70ch}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px}
.form-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--ink-2)}
.form-grid .field{width:100%;color:var(--ink)}
.status{display:inline-flex;align-items:center;gap:6px;font-size:12px}
.status i{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--green)}
.status.warn i{background:var(--coral)} .status.off i{background:var(--ink-3)}
.pill{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:10px;font-size:11px;font-weight:500;background:var(--panel-2);color:var(--ink-2);border:1px solid var(--line)}
.pill.new{background:var(--neg-bg);color:var(--neg);border-color:transparent}
.pill.ok{background:var(--pos-bg);color:var(--pos);border-color:transparent}
table.simple td .field{height:28px}
.log li{display:grid;grid-template-columns:120px 170px minmax(0,1fr);gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.log li span:first-child,.log li span:nth-child(2){color:var(--ink-2)}
.log{list-style:none;margin:0;padding:0}
.sync-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}

/* dialog + toast */
dialog{border:1px solid var(--line-2);border-radius:10px;padding:18px;width:min(360px,calc(100vw - 32px));box-shadow:var(--shadow);color:var(--ink);background:var(--panel)}
dialog::backdrop{background:rgba(20,23,26,.3)}
dialog h3{font-family:var(--f-display);font-size:15px;margin:0 0 4px}
dialog .sub{margin-bottom:14px}
dialog label{display:block;font-size:12px;color:var(--ink-2);margin:10px 0 4px}
dialog input{width:100%;height:34px;border:1px solid var(--line-2);border-radius:6px;padding:0 10px;background:var(--panel)}
dialog .row{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:8px;font-size:12.5px;z-index:70;opacity:0;transition:opacity .2s;pointer-events:none;max-width:calc(100vw - 32px)}
.toast.on{opacity:1}
.tabbar{display:none}

@media (max-width:1100px){
  .goals{grid-template-columns:1fr}
  .tops{grid-template-columns:1fr 1fr}
  .set-wrap{grid-template-columns:1fr}
  .set-nav{position:static;flex-direction:row;flex-wrap:wrap}
}
@media (max-width:760px){
  .nav{display:none}
  .top-in{height:50px;gap:12px}
  .tops{grid-template-columns:1fr}
  .field.search{width:100%}
  .toolbar .opt{display:none}
  .toolbar.open .opt{display:flex}
  .filters-btn{display:inline-flex}
  .mx-frame{max-height:calc(100vh - 200px)}
  .hm{display:none!important}
  .cname{max-width:150px}
  .jump{margin-left:0}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--panel);border-top:1px solid var(--line);
    padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
  .tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 9px;font-size:11px;color:var(--ink-2);text-decoration:none}
  .tabbar a svg{width:20px;height:20px}
  .tabbar a[aria-current="page"]{color:var(--blue)}
  table.mi thead{display:none}
  table.mi,table.mi tbody,table.mi tr,table.mi td{display:block;width:100%}
  table.mi tr{border-bottom:1px solid var(--line);padding:12px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px}
  table.mi td{border:0;padding:0;white-space:normal}
  table.mi td.mi-meta{grid-column:1;grid-row:1;color:var(--ink-2)}
  table.mi td.mi-name{grid-column:1;grid-row:2;font-weight:500}
  table.mi td.mi-rev{grid-column:1;grid-row:3;text-align:left!important;color:var(--ink-2)}
  table.mi td.mi-rev::before{content:"Revenue "}
  table.mi td.mi-inp{grid-column:2;grid-row:1/4;align-self:center}
  .mi-input{width:120px;height:40px;font-size:15px}
  .gname{display:none}
  .log li{grid-template-columns:1fr;gap:2px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* app additions */
.role-tag{font-family:var(--f-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-2);border-radius:3px;padding:0 4px;margin-left:6px;color:var(--ink-3)}
.sync-pill{font-size:11.5px;color:var(--ink-2);white-space:nowrap}
.sync-pill.err{color:var(--neg)}
code{font-family:var(--f-mono);font-size:11.5px;background:var(--panel-2);padding:1px 5px;border-radius:4px}
.loading{opacity:.5;pointer-events:none}
.muted{color:var(--ink-3)}
details summary{list-style:none}

#srcTbl td:first-child,#srcTbl th:first-child{position:sticky;left:0;background:var(--panel);z-index:1}
