/* 검색 · Control · 이슈 (search-ui): graph-search.js, controls-console.js, issues-console.js. */
/* The Portal's inputs fill their row; inside these toolbars and editor rows they take their own width. */
:is(.su-bar,.su-purpose,.su-search .inv-toolbar,.su-controls .inv-toolbar,.su-issues .inv-toolbar,.su-trend .inv-toolbar,.su-rules .inv-toolbar,.su-group-head,.su-leaf,.su-step,.su-inline,.su-free,.toolbar-row) :is(select,input:not([type=checkbox]):not([type=radio])){width:auto;margin-top:0;padding:6px 8px}
:is(.su-check,.su-not,.su-count) input{width:auto;margin:0}
.su-query{background:var(--ds-surface);border:1px solid var(--line);border-radius:8px;padding:12px;margin:0 0 12px}
.su-root{border-left:0;padding-left:0}
.su-steps{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}
.su-hop{color:var(--muted);padding:0 4px;align-self:center}
.su-error{color:var(--ds-danger-text);font-size:var(--ds-fs-sm);margin:4px 0}
.su-reason{display:inline-block;font-size:var(--ds-fs-sm);background:var(--ds-unknown-soft);color:var(--ds-unknown-text);border-radius:4px;padding:2px 6px;margin:1px 2px}
.su-node{white-space:nowrap;font-size:var(--ds-fs-sm)}
.su-node code{font-size:var(--ds-fs-sm)}
.su-witness{font-size:var(--ds-fs-sm);margin:2px 0;display:flex;flex-wrap:wrap;gap:2px;align-items:center}
.su-pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin:10px 0;font-size:var(--ds-fs-xs);color:var(--muted)}
.su-panel{background:var(--ds-surface);border:1px solid var(--line);border-radius:8px;padding:14px;margin:0 0 12px}
.su-preview-list{list-style:none;padding:0;margin:6px 0;font-size:var(--ds-fs-sm);columns:2}
.su-preview-list li{margin:2px 0;break-inside:avoid}
.su-detail h4,.su-issue h4,.su-panel h4{font-size:var(--ds-fs-xs);margin:12px 0 6px}
.link-button{background:transparent;color:var(--ds-accent-text);padding:0;font-weight:600;font-size:inherit;text-align:left;text-decoration:underline;text-underline-offset:2px}
@media(max-width:900px){.su-preview-list{columns:1}}
@media(max-width:600px){.su-steps{flex-direction:column}.su-hop{transform:rotate(90deg)}}
.su-node-name{font-weight:600}
.su-context{display:block;color:var(--muted);font-size:var(--ds-fs-xs);margin-top:2px}
.su-person button{margin-left:6px}
/* 찾기 (graph-search.js), 10-06 review (P2-12). Sizes are the shared tokens: body text, table cells and a line's own
   words --ds-fs-sm, the small marks, labels and units beside them --ds-fs-xs. */
