/* 3.12.28 → 3.12.29 사이드 메뉴(업무 앱 · 시설 자료·관리 앱 공통)
   ─ 로고 줄: 구 상징 타일 + «강남 BPMS» + 앱 이름 한 줄, 접기 단추는 같은 줄 오른쪽의 옅은 아이콘
   ─ 메뉴: 38px 줄 · 옅은 묶음 머리 · 고른 메뉴 표시(.ui-nav-ind)가 스프링으로 미끄러져 옮겨 감
   ─ 메뉴 숫자: data-n(할 일 = 채운 알약, 기한 경과 = 붉은 알약, 그 밖 = 옅은 알약) — 글자에는 섞이지 않는다(::after)
   ─ «오늘» 카드(.ui-today) + «내 계정»(연결 점이 붙은 동그라미 · 로그아웃 아이콘) + 연결·버전 한 줄
   네 스타일은 변수만 바꾼다: 촘촘형 = 반투명 표시 + 왼쪽 가는 선, 현장형 = 밝은 하늘 표시, 강조형 = 흰 표시, 밝은형 = 흰 바탕 + 파란 표시. */
#sidebar.ui-shell{
 --sb-solid:var(--color-paint-0e2c56);--sb-bg:radial-gradient(130% 38% at 0% 0%,var(--color-paint-3c8f27ed60),transparent 62%),linear-gradient(180deg,var(--color-paint-10315f) 0%,var(--color-paint-0b2548) 100%);
 --sb-fg:var(--color-paint-b8c7db);--sb-strong:var(--color-paint-fff);--sb-mute:var(--color-paint-7890b1);--sb-line:var(--color-line-d8a01d2328);--sb-hover:var(--color-paint-1ef7f93156);
 --sb-ind:var(--color-paint-b56364a7c7);--sb-ind-sh:inset 0 1px 0 var(--color-paint-0d923d3819),0 1px 2px var(--color-paint-733a2ff5ad);--sb-bar:var(--color-paint-8fc0ff);--sb-act-fg:var(--color-paint-fff);--sb-ic:var(--color-paint-8199bb);--sb-ic-act:var(--color-paint-fff);
 --sb-card:var(--color-paint-2ed3367aa6);--sb-card-line:var(--color-line-0d923d3819);
 --sb-cnt:var(--color-paint-79f2e0da84);--sb-cnt-fg:var(--color-paint-a9bbd3);--sb-acnt:var(--color-paint-fff);--sb-acnt-fg:var(--color-paint-0f2f5c);--sb-wcnt:var(--color-paint-e13dec7ade);--sb-wcnt-fg:var(--color-paint-ffb0a8);
 --sb-on-cnt:var(--color-paint-06ff57dd04);--sb-on-cnt-fg:var(--color-paint-fff);--sb-on-acnt:var(--color-paint-fff);--sb-on-acnt-fg:var(--color-paint-0f2f5c);
 --sb-tone-act:var(--color-paint-ffc861);--sb-tone-warn:var(--color-paint-ff8a7f);--sb-ring:var(--color-paint-8fc0ff);--sb-ring-t:var(--color-paint-b56364a7c7);
 --sb-mark:var(--color-paint-fff);--sb-av:linear-gradient(140deg,var(--color-paint-ffd9a0),var(--color-paint-ffab4c));--sb-av-fg:var(--color-paint-3b1d00);--sb-r:10px;
 background:var(--sb-bg);color:var(--sb-fg);border-right:0;box-shadow:inset -1px 0 var(--color-shadow-986d4b8ffd);scrollbar-width:thin;scrollbar-color:var(--color-ink-57c94231f5) transparent}
[data-skin=field] #sidebar.ui-shell{--sb-ind:var(--color-paint-e4edf8);--sb-ind-sh:0 2px 8px var(--color-paint-22ba49161c);--sb-bar:transparent;--sb-act-fg:var(--color-paint-0f2f5c);--sb-ic-act:var(--color-paint-0f2f5c);--sb-on-cnt:var(--color-paint-bf62cec23b);--sb-on-cnt-fg:var(--color-paint-0f2f5c);--sb-on-acnt:var(--color-paint-0f2f5c);--sb-on-acnt-fg:var(--color-paint-fff);--sb-r:12px}
[data-skin=hand] #sidebar.ui-shell{--sb-bg:var(--color-paint-0f2f5c);--sb-ind:var(--color-paint-fff);--sb-ind-sh:0 3px 10px var(--color-paint-18a22573f7);--sb-bar:transparent;--sb-act-fg:var(--color-paint-0f2f5c);--sb-ic-act:var(--color-paint-0f2f5c);--sb-fg:var(--color-paint-c9d6e8);--sb-on-cnt:var(--color-paint-bf62cec23b);--sb-on-cnt-fg:var(--color-paint-0f2f5c);--sb-on-acnt:var(--color-paint-0f2f5c);--sb-on-acnt-fg:var(--color-paint-fff);--sb-r:14px}
[data-skin=toss] #sidebar.ui-shell{--sb-solid:var(--color-paint-fff);--sb-bg:var(--color-paint-fff);--sb-fg:var(--color-paint-4e5968);--sb-strong:var(--color-paint-191f28);--sb-mute:var(--color-paint-8b95a1);--sb-line:var(--color-line-f2f4f6);--sb-hover:var(--color-paint-f4f5f7);
 --sb-ind:var(--color-paint-e8f3ff);--sb-ind-sh:none;--sb-bar:transparent;--sb-act-fg:var(--color-paint-1b64da);--sb-ic:var(--color-paint-9aa4b0);--sb-ic-act:var(--color-paint-1b64da);--sb-card:var(--color-paint-f7f8fa);--sb-card-line:transparent;
 --sb-cnt:var(--color-paint-f2f4f6);--sb-cnt-fg:var(--color-paint-6b7684);--sb-acnt:var(--color-paint-3182f6);--sb-acnt-fg:var(--color-paint-fff);--sb-wcnt:var(--color-paint-ffeeee);--sb-wcnt-fg:var(--color-paint-e42939);--sb-on-cnt:var(--color-paint-d6e8ff);--sb-on-cnt-fg:var(--color-paint-1b64da);--sb-on-acnt:var(--color-paint-3182f6);--sb-on-acnt-fg:var(--color-paint-fff);
 --sb-tone-act:var(--color-paint-3182f6);--sb-tone-warn:var(--color-paint-f04452);--sb-ring:var(--color-paint-3182f6);--sb-ring-t:var(--color-paint-e5e8eb);--sb-mark:var(--color-paint-f2f6fc);--sb-av:linear-gradient(140deg,var(--color-paint-5b9dff),var(--color-paint-1b64da));--sb-av-fg:var(--color-paint-fff);--sb-r:12px;
 box-shadow:none;border-right:1px solid var(--color-line-eef0f3);scrollbar-color:var(--color-ink-d1d6db) transparent}
