.login-card{max-width:420px;margin:60px auto;background:#fff;border:1px solid var(--line);padding:28px 30px}
.login-card h1{font-size:20px;margin:6px 0 20px}
.login-card label{display:block;font-size:12px;color:var(--muted);margin-bottom:16px}
.login-card input{display:block;width:100%;border:1px solid var(--line);padding:12px;margin-top:7px;font:14px 'DM Sans';color:var(--ink)}
.login-message{margin-top:16px;font-size:13px}
.login-message.success{color:var(--green)}
.login-message.error{color:var(--coral)}

.admin-search{margin-top:22px}
.admin-search h2{font-size:19px;margin:6px 0 0}
.admin-search-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}
.admin-search-hit{cursor:pointer}
#admin-search-results{margin-top:20px}

.link-button.admin-back,#back-to-search{display:block;margin:22px 0 18px}
.admin-edit-card{background:#fff;border:1px solid var(--line);padding:28px 30px;display:flex;flex-direction:column;gap:22px}
.admin-edit-card[hidden]{display:none}
.admin-edit-card h2{font-size:22px;margin:6px 0 0}

.admin-labels{padding-bottom:20px;border-bottom:1px solid var(--line)}
.chip small{opacity:.75;font-size:10px}
.admin-label-add{display:flex;gap:10px;margin-top:14px}
.admin-label-add select{border:1px solid var(--line);padding:10px 12px;font:13px 'DM Sans';color:var(--ink);background:#fff}

.admin-form{display:grid;gap:0}
.admin-form label{margin:0 0 16px}
.admin-form input,.admin-form textarea{display:block;width:100%;border:1px solid var(--line);padding:12px;margin-top:7px;font:14px 'DM Sans';color:var(--ink);font-family:inherit}
.admin-form textarea{resize:vertical}
.admin-form-actions{display:flex;align-items:center;gap:14px;margin-top:4px}
.save-status{font-size:13px;color:var(--muted)}
.save-status.success{color:var(--green)}
.save-status.error{color:var(--coral)}

.admin-machines-card{margin-top:22px}
.admin-machines-head{display:flex;justify-content:space-between;align-items:center}
.admin-machines-head h2{font-size:19px;margin:6px 0 0}
.admin-machine-list{display:grid;gap:14px;margin-top:18px}
.admin-machine-card{border:1px solid var(--line);padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.admin-machine-card.inactive{opacity:.55}
.admin-machine-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.admin-machine-head h3{margin:0 0 4px;font-size:15px}
.admin-machine-actions{display:flex;gap:12px;flex-shrink:0}
.admin-remove:hover{color:var(--coral)}
.parameter-badge button{border:0;background:transparent;color:var(--muted);font-size:14px;line-height:1;cursor:pointer;padding:0 0 0 2px}
.parameter-badge button:hover{color:var(--coral)}
.admin-add-parameter{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-add-parameter select,.admin-add-parameter input{border:1px solid var(--line);padding:9px 10px;font:13px 'DM Sans';color:var(--ink);background:#fff}
.admin-add-parameter input{width:120px}

.admin-machines-actions{display:flex;align-items:center;gap:16px}

.parser-source-type{display:flex;gap:22px;margin:14px 0 20px;font-size:13px}
.parser-source-type label{display:flex;align-items:center;gap:6px;color:var(--ink)}
.parser-include{display:flex;align-items:center;gap:8px;font-size:13px;margin:0 0 6px}
.parser-machine-card{margin-top:16px;gap:14px}
.parser-machine-card .admin-form{grid-template-columns:minmax(0,2fr) minmax(0,2fr) minmax(0,1.5fr) minmax(90px,1fr);gap:10px 14px}
.parser-machine-card .admin-form label{min-width:0;margin:0}
.parser-machine-card .admin-form label:last-child{grid-column:1/-1}
.parser-machine-card .admin-form input,.parser-machine-card .admin-form textarea{min-width:0;box-sizing:border-box;padding:8px 10px;margin-top:4px}
.parser-machine-card .filter-hint{margin:0}
@media(max-width:600px){
  .parser-machine-card{padding:18px 16px}
  .parser-machine-card .admin-form{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.parser-parameters{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.parser-parameter-row{display:flex;align-items:center;gap:10px;font-size:13px}
.parser-parameter-row span{flex:0 0 220px;color:var(--muted)}
.parser-parameter-row input{border:1px solid var(--line);padding:8px 10px;font:13px 'DM Sans';flex:1;max-width:200px}
.parser-parameter-row button{border:0;background:transparent;color:var(--muted);font-size:16px;cursor:pointer}
.parser-parameter-row button:hover{color:var(--coral)}
.parser-add-parameter select{min-width:0;max-width:100%;flex:1 1 220px}
#new-company-review .parser-parameter-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(70px,140px) auto}
#new-company-review .parser-parameter-row span{overflow-wrap:anywhere}
#new-company-review .parser-parameter-row input{min-width:0;width:100%;box-sizing:border-box}

.admin-invite-row{display:flex;align-items:center;gap:10px;margin-top:14px}
.admin-invite-row input{border:1px solid var(--line);padding:10px 12px;font:13px 'DM Sans';color:var(--ink);flex:1;max-width:280px}

.machine-category-row{display:flex;gap:10px;margin-top:8px}
.machine-category-row select{flex:1;border:1px solid var(--line);padding:11px;font:14px 'DM Sans';color:var(--ink);background:#fff}
form textarea{display:block;width:100%;border:1px solid var(--line);padding:12px;margin-top:7px;font:14px 'DM Sans';color:var(--ink);font-family:inherit;resize:vertical}
.legacy-tags-list{margin:6px 0 0;padding-left:18px}

.category-tree{display:flex;flex-direction:column;gap:2px}
.category-tree-node summary{cursor:pointer;padding:10px 12px;background:#f4f6f1;border:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;font-weight:600}
.category-tree-node summary::-webkit-details-marker{display:none}
.category-tree-children{padding:8px 0 8px 22px;display:flex;flex-direction:column;gap:6px}
.category-tree-subcategory summary{background:#fff;font-weight:500}
.category-tree-tags{list-style:none;margin:6px 0 6px 22px;padding:0;display:flex;flex-direction:column;gap:4px}
.category-tree-tag{display:flex;justify-content:space-between;gap:12px;padding:6px 10px;font-size:13px;color:var(--ink);border-bottom:1px solid #eef1ea}
.category-tree-counts{color:var(--muted);font:12px 'Space Mono';white-space:nowrap}
.parser-progress{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--ink)}
.parser-progress progress{width:100%;height:8px;appearance:none;border:0;background:var(--line)}
.parser-progress progress::-webkit-progress-bar{background:var(--line)}
.parser-progress progress::-webkit-progress-value{background:var(--green);transition:width .4s ease}
.parser-progress progress::-moz-progress-bar{background:var(--green)}
.save-status .parser-progress+.filter-hint{margin-top:6px}
.parser-job-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.parser-job{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:10px 0;border-bottom:1px solid #eef1ea;font-size:13px}
.parser-job a{color:var(--green);font-weight:600;text-decoration:none}
.parser-job small{color:var(--muted);font:11px 'Space Mono';overflow-wrap:anywhere}
.parser-job-status{margin-left:auto;color:var(--muted)}
.parser-job-pending .parser-job-status{color:var(--green)}
.parser-job-failed .parser-job-status{color:var(--coral)}
.save-status:has(.parser-progress){flex:1;min-width:240px}
.parser-ambiguities{display:flex;flex-direction:column;gap:10px}
.parser-ambiguity{border-left:3px solid #e2b33c;background:#fdf8e8;padding:12px 14px;display:flex;flex-direction:column;gap:8px;font-size:13px}
.parser-ambiguity p{margin:0}
.parser-ambiguity.resolved{border-left-color:var(--green);background:#eef4ea}
.parser-ambiguity-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.parser-ambiguity-actions select,.parser-ambiguity-actions input{border:1px solid var(--line);padding:9px 10px;font:13px 'DM Sans';color:var(--ink);background:#fff}
.parser-ambiguity-actions input{width:110px}
.parser-ambiguity-actions .secondary{padding:9px 13px}
.parser-rule-list{list-style:none;margin:0;padding:0}
.parser-rule{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:10px 0;border-bottom:1px solid #eef1ea;font-size:13px}
.parser-rule-scope{color:var(--green);font:11px 'Space Mono';flex-basis:100%}
.parser-rule small{color:var(--muted);margin-left:auto}
