/* 원티드 디자인 시스템 Montage(MIT, static/montage/LICENSE.md)의 공식 토큰(static/montage/theme.css)으로 꾸민 화면.
   색·글꼴·여백·모서리·그림자는 모두 Montage 변수만 쓴다. */
:root{
  --bg:var(--semantic-background-neutral-secondary);
  --card:var(--semantic-background-neutral-primary);
  --text:var(--semantic-foreground-neutral-primary);
  --text2:var(--semantic-foreground-neutral-secondary);
  --muted:var(--semantic-foreground-neutral-tertiary);
  --line:var(--semantic-line-neutral-secondary);
  --line-soft:var(--semantic-line-neutral-tertiary);
  --accent:var(--semantic-foreground-brand-primary);
  --accent-rgb:var(--semantic-foreground-brand-primary-rgb);
  --ok:var(--semantic-foreground-positive-primary);--ok-rgb:var(--semantic-foreground-positive-primary-rgb);
  --warn:var(--semantic-foreground-cautionary-primary);--warn-rgb:var(--semantic-foreground-cautionary-primary-rgb);
  --bad:var(--semantic-foreground-negative-primary);--bad-rgb:var(--semantic-foreground-negative-primary-rgb);
  --neutral-rgb:var(--semantic-foreground-neutral-tertiary-rgb);
  --mark:rgba(var(--semantic-foreground-cautionary-primary-rgb),.22);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,system-ui,'Apple SD Gothic Neo','Noto Sans KR','Malgun Gothic',sans-serif;
  font-size:var(--typography-label1-fontSize);line-height:var(--typography-label1-lineHeight);letter-spacing:var(--typography-label1-letterSpacing);
  -webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}

/* 상단 바 */
header{background:var(--card);border-bottom:1px solid var(--line-soft);position:sticky;top:0;z-index:10}
.top{display:flex;align-items:center;gap:var(--spacing-24);padding:0 var(--spacing-24);min-height:60px;flex-wrap:wrap;max-width:1680px;margin:0 auto}
.brand{font-weight:700;font-size:var(--typography-headline2-fontSize);letter-spacing:var(--typography-headline2-letterSpacing);display:flex;align-items:center;gap:var(--spacing-8)}
.brand img{height:40px;width:auto;display:block}.brand:hover{text-decoration:none}
nav{display:flex;gap:var(--spacing-2);flex-wrap:wrap;flex:1;align-items:center}
nav a{padding:var(--spacing-8) var(--spacing-12);border-radius:var(--radius-8);color:var(--text2);font-weight:500}
nav a:hover{background:rgba(var(--neutral-rgb),.05);text-decoration:none}
nav a.on{color:var(--text);font-weight:700;background:rgba(var(--neutral-rgb),.08)}
nav .sep{width:1px;height:16px;background:var(--line);margin:0 var(--spacing-8)}
.who{color:var(--muted);font-size:var(--typography-label2-fontSize)}.who a{color:var(--muted)}

/* 본문 */
main{max-width:1680px;margin:0 auto;padding:var(--spacing-32) var(--spacing-24) var(--spacing-80)}
h1{font-size:var(--typography-title3-fontSize);line-height:var(--typography-title3-lineHeight);letter-spacing:var(--typography-title3-letterSpacing);font-weight:700;margin:0 0 var(--spacing-20)}
h1 .muted.small{font-size:var(--typography-body2-fontSize);font-weight:500;margin-left:var(--spacing-4)}
h2{font-size:var(--typography-headline1-fontSize);line-height:var(--typography-headline1-lineHeight);letter-spacing:var(--typography-headline1-letterSpacing);font-weight:700;margin:var(--spacing-32) 0 var(--spacing-12)}
p{margin:0 0 var(--spacing-12)}
.muted{color:var(--muted)}.small{font-size:var(--typography-label2-fontSize);line-height:var(--typography-label2-lineHeight)}
mark{background:var(--mark);color:inherit;padding:0 2px;border-radius:2px}

.card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius-16);padding:var(--spacing-24);margin-bottom:var(--spacing-16);box-shadow:var(--semantic-elevation-shadow-normal-xsmall)}
.card h2:first-child{margin-top:0}

/* 숫자 카드 */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-12)}
.stat{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius-16);padding:var(--spacing-20)}
.stat .n{font-size:var(--typography-title2-fontSize);line-height:var(--typography-title2-lineHeight);letter-spacing:var(--typography-title2-letterSpacing);font-weight:700;font-variant-numeric:tabular-nums}
.stat .l{color:var(--muted);font-size:var(--typography-label2-fontSize);font-weight:500;margin-top:var(--spacing-4)}

/* 표 */
.tbl{overflow-x:auto;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius-16)}
table{width:100%;border-collapse:collapse}
th,td{padding:var(--spacing-12) var(--spacing-16);border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:middle}
tr:last-child td{border-bottom:none}
th{font-size:var(--typography-label2-fontSize);color:var(--muted);font-weight:600;white-space:nowrap;background:var(--card)}
tr:hover td{background:rgba(var(--neutral-rgb),.03)}
td a{color:var(--text2);font-weight:500}td a:hover{color:var(--semantic-foreground-neutral-strong)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}

/* 배지(Montage 'Content Badge' 모양) */
.badge{display:inline-flex;align-items:center;height:22px;padding:0 var(--spacing-8);border-radius:var(--radius-6,6px);font-size:var(--typography-caption1-fontSize);font-weight:600;white-space:nowrap;
  color:var(--text2);background:rgba(var(--neutral-rgb),.08)}
.b-ok{color:var(--ok);background:rgba(var(--ok-rgb),.1)}
.b-warn{color:var(--warn);background:rgba(var(--warn-rgb),.1)}
.b-bad{color:var(--bad);background:rgba(var(--bad-rgb),.1)}
.b-acc{color:var(--accent);background:rgba(var(--accent-rgb),.08)}

/* 입력·버튼(Montage TextField / Button 크기: 40px, 모서리 10~12) */
input,select,textarea,button{font:inherit;letter-spacing:inherit;color:var(--text)}
input:not([type=checkbox]):not([type=radio]),select,textarea{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-12);padding:0 var(--spacing-12);height:40px;outline:none;transition:border-color .15s,box-shadow .15s}
textarea{height:auto;padding:var(--spacing-10) var(--spacing-12);line-height:var(--typography-body2-lineHeight)}
input:focus,select:focus,textarea:focus{border-color:var(--semantic-line-brand-strong);box-shadow:0 0 0 3px var(--semantic-line-brand-focus)}
select{-webkit-appearance:none;appearance:none;padding-right:34px!important;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0h10L5 6z' fill='%2370737C'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:9px 5px}
input::placeholder,textarea::placeholder{color:var(--semantic-foreground-neutral-quaternary)}
input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:16px;height:16px;vertical-align:-3px;margin:0 4px 0 0}
label{cursor:pointer}
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 var(--spacing-20);border-radius:var(--radius-10);
  background:var(--accent);color:var(--semantic-static-white);border:none;font-weight:600;cursor:pointer;text-decoration:none;transition:filter .15s}
button:hover,.btn:hover{filter:brightness(.94);text-decoration:none}
.btn.sec,button.sec{background:var(--card);color:var(--text);border:1px solid var(--line)}
.btn.sec:hover,button.sec:hover{filter:none;background:rgba(var(--neutral-rgb),.05)}

/* 알림·페이지 이동 */
.flash{background:rgba(var(--accent-rgb),.08);color:var(--accent);padding:var(--spacing-12) var(--spacing-16);border-radius:var(--radius-12);margin-bottom:var(--spacing-16);font-weight:500}
.pager{display:flex;gap:var(--spacing-8);margin-top:var(--spacing-32);align-items:center;justify-content:center;flex-wrap:wrap}
.pager a,.pager span{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0 var(--spacing-4);border-radius:9999px;
  color:var(--muted);font-size:var(--typography-body1-fontSize);font-weight:500;font-variant-numeric:tabular-nums;text-decoration:none}
.pager a:hover{background:rgba(var(--neutral-rgb),.06);color:var(--text);text-decoration:none}
.pager .cur{background:var(--accent);color:var(--semantic-static-white);font-weight:700}
.pager .dots{color:var(--semantic-foreground-neutral-quaternary);letter-spacing:2px;min-width:28px}
.pager .arw svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pager .arw{color:var(--muted)}.pager .arw.off{color:var(--semantic-foreground-neutral-quaternary);opacity:.6}