[data-skin=clear] #sidebar.ui-shell{--sb-r:8px}

/* 로고 줄 */
#sidebar.ui-shell .brand{position:relative;padding:18px 16px 14px;border-bottom:0}
#sidebar.ui-shell .brand.ui-brand{display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;column-gap:11px;align-items:center;padding:20px 52px 16px 18px;text-align:left}
#sidebar.ui-shell .brand.ui-brand .brand-logo,#sidebar.ui-shell .brand.ui-brand .brand-sub{display:none!important}
#sidebar.ui-shell .ui-brand-mark{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--sb-mark);box-shadow:inset 0 -1px 0 var(--color-shadow-c2201c29bd),0 4px 14px var(--color-shadow-18a22573f7)}
[data-skin=toss] #sidebar.ui-shell .ui-brand-mark{box-shadow:inset 0 0 0 1px var(--color-shadow-e5eaf2)}
#sidebar.ui-shell .ui-brand-mark img{width:22px;height:22px;display:block}
#sidebar.ui-shell .brand.ui-brand .brand-title{display:block;margin:0;align-self:end;font-size:15.5px;font-weight:800;line-height:1.2;letter-spacing:-.025em;color:var(--sb-strong)}
#sidebar.ui-shell .ui-brand-sub{display:block;align-self:start;margin-top:2px;font-size:11.5px;font-weight:500;line-height:1.3;color:var(--sb-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#sidebar.ui-shell .brand:not(.ui-brand) .brand-logo{display:inline-flex;overflow:hidden;width:auto;padding:7px 11px;border-radius:10px;background:var(--color-surface-fff);box-shadow:none}
#sidebar.ui-shell .brand:not(.ui-brand) .brand-logo img{height:40px;width:auto;max-width:none;min-width:0;margin:-8px -11px -9px}
#sidebar.ui-shell .brand:not(.ui-brand) .brand-title{display:block;font-size:16.5px;font-weight:800;color:var(--sb-strong);margin-top:12px}
/* 접기 단추: 로고 줄 오른쪽의 옅은 아이콘 */
[data-side] #sidebar.ui-shell .ui-side-toggle{position:absolute;top:22px;right:12px;z-index:3;margin:0;width:32px;height:32px;min-height:0;padding:0;justify-content:center;border-radius:9px;border:0;background:transparent;color:var(--sb-mute);transition:background .2s,color .2s,transform var(--sp-dp) var(--sp-pop)}
[data-side] #sidebar.ui-shell .ui-side-toggle svg{width:18px;height:18px}
[data-side] #sidebar.ui-shell .ui-side-toggle span{display:none}
[data-side] #sidebar.ui-shell .ui-side-toggle:hover{background:var(--sb-hover);color:var(--sb-strong)}
[data-side] #sidebar.ui-shell .ui-side-toggle:active{transform:scale(.9)}
[data-side=hidden] #sidebar.ui-shell .ui-side-toggle{display:none}

/* 메뉴 */
#sidebar.ui-shell nav{position:relative;display:flex;flex-direction:column;gap:0;padding:2px 12px 12px}
#sidebar.ui-shell .ui-nav-g{display:flex;flex-direction:column;gap:2px;padding:0 0 6px}
#sidebar.ui-shell .ui-nav-g:not(:has(a:not(.hidden))){display:none}
#sidebar.ui-shell .ui-nav-h{display:block;padding:14px 10px 6px;font-size:11px;font-weight:650;letter-spacing:.02em;color:var(--sb-mute);white-space:nowrap}
#sidebar.ui-shell .ui-nav-g:first-of-type .ui-nav-h{padding-top:6px}
#sidebar.ui-shell .ui-nav-h::before{content:none}
#sidebar.ui-shell .ui-nav-g[data-g=etc]{margin-top:6px;padding-top:8px;border-top:1px solid var(--sb-line)}
#sidebar.ui-shell nav a{position:relative;z-index:1;display:flex;align-items:center;gap:11px;min-height:38px;padding:0 10px!important;border:0;border-radius:var(--sb-r);font-size:13.5px;font-weight:500;letter-spacing:-.01em;color:var(--sb-fg);background:none;box-shadow:none;text-align:left;text-decoration:none;transition:background-color .18s,color .22s .04s}
[data-form=tablet] #sidebar.ui-shell nav a{min-height:44px}
#sidebar.ui-shell nav a .bpms-nav-icon{flex:none;width:18px;height:18px;color:var(--sb-ic);opacity:1;transition:color .22s .04s}
#sidebar.ui-shell nav a:hover{background:var(--sb-hover);color:var(--sb-strong)}
#sidebar.ui-shell nav a:hover .bpms-nav-icon{color:var(--sb-strong)}
#sidebar.ui-shell nav a.active{background:var(--sb-ind);color:var(--sb-act-fg);font-weight:650;box-shadow:none}
#sidebar.ui-shell nav a.active .bpms-nav-icon{color:var(--sb-ic-act)}
#sidebar.ui-shell nav a:focus-visible{outline:2px solid var(--sb-bar,var(--color-line-8fc0ff));outline-offset:-2px}
#sidebar.ui-shell nav a.hidden{display:none}
#sidebar.ui-shell #archive-link{color:var(--sb-fg)}
/* 고른 메뉴 표시: 메뉴 뒤에서 미끄러진다. 표시가 있으면 링크 자체 바탕은 비운다 */
#sidebar.ui-shell nav.has-ind a.active,#sidebar.ui-shell nav.has-ind a.active:hover{background:transparent!important;box-shadow:none!important}
#sidebar.ui-shell .ui-nav-ind{position:absolute;left:0;top:0;z-index:0;width:0;height:38px;border-radius:var(--sb-r);background:var(--sb-ind);box-shadow:var(--sb-ind-sh);pointer-events:none;opacity:0;will-change:transform;
 transition:transform var(--sp-d) var(--sp-chewy),width var(--sp-d) var(--sp-chewy),height var(--sp-dp) var(--sp-soft),opacity .2s,background-color .38s}
