/* MicroLink Non-Chat UI Foundation V1
 * Canonical visual primitives for non-Chat surfaces only.
 * IMPORTANT: every rule is scoped to body.ml-nonchat-v1 so Chat remains isolated.
 */
:root{
  --ml-color-primary:#1769ff;
  --ml-color-primary-hover:#0f55d8;
  --ml-color-primary-soft:#eef5ff;
  --ml-color-text:#162238;
  --ml-color-muted:#64748b;
  --ml-color-border:#dbe4f0;
  --ml-color-canvas:#f5f7fb;
  --ml-color-surface:#fff;
  --ml-color-success:#158057;
  --ml-color-warning:#a8651a;
  --ml-color-danger:#c94a4a;
  --ml-color-info:#1769ff;

  --ml-font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ml-text-caption:12px;
  --ml-text-secondary:13px;
  --ml-text-body:14px;
  --ml-text-card-title:16px;
  --ml-text-section:22px;
  --ml-text-page:26px;
  --ml-line-normal:1.5;
  --ml-line-reading:1.65;

  --ml-space-1:4px;
  --ml-space-2:8px;
  --ml-space-3:12px;
  --ml-space-4:16px;
  --ml-space-5:20px;
  --ml-space-6:24px;
  --ml-space-8:32px;
  --ml-space-10:40px;
  --ml-space-12:48px;

  --ml-radius-control:10px;
  --ml-radius-card:14px;
  --ml-radius-panel:16px;
  --ml-radius-modal:18px;
  --ml-radius-pill:999px;

  --ml-control-sm:32px;
  --ml-control-md:40px;
  --ml-control-lg:44px;
  --ml-control-touch:44px;

  --ml-shell-topbar:64px;
  --ml-shell-sidebar:240px;
  --ml-shell-sidebar-collapsed:64px;
  --ml-shell-content-max:1440px;
  --ml-shell-gutter:24px;
  --ml-shell-gap:20px;

  --ml-shadow-1:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.05);
  --ml-shadow-2:0 16px 44px rgba(15,23,42,.12);
  --ml-focus-ring:0 0 0 3px rgba(23,105,255,.18);
  --ml-transition-fast:140ms ease;

  /* Legacy aliases retained during migration. */
  --ml-text-xs:var(--ml-text-caption);
  --ml-text-sm:var(--ml-text-caption);
  --ml-text-md:var(--ml-text-secondary);
  --ml-text-base:var(--ml-text-body);
  --ml-text-lg:var(--ml-text-card-title);
  --ml-control-compact:var(--ml-control-sm);
  --ml-control-standard:var(--ml-control-md);
  --ml-control-min:var(--ml-control-md);
  --ml-color-text-muted:var(--ml-color-muted);
  --ml-color-surface-subtle:#f8fafc;
  --ml-focus:var(--ml-color-primary);
  --ml-focus-offset:2px;
  --ml-shadow-card:var(--ml-shadow-1);
}

