/* EquipMan 웹 — Precision Asset Ledger 디자인 시스템 (라이트, green H142, OKLCH 틴트 중립)
   프로토타입 시각언어를 실제 반응형 셸로 이식: 와이드=사이드바, 좁음=하단 탭. */
:root{
  --green:oklch(0.52 0.13 152);--green-600:oklch(0.585 0.135 152);--green-700:oklch(0.47 0.12 152);
  --green-wash:oklch(0.965 0.028 152);--green-line:oklch(0.88 0.06 152);
  --bg:oklch(0.985 0.004 152);--surface:oklch(0.999 0.0015 152);--surface-2:oklch(0.974 0.005 152);
  --ink:oklch(0.24 0.012 152);--muted:oklch(0.54 0.012 152);--faint:oklch(0.585 0.01 152);
  --line:oklch(0.912 0.006 152);--line-2:oklch(0.86 0.008 152);
  --amber:oklch(0.72 0.15 71);--amber-ink:oklch(0.49 0.10 62);--amber-wash:oklch(0.965 0.04 80);--amber-line:oklch(0.86 0.07 75);
  --red:oklch(0.585 0.2 25);--red-ink:oklch(0.5 0.19 25);--red-wash:oklch(0.965 0.03 25);--red-line:oklch(0.85 0.08 25);
  --slate:oklch(0.6 0.012 152);--slate-ink:oklch(0.5 0.014 152);--slate-wash:oklch(0.955 0.006 152);
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;
  --r:12px;--r-lg:16px;--r-pill:999px;
  --mono:'Spline Sans Mono','Consolas',ui-monospace,monospace;--sans:'Pretendard','Malgun Gothic',system-ui,sans-serif;
  --shadow:0 1px 2px oklch(0.4 0.02 152/.06),0 8px 24px -16px oklch(0.4 0.04 152/.25);
  --side-w:230px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01"}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}
input,select,textarea{font:inherit}
svg{display:block}
.mono{font-family:var(--mono);font-feature-settings:"tnum","zero";letter-spacing:-0.01em}
:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:6px}
.htmx-request{opacity:.6;transition:opacity .15s}

/* ── 셸 ── */
.shell{display:grid;grid-template-columns:var(--side-w) 1fr;min-height:100vh}
.side{position:sticky;top:0;height:100vh;background:var(--surface-2);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:3px;overflow:auto}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px}
.brand .mk{width:26px;height:26px;border-radius:7px;background:#fff url('/static/geoview_mark.png') no-repeat center/80%;border:1px solid var(--line);flex:none}
.brand b{font-size:16px;font-weight:800;letter-spacing:-0.02em}
.nav-grp{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:14px 10px 5px}
.nav{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:var(--muted);font-size:13.5px;font-weight:600}
.nav svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.7;fill:none;flex:none}
.nav:hover{background:var(--surface);color:var(--ink)}
.nav.on{background:var(--surface);color:var(--green-700);box-shadow:var(--shadow)}
.nav .badge{margin-left:auto;font-family:var(--mono);font-size:11px;font-weight:700;border-radius:var(--r-pill);padding:1px 7px;background:var(--surface);color:var(--muted);border:1px solid var(--line)}
.nav .badge.crit{background:var(--red-wash);color:var(--red-ink);border-color:var(--red-line)}
.side .me{margin-top:auto;display:flex;align-items:center;gap:9px;padding:12px 8px 4px;border-top:1px solid var(--line);font-size:12.5px}
.side .me .av{width:30px;height:30px;border-radius:50%;background:var(--green-wash);border:1px solid var(--green-line);color:var(--green-700);display:grid;place-items:center;font-weight:700;font-size:12px;flex:none}
.side .me small{color:var(--muted);display:block}
.side .me a{margin-left:auto;color:var(--faint)}