/* 정보 목록·배치 */
.kv{display:grid;grid-template-columns:120px 1fr;gap:var(--spacing-10) var(--spacing-16);margin:0}
.kv dt{color:var(--muted);font-weight:500}.kv dd{margin:0}
.row{display:flex;gap:var(--spacing-16);flex-wrap:wrap}.row>*{flex:1;min-width:300px}
ul{padding-left:var(--spacing-20)}

/* 북마크 아이콘(원티드 채용 카드의 북마크 모양): 빈 테두리 → 채운 파랑 */
.starf{display:inline;margin:0}
button.star{background:none;border:none;height:auto;padding:4px;border-radius:var(--radius-8);line-height:0;cursor:pointer}
button.star svg{fill:none;stroke:var(--semantic-foreground-neutral-quaternary);stroke-width:1.8;stroke-linejoin:round;transition:stroke .15s,fill .15s}
button.star:hover{filter:none;background:rgba(var(--neutral-rgb),.06)}
button.star:hover svg{stroke:var(--text2)}
button.star.on svg{fill:var(--accent);stroke:var(--accent)}
h1 .starf button.star svg{width:26px;height:26px}
h1 .starf{vertical-align:-4px;margin-right:2px}
td.ttl .badge{margin-right:6px;vertical-align:1px}

@media (max-width:720px){
  .top{padding:var(--spacing-8) var(--spacing-16);gap:var(--spacing-8)}
  nav{order:3;flex-basis:100%;overflow-x:auto;flex-wrap:nowrap}nav a{white-space:nowrap}
  main{padding:var(--spacing-20) var(--spacing-16) var(--spacing-48)}
  .kv{grid-template-columns:1fr}.kv dt{margin-top:var(--spacing-6)}
  th,td{padding:var(--spacing-10) var(--spacing-12)}
}
.nowrap{white-space:nowrap}

/* 출처 배지: 지자체 파랑, 나라장터 오렌지(Montage atomic 색) */
.b-local{color:var(--atomic-blue-50);background:var(--atomic-blue-95)}
.b-g2b{color:var(--warn);background:rgba(var(--warn-rgb),.1)}
[data-theme=dark] .b-local{color:var(--atomic-blue-70);background:rgba(var(--semantic-foreground-brand-primary-rgb),.16)}


[data-theme=dark] .brand{background:#fff;border-radius:var(--radius-8);padding:4px 8px}

/* ===== 필터(원티드 채용 목록 방식): 칩 버튼 → 창에서 선택 → 초기화/적용 ===== */
form.filters{display:flex;gap:var(--spacing-8);flex-wrap:wrap;align-items:center;margin-bottom:var(--spacing-20)}
form.filters .search{flex:1;min-width:240px;max-width:400px}
form.filters .search input{width:100%;height:40px;padding-left:38px;border-radius:var(--radius-10);
  background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2370737C' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px center}
.fchip{height:40px;padding:0 var(--spacing-12) 0 var(--spacing-16);border-radius:var(--radius-10);background:var(--card);color:var(--text);
  border:1px solid var(--line);font-size:var(--typography-body2-fontSize);font-weight:500;gap:4px}
.fchip:hover{filter:none;background:rgba(var(--neutral-rgb),.04)}
.fchip .chev{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.6}
.fchip.on{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.05);font-weight:600}
.freset{display:inline-flex;align-items:center;gap:4px;height:40px;padding:0 var(--spacing-8);color:var(--muted);font-size:var(--typography-label1-fontSize);font-weight:500}
.freset svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.freset:hover{color:var(--text);text-decoration:none}

dialog.fdlg{border:none;border-radius:var(--radius-24);padding:var(--spacing-32) var(--spacing-32) var(--spacing-24);width:min(480px,calc(100vw - 32px));
  background:var(--card);color:var(--text);box-shadow:var(--semantic-elevation-shadow-normal-xlarge)}
dialog.fdlg::backdrop{background:var(--semantic-effect-dimmer-primary,rgba(23,23,25,.52))}
.fdlg .dh{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-8)}
.fdlg h3{margin:0;font-size:var(--typography-heading1-fontSize);line-height:var(--typography-heading1-lineHeight);font-weight:700;letter-spacing:var(--typography-heading1-letterSpacing)}
.fdlg .x{background:none;border:none;height:auto;padding:4px;color:var(--text);border-radius:var(--radius-8)}
.fdlg .x:hover{filter:none;background:rgba(var(--neutral-rgb),.06)}
.fdlg .x svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.fdlg .ds{margin-top:var(--spacing-24)}
.fdlg h4{margin:0 0 var(--spacing-12);font-size:var(--typography-headline2-fontSize);font-weight:600;color:var(--text)}
.fdlg .opts{display:flex;flex-wrap:wrap;gap:var(--spacing-10)}
.fdlg .opt{cursor:pointer;margin:0}
.fdlg .opt input{position:absolute;opacity:0;width:1px;height:1px}
.fdlg .opt span{display:inline-flex;align-items:center;height:44px;padding:0 var(--spacing-20);border:1px solid var(--line);border-radius:var(--radius-12);
  font-size:var(--typography-body1-fontSize);font-weight:500;color:var(--text);background:var(--card);transition:all .12s}
.fdlg .opt:hover span{background:rgba(var(--neutral-rgb),.04)}
.fdlg .opt input:checked+span{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.06);font-weight:600}
.fdlg .opt input:focus-visible+span{box-shadow:0 0 0 3px var(--semantic-line-brand-focus)}
.fdlg .drange{display:flex;align-items:center;gap:var(--spacing-8)}
.fdlg .drange input{flex:1;height:44px;border-radius:var(--radius-12)}
.fdlg .drange span{color:var(--muted)}
.fdlg .df{display:grid;grid-template-columns:1fr 2.4fr;gap:var(--spacing-10);margin-top:var(--spacing-32)}
.fdlg .df button{height:52px;border-radius:var(--radius-12);font-size:var(--typography-headline2-fontSize);font-weight:700}
@media (max-width:720px){form.filters .search{flex-basis:100%;max-width:none}dialog.fdlg{padding:var(--spacing-24) var(--spacing-20) var(--spacing-20)}}

/* 공고 상세: 뒤로가기·원문 보기 버튼 */
a.back{display:inline-flex;align-items:center;gap:2px;height:36px;padding:0 var(--spacing-12) 0 var(--spacing-6);margin:0 0 var(--spacing-12) calc(-1 * var(--spacing-6));
  border-radius:var(--radius-10);color:var(--text2);font-size:var(--typography-body2-fontSize);font-weight:600}
a.back:hover{background:rgba(var(--neutral-rgb),.06);color:var(--text);text-decoration:none}
a.back svg,a.src-btn svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.phead{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-16);margin-bottom:var(--spacing-20)}
.phead h1{margin:0}
a.src-btn{flex-shrink:0;height:44px;padding:0 var(--spacing-20);border-radius:var(--radius-12);font-size:var(--typography-body2-fontSize);gap:6px}
ul.mhist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-12)}
ul.mhist li{padding:var(--spacing-12) var(--spacing-16);border-radius:var(--radius-12);background:rgba(var(--neutral-rgb),.04)}
.mh-meta{font-size:var(--typography-caption1-fontSize);color:var(--muted);margin-bottom:2px}
.mh-body{white-space:pre-wrap;word-break:break-word}
@media (max-width:720px){.phead{flex-direction:column}a.src-btn{width:100%}}

/* 걸린 키워드: 줄바꿈 없이 한 줄 → 표가 넓어지면 표 아래 가로 스크롤 막대(항상 보이게) */
.tbl{overflow-x:auto}
.tbl::-webkit-scrollbar{height:10px}
.tbl::-webkit-scrollbar-track{background:rgba(var(--neutral-rgb),.04);border-radius:0 0 var(--radius-16) var(--radius-16)}
.tbl::-webkit-scrollbar-thumb{background:rgba(var(--neutral-rgb),.28);border-radius:10px;border:2px solid transparent;background-clip:padding-box}
.tbl::-webkit-scrollbar-thumb:hover{background:rgba(var(--neutral-rgb),.45);background-clip:padding-box}

