:root[data-theme=dark]{--ruby:oklch(0.54 0.10 250);--ruby-dark:oklch(0.38 0.09 250);--ruby-soft:oklch(0.54 0.10 250/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.64 0.10 250);--danger-soft:oklch(0.64 0.10 250/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.54 0.10 250/0.4),0 8px 24px -8px oklch(0.54 0.10 250/0.5)}:root[data-theme=light]{--ruby:oklch(0.46 0.10 250);--ruby-dark:oklch(0.34 0.09 250);--ruby-soft:oklch(0.46 0.10 250/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.46 0.10 250);--danger-soft:oklch(0.46 0.10 250/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.46 0.10 250/0.3),0 6px 18px -6px oklch(0.46 0.10 250/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:#F5EDDD;--paper-2:#ECE1CB;--paper-3:#D9D2C4;--paper-4:#C9C0AD;--ink-900:#0F2233;--ink-800:#16324F;--ink-700:#1E436A;--ink-600:#2C5378;--ink-500:#4A6B8E;--ink-400:#6B7A88;--ink-300:#9DB1C6;--brass-700:#8C6B22;--brass-600:#C8922A;--brass-500:#E3B23E;--brass-400:#D9B968;--brass-300:#E7CF94;--brass-200:#F1E2BE;--guild-ruby:#2C547E;--guild-ruby-soft:#C6D4E2;--guild-navy:#2C547E;--guild-navy-soft:#C6D4E2;--action:#16324F;--action-hover:#0F2233;--action-press:#0A1826;--action-soft:#DCE5EE;--action-ink:#0F2233;--action-on:#FCF8F0;--status-open:#3E8E5A;--status-open-soft:#CDE6D4;--status-warn:#C9892F;--status-warn-soft:#F2DEB8;--status-danger:#2C547E;--status-danger-soft:#C6D4E2;--status-info:#2C547E;--status-info-soft:#C6D4E2;--ruby:var(--action);--ruby-dark:var(--action-press);--ruby-soft:var(--paper-2);--gold:var(--brass-500);--gold-soft:#F3E4C2;--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);--line:var(--border);--gold-text:#84651F;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-base:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:25px;--fs-3xl:31px;--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 1px 3px rgba(15,34,51,0.06);--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 1px 2px rgba(15,34,51,0.08);--shadow-clay-hover:0 2px 6px rgba(15,34,51,0.10);--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:8px;--radius:14px;--radius-lg:14px;--radius-xl:20px}*{box-sizing:border-box}body,html{margin:0;padding:0}a{color:inherit;text-decoration:none}html{text-size-adjust:100%}body{font-family:var(--font-body);background:var(--bg-0);color:var(--fg-0);font-size:var(--fs-base);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:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--gold-text);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:10px;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:var(--fs-md);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(--bg-2);color:var(--action);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(--gold);border-radius:0 3px 3px 0}.ruby-nav-item.is-active svg{color:var(--action)}.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:var(--fs-sm);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:var(--fs-xs);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:var(--fs-md);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:var(--fs-sm);color:var(--fg-2)}.ruby-mtopbar{display:none;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);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:6px}.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:var(--fs-md);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:var(--fs-sm);gap:6px;border-radius:999px}.ruby-btn-lg{padding:13px 22px;font-size:var(--fs-base)}.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:var(--fs-sm);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:var(--fs-md)}.ruby-page-actions{flex-wrap:wrap}.ruby-eyebrow,.ruby-page-actions{display:flex;align-items:center;gap:10px}.ruby-eyebrow{color:var(--gold-text);font-size:var(--fs-xs);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(.54 .1 250/.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-text);font-size:var(--fs-xs);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:var(--fs-xs);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:var(--fs-sm);color:var(--fg-2);font-weight:500;letter-spacing:.04em;text-wrap:balance;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:var(--fs-xs);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:var(--fs-xs);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:var(--fs-xs);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-text);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:var(--fs-xl);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:var(--fs-md);font-weight:600;color:var(--fg-0);letter-spacing:-.005em}.ruby-cita-meta{font-size:var(--fs-sm);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(.54 .1 250/.5);animation:pulse 2s infinite;pointer-events:none}@keyframes pulse{0%{box-shadow:0 0 0 0 oklch(.54 .1 250/.5)}to{box-shadow:0 0 0 12px oklch(.54 .1 250/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:var(--fs-xs);overflow:hidden;z-index:2;margin-top:8px}.ruby-timeline-evt-time{font-size:10px;color:var(--evtc,var(--ruby));font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.ruby-timeline-evt-title{font-size:var(--fs-xs);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 a,.ruby-segmented button{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:7px;font-size:var(--fs-sm);font-weight:600;color:var(--fg-2);transition:all .15s;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ruby-segmented a:hover,.ruby-segmented button:hover{color:var(--fg-0)}.ruby-segmented a.is-active,.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 a,.ruby-segmented-sm button{padding:4px 10px;font-size:var(--fs-xs)}.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:var(--fs-sm);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:var(--fs-sm);color:var(--fg-1)}.ruby-chip-stat .ruby-num{font-weight:700;color:var(--fg-0);font-size:var(--fs-md)}.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:var(--fs-md);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-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.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:var(--fs-md);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:var(--fs-lg);color:var(--fg-0);line-height:1}.ruby-table-date-t{font-size:var(--fs-xs);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:var(--fs-md);font-weight:600;color:var(--fg-0);display:flex;align-items:center;gap:6px}.ruby-table-cli-phone{font-size:var(--fs-xs);color:var(--fg-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:1px}.ruby-vip-tag{font-size:9px;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:var(--fs-xs);color:var(--fg-2);margin-top:2px}.ruby-table-staff{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:600}.ruby-table-staff-dot{width:6px;height:6px;border-radius:50%}.ruby-noshow{color:var(--danger);font-size:var(--fs-xs)}.ruby-loyalty{display:inline-flex;align-items:center;gap:4px;color:var(--gold-text);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:var(--fs-sm);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:var(--fs-xs);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:var(--fs-base);font-weight:600;color:var(--fg-0)}.ruby-bcard-sv{font-size:var(--fs-sm);color:var(--fg-1);margin-top:2px}.ruby-bcard-staff{font-size:var(--fs-xs);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:var(--fs-xs);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:var(--fs-base);font-weight:600;color:var(--fg-0)}.ruby-ccard-phone{font-size:var(--fs-xs);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:var(--fs-xl);line-height:1;color:var(--fg-0)}.ruby-ccard-stat-gold{color:var(--gold)}.ruby-ccard-stat-text{font-size:var(--fs-md);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:var(--fs-sm);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:var(--fs-md);font-weight:600;color:var(--fg-0)}.ruby-team-role{font-size:var(--fs-xs);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:var(--fs-xs);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:var(--fs-md);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:var(--fs-sm);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-text);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:var(--fs-xs);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:var(--fs-md);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:var(--fs-sm);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:var(--fs-md);font-weight:600;color:var(--fg-0);flex:1 1}.ruby-perf-rating{display:inline-flex;align-items:center;gap:3px;color:var(--gold-text);font-size:var(--fs-xs);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:var(--fs-xs);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:var(--fs-xs);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:var(--fs-base);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:var(--fs-md);font-weight:600;color:var(--fg-0)}.ruby-leader-meta{font-size:var(--fs-xs);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:var(--fs-sm);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:var(--fs-xs);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:var(--fs-sm);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(.54 .1 250/.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 (min-width:721px){.ruby-sidebar.ruby-desktop-only,.ruby-topbar.ruby-desktop-only{display:flex}}@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 a,.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:var(--fs-xs);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-btn:focus-visible,.ruby-cal-cell:focus-visible,.ruby-conv:focus-visible,.ruby-demo-btn:focus-visible,.ruby-icon-btn:focus-visible,.ruby-linklike:focus-visible,.ruby-mtab-item:focus-visible,.ruby-nav-item:focus-visible,.ruby-quick:focus-visible,.ruby-row-action:focus-visible,.ruby-segmented a:focus-visible,.ruby-segmented button:focus-visible,.ruby-sim-chip:focus-visible,.ruby-slot:focus-visible,.ruby-tip-wrap:focus-visible,a.ruby-miniweek-day:focus-visible{outline:2px solid var(--ruby);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (max-width:720px){.ruby-icon-btn{width:40px;height:40px}}.ruby-dot{color:var(--gold);animation:rubyDotBreathe 4s ease-in-out infinite}@keyframes rubyDotBreathe{0%,to{opacity:1}50%{opacity:.55}}.ruby-stat-gold{background:linear-gradient(135deg,var(--paper-0) 30%,color-mix(in srgb,var(--gold-soft) 45%,var(--paper-0)));border-color:var(--border-gold)}.ruby-stat-gold .ruby-stat-value{color:var(--gold-text)}@property --n{syntax:"<integer>";inherits:false;initial-value:0}.ruby-countup{counter-reset:rubyn var(--n);animation:rubyCountUp 1.1s cubic-bezier(.2,.8,.2,1) both}.ruby-countup:after{content:counter(rubyn)}@keyframes rubyCountUp{0%{--n:0}}.ruby-hero-stat-bar{height:6px}.ruby-hero-stat-bar-fill{transform-origin:left;animation:rubyGrowX .9s cubic-bezier(.2,.8,.2,1) .15s both}@keyframes rubyGrowX{0%{transform:scaleX(0)}}.ruby-conv,.ruby-wl-row{animation:rubyIn .38s cubic-bezier(.2,.8,.2,1) both}.ruby-conv:nth-child(2),.ruby-wl-row:nth-child(2){animation-delay:45ms}.ruby-conv:nth-child(3),.ruby-wl-row:nth-child(3){animation-delay:90ms}.ruby-conv:nth-child(4),.ruby-wl-row:nth-child(4){animation-delay:135ms}.ruby-conv:nth-child(n+5),.ruby-wl-row:nth-child(n+5){animation-delay:.18s}.ruby-wl-row:hover{background:var(--bg-2)}.ruby-topbar-search-hint{color:var(--fg-3);font-size:var(--fs-md);margin-left:36px}button.ruby-topbar-search{cursor:pointer;text-align:left}.ruby-mtopbar{position:-webkit-sticky;position:sticky;top:0;z-index:90;background:var(--bg-glass);backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%)}.ruby-skeleton{position:relative;overflow:hidden;background:var(--bg-2);border:1px solid var(--border)}.ruby-skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(252,248,240,.75),transparent);animation:rubyShimmer 1.4s ease-in-out infinite}@keyframes rubyShimmer{to{transform:translateX(100%)}}.ruby-barchart-col{height:100%;justify-content:flex-end;padding-bottom:26px}.ruby-barchart-label{position:absolute;bottom:0;left:0;right:0;text-align:center}.ruby-barchart-grid{inset:12px 0 26px 0}.ruby-cmdk-overlay{position:fixed;inset:0;z-index:300;background:rgba(15,34,51,.32);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;animation:rubyFade .15s ease-out}.ruby-cmdk{width:100%;max-width:560px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);overflow:hidden;animation:rubyPop .16s cubic-bezier(.2,.8,.2,1)}.ruby-cmdk-inputrow{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);color:var(--fg-2)}.ruby-cmdk-input{flex:1 1;border:0;outline:0;background:none;font:inherit;font-size:15px;color:var(--fg-0)}.ruby-cmdk-kbd{font-family:var(--font-mono);font-size:10px;color:var(--fg-3);border:1px solid var(--border);border-radius:5px;padding:2px 6px}.ruby-cmdk-results{max-height:46vh;overflow-y:auto;padding:6px}.ruby-cmdk-group{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-2);font-weight:600;padding:8px 10px 4px}.ruby-cmdk-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:9px 10px;border-radius:8px;background:none;border:0;cursor:pointer;font-size:var(--fs-md);color:var(--fg-0)}.ruby-cmdk-item.is-active{background:var(--bg-2);box-shadow:inset 2px 0 0 var(--gold)}.ruby-cmdk-label{font-weight:600}.ruby-cmdk-sub{font-size:var(--fs-sm);color:var(--fg-2)}.ruby-cmdk-empty{padding:22px;text-align:center;font-size:var(--fs-md);color:var(--fg-2)}.ruby-content>*{max-width:1120px;margin-left:auto;margin-right:auto}.ruby-qa-row{display:none;gap:8px;overflow-x:auto;padding:2px 2px 6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}@media (max-width:720px){.ruby-qa-row{display:flex;flex-direction:row}}.ruby-qa-row::-webkit-scrollbar{display:none}.ruby-qa{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;padding:10px 14px;border-radius:999px;font-size:var(--fs-md);font-weight:600;background:var(--bg-1);color:var(--fg-0);border:1px solid var(--line);text-decoration:none;cursor:pointer;font-family:inherit;transition:background .15s cubic-bezier(.16,1,.3,1),transform .15s cubic-bezier(.16,1,.3,1)}.ruby-qa:active{transform:translateY(1px)}.ruby-qa.is-primary{background:var(--action);border-color:var(--action);color:var(--crema-hi,#FCF8F0)}.ruby-bcard-foot{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.ruby-bcard-foot .ruby-row-actions{display:flex;flex-wrap:wrap;gap:8px}.ruby-bcard-foot .ruby-row-action{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg-0);font-size:var(--fs-md);font-weight:600;color:inherit}.ruby-bcard-foot .ruby-row-action:active{transform:translateY(1px)}@media (max-width:720px){.ruby-icon-btn{width:44px;height:44px}.ruby-row-action{min-width:44px;min-height:44px}.ruby-pill{min-height:38px;display:inline-flex;align-items:center}}.ruby-toast-action{flex-shrink:0;align-self:center;padding:6px 12px;border-radius:8px;font-weight:700;font-size:var(--fs-md);background:var(--action);color:#FCF8F0;border:none;cursor:pointer}.ruby-toast-action:active{transform:translateY(1px)}.ruby-walkin{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ruby-walkin .ruby-input{min-width:120px;flex:1 1}@media (max-width:720px){.ruby-walkin{width:100%}.ruby-walkin .ruby-input{min-width:100%}.ruby-walkin .ruby-btn{flex:1 1;justify-content:center}}select.ruby-input{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2316324F' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}input[type=date].ruby-input::-webkit-calendar-picker-indicator{opacity:.55}.ruby-stat-tile,.ruby-tile{border-color:var(--line)!important}.ruby-badge-success{color:var(--navy,#16324F);background:var(--bg-2);border:1px solid var(--line)}@media (max-width:720px){.ruby-card-head,.ruby-card-head-side{flex-wrap:wrap;row-gap:8px}.ruby-qa-row{-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}}.ruby-hero-done{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:var(--fs-md);color:var(--fg-1)}.ruby-hero-done .ruby-num{color:var(--fg-0);font-size:15px}@media (max-width:720px){.ruby-hero{padding:16px}.ruby-hero-title{font-size:30px}.ruby-hero-sub{font-size:var(--fs-md)}.ruby-screen>.ruby-hero{order:-3}.ruby-screen>.ruby-qa-row{order:-2}.ruby-screen>.ruby-grid-12{order:-1}}.ruby-settings-tabs{margin-bottom:18px}.ruby-settings-tabs button{min-height:40px}.ruby-settings-savebar{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;display:flex;gap:10px;align-items:center;padding:12px 0;margin-top:14px;background:linear-gradient(transparent,var(--bg-0) 30%)}@media (max-width:720px){.ruby-settings-tabs{overflow-x:auto;scrollbar-width:none;display:flex;flex-wrap:nowrap}.ruby-settings-tabs button{white-space:nowrap}.ruby-settings-savebar{bottom:64px}}.ruby-btn-spinner{width:14px;height:14px;border-radius:50%;border:2px solid;border-top:2px solid transparent;animation:rubySpin .7s linear infinite}@keyframes rubySpin{to{transform:rotate(1turn)}}.u-row{gap:var(--sp-2)}.u-row,.u-row-lg{display:flex;align-items:center}.u-row-lg,.u-stack{gap:var(--sp-3)}.u-stack{display:flex;flex-direction:column}.u-wrap{flex-wrap:wrap}.u-muted{color:var(--fg-2);font-size:var(--fs-md)}.u-mt-2{margin-top:var(--sp-2)}.u-mt-3{margin-top:var(--sp-3)}.u-mt-4{margin-top:var(--sp-4)}.u-full{width:100%}.ruby-ccard-stat-v,.ruby-team-v,.ruby-tenant-stat-v{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:700;color:var(--fg-0)}.ruby-ccard-stat-l,.ruby-team-l,.ruby-tenant-stat-l{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--fg-2)}.ruby-vip-tag{display:inline-flex;align-items:center;height:18px;padding:0 var(--sp-2);border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.05em}.ruby-stat:before{background:var(--line)!important}.ruby-stat-gold:before{background:var(--gold)!important}