/* aspace platform shell — Swiss tekt system. Two surfaces (Ivory, Blue), one accent (Lime). On Lime, ink is always Navy. */
@font-face{font-family:"Archivo";src:url("../fonts/archivo.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Space Mono";src:url("../fonts/spacemono.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{
  --blue:#223BC3;--b2:#3A52CB;--b3:#6B7FD6;--b4:#A7B2E6;--b5:#DCE0F1;--ivory:#F7F5EF;--lime:#B4FD01;--red:#FE3D33;--white:#FFFFFF;--navy:#0B1A6E;--ink:#121212;
  --on-lime:var(--navy);
  --f-sans:"Archivo","Helvetica Neue",Arial,sans-serif;--f-mono:"Space Mono",ui-monospace,Menlo,monospace;
  --pad:clamp(16px,2.4vw,32px);--gut:clamp(12px,1.4vw,20px);--top-h:56px;--side-w:248px;
  --ease:cubic-bezier(.76,0,.18,1);--ease-o:cubic-bezier(.16,1,.3,1);
  --bg:var(--ivory);--fg:var(--blue);--ln:rgba(34,59,195,.55);--ln2:rgba(34,59,195,.18);--dim:rgba(34,59,195,.86);--dot:var(--red);
  --q1:#EB4E3E;--q1t:#F06050;--q2:#EC8D34;--q3:#F9D64A;--q4:#C7FB50;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;height:100%}
body{margin:0;min-height:100%;background:var(--ivory);color:var(--blue);font-family:var(--f-sans);font-size:16px;line-height:1.2;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}p{margin:0}
h1,h2,h3,h4{margin:0;font-weight:500;text-wrap:balance}
button,input,select,textarea{font:inherit;color:inherit}
button{-webkit-appearance:none;appearance:none;border-radius:0}
:focus-visible{outline:2px solid currentColor;outline-offset:2px}
[tabindex="-1"]:focus{outline:none}
[hidden]{display:none!important}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--blue);color:var(--ivory);padding:10px 14px;font-weight:500;font-size:14px}.skip:focus{top:12px}
/* surfaces */
.sw{--bg:var(--ivory);--fg:var(--blue);--ln:rgba(34,59,195,.55);--ln2:rgba(34,59,195,.18);--dim:rgba(34,59,195,.86);--dot:var(--red);background:var(--bg);color:var(--fg)}
.sb{--bg:var(--blue);--fg:var(--ivory);--ln:rgba(247,245,239,.6);--ln2:rgba(247,245,239,.25);--dim:rgba(247,245,239,.8);--dot:var(--lime);background:var(--bg);color:var(--fg)}
.sl{--bg:var(--lime);--fg:var(--navy);--ln:rgba(11,26,110,.6);--ln2:rgba(11,26,110,.22);--dim:rgba(11,26,110,.86);background:var(--bg);color:var(--fg)}
.sx{--bg:var(--white);background:var(--white)}
/* type */
.t-1{font-size:clamp(30px,3.6vw,56px);line-height:1.05;font-weight:500;letter-spacing:-.045em}
.t-2{font-size:clamp(22px,2.2vw,34px);line-height:1.1;font-weight:500;letter-spacing:-.035em}
.t-3{font-size:18px;line-height:1.15;font-weight:500;letter-spacing:-.01em}
.lead{font-size:clamp(17px,1.4vw,20px);line-height:1.25;font-weight:300;letter-spacing:-.01em;max-width:38em}
.lbl{font-size:14px;line-height:1.15;font-weight:500}
.co{font-family:var(--f-mono);font-size:11px;line-height:1.3;font-weight:400;font-variant-numeric:tabular-nums}
.num{font-weight:300;letter-spacing:-.06em;line-height:1;font-variant-numeric:tabular-nums}
.num small{font-size:.32em;font-weight:500;letter-spacing:-.01em;margin-left:5px}
.dim{color:var(--dim)}
.body{line-height:1.35;max-width:40em}
/* frame */
.fr{position:relative;border:1px solid var(--ln)}
.fr::before{content:"";position:absolute;inset:-3px;pointer-events:none;z-index:3;background:linear-gradient(var(--fg),var(--fg)) 0 0/5px 5px no-repeat,linear-gradient(var(--fg),var(--fg)) 100% 0/5px 5px no-repeat,linear-gradient(var(--fg),var(--fg)) 0 100%/5px 5px no-repeat,linear-gradient(var(--fg),var(--fg)) 100% 100%/5px 5px no-repeat}
.fill{background:var(--bg)}
.cells{display:grid;padding:1px 0 0 1px}
.cells>*{margin:-1px 0 0 -1px;min-width:0}
.k6{grid-template-columns:repeat(6,minmax(0,1fr))}.k5{grid-template-columns:repeat(5,minmax(0,1fr))}.k4{grid-template-columns:repeat(4,minmax(0,1fr))}.k3{grid-template-columns:repeat(3,minmax(0,1fr))}.k2{grid-template-columns:repeat(2,minmax(0,1fr))}.k1{grid-template-columns:1fr}
.cell{padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px;min-width:0}
.cell .top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.panel{padding:16px;display:flex;flex-direction:column;gap:14px;min-width:0}
.ph{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--ln);min-height:46px}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:42px;padding:0 14px;border:1px solid transparent;background:var(--fg);color:var(--bg);font:500 14.5px/1.1 var(--f-sans);letter-spacing:-.01em;text-decoration:none;cursor:pointer;transition:background .25s,color .25s,font-weight .3s var(--ease);white-space:nowrap}
.btn .ar{transition:transform .35s var(--ease-o)}
.btn:is(:hover,:focus-visible) .ar{transform:translateX(5px)}
.btn.ghost{background:var(--bg);color:var(--fg);border-color:var(--ln)}
.btn:is(:hover,:focus-visible),.btn.ghost:is(:hover,:focus-visible){background:var(--lime);color:var(--on-lime);border-color:var(--on-lime);box-shadow:inset 0 0 0 1px var(--on-lime);font-weight:700}
.btn.sm{min-height:34px;font-size:13.5px;gap:14px;padding:0 11px}
.btn.lg{min-height:56px;font-size:17px;padding:0 18px}
.btn[disabled]{opacity:.5;pointer-events:none}
.sl .btn{background:var(--navy);color:var(--ivory);border-color:var(--navy)}
.sl .btn:is(:hover,:focus-visible){background:var(--ivory);color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.sl .btn.ghost{background:transparent;color:var(--navy);border-color:var(--navy)}
.sl .btn.ghost:is(:hover,:focus-visible){background:var(--navy);color:var(--ivory)}
.btns{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--ln);background:var(--bg);color:var(--fg);min-height:38px;padding:0 13px;cursor:pointer;font-weight:500;font-size:14px;transition:background .25s,color .25s;white-space:nowrap}
.chip[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.chip:hover{background:var(--lime);color:var(--on-lime);border-color:var(--on-lime);box-shadow:inset 0 0 0 1px var(--on-lime)}
.seg{display:flex;flex-wrap:wrap;padding-left:1px}.seg .chip{margin:0 0 -1px -1px}
.lnk{display:inline-flex;gap:8px;align-items:center;text-decoration:none;font-weight:500;font-size:14px;background:none;border:0;padding:0;cursor:pointer;color:inherit}
.lnk span:first-child{background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:2px}
.lnk:hover{font-weight:700}
.ix{width:40px;height:40px;border:1px solid var(--ln);background:var(--bg);color:var(--fg);display:inline-grid;place-items:center;cursor:pointer;flex:none}
.ix:hover{background:var(--lime);color:var(--on-lime);box-shadow:inset 0 0 0 1px var(--on-lime)}
.ix svg{width:18px;height:18px}
/* pills / status */
.st{font:400 10.5px/1 var(--f-mono);padding:4px 6px;border:1px solid currentColor;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.st.ok{background:var(--blue);color:var(--ivory);border-color:var(--blue)}
.st.flag{background:var(--lime);color:var(--navy);border-color:var(--navy)}
.st.warn{background:var(--ivory);color:var(--blue);border-style:dashed}
.st.off{opacity:.7}
.sb .st.ok{background:var(--ivory);color:var(--blue);border-color:var(--ivory)}
.tag{border:1px solid currentColor;padding:3px 7px;font-weight:500;font-size:12.5px;white-space:nowrap}
/* fields */
.inp{border:1px solid rgba(34,59,195,.7);background:var(--white)!important;color:var(--blue)!important;padding:10px 12px;font:400 14px var(--f-mono);border-radius:0;width:100%;min-height:44px;outline:none}
.inp.sans{font:300 16px var(--f-sans)}
.inp:focus{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);outline:2px solid var(--blue);outline-offset:-2px}
select.inp{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--blue) 50%),linear-gradient(135deg,var(--blue) 50%,transparent 50%)!important;background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%!important;background-size:5px 5px!important;background-repeat:no-repeat!important;padding-right:30px}
::placeholder{color:rgba(34,59,195,.8)}
.flab{display:block;font-weight:500;font-size:13px;margin-bottom:6px}
.frow{display:grid;gap:12px}
.inrow{display:flex}.inrow .inp{flex:1;min-width:0;border-right:0}.inrow .btn{min-height:44px}
input[type=range]{width:100%;appearance:none;-webkit-appearance:none;height:30px;background:transparent;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:1px;background:var(--fg)}
input[type=range]::-moz-range-track{height:1px;background:var(--fg)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--fg);border:0;margin-top:-7px;border-radius:0}
input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--fg);border:0;border-radius:0}
.rl{display:flex;justify-content:space-between;font-weight:500;font-size:13px;gap:8px}
.tg{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 14px;border:1px solid var(--ln);background:var(--bg);color:var(--fg);font-weight:500;font-size:14px;cursor:pointer;text-align:left}
.tg i{width:26px;height:14px;border:1px solid currentColor;position:relative;flex:none}
.tg i::after{content:"";position:absolute;top:2px;left:2px;width:8px;height:8px;background:currentColor;transition:left .2s var(--ease-o)}
.tg[aria-pressed="true"]{background:var(--blue);color:var(--ivory);border-color:var(--blue)}
.tg[aria-pressed="true"] i::after{left:14px;background:var(--lime)}
.tg:hover{background:var(--lime);color:var(--on-lime);box-shadow:inset 0 0 0 1px var(--on-lime)}
.opts{padding-top:1px}
.opt{margin-top:-1px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;background:var(--ivory);color:var(--blue);min-height:48px;position:relative;border:1px solid var(--ln)}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt .bx{width:14px;height:14px;border:1px solid currentColor;flex:none}
.opt:hover{background:var(--b5)}
.opt:has(input:checked){background:var(--blue);color:var(--ivory)}
.opt:has(input:checked) .bx{background:var(--lime);border-color:var(--lime)}
.opt:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
/* tables */
.tw{overflow-x:auto;min-width:0}
table.tb{border-collapse:collapse;width:100%;font-size:14px;line-height:1.25}
.tb th{font-weight:500;text-align:left;font-size:12.5px;padding:9px 12px;border-bottom:1px solid var(--ln);color:var(--dim);white-space:nowrap;position:sticky;top:0;background:var(--bg)}
.tb th button{all:unset;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.tb th button:hover{text-decoration:underline}
.tb td{padding:10px 12px;border-bottom:1px solid var(--ln2);vertical-align:middle}
.tb td.co{font-size:11.5px;white-space:nowrap}
.tb td.r,.tb th.r{text-align:right}
.tb tbody tr{transition:background .2s}
.tb tbody tr.click{cursor:pointer}
.tb tbody tr.click:hover{background:var(--lime);color:var(--on-lime)}
.tb tbody tr.click:hover .st.ok{background:var(--navy);border-color:var(--navy)}
.tb tbody tr[aria-selected="true"]{background:var(--b5)}
/* data cells */
.qbar{height:8px;display:grid;grid-template-columns:repeat(20,1fr);gap:2px}
.qbar i{background:var(--b5)}.qbar i.on{background:var(--blue)}.qbar i.unc{background:repeating-linear-gradient(90deg,var(--blue) 0 1px,transparent 1px 3px)}
.sb .qbar i{background:rgba(247,245,239,.22)}.sb .qbar i.on{background:var(--ivory)}
.pr{display:grid;grid-template-columns:minmax(84px,120px) minmax(0,1fr) 92px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--ln2)}
.pr:last-child{border-bottom:0}
.pr .k{font-weight:500;font-size:13.5px;display:flex;flex-direction:column;gap:2px}
.pr .v{text-align:right;font-variant-numeric:tabular-nums}
.pr .v b{font-weight:500;font-size:15px}
.pgrid{display:grid;grid-template-columns:repeat(20,1fr);gap:2px}
.cols{display:grid;gap:4px;align-items:end;height:150px}
.cols .c{display:grid;grid-template-rows:repeat(20,1fr);gap:2px;height:100%;position:relative}
.cols .c i{background:var(--b5)}.cols .c i.on{background:var(--blue)}
.cols .c.proj i.on{background:repeating-linear-gradient(90deg,var(--blue) 0 2px,transparent 2px 4px)}
.cols .c.hl i.on{background:var(--navy)}
.cols-x{display:grid;gap:4px;margin-top:6px;text-align:center}
.months{display:grid;grid-template-columns:repeat(12,1fr);gap:2px}
.months i{aspect-ratio:1/1.3;background:var(--b5);display:flex;align-items:flex-end;justify-content:center;color:var(--blue);font:400 9px var(--f-mono);font-style:normal;padding-bottom:3px}
.months i.on{background:var(--blue);color:var(--ivory)}.months i.now{outline:2px solid var(--lime);outline-offset:-2px}
.dsh{background:repeating-linear-gradient(90deg,var(--blue) 0 2px,transparent 2px 5px)}
.leg{display:flex;flex-wrap:wrap;gap:6px 16px}
.leg span{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500}
.leg i{width:18px;height:10px;display:block}
/* icons */
.ic{display:inline-block;width:20px;flex:none;color:currentColor}
.ic svg{display:block;width:100%;height:auto;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:square;stroke-linejoin:miter}
.ic .f{fill:currentColor;stroke:none}
/* app shell */
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:stretch;height:var(--top-h);padding:8px var(--pad) 0;background:var(--ivory);--ln:rgba(34,59,195,.7)}
.topbar-in{display:flex;flex:1;padding-left:1px;min-width:0}
.topbar-in>.fr{margin-left:-1px;display:flex;align-items:center;background:var(--ivory);min-height:46px}
.topbar .brand{gap:0;text-decoration:none;flex:none;padding-right:14px}
.topbar .brand{--mh:24px}.topbar .brand .m{height:var(--mh);padding:0 0 0 12px;display:flex;align-items:center}
.topbar .brand .m svg{height:var(--mh);width:auto;display:block;transform-origin:50% 50%}
.topbar .brand .wm{margin-left:calc(var(--mh) * .3);display:flex;align-items:center;transform:translateY(calc(var(--mh) * .084))}
.topbar .brand .wm svg{height:calc(var(--mh) * .8);width:auto;display:block}
.topbar .appn{padding:0 14px;font-weight:500;font-size:14px;gap:10px;white-space:nowrap}
.topbar .appn .co{color:var(--dim)}
.topbar .grow{flex:1;min-width:0;padding:0 8px}
.topbar .grow .inp{min-height:34px;border-color:transparent;background:transparent!important;font:300 15px var(--f-sans)}
.topbar .grow .inp:focus{background:var(--white)!important}
.topbar .tool{padding:0 13px;gap:8px;font-weight:500;font-size:14px;cursor:pointer;color:inherit;white-space:nowrap}
.topbar .tool:hover,.topbar .tool[aria-expanded="true"]{background:var(--lime);color:var(--on-lime);box-shadow:inset 0 0 0 1px var(--on-lime)}
.topbar .tool svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.3}
.topbar .who{padding:0 12px;gap:9px;font-weight:500;font-size:13.5px;white-space:nowrap}
.topbar .who .av{width:26px;height:26px;background:var(--blue);color:var(--ivory);display:grid;place-items:center;font-size:11px}
.shell{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);gap:0;padding:12px var(--pad) 32px;align-items:start;column-gap:var(--gut)}
.side{position:sticky;top:calc(var(--top-h) + 12px);max-height:calc(100dvh - var(--top-h) - 24px);display:flex;flex-direction:column;background:var(--ivory);--ln:rgba(34,59,195,.7)}
.side .sh{display:flex;justify-content:space-between;align-items:stretch;border-bottom:1px solid var(--ln);min-height:44px}
.side .sh .lbl{display:flex;align-items:center;padding:0 14px}
.side .sx2{width:44px;border:0;border-left:1px solid var(--ln);background:none;cursor:pointer;color:inherit;position:relative}
.side .sx2 i{position:absolute;left:14px;right:14px;top:50%;height:1.5px;background:currentColor;transform:rotate(45deg)}.side .sx2 i+i{transform:rotate(-45deg)}
.side .sx2:hover{background:var(--lime);color:var(--on-lime)}
.side .sb2{overflow:auto;padding:10px 10px 6px;flex:1;scrollbar-width:thin}
.side .grp{margin-bottom:14px}
.side .gl{padding:0 4px 7px;color:var(--dim)}
.side ul{list-style:none;margin:0;padding:1px 0 0}
.side li{margin-top:-1px}
.side a{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 10px;text-decoration:none;font-weight:500;font-size:14px;border:1px solid rgba(34,59,195,.25);background:var(--ivory);transition:background .25s,color .25s,padding .3s var(--ease-o)}
.side a .ic{width:18px}
.side a .n{margin-left:auto;font:400 10.5px var(--f-mono);padding:2px 5px;border:1px solid currentColor}
.side a:hover{background:var(--lime);color:var(--on-lime);border-color:var(--on-lime);padding-left:14px;position:relative;z-index:1}
.side a[aria-current="page"]{background:var(--blue);color:var(--ivory);border-color:var(--blue);position:relative;z-index:1}
.side a[aria-current="page"] .n{border-color:var(--lime);color:var(--lime)}
.side .sf{border-top:1px solid var(--ln);padding:10px 14px;display:flex;flex-direction:column;gap:4px}
body.side-closed .shell{grid-template-columns:minmax(0,1fr)}
body.side-closed .side{display:none}
.main{min-width:0;display:flex;flex-direction:column;gap:var(--gut)}
.view[hidden]{display:none!important}
.view{display:flex;flex-direction:column;gap:var(--gut);min-width:0}
.vh-h{display:flex;justify-content:space-between;align-items:flex-end;gap:14px 20px;flex-wrap:wrap;padding:6px 0 4px}
.vh-h .tt{display:flex;flex-direction:column;gap:8px;min-width:0}
.crumb{display:flex;gap:6px;flex-wrap:wrap;color:var(--dim)}
.crumb a{text-decoration:none}.crumb a:hover{text-decoration:underline}
.g2{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--gut);align-items:start}
.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gut);align-items:start}
.g21{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--gut);align-items:start}
.kpi{min-height:120px;justify-content:space-between}
.kpi .num{font-size:clamp(34px,3.2vw,52px)}
.kpi .dl{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.alert-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;padding:12px 14px;border-bottom:1px solid var(--ln2);align-items:start;text-decoration:none;cursor:pointer;background:none;border-left:0;border-right:0;border-top:0;width:100%;text-align:left;color:inherit}
.alert-row:hover{background:var(--lime);color:var(--on-lime)}
.alert-row:last-child{border-bottom:0}
.alert-row .ic{width:22px;margin-top:2px}
.alert-row .tx{display:flex;flex-direction:column;gap:4px;line-height:1.3}
.emp{padding:28px 16px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.kv{display:grid;grid-template-columns:minmax(110px,40%) minmax(0,1fr);gap:8px 12px;margin:0}
.kv dt{color:var(--dim);font:400 11px/1.4 var(--f-mono);padding-top:2px}
.kv dd{margin:0;line-height:1.3;overflow-wrap:anywhere}
.code{font:400 12px/1.5 var(--f-mono);background:var(--white);border:1px solid var(--ln);padding:12px;overflow:auto;white-space:pre;color:var(--blue);max-height:280px}
.sb .code{background:rgba(247,245,239,.08);color:var(--ivory)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:1px 0 0 1px}
.steps>*{margin:-1px 0 0 -1px}
.step{padding:14px 16px;display:flex;flex-direction:column;gap:8px;border:1px solid var(--ln)}
.step[aria-current="step"]{background:var(--blue);color:var(--ivory)}
.step.done{background:var(--b5)}
.prog{height:4px;background:var(--b5);position:relative;overflow:hidden}
.prog i{position:absolute;inset:0;background:var(--blue);transform-origin:left;transform:scaleX(var(--p,0));transition:transform .4s var(--ease)}
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translate(-50%,calc(100% + 60px));visibility:hidden;z-index:90;background:var(--blue);color:var(--ivory);padding:11px 14px;font:400 12px var(--f-mono);transition:transform .45s var(--ease);border:1px solid var(--ivory);max-width:calc(100vw - 32px)}
.toast.on{transform:translate(-50%,0);visibility:visible}
.scrim{position:fixed;inset:0;z-index:70;background:rgba(34,59,195,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .4s}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:76;width:min(520px,100%);background:var(--ivory);color:var(--blue);border-left:1px solid var(--blue);transform:translateX(102%);transition:transform .7s var(--ease);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px)}
.drawer.open{transform:none}
.drawer .dh{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--ln)}
.drawer .db{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:16px}
.drawer .df{display:flex;justify-content:space-between;gap:10px;padding:14px 18px;border-top:1px solid var(--ln);padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
.illus{font:400 10.5px var(--f-mono);color:var(--dim)}
[data-r]{animation:rin .6s var(--ease-o) both;animation-delay:var(--d,0ms)}
@keyframes rin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0s!important;transition-duration:0s!important}}
/* responsive */
.only-m{display:none!important}
@media (max-width:1180px){.g3{grid-template-columns:1fr 1fr}.k6{grid-template-columns:repeat(3,minmax(0,1fr))}.k5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1000px){
 :root{--side-w:0px}
 .shell{grid-template-columns:minmax(0,1fr)}
 .side{position:fixed;left:0;top:0;bottom:0;max-height:none;width:min(320px,88vw);z-index:74;transform:translateX(-104%);transition:transform .6s var(--ease);margin:0}
 .side.open{transform:none}
 body.side-closed .side{display:flex}
 .g2,.g21{grid-template-columns:minmax(0,1fr)}
 .k4{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hide-t{display:none!important}
 .only-m{display:flex!important}
}
@media (max-width:640px){
 body{font-size:15px}
 .g3,.k3,.k2,.steps{grid-template-columns:minmax(0,1fr)}
 .k6,.k5{grid-template-columns:repeat(2,minmax(0,1fr))}
 .k5>:last-child:nth-child(odd){grid-column:1/-1}
 .hide-m{display:none!important}
 .topbar .brand .wm{display:none}
 .topbar .appn{padding:0 10px;flex:1;min-width:0;overflow:hidden}
 .pr{grid-template-columns:76px minmax(0,1fr) 78px}
}
.mapwrap{aspect-ratio:16/9}
.mapwrap.tall{aspect-ratio:4/3}
.fhead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.reco .num{font-size:clamp(46px,4.4vw,72px)}
.rrow{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid var(--ln2);align-items:baseline}
.rrow:last-child{border-bottom:0}
.zt td:first-child{width:46px}
.zsw{width:18px;height:18px;display:inline-block;border:1px solid var(--ln);vertical-align:middle}
.cmpt th,.cmpt td{text-align:right}.cmpt th:first-child,.cmpt td:first-child{text-align:left}
.best{background:var(--lime);color:var(--navy)}
.score{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;height:10px;margin-top:6px}
.score i{background:var(--b5)}.score i.on{background:var(--blue)}
.mae{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:1px 0 0 1px}
.mae>*{margin:-1px 0 0 -1px}
@media (max-width:640px){.mae{grid-template-columns:1fr 1fr}}
.key{display:flex;gap:0;min-width:0}
.key .inp{border-right:0}
.wl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gut)}
@media (max-width:760px){.wl{grid-template-columns:1fr}}
.dd{display:flex;gap:6px;flex-wrap:wrap}
.tabsx{display:flex;padding-left:1px;flex-wrap:wrap;border-bottom:1px solid var(--ln)}
.tabsx button{margin:0 0 -1px -1px;border:1px solid var(--ln);background:var(--bg);min-height:38px;padding:0 13px;font-weight:500;font-size:13.5px;cursor:pointer;color:var(--fg)}
.tabsx button[aria-selected="true"]{background:var(--blue);color:var(--ivory);border-color:var(--blue)}
.tabsx button:hover{background:var(--lime);color:var(--navy)}
/* v3 additions: auth, roles, farm pages, AI chat, a11y panel — DS v2 tokens only */
.topbar .farmsel{padding:0 6px;min-width:0}
.topbar .farmsel .inp{min-height:34px;padding:4px 30px 4px 10px;font:500 14px var(--f-sans);max-width:240px}
.topbar .who.btnw{cursor:pointer;color:var(--blue);border:1px solid var(--ln);background:var(--ivory);font:inherit;font-weight:500;font-size:13.5px;align-self:stretch}
.topbar .tool.ai{border:1px solid var(--ln)}
.topbar .tool.ai[aria-pressed="true"]{border-color:var(--blue)}
.topbar .who.btnw:hover,.topbar .who.btnw[aria-expanded="true"]{background:var(--lime);color:var(--on-lime);box-shadow:inset 0 0 0 1px var(--on-lime);font-weight:700}
.topbar .ai{gap:9px}
.topbar .ai .live{width:7px;height:7px;background:var(--lime);box-shadow:0 0 0 1px var(--navy)}
.topbar .ai[aria-pressed="true"]{background:var(--blue);color:var(--ivory)}
/* auth */
.auth{position:fixed;inset:0;z-index:120;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);overflow:auto;background:var(--ivory)}
.auth[hidden]{display:none!important}
.auth .al{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:28px;padding:calc(var(--pad) + env(safe-area-inset-top,0px)) var(--pad) var(--pad);min-height:100%;overflow:hidden}
.auth .al canvas{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;opacity:.2}
.auth .al>*{position:relative}
.auth .brandx{display:flex;align-items:center;gap:12px;color:var(--ivory);--dot:var(--lime)}
.auth .brandx svg{height:26px;width:auto;display:block}
.auth .brandx .wmx svg{height:20px}
.auth .claim{display:flex;flex-direction:column;gap:18px;max-width:30em}
.auth .proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:1px 0 0 1px}
.auth .proof>*{margin:-1px 0 0 -1px;border:1px solid var(--ln);padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.auth .proof .num{font-size:clamp(26px,2.6vw,38px)}
.auth .ar2{display:flex;flex-direction:column;justify-content:center;padding:calc(var(--pad) + env(safe-area-inset-top,0px)) var(--pad) var(--pad);min-height:100%}
.auth .card{width:min(520px,100%);margin:0 auto;display:flex;flex-direction:column;gap:18px}
.auth .err{font-size:13.5px;font-weight:500;display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border:1px dashed var(--blue)}
.auth .err[hidden]{display:none!important}
.auth .opt .od{display:flex;flex-direction:column;gap:3px}
.auth .opt .od .co{opacity:.9}
.auth .stepl{display:flex;gap:8px;align-items:center}
.auth .code{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.auth .code .inp{text-align:center;font-size:20px;padding:8px 0}
.auth .alt{display:flex;flex-wrap:wrap;gap:8px}
.auth .demo{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
/* auth panels share one grid cell so the card height is always the
   tallest panel — tabs stay put while steps crossfade */
.auth .panels{display:grid}
.auth .panels>.frow{grid-area:1/1;min-width:0;align-self:start;transition:opacity .18s ease}
.auth .panels>.frow[hidden]{display:grid!important;visibility:hidden;pointer-events:none;opacity:0}
@media (max-width:900px){.auth{grid-template-columns:1fr}.auth .al{min-height:auto;gap:18px}.auth .al .claim .lead,.auth .proof{display:none}}
/* field mode: larger type and targets for farmers */
body.fieldmode{font-size:17px}
body.fieldmode .btn{min-height:48px}
body.fieldmode .btn.sm{min-height:44px}
body.fieldmode .chip{min-height:44px}
body.fieldmode .side a{min-height:48px;font-size:15px}
/* today */
.kpi4 .cell{min-height:118px;justify-content:space-between}
.kpi4 .num{font-size:clamp(36px,3.4vw,56px)}
.tasks3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:1px 0 0 1px}
.tasks3>*{margin:-1px 0 0 -1px;min-width:0}
.task{padding:16px;display:flex;flex-direction:column;gap:12px}
.task .tt{display:flex;justify-content:space-between;gap:10px;align-items:center}
.task .act{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:auto}
.task .act .btn{justify-content:center}
.task .act2{display:grid;grid-template-columns:1fr 1fr;padding-left:1px}
.task .act2 .btn{margin-left:-1px;justify-content:center}
.task.done{opacity:.72}
.when{font:400 10.5px/1 var(--f-mono);padding:5px 7px;border:1px solid currentColor;text-transform:uppercase;letter-spacing:.06em}
.when.now{background:var(--lime);color:var(--navy);border-color:var(--navy)}
.when.today{background:var(--blue);color:var(--ivory);border-color:var(--blue)}
.fcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));padding:1px 0 0 1px}
.fcards>*{margin:-1px 0 0 -1px;min-width:0}
.fcard{display:flex;flex-direction:column;cursor:pointer;text-align:left;border:1px solid var(--ln);background:var(--ivory);color:var(--blue);padding:0;font:inherit;transition:background .25s}
.fcard:hover{background:var(--b5)}
.fcard:focus-visible{outline:2px solid var(--blue);outline-offset:2px;z-index:2}
.fcard .th{position:relative;aspect-ratio:16/9;max-width:100%;background:var(--blue);overflow:hidden}
.fcard .th canvas{width:100%;height:100%;display:block;image-rendering:pixelated}
.fcard .th .st{position:absolute;top:8px;right:8px}
.fcard .th .co{position:absolute;left:8px;bottom:6px;color:var(--ivory)}
.fcard .bd{padding:12px 14px 14px;display:flex;flex-direction:column;gap:10px}
.fcard .mt{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;border:1px solid var(--ln2);padding:8px}
.fcard .mt span{display:flex;flex-direction:column;gap:2px;font-size:13px}
.fcard .na{border-top:1px solid var(--ln2);padding-top:8px;display:flex;flex-direction:column;gap:2px;font-size:13.5px}
.trend3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:1px 0 0 1px}
.trend3>*{margin:-1px 0 0 -1px}
.trend3 .cell{flex-direction:row;align-items:center;gap:14px}
.trend3 .tic{width:44px;height:44px;border:1px solid currentColor;display:grid;place-items:center;flex:none}
.trend3 .tic .ic{width:22px}
.insight{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}
.insight .ic{width:26px}
/* water chart */
.wchart{position:relative}
.sb .cols .c i{background:rgba(247,245,239,.18)}
.sb .cols .c i.on{background:var(--ivory)}
.sb .cols .c.proj i.on{background:repeating-linear-gradient(90deg,var(--ivory) 0 2px,transparent 2px 4px)}
.sb .cols .c.hl i.on{background:var(--lime)}
.sb .cols .c.low i.on{background:var(--lime)}
.cols .c.low i.on{background:var(--navy)}
.thr{position:absolute;left:0;right:0;border-top:1px dashed currentColor;pointer-events:none}
.thr span{position:absolute;left:0;top:-15px;font:400 10px var(--f-mono);background:var(--bg);padding:0 4px}
.rainrow{height:56px}
.sb .rainrow .c i{background:rgba(247,245,239,.08)}.sb .rainrow .c i.on,.sb .rainrow .c.proj i.on{background:var(--b4)}
.wstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:1px 0 0 1px}
.wstats>*{margin:-1px 0 0 -1px;border:1px solid var(--ln);padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.wstats .num{font-size:clamp(30px,2.6vw,42px)}
.walert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:12px 14px;border:1px dashed var(--ln)}
.walert .ic{width:22px}
/* market */
.spark{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;height:28px;align-items:end;width:120px}
.spark i{display:block;background:var(--b4)}
.spark i.on{background:var(--blue)}
.spark i.pj{background:repeating-linear-gradient(90deg,var(--blue) 0 1px,transparent 1px 3px)}
.rec{font:400 10.5px/1 var(--f-mono);padding:5px 8px;border:1px solid currentColor;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;display:inline-block}
.rec.sell{background:var(--lime);color:var(--navy);border-color:var(--navy)}
.rec.hold{background:var(--blue);color:var(--ivory);border-color:var(--blue)}
.rec.mon{border-style:dashed}
.rec.ctr{opacity:.8}
/* decisions timeline */
.tl{list-style:none;margin:0;padding:0 0 0 22px;position:relative}
.tl::before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:1px;background:var(--ln)}
.tl li{position:relative;margin-bottom:var(--gut)}
.tl li::before{content:"";position:absolute;left:-20px;top:16px;width:9px;height:9px;background:var(--blue)}
.tl li.ai::before{background:var(--lime);box-shadow:0 0 0 1px var(--navy)}
.tl .row{padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:baseline}
.tl .row .out{font-weight:500;font-size:14px;text-align:right}
@media (max-width:640px){.tl .row{grid-template-columns:1fr}.tl .row .out{text-align:left}}
/* funnel + bars */
.fun{display:grid;gap:10px}
.fun .fr2{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) 84px;gap:12px;align-items:center}
.fun .gauge{height:14px}
.minibar{display:grid;grid-template-columns:repeat(20,1fr);gap:2px;height:8px;min-width:90px}
.minibar i{background:var(--b5)}.minibar i.on{background:var(--blue)}.minibar i.gap{background:repeating-linear-gradient(90deg,var(--blue) 0 1px,transparent 1px 3px)}
/* tenants */
.swatches{display:flex;flex-wrap:wrap;gap:6px}
.swatch{width:44px;height:44px;border:1px solid var(--ln);cursor:pointer;padding:0;position:relative}
.swatch[aria-pressed="true"]{box-shadow:inset 0 0 0 3px var(--ivory),0 0 0 2px var(--blue)}
.swatch:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.matrix td,.matrix th{text-align:center}
.matrix td:first-child,.matrix th:first-child{text-align:left}
.mk2{display:inline-block;width:14px;height:14px;border:1px solid var(--blue)}
.mk2.y{background:var(--blue)}
/* billing */
.inv td .btn{min-height:34px}
/* message bubbles (shared: ask composer + activity feeds) */
.msg{display:flex;gap:9px;align-items:flex-start;max-width:100%}
.msg .av{width:28px;height:28px;flex:none;display:grid;place-items:center;font:400 10px var(--f-mono);border:1px solid var(--blue)}
.msg.me{flex-direction:row-reverse}
.msg.me .av{background:var(--b5)}
.msg.ai .av{background:var(--blue);color:var(--lime)}
.msg .bub{padding:10px 12px;font-size:14px;line-height:1.4;border:1px solid var(--ln);background:var(--ivory);white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}
.msg.me .bub{background:var(--white)}
.msg.ai .bub{background:var(--b5);border-color:var(--ln)}
.msg .meta{font:400 10px var(--f-mono);color:var(--dim);margin-top:4px}
.msg .col{display:flex;flex-direction:column;min-width:0;max-width:calc(100% - 40px)}
.msg.me .col{align-items:flex-end}
.quick{display:flex;flex-wrap:wrap;gap:6px}
.quick .chip{min-height:34px;font-size:13px;padding:0 10px}
.typing{display:inline-flex;gap:3px}
.typing i{width:5px;height:5px;background:var(--blue);animation:tp 1s infinite steps(2)}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}
@keyframes tp{50%{opacity:.2}}
.act-row{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;padding:10px 0;border-bottom:1px solid var(--ln2);font-size:14px}
/* account + a11y */
.acct{display:flex;gap:12px;align-items:center}
.acct .av{width:44px;height:44px;background:var(--blue);color:var(--ivory);display:grid;place-items:center;font-size:15px;font-weight:500;flex:none}
.axg{display:flex;flex-direction:column;gap:8px}
html.ax-cv1{--lime:#FF8A00;--on-lime:#121212}
html.ax-cv2{--lime:#FE3D33;--on-lime:#121212}
html.ax-cv3{--lime:#DCDCDC}
html.ax-cv3 body{filter:grayscale(1)}
html.ax-hc{--dim:var(--blue)}
html.ax-hc .sb{--dim:var(--ivory)}
html.ax-hc :focus-visible{outline-width:3px}
html.ax-rm *,html.ax-rm *::before,html.ax-rm *::after{animation-duration:0s!important;transition-duration:0s!important}
html.ax-ul a{text-decoration:underline!important;text-underline-offset:3px}
html.ax-sp body{line-height:1.5;letter-spacing:.02em;word-spacing:.16em}
html.ax-t1 .main{zoom:1.15}
html.ax-t2 .main{zoom:1.3}
html[class*="ax-cv"] .side a[aria-current="page"]{box-shadow:inset 4px 0 0 currentColor}
@media (max-width:1000px){.tasks3,.trend3{grid-template-columns:1fr}.fun .fr2{grid-template-columns:1fr 84px}.fun .fr2 .gauge{grid-column:1/-1;grid-row:2}}
@media (max-width:640px){.fcard .th{aspect-ratio:3/1}.wstats{grid-template-columns:1fr}.kpi4{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar .farmsel .inp{max-width:150px}}
.flbar{flex-wrap:wrap;gap:10px}
.flb{display:flex;gap:8px;flex-wrap:wrap;align-items:center;min-width:0}
.flb .inp{min-height:38px;width:auto;max-width:240px;padding-top:6px;padding-bottom:6px;font-size:14px}
.flb input.inp{width:220px}
/* checkbox · square, 1px keyline, solid white field; checked = blue cell with lime tick */
input[type=checkbox]:not(.opt input),.cb{appearance:none;-webkit-appearance:none;width:20px;height:20px;margin:0;flex:none;border:1px solid var(--blue);border-radius:0;background:var(--white) center/100% no-repeat;cursor:pointer;vertical-align:middle;display:inline-grid;place-content:center;transition:background-color .12s var(--ease-o)}
input[type=checkbox]:not(.opt input):hover,.cb:hover{background-color:var(--b5)}
input[type=checkbox]:not(.opt input):checked,.cb:checked{background-color:var(--blue);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4.5 10.5l3.5 3.5 7.5-8' fill='none' stroke='%23B4FD01' stroke-width='2' stroke-linecap='square'/%3E%3C/svg%3E")}
input[type=checkbox]:not(.opt input):indeterminate,.cb:indeterminate{background-color:var(--blue);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10h10' fill='none' stroke='%23B4FD01' stroke-width='2'/%3E%3C/svg%3E")}
input[type=checkbox]:not(.opt input):focus-visible,.cb:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
input[type=checkbox]:not(.opt input):disabled,.cb:disabled{opacity:.45;cursor:not-allowed}
@media (forced-colors:active){input[type=checkbox]:not(.opt input),.cb{appearance:auto;-webkit-appearance:auto}}
.pager{display:flex;padding-left:1px;flex-wrap:wrap}.pager .ix{margin-left:-1px;font:400 12px var(--f-mono)}.pager .ix[aria-current="page"]{background:var(--blue);color:var(--ivory)}.pager .ix[disabled]{opacity:.4;pointer-events:none}
.tb th button[aria-sort="ascending"]::after{content:"\25B2";font:400 8px var(--f-mono)}.tb th button[aria-sort="descending"]::after{content:"\25BC";font:400 8px var(--f-mono)}
.cfam{display:flex;flex-direction:column;gap:10px}.cfam+.cfam{border-top:1px solid var(--ln2);padding-top:16px}
.cfh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.clist{padding-top:1px}.citem{margin-top:-1px}
.crow{display:grid;grid-template-columns:40px minmax(0,1.4fr) minmax(0,1.2fr) 130px;gap:12px;align-items:center;width:100%;padding:12px 14px 12px 4px;background:var(--ivory);color:var(--blue);border:1px solid var(--ln);text-align:left;cursor:pointer;font:inherit;transition:background .2s}

/* status scale — q1 low/failed · q2 warning · q3 pending · q4 done/optimal */
.qd{display:inline-block;width:10px;height:10px;border:1px solid var(--navy);flex:none}
.qd.q1{background:var(--q1)}.qd.q2{background:var(--q2)}.qd.q3{background:var(--q3)}.qd.q4{background:var(--q4)}
.qds{display:inline-flex;align-items:center;gap:6px;font:400 11px/1 var(--f-mono);text-transform:uppercase;letter-spacing:.05em}
.qv{font:400 11px/1 var(--f-mono);padding:4px 5px;border:1px solid var(--navy);color:var(--navy);min-width:28px;text-align:center}
.qv.q1{background:var(--q1t)}.qv.q2{background:var(--q2)}.qv.q3{background:var(--q3)}.qv.q4{background:var(--q4)}
.qkey{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:10px 0}
.qkey>span{display:inline-flex;align-items:center;gap:6px;font:400 11px/1.4 var(--f-mono)}

/* schematic / mini field map HUD */
.map{position:relative;background:var(--blue);overflow:hidden;min-height:0}
.map .hud{position:absolute;inset:0;padding:10px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;z-index:5}
.map .hp{background:var(--ivory);color:var(--blue);padding:7px 9px;align-self:flex-start;display:flex;flex-direction:column;gap:3px}
.map .hud>.ht{align-self:flex-end;background:var(--navy);color:var(--ivory);padding:4px 7px;font:400 10.5px/1.4 var(--f-mono)}
.mapwrap{aspect-ratio:16/9}
.mapwrap.tall{aspect-ratio:4/3}
.map .ol-viewport{position:absolute;inset:0}

/* settings layout */
.stg{display:grid;grid-template-columns:232px minmax(0,1fr);gap:var(--gut);align-items:start}
.stn{position:sticky;top:calc(var(--top-h) + 12px);display:flex;flex-direction:column;padding-top:1px}
.stn button{margin-top:-1px;display:flex;gap:10px;align-items:center;min-height:46px;padding:0 12px;border:1px solid var(--ln);background:var(--ivory);color:var(--blue);text-decoration:none;font:500 14px var(--f-sans);white-space:nowrap;cursor:pointer;text-align:left}
.stn button .ic{width:18px}
.stn button[aria-current="page"]{background:var(--blue);color:var(--ivory);border-color:var(--blue);position:relative;z-index:1}
.stn button:hover{background:var(--lime);color:var(--navy);border-color:var(--navy);position:relative;z-index:2}
.stb{display:flex;flex-direction:column;gap:var(--gut);min-width:0}
.srow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--ln2)}
.srow:last-child{border-bottom:0}
.srow .stx{display:flex;flex-direction:column;gap:3px;min-width:0}
.srow .sct{flex:none}
.stm{width:160px}
@media (max-width:1000px){.stg{grid-template-columns:minmax(0,1fr)}.stn{position:static;flex-direction:row;overflow-x:auto;padding:0 0 0 1px;scrollbar-width:none}.stn::-webkit-scrollbar{display:none}.stn button{margin:0 0 0 -1px;flex:none}}

/* white-label app preview (api/tenants) */
.pv{border:1px solid var(--ln);background:var(--white);padding:14px;display:flex;flex-direction:column;gap:10px;color:#1d1d1d;--fg:#1d1d1d}
.pv .pvh{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;padding-bottom:8px;font-weight:500}
.pv .pvb{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:14px}
.pv .pw{font:400 10px var(--f-mono);color:#555;display:flex;gap:6px;align-items:center}
.pv .pw svg{height:10px;width:auto}

/* soil report */
.rptop .cell{min-height:0}.rpsec .ph .lbl .co{margin-right:6px}