#agent-search-root :is(.su-check,.su-node,.su-node code,.su-witness,.su-cond,.su-reason,.su-error,.su-warn,.su-ok){font-size:var(--ds-fs-sm)}
#agent-search-root :is(.su-bar label,.su-purpose label,.su-form-grid label,.su-tabs button,.su-filters .su-facet summary,.su-panel h4){font-size:var(--ds-fs-xs)}
#agent-search-root [data-search-results] td{font-size:var(--ds-fs-sm)}
#agent-search-root .inventory-note{font-size:var(--ds-fs-xs)}
/* 관리 범위's device box (P2-14): the devices found, under the box while the focus is in its form. */
#agent-search-root .su-scope-list{display:none;position:absolute;top:100%;left:0;z-index:5;box-sizing:border-box;margin-top:4px;width:max-content;min-width:100%;max-width:min(440px,calc(100vw - 32px));max-height:320px;overflow:auto;padding:4px;background:var(--ds-surface);border:1px solid var(--ds-line-strong);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.14)}
#agent-search-root .su-scope-list button small{flex:none;color:var(--muted);font-size:var(--ds-fs-xs);font-weight:400}
/* The answer: how many, when, and the tabs' own numbers; the evaluation waits under 평가 상세. */
.su-eval{margin:6px 0}
.su-eval>summary{cursor:pointer;font-size:var(--ds-fs-xs);color:var(--muted)}
.su-eval[open]>summary{margin-bottom:4px}
@media(max-width:600px){#agent-search-root .su-scope-list{width:auto;right:0;max-width:none}}
/* The screen as it opens: what to do first, the searches kept and lately asked, the whole list one press away. */
#agent-search-root .su-start-list{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--ds-space-1) var(--ds-space-3)}
#agent-search-root .su-start-list h4{flex:0 0 100%;margin:0;color:var(--muted);font-size:var(--ds-fs-xs);font-weight:600}
#agent-search-root .su-start-list .text-action{padding:0;font-size:var(--ds-fs-sm);text-align:left}
/* A row's detail: the reasons under its state line, each a line of its own read from the left (the state line over
   them is portalUi.detail.status). */
#su-row-detail .detail-status{margin:var(--ds-space-2) 0 var(--ds-space-1)}
/* An agent's tools: the hooks among them are one line of their count, their events under its closed 기술 정보 (a
   plain list, not rows of the list they stand in). */
#su-row-detail .su-rd-list .detail-fold-list li{padding:0;border-bottom:0}
#su-row-detail .su-rd-list li[data-tied-hooks]{overflow-wrap:anywhere}
/* The exact models: under 모델 이름's values, how many more names the company holds (typed into the box); in a row's
   detail a model's line is its name with its bases, when the Gateway last ran it, and its search on a line of its own. */
#su-row-detail [data-detail-models] li{overflow-wrap:anywhere}
#su-row-detail [data-detail-models] li small{color:var(--ds-text-2)}
/* 연결된 것: a line a relation -- the relation in the catalog's word and whose it is, the count within the scope
   searched, then the company's open relations (each piece whole on its line, its dot at its own head); under them
   what each kind of thing named is, a line each. */
#su-row-detail .su-rd-rel-name,#su-row-detail .su-rd-rel-part{display:inline-block;margin-right:var(--ds-space-2)}
#su-row-detail .su-rd-rel-name{color:var(--ds-text)}
#su-row-detail [data-detail-models] .mono{color:var(--ds-text-2);font-size:var(--ds-fs-xs)}
/* 모델 이름's own read, and a row's 외 N beside its model: a press that opens the others' names under the first, a line each. */
#agent-search-root .su-row-model-names,#agent-search-root .su-row-model-names>span,#agent-search-root .su-row-model-names>small{display:block}
#agent-search-root .su-row-model-names{margin-top:2px;overflow-wrap:anywhere}
#agent-search-root .su-row-model-names>small,#agent-search-root .su-row-model-names [data-model-name="unknown"]{color:var(--ds-text-2);font-size:var(--ds-fs-xs)}
/* 찾기's results on a phone (600px and under; user review 4, 10-10): the table went on sideways past the target and
   the person, each row as high as its hidden cells. A row stands as a card: the name (and its 할 일 pick) on the first
   line with 상세 at its right, then the columns two a line, each under its head (data-label). The same cells, words and
   marks; columns hidden below a wall screen stay hidden (screens-agents.css, which loads after this sheet: hence the
   .table-wrap in each selector, and the root named twice where its column widths must give way). The head row stays,
   as one wrapped line of its sort buttons over the cards (정렬), so a phone still sorts the page. */
@media(max-width:600px){
  #agent-search-root .table-wrap>[data-search-results],#agent-search-root .table-wrap>[data-search-results]>tbody{display:block;min-width:0;width:100%}
  #agent-search-root .table-wrap>[data-search-results]>thead{display:block}
  #agent-search-root .table-wrap>[data-search-results]>thead>tr{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-1) var(--ds-space-3);padding:var(--ds-space-2) var(--ds-space-3);border-bottom:1px solid var(--ds-line)}
  #agent-search-root .table-wrap>[data-search-results]>thead>tr::before{content:"정렬";color:var(--ds-text-2);font-size:var(--ds-fs-xs)}
  #agent-search-root#agent-search-root .table-wrap>[data-search-results]>thead>tr>th{display:block;flex:none;width:auto;min-width:0;max-width:none;padding:0;border:0;background:none;overflow:visible;white-space:nowrap}
  #agent-search-root .table-wrap>[data-search-results]>thead>tr>th[data-col="detail"]{display:none}
  #agent-search-root .table-wrap>[data-search-results]>tbody>tr[data-testid="agent-search-row"]{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ds-space-2) var(--ds-space-3);padding:var(--ds-space-3);border-bottom:1px solid var(--ds-line)}
  #agent-search-root .table-wrap>[data-search-results]>tbody>tr[data-testid="agent-search-row"]>td{display:block;min-width:0;max-width:none;padding:0;border:0;white-space:normal}
  #agent-search-root .table-wrap>[data-search-results]>tbody>tr[data-testid="agent-search-row"]>td:first-child{grid-column:1 / -1;padding-right:64px}
  #agent-search-root .table-wrap>[data-search-results]>tbody>tr[data-testid="agent-search-row"]>td:is([data-col="reasons"],[data-col="conditions"],[data-col="evidence"]){grid-column:1 / -1}
  #agent-search-root .table-wrap>[data-search-results]>tbody>tr[data-testid="agent-search-row"]>td[data-col="detail"]{position:absolute;top:var(--ds-space-3);right:var(--ds-space-3)}
  #agent-search-root .table-wrap>[data-search-results]>tbody>tr[data-testid="agent-search-row"]>td[data-label]::before{content:attr(data-label);display:block;margin-bottom:2px;color:var(--ds-text-2);font-size:var(--ds-fs-xs);font-weight:500}
}
/* 포함 · 제외 by value (FB135): a value's box and, at the row's end, its own quiet 제외; pressed, the value is marked
   struck in the danger tone and its 제외 stands pressed, so a filter reads 포함 A and 제외 B at a glance. */
#agent-search-root .su-fv{display:flex;align-items:center;gap:4px;min-width:0}
#agent-search-root .su-fv>.lx-fc{flex:1;min-width:0}
#agent-search-root .su-fv-not{flex:none;padding:0 6px;border:1px solid transparent;border-radius:4px;background:none;color:var(--ds-text-3);font:inherit;font-size:var(--ds-fs-xs);line-height:20px;cursor:pointer}
#agent-search-root .su-fv-not:hover{color:var(--ds-danger-text)}
#agent-search-root .su-fv-not[aria-pressed="true"]{color:var(--ds-danger-text);background:var(--ds-danger-soft)}
@media (hover:hover){#agent-search-root .su-fv:not(:hover):not(:focus-within):not([data-value-not])>.su-fv-not{opacity:0}}
#agent-search-root .su-fv[data-value-not]>.lx-fc .lx-ell{color:var(--ds-danger-text);text-decoration:line-through}
/* A row's detail (UR30-20, 시안 v24): the next actions in one wrapping row under its 근거, 상세 화면 열기 first. */
#su-row-detail .rm1-rd-acts{flex-wrap:wrap;gap:var(--ds-space-2);margin:var(--ds-space-2) 0}
/* Beside the rail under 1440px the result head's count is an h2.lx-lede (redesign-rm1.css's rule names .lx-lbl): it
   keeps the first line whole, and the views, CSV and the two writes share the second (PC eye 10-13; CSV, 84ce087b2). */
@media (max-width:1439px){
  @container rm1-page (min-width:560px) and (max-width:839px){
    #agent-search-root .rm1-summary>.rm1-reshead>.lx-lede{flex:1 0 100%}
  }
}
