/* panel.css — Pocket's panel in the house backoffice look (ORG.md §12.41):
   the --bb-* tokens mirrored, not shared, like every other house app. */
@font-face {
  font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url("../fonts/plus-jakarta-sans-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url("../fonts/plus-jakarta-sans-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
:root {
  --bb-white: #ffffff; --bb-grey-100: #ebf0f7; --bb-grey-200: #dde4ee; --bb-grey-400: #9aa6b8; --bb-grey-600: #627089;
  --bb-ink: #17223a; --bb-navy: #1c3765; --bb-blue-bright: #2f7bf6; --bb-blue-glow: rgba(47, 123, 246, .28);
  --bb-blue: #e1ebfd; --bb-rose: #fde4e4; --bb-rose-deep: #c73a3a; --bb-yellow: #fff4d1;
  --bb-green-light: #22b07d; --bb-glass: rgba(255, 255, 255, .68); --bb-glass-edge: rgba(255, 255, 255, .85);
  --bb-blur: blur(18px) saturate(140%);
  --bb-shadow: 0 18px 40px -22px rgba(28, 55, 101, .28), 0 2px 8px -2px rgba(28, 55, 101, .06);
  --bb-bg-gradient: radial-gradient(1200px 700px at 12% -10%, #ffffff 0%, rgba(255, 255, 255, 0) 60%),
    radial-gradient(900px 600px at 100% 0%, #dbe7fb 0%, rgba(219, 231, 251, 0) 65%),
    linear-gradient(160deg, #f3f6fb 0%, #e4ecf8 55%, #dfe7f4 100%);
  --bb-line: rgba(28, 55, 101, .09); --bb-focus: #7fb0ff;
  --bb-font: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  --bb-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --bb-radius: 22px; --bb-radius-md: 16px; --bb-radius-sm: 12px; --bb-pill: 999px;
  --bb-ease: 160ms cubic-bezier(.4, 0, .2, 1);
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; font: 15px/1.5 var(--bb-font); color: var(--bb-ink); background: var(--bb-bg-gradient) fixed; }
h1, h2 { color: var(--bb-navy); margin: 0 0 .5rem; }
h1 { font-size: 1.4rem; } h2 { font-size: 1.1rem; }
code, pre { font-family: var(--bb-mono); }
pre { white-space: pre-wrap; word-break: break-all; background: var(--bb-grey-100); padding: .75rem; border-radius: var(--bb-radius-sm); }
.muted { color: var(--bb-grey-600); }
.bar { display: flex; align-items: center; gap: 1.5rem; padding: 1rem 2rem; background: var(--bb-glass); backdrop-filter: var(--bb-blur); border-bottom: 1px solid var(--bb-line); position: sticky; top: 0; z-index: 2; }
.bar nav { display: flex; gap: .5rem; flex: 1; }
main { max-width: 980px; margin: 1.5rem auto; padding: 0 1rem; }
.card { background: var(--bb-glass); backdrop-filter: var(--bb-blur); border: 1px solid var(--bb-glass-edge); border-radius: var(--bb-radius); box-shadow: var(--bb-shadow); padding: 1.25rem 1.5rem; margin-bottom: 1.25rem; }
.row { display: flex; flex-wrap: wrap; gap: .6rem; align-items: flex-end; margin: .5rem 0; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .75rem 1rem; }
.grid .row { grid-column: 1 / -1; }
label { display: flex; flex-direction: column; gap: .25rem; font-size: .85rem; color: var(--bb-grey-600); }
label.inline { flex-direction: row; align-items: center; gap: .4rem; }
input, textarea { font: inherit; color: var(--bb-ink); padding: .55rem .8rem; border: 1px solid var(--bb-grey-200); border-radius: var(--bb-radius-sm); background: var(--bb-white); min-width: 0; }
input:focus, textarea:focus, button:focus-visible { outline: 2px solid var(--bb-focus); outline-offset: 1px; }
input[type=checkbox] { width: 1.05rem; height: 1.05rem; padding: 0; accent-color: var(--bb-blue-bright); }
button { font: inherit; font-weight: 600; cursor: pointer; padding: .55rem 1.1rem; border-radius: var(--bb-pill); border: 1px solid var(--bb-grey-200); background: var(--bb-white); color: var(--bb-navy); transition: background var(--bb-ease), box-shadow var(--bb-ease); }
button:hover { background: var(--bb-blue); }
button.primary { background: var(--bb-blue-bright); border-color: var(--bb-blue-bright); color: var(--bb-white); box-shadow: 0 8px 20px -10px var(--bb-blue-glow); }
button.primary:hover { background: var(--bb-navy); }
button.danger { color: var(--bb-rose-deep); border-color: var(--bb-rose); }
button.danger:hover { background: var(--bb-rose); }
button.ghost { background: transparent; }
button.small { padding: .25rem .7rem; font-size: .8rem; }
.tab { background: transparent; border-color: transparent; }
.tab.active { background: var(--bb-white); border-color: var(--bb-grey-200); }
.device { border-top: 1px solid var(--bb-line); padding: .9rem 0; }
.device-head { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.dot { width: .65rem; height: .65rem; border-radius: 50%; background: var(--bb-grey-400); display: inline-block; }
.dot.on { background: var(--bb-green-light); box-shadow: 0 0 0 3px rgba(34, 176, 125, .18); }
.grants { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0; }
.chip { flex-direction: row; align-items: center; gap: .35rem; padding: .3rem .75rem; border: 1px solid var(--bb-grey-200); border-radius: var(--bb-pill); background: var(--bb-white); color: var(--bb-ink); }
.memories { list-style: none; padding: 0; margin: .5rem 0; }
.memories li { display: flex; gap: .75rem; align-items: center; padding: .35rem 0; border-bottom: 1px dashed var(--bb-line); }
.memories li span { flex: 1; }
.mcp-row { display: grid; grid-template-columns: 1fr 2fr auto 1fr auto; gap: .5rem; align-items: center; margin: .4rem 0; }
.notice { background: var(--bb-blue); border-radius: var(--bb-radius-sm); padding: .75rem 1rem; margin-top: .75rem; }
.notice.warn { background: var(--bb-yellow); }
.error { color: var(--bb-rose-deep); min-height: 1.2em; }
.flash { position: fixed; bottom: 1.25rem; left: 50%; transform: translateX(-50%); background: var(--bb-navy); color: var(--bb-white); padding: .5rem 1.1rem; border-radius: var(--bb-pill); }
.flash:empty { display: none; }
.flash.bad { background: var(--bb-rose-deep); }
body.login { display: grid; place-items: center; }
.login-card { width: min(380px, 92vw); }
.login-card form { display: flex; flex-direction: column; gap: .8rem; }
@media (max-width: 640px) { .mcp-row { grid-template-columns: 1fr; } .bar { padding: .75rem 1rem; gap: .75rem; } }
