/* YIFALIN Cloud V2 overlay — uses the original theme tokens (--ink*, --gold*, --muted …) so it follows every
   original theme; fallbacks only where a token might be absent. */
.cloud-badge{background:var(--gold4,#2a1e04)!important;color:var(--gold2,#f0c858)!important;border:1px solid var(--gold3,#7a5c10)!important;
  white-space:nowrap;max-width:34vw;min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;cursor:help}
/* the cloud badge + logout live in the original top bar: let the single-column .app grid and the bar shrink to the
   viewport so the badge ellipsizes instead of widening the page (logged-in state adds user + logout) */
.app{grid-template-columns:minmax(0,1fr)}
.topbar{min-width:0}
.cloud-badge-short{display:none}
.cloud-badge-user{color:var(--soft,#9ab0c8)}
@media(max-width:860px){.cloud-badge-long,.cloud-badge-user{display:none}.cloud-badge-short{display:inline}}
.cloud-banner-btn{margin-left:6px;flex:none;background:transparent;border:1px solid var(--gold3,#7a5c10);color:var(--gold2,#f0c858);border-radius:6px;
  padding:2px 9px;font:inherit;cursor:pointer}
.cloud-banner-btn:focus-visible{outline:2px solid var(--gold2,#f0c858);outline-offset:2px}
.cloud-col{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.cloud-col>.main{flex:1 1 auto;min-height:0}
.cloud-cap{flex:none;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 18px 0;padding:8px 12px;border-radius:10px;
  border:1px solid var(--wire2,#263850);background:var(--ink3,#121a26);color:var(--text,#c0d4e8);font-size:12.5px;line-height:1.45}
.cloud-cap b{color:var(--bright,#e0eef8);font-weight:600}
.cloud-cap .cloud-eph{color:var(--amber,#e07020);font-size:11.5px;white-space:nowrap}
.cloud-cap .cloud-note{color:var(--muted,#6a8aaa);flex:1 1 260px;min-width:0}
.cloud-chip{display:inline-block;padding:2px 9px;border-radius:99px;font:600 11px/1.5 var(--font-m,monospace);white-space:nowrap;
  border:1px solid currentColor}
.cloud-chip.s-WORKING{color:var(--green,#26b060)}
.cloud-chip.s-PARTIAL{color:var(--amber,#e07020)}
.cloud-chip.s-SECURITY_GATED{color:var(--red,#d84040)}
.cloud-chip.s-BACKEND_REQUIRED,.cloud-chip.s-LOCAL_ONLY{color:var(--blue,#3888e0)}
.cloud-chip.s-NOT_IMPLEMENTED{color:var(--muted,#6a8aaa)}
/* Modern main navigation: the original legacy evidence pages remain available on demand. */
.cloud-legacy-toggle{display:block;box-sizing:border-box;width:calc(100% - 18px);margin:10px 9px;padding:9px 11px;
  border:1px dashed var(--wire2,#263850);border-radius:9px;background:var(--ink3,#121a26);
  color:var(--muted,#91a6bf);font-family:inherit;font-weight:600;font-size:12px;line-height:1.5;text-align:left;cursor:pointer}
.cloud-legacy-toggle:hover{color:var(--gold2,#f0c858);border-color:var(--gold3,#7a5c10)}
.cloud-legacy-toggle:focus-visible{outline:2px solid var(--gold2,#f0c858);outline-offset:2px}
.cloud-provenance{flex:1 0 100%;font-size:11.5px;line-height:1.5;color:var(--amber,#e7a949);
  border-top:1px solid var(--wire2,#263850);padding-top:5px;overflow-wrap:anywhere}

.cloud-ops{flex:1 1 auto;min-height:0;margin:10px 18px 18px}
.cloud-ops iframe{display:block;width:100%;height:100%;min-height:420px;border:1px solid var(--wire2,#263850);
  border-radius:12px;background:var(--ink2,#0d1218)}
[hidden]{display:none!important}
@media(max-width:600px){.cloud-cap{margin:8px 10px 0}.cloud-ops{margin:8px 10px}}

/* login page (no inline styles: CSP style-src 'self') */
.cloud-login-body{box-sizing:border-box;margin:0;min-height:100vh;display:grid;place-items:center;background:#080b10;color:#c0d4e8;
  font:14px/1.6 "Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;padding:16px}
.cloud-login{box-sizing:border-box;width:min(380px,100%);background:#0d1218;border:1px solid #1e2d40;border-radius:14px;padding:26px 24px}
.cloud-login .brand{font-weight:800;letter-spacing:1px;color:#e0eef8;font-size:17px}
.cloud-login .brand small{display:block;font-size:10px;letter-spacing:2.5px;color:#c8a840}
.cloud-login .brand em{font-style:normal;color:#c8a840}
.cloud-login label{display:block;font-size:12px;color:#6a8aaa;margin-top:14px}
.cloud-login input{width:100%;box-sizing:border-box;margin-top:4px;background:#121a26;border:1px solid #263850;border-radius:8px;
  padding:10px;color:#e0eef8;font:inherit}
.cloud-login input:focus-visible,.cloud-login button:focus-visible{outline:2px solid #f0c858;outline-offset:2px}
.cloud-login button{margin-top:18px;width:100%;background:#c8a840;color:#1a1405;border:0;border-radius:8px;padding:11px;font-weight:700;
  font-size:14px;cursor:pointer}
.cloud-login .note{font-size:12px;color:#6a8aaa;margin-top:12px}
.cloud-login .err{color:#ff9a93;font-size:13px;min-height:18px;margin-top:10px}
.cloud-login .demo{background:#2a2108;color:#ffd77a;border-radius:8px;padding:8px 10px;font-size:12px;margin-top:14px}

/* Pre-existing ORIGINAL issue (reproduced on the unmodified frontend at 390 px): the top bar's controls wrap past its
   fixed 52 px grid row and cover the page. Cloud-only fix, original files untouched: on narrow screens the row
   takes its natural height and the drawer / content follow the measured height (--cloud-top, set by overlay.js). */
@media(max-width:860px){
  .app{grid-template-rows:auto 1fr}
  .topbar{flex-wrap:wrap;height:auto;min-height:52px;row-gap:6px;padding-top:6px;padding-bottom:6px}
  .nav{top:var(--cloud-top,52px)}
}


/* Read-only opportunity workbench overlay; no order/EA endpoints. */
.cloud-opportunity-workbench{flex:none;margin:10px 18px 0;padding:16px 18px;background:var(--ink3,#121a26);
  border:1px solid var(--wire2,#263850);border-radius:12px;color:var(--text,#c0d4e8);max-height:min(58vh,600px);overflow:auto}
.ow-header{margin-bottom:10px}.ow-header h3{font-size:17px;margin:4px 0}
.ow-header p{font-size:12px;margin:0;color:var(--muted,#91a6bf)}.ow-kicker{color:var(--gold2,#f0c858);font:600 11px monospace;letter-spacing:1px}
.ow-state{padding:10px;border:1px solid var(--gold3,#7a5c10);border-radius:8px;background:var(--gold4,#2a1e04);
  font-size:12px;overflow-wrap:anywhere;margin-bottom:12px}
.ow-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:10px}
.ow-card{background:var(--ink2,#0d1218);border:1px solid var(--wire2,#263850);border-radius:11px;padding:13px}
.ow-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.ow-card-head b{color:var(--bright,#e0eef8)}
.ow-chip{font-size:11px;border:1px solid var(--gold3,#7a5c10);color:var(--gold2,#f0c858);border-radius:30px;padding:3px 8px}
.ow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ow-metric{border-radius:7px;background:var(--ink3,#121a26);padding:8px;min-width:0}
.ow-metric small{font-size:11px;color:var(--muted,#91a6bf);display:block}
.ow-metric strong{font-size:15px;color:var(--bright,#e0eef8);display:block;margin-top:3px}
.ow-meta{font-size:11px;color:var(--muted,#91a6bf);margin-top:10px;overflow-wrap:anywhere}
.ow-reason{font-size:12px;margin:10px 0;color:var(--text,#c0d4e8)}
.ow-actions{display:flex;flex-wrap:wrap;gap:7px}
.ow-action{font:inherit;font-size:12px;border:1px solid var(--gold3,#7a5c10);border-radius:7px;padding:7px 10px;
  background:var(--ink3,#121a26);color:var(--text,#c0d4e8);cursor:pointer}
.ow-action:focus-visible{outline:2px solid var(--gold2,#f0c858);outline-offset:2px}
.ow-action:disabled{cursor:not-allowed;opacity:.58}
.ow-order-track{font-size:12px;color:var(--muted,#91a6bf);border-top:1px solid var(--wire2,#263850);
  padding-top:10px;margin-top:14px}
.ow-empty{font-size:12px;color:var(--muted,#91a6bf)}
.ow-steps{list-style:none;display:flex;flex-wrap:wrap;gap:4px;margin:10px 0 0;padding:0;counter-reset:ow}
.ow-step{font-size:11px;padding:3px 7px;border-radius:5px;border:1px solid var(--wire2,#263850);
  color:var(--muted,#91a6bf);min-width:0;overflow-wrap:anywhere}
.ow-step small{display:block;font-size:10px;color:var(--red,#e05a5a)}
.ow-step.ow-done{border-color:var(--gold3,#7a5c10);color:var(--text,#c0d4e8)}
.ow-step.ow-current{border-color:var(--gold2,#f0c858);color:var(--gold2,#f0c858);font-weight:600}
.ow-step.ow-blocked{border-color:var(--red,#e05a5a);color:var(--red,#e05a5a)}
.ow-step.ow-pending{opacity:.55}.ow-step.ow-broker{border-style:dashed}
.ow-step.ow-terminal{border-color:var(--muted,#91a6bf);color:var(--bright,#e0eef8)}
.ow-research{font-size:11px;color:var(--muted,#91a6bf);margin:0 0 10px;overflow-wrap:anywhere}
@media(max-width:600px){
  .cloud-opportunity-workbench{margin:8px 10px 0;padding:12px;max-height:45vh}
  .ow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