#sidebar.ui-shell .ui-nav-ind::before{content:'';position:absolute;left:0;top:50%;width:3px;height:18px;margin-top:-9px;border-radius:0 3px 3px 0;background:var(--sb-bar)}
#sidebar.ui-shell .ui-nav-ind.no-anim{transition:none}
/* 메뉴 숫자 */
#sidebar.ui-shell nav a[data-n]::after{content:attr(data-n);flex:none;margin-left:auto;min-width:20px;height:20px;padding:0 6px;box-sizing:border-box;border-radius:999px;font-size:11px;font-weight:700;line-height:20px;text-align:center;letter-spacing:0;font-variant-numeric:tabular-nums;background:var(--sb-cnt);color:var(--sb-cnt-fg);transition:background-color .25s,color .25s}
#sidebar.ui-shell nav a[data-tone=act]::after{background:var(--sb-acnt);color:var(--sb-acnt-fg)}
#sidebar.ui-shell nav a[data-tone=warn]::after{background:var(--sb-wcnt);color:var(--sb-wcnt-fg)}
#sidebar.ui-shell nav a[data-tone=all]::after{background:transparent;padding:0;color:var(--sb-mute);font-weight:600}
#sidebar.ui-shell nav a.active[data-n]::after{background:var(--sb-on-cnt);color:var(--sb-on-cnt-fg)}
#sidebar.ui-shell nav a.active[data-tone=act]::after{background:var(--sb-on-acnt);color:var(--sb-on-acnt-fg)}
#sidebar.ui-shell nav a.active[data-tone=all]::after{background:transparent;color:var(--sb-act-fg);opacity:.7}
:root:not([data-motion=off]) #sidebar.ui-shell nav a.ui-bump::after{animation:uiBadge .5s var(--sp-pop)}
@keyframes uiBadge{0%{transform:scale(.6)}60%{transform:scale(1.18)}100%{transform:scale(1)}}
/* 휴대폰·폴드 아래 탭 숫자(업무 앱) */
.work-app #compact-nav a[data-n]{position:relative}
.work-app #compact-nav a[data-n]::after{content:attr(data-n);position:absolute;top:3px;left:calc(50% + 6px);min-width:17px;height:17px;padding:0 5px;box-sizing:border-box;border-radius:999px;background:var(--color-surface-e5484d);color:var(--color-ink-fff);font-size:10.5px;font-weight:750;line-height:17px;text-align:center;box-shadow:0 0 0 2px var(--nav-bg,var(--color-shadow-fff));pointer-events:none}
.work-app #compact-nav a[data-tone=act]::after{background:var(--color-surface-1b64da)}
[data-skin=hand] .work-app #compact-nav a[data-tone=act]::after,[data-skin=field] .work-app #compact-nav a[data-tone=act]::after,[data-skin=clear] .work-app #compact-nav a[data-tone=act]::after{background:var(--color-surface-0f2f5c)}

