:root{--bg:#0b1020;--panel:#111827;--panel2:#151f32;--text:#f8fafc;--muted:#94a3b8;--line:#263245;--blue:#38bdf8;--blue2:#2563eb;--danger:#ef4444;--ok:#22c55e}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#1e3a8a 0,#0b1020 35%,#060914 100%);color:var(--text);font-family:Inter,system-ui,sans-serif}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(6,9,20,.75);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;font-weight:800}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--blue2));font-size:14px}.nav-actions{display:flex;gap:18px;align-items:center;color:var(--muted)}.page{padding:34px;max-width:1440px;margin:auto}.auth-card{max-width:460px;margin:60px auto;padding:34px;border:1px solid var(--line);border-radius:24px;background:rgba(17,24,39,.82);box-shadow:0 24px 80px rgba(0,0,0,.35)}h1{font-size:34px;line-height:1.1;margin:0 0 10px}h2,h3{margin:0 0 10px}.eyebrow{color:var(--blue);text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:800}.muted{color:var(--muted);line-height:1.55}.form-stack,label{display:flex;flex-direction:column;gap:8px}.form-stack{gap:16px}input,select{width:100%;height:42px;border-radius:12px;border:1px solid var(--line);background:#0b1220;color:var(--text);padding:0 12px}input[type=color]{padding:4px}.primary,.secondary,.danger,button{border:0;border-radius:12px;padding:12px 16px;cursor:pointer;font-weight:700}.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));color:white}.secondary{background:#1f2937;color:white;border:1px solid var(--line)}.danger{background:#3f1017;color:#fecaca;border:1px solid #7f1d1d}.link-btn{background:none;color:var(--blue);padding:0}.as-link{text-decoration:none;display:inline-block}.dashboard-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.face-card,.empty,.panel{background:rgba(17,24,39,.86);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 18px 60px rgba(0,0,0,.24)}.mini-watch{width:160px;height:160px;border-radius:38px;margin-bottom:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 0 10px rgba(255,255,255,.05),0 20px 50px rgba(0,0,0,.35)}.mini-watch span{font-size:34px;font-weight:800}.mini-watch small{color:rgba(255,255,255,.65)}.card-actions,.button-row{display:flex;gap:10px;align-items:center}.card-actions a,.card-actions button{background:#0b1220;color:white;border:1px solid var(--line);text-decoration:none;border-radius:10px;padding:10px 12px}.editor-shell{display:grid;grid-template-columns:300px 1fr 320px;gap:22px;align-items:start}.panel{position:sticky;top:94px}.canvas-area{min-height:700px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:22px}.device-tabs{display:flex;gap:12px;margin-bottom:28px;color:var(--muted)}.device-tabs span{background:rgba(255,255,255,.06);border:1px solid var(--line);padding:9px 13px;border-radius:999px}.watch-frame{width:430px;height:430px;border-radius:92px;background:#05070d;padding:47px;box-shadow:inset 0 0 0 14px #111827,inset 0 0 0 20px #030712,0 30px 90px rgba(0,0,0,.55)}.watch-canvas{position:relative;width:336px;height:336px;border-radius:48px;background:#111827;overflow:hidden}.watch-el{position:absolute;transform:translate(-50%,-50%);min-width:30px;text-align:center;cursor:move;user-select:none;white-space:nowrap}.watch-el.selected{outline:1px dashed var(--blue);outline-offset:5px}.hidden{display:none!important}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.asset-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.asset-list div{display:flex;justify-content:space-between;background:#0b1220;border:1px solid var(--line);padding:10px;border-radius:12px}.full{width:100%;margin-top:10px}.alert{padding:14px 18px;border-radius:12px;margin-bottom:18px}.alert.error{background:#3f1017;color:#fecaca}.alert.success{background:#12351f;color:#bbf7d0}hr{border:0;border-top:1px solid var(--line);margin:20px 0}@media(max-width:1050px){.editor-shell{grid-template-columns:1fr}.panel{position:static}.watch-frame{transform:scale(.85);transform-origin:top center}.canvas-area{min-height:440px}}

.fitbit-editor { grid-template-columns: minmax(280px, 360px) 1fr minmax(280px, 360px); align-items: start; }
.panel-wide { max-height: calc(100vh - 115px); overflow: auto; }
.fitbit-editor details { border: 1px solid rgba(148,163,184,.25); border-radius: 14px; padding: 10px 12px; background: rgba(15,23,42,.025); }
.fitbit-editor summary { cursor: pointer; font-weight: 800; color: #0f172a; }
.compact-top { margin-top: 10px; }
.toggle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.toggle-pill { display: flex; gap: 8px; align-items: center; border: 1px solid #e5e7eb; border-radius: 999px; padding: 8px 10px; background: white; font-size: 13px; font-weight: 700; }
.toggle-pill input { width: auto; }
.watch-svg { display: block; border-radius: 64px; box-shadow: 0 24px 80px rgba(15,23,42,.35); background: #111827; touch-action: none; }
#svgBg { fill: #111827; }
.svg-item { cursor: move; user-select: none; }
.svg-item.selected text, .svg-item.selected .preview-icon { stroke: #38bdf8; stroke-width: 1; paint-order: stroke fill; }
.preview-icon { font-family: Arial, sans-serif; font-weight: bold; dominant-baseline: hanging; }
.preview-actions { display: flex; gap: 10px; justify-content: center; margin-top: 16px; }
.sub-panel { border: 1px solid #e5e7eb; background: #f8fafc; border-radius: 14px; padding: 12px; }
.hidden { display: none !important; }
@media (max-width: 1150px) { .fitbit-editor { grid-template-columns: 1fr; } .panel-wide { max-height: none; } }

/* v2.1 contrast fix for dark cPanel/editor theme */
.fitbit-editor details {
  background: rgba(15,23,42,.72);
  border-color: rgba(148,163,184,.28);
}
.fitbit-editor summary,
.fitbit-editor label,
.fitbit-editor strong,
.fitbit-editor small,
.fitbit-editor .muted {
  color: var(--text);
}
.fitbit-editor .muted,
.fitbit-editor small {
  color: var(--muted);
}
.toggle-grid {
  grid-template-columns: 1fr;
  gap: 10px;
}
.toggle-pill {
  min-height: 46px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(148,163,184,.32);
  border-radius: 14px;
  padding: 11px 13px;
  background: #0b1220;
  color: var(--text);
  font-size: 14px;
  font-weight: 800;
}
.toggle-pill span {
  color: var(--text);
  opacity: 1;
}
.toggle-pill input {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  accent-color: var(--blue2);
}
.sub-panel {
  border-color: rgba(148,163,184,.28);
  background: rgba(15,23,42,.72);
  color: var(--text);
}
.fitbit-editor input,
.fitbit-editor select {
  color: var(--text);
  background-color: #0b1220;
  border-color: rgba(148,163,184,.32);
}
.fitbit-editor select option {
  color: #111827;
  background: #ffffff;
}

.bridge-widget{position:fixed;right:22px;bottom:22px;width:310px;background:rgba(8,14,28,.96);border:1px solid #24304a;border-radius:18px;padding:14px;box-shadow:0 18px 50px rgba(0,0,0,.35);z-index:20;color:#eaf1ff}
.bridge-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.bridge-head strong{display:block;font-size:14px}.bridge-head small{display:block;color:#94a3b8;margin-top:2px}.bridge-dot{width:12px;height:12px;border-radius:50%;background:#64748b;box-shadow:0 0 0 4px rgba(100,116,139,.15)}.bridge-dot.ok{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.15)}.bridge-dot.warn{background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.15)}.bridge-pair{display:block;color:#cbd5e1;font-size:12px;margin-bottom:10px}.bridge-pair input{margin-top:5px;width:100%;background:#0b1220;border:1px solid #334155;border-radius:10px;color:#fff;padding:9px 10px;font-weight:700;letter-spacing:2px}.bridge-grid{display:grid;grid-template-columns:95px 1fr;gap:7px 10px;font-size:12px;margin:10px 0}.bridge-grid span{color:#94a3b8}.bridge-grid b{font-weight:700;color:#f8fafc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bridge-log{margin-top:10px;max-height:76px;overflow:auto;background:#050a14;border:1px solid #1e293b;border-radius:10px;padding:8px;color:#a7b6d0;font-size:11px;line-height:1.35}.bridge-widget .full{width:100%;margin-top:8px}.bridge-widget button[disabled]{opacity:.45;cursor:not-allowed}
@media (max-width:980px){.bridge-widget{position:static;width:auto;margin:16px}}