.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;padding:13px 24px;background:oklch(0.985 0.004 152/.85);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.topbar h1{font-size:18px;font-weight:800;letter-spacing:-0.02em;white-space:nowrap}
.search{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 13px;flex:1;max-width:420px;margin-left:auto}
.search svg{width:17px;height:17px;stroke:var(--muted);stroke-width:1.8;fill:none}
.search input{border:none;background:none;width:100%;font-size:13.5px;color:var(--ink)}.search input::placeholder{color:var(--faint)}
.content{padding:24px;max-width:1180px;width:100%;margin-inline:auto}
.mobnav{display:none}

/* ── 공통 컴포넌트 ── */
.chip{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:var(--r-pill);font-size:12.5px;font-weight:600;border:1px solid var(--line);white-space:nowrap;vertical-align:middle}
.chip .dot{width:7px;height:7px;border-radius:50%;flex:none}
.chip.sm{padding:3px 9px;font-size:11.5px}
.chip.ok{background:var(--green-wash);border-color:var(--green-line);color:var(--green-700)}.chip.ok .dot{background:var(--green)}
.chip.transit{background:var(--amber-wash);border-color:var(--amber-line);color:var(--amber-ink)}.chip.transit .dot{background:var(--amber)}
.chip.repair{background:var(--slate-wash);color:var(--slate-ink)}.chip.repair .dot{background:var(--slate)}
.chip.missing,.chip.crit{background:var(--red-wash);border-color:var(--red-line);color:var(--red-ink)}.chip.missing .dot,.chip.crit .dot{background:var(--red)}
.chip.terminal,.chip.warnloc{background:var(--slate-wash);color:var(--slate-ink)}.chip.terminal .dot,.chip.warnloc .dot{background:var(--slate)}

.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:10px;border:1px solid var(--line);font-size:13px;font-weight:600;background:var(--surface);color:var(--ink);white-space:nowrap}
.btn:hover{background:var(--surface-2)}.btn svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.8;fill:none}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover{background:var(--green-700)}.btn.primary svg{stroke:#fff}
.btn.sm{padding:6px 11px;font-size:12.5px}
.phgrid .phdel{display:none}.phgrid.editing .phdel{display:block}
.toggle{width:44px;height:26px;border-radius:var(--r-pill);background:var(--green);position:relative;flex:none;transition:background .15s}
.toggle.off{background:var(--line-2)}
.toggle::after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:3px;left:21px;transition:left .15s;box-shadow:0 1px 2px oklch(0.4 0.02 152/.3)}
.toggle.off::after{left:3px}

.page-head{display:flex;align-items:baseline;gap:12px;margin-bottom:20px}
.page-head h2{font-size:22px;font-weight:800;letter-spacing:-0.02em}
.page-head .sub{color:var(--muted);font-size:13px}
.up-form{display:flex;gap:8px;align-items:center}.up-form input[type=file]{flex:1;min-width:0;font-size:12px}
/* 파일 선택 버튼 — 브라우저 기본 → 앱 테마 (전역) */
input[type=file]{color:var(--muted);font-size:12.5px}
input[type=file]::file-selector-button{font:inherit;font-weight:600;padding:7px 13px;margin-right:10px;border:1px solid var(--green-line);border-radius:8px;background:var(--green-wash);color:var(--green-700);cursor:pointer;transition:background .15s,color .15s,border-color .15s}
input[type=file]::file-selector-button:hover{background:var(--green-700);color:#fff;border-color:var(--green-700)}
.ph-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto}
.lblmenu{position:relative}.lblmenu>summary{list-style:none;cursor:pointer}.lblmenu>summary::-webkit-details-marker{display:none}.lblmenu>summary::marker{content:""}
.lblpop{position:absolute;right:0;top:calc(100% + 6px);z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px;min-width:230px;display:flex;flex-direction:column}
.lblpop a{padding:8px 10px;border-radius:7px;font-size:13px;color:var(--ink);text-decoration:none;white-space:nowrap}.lblpop a:hover{background:var(--surface-2)}
.lblpop-h{font-size:10.5px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.04em;padding:7px 10px 3px}
.muted{color:var(--muted)}.faint{color:var(--faint)}

.kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.kpi{padding:18px 20px;border-right:1px solid var(--line)}.kpi:last-child{border-right:none}
.kpi .cap{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.kpi .val{font-family:var(--mono);font-size:30px;font-weight:700;letter-spacing:-0.02em;margin-top:6px}
.kpi .val.crit{color:var(--red-ink)}.kpi .val.amber{color:var(--amber-ink)}
.kpi .sub{font-size:11.5px;color:var(--muted);margin-top:2px}

.grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-top:20px}
.panel{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.panel .ph{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--line)}
.panel .ph b{font-size:13.5px;font-weight:700}.panel .ph a{font-size:12px;color:var(--green-700);font-weight:600}
.pad{padding:16px 18px}
.dist .row{display:grid;grid-template-columns:140px 1fr auto;gap:12px;align-items:center;padding:9px 0}
.dist .row .l{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dist .row .bar{height:9px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}
.dist .row .bar i{display:block;height:100%;background:var(--green);border-radius:var(--r-pill)}
.dist .row .bar i.amber{background:var(--amber)}.dist .row .bar i.slate{background:var(--slate)}
.dist .row .n{font-family:var(--mono);font-size:12.5px;color:var(--muted);text-align:right}
.lad .row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.lad .row:last-child{border-bottom:none}
.lad .g{font-family:var(--mono);font-size:12px;font-weight:700;width:64px}.lad .ct{margin-left:auto;font-family:var(--mono);font-weight:700}
.lad .row.exp .g{color:var(--red-ink)}.lad .row.warn .g{color:var(--amber-ink)}.lad .row.ok2 .g{color:var(--green-700)}

/* 테이블 */
.tablewrap{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl thead th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:12px 18px;border-bottom:1px solid var(--line-2);background:var(--surface);white-space:nowrap}
.tbl tbody td{padding:12px 18px;border-bottom:1px solid var(--line)}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl tbody tr{cursor:pointer}.tbl tbody tr:hover{background:var(--surface-2)}
.tbl .c-eq{font-family:var(--mono);font-weight:600;color:var(--ink);white-space:nowrap}
.tbl .c-name b{font-weight:600;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tbl .c-name span{display:block;color:var(--faint);font-size:11.5px}
.tbl .c-num{font-family:var(--mono);text-align:right;color:var(--muted)}.tbl .c-cat{color:var(--muted)}
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.fpill{padding:7px 13px;border-radius:var(--r-pill);font-size:12.5px;font-weight:600;border:1px solid var(--line);color:var(--muted);background:var(--surface)}
.fpill.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.tfoot{padding:13px 18px;color:var(--faint);font-size:12px;display:flex;justify-content:space-between;border-top:1px solid var(--line);background:var(--surface)}
.empty{padding:48px 20px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--ink);font-size:15px;margin-bottom:4px}

/* 자산 상세 */
.det-top{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}
.det-top .eq{font-family:var(--mono);font-size:14px;color:var(--green);font-weight:600}
.det-top h2{font-size:22px;font-weight:700;letter-spacing:-0.02em;margin-top:3px}
.det-top .sp{color:var(--muted);font-size:13px;margin-top:2px}
.det-actions{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.act-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.act-grp{display:contents}
.act-sp{display:none}
.btn.ghost{background:transparent;color:var(--muted);border-color:var(--line)}
.btn.ghost svg{stroke:var(--muted)}.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}
.det{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}
.fieldset{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:20px;background:var(--surface)}
.fieldset .fh{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:11px 16px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.frow{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:11px 16px;border-bottom:1px solid var(--line);font-size:13.5px}.frow:last-child{border-bottom:none}
.frow dt{color:var(--muted)}.frow dd{font-weight:600}.frow dd.m{font-family:var(--mono);font-weight:500}
.hist{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.hist .hr{display:grid;grid-template-columns:auto 1fr;gap:13px;padding:12px 16px;border-bottom:1px solid var(--line)}.hist .hr:last-child{border-bottom:none}
.hist .hw{font-family:var(--mono);font-size:11.5px;color:var(--faint);white-space:nowrap}.hist .ht{font-size:13px}.hist .ht b{font-weight:700}.hist .hwho{font-size:11.5px;color:var(--muted)}
.hist .evslot:not(:empty){margin-top:10px}
.hist .evslot .panel{margin:0!important}
.sec-cap{font-size:13px;color:var(--muted);margin:0 0 8px;display:flex;gap:8px;align-items:center}.sec-cap .d{width:8px;height:8px;border-radius:2px;background:var(--green)}

/* 로그인 */
.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.login .card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:32px 28px}
.login .mk{width:40px;height:40px;border-radius:11px;background:#fff url('/static/geoview_mark.png') no-repeat center/80%;border:1px solid var(--line);margin-bottom:18px}
.login h1{font-size:22px;font-weight:800;letter-spacing:-0.02em}.login p{color:var(--muted);font-size:13.5px;margin:4px 0 22px}
.login label{font-size:12px;font-weight:600;color:var(--muted);display:block;margin-bottom:6px}
.login select,.login input{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:14px;background:var(--surface);margin-bottom:16px}

/* 폼 행(상태/위치 변경 등 HTMX 패널) */
.formrow{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.formrow label{font-size:12px;font-weight:600;color:var(--muted)}
.formrow select,.formrow input,.formrow textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;background:var(--surface)}
.flash{padding:11px 14px;border-radius:10px;font-size:13px;font-weight:600;margin-bottom:14px}
.flash.ok{background:var(--green-wash);border:1px solid var(--green-line);color:var(--green-700)}

/* ── 반응형: 좁으면 사이드바→하단 탭 ── */
@media(max-width:860px){
  .shell{grid-template-columns:1fr}
  .side{display:none}
  .content{padding:16px 14px 88px}
  .topbar{padding:12px 16px}
  .kpis{grid-template-columns:1fr 1fr}.kpi:nth-child(2){border-right:none}
  .kpi{padding:14px 16px}.kpi .val{font-size:26px}
  .grid2{grid-template-columns:1fr}
  .det{grid-template-columns:1fr}
  .hide-sm{display:none}
  .page-head{flex-direction:column;gap:2px;align-items:flex-start;margin-bottom:16px}
  .page-head h2{font-size:20px}
  .tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tbl{font-size:13px}
  .tbl thead th{padding:10px 10px;letter-spacing:.02em}
  .tbl tbody td{padding:11px 10px}
  .tbl .c-name b{word-break:keep-all;overflow-wrap:anywhere}
  .btn{min-height:44px}.btn.sm{min-height:44px}.fpill{min-height:44px;display:inline-flex;align-items:center}.pbtn{min-height:44px}
  /* iOS Safari: 폼 컨트롤 16px 미만이면 포커스 시 자동 줌 → 일괄 16px */
  input,select,textarea,.search input,.formrow select,.formrow input,.formrow textarea,.login select,.login input{font-size:16px}
  .frow{grid-template-columns:100px 1fr;padding:10px 14px;gap:10px}
  .frow dd{word-break:break-word;min-width:0}
  .up-form{flex-wrap:wrap}.up-form input[type=file]{flex:1 1 100%}.up-form .btn{width:100%}
  .ph-actions{margin-left:0;width:100%;margin-top:6px}
  .det-actions{gap:8px}
  .det-actions .btn{padding:8px 11px;font-size:12.5px}
  .act-sp{display:none}
  .mobnav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
  .mobnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0 11px;color:var(--faint);font-size:11px;font-weight:600}
  .mobnav a svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.7;fill:none}
  .mobnav a.on{color:var(--green)}
  .mobnav .scan{margin-top:-16px}.mobnav .scan .b{width:50px;height:50px;border-radius:16px;background:var(--green);display:grid;place-items:center;box-shadow:var(--shadow)}.mobnav .scan .b svg{stroke:#fff;width:24px}
}
@media(min-width:861px){.only-sm{display:none}}
/* 모바일: 표를 카드형으로 (가로 스크롤·잘림 해소) */
@media(max-width:600px){
  .card-tbl thead{display:none}
  .card-tbl,.card-tbl tbody,.card-tbl tr,.card-tbl td{display:block}
  .card-tbl tr{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:11px 14px 12px;background:var(--surface);box-shadow:var(--shadow)}
  .card-tbl tbody td{border:none!important;padding:4px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:right;min-height:0}
  .card-tbl tbody td::before{content:attr(data-label);font-size:11px;font-weight:700;color:var(--muted);flex:none;text-align:left;white-space:nowrap}
  .card-tbl td.c-name{display:block;text-align:left;padding-top:2px}
  .card-tbl td.c-name::before{content:none}
  .card-tbl td.c-name b{font-size:15px;display:block}
  .card-tbl td.c-name span{display:block;font-size:11.5px;color:var(--muted);font-weight:400;margin-top:1px}
  .card-tbl tbody td.hide-sm{display:none}
  .card-tbl td.chk-cell{display:none}
  .card-tbl td .chip{white-space:normal;text-align:left}
  .card-tbl tr td.c-name+td{padding-top:8px}
  .card-tbl .empty{text-align:center;display:block}
  .card-tbl .grp-row{background:transparent;border:none;box-shadow:none;margin:12px 0 0;padding:0}
  .card-tbl .grp-row td{display:block;padding:2px 2px 4px}
  .card-tbl .grp-row td::before{content:none}
  /* 상단 검색·필터·액션 줄맞춤 */
  form.toolbar{flex-wrap:wrap;gap:8px}
  form.toolbar .asearch{flex:1 1 100%;min-width:0}
  form.toolbar .asort{flex:1 1 0;min-width:0}
  form.toolbar>button{flex:none}
  .toolbar{flex-wrap:wrap;gap:8px}
  .toolbar .fpill{flex:1 1 42%;justify-content:center;text-align:center}
  .toolbar>a.btn,.toolbar>details.lblmenu,.toolbar>.btn.primary{flex:1 1 30%;margin-left:0!important;justify-content:center}
  .toolbar details.lblmenu>summary{width:100%;justify-content:center}
}
/* PWA 설치 유도 배너 (모바일·웹 접속 시 JS가 표시) */
#installbar{position:fixed;left:12px;right:12px;bottom:78px;z-index:40;background:var(--green);color:#fff;border-radius:12px;padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:var(--shadow);font-size:13px;font-weight:500}
#installbar svg{width:24px;height:24px;flex:none;fill:none;stroke:#fff;stroke-width:1.8}
#installbar span{flex:1;min-width:0;line-height:1.3}
#installbar #installbtn{flex:none;background:#fff;color:var(--green-700);border:none;border-radius:8px;padding:7px 15px;font-weight:700;font-size:13px;cursor:pointer}
#installbar #installx{flex:none;background:transparent;border:none;color:rgba(255,255,255,.85);font-size:19px;line-height:1;cursor:pointer;padding:0 2px}
/* 모바일 전체 메뉴 시트 (더보기 탭) */
.mobnav .more-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0 11px;color:var(--faint);font-size:11px;font-weight:600;background:none;border:none;font-family:inherit;cursor:pointer}
.mobnav .more-tab svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.7;fill:none}
.mobnav .more-tab.on{color:var(--green)}
.menusheet{position:fixed;inset:0;z-index:60;display:none}
.menusheet.open{display:block}
.menusheet .ms-bg{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.menusheet .ms-panel{position:absolute;left:0;right:0;bottom:0;background:var(--surface);border-radius:18px 18px 0 0;padding:14px 14px calc(18px + env(safe-area-inset-bottom));max-height:82vh;overflow:auto;box-shadow:0 -4px 22px rgba(0,0,0,.16)}
.ms-head{display:flex;align-items:center;justify-content:space-between}
.ms-head b{font-size:16px}
.ms-head button{background:none;border:none;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px}
.ms-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.ms-nav a{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;font-size:13.5px;font-weight:600;position:relative}
.ms-nav a.on{background:var(--green-wash);border-color:var(--green-line);color:var(--green-700)}
.ms-nav a svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;flex:none}
.ms-nav a span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-badge{position:absolute;top:6px;right:8px;font-size:10px;font-weight:700;color:var(--green-700);background:var(--green-wash);border-radius:8px;padding:0 5px}
