claudy 0.2.2

Modern multi-provider launcher for Claude CLI
/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* =========================================================
   * Dark — Binance exact tokens (DESIGN-dark.md)
   * Canvas: #0b0e11 · Card: #1e2329 · Elevated: #2b3139
   * Accent: #fcd535 Binance Yellow · on-primary: #181a20
   * ========================================================= */
  --bg:               #0b0e11;
  --surface:          #0b0e11;
  --surface-lowest:   #0b0e11;
  --surface-low:      #131920;
  --surface-mid:      #1e2329;
  --surface-high:     #2b3139;
  --surface-highest:  #363d47;
  --surface-variant:  #2b3139;
  --surface-card:     #1e2329;
  --surface-elevated: #2b3139;

  --on-surface:         #eaecef;
  --on-surface-variant: #b7bdc6;
  --outline:            #707a8a;
  --outline-variant:    #474d57;

  --accent:        #fcd535;
  --accent-hover:  #f0b90b;
  --accent-dim:    rgba(252, 213, 53, 0.08);
  --accent-glow:   rgba(252, 213, 53, 0.15);
  --on-accent:     #181a20;

  --primary:           #fcd535;
  --primary-active:    #f0b90b;
  --primary-disabled:  #3a3a1f;
  --on-primary:        #181a20;

  --trading-up:  #0ecb81;
  --trading-down: #f6465d;
  --positive:    #0ecb81;
  --critical:    #f6465d;
  --warning:     #f2b94b;
  --error:       #f6465d;

  --border:        #2b3139;
  --border-strong: #363d47;
  --border-hover:  #474d57;

  --chart-1: #fcd535;
  --chart-2: #0ecb81;
  --chart-3: #f6465d;
  --chart-4: #707a8a;
  --chart-5: #f0b90b;
  --chart-6: #929aa5;

  --font-display: 'Bricolage Grotesque', sans-serif;
  --font-data:    'JetBrains Mono', ui-monospace, monospace;

  /* Binance radius — tight */
  --radius-none: 0px;
  --radius-xs:   2px;
  --radius-sm:   4px;
  --radius-md:   6px;
  --radius-lg:   8px;
  --radius-xl:   12px;
  --radius-pill: 9999px;

  --nav-width:         160px;
  --top-bar-height:    48px;
  --status-bar-height: 24px;
}

body.light {
  /* =========================================================
   * Light — Airbnb exact tokens (DESIGN-light.md)
   * Canvas: #ffffff · Hairline: #dddddd · Ink: #222222
   * Accent: #ff385c Rausch · on-primary: #ffffff
   * ========================================================= */
  --bg:               #ffffff;
  --surface:          #ffffff;
  --surface-lowest:   #ffffff;
  --surface-low:      #f7f7f7;
  --surface-mid:      #f2f2f2;
  --surface-high:     #ebebeb;
  --surface-highest:  #dddddd;
  --surface-variant:  #f2f2f2;
  --surface-card:     #ffffff;
  --surface-elevated: #f7f7f7;

  --on-surface:         #222222;
  --on-surface-variant: #3f3f3f;
  --outline:            #6a6a6a;
  --outline-variant:    #929292;

  --accent:        #ff385c;
  --accent-hover:  #e00b41;
  --accent-dim:    rgba(255, 56, 92, 0.06);
  --accent-glow:   rgba(255, 56, 92, 0.1);
  --on-accent:     #ffffff;

  --primary:          #ff385c;
  --primary-active:   #e00b41;
  --primary-disabled: #ffd1da;
  --on-primary:       #ffffff;

  --trading-up:  #008a05;
  --trading-down: #c13515;
  --positive:    #008a05;
  --critical:    #c13515;
  --warning:     #e65100;
  --error:       #c13515;

  --border:        #dddddd;
  --border-strong: #c1c1c1;
  --border-hover:  #929292;

  --chart-1: #ff385c;
  --chart-2: #222222;
  --chart-3: #6a6a6a;
  --chart-4: #929292;
  --chart-5: #e00b41;
  --chart-6: #c1c1c1;

  --font-display: 'Space Grotesk', sans-serif;

  /* Airbnb radius — generous, pill-friendly */
  --radius-none: 0px;
  --radius-xs:   4px;
  --radius-sm:   8px;
  --radius-md:   14px;
  --radius-lg:   20px;
  --radius-xl:   32px;
  --radius-pill: 9999px;
}

body {
  background: var(--bg);
  color: var(--on-surface);
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  -webkit-font-smoothing: antialiased;
  transition: background-color 150ms ease-out, color 150ms ease-out;
}

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  font-size: 18px;
}

#app {
  width: 100%;
  height: 100vh;
  overflow: hidden;
}