/* «오늘» 카드 */
#sidebar.ui-shell.ui-has-today .work-side-note{display:none}
#sidebar.ui-shell .ui-today{margin:auto 12px 10px;padding:14px 14px 11px;border-radius:14px;background:var(--sb-card);box-shadow:inset 0 0 0 1px var(--sb-card-line);display:flex;flex-direction:column;gap:10px;animation:uiRise var(--sp-d) var(--sp-soft) backwards}
#sidebar.ui-shell .ui-today~.side-foot,#sidebar.ui-shell .ui-today~.side-section{margin-top:0}
#sidebar.ui-shell .ui-today header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:11px;color:var(--sb-mute);white-space:nowrap}
#sidebar.ui-shell .ui-today header b{font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--sb-fg)}
#sidebar.ui-shell .ui-td-main{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 -6px;padding:4px 6px;border-radius:10px;color:inherit;text-decoration:none;transition:background-color .18s}
#sidebar.ui-shell .ui-td-main:hover{background:var(--sb-hover)}
#sidebar.ui-shell .ui-td-n{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:5px;min-width:0}
#sidebar.ui-shell .ui-td-n em{font-style:normal;font-size:30px;font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--sb-strong);font-variant-numeric:tabular-nums}
#sidebar.ui-shell .ui-td-n small{font-size:12px;font-weight:600;color:var(--sb-mute)}
#sidebar.ui-shell .ui-td-n>span{grid-column:1/3;margin-top:5px;font-size:11px;line-height:1.35;color:var(--sb-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#sidebar.ui-shell .ui-ring{position:relative;flex:none;width:46px;height:46px}
#sidebar.ui-shell .ui-ring svg{display:block;width:100%;height:100%;transform:rotate(-90deg)}
#sidebar.ui-shell .ui-ring circle{fill:none;stroke-width:4.2;stroke-linecap:round}
#sidebar.ui-shell .ui-ring .t{stroke:var(--sb-ring-t)}
#sidebar.ui-shell .ui-ring .v{stroke:var(--sb-ring);transition:stroke-dasharray 1.1s var(--sp-soft)}
#sidebar.ui-shell .ui-ring i{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:11.5px;font-weight:750;letter-spacing:-.02em;color:var(--sb-strong);font-variant-numeric:tabular-nums}
#sidebar.ui-shell .ui-ring i small{font-size:8.5px;font-weight:650;margin-left:1px;color:var(--sb-mute)}
#sidebar.ui-shell .ui-td-rows{display:flex;flex-direction:column;gap:1px;margin:0 -6px;padding-top:8px;border-top:1px solid var(--sb-line)}
#sidebar.ui-shell .ui-td-row{display:flex;align-items:center;gap:9px;min-height:30px;padding:0 6px;border-radius:8px;font-size:12.5px;color:var(--sb-fg);text-decoration:none;transition:background-color .18s,color .18s}
#sidebar.ui-shell .ui-td-row:hover{background:var(--sb-hover);color:var(--sb-strong)}
#sidebar.ui-shell .ui-td-row i{flex:none;width:6px;height:6px;border-radius:50%;background:var(--sb-mute)}
#sidebar.ui-shell .ui-td-row[data-tone=act] i{background:var(--sb-tone-act)}
#sidebar.ui-shell .ui-td-row[data-tone=warn] i{background:var(--sb-tone-warn)}
#sidebar.ui-shell .ui-td-row span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#sidebar.ui-shell .ui-td-row b{font-weight:750;color:var(--sb-strong);font-variant-numeric:tabular-nums}
#sidebar.ui-shell .ui-td-row.zero{opacity:.5}
#sidebar.ui-shell .ui-td-row.zero i{background:var(--sb-mute)}
#sidebar.ui-shell .ui-today footer{display:flex;flex-direction:column;gap:1px;font-size:10.5px;line-height:1.5;color:var(--sb-mute)}
#sidebar.ui-shell .ui-today footer:empty{display:none}
#sidebar.ui-shell .ui-today footer b{font-weight:700;color:var(--sb-fg)}
#sidebar.ui-shell .ui-today.lite{gap:8px;padding-top:12px;padding-bottom:8px}
#sidebar.ui-shell .ui-today.lite :is(footer,.ui-td-n>span){display:none}
#sidebar.ui-shell .ui-today.lite .ui-td-rows{padding-top:6px}
#sidebar.ui-shell .ui-today.mini{flex-direction:row;align-items:center;gap:8px;padding:8px 10px}
#sidebar.ui-shell .ui-today.mini :is(header,.ui-td-rows,footer,.ui-td-n>span){display:none}
#sidebar.ui-shell .ui-today.mini .ui-td-main{flex:1;margin:0;padding:2px 4px}
#sidebar.ui-shell .ui-today.mini .ui-td-n em{font-size:22px}
#sidebar.ui-shell .ui-today.mini .ui-ring{width:34px;height:34px}
#sidebar.ui-shell .ui-today.mini .ui-ring i{font-size:9.5px}
#sidebar.ui-shell .ui-today.mini .ui-ring i small{display:none}
#sidebar.ui-shell .ui-today.gone{display:none}
#sidebar.ui-shell.ui-fitting :is(.side-section,.side-users){display:none!important}
/* 조사 기준 · 최근 본 시설 · 접속 인원(카드가 없을 때만 조사 기준 표시) */
#sidebar.ui-shell .work-side-note{margin:auto 12px 10px;padding:12px 14px;border:0;border-radius:14px;background:var(--sb-card);box-shadow:inset 0 0 0 1px var(--sb-card-line);font-size:11.5px;line-height:1.6;color:var(--sb-mute)}
#sidebar.ui-shell .work-side-note strong{margin:3px 0 2px;font-size:13px;color:var(--sb-strong)}
#sidebar.ui-shell .work-side-note .side-heading{font-size:11px;letter-spacing:.02em;font-weight:650;color:var(--sb-mute)}
#sidebar.ui-shell :is(.side-section,.side-users){padding:10px 16px;border-top:1px solid var(--sb-line)}
#sidebar.ui-shell .side-heading{display:block;font-size:11px;font-weight:650;letter-spacing:.02em;color:var(--sb-mute);margin-bottom:6px}
#sidebar.ui-shell .recent-list{display:block}
#sidebar.ui-shell :is(.recent-list a,.side-users .u){color:var(--sb-fg);font-size:12.5px;border-radius:8px}
#sidebar.ui-shell .recent-list a:hover{background:var(--sb-hover)}

