/* Phase 69B.5 — Operational Mobile Portals common CSS
   For Supervisor/IEO/FM mobile-first pages. Keep this lightweight. */
:root{
  --op-bg:#07111f; --op-bg2:#0b1728; --op-panel:#101d31; --op-panel2:#13243c;
  --op-text:#f0f7ff; --op-muted:#a8b6cc; --op-line:rgba(255,255,255,.12);
  --op-blue:#38bdf8; --op-green:#22c55e; --op-orange:#f59e0b; --op-red:#ef4444;
  --op-shadow:0 16px 34px rgba(0,0,0,.35); --op-radius:18px;
}
*{box-sizing:border-box}html{background:var(--op-bg);-webkit-text-size-adjust:100%;min-height:100%}
body.opm-body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(56,189,248,.18),transparent 32%),linear-gradient(180deg,var(--op-bg),#050a13);color:var(--op-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;padding-bottom:88px;}
a{color:inherit;text-decoration:none}.opm-shell{width:min(760px,100%);margin:0 auto;padding:12px 10px 98px}.opm-top{position:sticky;top:0;z-index:30;margin:-12px -2px 12px;padding:12px;border:1px solid var(--op-line);border-radius:0 0 var(--op-radius) var(--op-radius);background:rgba(7,17,31,.96);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 12px 24px rgba(0,0,0,.28)}
.opm-kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--op-blue);font-weight:900}.opm-top h1{font-size:23px;line-height:1.05;margin:2px 0}.opm-top p{margin:3px 0 0;color:var(--op-muted);font-size:13px}.opm-back,.opm-small-btn{border:1px solid var(--op-line);background:rgba(255,255,255,.06);color:var(--op-text);border-radius:14px;min-height:42px;padding:9px 12px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}.opm-small-btn.danger{background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.35)}
.opm-card,.opm-alert{border:1px solid var(--op-line);background:linear-gradient(180deg,rgba(16,29,49,.98),rgba(9,20,36,.98));border-radius:var(--op-radius);box-shadow:var(--op-shadow);padding:14px;margin:12px 0}.opm-card h2{font-size:18px;margin:0 0 8px}.opm-card p{margin:0;color:var(--op-muted);line-height:1.45}.opm-alert{box-shadow:none;font-weight:850;color:var(--op-muted)}.opm-alert.info{background:rgba(56,189,248,.08);border-color:rgba(56,189,248,.28)}.opm-alert.ok{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.3);color:#bbf7d0}.opm-alert.warn{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.35);color:#fde68a}.opm-alert.danger{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.42);color:#fecaca}
.opm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.opm-action{min-height:112px;border:1px solid var(--op-line);border-radius:20px;background:linear-gradient(160deg,rgba(19,36,60,.98),rgba(12,24,42,.98));padding:14px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 12px 26px rgba(0,0,0,.2)}.opm-action.primary{border-color:rgba(56,189,248,.38);background:linear-gradient(160deg,rgba(14,165,233,.28),rgba(37,99,235,.18))}.opm-action.success{border-color:rgba(34,197,94,.36);background:linear-gradient(160deg,rgba(34,197,94,.25),rgba(5,150,105,.16))}.opm-action.warn{border-color:rgba(245,158,11,.36);background:linear-gradient(160deg,rgba(245,158,11,.22),rgba(124,45,18,.12))}.opm-action.muted{opacity:.86}.opm-action span{font-size:25px}.opm-action b{display:block;font-size:16px}.opm-action small{color:var(--op-muted);font-size:12px;line-height:1.25}
.opm-label,label{display:block;color:var(--op-muted);font-size:13px;font-weight:900;margin:8px 0 6px}.opm-input{width:100%;min-height:48px;border:1px solid rgba(255,255,255,.16);background:#06101d;color:var(--op-text);border-radius:15px;padding:11px 12px;font-size:16px;font-weight:800;outline:none}.opm-input:focus{border-color:rgba(56,189,248,.8);box-shadow:0 0 0 4px rgba(56,189,248,.14)}textarea.opm-input{min-height:76px;resize:vertical}.opm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.opm-row{display:flex;gap:8px;align-items:center}.opm-row.wrap{flex-wrap:wrap}.opm-row.between{justify-content:space-between}.opm-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--op-line);background:rgba(255,255,255,.055);border-radius:999px;padding:7px 10px;color:var(--op-muted);font-weight:850;font-size:12px}.opm-chip.ok{color:#bbf7d0;border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.1)}.opm-chip.warn{color:#fde68a;border-color:rgba(245,158,11,.36);background:rgba(245,158,11,.1)}
.opm-main-btn{width:100%;border:0;border-radius:18px;min-height:54px;background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;padding:14px 16px;font-size:17px;font-weight:950;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 24px rgba(37,99,235,.25)}.opm-main-btn.success{background:linear-gradient(135deg,#16a34a,#059669);box-shadow:0 12px 24px rgba(5,150,105,.25)}.opm-main-btn.warn{background:linear-gradient(135deg,#f59e0b,#d97706)}.opm-main-btn:disabled{opacity:.55;filter:grayscale(.25)}.opm-ghost-btn{border:1px solid var(--op-line);background:rgba(255,255,255,.06);color:var(--op-text);border-radius:14px;min-height:44px;padding:9px 12px;font-weight:900}.opm-danger{background:rgba(239,68,68,.12)!important;border-color:rgba(239,68,68,.35)!important;color:#fecaca!important}
.opm-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.opm-toggle button{border:1px solid var(--op-line);background:rgba(255,255,255,.06);color:var(--op-muted);border-radius:16px;min-height:46px;font-weight:950}.opm-toggle button.active{background:rgba(56,189,248,.18);border-color:rgba(56,189,248,.42);color:#e0f2fe}.opm-list{display:grid;gap:10px}.opm-list-card{border:1px solid var(--op-line);background:rgba(255,255,255,.05);border-radius:17px;padding:12px}.opm-list-card b{display:block}.opm-list-card small{display:block;color:var(--op-muted);margin-top:3px}.opm-list-card .opm-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.opm-list-card .opm-card-actions button{border:1px solid var(--op-line);background:rgba(255,255,255,.06);color:var(--op-text);border-radius:12px;min-height:38px;padding:7px 10px;font-weight:850}.opm-search-results{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:60;background:#091527;border:1px solid var(--op-line);border-radius:16px;box-shadow:var(--op-shadow);max-height:270px;overflow:auto;padding:6px}.opm-search-wrap{position:relative}.opm-search-results button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid rgba(255,255,255,.08);background:transparent;color:var(--op-text);padding:10px;border-radius:10px}.opm-search-results button:last-child{border-bottom:0}.opm-search-results small{color:var(--op-muted);display:block}
.opm-sticky-board{position:fixed;left:0;right:0;bottom:0;z-index:70;background:rgba(7,17,31,.98);border-top:1px solid var(--op-line);padding:8px 9px calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;gap:8px;box-shadow:0 -12px 30px rgba(0,0,0,.36)}.opm-sticky-board.three{grid-template-columns:1fr 1fr 1fr}.opm-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(7,17,31,.98);border-top:1px solid var(--op-line);display:grid;grid-template-columns:repeat(4,1fr);padding:6px 7px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -12px 30px rgba(0,0,0,.36)}.opm-bottom-nav a{display:flex;flex-direction:column;gap:1px;align-items:center;justify-content:center;min-height:54px;border-radius:16px;color:var(--op-muted);font-size:20px;font-weight:900}.opm-bottom-nav a span{font-size:11px}.opm-bottom-nav a.active{background:rgba(56,189,248,.14);color:#e0f2fe;border:1px solid rgba(56,189,248,.25)}
.opm-hidden{display:none!important}.opm-muted{color:var(--op-muted)}.opm-mt{margin-top:12px}.opm-mini-text{font-size:12px;color:var(--op-muted)}
@media(max-width:380px){body.opm-body{font-size:15px}.opm-shell{padding-left:8px;padding-right:8px}.opm-top h1{font-size:21px}.opm-actions{grid-template-columns:1fr}.opm-grid2{grid-template-columns:1fr}.opm-card,.opm-alert{padding:12px;border-radius:15px}.opm-input{min-height:46px}.opm-action{min-height:96px}.opm-main-btn{min-height:52px}}

/* Phase 69D — mobile stability polish */
.opm-connection-banner{position:fixed;left:10px;right:10px;bottom:74px;z-index:120;border:1px solid rgba(245,158,11,.45);background:rgba(120,53,15,.96);color:#fff7ed;border-radius:16px;padding:10px 12px;font-weight:950;text-align:center;box-shadow:0 -10px 28px rgba(0,0,0,.38);transform:translateY(130%);opacity:0;transition:.18s ease}.opm-connection-banner.show{transform:translateY(0);opacity:1}.opm-connection-banner.flash{border-color:rgba(34,197,94,.5);background:rgba(20,83,45,.96)}
.opm-busy{position:relative;pointer-events:none;opacity:.72}.opm-busy::after{content:"";width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;margin-left:8px;animation:opmSpin .7s linear infinite}@keyframes opmSpin{to{transform:rotate(360deg)}}
.opm-soft-lock{opacity:.55;filter:grayscale(.4);cursor:not-allowed!important}.opm-mobile-badge{color:#bbf7d0;border-color:rgba(34,197,94,.35)!important;background:rgba(34,197,94,.12)!important}
.opm-list-card.error{border-color:rgba(239,68,68,.55);background:rgba(239,68,68,.10)}
.opm-sticky-board .opm-main-btn{min-height:56px}.opm-sticky-board .opm-main-btn:active,.opm-main-btn:active,.opm-action:active{transform:scale(.985)}
@media(max-width:380px){.opm-connection-banner{left:7px;right:7px;bottom:70px;font-size:13px}.opm-sticky-board{gap:6px;padding-left:7px;padding-right:7px}.opm-sticky-board .opm-main-btn{font-size:15px}}