/* 목록 표: 칸 너비 고정(키워드 240px) → 긴 키워드는 줄바꿈 없이 표 오른쪽으로 이어지고 표 하단 가로 스크롤바로 본다 */
.tbl table.list{table-layout:fixed;width:100%}
.tbl table.list col.c-bm{width:48px}.tbl table.list col.c-src{width:96px}.tbl table.list col.c-org{width:180px}
.tbl table.list col.c-date{width:112px}.tbl table.list col.c-st{width:120px}.tbl table.list col.c-kw{width:240px}
.tbl table.list td.kw{white-space:normal;word-break:keep-all;overflow-wrap:anywhere;line-height:1.5}

/* 메모: 버튼 오른쪽 정렬, 삭제는 빨간 글씨 보조 버튼 */
.memo-act{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-8)}
.memo-act .btns{display:flex;gap:var(--spacing-8);margin-left:auto}
button.sec.danger{color:var(--bad)}button.sec.danger:hover{background:rgba(var(--bad-rgb),.06)}

.mhist{margin-top:var(--spacing-20)!important}
.mh-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mh-del{margin:0}
button.sm{height:28px;padding:0 var(--spacing-10);border-radius:var(--radius-8);font-size:var(--typography-label2-fontSize)}

/* ===== 키워드 관리 ===== */
.kw-head{display:flex;align-items:baseline;gap:var(--spacing-12);flex-wrap:wrap}.kw-head h1{margin-bottom:var(--spacing-8)}.kw-head p{margin:0}
.kw-rules{display:flex;gap:var(--spacing-8);flex-wrap:wrap;margin:var(--spacing-12) 0 var(--spacing-20)}
.kw-rules .rule{display:flex;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-12);background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius-12);color:var(--text2);font-size:var(--typography-label1-fontSize)}
.kw-test h3{margin:0 0 var(--spacing-12);font-size:var(--typography-headline2-fontSize)}
.kw-test-f{display:flex;gap:var(--spacing-8);flex-wrap:wrap;align-items:center}
.kw-test-f input[name=title]{flex:2;min-width:240px}.kw-test-f input[name=body]{flex:1.4;min-width:200px}
.seg{display:inline-flex;padding:3px;background:rgba(var(--neutral-rgb),.08);border-radius:var(--radius-10)}
.seg label{margin:0}.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:inline-flex;align-items:center;height:34px;padding:0 var(--spacing-14);border-radius:var(--radius-8);color:var(--muted);font-weight:600;cursor:pointer;font-size:var(--typography-label1-fontSize)}
.seg input:checked+span{background:var(--card);color:var(--text);box-shadow:var(--semantic-elevation-shadow-normal-xsmall)}
.kw-test-r:empty{display:none}.kw-test-r{margin-top:var(--spacing-12);padding:var(--spacing-12) var(--spacing-16);background:rgba(var(--neutral-rgb),.04);border-radius:var(--radius-12);display:flex;flex-direction:column;gap:6px}
.kw-test-r .r2{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tabs{display:flex;gap:var(--spacing-4);border-bottom:1px solid var(--line-soft);margin:var(--spacing-32) 0 var(--spacing-16)}
.tab{background:none;color:var(--muted);border:none;border-radius:0;height:44px;padding:0 var(--spacing-12);font-size:var(--typography-headline2-fontSize);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}
.tab:hover{filter:none;color:var(--text)}.tab.on{color:var(--text);border-bottom-color:var(--text)}
.tab span{font-size:var(--typography-label1-fontSize);color:var(--muted);font-weight:500;margin-left:4px}
.kw-bar{display:flex;gap:var(--spacing-8);align-items:center;flex-wrap:wrap;margin-bottom:var(--spacing-12)}
.kw-bar .sp{flex:1}.kw-bar .up{margin:0}
.kw-bar .search input{width:280px;height:40px;padding-left:38px;border-radius:var(--radius-10);
  background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2370737C' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px center}
.kw-bar .btn,.kw-bar button{height:40px;padding:0 var(--spacing-16);border-radius:var(--radius-10);font-size:var(--typography-label1-fontSize)}
table.kwt{table-layout:fixed;min-width:980px}
table.kwt td{padding:var(--spacing-6) var(--spacing-12)}
table.kwt input.cell{width:100%;height:36px;border-color:transparent;background:transparent;padding:0 var(--spacing-8);border-radius:var(--radius-8)}
table.kwt input.cell:hover{border-color:var(--line)}
table.kwt input.cell:focus{background:var(--card)}
table.kwt input.kwname{font-weight:600}
select.grade{height:30px;padding:0 26px 0 var(--spacing-10);border-radius:var(--radius-8);font-size:var(--typography-label2-fontSize);font-weight:600;border:none;-webkit-appearance:none;appearance:none;cursor:pointer;
  background:rgba(var(--neutral-rgb),.08) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0h10L5 6z' fill='%2370737C'/%3E%3C/svg%3E") no-repeat right 9px center/8px 5px;color:var(--muted)}
select.grade.g-필수{background-color:rgba(var(--accent-rgb),.1);color:var(--accent)}
select.grade.g-관심{background-color:rgba(var(--ok-rgb),.12);color:var(--ok)}
.sw{display:inline-flex;cursor:pointer;margin:0}.sw input{position:absolute;opacity:0;width:1px;height:1px}
.sw span{width:40px;height:24px;border-radius:12px;background:rgba(var(--neutral-rgb),.22);position:relative;transition:background .15s}
.sw span::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .15s}
.sw input:checked+span{background:var(--accent)}.sw input:checked+span::after{transform:translateX(16px)}
.sw input:focus-visible+span{box-shadow:0 0 0 3px var(--semantic-line-brand-focus)}
button.icon{background:none;border:none;height:32px;width:32px;padding:0;border-radius:var(--radius-8);color:var(--semantic-foreground-neutral-quaternary)}
button.icon svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
button.icon:hover{filter:none;color:var(--bad);background:rgba(var(--bad-rgb),.06)}
.savebar{position:sticky;bottom:var(--spacing-16);margin-top:var(--spacing-16);display:flex;align-items:center;gap:var(--spacing-8);padding:var(--spacing-12) var(--spacing-12) var(--spacing-12) var(--spacing-20);
  background:var(--text);color:var(--semantic-foreground-neutral-inverse);border-radius:var(--radius-16);box-shadow:var(--semantic-elevation-shadow-normal-large);z-index:4}
.savebar span{flex:1;font-weight:600}
.savebar button.sec{background:transparent;color:inherit;border-color:rgba(255,255,255,.3)}
.savebar[hidden]{display:none}

.tbl table.list col.c-blk{width:260px}

/* 원티드 태그 칩: 구분선 뒤 켜고 끄는 칩 */
.fdiv{width:1px;height:24px;background:var(--line);margin:0 var(--spacing-4)}
a.tchip{display:inline-flex;align-items:center;gap:4px;height:40px;padding:0 var(--spacing-16);border:1px solid var(--line);border-radius:var(--radius-10);
  background:var(--card);color:var(--text);font-size:var(--typography-body2-fontSize);font-weight:500;text-decoration:none}
a.tchip:hover{background:rgba(var(--neutral-rgb),.04);text-decoration:none}
a.tchip.on{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.05);font-weight:600}
a.tchip svg{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* 세로 입력 양식(놓친공고 신고 등) */
.vform{display:flex;flex-direction:column;gap:var(--spacing-16)}
.vform label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:var(--typography-label1-fontSize);color:var(--text2)}
.vform label input,.vform label textarea{font-weight:400;width:100%}
.vform .two{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-12)}
.vform .act{display:flex;justify-content:flex-end}.vform .req{color:var(--bad)}
.inline-f{display:flex;gap:6px}.inline-f input{height:36px;min-width:180px;flex:1}.inline-f button{height:36px;padding:0 var(--spacing-12)}
@media (max-width:720px){.vform .two{grid-template-columns:1fr}}

.mh-no{font-weight:700;color:var(--text2);margin-right:8px}