/* «내 계정»: 동그라미(연결 점) · 이름·역할 · 로그아웃 아이콘 / 아래 연결·버전 한 줄 */
#sidebar.ui-shell .side-foot{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:auto;padding:10px 12px 12px;border-top:1px solid var(--sb-line)}
#sidebar.ui-shell :is(.work-side-note,.ui-today,.side-section,.side-users)~.side-foot{margin-top:0}
#sidebar.ui-shell .ui-me{flex:1 1 100%;display:flex;align-items:center;gap:10px;min-width:0;padding:7px 6px 7px 7px;border-radius:12px;background:transparent;transition:background-color .18s}
#sidebar.ui-shell .ui-me:hover{background:var(--sb-hover)}
#sidebar.ui-shell .ui-me-av{position:relative;flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sb-av);color:var(--sb-av-fg);font-size:14px;font-weight:800;box-shadow:inset 0 -2px 0 var(--color-shadow-990c3b7dbb)}
#sidebar.ui-shell .ui-me-av::after{content:'';position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;background:var(--color-surface-3ccf91);box-shadow:0 0 0 2.5px var(--sb-solid);transform:scale(0);transition:transform var(--sp-dp) var(--sp-pop),background-color .3s}
#sidebar.ui-shell .ui-me[data-net=ok] .ui-me-av::after{transform:scale(1)}
#sidebar.ui-shell .ui-me[data-net=wait] .ui-me-av::after{transform:scale(1);background:var(--color-surface-ffbf47)}
#sidebar.ui-shell .ui-me[data-net=err] .ui-me-av::after{transform:scale(1);background:var(--color-surface-ff6b6b)}
[data-skin=clear] #sidebar.ui-shell .ui-me-av{background:var(--color-surface-fff);color:var(--color-ink-0f2f5c)}
#sidebar.ui-shell .ui-me-who{flex:1;min-width:0}
#sidebar.ui-shell .ui-me-who :is(#identity,#my-identity){display:block;margin:0;font-size:13.5px;font-weight:700;letter-spacing:-.01em;color:var(--sb-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;text-decoration:none}
#sidebar.ui-shell .ui-me-who #my-identity{cursor:pointer;font-size:12.5px}
#sidebar.ui-shell .ui-me-who #identity small{display:block;margin-top:1px;font-size:11px;font-weight:500;color:var(--sb-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#sidebar.ui-shell .ui-me-out{position:relative;flex:none;display:grid!important;place-items:center;width:32px!important;height:32px;min-height:32px!important;padding:0!important;border-radius:9px!important;border:0!important;background:transparent!important;color:var(--sb-mute)!important;font-size:0!important;box-shadow:none!important;overflow:hidden;transition:background-color .18s,color .18s}
#sidebar.ui-shell .ui-me-out::before{content:'';width:18px;height:18px;background:currentColor;-webkit-mask:var(--sb-i-out) center/contain no-repeat;mask:var(--sb-i-out) center/contain no-repeat}
#sidebar.ui-shell .ui-me-out:hover{background:var(--sb-hover)!important;color:var(--sb-strong)!important}
#sidebar.ui-shell{--sb-i-out:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 4h3a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-3'/%3E%3Cpath d='M10 17l-5-5 5-5M5 12h11'/%3E%3C/svg%3E")}
/* 로그인 전(자료·관리 앱): «업무 로그인»은 글자 단추로 크게 */
#sidebar.ui-shell .ui-me.is-guest .ui-me-out{flex:1;width:auto!important;height:36px;font-size:13px!important;font-weight:650!important;color:var(--sb-strong)!important;background:var(--sb-card)!important;box-shadow:inset 0 0 0 1px var(--sb-card-line)!important}
#sidebar.ui-shell .ui-me.is-guest .ui-me-out::before{display:none}
#sidebar.ui-shell .ui-me.is-guest :is(.ui-me-av,.ui-me-who){display:none}
#sidebar.ui-shell .side-foot .net-badge{flex:1 1 0;width:auto;display:flex;align-items:center;gap:6px;min-width:0;margin:0;padding:0 7px;border:0;background:transparent;color:var(--sb-mute);font-size:11px;font-weight:500;text-align:left}
#sidebar.ui-shell .side-foot .net-badge::before{content:'';flex:none;width:6px;height:6px;border-radius:50%;background:var(--color-surface-3ccf91)}
#sidebar.ui-shell .side-foot .ui-me[data-net=wait]~.net-badge::before{background:var(--color-surface-ffbf47)}
#sidebar.ui-shell .side-foot .ui-me[data-net=err]~.net-badge::before{background:var(--color-surface-ff6b6b)}
#sidebar.ui-shell .side-settings{display:none}
#sidebar.ui-shell .work-version{flex:none;margin:0;padding:0 7px 0 0;text-align:right;font-size:10.5px;letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--sb-mute);opacity:.75}

/* 아이콘 막대(76px): 로고 타일 · 접기 단추 · 아이콘 · 숫자는 점 크기 · 계정 동그라미 */
[data-side=rail] #sidebar.ui-shell .brand.ui-brand{display:flex;justify-content:center;padding:16px 0 52px}
[data-side=rail] #sidebar.ui-shell .ui-brand-sub{display:none}
[data-side=rail] #sidebar.ui-shell .brand:not(.ui-brand){padding:58px 10px 10px;text-align:center}
[data-side=rail] #sidebar.ui-shell .brand:not(.ui-brand) .brand-logo{padding:6px 5px}
[data-side=rail] #sidebar.ui-shell .brand:not(.ui-brand) .brand-logo img{height:auto;width:58px;max-width:58px;margin:-4px -7px -5px}
[data-side=rail] #sidebar.ui-shell .ui-side-toggle{top:62px;right:auto;left:50%;transform:translateX(-50%)}
[data-side=rail] #sidebar.ui-shell:not(:has(.ui-brand)) .ui-side-toggle{top:12px}
[data-side=rail] #sidebar.ui-shell .ui-side-toggle:active{transform:translateX(-50%) scale(.9)}
[data-side=rail] #sidebar.ui-shell nav{padding:4px 12px 12px}
[data-side=rail] #sidebar.ui-shell .ui-nav-h{display:none}
[data-side=rail] #sidebar.ui-shell .ui-nav-g{padding:0}
[data-side=rail] #sidebar.ui-shell .ui-nav-g+.ui-nav-g{border-top:0;margin-top:0;padding-top:0}
[data-side=rail] #sidebar.ui-shell .ui-nav-g+.ui-nav-g::before{content:'';display:block;width:22px;height:1px;margin:8px auto;background:var(--sb-line)}
[data-side=rail] #sidebar.ui-shell nav a{justify-content:center;padding:0!important;min-height:44px;box-shadow:none}
[data-side=rail] #sidebar.ui-shell nav a[data-n]::after{position:absolute;top:5px;right:6px;min-width:16px;height:16px;padding:0 4px;margin:0;font-size:9.5px;line-height:16px;box-shadow:0 0 0 2px var(--sb-solid)}
[data-side=rail] #sidebar.ui-shell nav a:is([data-tone=n],[data-tone=all])::after{display:none}
[data-side=rail] #sidebar.ui-shell .ui-nav-ind::before{display:none}
[data-side=rail] #sidebar.ui-shell .side-foot:not(#z){display:flex;justify-content:center;padding:10px 0 14px}
[data-side=rail] #sidebar.ui-shell .ui-me{flex:none;justify-content:center;padding:4px;background:none}
[data-side=rail] #sidebar.ui-shell :is(.ui-me-who,.ui-me-out,.net-badge,.work-version,.side-section,.side-users,.work-side-note,.ui-today){display:none!important}
/* 서랍(휴대폰)·좁은 창: 예전 900px 이하 규칙(글자 숨김·가운데 정렬)을 되돌린다 */
[data-side]:not([data-side=rail]) #sidebar.ui-shell :is(.brand-title,.recent-list){display:block}
[data-side]:not([data-side=rail]) #sidebar.ui-shell .net-badge{display:flex}
[data-side]:not([data-side=rail]) #sidebar.ui-shell .side-heading{display:block}
[data-side=hidden] #sidebar.ui-shell{width:min(288px,calc(86 * var(--gn-vw,1vw)))}
[data-side=hidden] #sidebar.ui-shell .brand.ui-brand{padding-right:18px}
/* 아이콘 막대 말풍선 */
.ui-tip{position:fixed;z-index:95;left:0;top:0;display:flex;align-items:center;gap:8px;padding:7px 11px;border-radius:9px;background:var(--color-surface-0b1f3a);color:var(--color-ink-fff);font-size:12.5px;font-weight:650;white-space:nowrap;box-shadow:0 10px 28px var(--color-shadow-48964dce57);pointer-events:none;opacity:0;transform:translate(-4px,-50%) scale(.96);transform-origin:left center;transition:opacity .14s,transform .2s var(--sp-pop)}
.ui-tip.show{opacity:1;transform:translate(0,-50%) scale(1)}
.ui-tip span{font-size:11.5px;font-weight:600;color:var(--color-ink-b8c7db)}
.ui-tip span[data-tone=act]{color:var(--color-ink-ffd48a)}.ui-tip span[data-tone=warn]{color:var(--color-ink-ffb0a8)}
[data-skin=toss] .ui-tip{background:var(--color-surface-191f28)}

