:root[data-theme=dark]{--ruby:oklch(0.62 0.20 18);--ruby-dark:oklch(0.46 0.18 18);--ruby-soft:oklch(0.62 0.20 18/0.14);--gold:oklch(0.78 0.10 80);--gold-soft:oklch(0.78 0.10 80/0.16);--bg-0:oklch(0.115 0.008 30);--bg-1:oklch(0.145 0.009 30);--bg-2:oklch(0.18 0.01 30);--bg-3:oklch(0.22 0.012 30);--bg-glass:oklch(0.16 0.01 30/0.72);--border:oklch(0.27 0.012 35/0.55);--border-strong:oklch(0.34 0.014 35/0.7);--border-gold:oklch(0.78 0.10 80/0.22);--fg-0:oklch(0.97 0.006 80);--fg-1:oklch(0.82 0.008 60);--fg-2:oklch(0.62 0.01 50);--fg-3:oklch(0.48 0.012 45);--success:oklch(0.72 0.16 150);--success-soft:oklch(0.72 0.16 150/0.14);--warning:oklch(0.80 0.14 75);--warning-soft:oklch(0.80 0.14 75/0.16);--danger:oklch(0.66 0.22 25);--danger-soft:oklch(0.66 0.22 25/0.14);--violet:oklch(0.66 0.20 295);--violet-soft:oklch(0.66 0.20 295/0.14);--shadow-card:0 1px 0 oklch(1 0 0/0.04) inset,0 12px 32px -16px rgb(0 0 0/0.6);--shadow-pop:0 24px 48px -20px rgb(0 0 0/0.7),0 0 0 1px oklch(1 0 0/0.04) inset;--ruby-glow:0 0 0 1px oklch(0.62 0.20 18/0.4),0 8px 24px -8px oklch(0.62 0.20 18/0.5)}:root[data-theme=light]{--ruby:oklch(0.55 0.21 18);--ruby-dark:oklch(0.42 0.18 18);--ruby-soft:oklch(0.55 0.21 18/0.10);--gold:oklch(0.62 0.10 75);--gold-soft:oklch(0.62 0.10 75/0.14);--bg-0:oklch(0.985 0.004 60);--bg-1:oklch(1 0 0);--bg-2:oklch(0.97 0.005 50);--bg-3:oklch(0.94 0.006 50);--bg-glass:oklch(1 0 0/0.78);--border:oklch(0.88 0.006 45);--border-strong:oklch(0.82 0.008 45);--border-gold:oklch(0.62 0.10 75/0.32);--fg-0:oklch(0.20 0.01 40);--fg-1:oklch(0.36 0.01 40);--fg-2:oklch(0.52 0.01 40);--fg-3:oklch(0.66 0.01 40);--success:oklch(0.56 0.16 150);--success-soft:oklch(0.56 0.16 150/0.10);--warning:oklch(0.65 0.14 75);--warning-soft:oklch(0.65 0.14 75/0.12);--danger:oklch(0.56 0.22 25);--danger-soft:oklch(0.56 0.22 25/0.10);--violet:oklch(0.55 0.20 295);--violet-soft:oklch(0.55 0.20 295/0.10);--shadow-card:0 1px 2px rgb(0 0 0/0.04),0 8px 24px -12px rgb(0 0 0/0.08);--shadow-pop:0 16px 32px -12px rgb(0 0 0/0.16);--ruby-glow:0 0 0 1px oklch(0.55 0.21 18/0.3),0 6px 18px -6px oklch(0.55 0.21 18/0.35)}:root{--font-display:"Instrument Serif","Times New Roman",serif;--font-body:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;--font-num:"Plus Jakarta Sans",system-ui,sans-serif;--row-h:44px;--radius-sm:8px;--radius:14px;--radius-lg:20px;--radius-xl:28px}:root[data-theme]{--paper-0:#FCF8F0;--paper-1:#F4ECDC;--paper-2:#ECE0CA;--paper-3:#E0D2B6;--paper-4:#CDBB97;--ink-900:#0F2A45;--ink-800:#15375A;--ink-700:#1E436A;--ink-600:#2C547E;--ink-500:#4A6B8E;--ink-400:#6E89A6;--ink-300:#9DB1C6;--brass-700:#8C6B22;--brass-600:#A9842F;--brass-500:#C9A24B;--brass-400:#D9B968;--brass-300:#E7CF94;--brass-200:#F1E2BE;--guild-ruby:#A8423B;--guild-ruby-soft:#E9C9C3;--guild-navy:#2C547E;--guild-navy-soft:#C6D4E2;--action:#6E9A46;--action-hover:#7BAA54;--action-press:#5C8439;--action-soft:#DCE7C6;--action-ink:#2C5A3F;--action-on:#FFFFFF;--status-open:#3E8E5A;--status-open-soft:#CDE6D4;--status-warn:#C9892F;--status-warn-soft:#F2DEB8;--status-danger:#A8423B;--status-danger-soft:#ECCBC6;--status-info:#2C547E;--status-info-soft:#C6D4E2;--ruby:var(--guild-ruby);--ruby-dark:#8A332D;--ruby-soft:var(--guild-ruby-soft);--gold:var(--brass-600);--gold-soft:var(--brass-200);--bg-0:var(--paper-1);--bg-1:var(--paper-0);--bg-2:var(--paper-1);--bg-3:var(--paper-2);--bg-glass:rgba(252,248,240,0.82);--border:var(--paper-3);--border-strong:var(--paper-4);--border-gold:rgba(201,162,75,0.30);--fg-0:var(--ink-900);--fg-1:var(--ink-800);--fg-2:var(--ink-500);--fg-3:var(--ink-400);--success:var(--status-open);--success-soft:var(--status-open-soft);--warning:var(--status-warn);--warning-soft:var(--status-warn-soft);--danger:var(--status-danger);--danger-soft:var(--status-danger-soft);--violet:var(--guild-navy);--violet-soft:var(--guild-navy-soft);--shadow-xs:0 1px 2px rgba(15,42,69,0.06);--shadow-card:0 8px 22px rgba(15,42,69,0.09),0 2px 6px rgba(15,42,69,0.05);--shadow-pop:0 18px 44px rgba(15,42,69,0.12),0 4px 12px rgba(15,42,69,0.06);--ruby-glow:0 0 0 1px rgba(201,162,75,0.35),0 8px 30px rgba(201,162,75,0.28);--shadow-inset:inset 0 1px 2px rgba(15,42,69,0.06);--shadow-clay:0 6px 14px rgba(15,42,69,0.10),0 2px 4px rgba(15,42,69,0.07),inset 0 1.5px 0 rgba(255,255,255,0.40);--shadow-clay-hover:0 10px 22px rgba(15,42,69,0.14),0 3px 6px rgba(15,42,69,0.08),inset 0 1.5px 0 rgba(255,255,255,0.45);--shadow-clay-press:inset 0 3px 7px rgba(15,42,69,0.20),inset 0 1px 2px rgba(15,42,69,0.12);--font-display:var(--font-display-next),"Bricolage Grotesque",system-ui,sans-serif;--font-body:var(--font-body-next),"Hanken Grotesk",system-ui,-apple-system,sans-serif;--font-mono:var(--font-mono-next),"Spline Sans Mono",ui-monospace,monospace;--font-num:var(--font-mono-next),"Spline Sans Mono",ui-monospace,monospace;--radius-sm:10px;--radius:16px;--radius-lg:22px;--radius-xl:32px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg-0);color:var(--fg-0);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11"}button{cursor:pointer;border:none;background:none;color:inherit;padding:0}button,input{font-family:inherit}.ruby-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum","tnum"}.ruby-gold{color:var(--gold)}.ruby-mute{color:var(--fg-2)}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(900px 600px at 100% -10%,rgba(201,162,75,.1),transparent 60%),radial-gradient(720px 520px at -10% 110%,rgba(44,84,126,.06),transparent 60%);z-index:0}.ruby-app{display:flex;min-height:100vh;position:relative;z-index:1}.ruby-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.ruby-content{flex:1 1;padding:22px 32px 32px;max-width:1640px;width:100%;margin:0 auto}.ruby-screen{gap:22px}.ruby-screen,.ruby-sidebar{display:flex;flex-direction:column}.ruby-sidebar{width:244px;flex-shrink:0;background:var(--bg-1);border-right:1px solid var(--border);height:100vh;position:-webkit-sticky;position:sticky;top:0;z-index:30;transition:width .22s ease}.ruby-sidebar.is-collapsed{width:76px}.ruby-sidebar-brand{display:flex;align-items:center;gap:12px;padding:22px 20px 18px;border-bottom:1px solid var(--border);position:relative}.ruby-sidebar-brand:after{content:"";position:absolute;bottom:-1px;left:16px;right:16px;height:1px;background:linear-gradient(90deg,transparent,var(--border-gold),transparent)}.ruby-brand-mark{width:40px;height:40px;border-radius:12px;background:var(--paper-1);border:1px solid var(--border-gold);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-xs),inset 0 1px 0 rgba(255,255,255,.6)}.ruby-brand-mark-sm{width:32px;height:32px;border-radius:9px}.ruby-brand-name{display:flex;flex-direction:column;gap:1px;min-width:0}.ruby-brand-wordmark{font-family:var(--font-display);font-size:26px;line-height:1;letter-spacing:-.01em;color:var(--fg-0)}.ruby-brand-tag{font-size:9.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-weight:500}.ruby-sidebar-nav{flex:1 1;overflow-y:auto;padding:14px 12px;gap:4px}.ruby-nav-group,.ruby-sidebar-nav{display:flex;flex-direction:column}.ruby-nav-group{gap:2px}.ruby-nav-label{display:flex;align-items:center;gap:10px;padding:14px 12px 6px;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--fg-3)}.ruby-nav-hairline{flex:1 1;height:1px;background:var(--border)}.ruby-nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;font-size:13.5px;color:var(--fg-1);font-weight:500;position:relative;transition:color .15s,background .15s;text-align:left;width:100%}.ruby-nav-item:hover{background:var(--bg-2);color:var(--fg-0)}.ruby-nav-item.is-active{background:var(--ruby-soft);color:var(--ruby);font-weight:600}.ruby-nav-item.is-active:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:22px;background:var(--ruby);border-radius:0 3px 3px 0}.ruby-nav-item.is-active svg{color:var(--ruby)}.ruby-nav-item.is-gold svg{color:var(--gold)}.ruby-nav-text{flex:1 1}.ruby-nav-pill{background:var(--ruby);color:white;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-nav-pin{position:absolute;top:8px;right:16px;width:6px;height:6px;background:var(--ruby);border-radius:50%}.ruby-sidebar-foot{padding:14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.ruby-user{display:flex;align-items:center;gap:10px;padding:6px;border-radius:10px}.ruby-user-meta{flex:1 1;min-width:0}.ruby-user-name{font-size:12px;font-weight:600;color:var(--fg-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ruby-user-role{font-size:10px;color:var(--fg-2)}.ruby-icon-btn{width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--fg-1);position:relative;transition:background .15s,color .15s}.ruby-icon-btn:hover{background:var(--bg-2);color:var(--fg-0)}.ruby-icon-btn-dot{position:absolute;top:7px;right:7px;width:6px;height:6px;background:var(--ruby);border-radius:50%;border:2px solid var(--bg-1)}.ruby-collapse-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;font-size:11px;color:var(--fg-2);width:100%;justify-content:center}.ruby-collapse-btn:hover{background:var(--bg-2);color:var(--fg-0)}.ruby-collapse-btn-tiny{padding:6px}.ruby-topbar{display:flex;align-items:center;gap:16px;padding:14px 32px;border-bottom:1px solid var(--border);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:-webkit-sticky;position:sticky;top:0;z-index:20}.ruby-topbar-search{flex:1 1;max-width:480px;position:relative;display:flex;align-items:center}.ruby-topbar-search-icon{position:absolute;left:14px;color:var(--fg-2);pointer-events:none}.ruby-topbar-search-input{width:100%;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:9px 60px 9px 40px;font-size:13px;color:var(--fg-0);outline:none;transition:border-color .15s}.ruby-topbar-search-input::placeholder{color:var(--fg-3)}.ruby-topbar-search-input:focus{border-color:var(--ruby);box-shadow:0 0 0 3px var(--ruby-soft)}.ruby-topbar-kbd{position:absolute;right:10px;font-family:var(--font-num);font-size:10px;color:var(--fg-2);background:var(--bg-3);border:1px solid var(--border);padding:2px 5px;border-radius:5px}.ruby-topbar-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.ruby-topbar-date{font-size:12px;color:var(--fg-2)}.ruby-mtopbar{display:none;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:-webkit-sticky;position:sticky;top:0;z-index:20}.ruby-mtopbar-l{display:flex;align-items:center;gap:10px}.ruby-mtopbar-title{font-family:var(--font-display);font-size:22px;line-height:1}.ruby-mtopbar-r{display:flex;align-items:center;gap:4px}.ruby-mtab{display:none;position:-webkit-sticky;position:sticky;bottom:0;left:0;right:0;background:var(--bg-glass);-webkit-backdrop-filter:blur(24px) saturate(140%);backdrop-filter:blur(24px) saturate(140%);border-top:1px solid var(--border);padding:6px 8px calc(8px + env(safe-area-inset-bottom));z-index:30}.ruby-mtab-item{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;border-radius:12px;color:var(--fg-2);position:relative;font-size:10px;font-weight:500;transition:color .15s}.ruby-mtab-icon-wrap{position:relative;height:22px}.ruby-mtab-badge{position:absolute;top:-3px;right:-8px;background:var(--ruby);color:white;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;border:2px solid var(--bg-1)}.ruby-mtab-item.is-active{color:var(--ruby)}.ruby-mtab-item.is-active .ruby-mtab-icon-wrap:after{content:"";position:absolute;inset:-8px -14px;background:var(--ruby-soft);border-radius:16px;z-index:-1}.ruby-mtab-indicator{position:absolute;top:0;left:50%;transform:translateX(-50%);width:24px;height:3px;background:var(--ruby);border-radius:0 0 3px 3px}.ruby-mtab-label{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-pill,999px);font-size:13px;font-weight:600;letter-spacing:-.005em;transition:all .15s var(--ease-spring,ease);white-space:nowrap;border:1px solid transparent}.ruby-btn:active{transform:scale(.98)}.ruby-btn-sm{padding:7px 13px;font-size:12px;gap:6px;border-radius:999px}.ruby-btn-lg{padding:13px 22px;font-size:14px}.ruby-btn-primary{background:var(--action);color:var(--action-on);border-color:transparent;box-shadow:var(--shadow-clay)}.ruby-btn-primary:hover{background:var(--action-hover);box-shadow:var(--shadow-clay-hover);transform:translateY(-1px)}.ruby-btn-primary:active{background:var(--action-press);box-shadow:var(--shadow-clay-press);transform:translateY(1px)}.ruby-btn-secondary{background:var(--paper-0);color:var(--ink-800);border-color:var(--border-strong);box-shadow:var(--shadow-clay)}.ruby-btn-secondary:hover{background:var(--paper-2);box-shadow:var(--shadow-clay-hover);transform:translateY(-1px)}.ruby-btn-secondary:active{box-shadow:var(--shadow-clay-press);transform:translateY(1px)}.ruby-btn-ghost{background:transparent;color:var(--fg-1)}.ruby-btn-ghost:hover{background:var(--bg-2);color:var(--fg-0)}.ruby-btn-gold{background:var(--brass-500);color:var(--ink-900);border-color:transparent;box-shadow:var(--shadow-clay)}.ruby-btn-gold:hover{background:var(--brass-400);box-shadow:var(--shadow-clay-hover);transform:translateY(-1px)}.ruby-card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow-card);position:relative;overflow:hidden}[data-theme=dark] .ruby-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,oklch(1 0 0/.06),transparent)}.ruby-card-gold{border-color:var(--border-gold);background:linear-gradient(180deg,oklch(.78 .1 80/.025),transparent),var(--bg-1)}.ruby-card-gold:before{background:linear-gradient(90deg,transparent,var(--gold),transparent)!important;opacity:.5}.ruby-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.ruby-card-head-side{display:flex;align-items:center;gap:14px}.ruby-card-head-num{text-align:right;display:flex;flex-direction:column}.ruby-card-head-num .ruby-num{font-family:var(--font-display);font-size:24px;color:var(--gold);line-height:1}.ruby-card-head-num-l{font-size:10px;color:var(--fg-2);text-transform:uppercase;letter-spacing:.1em;margin-top:2px}.ruby-card-title{margin:0;font-family:var(--font-display);font-size:22px;font-weight:400;letter-spacing:-.005em;line-height:1.2;color:var(--fg-0)}.ruby-card-sub{margin:4px 0 0;font-size:12px;color:var(--fg-2)}.ruby-grid{display:grid;grid-gap:18px;gap:18px}.ruby-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ruby-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ruby-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.ruby-grid-12{grid-template-columns:repeat(12,minmax(0,1fr))}.ruby-col-5{grid-column:span 5}.ruby-col-7{grid-column:span 7}.ruby-stagger>*{animation:rubyIn .45s cubic-bezier(.22,1,.36,1) both}.ruby-stagger>:first-child{animation-delay:0s}.ruby-stagger>:nth-child(2){animation-delay:60ms}.ruby-stagger>:nth-child(3){animation-delay:.12s}.ruby-stagger>:nth-child(4){animation-delay:.18s}.ruby-stagger>:nth-child(5){animation-delay:.24s}.ruby-stagger>:nth-child(6){animation-delay:.3s}@keyframes rubyIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ruby-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}.ruby-page-title{margin:4px 0 6px;font-family:var(--font-display);font-size:44px;font-weight:400;line-height:1;letter-spacing:-.015em;color:var(--fg-0)}.ruby-page-sub{margin:0;color:var(--fg-2);font-size:13px}.ruby-page-actions{flex-wrap:wrap}.ruby-eyebrow,.ruby-page-actions{display:flex;align-items:center;gap:10px}.ruby-eyebrow{color:var(--gold);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.ruby-eyebrow .ruby-wave{width:32px;height:7px}.ruby-hero{background:radial-gradient(140% 100% at 100% 0,oklch(.62 .2 18/.1),transparent 55%),linear-gradient(180deg,var(--bg-1),color-mix(in oklch,var(--bg-1),var(--bg-0) 50%));border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:32px;position:relative;overflow:hidden}.ruby-hero:after{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,var(--border-gold),transparent)}.ruby-hero-eyebrow{display:flex;align-items:center;gap:12px;color:var(--gold);font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.ruby-hero-wave{width:36px;height:8px}.ruby-hero-title{margin:8px 0;font-family:var(--font-display);font-size:56px;font-weight:400;line-height:1;letter-spacing:-.018em;display:flex;flex-wrap:wrap;align-items:baseline;gap:14px}.ruby-hero-greeting{color:var(--fg-1)}.ruby-hero-name{color:var(--ruby);font-style:italic;font-feature-settings:"ss01"}.ruby-hero-sub{margin:0;font-size:15px;color:var(--fg-1);max-width:540px}.ruby-hero-sub strong{font-family:var(--font-num);color:var(--fg-0);font-weight:700}.ruby-hero-r{flex-shrink:0}.ruby-hero-stat{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:16px 22px;min-width:220px}.ruby-hero-stat-label{font-size:10.5px;color:var(--fg-2);text-transform:uppercase;letter-spacing:.16em;font-weight:600}.ruby-hero-stat-value{font-family:var(--font-display);font-size:56px;line-height:1;color:var(--fg-0);display:flex;align-items:baseline;gap:2px;margin:6px 0 10px}.ruby-hero-stat-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-hero-stat-suffix{font-size:28px;color:var(--gold)}.ruby-hero-stat-bar{height:4px;background:var(--bg-3);border-radius:999px;overflow:hidden}.ruby-hero-stat-bar-fill{height:100%;background:linear-gradient(90deg,var(--ruby),var(--gold));border-radius:999px}.ruby-stat{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;transition:transform .2s,border-color .2s}.ruby-stat:hover{transform:translateY(-2px);border-color:var(--border-strong)}.ruby-stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.ruby-stat-ruby:before,.ruby-stat:before{background:var(--ruby)}.ruby-stat-gold:before{background:var(--gold)}.ruby-stat-success:before{background:var(--success)}.ruby-stat-warning:before{background:var(--warning)}.ruby-stat-danger:before{background:var(--danger)}.ruby-stat-violet:before{background:var(--violet)}.ruby-stat-head{display:flex;align-items:center;justify-content:space-between}.ruby-stat-label{font-size:11.5px;color:var(--fg-2);font-weight:500;letter-spacing:.04em;text-transform:uppercase}.ruby-stat-icon{width:28px;height:28px;border-radius:8px;background:var(--bg-2);display:flex;align-items:center;justify-content:center;color:var(--fg-1)}.ruby-stat-ruby .ruby-stat-icon{color:var(--ruby);background:var(--ruby-soft)}.ruby-stat-gold .ruby-stat-icon{color:var(--gold);background:var(--gold-soft)}.ruby-stat-success .ruby-stat-icon{color:var(--success);background:var(--success-soft)}.ruby-stat-warning .ruby-stat-icon{color:var(--warning);background:var(--warning-soft)}.ruby-stat-danger .ruby-stat-icon{color:var(--danger);background:var(--danger-soft)}.ruby-stat-violet .ruby-stat-icon{color:var(--violet);background:var(--violet-soft)}.ruby-stat-value{font-family:var(--font-display);font-size:42px;font-weight:400;line-height:1;color:var(--fg-0);display:flex;align-items:baseline;gap:2px;margin-top:4px}.ruby-stat-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-stat-affix{font-size:22px;color:var(--fg-2)}.ruby-stat-foot{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:8px}.ruby-stat-delta{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:2px 6px;border-radius:6px}.ruby-stat-delta.is-up{color:var(--success);background:var(--success-soft)}.ruby-stat-delta.is-down{color:var(--danger);background:var(--danger-soft)}.ruby-stat-delta-label{font-size:11px;color:var(--fg-2)}.ruby-stat-spark{margin-left:auto;color:var(--fg-1);opacity:.7}.ruby-stat-ruby .ruby-stat-spark{color:var(--ruby);opacity:1}.ruby-stat-gold .ruby-stat-spark{color:var(--gold);opacity:1}.ruby-stat-success .ruby-stat-spark{color:var(--success);opacity:1}.ruby-stat-violet .ruby-stat-spark{color:var(--violet);opacity:1}.ruby-avatar{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:white;font-weight:700;letter-spacing:-.02em;font-family:var(--font-body);position:relative;flex-shrink:0}.ruby-avatar-dot{bottom:0;right:0;width:9px;height:9px;background:var(--success)}.ruby-avatar-dot,.ruby-avatar-vip{position:absolute;border-radius:50%;border:2px solid var(--bg-1)}.ruby-avatar-vip{top:-3px;right:-3px;width:16px;height:16px;background:var(--gold);color:oklch(.2 .02 60);display:flex;align-items:center;justify-content:center}.ruby-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:-.005em;white-space:nowrap}.ruby-badge-sm{padding:2px 6px;font-size:10px}.ruby-badge-success{color:var(--success);background:var(--success-soft);border:1px solid color-mix(in oklch,var(--success),transparent 75%)}.ruby-badge-warning{color:var(--warning);background:var(--warning-soft);border:1px solid color-mix(in oklch,var(--warning),transparent 75%)}.ruby-badge-danger{color:var(--danger);background:var(--danger-soft);border:1px solid color-mix(in oklch,var(--danger),transparent 75%)}.ruby-badge-muted{color:var(--fg-2);background:var(--bg-3);border:1px solid var(--border)}.ruby-badge-gold{color:var(--gold);background:var(--gold-soft);border:1px solid var(--border-gold)}.ruby-citas{display:flex;flex-direction:column;gap:4px}.ruby-cita{display:flex;align-items:center;gap:14px;padding:12px 4px;border-radius:10px;position:relative;transition:background .15s;animation:rubyIn .35s ease both}.ruby-cita:hover{background:var(--bg-2)}.ruby-cita+.ruby-cita:before{content:"";position:absolute;top:0;left:56px;right:4px;height:1px;background:var(--border)}.ruby-cita-time{text-align:right;min-width:42px}.ruby-cita-time-h{font-family:var(--font-display);font-size:20px;line-height:1;color:var(--fg-0);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-cita-time-dur{font-size:10px;color:var(--fg-3);margin-top:2px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-cita-bar{width:3px;height:36px;border-radius:3px;flex-shrink:0}.ruby-cita-main{flex:1 1;min-width:0}.ruby-cita-name{font-size:13.5px;font-weight:600;color:var(--fg-0);letter-spacing:-.005em}.ruby-cita-meta{font-size:11.5px;color:var(--fg-2);display:flex;gap:6px;align-items:center;margin-top:2px}.ruby-cita-dot{color:var(--fg-3)}.ruby-cita-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.ruby-cita-price{font-family:var(--font-display);font-size:18px;color:var(--gold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-miniweek{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px;margin-bottom:14px}.ruby-miniweek-day{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:10px;cursor:pointer;position:relative;transition:background .15s}.ruby-miniweek-day:hover{background:var(--bg-2)}.ruby-miniweek-d{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-2);font-weight:600}.ruby-miniweek-n{font-family:var(--font-display);font-size:22px;line-height:1;color:var(--fg-0);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-miniweek-day.is-today{background:var(--ruby)}.ruby-miniweek-day.is-today .ruby-miniweek-d{color:oklch(1 0 0/.7)}.ruby-miniweek-day.is-today .ruby-miniweek-n{color:white}.ruby-miniweek-pulse{position:absolute;inset:0;border-radius:10px;box-shadow:0 0 0 0 oklch(.62 .2 18/.5);animation:pulse 2s infinite;pointer-events:none}@keyframes pulse{0%{box-shadow:0 0 0 0 oklch(.62 .2 18/.5)}to{box-shadow:0 0 0 12px oklch(.62 .2 18/0)}}.ruby-timeline{--row-h:34px;position:relative;padding-left:38px;border-top:1px solid var(--border);padding-top:8px}.ruby-timeline-row{height:var(--row-h);position:relative;border-radius:4px}.ruby-timeline-h{position:absolute;left:-38px;top:-7px;font-size:10px;color:var(--fg-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-timeline-line{position:absolute;top:0;left:0;right:0;height:1px;background:var(--border)}.ruby-timeline-evt{position:absolute;left:6px;right:8px;background:color-mix(in oklch,var(--evtc,var(--ruby)),transparent 80%);border-left:3px solid var(--evtc,var(--ruby));border-radius:6px;padding:4px 8px;font-size:11px;overflow:hidden;z-index:2;margin-top:8px}.ruby-timeline-evt-time{font-size:9.5px;color:var(--evtc,var(--ruby));font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.ruby-timeline-evt-title{font-size:11px;color:var(--fg-0);font-weight:600;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ruby-timeline-now{position:absolute;left:6px;right:8px;display:flex;align-items:center;z-index:5;pointer-events:none;margin-top:8px}.ruby-timeline-now-dot{width:9px;height:9px;background:var(--ruby);border-radius:50%;box-shadow:0 0 0 3px var(--ruby-soft);margin-left:-42px}.ruby-timeline-now-line{flex:1 1;height:1px;background:var(--ruby);margin:0 4px}.ruby-timeline-now-label{font-size:9px;color:var(--ruby);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;background:var(--bg-1);padding:1px 4px;border-radius:4px}.ruby-segmented{display:inline-flex;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}.ruby-segmented button{padding:6px 12px;border-radius:7px;font-size:12px;font-weight:600;color:var(--fg-2);transition:all .15s;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-segmented button:hover{color:var(--fg-0)}.ruby-segmented button.is-active{background:var(--paper-0);color:var(--fg-0);box-shadow:var(--shadow-xs),0 0 0 1px var(--border)}.ruby-segmented-sm button{padding:4px 10px;font-size:11px}.ruby-pills{display:flex;flex-wrap:wrap}.ruby-pill,.ruby-pills{gap:6px;align-items:center}.ruby-pill{display:inline-flex;padding:6px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:500;color:var(--fg-1);transition:all .15s}.ruby-pill:hover{color:var(--fg-0);border-color:var(--border-strong)}.ruby-pill.is-active{background:var(--ink-800);border-color:var(--ink-800);color:var(--paper-0);font-weight:600;box-shadow:var(--shadow-xs)}.ruby-pill.is-gold.is-active{background:var(--gold-soft);border-color:var(--gold);color:var(--gold)}.ruby-pill-count{font-size:10px;background:var(--bg-3);padding:1px 6px;border-radius:999px;color:var(--fg-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.ruby-pill.is-active .ruby-pill-count{background:rgba(255,255,255,.2);color:var(--paper-0)}.ruby-pill-avatar{padding:4px 12px 4px 4px;gap:6px}.ruby-stat-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ruby-chip-stat{display:inline-flex;align-items:center;gap:7px;background:var(--bg-1);border:1px solid var(--border);border-radius:999px;padding:7px 13px;font-size:12px;color:var(--fg-1)}.ruby-chip-stat .ruby-num{font-weight:700;color:var(--fg-0);font-size:13px}.ruby-chip-stat-label{color:var(--fg-2)}.ruby-chip-stat.is-success svg{color:var(--success)}.ruby-chip-stat.is-warning svg{color:var(--warning)}.ruby-chip-stat.is-danger svg{color:var(--danger)}.ruby-chip-stat.is-gold svg{color:var(--gold)}.ruby-chip-stat.is-gold .ruby-num{color:var(--gold);font-family:var(--font-display);font-size:18px}.ruby-filters{gap:18px;padding:14px 18px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius)}.ruby-filter-group,.ruby-filters{display:flex;flex-wrap:wrap;align-items:center}.ruby-filter-group{gap:10px}.ruby-filter-group-end{margin-left:auto}.ruby-filter-label{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--fg-2);font-weight:600}.ruby-toolbar{gap:16px;flex-wrap:wrap}.ruby-search,.ruby-toolbar{display:flex;align-items:center}.ruby-search{flex:1 1;min-width:240px;position:relative}.ruby-search-icon{position:absolute;left:14px;color:var(--fg-2)}.ruby-search-input{width:100%;background:var(--bg-1);border:1px solid var(--border);border-radius:12px;padding:11px 40px;font-size:13px;color:var(--fg-0);outline:none;transition:all .15s}.ruby-search-input::placeholder{color:var(--fg-3)}.ruby-search-input:focus{border-color:var(--ruby);box-shadow:0 0 0 3px var(--ruby-soft)}.ruby-search-clear{position:absolute;right:12px;width:22px;height:22px;border-radius:50%;background:var(--bg-3);color:var(--fg-1);display:flex;align-items:center;justify-content:center}.ruby-table-wrap{padding:0;overflow:hidden}.ruby-table{width:100%;border-collapse:collapse;min-width:720px}.ruby-table thead{background:var(--bg-2)}.ruby-table th{text-align:left;padding:11px 16px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--fg-2);border-bottom:1px solid var(--border)}.ruby-table .ruby-num-cell{text-align:right}.ruby-table td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;color:var(--fg-1);animation:rubyIn .3s ease both}.ruby-table tbody tr:last-child td{border-bottom:none}.ruby-table tbody tr{transition:background .15s}.ruby-table tbody tr:hover{background:var(--bg-2)}.ruby-table tbody tr.is-blocked{opacity:.55}.ruby-table-date-d{font-family:var(--font-display);font-size:16px;color:var(--fg-0);line-height:1}.ruby-table-date-t{font-size:11px;color:var(--fg-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:2px}.ruby-table-cli{display:flex;align-items:center;gap:10px}.ruby-table-cli-name{font-size:13px;font-weight:600;color:var(--fg-0);display:flex;align-items:center;gap:6px}.ruby-table-cli-phone{font-size:11px;color:var(--fg-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:1px}.ruby-vip-tag{font-size:9px;font-weight:700;letter-spacing:.08em;color:oklch(.2 .02 60);background:var(--gold);padding:1px 5px;border-radius:4px}.ruby-table-sv{line-height:1.3}.ruby-table-sv-meta{font-size:11px;color:var(--fg-2);margin-top:2px}.ruby-table-staff{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.ruby-table-staff-dot{width:6px;height:6px;border-radius:50%}.ruby-noshow{color:var(--danger);font-size:11px}.ruby-loyalty{display:inline-flex;align-items:center;gap:4px;color:var(--gold);font-weight:600}.ruby-loyalty .ruby-num{font-family:var(--font-display);font-size:18px}.ruby-loyalty-pts{font-size:10px;opacity:.7}.ruby-contact{display:flex;flex-direction:column;gap:4px}.ruby-contact-line{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--fg-1);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-contact-line svg{color:var(--fg-3)}.ruby-contact-mute{color:var(--fg-2)}.ruby-row-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.ruby-table tbody tr:hover .ruby-row-actions{opacity:1}.ruby-row-action{width:26px;height:26px;border-radius:6px;background:var(--bg-2);color:var(--fg-1);display:inline-flex;align-items:center;justify-content:center;transition:all .15s}.ruby-row-action:hover{background:var(--ruby-soft);color:var(--ruby)}.ruby-bookings-cards,.ruby-clients-cards{display:flex;flex-direction:column;gap:10px}.ruby-bcard,.ruby-ccard{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:14px;position:relative;animation:rubyIn .35s ease both;overflow:hidden}.ruby-bcard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent,var(--ruby))}.ruby-bcard-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.ruby-bcard-time{display:flex;align-items:baseline;gap:8px}.ruby-bcard-time-t{font-family:var(--font-display);font-size:22px;line-height:1;color:var(--fg-0)}.ruby-bcard-time-d{font-size:11px;color:var(--fg-2)}.ruby-bcard-body{display:flex;align-items:center;gap:12px;padding:6px 0}.ruby-bcard-info{flex:1 1;min-width:0}.ruby-bcard-name{font-size:14px;font-weight:600;color:var(--fg-0)}.ruby-bcard-sv{font-size:12px;color:var(--fg-1);margin-top:2px}.ruby-bcard-staff{font-size:11px;color:var(--fg-2);display:flex;align-items:center;gap:5px;margin-top:3px}.ruby-bcard-staff-dot{width:5px;height:5px;border-radius:50%}.ruby-bcard-dot{color:var(--fg-3)}.ruby-bcard-price{font-family:var(--font-display);font-size:22px;color:var(--gold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-bcard-actions{display:flex;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.ruby-bcard-action{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:600;padding:7px;border-radius:8px;color:var(--fg-1);background:var(--bg-2)}.ruby-bcard-action-danger{color:var(--danger)}.ruby-ccard.is-blocked{opacity:.6}.ruby-ccard-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.ruby-ccard-info{flex:1 1;min-width:0}.ruby-ccard-name{font-size:14px;font-weight:600;color:var(--fg-0)}.ruby-ccard-phone{font-size:11px;color:var(--fg-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:2px}.ruby-ccard-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;padding:10px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:10px}.ruby-ccard-stat{text-align:center}.ruby-ccard-stat-v{font-family:var(--font-display);font-size:20px;line-height:1;color:var(--fg-0)}.ruby-ccard-stat-gold{color:var(--gold)}.ruby-ccard-stat-text{font-size:13px;font-family:var(--font-body)}.ruby-ccard-stat-l{font-size:10px;color:var(--fg-2);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}.ruby-ccard-actions{display:flex;gap:8px}.ruby-ccard-action{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:600;padding:9px;border-radius:9px;color:var(--fg-1);background:var(--bg-2);border:1px solid var(--border)}.ruby-ccard-action-primary{background:var(--ruby);color:white;border-color:transparent}.ruby-team-today{display:flex;flex-direction:column;gap:10px}.ruby-team-row{display:flex;align-items:center;gap:12px;padding:8px 4px;animation:rubyIn .35s ease both}.ruby-team-meta{min-width:130px}.ruby-team-name{font-size:13px;font-weight:600;color:var(--fg-0)}.ruby-team-role{font-size:11px;color:var(--fg-2);margin-top:1px}.ruby-team-bar{flex:1 1;height:6px;background:var(--bg-3);border-radius:999px;overflow:hidden;position:relative}.ruby-team-bar-fill{position:absolute;inset:0;width:0;border-radius:999px;transition:width .6s ease;animation:rubyBarGrow .8s ease-out both}@keyframes rubyBarGrow{0%{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1)}}.ruby-team-count{font-size:11px;color:var(--fg-2);text-align:right;min-width:56px}.ruby-team-count .ruby-num{font-family:var(--font-display);font-size:18px;color:var(--fg-0)}.ruby-quick-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}.ruby-quick{display:flex;align-items:center;gap:10px;padding:14px;border-radius:10px;background:var(--bg-2);border:1px solid var(--border);color:var(--fg-0);font-size:13px;font-weight:600;transition:all .15s}.ruby-quick:hover{background:var(--bg-3);border-color:var(--ruby);color:var(--ruby);transform:translateY(-1px)}.ruby-quick svg{color:var(--fg-2);transition:color .15s}.ruby-quick:hover svg{color:var(--ruby)}.ruby-quick-tip{margin-top:14px;padding:12px 14px;background:var(--gold-soft);border:1px solid var(--border-gold);border-radius:10px;font-size:12px;color:var(--fg-1);display:flex;align-items:center;gap:10px;line-height:1.4}.ruby-quick-tip svg{color:var(--gold);flex-shrink:0}.ruby-quick-tip strong{color:var(--gold);font-weight:700}.ruby-barchart{position:relative;display:flex;flex-direction:column;padding:12px 0}.ruby-barchart-grid{position:absolute;inset:12px 0 32px 0}.ruby-barchart-gridline{position:absolute;left:0;right:0;height:1px;background:var(--border);opacity:.5}.ruby-barchart-bars{align-items:flex-end;gap:6px;z-index:1}.ruby-barchart-bars,.ruby-barchart-col{display:flex;flex:1 1;position:relative}.ruby-barchart-col{flex-direction:column;align-items:center;gap:8px}.ruby-barchart-bar{width:100%;border-radius:4px 4px 0 0;transition:opacity .15s,transform .2s;min-height:4px;animation:rubyBarRise .8s cubic-bezier(.22,1,.36,1) both}.ruby-barchart-col:hover .ruby-barchart-bar{transform:scaleY(1.02);transform-origin:bottom}@keyframes rubyBarRise{0%{transform:scaleY(0);transform-origin:bottom;opacity:0}to{transform:scaleY(1);opacity:1}}.ruby-barchart-label{font-size:10px;color:var(--fg-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-barchart-tip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(-4px);background:var(--fg-0);color:var(--bg-0);padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap;z-index:5;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-hbar{display:flex;flex-direction:column;gap:12px}.ruby-hbar-row{display:grid;grid-template-columns:140px 1fr auto;grid-gap:14px;gap:14px;align-items:center;animation:rubyIn .35s ease both}.ruby-hbar-name{font-size:12.5px;color:var(--fg-1);font-weight:500}.ruby-hbar-track{height:8px;background:var(--bg-3);border-radius:999px;overflow:hidden}.ruby-hbar-fill{height:100%;border-radius:999px;animation:rubyBarGrow .8s ease-out both;transform-origin:left}.ruby-hbar-value{font-size:12px;color:var(--fg-1);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:110px;text-align:right}.ruby-hbar-value .ruby-num{color:var(--fg-0);font-weight:700}.ruby-perf{gap:14px}.ruby-perf,.ruby-perf-row{display:flex;flex-direction:column}.ruby-perf-row{gap:6px;animation:rubyIn .35s ease both}.ruby-perf-head{display:flex;align-items:center;gap:10px}.ruby-perf-name{font-size:12.5px;font-weight:600;color:var(--fg-0);flex:1 1}.ruby-perf-rating{display:inline-flex;align-items:center;gap:3px;color:var(--gold);font-size:11px;font-weight:600}.ruby-perf-num{font-family:var(--font-display);font-size:18px;color:var(--fg-0);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-perf-bar{height:6px;background:var(--bg-3);border-radius:999px;overflow:hidden}.ruby-perf-bar-fill{height:100%;border-radius:999px;animation:rubyBarGrow .9s ease-out both;transform-origin:left}.ruby-hours{display:flex;flex-direction:column;gap:6px}.ruby-hours-row{display:grid;grid-template-columns:40px 1fr 40px;grid-gap:8px;gap:8px;align-items:center;animation:rubyIn .3s ease both}.ruby-hours-h{font-size:11px;color:var(--fg-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-hours-track{height:6px;background:var(--bg-3);border-radius:999px;overflow:hidden}.ruby-hours-fill{height:100%;border-radius:999px;animation:rubyBarGrow .8s ease-out both;transform-origin:left}.ruby-hours-v{font-size:11px;color:var(--fg-1);font-weight:600;text-align:right}.ruby-leaders{display:flex;flex-direction:column;gap:8px}.ruby-leader{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;transition:background .15s;animation:rubyIn .35s ease both}.ruby-leader:hover{background:var(--bg-2)}.ruby-leader-rank{width:22px;height:22px;border-radius:50%;font-family:var(--font-display);font-size:14px;color:var(--gold);display:flex;align-items:center;justify-content:center;background:var(--gold-soft);border:1px solid var(--border-gold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-leader:first-child .ruby-leader-rank{background:var(--gold);color:oklch(.2 .02 60)}.ruby-leader-info{flex:1 1;min-width:0}.ruby-leader-name{font-size:12.5px;font-weight:600;color:var(--fg-0)}.ruby-leader-meta{font-size:11px;color:var(--fg-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-leader-amt{font-family:var(--font-display);font-size:18px;color:var(--gold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-foot-note{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--fg-2);padding-top:10px;margin-top:6px;border-top:1px solid var(--border);line-height:1.4}.ruby-foot-note svg{color:var(--gold)}.ruby-foot-note strong{color:var(--fg-0);font-weight:700}.ruby-legend{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--fg-2)}.ruby-legend-dot{width:8px;height:8px;border-radius:50%}.ruby-pagination{justify-content:space-between;padding:8px 4px}.ruby-pages,.ruby-pagination{display:flex;align-items:center}.ruby-pages{gap:4px}.ruby-page-num{width:30px;height:30px;border-radius:7px;font-size:12px;color:var(--fg-1);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.ruby-page-num:hover{background:var(--bg-2);color:var(--fg-0)}.ruby-page-num.is-active{background:var(--ruby);color:white}.ruby-wave{display:inline-block;width:40px;height:8px}.ruby-hero.is-editorial{background:radial-gradient(60% 100% at 0 100%,oklch(.78 .1 80/.1),transparent 60%),radial-gradient(80% 80% at 100% 0,oklch(.62 .2 18/.14),transparent 60%),var(--bg-1);border-radius:var(--radius-xl);padding:40px 44px}.ruby-hero.is-editorial .ruby-hero-title{font-size:84px;flex-direction:column;gap:0;align-items:flex-start}.ruby-hero.is-editorial .ruby-hero-greeting{font-style:italic;color:var(--gold);font-size:64px}.ruby-hero.is-editorial .ruby-hero-name{font-size:110px;line-height:.95}.ruby-mobile-only{display:none}.ruby-desktop-only{display:block}@media (max-width:980px){.ruby-grid-4{grid-template-columns:repeat(2,1fr)}.ruby-grid-12,.ruby-grid-2,.ruby-grid-3{grid-template-columns:1fr}.ruby-col-5,.ruby-col-7{grid-column:span 1}.ruby-hero{flex-direction:column;align-items:flex-start;padding:22px}.ruby-hero-title{font-size:40px}.ruby-page-title{font-size:34px}.ruby-hero-stat{width:100%}}@media (max-width:720px){.ruby-sidebar,.ruby-topbar{display:none}.ruby-mtab,.ruby-mtopbar{display:flex}.ruby-content{padding:14px 14px 80px}.ruby-desktop-only{display:none}.ruby-mobile-only{display:flex;flex-direction:column}.ruby-page-title{font-size:30px}.ruby-page-head{flex-direction:column;align-items:flex-start;gap:10px}.ruby-page-actions{width:100%}.ruby-page-actions .ruby-btn{flex:1 1;justify-content:center}.ruby-hero-title{font-size:32px;gap:8px}.ruby-hero-stat-value{font-size:40px}.ruby-stat-value{font-size:34px}.ruby-card{padding:16px}.ruby-card-title{font-size:18px}.ruby-filters{padding:12px;gap:12px}.ruby-filter-group-end{margin-left:0;width:100%}.ruby-filter-group-end .ruby-segmented{width:100%}.ruby-filter-group-end .ruby-segmented button{flex:1 1}.ruby-toolbar{gap:10px}.ruby-hero.is-editorial{padding:22px}.ruby-hero.is-editorial .ruby-hero-title{font-size:40px;flex-direction:row;gap:8px}.ruby-hero.is-editorial .ruby-hero-greeting{font-size:28px}.ruby-hero.is-editorial .ruby-hero-name{font-size:40px}}.ruby-viewport-shell{min-height:100vh;background:var(--bg-0);display:flex;flex-direction:column}.ruby-viewport-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-1);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:100;gap:12px}.ruby-viewport-bar-l,.ruby-viewport-bar-r,.ruby-viewport-bar-title{display:flex;align-items:center;gap:8px}.ruby-viewport-bar-title{font-family:var(--font-display);font-size:18px;color:var(--fg-0)}.ruby-viewport-bar-title small{font-size:10px;color:var(--gold);text-transform:uppercase;letter-spacing:.15em;font-family:var(--font-body);font-weight:600}.ruby-viewport-stage{flex:1 1;display:flex;align-items:stretch;justify-content:center;padding:20px;background:radial-gradient(800px 400px at 50% 0,oklch(.18 .012 30),transparent 70%),var(--bg-0);overflow:auto}[data-theme=light] .ruby-viewport-stage{background:radial-gradient(800px 400px at 50% 0,oklch(.96 .005 60),transparent 70%),var(--bg-0)}.ruby-viewport-frame{background:var(--bg-0);border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 24px 60px -20px rgb(0 0 0/.5),inset 0 0 0 1px oklch(1 0 0/.03);display:flex;transition:width .3s ease,max-width .3s ease}.ruby-viewport-frame.is-desktop{width:100%;max-width:1440px}.ruby-viewport-frame.is-tablet{width:100%;max-width:820px}.ruby-viewport-frame.is-mobile{width:100%;max-width:412px;border-radius:32px;padding:8px;background:oklch(.05 .005 30);border-color:oklch(.18 .012 30)}.ruby-viewport-frame.is-mobile .ruby-app{border-radius:24px;overflow:hidden}.ruby-vbtn{padding:6px 10px;border-radius:8px;font-size:11px;font-weight:600;color:var(--fg-2);background:transparent;display:inline-flex;align-items:center;gap:5px}.ruby-vbtn:hover{background:var(--bg-2);color:var(--fg-0)}.ruby-vbtn.is-active{background:var(--bg-2);color:var(--ruby)}.ruby-viewport-frame.is-mobile .ruby-sidebar,.ruby-viewport-frame.is-mobile .ruby-topbar{display:none!important}.ruby-viewport-frame.is-mobile .ruby-mtab,.ruby-viewport-frame.is-mobile .ruby-mtopbar{display:flex!important}.ruby-viewport-frame.is-mobile .ruby-desktop-only{display:none!important}.ruby-viewport-frame.is-mobile .ruby-mobile-only{display:flex!important;flex-direction:column}.ruby-viewport-frame.is-mobile .ruby-content{padding:14px 14px 90px}.ruby-viewport-frame.is-mobile .ruby-grid-4{grid-template-columns:repeat(2,1fr)}.ruby-viewport-frame.is-mobile .ruby-grid-12,.ruby-viewport-frame.is-mobile .ruby-grid-2,.ruby-viewport-frame.is-mobile .ruby-grid-3{grid-template-columns:1fr}.ruby-viewport-frame.is-mobile .ruby-col-5,.ruby-viewport-frame.is-mobile .ruby-col-7{grid-column:span 1}.ruby-viewport-frame.is-mobile .ruby-hero{flex-direction:column;align-items:flex-start;padding:18px}.ruby-viewport-frame.is-mobile .ruby-hero-title{font-size:32px;gap:8px}.ruby-viewport-frame.is-mobile .ruby-hero-stat{width:100%}.ruby-viewport-frame.is-mobile .ruby-stat-value{font-size:32px}.ruby-viewport-frame.is-mobile .ruby-page-title{font-size:30px}.ruby-viewport-frame.is-mobile .ruby-page-head{flex-direction:column;align-items:flex-start;gap:10px}.ruby-viewport-frame.is-mobile .ruby-page-actions{width:100%}.ruby-viewport-frame.is-mobile .ruby-card{padding:16px}.ruby-sidebar-nav::-webkit-scrollbar,.ruby-viewport-stage::-webkit-scrollbar{width:8px;height:8px}.ruby-sidebar-nav::-webkit-scrollbar-thumb,.ruby-viewport-stage::-webkit-scrollbar-thumb{background:var(--paper-4);border-radius:999px}.ruby-empty-img{filter:drop-shadow(0 18px 24px rgba(15,42,69,.18));animation:rubyFloat 5s var(--ease-standard,ease-in-out) infinite}@keyframes rubyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@media (prefers-reduced-motion:reduce){.ruby-empty-img{animation:none}}.ruby-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden;background:var(--bg-0)}.ruby-auth:before{background:radial-gradient(70% 60% at 85% 0,rgba(201,162,75,.16),transparent 60%),radial-gradient(60% 60% at 0 100%,rgba(44,84,126,.08),transparent 55%)}.ruby-auth:after,.ruby-auth:before{content:"";position:absolute;inset:0;pointer-events:none}.ruby-auth:after{opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1'%3E%3Ccircle cx='20' cy='20' r='6'/%3E%3Ccircle cx='20' cy='34' r='6'/%3E%3Cpath d='M25 24 L55 44 M25 30 L55 12'/%3E%3C/g%3E%3C/svg%3E")}.ruby-auth-card{position:relative;z-index:1;width:min(420px,100%);background:var(--bg-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--border);border-radius:var(--radius-xl);padding:40px 36px;box-shadow:var(--shadow-pop);animation:rubyIn .5s cubic-bezier(.22,1,.36,1) both}.ruby-auth-card:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,var(--border-gold),transparent)}.ruby-auth-brand{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:28px}.ruby-auth-mark{width:60px;height:60px;border-radius:18px;background:var(--paper-1);border:1px solid var(--border-gold);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md,var(--shadow-card)),inset 0 1px 0 rgba(255,255,255,.6)}.ruby-auth-word{font-family:var(--font-display);font-size:40px;line-height:1;color:var(--fg-0)}.ruby-auth-tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600}.ruby-auth-sub{text-align:center;color:var(--fg-2);font-size:13px;margin:-10px 0 24px}.ruby-field{margin-bottom:16px}.ruby-field label{display:block;font-size:12px;font-weight:600;color:var(--fg-1);margin-bottom:7px}.ruby-input{width:100%;background:var(--bg-2);border:1px solid var(--border);border-radius:11px;padding:12px 14px;font-size:14px;color:var(--fg-0);outline:none;transition:border-color .15s,box-shadow .15s}.ruby-input::placeholder{color:var(--fg-3)}.ruby-input:focus{border-color:var(--ruby);box-shadow:0 0 0 3px var(--ruby-soft)}.ruby-auth-error{background:var(--danger-soft);border:1px solid color-mix(in oklch,var(--danger),transparent 70%);color:var(--danger);border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.ruby-auth-submit{width:100%;justify-content:center;padding:13px;font-size:14px;margin-top:6px}.ruby-auth-demos{margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}.ruby-auth-demos-l{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--fg-3);margin-bottom:10px;text-align:center}.ruby-demo-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.ruby-demo-btn{display:flex;align-items:center;gap:8px;padding:9px 11px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;font-size:12px;color:var(--fg-1);text-align:left;transition:all .15s}.ruby-demo-btn:hover{border-color:var(--ruby);color:var(--fg-0);background:var(--bg-3)}.ruby-demo-btn b{display:block;color:var(--fg-0);font-size:12.5px}.ruby-demo-btn span{font-size:10.5px;color:var(--fg-2)}.ruby-auth-foot{text-align:center;margin-top:22px;font-size:11.5px;color:var(--fg-3)}.ruby-auth-foot b{color:var(--gold)}.ruby-sim-grid{display:grid;grid-template-columns:360px 1fr;grid-gap:22px;gap:22px;align-items:start}.ruby-phone{background:#15100e;border-radius:40px;padding:12px;box-shadow:var(--shadow-pop),0 0 0 2px oklch(1 0 0/.04) inset;position:relative;margin:0 auto;width:100%;max-width:360px}.ruby-phone-notch{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:38%;height:24px;background:#15100e;border-radius:0 0 14px 14px;z-index:5}.ruby-phone-screen{background:#0b141a;border-radius:30px;overflow:hidden;height:600px;display:flex;flex-direction:column}.ruby-wa-head{background:#1f2c33;color:#e9edef;display:flex;align-items:center;gap:10px;padding:16px 14px 10px}.ruby-wa-av{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--ruby),var(--ruby-dark));display:grid;place-items:center;color:#fff;font-weight:700}.ruby-wa-name{font-weight:600;font-size:14px;line-height:1.1}.ruby-wa-status{font-size:11px;opacity:.7}.ruby-wa-chat{flex:1 1;padding:14px 12px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;background-color:#0b141a;background-image:radial-gradient(oklch(1 0 0/.02) 1px,transparent 0);background-size:18px 18px}.ruby-wa-msg{max-width:82%;padding:7px 10px 5px;border-radius:10px;font-size:13.5px;line-height:1.4;position:relative;white-space:pre-wrap;word-break:break-word;animation:waPop .3s cubic-bezier(.2,.9,.3,1.2) both}@keyframes waPop{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}.ruby-wa-in{background:#202c33;color:#e9edef;align-self:flex-start;border-top-left-radius:3px}.ruby-wa-out{background:#005c4b;color:#e9edef;align-self:flex-end;border-top-right-radius:3px}.ruby-wa-msg b,.ruby-wa-msg strong{font-weight:700}.ruby-wa-time{display:block;font-size:10px;opacity:.55;text-align:right;margin-top:2px}.ruby-wa-typing{align-self:flex-start;background:#202c33;padding:10px 12px;border-radius:10px;border-top-left-radius:3px;display:inline-flex;gap:4px}.ruby-wa-typing span{width:7px;height:7px;border-radius:50%;background:#8696a0;animation:waBounce 1.2s infinite}.ruby-wa-typing span:nth-child(2){animation-delay:.15s}.ruby-wa-typing span:nth-child(3){animation-delay:.3s}@keyframes waBounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}.ruby-wa-bar{display:flex;gap:8px;padding:10px 12px;background:#1f2c33;align-items:center}.ruby-wa-input{flex:1 1;background:#2a3942;border:none;border-radius:20px;padding:10px 14px;color:#e9edef;font-size:13.5px;outline:none}.ruby-wa-input::placeholder{color:#8696a0}.ruby-wa-send{width:40px;height:40px;border-radius:50%;background:var(--ruby);display:grid;place-items:center;color:#fff;flex-shrink:0}.ruby-wa-send:disabled{opacity:.5}.ruby-sim-side{display:flex;flex-direction:column;gap:16px}.ruby-sim-chips{display:flex;flex-wrap:wrap;gap:8px}.ruby-sim-chip{padding:8px 13px;border-radius:999px;background:var(--bg-2);border:1px solid var(--border);font-size:12.5px;color:var(--fg-1);transition:all .15s}.ruby-sim-chip:hover{border-color:var(--ruby);color:var(--ruby);background:var(--ruby-soft)}.ruby-conv-list{display:flex;flex-direction:column}.ruby-conv{display:flex;align-items:center;gap:12px;padding:13px 8px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s;position:relative}.ruby-conv:hover{background:var(--bg-2)}.ruby-conv-main{flex:1 1;min-width:0}.ruby-conv-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.ruby-conv-name{font-size:13.5px;font-weight:600;color:var(--fg-0)}.ruby-conv-time{font-size:11px;color:var(--fg-2)}.ruby-conv-preview{font-size:12.5px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.ruby-conv-unread{background:var(--ruby);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:999px;display:grid;place-items:center;padding:0 5px}.ruby-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.ruby-toggle-track{width:42px;height:24px;border-radius:999px;background:var(--bg-3);border:1px solid var(--border);position:relative;transition:background .2s,border-color .2s;flex-shrink:0}.ruby-toggle-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--fg-2);transition:transform .2s,background .2s}.ruby-toggle.is-on .ruby-toggle-track{background:var(--ruby);border-color:var(--ruby)}.ruby-toggle.is-on .ruby-toggle-knob{transform:translateX(18px);background:#fff}.ruby-settings-grid{display:grid;grid-gap:18px;gap:18px}.ruby-setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}.ruby-setting-row:last-child{border-bottom:none}.ruby-setting-info h4{font-size:13.5px;font-weight:600;color:var(--fg-0);margin:0}.ruby-setting-info p{font-size:12px;color:var(--fg-2);margin:3px 0 0;max-width:52ch}.ruby-fleet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:16px;gap:16px}.ruby-tenant{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:18px;position:relative;overflow:hidden;transition:transform .2s,border-color .2s}.ruby-tenant:hover{transform:translateY(-3px);border-color:var(--border-strong)}.ruby-tenant.is-self{border-color:var(--border-gold);background:linear-gradient(180deg,var(--gold-soft),transparent),var(--bg-1)}.ruby-tenant-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.ruby-tenant-mark{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:#fff;font-family:var(--font-display);font-size:18px;flex-shrink:0}.ruby-tenant-name{font-size:14px;font-weight:700;color:var(--fg-0)}.ruby-tenant-city{font-size:11.5px;color:var(--fg-2)}.ruby-tenant-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;padding-top:12px;border-top:1px solid var(--border)}.ruby-tenant-stat{text-align:center}.ruby-tenant-stat-v{font-family:var(--font-display);font-size:22px;color:var(--fg-0);line-height:1}.ruby-tenant-stat-v.is-gold{color:var(--gold)}.ruby-tenant-stat-l{font-size:9.5px;color:var(--fg-2);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.ruby-recovery{background:linear-gradient(135deg,var(--ruby-soft),transparent),var(--bg-1);border:1px solid var(--ruby);border-radius:var(--radius);padding:16px 18px;display:flex;align-items:center;gap:14px;animation:rubyIn .4s ease both}.ruby-recovery-ic{width:42px;height:42px;border-radius:12px;background:var(--ruby);color:#fff;display:grid;place-items:center;flex-shrink:0}.ruby-recovery-txt{flex:1 1}.ruby-recovery-txt h4{margin:0;font-size:14px;color:var(--fg-0)}.ruby-recovery-txt p{margin:3px 0 0;font-size:12.5px;color:var(--fg-1)}.ruby-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));grid-gap:8px;gap:8px}.ruby-slot{padding:10px;border-radius:10px;background:var(--bg-2);border:1px solid var(--border);font-size:13px;font-weight:600;color:var(--fg-1);text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:all .15s}.ruby-slot.is-sel,.ruby-slot:hover{background:var(--ruby-soft);border-color:var(--ruby);color:var(--ruby)}.ruby-divider{height:1px;background:var(--border);margin:4px 0}.ruby-link{color:var(--ruby);font-weight:600;cursor:pointer}.ruby-link:hover{text-decoration:underline}.ruby-inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ruby-muted-note{font-size:12px;color:var(--fg-2);line-height:1.5}@media (max-width:980px){.ruby-sim-grid{grid-template-columns:1fr}}.ruby-ai{display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;height:calc(100vh - 220px);min-height:460px}.ruby-ai-head{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--bg-2)}.ruby-ai-head-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--fg-2);font-weight:600}.ruby-ai-select{background:var(--bg-1);border:1px solid var(--border);border-radius:9px;padding:6px 10px;font-size:12.5px;color:var(--fg-0);font-family:inherit;outline:none;cursor:pointer}.ruby-ai-select:focus{border-color:var(--ruby)}.ruby-ai-head .ruby-badge{margin-left:auto}.ruby-ai-mic{width:40px;height:40px;flex-shrink:0;border-radius:12px;background:var(--bg-2);border:1px solid var(--border);color:var(--fg-1);display:grid;place-items:center;transition:all .15s}.ruby-ai-mic:hover{color:var(--ruby);border-color:var(--ruby)}.ruby-ai-mic.is-on{background:var(--ruby);color:#fff;border-color:var(--ruby);animation:rubyMicPulse 1.4s infinite}@keyframes rubyMicPulse{0%{box-shadow:0 0 0 0 var(--ruby-soft)}to{box-shadow:0 0 0 10px transparent}}.ruby-ai-chat{flex:1 1;overflow-y:auto;padding:22px 22px 8px;display:flex;flex-direction:column;gap:16px}.ruby-ai-welcome{margin:auto;text-align:center;max-width:440px;padding:20px}.ruby-ai-welcome-mark{width:64px;height:64px;margin:0 auto 16px;border-radius:18px;background:var(--paper-1);border:1px solid var(--border-gold);display:grid;place-items:center;box-shadow:var(--shadow-md,var(--shadow-card)),inset 0 1px 0 rgba(255,255,255,.6)}.ruby-ai-welcome h3{font-family:var(--font-display);font-size:26px;font-weight:400;color:var(--fg-0);margin:0 0 8px;line-height:1.15}.ruby-ai-welcome p{color:var(--fg-2);font-size:14px;margin:0}.ruby-ai-nokey{margin-top:16px;display:inline-flex;align-items:center;gap:8px;background:var(--gold-soft);border:1px solid var(--border-gold);color:var(--gold);border-radius:10px;padding:8px 12px;font-size:12px;text-align:left}.ruby-ai-msg{display:flex;gap:10px;align-items:flex-start;max-width:84%}.ruby-ai-user{align-self:flex-end;flex-direction:row-reverse}.ruby-ai-avatar{width:30px;height:30px;border-radius:9px;background:var(--gold-soft);border:1px solid var(--border-gold);color:var(--gold);display:grid;place-items:center;flex-shrink:0}.ruby-ai-bubble{padding:11px 14px;border-radius:14px;font-size:13.5px;line-height:1.5;color:var(--fg-0)}.ruby-ai-assistant .ruby-ai-bubble{background:var(--bg-2);border:1px solid var(--border);border-top-left-radius:4px}.ruby-ai-user .ruby-ai-bubble{background:var(--ruby-soft);border:1px solid color-mix(in oklch,var(--ruby),transparent 70%);border-top-right-radius:4px}.ruby-ai-bubble b{font-weight:700;color:var(--fg-0)}.ruby-ai-tools{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);color:var(--fg-3)}.ruby-ai-tool{font-size:10px;background:var(--bg-3);color:var(--fg-2);padding:2px 7px;border-radius:999px}.ruby-ai-suggest{flex-wrap:wrap;gap:8px;padding:8px 22px 14px}.ruby-ai-bar,.ruby-ai-suggest{display:flex;border-top:1px solid var(--border)}.ruby-ai-bar{gap:10px;align-items:center;padding:14px 18px;background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.ruby-ai-input{flex:1 1;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--fg-0);outline:none;transition:border-color .15s,box-shadow .15s}.ruby-ai-input::placeholder{color:var(--fg-3)}.ruby-ai-input:focus{border-color:var(--ruby);box-shadow:0 0 0 3px var(--ruby-soft)}.ruby-ai-bar .ruby-btn{padding:11px 16px}@media (max-width:720px){.ruby-ai{height:calc(100vh - 200px)}.ruby-ai-msg{max-width:92%}}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-s.p.woff2) format("woff2");unicode-range:u+00??,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:Bricolage Grotesque Fallback;src:local("Arial");ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.00%;size-adjust:105.43%}.__className_a4bae9{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.__variable_a4bae9{--font-display-next:"Bricolage Grotesque","Bricolage Grotesque Fallback"}@font-face{font-family:Hanken Grotesk;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8be08aafa95b757b-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Hanken Grotesk;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/cd210f5b8f519d96-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Hanken Grotesk;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/5d86bf8a390298b9-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Hanken Grotesk;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df6935a4b8387403-s.p.woff2) format("woff2");unicode-range:u+00??,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:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/313510e2713fb214-s.p.woff2) format("woff2");unicode-range:u+00??,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:Hanken Grotesk Fallback;src:local("Arial");ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.00%;size-adjust:100.94%}.__className_192aad{font-family:Hanken Grotesk,Hanken Grotesk Fallback}.__variable_192aad{--font-body-next:"Hanken Grotesk","Hanken Grotesk Fallback"}@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/59829bb575d36b50-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e02f7a71372872a3-s.p.woff2) format("woff2");unicode-range:u+00??,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:Spline Sans Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/59829bb575d36b50-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e02f7a71372872a3-s.p.woff2) format("woff2");unicode-range:u+00??,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:Spline Sans Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/59829bb575d36b50-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e02f7a71372872a3-s.p.woff2) format("woff2");unicode-range:u+00??,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:Spline Sans Mono Fallback;src:local("Arial");ascent-override:71.59%;descent-override:17.57%;line-gap-override:0.00%;size-adjust:134.59%}.__className_49c017{font-family:Spline Sans Mono,Spline Sans Mono Fallback;font-style:normal}.__variable_49c017{--font-mono-next:"Spline Sans Mono","Spline Sans Mono Fallback"}