/* 양식 공통: 칩 고르기·스위치 줄·버튼 줄 */
.vform .fld{display:flex;flex-direction:column;gap:8px}
.vform .lbl,.rediag .lbl{font-weight:600;font-size:var(--typography-label1-fontSize);color:var(--text2)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips .opt{margin:0;cursor:pointer}.chips .opt input{position:absolute;opacity:0;width:1px;height:1px}
.chips .opt span{display:inline-flex;align-items:center;height:40px;padding:0 var(--spacing-16);border:1px solid var(--line);border-radius:var(--radius-10);
  font-size:var(--typography-body2-fontSize);font-weight:500;color:var(--text);background:var(--card)}
.chips .opt:hover span{background:rgba(var(--neutral-rgb),.04)}
.chips .opt input:checked+span{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.06);font-weight:600}
.chips .opt input:focus-visible+span{box-shadow:0 0 0 3px var(--semantic-line-brand-focus)}
.vform .row-sw{flex-direction:row;align-items:center;justify-content:space-between;gap:16px;padding:var(--spacing-12) var(--spacing-16);border:1px solid var(--line-soft);border-radius:var(--radius-12)}
.act-r{display:flex;justify-content:flex-end;gap:8px}
.rediag{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:var(--spacing-20);padding-top:var(--spacing-20);border-top:1px solid var(--line-soft)}
.rediag form{margin:0}

#evp{margin-top:var(--spacing-12)}
/* 검색 범위 페이지 번호만 작게: 원 28px, 글자 13px, 화살표 16px */
#evp{gap:4px}
#evp a,#evp span{min-width:28px;height:28px;padding:0 6px;font-size:var(--typography-label2-fontSize)}
#evp .arw svg{width:16px;height:16px}
#evp .dots{min-width:20px}
#evp{margin-top:var(--spacing-20);gap:6px}
/* 판정 규칙: 하나의 상자 안 3열 */
.kw-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius-16);padding:var(--spacing-16) 0}
.kw-rules .rule{flex-direction:column;align-items:flex-start;gap:8px;background:none;border:none;border-radius:0;padding:var(--spacing-4) var(--spacing-20)}
.kw-rules .rule+.rule{border-left:1px solid var(--line-soft)}
@media (max-width:720px){.kw-rules{grid-template-columns:1fr}.kw-rules .rule+.rule{border-left:none;border-top:1px solid var(--line-soft);padding-top:var(--spacing-12);margin-top:var(--spacing-8)}}

/* 확인창(원티드 Montage 다이얼로그) */
dialog.cdlg{border:none;border-radius:var(--radius-20);padding:var(--spacing-24);width:min(360px,calc(100vw - 32px));background:var(--card);color:var(--text);box-shadow:var(--semantic-elevation-shadow-normal-xlarge)}
dialog.cdlg::backdrop{background:var(--semantic-effect-dimmer-primary,rgba(23,23,25,.52))}
.cdlg .cmsg{margin:var(--spacing-8) 0 var(--spacing-24);font-size:var(--typography-headline2-fontSize);line-height:var(--typography-headline2-lineHeight);font-weight:600;text-align:center;word-break:keep-all}
.cdlg .cact{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-8)}
.cdlg .cact button{height:48px;border-radius:var(--radius-12);font-size:var(--typography-body1-fontSize);font-weight:700}
.cdlg .cact button.danger-fill{background:var(--bad)}

.tbl table.list col.c-ck{width:76px}
/* 구분 칩: 재공고 cyan, 정정 pink (Montage accent) */
.b-cyan{color:var(--semantic-foreground-accent-cyan);background:rgba(var(--semantic-foreground-accent-cyan-rgb),.1)}
.b-pink{color:var(--semantic-foreground-accent-pink);background:rgba(var(--semantic-foreground-accent-pink-rgb),.1)}
.b-redorange{color:var(--atomic-redOrange-48);background:var(--atomic-redOrange-95)}
[data-theme=dark] .b-redorange{color:var(--atomic-redOrange-60);background:rgba(255,94,0,.14)}
/* 실행기록 */
table.runs th .sub{font-weight:400;font-size:11px}
table.runs tr.note td{padding-top:0;border-top:none}
.okc{color:var(--ok)}.warnc{color:var(--warn);font-weight:700}.badc{color:var(--bad)}a.bad{color:var(--bad);font-weight:700}
.stat .n .of{font-size:var(--typography-headline2-fontSize);color:var(--muted);font-weight:500}
h3.ch{margin:0 0 var(--spacing-12);font-size:var(--typography-headline2-fontSize)}
.why{padding:var(--spacing-8) 0;border-bottom:1px solid var(--line-soft)}.why:last-child{border-bottom:none}
.why .wh{display:flex;justify-content:space-between;align-items:center;gap:8px}

a.tchip .cnt{color:var(--muted);font-weight:500;margin-left:2px}a.tchip.on .cnt{color:inherit;opacity:.7}
/* 설정 */
.settings{max-width:880px}
.settings .card{padding:var(--spacing-24) var(--spacing-24) var(--spacing-20)}
h2.sh{margin:0 0 var(--spacing-16);font-size:var(--typography-headline1-fontSize)}
.vform .hint{font-weight:400;font-size:var(--typography-label2-fontSize);color:var(--muted);margin-top:-2px}
.vform.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-20)}
.unit{display:flex;align-items:center;gap:8px}.unit input{width:160px}.unit em{font-style:normal;color:var(--muted);font-weight:500}
textarea.mono{font-variant-numeric:tabular-nums;line-height:1.6}
@media (max-width:720px){.vform.grid2{grid-template-columns:1fr}}
.vform .unit input{width:160px!important;flex:none}
.slots{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.slot-list{display:flex;flex-wrap:wrap;gap:8px}
.slot{display:inline-flex;align-items:center;gap:4px;height:40px;padding:0 6px 0 16px;border:1px solid var(--accent);border-radius:var(--radius-10);background:rgba(var(--accent-rgb),.06);color:var(--accent);font-variant-numeric:tabular-nums}
.slot b{font-size:var(--typography-body1-fontSize)}
.slot button{background:none;border:none;height:28px;width:28px;padding:0;color:var(--accent);font-size:18px;border-radius:var(--radius-8)}
.slot button:hover{filter:none;background:rgba(var(--accent-rgb),.12)}
.slot-add{display:flex;gap:8px;align-items:center}.slot-add input{width:150px}

/* ===== 반응형 ===== */
/* 표: 칸이 억지로 줄지 않게 최소 너비 → 화면보다 넓으면 표만 가로 스크롤 */
.tbl table.list{min-width:1180px}
.tbl table.runs{min-width:900px}
.tbl table.kwt{min-width:980px}
.tbl table{min-width:640px}
.tbl{-webkit-overflow-scrolling:touch}
/* 상단 메뉴: 넓지 않은 화면에서는 한 줄로 두고 옆으로 밀어서 보기 */
@media (max-width:1400px){
  .top{flex-wrap:nowrap;gap:var(--spacing-16)}
  nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;min-width:0}
  nav::-webkit-scrollbar{display:none}
  nav a{white-space:nowrap;flex:none}
  nav .sep{flex:none}
  .brand,.who{flex:none}
}
@media (max-width:720px){
  .top{flex-wrap:wrap;padding:var(--spacing-8) var(--spacing-16)}
  nav{order:3;flex-basis:100%}
  .brand img{height:32px}
  h1{font-size:var(--typography-heading1-fontSize);line-height:var(--typography-heading1-lineHeight)}
  .phead{gap:var(--spacing-12)}
  form.filters .fchip,a.tchip{height:36px;padding:0 var(--spacing-12)}
  .grid{grid-template-columns:repeat(2,1fr)}
  .kw-bar .search input{width:100%}.kw-bar .search{flex-basis:100%}
  dialog.fdlg .df{grid-template-columns:1fr 2fr}
}
.tbl table.list{min-width:1360px}
@media (max-width:720px){ form.filters .fdiv{display:none} }