/* ═══════════════ 시설 목록·검색: 섬네일 · 카드 보기 · 요약 띠 ═══════════════ */
.fl-view{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:var(--bg,var(--color-surface-f2f4f6));border:1px solid var(--line)}
.fl-view button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:0;border-radius:9px;background:transparent;font:inherit;font-size:13px;font-weight:650;color:var(--sub);cursor:pointer;transition:background .2s,color .2s,transform var(--sp-dp) var(--sp-pop)}
.fl-view button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fl-view button.on{background:var(--panel,var(--color-surface-fff));color:var(--txt);box-shadow:0 1px 3px var(--color-shadow-bee9f73d54)}
.fl-view button:active{transform:scale(.94)}
.fl-more{position:relative}
.fl-more>summary{list-style:none;cursor:pointer}
.fl-more>summary::-webkit-details-marker{display:none}
.fl-more>summary::after{content:'';display:inline-block;width:7px;height:7px;margin-left:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.fl-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;display:flex;flex-direction:column;gap:4px;min-width:200px;padding:8px;border-radius:14px;background:var(--panel,var(--color-surface-fff));border:1px solid var(--line);box-shadow:0 12px 32px var(--color-shadow-df33ff2452);transform-origin:top right;animation:uiModal var(--sp-d) var(--sp-chewy)}
.fl-menu .btn{justify-content:flex-start;width:100%;border-color:transparent;background:transparent}
.fl-menu .btn:hover{background:var(--bg,var(--color-surface-f2f4f6))}
/* 요약 띠 */
.fl-sum{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:4px 0 10px;padding:2px 0}
.fl-sum::-webkit-scrollbar{display:none}
.fl-s{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:6px;min-height:38px;padding:6px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel,var(--color-surface-fff));font:inherit;cursor:pointer;color:var(--sub);transition:transform var(--sp-dp) var(--sp-pop),border-color .2s,background .2s}
.fl-s b{font-size:17px;font-weight:800;color:var(--txt);font-variant-numeric:tabular-nums}
.fl-s span{font-size:12.5px;font-weight:650}
.fl-s:hover:not(:disabled){border-color:var(--pri);transform:translateY(-1px)}
.fl-s:active:not(:disabled){transform:scale(.96)}
.fl-s:disabled{cursor:default}
.fl-s.hot b{color:var(--color-ink-c42b2b)}.fl-s.amb b{color:var(--color-ink-b45309)}.fl-s.ill b{color:var(--color-ink-1f5fae)}
.fl-s.zero b{color:var(--faint,var(--color-ink-8b95a1))}
/* 섬네일 타일(표 칸 56×40 · 카드 16:10) */
.fac-thumb{position:relative;display:grid;place-items:center;width:58px;height:42px;border-radius:10px;overflow:hidden;background:linear-gradient(160deg,var(--color-surface-f1f5fa),var(--color-surface-dfe7f1));flex:none}
.fac-thumb img{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);object-fit:contain;filter:drop-shadow(0 2px 3px var(--color-paint-1f8ee01c25))}
.fac-thumb.has-img .fac-ic{display:none}
.fac-ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fac-thumb[data-kind=park]{background:linear-gradient(160deg,var(--color-surface-eaf7ee),var(--color-surface-d4eedc));color:var(--color-ink-1a7f37)}
.fac-thumb[data-kind=parking]{background:linear-gradient(160deg,var(--color-surface-e9f1fb),var(--color-surface-d5e4f7));color:var(--color-ink-1f5fae)}
.fac-thumb[data-kind=sport]{background:linear-gradient(160deg,var(--color-surface-fff3e6),var(--color-surface-ffe2c4));color:var(--color-ink-b45309)}
.fac-thumb[data-kind=office]{background:linear-gradient(160deg,var(--color-surface-e9eef6),var(--color-surface-d5deeb));color:var(--color-ink-0f2f5c)}
.fac-thumb[data-kind=welfare]{background:linear-gradient(160deg,var(--color-surface-fcebf1),var(--color-surface-f7d6e2));color:var(--color-ink-a3245b)}
.fac-thumb[data-kind=culture]{background:linear-gradient(160deg,var(--color-surface-f1ecfb),var(--color-surface-e1d7f6));color:var(--color-ink-5b3cb0)}
.fac-thumb[data-kind=lease]{background:linear-gradient(160deg,var(--color-surface-eef2f5),var(--color-surface-dde4ea));color:var(--color-ink-475569)}
.fac-thumb[data-kind=building]{background:linear-gradient(160deg,var(--color-surface-eef2f7),var(--color-surface-dde5ef));color:var(--color-ink-334e74)}
.fac-thumb[data-kind=other]{background:linear-gradient(160deg,var(--color-surface-f1f3f5),var(--color-surface-e2e6ea));color:var(--color-ink-526073)}
.fac-thumb.has-img{background:linear-gradient(165deg,var(--color-surface-f4f7fb) 0%,var(--color-surface-e3eaf3) 100%)}
.fl-name{display:flex;align-items:center;gap:10px;min-width:0}
.fl-name>div{min-width:0}
.tbl tr:hover .fac-thumb img{transform:scale(1.08);transition:transform var(--sp-dp) var(--sp-pop)}
/* 카드(섬네일) 보기 */
.fac-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:14px}
[data-tier=ultra] .fac-gallery{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.fac-tile{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r,14px);background:var(--panel,var(--color-surface-fff));overflow:hidden;cursor:pointer;transition:transform var(--sp-d) var(--sp-chewy),box-shadow .3s,border-color .2s;animation:uiRise var(--sp-d) var(--sp-soft) backwards}
.fac-tile:nth-child(n+2){animation-delay:20ms}.fac-tile:nth-child(n+5){animation-delay:50ms}.fac-tile:nth-child(n+9){animation-delay:80ms}
.fac-tile:hover{transform:translateY(-4px);box-shadow:0 14px 30px var(--color-shadow-ae2e5cc190);border-color:transparent}
.fac-tile:active{transform:scale(.98)}
.fac-tile:focus-visible{outline:3px solid var(--color-line-719ee8);outline-offset:2px}
.fac-thumb.big{width:100%;height:auto;aspect-ratio:16/10;border-radius:0}
.fac-thumb.big img{inset:10px 14px 6px;width:calc(100% - 28px);height:calc(100% - 16px);transition:transform var(--sp-d) var(--sp-chewy)}
.fac-tile:hover .fac-thumb.big img{transform:scale(1.05) translateY(-2px)}
.fac-thumb.big .fac-ic{width:46px;height:46px;stroke-width:1.5;opacity:.9}
.ft-kind{position:absolute;left:10px;top:10px;padding:3px 9px;border-radius:999px;background:var(--color-surface-5953d4c27a);backdrop-filter:blur(4px);font-size:11.5px;font-weight:700;color:var(--color-ink-334155)}
.ft-body{display:flex;flex-direction:column;gap:6px;padding:12px 14px 12px}
.ft-nm{display:flex;align-items:baseline;gap:6px;font-size:15.5px;font-weight:800;letter-spacing:-.02em;color:var(--txt);line-height:1.35}
.ft-nm em{font-style:normal;font-size:12px;font-weight:700;color:var(--faint,var(--color-ink-8b95a1))}
.ft-sub{font-size:12.5px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ft-flags{display:flex;flex-wrap:wrap;gap:4px;min-height:24px;align-items:center}
.ft-flags .badge{font-size:11.5px}
.ft-ok{font-size:12px;color:var(--color-ink-1a7f37);font-weight:650}
.ft-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding-top:8px;border-top:1px solid var(--line-soft,var(--color-line-eef1f5))}
.ft-stats span{display:flex;flex-direction:column;align-items:center;font-size:11px;color:var(--faint,var(--color-ink-8b95a1))}
.ft-stats b{font-size:15px;color:var(--faint,var(--color-ink-b0b8c1));font-weight:800}
.ft-stats .has b{color:var(--txt)}
.ft-foot{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--sub)}
.ft-foot span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ft-foot .zero{color:var(--faint,var(--color-ink-8b95a1))}
/* 네 스타일 */
[data-skin=field] .fac-tile{border-radius:18px}
[data-skin=field] .ft-kind{background:var(--color-surface-0f2f5c);color:var(--color-ink-fff)}
[data-skin=toss] .fac-tile{border:0;border-radius:22px}
[data-skin=toss] .fl-s{border:0;border-radius:14px}
[data-skin=toss] .fac-thumb.has-img{background:linear-gradient(165deg,var(--color-surface-f7f8fa),var(--color-surface-eceff3))}
[data-skin=clear] .fac-tile{border-radius:10px;border-top:3px solid var(--color-line-0f2f5c)}
[data-skin=clear] .fac-thumb{border-radius:6px}
[data-skin=clear] .fl-s{border-radius:8px}
[data-skin=clear] .ft-nm{font-size:16px}
[data-skin=hand] .fac-tile{border:2px solid var(--color-line-e5e7eb);border-radius:22px}
[data-skin=hand] .fac-tile:hover{border-color:var(--color-line-0f2f5c)}
[data-skin=hand] .ft-kind{background:var(--color-surface-0f2f5c);color:var(--color-ink-fff)}
[data-skin=hand] .fl-s{border:2px solid var(--color-line-e5e7eb);border-radius:14px}
[data-skin=hand] .fl-view button.on{background:var(--color-surface-0f2f5c);color:var(--color-ink-fff)}
[data-skin=hand] .fac-thumb{border-radius:12px}
[data-skin=hand] .fac-thumb.big{border-radius:0}
/* 휴대폰: 카드 두 줄 격자, 요약 띠 옆으로 넘김, 도구 줄 정리 */
[data-form=phone] .fac-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
[data-form=phone] .ft-body{padding:10px 10px 10px;gap:5px}
[data-form=phone] .ft-nm{font-size:14px}
[data-form=phone] .ft-stats b{font-size:13px}
[data-form=phone] .ft-foot{display:none}
[data-form=phone] .ft-kind{font-size:10.5px;padding:2px 7px}
[data-form=phone] .toolbar .search{flex:1 1 100%}
[data-form=phone] .fl-menu{right:auto;left:0}
@media(max-width:370px){[data-form=phone] .fac-gallery{grid-template-columns:1fr}}