body.ml-nonchat-v1{
  margin:0;
  color:var(--ml-color-text);
  font-family:var(--ml-font-sans);
  font-size:var(--ml-text-body);
  line-height:var(--ml-line-normal);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
body.ml-nonchat-v1 *,body.ml-nonchat-v1 *::before,body.ml-nonchat-v1 *::after{box-sizing:border-box}
body.ml-nonchat-v1 :where(button,input,select,textarea){font:inherit}
body.ml-nonchat-v1 :where(img,svg,video,canvas){max-width:100%}
body.ml-nonchat-v1 :where(h1,h2,h3,h4,p){overflow-wrap:anywhere}
body.ml-nonchat-v1 :where(h1,h2,h3,h4){line-height:1.22}
body.ml-nonchat-v1 :where(h1){font-size:clamp(22px,2vw,var(--ml-text-page))}
body.ml-nonchat-v1 :where(h2){font-size:clamp(18px,1.5vw,var(--ml-text-section))}
body.ml-nonchat-v1 :where(h3){font-size:var(--ml-text-card-title)}
body.ml-nonchat-v1 :where(small,.ml-caption){font-size:var(--ml-text-caption);line-height:1.45}
body.ml-nonchat-v1 :where(button,input,select,textarea,a,[role="button"],[role="tab"],[tabindex]):focus-visible{
  outline:2px solid var(--ml-color-primary);
  outline-offset:2px;
  box-shadow:var(--ml-focus-ring);
}
body.ml-nonchat-v1 :where(button,[role="button"])[disabled],
body.ml-nonchat-v1 :where(button,[role="button"])[aria-disabled="true"]{cursor:not-allowed;opacity:.55}
body.ml-nonchat-v1 :where([hidden]){display:none!important}

/* Canonical controls */
body.ml-nonchat-v1 :where(.ml-btn,.ml-button){
  min-height:var(--ml-control-md);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:0 14px;border:1px solid transparent;border-radius:var(--ml-radius-control);
  background:var(--ml-color-surface);color:var(--ml-color-text);font-weight:650;font-size:var(--ml-text-secondary);
  text-decoration:none;cursor:pointer;transition:background-color var(--ml-transition-fast),border-color var(--ml-transition-fast),box-shadow var(--ml-transition-fast),transform var(--ml-transition-fast);
}
body.ml-nonchat-v1 .ml-btn--primary{background:var(--ml-color-primary);border-color:var(--ml-color-primary);color:#fff}
body.ml-nonchat-v1 .ml-btn--primary:hover{background:var(--ml-color-primary-hover);border-color:var(--ml-color-primary-hover)}
body.ml-nonchat-v1 .ml-btn--secondary{border-color:var(--ml-color-border)}
body.ml-nonchat-v1 .ml-btn--secondary:hover{background:#f8fafc}
body.ml-nonchat-v1 .ml-btn--ghost{background:transparent;border-color:transparent}
body.ml-nonchat-v1 .ml-btn--danger{background:var(--ml-color-danger);border-color:var(--ml-color-danger);color:#fff}

body.ml-nonchat-v1 :where(.ml-input,.ml-select,.ml-textarea){
  width:100%;min-height:var(--ml-control-md);border:1px solid var(--ml-color-border);border-radius:var(--ml-radius-control);
  background:var(--ml-color-surface);color:var(--ml-color-text);font-size:var(--ml-text-secondary);
}
body.ml-nonchat-v1 :where(.ml-input,.ml-select){padding:0 12px}
body.ml-nonchat-v1 .ml-textarea{padding:10px 12px;resize:vertical}
body.ml-nonchat-v1 :where(.ml-input,.ml-select,.ml-textarea):focus{border-color:#8bb6ff;box-shadow:var(--ml-focus-ring);outline:0}

/* Shared content primitives */
body.ml-nonchat-v1 :where(.ml-card,.ml-panel){background:var(--ml-color-surface);border:1px solid var(--ml-color-border);box-shadow:none}
body.ml-nonchat-v1 .ml-card{border-radius:var(--ml-radius-card)}
body.ml-nonchat-v1 .ml-panel{border-radius:var(--ml-radius-panel)}
body.ml-nonchat-v1 :where(.ml-badge,.ml-chip){display:inline-flex;align-items:center;gap:5px;border-radius:var(--ml-radius-pill);font-size:var(--ml-text-caption);line-height:1.2}
body.ml-nonchat-v1 .ml-state-success{color:var(--ml-color-success)}
body.ml-nonchat-v1 .ml-state-warning{color:var(--ml-color-warning)}
body.ml-nonchat-v1 .ml-state-danger{color:var(--ml-color-danger)}

body.ml-nonchat-v1 .ml-empty-state,
body.ml-nonchat-v1 .ml-loading-state,
body.ml-nonchat-v1 .ml-error-state,
body.ml-nonchat-v1 .ml-permission-state{
  display:grid;place-items:center;align-content:center;gap:8px;min-height:180px;padding:28px;text-align:center;
  border:1px dashed var(--ml-color-border);border-radius:var(--ml-radius-card);background:#fbfcfe;color:var(--ml-color-muted);
}
body.ml-nonchat-v1 .ml-error-state{border-color:#f0caca;background:#fff8f8;color:#8f2f36}

/* Data surfaces */
body.ml-nonchat-v1 .ml-table-wrap{overflow:auto;border-radius:var(--ml-radius-card)}
body.ml-nonchat-v1 .ml-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--ml-text-secondary)}
body.ml-nonchat-v1 .ml-table th{height:40px;padding:0 12px;text-align:left;font-size:var(--ml-text-caption);font-weight:700;color:var(--ml-color-muted);background:#f8fafc;border-bottom:1px solid var(--ml-color-border)}
body.ml-nonchat-v1 .ml-table td{min-height:44px;padding:11px 12px;border-bottom:1px solid #edf1f6;vertical-align:middle}

/* Overlay contract */
body.ml-nonchat-v1 .ml-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}
body.ml-nonchat-v1 .ml-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.52);backdrop-filter:blur(2px)}
body.ml-nonchat-v1 .ml-modal__panel{position:relative;width:min(720px,100%);max-height:min(88vh,900px);overflow:auto;border-radius:var(--ml-radius-modal);background:#fff;border:1px solid var(--ml-color-border);box-shadow:var(--ml-shadow-2)}

/* Accessibility and motion */
@media (pointer:coarse){
  body.ml-nonchat-v1 :where(button,a[role="button"],.ml-btn,.ml-input,.ml-select,.ml-icon-button){min-height:var(--ml-control-touch)}
}
@media (prefers-reduced-motion:reduce){
  body.ml-nonchat-v1 *,body.ml-nonchat-v1 *::before,body.ml-nonchat-v1 *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Canonical viewport contract. Component-level adaptation should prefer container queries. */
@media(max-width:1279px){:root{--ml-shell-gutter:20px}}
@media(max-width:1023px){:root{--ml-shell-topbar:60px;--ml-shell-gutter:18px}}
@media(max-width:767px){:root{--ml-shell-topbar:56px;--ml-shell-gutter:16px;--ml-shell-gap:16px}}
@media(max-width:479px){:root{--ml-shell-gutter:12px;--ml-shell-gap:12px}}


/* Global preloader visual ownership moved to micro-preloader-v3.css. */
