/* JSU LabTools C3 presentation layer. No data/algorithm/clipboard styling logic. */
.detection-tool{font:14px/1.55 var(--font);color:var(--ink);background:#fff}
.detection-header{padding:0;border:0}
.detection-header .masthead{padding:23px 34px 22px}
.portal-return{font-size:13px;text-decoration:none;white-space:nowrap}
.portal-return:hover{text-decoration:underline}
.tool-intro{max-width:1220px;margin:auto;padding:25px 34px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.tool-intro h1{font-size:25px;letter-spacing:-.75px;font-weight:600;margin:0}
.tool-intro .heading-note{font-size:13px;margin:5px 0 0;color:var(--muted)}
.tool-meta{text-align:right;flex:0 0 auto;font-size:11px;color:var(--muted)}
.theme-label{display:block;margin-bottom:7px;color:#52677e}
.source-release{display:flex;gap:7px;align-items:center;justify-content:flex-end}
.source-release .badge{font-size:11px;padding:3px 7px;border-radius:4px;background:#f2f6f8;color:#4a6671}
#project-files{max-width:1220px;margin:auto;padding:15px 34px 20px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}
#project-files .actions{margin:0;flex:0 0 auto}
#project-status{font-size:12px;line-height:1.6;margin:0;max-width:650px;color:var(--muted);text-align:right}
.detection-main{max-width:1220px;padding:21px 34px 0}
.detection-main p{color:var(--muted)}
.scope-note{border-left:2px solid #c9d5e1;padding-left:11px;margin-bottom:16px}
.scope-note p{font-size:12px;line-height:1.7;margin:0}
.analysis-navigation{display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid #ccd5df;margin-bottom:12px}
.analysis-tabs{margin:0;gap:5px;flex-wrap:wrap}
.detection-tool .analysis-tabs button{background:transparent;border:0;border-radius:0;border-bottom:2px solid transparent;min-height:43px;padding:10px 14px;font-size:14px;font-weight:500;color:var(--muted)}
.detection-tool .analysis-tabs button[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;background:#f7f9fb}
.detection-tool .analysis-tabs button:hover{background:#f2f6fa;color:var(--accent)}
.view-links{display:flex;gap:15px;flex:0 0 auto;padding:0 4px;font-size:12px}
.view-links a{text-decoration:none}
.view-links a:hover{text-decoration:underline}
.usage-guide{margin:0 0 12px;padding:0;border:0;font-size:12px;color:var(--muted)}
.usage-guide summary{padding:4px 0}
.notice{margin:8px 0 0;background:#f7f9fb;border-left:2px solid #c9d5e1;font-size:12px;line-height:1.75;color:var(--muted)}
.detection-main .file-panel{border:1px solid var(--line);border-radius:6px;padding:13px 16px;margin:0 0 22px;background:#fcfdff}
.file-panel>summary{font-size:13px;font-weight:600;color:var(--accent)}
.file-panel p{font-size:12px;line-height:1.7;margin:10px 0}
.file-panel details{margin-top:14px;padding-top:13px}
.detection-main .grid{gap:26px}
.detection-main .card{border-color:var(--line);border-radius:6px;padding:22px}
.detection-main .file-panel{padding:13px 16px}
.detection-main h2{font-size:18px;line-height:1.5;font-weight:600;letter-spacing:-.35px}
.detection-main h3{font-size:15px;font-weight:600}
.detection-main .hint{font-size:12px;line-height:1.7}
.detection-tool button,.detection-tool input,.detection-tool textarea,.detection-tool select{font-family:var(--font);color:var(--ink);border-color:#bdc9d5;border-radius:5px}
.detection-tool button{font-size:13px;line-height:1.5;min-height:38px;padding:8px 12px;background:#fff}
.detection-tool button:hover:not(:disabled){background:#f0f5f9;border-color:#9bb0c4}
.detection-tool button:disabled{background:#f3f5f7;color:#75808d;border-color:#dce2e8}
.detection-tool button:focus-visible,.detection-tool input:focus-visible,.detection-tool textarea:focus-visible,.detection-tool select:focus-visible,.detection-tool summary:focus-visible{outline:3px solid #397aaf;outline-offset:3px}
.detection-tool input:not([type=file]),.detection-tool select{min-height:38px;font-size:13px;line-height:1.55;padding:8px 10px}
.detection-tool input[type=file]{font-size:13px;padding:8px;background:#fff}
.detection-tool textarea{font-size:13px;line-height:1.7;padding:10px;min-height:150px}
.detection-tool label{font-size:13px;line-height:1.6}
.detection-tool label input,.detection-tool label textarea{margin-top:6px}
/* Share title/input/issue rows so validation text cannot move neighbouring controls. */
.detection-tool .settings{display:grid;grid-template-columns:repeat(2,minmax(0,380px)) max-content;column-gap:16px;row-gap:0;align-items:start;margin:18px 0}
.detection-tool .settings>label{display:grid;grid-template-rows:subgrid;grid-row:1 / span 3;min-width:0;max-width:380px}
.detection-tool .settings>.unit-convert{grid-column:3;grid-row:2;align-self:start;margin-top:6px}
.detection-tool .actions{gap:8px}
.detection-tool #lod-run,.detection-tool #confirmation-run,.detection-tool #lob-run,.detection-tool #loq-run{background:#eef3f8;border-color:#c9d5e1;color:var(--accent);font-weight:600}
.detection-tool #lod-run:hover:not(:disabled),.detection-tool #confirmation-run:hover:not(:disabled),.detection-tool #lob-run:hover:not(:disabled),.detection-tool #loq-run:hover:not(:disabled){background:#dfe9f2;border-color:#9bb0c4;color:#203c58}
.detection-tool #lod-run:disabled,.detection-tool #confirmation-run:disabled,.detection-tool #lob-run:disabled,.detection-tool #loq-run:disabled{background:#f3f5f7;color:#75808d;border-color:#dce2e8}
.detection-tool .actions p{font-size:12px}
.detection-tool .context{font-size:12px}
.detection-tool table{font-size:13px;line-height:1.6}
.detection-tool thead th,.detection-tool thead th:last-child{font-size:12px;text-align:left;padding:10px 8px;font-weight:600;background:#f5f8fb;border-bottom:1px solid #ccd5df;color:#53667c}
.detection-tool thead th+th{border-left:0}
.detection-tool tbody td{padding:7px 5px;font-size:13px}
.detection-tool #loq-summary{font-size:13px}
.detection-tool #loq-summary th{font-size:12px;padding:10px 8px}
.detection-tool #loq-summary td{padding:10px 8px}
.detection-tool aside.card{border-top:2px solid #94a9be!important}
.detection-tool aside td{padding:10px 9px;line-height:1.7}
.detection-tool aside h2{margin-bottom:16px}
.detection-tool aside tbody tr:nth-child(even){background:#f8fafc}
.detection-tool .sample{background:#f8fafc;border-radius:5px;border:1px solid #e6ebf0;padding:16px}
.detection-tool .empty{border-style:solid;background:#fafcfd;border-color:#e1e7ee;font-size:13px}
.detection-tool .analysis-footer{display:block;max-width:none;padding:0;margin:24px 0 0;font-size:12px;color:var(--muted)}
.detection-tool dialog{font:14px/1.6 var(--font);border-color:#cad3de;border-radius:8px;color:var(--ink)}
.detection-tool dialog h2{font-size:20px}
.detection-tool dialog::backdrop{background:#1c304c55}
#panels,#analysis-results{scroll-margin-top:64px}
.detection-tool .data-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 10px}
.data-toolbar h3{margin:0 auto 0 0}.input-count,.value-count{font-variant-numeric:tabular-nums;font-size:13px!important;margin:6px 0!important}
.detection-tool textarea,.input-preview-table td{font-family:Consolas,'Malgun Gothic',monospace;font-variant-numeric:tabular-nums}
.detection-tool input:not([type=file]),.detection-tool textarea,.detection-tool label{font-size:14px}
.detection-tool .hint,.input-support{font-size:13px;line-height:1.8;white-space:pre-line}
.detection-tool .row-number{width:52px;min-width:52px;text-align:center;color:#53667c}
/* Body row numbers must not inherit the portal's spacious header cells. */
.detection-tool #lod>.scroll tbody th.row-number,.detection-tool #confirmation>.scroll tbody th.row-number{padding:4px 6px;vertical-align:middle;font-weight:400;background:#f8fafc;border-bottom:1px solid var(--line)}
.detection-tool #lod>.scroll tbody td,.detection-tool #confirmation>.scroll tbody td{padding:4px 5px;vertical-align:top}
.detection-tool #lod>.scroll tbody input,.detection-tool #confirmation>.scroll tbody input{min-height:34px;padding:5px 8px;line-height:1.4;font-size:14px}
.detection-tool [aria-invalid=true]{border:1px solid #a53232;box-shadow:inset 0 0 0 1px #a53232;background:#fff8f8}
.field-issue{display:block;color:#9d2828;font-size:13px;line-height:1.6;margin:5px 0}
.input-issues{margin:14px 0;border-left:3px solid #ad3737;background:#fff8f8;padding:12px 16px;color:#852727}
.input-issues ul{margin:7px 0 0;padding-left:22px}.input-support{border-left:2px solid #b6c8d9;padding:6px 12px;background:#f8fafc}
.sample-toolbar{display:flex;align-items:center;gap:8px}.sample-toolbar h3{margin:0 auto 0 0}
.sample-summary{font-size:13px;margin:7px 0!important;overflow-wrap:anywhere}
.sample-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sample-paste{margin:7px 0 0}
.sample-body details{margin-top:12px;padding-top:10px}.sample-body .value-count{margin-bottom:8px!important}
.input-preview-table{max-height:330px;overflow:auto;margin:12px 0}.input-preview-table th{position:sticky;top:0}
.input-preview-table td{white-space:pre-wrap;overflow-wrap:anywhere}.input-detail-check{font-size:13px}
.input-detail-check button{margin-top:12px}
.detection-header .masthead{padding-top:16px;padding-bottom:16px}.tool-intro{padding-top:16px}
#project-files{padding-top:10px;padding-bottom:12px}.detection-main{padding-top:14px}
.scope-note{margin-bottom:10px}.detection-main .file-panel{margin-bottom:14px}
.detection-main .settings{margin:14px 0}.detection-main .card>p{margin:7px 0}
@media(max-width:900px){.sample-fields{grid-template-columns:1fr}.data-toolbar h3{flex-basis:100%}}
@media(max-width:700px){.detection-tool .settings{grid-template-columns:minmax(0,380px);row-gap:12px}.detection-tool .settings>label{display:block;grid-row:auto;width:100%}.detection-tool .settings>.unit-convert{grid-column:1;grid-row:auto;justify-self:start;margin-top:0}}
@media(min-width:1700px){.detection-header .masthead,.tool-intro,#project-files,.detection-main{max-width:1340px}}
@media(max-width:1100px){.detection-header .masthead,.tool-intro,#project-files,.detection-main{padding-left:26px;padding-right:26px}.tool-intro{gap:16px}.tool-meta{max-width:280px}.source-release{flex-wrap:wrap}#project-status{max-width:520px}}
/* Desktop browser enlargement: keep navigation reachable without clipping. */
@media(max-width:900px){.tool-intro{flex-direction:column;gap:12px}.tool-meta{text-align:left}.source-release{justify-content:flex-start}#project-files{align-items:flex-start;flex-direction:column;gap:10px}#project-status{text-align:left;max-width:none}.analysis-navigation{align-items:flex-start;flex-direction:column;gap:5px;padding-bottom:8px}.view-links{padding-left:14px}.detection-main .card{padding:18px}.detection-main .file-panel{padding:13px 16px}}