/* ═══════════════ 설정 › 화면 스타일: 실제 화면 미리보기 ═══════════════ */
.ui-card .ui-mini{display:none}
.ui-card .ui-shot.none+.ui-mini{display:grid}
.ui-shot{position:relative;display:block;border-radius:12px;overflow:hidden;background:var(--color-surface-e9eef4);box-shadow:inset 0 0 0 1px var(--color-shadow-c2201c29bd);aspect-ratio:16/10}
.ui-shot.s-phone{aspect-ratio:3/5;width:62%;max-width:150px;margin:0 auto;border-radius:16px;box-shadow:inset 0 0 0 1px var(--color-shadow-ae2e5cc190),0 0 0 4px var(--color-shadow-1d2430)}
.ui-shot.s-fold{aspect-ratio:5/6;width:78%;max-width:190px;margin:0 auto;border-radius:14px;box-shadow:inset 0 0 0 1px var(--color-shadow-ae2e5cc190),0 0 0 4px var(--color-shadow-1d2430)}
.ui-shot.s-tablet{aspect-ratio:1180/820;border-radius:12px;box-shadow:0 0 0 4px var(--color-shadow-1d2430)}
.ui-shot.s-pc{aspect-ratio:16/10;border-radius:10px 10px 4px 4px;box-shadow:0 0 0 3px var(--color-shadow-2a3140)}
.ui-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top left;transition:transform .6s var(--sp-soft)}
.ui-card:hover .ui-shot img{transform:scale(1.04)}
.ui-shot.none{display:none}
.ui-card{gap:12px;padding:12px 12px 14px;transition:transform var(--sp-dp) var(--sp-pop),border-color .2s,box-shadow .25s,background .2s}
.ui-card:hover{box-shadow:0 10px 26px var(--color-shadow-c2201c29bd)}
.ui-card:has(input:checked){box-shadow:0 0 0 3px var(--color-shadow-c2201c29bd)}
.ui-card:has(input:checked) .ui-shot{outline:3px solid var(--color-line-0f2f5c);outline-offset:3px}
.ui-card .ui-def{top:18px;right:18px;z-index:3;box-shadow:0 2px 6px var(--color-shadow-733a2ff5ad)}
.ui-card:has(input:checked)::after{content:'';position:absolute;left:18px;top:18px;z-index:3;width:24px;height:24px;border-radius:50%;background:var(--color-surface-0f2f5c) var(--i-check-w) center/14px no-repeat;box-shadow:0 2px 6px var(--color-shadow-18a22573f7);animation:uiPop var(--sp-dp) var(--sp-pop)}
@media(max-width:720px){.ui-card .ui-shot{flex:none;width:112px;max-width:none;margin:0}.ui-card .ui-shot.s-phone,.ui-card .ui-shot.s-fold{width:86px}.ui-card:has(input:checked)::after{left:14px;top:14px}}
/* 업무 앱 시설 목록: 이름 앞 일러스트 섬네일 */
.work-table td.facility-name.has-thumb{position:relative;padding-left:82px!important;min-height:58px}
.wf-thumb{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:58px;height:42px;border-radius:10px;overflow:hidden;background:linear-gradient(165deg,var(--color-surface-f4f7fb) 0%,var(--color-surface-e3eaf3) 100%)}
.wf-thumb img{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);object-fit:contain}
[data-form=phone] .work-table td.facility-name.has-thumb{padding-left:70px!important}
[data-form=phone] .wf-thumb{left:6px;width:52px;height:38px}
[data-skin=clear] .wf-thumb{border-radius:6px}
/* 휴대폰 시설 목록(자료·관리 앱): 칩 줄은 옆으로 넘겨 세로 공간을 아낀다 */
[data-form=phone] body:not(.work-app) .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
[data-form=phone] body:not(.work-app) .chips::-webkit-scrollbar{display:none}
[data-form=phone] body:not(.work-app) .chips>*{flex:0 0 auto}
[data-form=phone] .list-meta>span:last-child .muted:last-child{display:none}
/* 3.12.29 화면 전환(오른쪽에서 16px 들어오는 280ms 움직임) 동안 문서가 잠깐 가로로 넘쳐
   윈도우(스크롤 막대가 자리를 차지하는 환경)에서 아래쪽 가로 막대가 깜빡이던 것을 막는다. 고정 위치 요소·붙박이(sticky)는 영향 없음 */
#app{overflow-x:clip}
/* 3.12.30 검토자에게 보이는 잠긴 입력 칸: 쓸 수 있는 칸처럼 보이지 않게(흐린 바탕·점선, 안내 글 숨김) */
.question :is(input,textarea,select):disabled{background:var(--bg,var(--color-surface-f5f7fa))!important;border-style:dashed!important;color:var(--sub,var(--color-ink-4a5668))!important;cursor:default}
.question :is(input,textarea):disabled::placeholder{color:transparent}
/* 3.12.30 자료·관리 앱 시설 상세 머리: 조사 진행 상태 칩(전수·심층 최신 회차) */
.detail-head .wk-chips{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;margin-right:8px}
.detail-head .wk-chip{font-size:12.5px;font-weight:700;white-space:nowrap}
.badge.amber{background:var(--color-surface-fff3e6);color:var(--color-ink-b45309)}