.chk .ck-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chk .ck-t{flex:1;min-width:200px}.chk .ck-n{font-size:var(--typography-heading2-fontSize);font-weight:700;font-variant-numeric:tabular-nums}
.chk summary{cursor:pointer;color:var(--accent)}.chk ul{margin:6px 0 0}
/* 칸 머리: 필터·정렬 아이콘 */
.tbl table.list th .thc{display:flex;align-items:center;gap:2px;min-width:0}
.tbl table.list th .thl{overflow:hidden;text-overflow:ellipsis;margin-right:4px}
.tbl table.list th.sorted{background:var(--semantic-fill-alternative, rgba(112,115,124,.05))}
.thf,.ths{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-6,6px);background:none;color:var(--semantic-label-assistive,#a7a9ae);cursor:pointer;flex:none;text-decoration:none}
.thf:hover,.ths:hover{background:rgba(112,115,124,.08);color:var(--muted);filter:none;text-decoration:none}
.thf svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.thf.on{color:var(--accent)}.thf.on svg{fill:currentColor}
.ths svg path{fill:currentColor;opacity:.55}
.ths.asc .up,.ths.desc .dn{fill:var(--accent);opacity:1}.ths.asc .dn,.ths.desc .up{opacity:0}
.fdlg .ftext{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-10,10px);font:inherit;background:var(--card);color:inherit}
.tbl table.list col.c-src{width:116px}.tbl table.list col.c-ck{width:104px}.tbl table.list col.c-date{width:128px}.tbl table.list col.c-st{width:132px}
.tbl table.list th{padding-right:8px}.tbl table.list col.c-ck{width:116px}
/* 수집 회차 칩: 1회차(10:00)·2회차(15:00) */
.rnd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:4px;border-radius:var(--radius-6,6px);font-size:12px;font-weight:700;line-height:1;vertical-align:1px;font-variant-numeric:tabular-nums}
.rnd.r1{color:var(--semantic-foreground-accent-pink,#e2378b);background:rgba(var(--semantic-foreground-accent-pink-rgb,226,55,139),.1)}
.rnd.r2{color:#7a3ce0;background:rgba(122,60,224,.09)}
.rnd.r3,.rnd.r4{color:var(--muted);background:rgba(112,115,124,.1)}
.tbl table.links tr.cur td{background:rgba(var(--accent-rgb),.04)}
/* 검색어 지우기(x) */
form.filters .search,.fdlg .sbox{position:relative}
form.filters .search input{padding-right:40px}.fdlg .sbox .ftext{padding-right:40px}
.sclr{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;padding:0;border:none;border-radius:50%;background:none;color:var(--semantic-label-assistive,#a7a9ae);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.sclr:hover{background:rgba(112,115,124,.1);color:var(--muted);filter:none}
.sclr[hidden]{display:none}
.sclr svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.fdlg .ds+.ds{margin-top:var(--spacing-24)}
/* 좁은 화면: 고정 칸 합 + 제목 칸 최소 360px 를 표 최소 너비로(그보다 좁으면 가로 스크롤). 막힌 단계 칸이 있으면 더 넓게 */
.tbl table.list{min-width:1450px}
.tbl table.list.has-blk{min-width:1710px}
.fdlg .opt .cnt{color:var(--muted);font-weight:500;margin-left:2px}
.fdlg .opt i.cnt{font-style:normal}
.src-form{margin:0;display:inline-flex}
/* 북마크 일괄 해제 */
.tbl table.list col.c-chk{width:44px}.tbl table.list.has-chk{min-width:1494px}
.tbl table.list th.chk,.tbl table.list td.chk{padding-left:16px;padding-right:0}
.tbl table.list tr.sel td{background:rgba(var(--accent-rgb),.04)}
.bulkbar{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:10px 12px 10px 16px;border-radius:var(--radius-12,12px);background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.18)}
.bulkbar[hidden]{display:none}.bulkbar>span{margin-right:auto;color:var(--text)}.bulkbar b{color:var(--accent)}
.bulkbar button{height:36px;white-space:nowrap;flex:none}.bulkbar>span{white-space:nowrap}
/* 막힌 단계 칩: 상태(수동확인 주황)와 구분 */
.b-violet{color:#7a3ce0;background:rgba(122,60,224,.09)}
.b-teal{color:#008a8a;background:rgba(0,152,152,.09)}
/* 오늘 수집한 행 */
/* 상세: 이전·다음 글 */
.pnav{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pnav-r{display:flex;align-items:center;gap:8px}.pnav-r[hidden]{display:none}
.pseg{display:inline-flex;align-items:center;height:36px;border:1px solid var(--line);border-radius:var(--radius-10,10px);background:var(--card);overflow:hidden}
.pbtn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:34px;color:var(--text);text-decoration:none;cursor:pointer}
.pbtn:hover{background:rgba(112,115,124,.08);text-decoration:none}
.pbtn svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pbtn.off{color:var(--semantic-label-disable,#c2c4c8);pointer-events:none}
.ppos{padding:0 10px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;border-left:1px solid var(--line-soft);border-right:1px solid var(--line-soft);line-height:34px}
.ppos b{color:var(--text);font-weight:600}
/* 진행 중 스피너 */
.spin{display:inline-block;width:14px;height:14px;margin-right:6px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px}
.spin[hidden]{display:none}
@keyframes spin{to{transform:rotate(360deg)}}
button.busy{opacity:.85;cursor:progress}
/* 놓친 공고 신고 */
.urlrow{display:flex;gap:8px}.urlrow input{flex:1}.urlrow button{white-space:nowrap;display:inline-flex;align-items:center}
.tbl table.missed .inline-f{display:flex;gap:6px}.tbl table.missed .inline-f input{min-width:260px;flex:1}
/* 상세 상단(목록·이전/다음)과 제목 간격 */
.pnav{margin-bottom:var(--spacing-16)}
/* 섹션 머리: 제목 + 오른쪽 '전체 보기' */
.sechead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:var(--spacing-24) 0 var(--spacing-12)}
.sechead h2{margin:0}
a.more{display:inline-flex;align-items:center;gap:2px;font-size:14px;font-weight:600;color:var(--muted);text-decoration:none;padding:4px 4px 4px 8px;border-radius:var(--radius-8,8px)}
a.more:hover{color:var(--text);background:rgba(112,115,124,.08);text-decoration:none}
a.more svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* 원문 보기(양식 제출 버튼)도 링크 버튼과 같은 모양 */
.src-form button.src-btn{display:inline-flex;align-items:center;height:44px;padding:0 var(--spacing-20);border-radius:var(--radius-12);font-size:var(--typography-body2-fontSize);gap:6px;flex-shrink:0}
.src-form button.src-btn svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* 실행기록 상세: 게시판별 결과 */
.tbl table.rboards td.small{color:var(--muted)}
.tbl table.rboards th:nth-child(5),.tbl table.rboards td:nth-child(5){min-width:220px}
.tbl table.rboards th:last-child,.tbl table.rboards td:last-child{min-width:200px}
.slot em{font-style:normal;font-size:13px;font-weight:600;opacity:.75;margin-right:6px}
/* 놓친 공고 신고 목록 */
.tbl table.missed{table-layout:fixed;width:100%}
.tbl table.missed td{vertical-align:top}
.m-t{font-weight:600;line-height:1.45;margin-bottom:2px;word-break:keep-all}
.m-view{display:flex;align-items:flex-start;gap:6px}.m-view span{flex:1;line-height:1.5}
.m-view[hidden],.m-edit[hidden]{display:none}
.m-edit{display:flex;gap:6px}.m-edit input{flex:1;min-width:0;height:32px}
.ibtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-8,8px);background:none;color:var(--muted);cursor:pointer;flex:none}
.ibtn:hover{background:rgba(112,115,124,.1);color:var(--text);filter:none}
.ibtn.danger:hover{color:var(--bad);background:rgba(var(--bad-rgb),.08)}
.ibtn svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* ===== 왼쪽 메뉴(열고 닫기) ===== */
header.appbar{display:flex;align-items:center;gap:8px;height:64px;padding:0 20px 0 12px;background:var(--card);border-bottom:1px solid var(--line-soft);position:sticky;top:0;z-index:30}
header.appbar .brand{display:inline-flex;align-items:center}
header.appbar .who{margin-left:auto;color:var(--muted);font-size:14px;white-space:nowrap}
.hamb{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;border-radius:var(--radius-10,10px);background:none;color:var(--text);cursor:pointer}
.hamb:hover{background:rgba(112,115,124,.08);filter:none}
.hamb svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.side{position:fixed;top:64px;bottom:0;left:0;width:224px;background:var(--card);border-right:1px solid var(--line-soft);overflow-y:auto;overflow-x:hidden;z-index:25;transition:width .18s ease}
.snav{display:flex;flex-direction:column;gap:2px;padding:12px}
.snav a{display:flex;align-items:center;gap:12px;height:44px;padding:0 12px;border-radius:var(--radius-10,10px);color:var(--text2,var(--muted));font-weight:500;white-space:nowrap;text-decoration:none}
.snav a svg{flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.snav a:hover{background:rgba(112,115,124,.07);text-decoration:none}
.snav a.on{background:rgba(var(--accent-rgb),.08);color:var(--accent);font-weight:700}
.ssep{display:block;height:1px;background:var(--line-soft);margin:8px 12px}
body.has-side main{margin-left:224px;transition:margin-left .18s ease}
body.nav-mini .side{width:72px}
body.nav-mini .snav a{justify-content:center;padding:0}
body.nav-mini .snav a span{display:none}
body.nav-mini .ssep{margin:8px 10px}
body.nav-mini.has-side main{margin-left:72px}
.scrim{display:none}
@media (max-width:900px){
  body.has-side main,body.nav-mini.has-side main{margin-left:0}
  .side,body.nav-mini .side{width:248px;transform:translateX(-100%);transition:transform .2s ease;box-shadow:0 8px 24px rgba(0,0,0,.12)}
  body.nav-mini .snav a{justify-content:flex-start;padding:0 12px}body.nav-mini .snav a span{display:inline}
  body.nav-open .side{transform:none}
  body.nav-open .scrim{display:block;position:fixed;inset:64px 0 0 0;background:rgba(0,0,0,.32);z-index:20}
  header.appbar .who{font-size:13px}
}
/* 닫힌 메뉴 너비 줄임(72 → 56) */
body.nav-mini .side{width:56px}
body.nav-mini .snav{padding:10px 6px}
body.nav-mini .snav a{height:40px}
body.nav-mini .ssep{margin:6px 8px}
body.nav-mini.has-side main{margin-left:56px}
@media (max-width:900px){body.nav-mini .side{width:248px}body.nav-mini .snav{padding:12px}body.nav-mini .snav a{height:44px}body.nav-mini.has-side main{margin-left:0}}
.stlegend{padding:4px 8px;margin-bottom:var(--spacing-20)}.stlegend table{width:100%}.stlegend td,.stlegend th{padding:10px 12px}
.stlegend tr:last-child td{border-bottom:none}
.b-yellow{color:#9a6a00;background:rgba(255,184,0,.16)}
.tbl table.mtbl{min-width:0}
/* 실행기록 상세: 원인 카드 2×2 */
.rgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-16);margin-top:var(--spacing-16)}
.rcard{margin:0}.rcard .ch{margin:0 0 var(--spacing-8);padding-bottom:var(--spacing-12);border-bottom:1px solid var(--line-soft)}
@media (max-width:900px){.rgrid{grid-template-columns:1fr}}
/* 표 선택 체크박스: 기본은 연한 테두리, 고르면 브랜드 색(진한 기본 체크박스가 튀지 않게) */
.chk input[type=checkbox]{-webkit-appearance:none;appearance:none;width:18px;height:18px;margin:0;vertical-align:middle;cursor:pointer;
  border:1.5px solid var(--line);border-radius:5px;background:var(--card) center/12px 12px no-repeat;transition:border-color .15s,background-color .15s}
.chk input[type=checkbox]:hover{border-color:rgba(var(--accent-rgb),.5)}
.chk input[type=checkbox]:checked{background-color:var(--accent);border-color:var(--accent);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.9' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.chk input[type=checkbox]:indeterminate{background-color:var(--accent);border-color:var(--accent);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6h6' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E")}
.chk input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--semantic-line-brand-focus)}

.chk{user-select:none;-webkit-user-select:none}
/* 목록 하단: 가운데 페이지 번호, 오른쪽 한 페이지 개수 */
.pgbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--spacing-12);margin-top:var(--spacing-32)}
.pgbar .pager{margin-top:0}
.pp{position:relative;justify-self:end}
.pp-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 var(--spacing-10,10px) 0 var(--spacing-14,14px);border:1px solid var(--line-soft);border-radius:var(--radius-10,10px);
  background:var(--card);color:var(--text);font-size:var(--typography-label1-fontSize);font-weight:500;cursor:pointer;transition:border-color .15s,background .15s}
.pp-btn b{font-weight:600}.pp-btn:hover{background:rgba(var(--neutral-rgb),.04);filter:none}
.pp-btn .chev{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.55;transition:transform .15s}
.pp.open .pp-btn{border-color:var(--accent)}.pp.open .pp-btn .chev{transform:rotate(180deg)}
.pp-menu{position:absolute;right:0;bottom:calc(100% + 6px);min-width:150px;padding:6px;background:var(--card);border:1px solid var(--line-soft);
  border-radius:var(--radius-12,12px);box-shadow:var(--semantic-elevation-shadow-normal-large,0 8px 24px rgba(0,0,0,.12));z-index:20}
.pp-menu a{display:flex;align-items:center;justify-content:space-between;gap:12px;height:36px;padding:0 10px 0 12px;border-radius:8px;color:var(--text);font-size:var(--typography-label1-fontSize);white-space:nowrap}
.pp-menu a:hover{background:rgba(var(--neutral-rgb),.06);text-decoration:none}
.pp-menu a svg{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;visibility:hidden}
.pp-menu a.on{color:var(--accent);font-weight:600}.pp-menu a.on svg{visibility:visible}
@media (max-width:760px){.pgbar{grid-template-columns:1fr}.pgbar>span:first-child{display:none}.pp{justify-self:center}.pp-menu{right:auto;left:50%;transform:translateX(-50%)}}
/* 필터 창 안의 짧은 설명 */
.dhelp{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:var(--spacing-20) 0 0;padding:var(--spacing-14,14px) var(--spacing-16);border-radius:var(--radius-12,12px);
  background:rgba(var(--neutral-rgb),.05);font-size:var(--typography-label1-fontSize);line-height:1.5}
.dhelp dt{font-weight:600;color:var(--text);white-space:nowrap}.dhelp dd{margin:0;color:var(--muted)}
/* 날짜 칸과 달력 */
input[data-dp]:not([type=checkbox]):not([type=radio]){cursor:pointer;padding-right:40px!important;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b8f97' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='3'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E") no-repeat right 12px center/18px 18px}
input[data-dp].dp-on{border-color:var(--accent);box-shadow:0 0 0 3px var(--semantic-line-brand-focus)}
.dp{position:fixed;z-index:1000;width:296px;padding:14px;background:var(--card);color:var(--text);border:1px solid var(--line-soft);border-radius:16px;
  box-shadow:var(--semantic-elevation-shadow-normal-xlarge,0 12px 32px rgba(0,0,0,.16))}
.dp-h{display:flex;align-items:center;justify-content:space-between;margin:0 2px 8px}
.dp-h b{font-size:var(--typography-headline2-fontSize,16px);font-weight:700}
.dp-nav{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:none;color:var(--text)}
.dp-nav:hover{background:rgba(var(--neutral-rgb),.06);filter:none}
.dp-nav svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dp-g{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px}
.dp-w{height:30px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--muted)}
.dp-d{height:36px;padding:0;border:none;border-radius:10px;background:none;color:var(--text);font-size:14px;font-weight:500;cursor:pointer;position:relative}
.dp-d:hover{background:rgba(var(--neutral-rgb),.07);filter:none}
.dp .sun{color:#e5484d}.dp .sat{color:#3e7bfa}
.dp-d.today::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--accent)}
.dp-d.in{background:rgba(var(--accent-rgb),.08);border-radius:0}
.dp-d.edge{background:rgba(var(--accent-rgb),.16);color:var(--accent);font-weight:700}
.dp-d.sel{background:var(--accent);color:#fff;font-weight:700}.dp-d.sel::after{background:#fff}
.dp-f{display:flex;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}
.dp-f button{height:32px;padding:0 10px;border:none;border-radius:8px;background:none;color:var(--muted);font-size:13px;font-weight:600}
.dp-f button:last-child{color:var(--accent)}.dp-f button:hover{background:rgba(var(--neutral-rgb),.06);filter:none}
/* 필터 창: 넣은 값 칩(×로 빼기) */
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.tags:empty{display:none}
.tag{display:inline-flex;align-items:center;gap:2px;height:34px;padding:0 6px 0 12px;border-radius:9999px;background:rgba(var(--accent-rgb),.08);color:var(--accent);font-size:var(--typography-label1-fontSize);font-weight:600}
.tag button{width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:none;color:inherit;cursor:pointer}
.tag button:hover{background:rgba(var(--accent-rgb),.14);filter:none}
.tag svg{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.fdlg .dtag{margin-top:12px}
a.plain{color:var(--text)}a.plain:hover{color:var(--text);text-decoration:underline}
/* 변경 이력: 앞 네 칸은 넉넉히, 표가 넓으면 옆으로 스크롤 */
.tbl table.audit{min-width:1500px;table-layout:fixed}
.tbl table.audit col.a-ts{width:170px}.tbl table.audit col.a-user{width:110px}.tbl table.audit col.a-act{width:150px}.tbl table.audit col.a-tgt{width:220px}
.tbl table.audit td{word-break:break-all}
.tbl table.audit td:nth-child(4){word-break:keep-all;overflow-wrap:anywhere}
/* 기관 상태: 최근 회차 점, 날짜 기준 안내 */
.sdate input{width:190px;height:40px;border-radius:var(--radius-10,10px)}
.asof{margin:0 0 var(--spacing-16);padding:12px 16px;border-radius:12px;background:rgba(var(--accent-rgb),.06);color:var(--text);font-size:var(--typography-label1-fontSize)}
.asof a{margin-left:8px;font-weight:600}
td.dots{white-space:nowrap}
.dot{display:inline-block;width:12px;height:12px;margin-right:4px;border-radius:50%;vertical-align:middle;background:rgba(112,115,124,.18);transition:transform .1s}
.dot:hover{transform:scale(1.35);text-decoration:none}
.dot.ok{background:#16a34a}.dot.warn{background:#f5a524}.dot.bad{background:#e5484d}.dot.manual{background:#9aa0aa}
.dot.none{background:none;box-shadow:inset 0 0 0 1.5px rgba(112,115,124,.35)}
/* 설정: 카톡 받을 사람 */
.krs{display:flex;flex-direction:column;border:1px solid var(--line-soft);border-radius:12px;margin-top:8px}
.kr{display:flex;align-items:center;gap:12px;padding:12px 14px}.kr+.kr{border-top:1px solid var(--line-soft)}
.kr-n{flex:1;min-width:0}.ibtn-sp{display:inline-block;width:36px}
.kact{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.kmsg{margin-top:12px;padding:10px 14px;border-radius:10px;background:rgba(var(--accent-rgb),.08);color:var(--accent);font-weight:600;font-size:var(--typography-label1-fontSize)}
.fdlg .dsub{margin:-4px 0 var(--spacing-10);color:var(--muted);font-size:var(--typography-label2-fontSize)}
.fdlg h5.dgrp{margin:var(--spacing-12) 0 var(--spacing-8);font-size:var(--typography-label2-fontSize);font-weight:600;color:var(--text2)}
.fdlg h5.dgrp:first-of-type{margin-top:0}
.fdlg .opt small{margin-left:4px;font-weight:400}
/* 키워드 그룹 */
.kgbar{display:flex;flex-wrap:wrap;gap:var(--spacing-8);margin:0 0 var(--spacing-12)}
.kgbar:empty{display:none}
button.kgc{height:34px;padding:0 var(--spacing-14,14px);border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text2);font-size:var(--typography-label1-fontSize);font-weight:500;cursor:pointer}
button.kgc span{margin-left:2px;color:var(--muted);font-weight:400}
button.kgc:hover{background:rgba(var(--neutral-rgb),.04)}
button.kgc.on{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.06);font-weight:600}
button.kgc.on span{color:var(--accent)}
button.kgc.add{border-style:dashed;color:var(--muted)}
table.kwt input.grp{color:var(--text2)}
.gman .gm-list{gap:var(--spacing-8)}
.gman .gm-name{display:flex;gap:var(--spacing-8);align-items:center;margin-bottom:var(--spacing-16)}
.gman .gm-name input{flex:1}
.gman .df{grid-template-columns:1fr auto;align-items:center}.gman .df button{padding:0 var(--spacing-32)}
.gman{width:min(640px,calc(100vw - 32px))!important;max-height:calc(100vh - 48px);overflow:auto}
table.runs tr.grp th{border-bottom:1px solid var(--line-soft);padding-bottom:6px}
table.runs th.grp{text-align:center;color:var(--text)}
table.runs th.grp .sub{margin-left:4px}
table.runs .gl{border-left:1px solid var(--line-soft)}
/* 실행 상세 */
.rsum{margin-bottom:0}
.rsum-h{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--spacing-16);flex-wrap:wrap;margin-bottom:var(--spacing-16)}
.rsum-n{font-size:var(--typography-title2-fontSize);line-height:1.2;font-weight:700;font-variant-numeric:tabular-nums}
.rsum-n span{font-size:var(--typography-headline2-fontSize);font-weight:500;color:var(--muted);margin-left:4px}
.rsum-it{text-align:right}
.sbar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:rgba(var(--neutral-rgb),.06);margin:var(--spacing-12) 0 var(--spacing-10)}
.sbar span{display:block;height:100%}
.s-col{background:var(--ok)}.s-man{background:var(--warn)}.s-no{background:rgba(var(--neutral-rgb),.22)}
.slegend{list-style:none;margin:0;padding:0;display:flex;gap:var(--spacing-16);flex-wrap:wrap;font-size:var(--typography-label1-fontSize);color:var(--text2)}
.slegend li{display:flex;align-items:center;gap:6px}
.slegend i{display:inline-block;width:10px;height:10px;border-radius:3px}
.slegend b{color:var(--text);font-variant-numeric:tabular-nums}
.rcard dl.kv{display:grid;grid-template-columns:88px 1fr;gap:var(--spacing-8) var(--spacing-12);margin:0 0 var(--spacing-4)}
.rcard dl.kv dt{color:var(--muted);font-size:var(--typography-label1-fontSize)}.rcard dl.kv dd{margin:0}
h4.sub-h{margin:var(--spacing-16) 0 var(--spacing-4);font-size:var(--typography-label1-fontSize);color:var(--text2);font-weight:600}
.rcard h3.ch+h4.sub-h{margin-top:var(--spacing-4)}
.rcard .ch{padding-bottom:var(--spacing-14,14px);margin-bottom:var(--spacing-16)}
table.runs th.num,table.runs td.num{text-align:left}
.ck-when{margin:4px 0 0}
ul.ck-ex li{display:flex;justify-content:space-between;gap:var(--spacing-12)}
/* 입찰 관리 */
.bst-0{color:var(--text2);background:rgba(var(--neutral-rgb),.08)}
.bst-1{color:var(--accent);background:rgba(var(--accent-rgb),.1)}
.bst-2{color:var(--warn);background:rgba(var(--warn-rgb),.1)}
.bst-3{color:var(--ok);background:rgba(var(--ok-rgb),.12)}
.bst-4{color:var(--bad);background:rgba(var(--bad-rgb),.08)}
.bst-5,.bst-6{color:var(--muted);background:rgba(var(--neutral-rgb),.06)}
.bsum{margin:var(--spacing-16) 0 var(--spacing-8)}
.bwhy{margin:0 0 var(--spacing-12)}
table.bids{min-width:880px}
.bidf .card{padding:var(--spacing-24)}
.bidf .kv{margin-bottom:var(--spacing-16)}
.dlrow{display:flex;gap:8px}.dlrow input:first-child{flex:1.4}.dlrow input:last-child{flex:1;min-width:0}
.unit.wide input{width:100%!important;flex:1!important}
.vform .unit.wide input{width:100%!important;flex:1!important}
.stseg{display:flex;flex-wrap:wrap;gap:8px}
.stopt input{position:absolute;opacity:0;width:1px;height:1px}
.stopt span{display:inline-flex;align-items:center;height:40px;padding:0 var(--spacing-16);border-radius:var(--radius-10);border:1px solid var(--line);background:var(--card)!important;color:var(--text2)!important;font-weight:500;cursor:pointer}
.stopt input:checked+span{border-color:currentColor;font-weight:700}
.stopt input:checked+span.bst-0{color:var(--text)!important;background:rgba(var(--neutral-rgb),.08)!important}
.stopt input:checked+span.bst-1{color:var(--accent)!important;background:rgba(var(--accent-rgb),.08)!important}
.stopt input:checked+span.bst-2{color:var(--warn)!important;background:rgba(var(--warn-rgb),.08)!important}
.stopt input:checked+span.bst-3{color:var(--ok)!important;background:rgba(var(--ok-rgb),.1)!important}
.stopt input:checked+span.bst-4{color:var(--bad)!important;background:rgba(var(--bad-rgb),.06)!important}
.stopt input:checked+span.bst-5,.stopt input:checked+span.bst-6{color:var(--text)!important;background:rgba(var(--neutral-rgb),.08)!important}
.stopt input:focus-visible+span{box-shadow:0 0 0 3px var(--semantic-line-brand-focus)}
.sthelp{margin:var(--spacing-10) 0 0}
.bidf [data-show="불참"]{margin-top:var(--spacing-16)}
.opts.rs{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.opts.rs .opt input{position:absolute;opacity:0;width:1px;height:1px}
.opts.rs .opt span{display:inline-flex;align-items:center;height:38px;padding:0 var(--spacing-14,14px);border:1px solid var(--line);border-radius:var(--radius-10);cursor:pointer;font-weight:500}
.opts.rs .opt input:checked+span{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.06);font-weight:600}
.bidact{display:flex;align-items:center;gap:8px;margin:var(--spacing-8) 0 var(--spacing-24)}.bidact span{flex:1}
.bhist{list-style:none;margin:0;padding:0}.bhist li{display:flex;gap:var(--spacing-16);padding:8px 0;border-bottom:1px solid var(--line-soft)}.bhist li:last-child{border-bottom:none}
.bidbar{margin:-4px 0 var(--spacing-16)}
a.bidchip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--radius-12);background:var(--card);color:var(--text);font-weight:600}
a.bidchip:hover{text-decoration:none;background:rgba(var(--neutral-rgb),.04)}
/* 입찰 관리 간격 */
.bsum{margin:var(--spacing-20) 0 var(--spacing-12)}
.bwhy{margin:0 0 var(--spacing-20)}
.bsum+form.bfilt{margin-top:var(--spacing-20)}
form.bfilt{margin-bottom:var(--spacing-12)}
.filters.bchips{display:flex;flex-wrap:wrap;gap:var(--spacing-8);margin:0 0 var(--spacing-24)}
.bidf .card{display:flex;flex-direction:column;gap:var(--spacing-16);margin-bottom:var(--spacing-16)}
.bidf .card>h2.sh{margin:0}
.bidf .card .kv{margin:0}
.bidf .card .sthelp{margin:calc(-1 * var(--spacing-8)) 0 0}
.bidf [data-show="불참"]{margin-top:0}
.bidf .card>label>span:first-child,.bidf .two>label>span:first-child,.bidf [data-show]>label>span:first-child{display:block;margin-bottom:6px}
.bidact{margin:var(--spacing-8) 0 var(--spacing-32)}
.bidf [hidden]{display:none!important}
.bidbar{margin:var(--spacing-4) 0 var(--spacing-16)}
.filters.bchips:has(+.bsub){margin-bottom:var(--spacing-12)}
.bsub{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 var(--spacing-24);padding-left:2px}
a.schip{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 var(--spacing-12);border-radius:999px;background:rgba(var(--neutral-rgb),.06);color:var(--text2);font-size:var(--typography-label1-fontSize);font-weight:500}
a.schip:hover{text-decoration:none;background:rgba(var(--neutral-rgb),.1)}
a.schip .cnt{color:var(--muted)}
a.schip.on{background:var(--text);color:var(--card);font-weight:600}a.schip.on .cnt{color:inherit;opacity:.7}
/* 기관상태: 게시판 바로가기 */
a.gobtn{height:32px;padding:0 12px;gap:4px;font-size:13px;white-space:nowrap}
a.gobtn svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tbl table.sites th .thc{display:flex;align-items:center;gap:2px;min-width:0}
.opt .oc{font-style:normal;margin-left:6px;color:var(--muted);font-weight:500}
.opt input:checked+span .oc{color:inherit;opacity:.75}
.tbl table.bids th.chk,.tbl table.bids td.chk{padding-left:16px;padding-right:0}
.bhist li{align-items:center}.bhist .hsp{flex:1}.bhist form.stdel{margin:0}
.dline{margin:-4px 0 var(--spacing-16)}.dline .badge{margin-left:4px}
.dcards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--spacing-12)}
.dcard{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:var(--spacing-4);background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius-16);padding:var(--spacing-20);transition:border-color .15s,box-shadow .15s}
.dcard:hover{border-color:rgba(var(--accent-rgb),.35)}
.dcard:focus-visible{box-shadow:0 0 0 3px var(--semantic-line-brand-focus)}
.dcard .n{font-size:var(--typography-title2-fontSize);line-height:var(--typography-title2-lineHeight);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
.dcard .l{color:var(--muted);font-size:var(--typography-label2-fontSize);font-weight:500}
.dcard.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:rgba(var(--accent-rgb),.04)}
.dcard.on .n,.dcard.on .l{color:var(--accent)}
.dpanel[hidden]{display:none}.dmore{text-align:center;margin:var(--spacing-12) 0 0}
.tbl table.dtbl{table-layout:fixed;width:100%}.tbl table.dtbl .c-bm{width:44px}.tbl table.dtbl .c-src{width:88px}.tbl table.dtbl .c-org{width:190px}.tbl table.dtbl .c-dt{width:104px}
.tbl table.dtbl td.org{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:900px){.dcards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tbl table.dtbl{min-width:0}
@media (max-width:560px){.dcards{grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--spacing-8)}.dcard{grid-column:span 2;padding:var(--spacing-12) var(--spacing-12)}
 .dcard:nth-child(-n+2){grid-column:span 3}.dcard .n{font-size:var(--typography-heading1-fontSize,22px)}.dcard .l{font-size:12px;line-height:1.3}
 .tbl table.dtbl .c-src,.tbl table.dtbl .c-org{display:none}.tbl table.dtbl .c-bm{width:36px}.tbl table.dtbl .c-dt{width:88px}}
