.logo{align-items:center;display:flex}.logo-header{gap:8px}.logo-icon{flex-shrink:0;width:32px;height:32px}.logo-icon-lg{width:64px;height:64px}.logo-text{color:var(--color-obsidian);font-size:16px;font-weight:600}.logo-login{text-align:center;flex-direction:column;margin-bottom:32px}.logo-title{font-size:var(--text-subheading);color:var(--color-obsidian);margin:16px 0 8px;font-weight:600}.logo-subtitle{color:var(--color-fog);margin:0;font-size:14px}.layout{flex-direction:column;min-height:100dvh;display:flex}.layout-header{z-index:100;background:var(--surface-card);border-bottom:1px solid var(--color-cloud);padding:12px 16px;padding-top:calc(12px + var(--safe-top));justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.layout-logo{align-items:center;gap:8px;display:flex}.layout-logo-icon{width:32px;height:32px}.layout-logo-text{color:var(--color-obsidian);font-size:16px;font-weight:600}.layout-user{color:var(--color-fog);font-size:13px}.layout-nav{z-index:100;background:var(--surface-card);border-top:1px solid var(--color-cloud);padding:8px 8px calc(8px + var(--safe-bottom));justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--color-fog);border-radius:12px;flex-direction:column;align-items:center;gap:2px;min-width:56px;padding:6px 12px;font-size:11px;transition:color .15s,background .15s;display:flex}.nav-item.active{color:var(--color-obsidian);background:var(--surface-subtle)}.nav-icon{justify-content:center;align-items:center;line-height:1;display:flex}.layout-main{flex:1}:root{--color-obsidian:#09090b;--color-graphite:#18181b;--color-slate:#27272a;--color-iron:#3f3f46;--color-steel:#52525b;--color-fog:#71717a;--color-ash:#a1a1aa;--color-mist:#d4d4d8;--color-cloud:#ececee;--color-paper:#f4f4f5;--color-snow:#fff;--color-ember:#ff5a00;--font-cosmica:"DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--text-caption:12px;--text-body:15px;--text-body-lg:18px;--text-subheading:20px;--text-heading-sm:32px;--spacing-4:4px;--spacing-8:8px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-28:28px;--spacing-32:32px;--radius-badges:12px;--radius-buttons:14px;--radius-cards:36px;--radius-pills:10000px;--surface-canvas:#f4f4f5;--surface-card:#fff;--surface-subtle:#fafafa;--shadow-subtle:#ffffff80 0px .5px 0px 0px inset, #757b8566 0px 9px 14px -5px inset, #2c2e34 0px 0px 0px 1.5px, #00000024 0px 4px 6px 0px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior-y:none;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;height:100%;margin:0;padding:0}body{font-family:var(--font-cosmica);font-size:var(--text-body);color:var(--color-graphite);background:var(--surface-canvas);-webkit-font-smoothing:antialiased;line-height:1.45}#root{min-height:100dvh}.no-select{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.selectable{-webkit-user-select:text;user-select:text}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:var(--text-body)}.btn{justify-content:center;align-items:center;gap:var(--spacing-8);border-radius:var(--radius-buttons);white-space:nowrap;padding:12px 16px;font-size:14px;font-weight:400;transition:opacity .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--color-obsidian);color:var(--color-snow);box-shadow:var(--shadow-subtle)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface-subtle);color:var(--color-graphite)}.btn-ghost{color:var(--color-iron);border:1px solid var(--color-cloud);background:0 0}.btn-ember{background:var(--color-ember);color:var(--color-snow)}.btn-sm{padding:8px 12px;font-size:13px}.btn-full{width:100%}.card{background:var(--surface-card);border:1px solid var(--color-cloud);border-radius:var(--radius-cards);padding:var(--spacing-24)}.card-sm{padding:var(--spacing-16);border-radius:20px}.badge{border-radius:var(--radius-badges);font-size:var(--text-caption);border:1px solid var(--color-cloud);color:var(--color-graphite);background:0 0;align-items:center;padding:4px 8px;font-weight:400;display:inline-flex}.badge-filled{background:var(--color-iron);color:var(--color-snow);border-color:#0000}.badge-ember{background:var(--color-ember);color:var(--color-snow);border-color:#0000}.badge-success{color:#fff;background:#16a34a;border-color:#0000}.badge-warning{color:#fff;background:#f59e0b;border-color:#0000}.form-group{margin-bottom:var(--spacing-16)}.form-label{color:var(--color-steel);margin-bottom:var(--spacing-8);font-size:13px;display:block}.form-input{border:1px solid var(--color-cloud);border-radius:var(--radius-buttons);background:var(--color-snow);width:100%;color:var(--color-graphite);outline:none;padding:12px 16px;transition:border-color .15s}.form-input:focus{border-color:var(--color-iron)}.form-select{appearance:none;border:1px solid var(--color-cloud);border-radius:var(--radius-buttons);background:var(--color-snow);width:100%;color:var(--color-graphite);outline:none;padding:12px 16px}.page{padding:var(--spacing-16);padding-top:calc(var(--spacing-16) + var(--safe-top));padding-bottom:calc(80px + var(--safe-bottom));max-width:1200px;margin:0 auto}.page-title{font-size:var(--text-subheading);color:var(--color-obsidian);margin:0 0 var(--spacing-24);font-weight:600}.section-title{color:var(--color-obsidian);margin:0 0 var(--spacing-12);font-size:16px;font-weight:600}.empty-state{text-align:center;padding:var(--spacing-32);color:var(--color-fog)}.error-text{color:#dc2626;margin-top:var(--spacing-8);font-size:13px}.list-item{align-items:center;gap:var(--spacing-12);padding:var(--spacing-16);border-bottom:1px solid var(--color-cloud);transition:background .1s;display:flex}.list-item:last-child{border-bottom:none}.list-item:active{background:var(--surface-subtle)}.list-item-content{flex:1;min-width:0}.list-item-title{color:var(--color-obsidian);margin:0;font-weight:500}.list-item-sub{color:var(--color-fog);margin:2px 0 0;font-size:13px}.tabs{gap:var(--spacing-8);margin-bottom:var(--spacing-20);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{border-radius:var(--radius-pills);color:var(--color-steel);border:1px solid var(--color-cloud);white-space:nowrap;background:0 0;padding:8px 16px;font-size:13px;transition:all .15s}.tab.active{background:var(--color-obsidian);color:var(--color-snow);border-color:var(--color-obsidian)}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-overlay.center{padding:var(--spacing-16);align-items:center}.modal{background:var(--surface-card);border-radius:var(--radius-cards) var(--radius-cards) 0 0;padding:var(--spacing-24);width:100%;max-width:500px;max-height:90vh;animation:.25s slideUp;overflow-y:auto}.modal-overlay.center .modal{border-radius:var(--radius-cards)}.modal-title{margin:0 0 var(--spacing-20);color:var(--color-obsidian);font-size:18px;font-weight:600}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.score-display{justify-content:center;align-items:center;gap:var(--spacing-16);color:var(--color-obsidian);font-size:24px;font-weight:600;display:flex}.score-team{text-align:center;flex:1}.score-team-name{color:var(--color-fog);margin-bottom:4px;font-size:13px;font-weight:400}.score-value{font-size:32px}.news-item{padding:var(--spacing-20);border-bottom:1px solid var(--color-cloud)}.news-item.pinned{background:var(--surface-subtle)}.news-item-header{align-items:flex-start;gap:var(--spacing-8);margin-bottom:var(--spacing-8);display:flex}.news-item-title{color:var(--color-obsidian);margin:0;font-size:15px;font-weight:600}.news-item-content{color:var(--color-steel);margin:0;font-size:14px;line-height:1.5}.news-item-meta{color:var(--color-ash);margin-top:var(--spacing-8);font-size:12px}.install-screen{min-height:100dvh;padding:var(--spacing-32);text-align:center;background:var(--surface-canvas);flex-direction:column;justify-content:center;align-items:center;display:flex}.install-logo{width:80px;height:80px;margin-bottom:var(--spacing-24)}.install-title{color:var(--color-obsidian);margin:0 0 var(--spacing-12);font-size:28px;font-weight:600}.install-subtitle{color:var(--color-steel);margin:0 0 var(--spacing-32);max-width:320px}.install-steps{text-align:left;max-width:320px;margin-bottom:var(--spacing-32)}.install-step{gap:var(--spacing-12);margin-bottom:var(--spacing-16);align-items:flex-start;display:flex}.install-step-num{background:var(--color-obsidian);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:600;display:flex}.install-step-text{color:var(--color-steel);font-size:14px;line-height:1.4}.loading{padding:var(--spacing-32);color:var(--color-fog);justify-content:center;align-items:center;display:flex}.spinner{border:2px solid var(--color-cloud);border-top-color:var(--color-obsidian);border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.grid-2{gap:var(--spacing-12);grid-template-columns:1fr 1fr;display:grid}.stat-card{background:var(--surface-card);border:1px solid var(--color-cloud);padding:var(--spacing-16);border-radius:20px}.stat-value{color:var(--color-obsidian);font-size:24px;font-weight:600}.stat-label{color:var(--color-fog);margin-top:4px;font-size:12px}.funnel-stage{margin-bottom:var(--spacing-16)}.funnel-header{margin-bottom:var(--spacing-8);justify-content:space-between;align-items:center;display:flex}.funnel-count{color:var(--color-fog);font-size:13px}.funnel-cards{gap:var(--spacing-8);flex-direction:column;display:flex}.funnel-card{background:var(--surface-card);border:1px solid var(--color-cloud);padding:var(--spacing-12) var(--spacing-16);cursor:pointer;border-radius:16px;transition:background .1s}.funnel-card:active{background:var(--surface-subtle)}.funnel-card-name{color:var(--color-obsidian);font-weight:500}.funnel-card-phone{color:var(--color-fog);font-size:13px}.balance-card{background:var(--color-obsidian);color:var(--color-snow);border-radius:var(--radius-cards);padding:var(--spacing-24);margin-bottom:var(--spacing-20)}.balance-label{opacity:.7;margin-bottom:4px;font-size:13px}.balance-value{font-size:32px;font-weight:600}.balance-negative{color:#f87171}.balance-positive{color:#4ade80}.soon-badge{border-radius:var(--radius-badges);background:var(--color-paper);color:var(--color-fog);border:1px solid var(--color-cloud);align-items:center;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.feature-grid{gap:var(--spacing-12);margin-bottom:var(--spacing-24);grid-template-columns:1fr 1fr;display:grid}.feature-tile{background:var(--surface-card);border:1px solid var(--color-cloud);padding:var(--spacing-16);text-align:left;border-radius:20px;transition:opacity .15s}.feature-tile.active{cursor:pointer}.feature-tile.active:active{background:var(--surface-subtle)}.feature-tile.locked{opacity:.55;cursor:not-allowed}.feature-tile-icon{color:var(--color-obsidian);margin-bottom:8px;display:flex}.feature-tile-label{color:var(--color-obsidian);margin:0 0 4px;font-size:14px;font-weight:500}.feature-tile-desc{color:var(--color-fog);margin:0;font-size:12px;line-height:1.4}.live-badge{border-radius:var(--radius-pills);color:#dc2626;background:#fef2f2;border:1px solid #fecaca;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.live-dot{background:#dc2626;border-radius:50%;width:8px;height:8px;animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.password-result{background:var(--surface-subtle);border:1px solid var(--color-cloud);padding:var(--spacing-16);margin-top:var(--spacing-16);border-radius:16px}.password-result-value{color:var(--color-obsidian);letter-spacing:.05em;font-family:ui-monospace,monospace;font-size:18px;font-weight:600}.nav-item.locked{opacity:.45;pointer-events:none}.attendance-status{align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.attendance-status.present{color:#16a34a}.attendance-status.absent{color:var(--color-fog)}
