.install-banner{position:fixed;bottom:0;left:0;right:0;z-index:9998;padding:16px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 -4px 20px #00000026;animation:slideUp .4s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.install-banner-container{position:relative;max-width:600px;margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}.install-banner-icon{font-size:32px;line-height:1}.install-banner-content{flex:1}.install-banner-title{margin:0 0 4px;font-size:16px;font-weight:700;line-height:1.3}.install-banner-description{margin:0;font-size:13px;opacity:.9;line-height:1.4}.install-banner-actions{display:flex;gap:8px}.install-banner-btn{padding:8px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.install-banner-btn-primary{background:#fff;color:#2563eb}.install-banner-btn-primary:hover{background:#f0f0f0;transform:translateY(-1px)}.install-banner-btn-primary:active{transform:translateY(0)}.install-banner-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.install-banner-btn-secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}.install-banner-btn-secondary:hover{background:#ffffff1a;border-color:#fff9}.install-banner-btn-secondary:active{background:#ffffff26}.install-banner-close{position:absolute;top:-8px;right:-8px;background:#0000004d;border:none;color:#fff;font-size:28px;line-height:1;cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.install-banner-close:hover{background:#00000080;transform:scale(1.1)}.install-banner-close:active{transform:scale(.95)}@media(max-width:480px){.install-banner{padding:12px}.install-banner-container{grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:12px}.install-banner-icon{font-size:28px;grid-row:1 / 2}.install-banner-content{grid-row:1 / 2}.install-banner-actions{grid-column:1 / 3;grid-row:2 / 3;width:100%}.install-banner-btn{flex:1;padding:10px 12px;font-size:13px}.install-banner-title{font-size:15px}.install-banner-description{font-size:12px}}.install-banner.hiding{animation:slideDown .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes slideDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}.offline-indicator{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-100px);z-index:9999;padding:14px 24px;border-radius:12px;box-shadow:0 6px 20px #00000026;opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);max-width:90%;width:auto;min-width:280px}.offline-indicator.show{opacity:1;transform:translate(-50%) translateY(0)}.offline-indicator.offline{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:1px solid rgba(255,255,255,.2)}.offline-indicator.online{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:1px solid rgba(255,255,255,.2)}.offline-indicator-content{display:flex;align-items:center;gap:12px}.offline-indicator-icon{font-size:20px;line-height:1}.offline-indicator-message{flex:1;font-size:14px;font-weight:600;line-height:1.4}.offline-indicator-close{background:none;border:none;color:#fff;font-size:24px;line-height:1;cursor:pointer;padding:0;margin:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.offline-indicator-close:hover{background-color:#fff3}.offline-indicator-close:active{background-color:#ffffff4d}@media(max-width:768px){.offline-indicator{top:10px;min-width:240px;padding:12px 18px}.offline-indicator-message{font-size:13px}.offline-indicator-icon{font-size:18px}}.offline-indicator.offline .offline-indicator-icon{animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}*{box-sizing:border-box}.tooltip-container::-webkit-scrollbar{width:6px}.tooltip-container::-webkit-scrollbar-track{background:var(--color-borderLight);border-radius:3px}.tooltip-container::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px;border:1px solid var(--color-borderLight)}.tooltip-container::-webkit-scrollbar-thumb:hover{background:var(--color-textSecondary)}.tooltip-container{scrollbar-width:thin;scrollbar-color:var(--color-border) var(--color-borderLight)}@media(max-width:768px){.tooltip-container{font-size:12px!important;line-height:1.4!important;padding:12px!important;border-radius:8px!important}}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:16px}body{margin:0;padding:0;background-color:var(--color-background);color:var(--color-textPrimary);transition:background-color .2s ease,color .2s ease}body:before{content:"";position:fixed;top:0;left:0;width:100vw;height:100vh;background-image:var(--background-image, none);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;opacity:var(--background-opacity, .3);z-index:-1000;pointer-events:none;border:2px solid rgba(255,0,0,.5)}body.login-page{background-color:#f7f7f7!important;color:#333!important}body.login-page:before{display:none!important}:root{--color-background: #0e1626;--color-cardBackground: #1a2332;--color-modalBackground: #0b1322;--color-textPrimary: #e6f0ff;--color-textSecondary: #9db7d3;--color-textMuted: #6b7280;--color-border: #23304a;--color-borderLight: #1f2a44;--color-borderDashed: #1f2a44;--color-btnPrimary: #2563eb;--color-btnPrimaryHover: #1d4ed8;--color-btnSecondary: #6c757d;--color-btnDanger: #ff3b30;--color-btnSuccess: #2a9d8f;--color-btnWarning: #e76f51;--color-btnText: #ffffff;--color-success: #22c55e;--color-error: #ef4444;--color-warning: #f59e0b;--color-info: #3b82f6;--color-badgeActive: #173c2a;--color-badgeInactive: #3a1a1a;--color-inputBg: #0e1626;--color-inputBorder: #23304a;--color-inputText: #e6f0ff;--color-selected: #1a253a;--color-hover: rgba(59, 130, 246, .1)}input,select,textarea{background:var(--color-inputBg);border:1px solid var(--color-inputBorder);color:var(--color-inputText)}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-btnPrimary);outline-offset:2px}button:hover{opacity:.92;transform:translateY(-1px);transition:all .2s ease}button:active{transform:translateY(0);transition:all .1s ease}button:focus-visible{outline:2px solid var(--color-btnPrimary);outline-offset:2px}.card{border-radius:12px;background:var(--color-cardBackground);border:1px solid var(--color-borderLight);box-shadow:0 2px 8px #00000014,0 1px 4px #0000000a,0 0 1px #0000000a;transition:box-shadow .3s ease,transform .2s ease,border-color .2s ease;padding:24px}.card:hover{box-shadow:0 4px 16px #0000001f,0 2px 8px #0000000f,0 0 1px #0000000a;transform:translateY(-2px);border-color:var(--color-border)}input:hover,select:hover,textarea:hover{border-color:var(--color-border)}input:focus,select:focus,textarea:focus{border-color:var(--color-btnPrimary);box-shadow:0 0 0 3px #2563eb1a}*{transition-timing-function:cubic-bezier(.4,0,.2,1)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-textSecondary)}