.tbl table.bids td.bdelc{padding-left:0;padding-right:12px;text-align:right}
.shrow{display:flex;align-items:center;justify-content:space-between;gap:8px}.shrow .sh{margin:0}
.rlist{list-style:none;margin:0 0 var(--spacing-16);padding:0;position:relative}
.rlist .rcard{position:relative;margin:0 0 var(--spacing-12) 22px}
.rlist .rcard:before{content:"";position:absolute;left:-14px;top:0;bottom:calc(-1 * var(--spacing-12));border-left:2px solid var(--line-soft)}
.rlist .rcard:last-child:before{bottom:50%}
.rhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rhead .hsp{flex:1}.rhead form{margin:0}
.rno{position:absolute;left:-24px;top:var(--spacing-20);width:22px;height:22px;border-radius:50%;background:var(--card);border:2px solid var(--accent);color:var(--accent);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.rview{margin-top:var(--spacing-12)}.rview .kv{margin:0}.rmemo{white-space:pre-wrap;margin:var(--spacing-8) 0 0;line-height:1.6}
.redf{margin-top:var(--spacing-12)}.redf[hidden],.rview[hidden],.redit[hidden]{display:none}
.rnew{border-style:dashed}
.vform .fgrp{display:flex;flex-direction:column;gap:var(--spacing-16);margin:0}
.vform .fgrp[hidden]{display:none}
.rnew .bidact,.redf .bidact{margin:0}
.rcard{padding:var(--spacing-20) var(--spacing-24)}
.rlist{margin-top:var(--spacing-12)}
.bidh#steps{margin-top:var(--spacing-32)}
.biddelrow{margin-top:var(--spacing-40,40px)!important;padding-top:var(--spacing-24);border-top:1px solid var(--line-soft)}
.ksteps{margin:0 0 var(--spacing-20);padding-left:20px;display:flex;flex-direction:column;gap:var(--spacing-12)}.ksteps li{line-height:1.6}
.kform{display:flex;gap:var(--spacing-12);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--spacing-12)}
.kform label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:var(--typography-label1-fontSize);color:var(--text2);flex:1;min-width:200px;max-width:320px}
.kbtn{display:inline-flex;align-items:center;gap:8px;background:#FEE500;color:#191919;border:none;font-weight:700}
.kbtn svg{fill:#191919;stroke:none}.kbtn:hover{filter:brightness(.96)}
.lkrow{display:flex;gap:8px}.lkrow input{flex:1;min-width:0}.lkrow button{flex:none;height:44px}
.tbl td.rno{color:var(--muted);font-size:var(--typography-label2-fontSize);font-variant-numeric:tabular-nums;white-space:nowrap;width:56px}
.tbl th.rno{width:56px;white-space:nowrap}
.tbl table.list col.c-no{width:60px}.tbl table.list{min-width:1510px}.tbl table.list.has-blk{min-width:1770px}.tbl table.list.has-chk{min-width:1554px}
.tbl table.dtbl .c-no{width:52px}
@media (max-width:560px){.tbl table.dtbl .c-no{display:none}}
