/* EscrowFlows dashboard — brand blue #42B4FF on the site's dark ground.
   Text on blue is always near-black: white on #42B4FF is 2.3:1 and fails WCAG AA. */
:root{
  --ef-blue:#42B4FF; --ef-blue-d:#22A7FF; --ef-ink:#06121F;
  --ef-bg:#080D14; --ef-panel:#0F1621; --ef-panel-2:#141D2A;
  --ef-line:#1E2A3A; --ef-text:#E6EDF5; --ef-muted:#8FA3B8;
  --ef-ok:#31C48D; --ef-warn:#F6B93B; --ef-dead:#7A8AA0; --ef-danger:#F87171;
  --ef-radius:14px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ef-bg);color:var(--ef-text);
  font:15px/1.55 "Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--ef-blue);text-decoration:none} a:hover{text-decoration:underline}
.ef-skip{position:absolute;left:-9999px}
.ef-skip:focus{left:8px;top:8px;background:var(--ef-blue);color:var(--ef-ink);padding:8px 14px;border-radius:8px;z-index:99}

.ef-shell{display:flex;min-height:100vh}
.ef-side{width:250px;flex:0 0 250px;background:var(--ef-panel);border-right:1px solid var(--ef-line);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.ef-side__brand{padding:20px 18px;border-bottom:1px solid var(--ef-line)}
.ef-side__brand img{max-width:150px;height:auto;display:block}
.ef-nav{padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.ef-nav__item{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:10px;
  color:var(--ef-muted);font-weight:500;transition:.15s}
.ef-nav__item i{font-size:19px;width:22px;text-align:center;flex:none}
.ef-nav__item:hover{background:var(--ef-panel-2);color:var(--ef-text);text-decoration:none}
.ef-nav__item.is-active{background:var(--ef-blue);color:var(--ef-ink);font-weight:700}
.ef-nav__logout{margin-top:10px;padding-top:10px;border-top:1px solid var(--ef-line)}
.ef-nav__item--btn{width:100%;background:none;border:0;font:inherit;cursor:pointer;text-align:left}

.ef-main{flex:1;min-width:0;display:flex;flex-direction:column}
.ef-top{display:flex;align-items:center;gap:14px;padding:16px 26px;
  border-bottom:1px solid var(--ef-line);background:var(--ef-panel);position:sticky;top:0;z-index:5}
.ef-top__title{margin:0;font-size:1.15rem;font-weight:700;flex:1}
.ef-top__right{display:flex;align-items:center;gap:16px}
.ef-who{color:var(--ef-muted);font-size:.9rem}
.ef-bell{position:relative;color:var(--ef-muted);font-size:22px;line-height:1}
.ef-bell__dot{position:absolute;top:-5px;right:-8px;background:var(--ef-blue);color:var(--ef-ink);
  font-size:10px;font-weight:800;min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.ef-burger{display:none;background:none;border:0;color:var(--ef-text);font-size:23px;cursor:pointer}
.ef-content{padding:26px;max-width:1240px;width:100%}

.ef-alert{padding:12px 16px;border-radius:10px;margin-bottom:18px;border:1px solid transparent;font-size:.93rem}
.ef-alert--success{background:rgba(49,196,141,.12);border-color:rgba(49,196,141,.4);color:#8FE6C2}
.ef-alert--danger,.ef-alert--error{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.4);color:#FCA5A5}
.ef-alert--warning{background:rgba(246,185,59,.12);border-color:rgba(246,185,59,.4);color:#F8D08A}
.ef-alert--info{background:rgba(66,180,255,.12);border-color:rgba(66,180,255,.4);color:#A9DCFF}

.ef-grid{display:grid;gap:16px}
.ef-grid--4{grid-template-columns:repeat(4,1fr)}
.ef-grid--3{grid-template-columns:repeat(3,1fr)}
.ef-grid--2{grid-template-columns:repeat(2,1fr)}
.ef-card{background:var(--ef-panel);border:1px solid var(--ef-line);border-radius:var(--ef-radius);padding:20px}
.ef-card__title{margin:0 0 16px;font-size:1rem;font-weight:700}

.ef-stat{display:flex;align-items:center;gap:14px}
.ef-stat__icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;
  background:rgba(66,180,255,.14);color:var(--ef-blue);font-size:23px;flex:none}
.ef-stat__label{color:var(--ef-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}
.ef-stat__value{font-size:1.45rem;font-weight:800;line-height:1.15}
.ef-stat--ok .ef-stat__icon{background:rgba(49,196,141,.14);color:var(--ef-ok)}
.ef-stat--warn .ef-stat__icon{background:rgba(246,185,59,.14);color:var(--ef-warn)}
.ef-stat--dead .ef-stat__icon{background:rgba(122,138,160,.16);color:var(--ef-dead)}

.ef-table-wrap{overflow-x:auto}
table.ef-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:620px}
.ef-table th{text-align:left;padding:11px 12px;color:var(--ef-muted);font-weight:600;
  text-transform:uppercase;font-size:.72rem;letter-spacing:.5px;border-bottom:1px solid var(--ef-line)}
.ef-table td{padding:13px 12px;border-bottom:1px solid var(--ef-line);vertical-align:middle}
.ef-table tr:last-child td{border-bottom:0}
.ef-empty{padding:34px;text-align:center;color:var(--ef-muted)}

.ef-badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.73rem;font-weight:700;
  background:rgba(122,138,160,.18);color:#B9C6D6;white-space:nowrap}
.ef-badge--ok{background:rgba(49,196,141,.16);color:#6EE7B7}
.ef-badge--run{background:rgba(66,180,255,.16);color:#8FD3FF}
.ef-badge--warn{background:rgba(246,185,59,.16);color:#FBD38D}
.ef-badge--dead{background:rgba(122,138,160,.18);color:#AEBACA}
.ef-badge--info{background:rgba(167,139,250,.16);color:#C4B5FD}

.ef-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:10px;
  border:0;font:inherit;font-weight:700;cursor:pointer;background:var(--ef-blue);color:var(--ef-ink);transition:.15s}
.ef-btn:hover{background:var(--ef-blue-d);text-decoration:none;color:var(--ef-ink)}
.ef-btn--ghost{background:transparent;border:1px solid var(--ef-line);color:var(--ef-text)}
.ef-btn--ghost:hover{background:var(--ef-panel-2);color:var(--ef-text)}
.ef-btn--danger{background:var(--ef-danger);color:#2A0B0B}
.ef-btn--danger:hover{background:#EF5350;color:#2A0B0B}
.ef-btn--sm{padding:7px 14px;font-size:.85rem}
.ef-btn[disabled]{opacity:.5;cursor:not-allowed}

.ef-field{margin-bottom:17px}
.ef-label{display:block;margin-bottom:7px;font-size:.86rem;font-weight:600;color:#C7D4E3}
.ef-input,.ef-select,.ef-textarea{width:100%;padding:12px 14px;background:var(--ef-panel-2);
  border:1px solid var(--ef-line);border-radius:10px;color:var(--ef-text);font:inherit}
.ef-input:focus,.ef-select:focus,.ef-textarea:focus{outline:0;border-color:var(--ef-blue);
  box-shadow:0 0 0 3px rgba(66,180,255,.18)}
.ef-textarea{min-height:110px;resize:vertical}
.ef-select option{background:var(--ef-panel-2);color:var(--ef-text)}
.ef-err{color:#FCA5A5;font-size:.82rem;margin-top:6px}
.ef-hint{color:var(--ef-muted);font-size:.82rem;margin-top:6px}
.ef-input-group{display:flex}
.ef-input-group__pre{padding:12px 14px;background:var(--ef-blue);color:var(--ef-ink);font-weight:700;
  border-radius:10px 0 0 10px;white-space:nowrap;display:grid;place-items:center;min-width:64px}
.ef-input-group .ef-input{border-radius:0 10px 10px 0}
.ef-radio-row{display:flex;gap:12px;flex-wrap:wrap}
.ef-radio{flex:1;min-width:190px;position:relative}
.ef-radio input{position:absolute;opacity:0;inset:0;cursor:pointer}
.ef-radio__box{display:block;padding:15px;border:1px solid var(--ef-line);border-radius:12px;
  background:var(--ef-panel-2);cursor:pointer;transition:.15s}
.ef-radio input:checked + .ef-radio__box{border-color:var(--ef-blue);background:rgba(66,180,255,.10)}
.ef-radio input:focus-visible + .ef-radio__box{box-shadow:0 0 0 3px rgba(66,180,255,.3)}
.ef-radio__t{font-weight:700;display:block;margin-bottom:3px}
.ef-radio__d{color:var(--ef-muted);font-size:.83rem}

.ef-kv{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;font-size:.92rem}
.ef-kv dt{color:var(--ef-muted)} .ef-kv dd{margin:0;font-weight:600}
.ef-timeline{list-style:none;margin:0;padding:0}
.ef-timeline li{position:relative;padding:0 0 18px 24px;border-left:2px solid var(--ef-line)}
.ef-timeline li:last-child{border-left-color:transparent;padding-bottom:0}
.ef-timeline li::before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;
  border-radius:50%;background:var(--ef-blue)}
.ef-timeline time{display:block;color:var(--ef-muted);font-size:.78rem;margin-top:2px}
.ef-muted{color:var(--ef-muted)}
.ef-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.ef-between{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}

/* Auth pages */
.ef-auth{min-height:100vh;display:grid;place-items:center;padding:30px 16px}
.ef-auth__card{width:100%;max-width:480px;background:var(--ef-panel);border:1px solid var(--ef-line);
  border-radius:18px;padding:34px}
.ef-auth__brand{text-align:center;margin-bottom:22px}
.ef-auth__brand img{max-width:190px}
.ef-auth h1{font-size:1.4rem;margin:0 0 6px;text-align:center}
.ef-auth__sub{color:var(--ef-muted);text-align:center;margin:0 0 24px;font-size:.92rem}
.ef-auth__foot{text-align:center;margin-top:20px;color:var(--ef-muted);font-size:.9rem}
.ef-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}

@media (max-width:1080px){ .ef-grid--4{grid-template-columns:repeat(2,1fr)} }
@media (max-width:900px){
  .ef-side{position:fixed;left:0;top:0;z-index:40;transform:translateX(-100%);transition:transform .2s}
  .ef-side.is-open{transform:none}
  .ef-burger{display:block}
  .ef-grid--3,.ef-grid--2{grid-template-columns:1fr}
  .ef-content{padding:18px}
}
@media (max-width:560px){ .ef-grid--4{grid-template-columns:1fr} .ef-2col{grid-template-columns:1fr} }

/* ---- Admin console ---- */
.ef-admin .ef-side{background:#0C1420;border-right-color:#1A2534}
.ef-adminbadge{display:inline-block;margin-top:8px;padding:2px 9px;border-radius:6px;
  background:var(--ef-blue);color:var(--ef-ink);font-size:.66rem;font-weight:800;letter-spacing:.6px;text-transform:uppercase}
.ef-nav__item{position:relative}
.ef-nav__count{position:absolute;right:11px;top:50%;transform:translateY(-50%);
  background:var(--ef-warn);color:#2A1D00;font-style:normal;font-size:.7rem;font-weight:800;
  min-width:19px;height:19px;border-radius:10px;display:grid;place-items:center;padding:0 5px}
.ef-nav__item.is-active .ef-nav__count{background:var(--ef-ink);color:var(--ef-blue)}
.ef-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.ef-toolbar .ef-input,.ef-toolbar .ef-select{width:auto;min-width:180px}
.ef-switch{display:inline-flex;align-items:center;gap:9px;cursor:pointer}
.ef-switch input{position:absolute;opacity:0;width:0;height:0}
.ef-switch__t{width:42px;height:24px;border-radius:99px;background:#2A3648;position:relative;transition:.15s;flex:none}
.ef-switch__t::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;
  background:#8FA3B8;transition:.15s}
.ef-switch input:checked + .ef-switch__t{background:var(--ef-blue)}
.ef-switch input:checked + .ef-switch__t::after{transform:translateX(18px);background:var(--ef-ink)}
.ef-switch input:focus-visible + .ef-switch__t{box-shadow:0 0 0 3px rgba(66,180,255,.32)}
.ef-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84rem;word-break:break-all}
.ef-setgroup{margin-bottom:22px}
.ef-setgroup h3{margin:0 0 4px;font-size:.95rem;text-transform:capitalize}
.ef-setgroup p{margin:0 0 14px;color:var(--ef-muted);font-size:.84rem}
