/* Grimmory offline companion */
:root{--kbo-card:#1a2332;--kbo-accent:#3b82f6;--kbo-ok:#22c55e;--kbo-warn:#f59e0b;--kbo-text:#e8eef7;--kbo-muted:#94a3b8}
#kbo-fab{position:fixed;right:16px;bottom:88px;z-index:99990;width:52px;height:52px;border-radius:50%;background:var(--kbo-accent);color:#fff;border:0;box-shadow:0 4px 14px rgba(0,0,0,.4);cursor:pointer;font-size:22px;display:flex;align-items:center;justify-content:center}
#kbo-fab.busy{background:var(--kbo-warn)}
#kbo-save{position:fixed;left:16px;bottom:88px;z-index:99990;display:none;border:0;border-radius:999px;cursor:pointer;background:var(--kbo-ok);color:#052e16;font-weight:700;padding:10px 16px;font-size:13px;box-shadow:0 4px 14px rgba(0,0,0,.35)}
#kbo-save.show{display:inline-flex}
#kbo-save.saved{background:#1e293b;color:var(--kbo-muted)}
#kbo-panel{position:fixed;right:16px;bottom:150px;z-index:99991;width:min(380px,calc(100vw - 24px));max-height:min(70vh,560px);background:var(--kbo-card);color:var(--kbo-text);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.5);display:none;flex-direction:column;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
#kbo-panel.open{display:flex}
.kbo-head{padding:14px 16px 10px;border-bottom:1px solid #243044;display:flex;justify-content:space-between;gap:8px}
.kbo-head h2{margin:0;font-size:16px}
.kbo-sub{color:var(--kbo-muted);font-size:12px;margin-top:2px}
.kbo-x{background:transparent;border:0;color:var(--kbo-muted);font-size:22px;cursor:pointer}
.kbo-status{margin:8px 12px;padding:8px 10px;border-radius:8px;background:#132033;font-size:12px;color:var(--kbo-muted)}
.kbo-status.on{border-left:3px solid var(--kbo-ok)}
.kbo-status.off{border-left:3px solid var(--kbo-warn);color:#fde68a}
.kbo-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 10px}
.kbo-btn{border:1px solid #334155;background:#0f172a;color:var(--kbo-text);border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer}
.kbo-btn.primary{background:var(--kbo-accent);border-color:transparent}
.kbo-btn.danger{border-color:#7f1d1d;color:#fecaca}
.kbo-body{overflow:auto;padding:10px 12px 14px;flex:1}
.kbo-item{display:grid;grid-template-columns:1fr auto;gap:6px 10px;padding:10px;border-radius:10px;background:#0f172a;margin-bottom:8px}
.kbo-item .t{font-size:13px;font-weight:600}
.kbo-item .m{font-size:11px;color:var(--kbo-muted)}
.kbo-item .row{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
.kbo-badge{display:inline-block;font-size:10px;padding:2px 6px;border-radius:999px;background:#1e293b;color:var(--kbo-muted)}
.kbo-badge.ok{background:#14532d;color:#86efac}
.kbo-badge.stale{background:#422006;color:#fcd34d}
#kbo-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:99999;background:#0f172a;color:#fff;padding:10px 16px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.45);font-size:13px;max-width:90vw;display:none}
#kbo-toast.show{display:block}
@media(max-width:640px){#kbo-fab,#kbo-save{bottom:72px}#kbo-panel{bottom:132px;right:12px}}
