/* Phase 21 — MicroDialog: application-owned modal message boxes (no browser alert/confirm/prompt). */
:root{
  --md-primary:#0047C6;
  --md-primary-hover:#006b59;
  --md-danger:#d92d20;
  --md-danger-hover:#b42318;
  --md-warning:#dc6803;
  --md-text:#101828;
  --md-muted:#667085;
  --md-line:#eaecf0;
  --md-surface:#fff;
  --md-soft:#f9fafb;
  --md-focus:rgba(0,95,253,.15);
}
.micro-dialog-layer{
  position:fixed;inset:0;z-index:var(--ml-z-critical,2147483600);display:grid;place-items:center;
  padding:20px max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
  background:rgba(15,23,42,.42);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,visibility .16s ease;
}
.micro-dialog-layer.is-open{opacity:1;visibility:visible;pointer-events:auto}
.micro-dialog-card{
  width:min(440px,100%);max-height:min(720px,calc(100dvh - 32px));overflow:hidden;
  background:var(--md-surface);color:var(--md-text);border:1px solid rgba(255,255,255,.7);border-radius:20px;
  box-shadow:0 24px 80px rgba(15,23,42,.26),0 2px 8px rgba(15,23,42,.08);
  display:flex;flex-direction:column;transform:translateY(9px) scale(.985);opacity:.96;
  transition:transform .18s cubic-bezier(.2,.8,.2,1),opacity .18s ease;
}
.micro-dialog-layer.is-open .micro-dialog-card{transform:none;opacity:1}
.micro-dialog-head{padding:20px 20px 8px;display:flex;align-items:flex-start;gap:13px}
.micro-dialog-icon{width:38px;height:38px;flex:0 0 38px;border-radius:12px;display:grid;place-items:center;background:#EEF5FF;color:var(--md-primary)}
.micro-dialog-icon svg{width:21px;height:21px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.micro-dialog-card[data-kind="danger"] .micro-dialog-icon{background:#fef3f2;color:var(--md-danger)}
.micro-dialog-card[data-kind="warning"] .micro-dialog-icon{background:#fffaeb;color:var(--md-warning)}
.micro-dialog-card[data-kind="info"] .micro-dialog-icon{background:#eff8ff;color:#175cd3}
.micro-dialog-title-wrap{min-width:0;flex:1;padding-top:1px}.micro-dialog-title{margin:0;font-size:17px;line-height:1.35;font-weight:700;color:var(--md-text)}
.micro-dialog-subtitle{margin:4px 0 0;font-size:12px;line-height:1.45;color:var(--md-muted)}
.micro-dialog-close{border:0;background:transparent;color:#667085;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;cursor:pointer;margin:-3px -4px 0 0}
.micro-dialog-close:hover{background:#f2f4f7;color:#344054}.micro-dialog-close svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.micro-dialog-body{padding:9px 20px 4px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.micro-dialog-message{margin:0 0 13px;color:#475467;font-size:13px;line-height:1.58;white-space:pre-line;overflow-wrap:anywhere}
.micro-dialog-detail{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:#f2f4f7;color:#344054;font:600 12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere;user-select:all}
.micro-dialog-fields{display:grid;gap:13px;padding-bottom:8px}
.micro-dialog-field{display:grid;gap:6px;color:#344054;font-size:12px;font-weight:650}.micro-dialog-field>span{display:flex;align-items:center;justify-content:space-between;gap:8px}
.micro-dialog-field small{font-weight:400;color:#98a2b3;line-height:1.35}
.micro-dialog-input,.micro-dialog-select,.micro-dialog-textarea{
  width:100%;min-width:0;border:1px solid #d0d5dd;border-radius:11px;background:#fff;color:#101828;outline:0;
  font-weight:500;font-size:13px;line-height:1.4;font-family:inherit;padding:10px 12px;box-shadow:0 1px 2px rgba(16,24,40,.03);
  transition:border-color .12s ease,box-shadow .12s ease;
}
.micro-dialog-input,.micro-dialog-select{height:42px}.micro-dialog-textarea{min-height:92px;max-height:230px;resize:vertical}
.micro-dialog-input:focus,.micro-dialog-select:focus,.micro-dialog-textarea:focus{border-color:var(--md-primary);box-shadow:0 0 0 3px var(--md-focus)}
.micro-dialog-input[readonly]{background:#f9fafb;color:#344054;user-select:all}
.micro-dialog-checkbox{display:flex;align-items:flex-start;gap:10px;padding:10px 11px;border:1px solid #e4e7ec;border-radius:11px;background:#fcfcfd;cursor:pointer}
.micro-dialog-checkbox input{width:17px;height:17px;margin:1px 0 0;accent-color:var(--md-primary);flex:0 0 auto}.micro-dialog-checkbox-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.micro-dialog-checkbox-copy strong{font-size:12px;color:#344054}.micro-dialog-checkbox-copy small{font-size:11px;color:#667085;font-weight:400;line-height:1.4}
.micro-dialog-field-error{display:none;color:#b42318;font-size:11px;font-weight:550}.micro-dialog-field.has-error .micro-dialog-field-error{display:block}.micro-dialog-field.has-error .micro-dialog-input,.micro-dialog-field.has-error .micro-dialog-select,.micro-dialog-field.has-error .micro-dialog-textarea{border-color:#f04438;box-shadow:0 0 0 3px rgba(240,68,56,.1)}
.micro-dialog-actions{padding:16px 20px 20px;display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.micro-dialog-btn{min-height:40px;border-radius:10px;border:1px solid #d0d5dd;background:#fff;color:#344054;padding:9px 15px;font-weight:700;font-size:12px;line-height:1.2;font-family:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .08s ease;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.micro-dialog-btn:hover{background:#f9fafb}.micro-dialog-btn:active{transform:scale(.98)}.micro-dialog-btn:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(52,64,84,.12)}
.micro-dialog-btn.primary{border-color:var(--md-primary);background:var(--md-primary);color:#fff}.micro-dialog-btn.primary:hover{background:var(--md-primary-hover);border-color:var(--md-primary-hover)}
.micro-dialog-btn.danger{border-color:var(--md-danger);background:var(--md-danger);color:#fff}.micro-dialog-btn.danger:hover{background:var(--md-danger-hover);border-color:var(--md-danger-hover)}
.micro-dialog-btn.copy{margin-right:auto;color:var(--md-primary);border-color:#BCD4FF;background:#EEF5FF}
.micro-dialog-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.micro-dialog-open{overflow:hidden!important}
@media(max-width:520px){
  .micro-dialog-layer{place-items:end center;padding:12px 10px max(10px,env(safe-area-inset-bottom))}
  .micro-dialog-card{width:100%;max-height:min(82dvh,720px);border-radius:20px}
  .micro-dialog-head{padding:18px 17px 7px}.micro-dialog-body{padding:8px 17px 3px}.micro-dialog-actions{padding:14px 17px 17px;display:grid;grid-template-columns:1fr 1fr}
  .micro-dialog-actions.single{grid-template-columns:1fr}.micro-dialog-btn.copy{margin:0;grid-column:1/-1}.micro-dialog-btn{width:100%}
}
@media(prefers-reduced-motion:reduce){.micro-dialog-layer,.micro-dialog-card{transition:none!important}}

/* MICROLINK_F30_MOBILE_MODAL_UI_V1
 * Mobile dialog polish: safe-area aware floating sheet, sticky chrome and
 * touch/keyboard-safe controls. Functional semantics remain unchanged. */
@media(max-width:767px){
  .micro-dialog-layer{
    place-items:end center;
    padding:max(12px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));
    background:rgba(15,23,42,.46);
    backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  }
  .micro-dialog-card{
    width:100%;max-width:520px;
    max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom)));
    border-radius:22px;
    border:1px solid rgba(255,255,255,.82);
    box-shadow:0 24px 70px rgba(15,23,42,.28),0 2px 8px rgba(15,23,42,.08);
    overflow:hidden;
  }
  .micro-dialog-head{
    position:sticky;top:0;z-index:3;
    padding:17px 16px 9px;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  }
  .micro-dialog-body{
    min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;padding:8px 16px 4px;
  }
  .micro-dialog-actions{
    position:sticky;bottom:0;z-index:3;
    padding:12px 16px max(16px,env(safe-area-inset-bottom));
    background:rgba(255,255,255,.97);
    border-top:1px solid #eef1f5;
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  }
  .micro-dialog-close{width:44px;height:44px;min-width:44px;min-height:44px;margin:-6px -7px 0 0}
  .micro-dialog-btn{min-height:46px;padding:10px 14px;font-size:13px}
  .micro-dialog-input,.micro-dialog-select,.micro-dialog-textarea{font-size:16px}
  .micro-dialog-input,.micro-dialog-select{min-height:46px;height:46px}
}
@media(max-width:390px){
  .micro-dialog-actions{grid-template-columns:1fr}
  .micro-dialog-btn.copy{grid-column:auto}
}
