.app{min-height:100vh;background:radial-gradient(120% 120% at 20% 15%,#78aaff2e,#0000 55%),radial-gradient(120% 120% at 85% 0%,#b478ff29,#0000 55%),radial-gradient(140% 140% at 40% 110%,#3cc8ff1a,#0000 60%),#0b0d12;color:#ffffffeb;padding:calc(12px + env(safe-area-inset-top,0px)) 12px calc(88px + env(safe-area-inset-bottom,0px));font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;justify-content:center}.container{width:100%;max-width:960px;display:flex;flex-direction:column;gap:16px}.header-section{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.header-section>div:first-child{flex:1}h1{margin:0 0 8px;font-size:28px;font-weight:600;color:var(--tg-theme-text-color, #000000)}.user-role-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.user-role-badge[data-role=admin]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.user-role-badge[data-role=user]{background:#2196f3;color:#fff}.logout-btn{background-color:transparent;color:#ffffffeb;border:1px solid rgba(255,255,255,.16);padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.logout-btn:hover{background-color:#ffffff14}.logout-btn:active{opacity:.6}.user-info{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);padding:16px;border-radius:12px;text-align:center}.user-info p{margin:8px 0;color:#ffffffeb}.counter{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);padding:24px;border-radius:12px;text-align:center}.counter h2{margin:0 0 20px;font-size:32px;color:#ffffffeb}.increment-btn{background:linear-gradient(135deg,#2481ccf2,#764ba2f2);color:#fffffff2;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:opacity .2s}.increment-btn:active{opacity:.8}.actions{display:flex;gap:12px;justify-content:center}.action-btn{background:#ffffff14;color:#ffffffeb;border:1px solid rgba(255,255,255,.14);padding:12px 24px;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:opacity .2s}.action-btn:active{opacity:.8}.info{text-align:center;color:#ffffffa6;font-size:14px}.info p{margin:8px 0}.service-content{margin-top:12px;min-height:60vh}.page{background:#12141c9e;border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:14px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 18px 40px #00000059;animation:pageIn .26s cubic-bezier(.2,.9,.2,1)}@keyframes pageIn{0%{transform:translateY(14px);opacity:.7}to{transform:translateY(0);opacity:1}}@media (max-width: 768px){.container{padding:0 4px;max-width:100%}h1{font-size:22px}.header-section{flex-direction:column;gap:12px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background-color:var(--tg-theme-bg-color, #ffffff)}.login-card{width:100%;max-width:400px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);padding:32px;border-radius:16px;box-shadow:0 4px 12px #0000001a}.login-card h1{text-align:center;margin:0 0 8px;font-size:24px;font-weight:600;color:var(--tg-theme-text-color, #000000)}.login-subtitle{text-align:center;margin:0 0 24px;color:var(--tg-theme-hint-color, #999999);font-size:14px}.login-form{display:flex;flex-direction:column;gap:20px}.login-button{width:100%;padding:14px;background-color:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #ffffff);border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s;margin-top:8px}.login-button:hover:not(:disabled){opacity:.9}.login-button:active:not(:disabled){opacity:.8}.login-button:disabled{opacity:.6;cursor:not-allowed}.telegram-auth-section{margin-bottom:20px}.telegram-auth-button{width:100%;padding:12px 20px;background:linear-gradient(135deg,#08c,#06a);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0088cc4d}.telegram-auth-button:hover{background:linear-gradient(135deg,#06a,#048);transform:translateY(-1px);box-shadow:0 4px 12px #08c6}.telegram-auth-button:active{transform:translateY(0)}.login-divider{display:flex;align-items:center;margin:20px 0;text-align:center}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--tg-theme-hint-color, #e0e0e0)}.login-divider span{padding:0 15px;color:var(--tg-theme-hint-color, #999999);font-size:14px}.login-footer{margin-top:20px;text-align:center;padding-top:20px;border-top:1px solid var(--tg-theme-hint-color, #e0e0e0)}.login-footer p{margin:0 0 8px;color:var(--tg-theme-hint-color, #999999);font-size:14px}.register-link{background:none;border:none;color:var(--tg-theme-button-color, #2481cc);font-size:14px;font-weight:500;cursor:pointer;text-decoration:underline;padding:0}.register-link:hover:not(:disabled){opacity:.8}.register-link:disabled{opacity:.6;cursor:not-allowed}.register-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background-color:var(--tg-theme-bg-color, #ffffff)}.register-card{width:100%;max-width:400px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);padding:32px;border-radius:16px;box-shadow:0 4px 12px #0000001a}.register-card h1{text-align:center;margin:0 0 8px;font-size:24px;font-weight:600;color:var(--tg-theme-text-color, #000000)}.register-subtitle{text-align:center;margin:0 0 8px;color:var(--tg-theme-text-color, #000000);font-size:16px}.register-info{text-align:center;margin:0 0 24px;color:var(--tg-theme-hint-color, #999999);font-size:14px}.register-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:var(--tg-theme-text-color, #000000)}.form-group input{width:100%;padding:12px 16px;border:2px solid var(--tg-theme-hint-color, #e0e0e0);border-radius:8px;font-size:16px;background-color:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #000000);transition:border-color .2s;outline:none}.form-group input:focus{border-color:var(--tg-theme-button-color, #2481cc)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.form-group input::placeholder{color:var(--tg-theme-hint-color, #999999)}.form-hint{font-size:12px;color:var(--tg-theme-hint-color, #999999);font-style:italic}.error-message{padding:12px;background-color:#ff00001a;border:1px solid rgba(255,0,0,.3);border-radius:8px;color:#d32f2f;font-size:14px;text-align:center}.register-actions{display:flex;gap:12px;margin-top:8px}.cancel-button{flex:1;padding:14px;background-color:transparent;color:var(--tg-theme-text-color, #000000);border:2px solid var(--tg-theme-hint-color, #999999);border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-button:hover:not(:disabled){background-color:var(--tg-theme-secondary-bg-color, #f0f0f0)}.cancel-button:disabled{opacity:.6;cursor:not-allowed}.register-button{flex:1;padding:14px;background-color:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #ffffff);border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s}.register-button:hover:not(:disabled){opacity:.9}.register-button:disabled{opacity:.6;cursor:not-allowed}.navigation{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px));max-width:560px;margin:0 auto;background:#12141cb8;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 44px #0006;border-radius:22px;padding:10px;z-index:50}.nav-header{display:none}.nav-services{display:flex;justify-content:space-between;gap:8px}.nav-item{flex:1;min-width:62px;background:transparent;border:1px solid transparent;padding:8px 6px;border-radius:16px;cursor:pointer;transition:background .24s ease,border-color .24s ease,transform .24s ease,opacity .24s ease;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;color:#ffffffeb}.nav-item:hover:not(.disabled){background:#ffffff0f}.nav-item.active{background:#ffffff1a;color:#fffffffa;border-color:#ffffff29}.nav-item.disabled{opacity:.5;cursor:not-allowed;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0)}.nav-icon{font-size:20px;line-height:1}.nav-text{font-size:10px;font-weight:700;opacity:.88;color:#ffffffeb}.nav-lock{font-size:12px;margin-top:2px}.nav-empty{padding:24px;text-align:center;color:var(--tg-theme-hint-color, #999999)}.nav-empty p{margin:8px 0}.nav-empty-hint{font-size:12px;color:var(--tg-theme-hint-color, #999999);margin-top:4px}@media (max-width: 768px){.navigation{left:10px;right:10px;padding:10px}.nav-item{min-width:58px}}.more-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:12px}.more-sheet{width:min(96%,960px);background:#12141cdb;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:10px 12px 12px;box-shadow:0 18px 38px #00000073;transform:translateY(0);animation:sheetIn .16s ease-out;margin-bottom:calc(72px + env(safe-area-inset-bottom,0px))}@keyframes sheetIn{0%{transform:translateY(18px);opacity:.7}to{transform:translateY(0);opacity:1}}.more-handle{width:46px;height:5px;border-radius:999px;background:#0000001f;margin:4px auto 10px}.more-title{font-size:14px;font-weight:700;color:#ffffffeb;margin-bottom:10px}.more-list{display:flex;flex-direction:column;gap:8px;max-height:min(56vh,520px);overflow:auto}.more-item{width:100%;display:grid;grid-template-columns:28px 1fr 18px;align-items:center;gap:10px;padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:#ffffff0f;color:#ffffffeb;cursor:pointer}.more-icon{font-size:18px}.more-name{text-align:left;font-weight:600;font-size:13px}.more-chevron{text-align:right;color:#ffffff73;font-size:18px}.more-empty{padding:16px 6px;text-align:center;color:#fff9}.more-empty-hint{font-size:12px;margin-top:6px}.more-close{margin-top:12px;width:100%;padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:#ffffff0f;color:#ffffffeb;font-weight:700;cursor:pointer}.dashboard{padding:20px}.dashboard h2{margin:0 0 24px;font-size:24px;color:var(--tg-theme-text-color, #000000)}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:32px}.stat-card{background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);padding:20px;border-radius:12px;text-align:center}.stat-value{font-size:32px;font-weight:700;color:var(--tg-theme-button-color, #2481cc);margin-bottom:8px}.stat-label{font-size:14px;color:var(--tg-theme-hint-color, #999999)}.stat-note{font-size:12px;color:var(--tg-theme-hint-color, #999999);margin-top:8px;font-style:italic}.dashboard-section{margin-bottom:32px}.dashboard-section h3{margin:0 0 16px;font-size:18px;color:var(--tg-theme-text-color, #000000)}.quick-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.action-card{background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border:none;padding:16px;border-radius:12px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}.action-card:hover{background-color:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #ffffff);transform:translateY(-2px)}.action-card.admin-only{border:2px solid #ff9800}.action-icon{font-size:32px}.action-text{font-size:14px;font-weight:500;text-align:center}.action-badge{position:absolute;top:8px;right:8px;background:#ff9800;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600}.events-list{display:flex;flex-direction:column;gap:12px}.event-item{background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);padding:12px 16px;border-radius:8px;display:flex;align-items:center;gap:12px}.event-time{font-size:12px;color:var(--tg-theme-hint-color, #999999);min-width:80px}.event-text{flex:1;color:var(--tg-theme-text-color, #000000);font-size:14px}.event-detail{color:var(--tg-theme-button-color, #2481cc);cursor:pointer}.admin-banner{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:16px;border-radius:12px;display:flex;align-items:center;gap:12px;margin-top:24px}.admin-icon{font-size:24px}.admin-banner span:last-child{flex:1;font-size:14px}.users-container{padding:8px}.users-topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}.users-title-main{font-size:18px;font-weight:800;color:#ffffffeb}.users-title-sub{font-size:12px;color:#ffffffa6;margin-top:4px}.users-top-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.btn{border-radius:12px;padding:10px 12px;font-size:13px;font-weight:800;cursor:pointer;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#ffffffeb}.btn:hover{background:#ffffff1a}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg,#2481ccf2,#764ba2f2);border-color:#ffffff1a}.btn-secondary{background:#9c27b038;border-color:#9c27b040}.btn-success{background:#4caf5038;border-color:#4caf5040}.btn-warning{background:#ff980038;border-color:#ff980040}.btn-danger{background:#f4433638;border-color:#f4433640}.btn-ghost{background:transparent;border-color:#ffffff1f}.btn-icon{width:40px;padding:10px 0;text-align:center}.btn-mini{width:32px;height:32px;padding:0;border-radius:10px;font-size:14px}.no-access{text-align:center;padding:40px 20px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:12px}.no-access p{margin:8px 0;color:var(--tg-theme-text-color, #000000)}.no-access .hint{font-size:14px;color:var(--tg-theme-hint-color, #999999)}.users-layout{display:grid;grid-template-columns:300px 1fr;gap:20px}.users-list{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:16px;display:flex;flex-direction:column;max-height:68vh}.search-box{margin-bottom:16px}.search-input{width:100%;padding:10px 12px;border:1px solid rgba(255,255,255,.14);border-radius:14px;font-size:14px;background:#12141c8c;color:#ffffffeb;outline:none}.search-input:focus{border-color:#2481cc8c}.search-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.users-filters{margin-bottom:12px}.status-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.status-filter-btn{padding:6px 12px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff0f;color:#ffffffeb;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.status-filter-btn:hover{background-color:var(--tg-theme-secondary-bg-color, #f0f0f0)}.status-filter-btn.active{background:#ffffff1f;border-color:#ffffff2e}.pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:800;background:#00000059;color:#ffffffeb}.users-count{font-size:12px;color:var(--tg-theme-hint-color, #999999);margin-bottom:12px}.users-scroll{overflow-y:auto;flex:1}.user-item{background:#12141c8c;border:1px solid rgba(255,255,255,.1);padding:12px;border-radius:14px;margin-bottom:8px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:12px}.user-item:hover{transform:translate(4px);box-shadow:0 2px 8px #0000001a}.user-item.selected{border-color:#2481cc8c;background:#2481cc24}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-weight:600;color:#ffffffeb;margin-bottom:4px;font-size:14px}.user-details{font-size:12px;color:#ffffffa6}.user-status-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.status-badge{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:500}.status-badge.pending{background-color:#ff9800;color:#fff}.status-badge.approved{background-color:#4caf50;color:#fff}.status-badge.rejected{background-color:#f44336;color:#fff}.status-badge.inactive{background-color:#999;color:#fff}.user-status-display{margin-top:8px}.status-badge-large{display:inline-block;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600}.status-badge-large.pending{background-color:#ff9800;color:#fff}.status-badge-large.approved{background-color:#4caf50;color:#fff}.status-badge-large.rejected{background-color:#f44336;color:#fff}.user-details-panel{background:#12141cb8;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:16px}.user-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.user-header h3{margin:0;font-size:20px;color:#ffffffeb}.user-actions{display:flex;gap:8px}.action-btn{padding:8px 16px;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:opacity .2s}.action-btn.activate{background-color:#4caf50;color:#fff}.action-btn.deactivate{background-color:#ff9800;color:#fff}.action-btn.approve{background-color:#4caf50;color:#fff}.action-btn.reject{background-color:#ff9800;color:#fff}.action-btn.impersonate{background-color:#9c27b0;color:#fff}.action-btn.delete{background-color:#f44336;color:#fff}.action-btn:hover{opacity:.8}.user-meta{margin-bottom:24px}.meta-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}.meta-label{font-size:14px;color:#ffffffa6}.meta-value{font-size:14px;color:#ffffffeb;font-weight:500;display:inline-flex;align-items:center;gap:8px}.meta-copy{border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#ffffffe6;border-radius:10px;padding:6px 8px;cursor:pointer;line-height:1}.meta-copy:hover{background:#ffffff1a}.permissions-section{margin-top:24px}.permissions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.permissions-header h4{margin:0;font-size:18px;color:#ffffffeb}.edit-btn,.save-btn,.cancel-btn{padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .2s}.edit-btn{background-color:var(--tg-theme-button-color, #2481cc);color:#fff}.save-btn{background-color:#4caf50;color:#fff}.cancel-btn{background-color:var(--tg-theme-hint-color, #999999);color:#fff}.edit-actions{display:flex;gap:8px}.permissions-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.permission-item{background:#12141c8c;border:1px solid rgba(255,255,255,.1);padding:12px;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.permission-service{display:flex;align-items:center;gap:12px}.service-icon{font-size:20px}.service-name{font-size:14px;color:#ffffffeb;font-weight:500}.permission-select{padding:6px 12px;border:1px solid rgba(255,255,255,.14);border-radius:6px;background:#12141c8c;color:#ffffffeb;font-size:14px;cursor:pointer;outline:none}.permission-select:focus{border-color:var(--tg-theme-button-color, #2481cc)}.permission-badge{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500}.permission-badge.full{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.permission-badge.write{background:#4caf50;color:#fff}.permission-badge.read{background:#2196f3;color:#fff}.permission-badge.none{background:#f44336;color:#fff}.no-selection{text-align:center;padding:60px 20px;color:var(--tg-theme-hint-color, #999999)}.no-selection p{margin:0;font-size:14px}@media (max-width: 768px){.users-layout{grid-template-columns:1fr}.users-list{max-height:none}}.user-quick-actions{display:flex;gap:6px;align-items:center}.user-details-overlay{display:block}@media (max-width: 900px){.user-details-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000006b;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:40;opacity:0;pointer-events:none;transition:opacity .16s ease-out}.user-details-overlay.open{opacity:1;pointer-events:auto}.user-details-panel{position:absolute;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));max-height:70vh;overflow:auto;transform:translateY(18px);transition:transform .16s ease-out}.user-details-panel.open{transform:translateY(0)}.user-close{display:inline-flex}}@media (min-width: 901px){.user-details-overlay{position:static;background:transparent}.user-close{display:none}}.service-placeholder{padding:20px}.service-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.service-icon{font-size:32px}.service-header h2{margin:0;font-size:24px;color:var(--tg-theme-text-color, #000000)}.service-description{margin-bottom:20px}.service-description p{color:var(--tg-theme-hint-color, #999999);font-size:14px;margin:0}.access-info{margin-bottom:24px}.access-badge{display:inline-block;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500}.access-badge[data-level=full]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.access-badge[data-level=write]{background:#4caf50;color:#fff}.access-badge[data-level=read]{background:#2196f3;color:#fff}.access-badge[data-level=none]{background:#f44336;color:#fff}.no-access-message{text-align:center;padding:40px 20px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border-radius:12px}.no-access-message p{margin:8px 0;color:var(--tg-theme-text-color, #000000)}.no-access-message .hint{font-size:12px;color:var(--tg-theme-hint-color, #999999)}.service-content{background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border-radius:12px;padding:24px}.content-placeholder{text-align:center}.content-placeholder p{margin:8px 0;color:var(--tg-theme-text-color, #000000)}.content-placeholder .hint{font-size:14px;color:var(--tg-theme-hint-color, #999999)}.admin-note{margin-top:20px;padding:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:8px}.admin-note p{margin:0;font-size:14px}.read-only-note{margin-top:20px;padding:12px;background:#2196f3;color:#fff;border-radius:8px}.read-only-note p{margin:0;font-size:14px}.joy-report-container{padding:20px;max-width:1200px;margin:0 auto}.joy-report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--tg-theme-secondary-bg-color, #f0f0f0)}.joy-report-header h2{margin:0;font-size:24px;color:var(--tg-theme-text-color, #000000)}.joy-report-content{background-color:var(--tg-theme-bg-color, #ffffff);border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.joy-report-placeholder{text-align:center;padding:40px 20px;color:var(--tg-theme-text-color, #000000)}.joy-report-placeholder p{font-size:16px;margin:12px 0}.write-access-note{margin-top:24px;padding:12px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border-radius:8px;color:var(--tg-theme-hint-color, #999999);font-size:14px}.file-upload-section{display:flex;flex-direction:column;gap:20px}.upload-area{width:100%}.upload-label{display:block;width:100%;padding:40px 20px;border:2px dashed var(--tg-theme-button-color, #2481cc);border-radius:12px;text-align:center;cursor:pointer;transition:all .3s;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0)}.upload-label:hover:not(.disabled){background-color:var(--tg-theme-bg-color, #ffffff);border-color:var(--tg-theme-button-color, #2481cc);transform:translateY(-2px)}.upload-label.disabled{opacity:.5;cursor:not-allowed}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px}.upload-icon{font-size:48px}.upload-placeholder p{margin:0;font-size:16px;color:var(--tg-theme-text-color, #000000)}.upload-placeholder .hint{font-size:12px;color:var(--tg-theme-hint-color, #999999)}.file-selected{display:flex;flex-direction:column;align-items:center;gap:8px}.file-icon{font-size:48px}.file-name{font-size:16px;font-weight:600;color:var(--tg-theme-text-color, #000000)}.file-size{font-size:12px;color:var(--tg-theme-hint-color, #999999)}.upload-actions{display:flex;gap:12px;justify-content:center}.upload-button,.reset-button{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.upload-button{background-color:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #ffffff)}.upload-button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.upload-button:disabled{opacity:.5;cursor:not-allowed}.reset-button{background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);color:var(--tg-theme-text-color, #000000)}.reset-button:hover:not(:disabled){background-color:var(--tg-theme-hint-color, #999999);color:#fff}.no-write-access{text-align:center;padding:16px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border-radius:8px;color:var(--tg-theme-hint-color, #999999);font-size:14px}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border-radius:8px 8px 0 0;margin-bottom:12px}.file-info{display:flex;align-items:center;gap:8px}.file-icon-small{font-size:20px}.file-name-small{font-size:14px;font-weight:600;color:var(--tg-theme-text-color, #000000)}.reset-chat-button{padding:6px 12px;background-color:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #ffffff);border:none;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s}.reset-chat-button:hover{opacity:.9}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background-color:var(--tg-theme-bg-color, #ffffff);border-radius:8px;margin-bottom:12px}.assistant-message .message-content{background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);color:var(--tg-theme-text-color, #000000);border-bottom-left-radius:4px}.chat-input{display:flex;gap:8px;padding:12px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border-radius:0 0 8px 8px}.ai-analytics-container{padding:20px;max-width:1200px;margin:0 auto}.ai-analytics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--tg-theme-secondary-bg-color, #f0f0f0)}.ai-analytics-header h2{margin:0;font-size:24px;color:var(--tg-theme-text-color, #000000)}.header-actions{display:flex;gap:12px;align-items:center}.access-badge{padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600}.access-badge[data-level=full]{background-color:#4caf50;color:#fff}.access-badge[data-level=write]{background-color:#2196f3;color:#fff}.access-badge[data-level=read]{background-color:#ff9800;color:#fff}.reset-button{padding:6px 12px;background-color:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #ffffff);border:none;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s}.reset-button:hover{opacity:.9}.server-warning{padding:12px 16px;background-color:#ff9800;color:#fff;border-radius:8px;margin-bottom:16px;text-align:center;font-size:14px}.ai-analytics-content{background-color:var(--tg-theme-bg-color, #ffffff);border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.no-access-message{text-align:center;padding:60px 20px;color:var(--tg-theme-text-color, #000000)}.no-access-message p{font-size:18px;margin:12px 0}.no-access-message .hint{font-size:14px;color:var(--tg-theme-hint-color, #999999);margin-top:8px}.chat-section{display:flex;flex-direction:column;height:600px;max-height:70vh}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border-radius:8px;margin-bottom:12px}.empty-chat{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--tg-theme-hint-color, #999999)}.empty-chat-icon{font-size:64px;margin-bottom:16px}.empty-chat p{font-size:16px;margin:8px 0;color:var(--tg-theme-text-color, #000000)}.empty-chat .hint{font-size:14px;color:var(--tg-theme-hint-color, #999999)}.message{display:flex;flex-direction:column;max-width:80%;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.user-message{align-self:flex-end}.assistant-message{align-self:flex-start}.message-content{padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.5;word-wrap:break-word}.user-message .message-content{background-color:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #ffffff);border-bottom-right-radius:4px}.assistant-message .message-content{background-color:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #000000);border-bottom-left-radius:4px;border:1px solid var(--tg-theme-secondary-bg-color, #f0f0f0)}.message-content.typing{display:flex;align-items:center;gap:4px}.typing-dots{display:inline-flex;gap:2px}.typing-dots span{animation:typing 1.4s infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.3}30%{opacity:1}}.message-files{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;gap:8px}.assistant-message .message-files{border-top-color:var(--tg-theme-secondary-bg-color, #f0f0f0)}.file-item{display:flex;align-items:center;gap:8px;padding:8px;background-color:#ffffff1a;border-radius:6px}.assistant-message .file-item{background-color:var(--tg-theme-secondary-bg-color, #f0f0f0)}.file-icon{font-size:16px}.file-name{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.download-button{padding:4px 8px;background-color:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #ffffff);border:none;border-radius:4px;font-size:11px;cursor:pointer;transition:all .2s}.download-button:hover{opacity:.9}.message-time{font-size:10px;color:var(--tg-theme-hint-color, #999999);margin-top:4px;padding:0 4px}.user-message .message-time{text-align:right}.chat-input-section{display:flex;flex-direction:column;gap:8px}.attached-file{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border-radius:8px;font-size:14px}.attached-file .file-icon{font-size:16px}.attached-file .file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remove-file-button{width:20px;height:20px;padding:0;background-color:transparent;border:none;color:var(--tg-theme-hint-color, #999999);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.remove-file-button:hover{background-color:#0000001a;color:var(--tg-theme-text-color, #000000)}.chat-input{display:flex;gap:8px;padding:12px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border-radius:8px}.file-attach-button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background-color:var(--tg-theme-bg-color, #ffffff);border:1px solid var(--tg-theme-hint-color, #999999);border-radius:50%;cursor:pointer;font-size:20px;transition:all .2s}.file-attach-button:hover:not(.disabled){background-color:var(--tg-theme-button-color, #2481cc);border-color:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #ffffff)}.file-attach-button.disabled{opacity:.5;cursor:not-allowed}.message-input{flex:1;padding:12px 16px;border:1px solid var(--tg-theme-hint-color, #999999);border-radius:24px;font-size:14px;background-color:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #000000);outline:none}.message-input:focus{border-color:var(--tg-theme-button-color, #2481cc)}.message-input:disabled{opacity:.5;cursor:not-allowed}.send-button{width:44px;height:44px;border:none;border-radius:50%;background-color:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #ffffff);font-size:18px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.send-button:hover:not(:disabled){opacity:.9;transform:scale(1.05)}.send-button:disabled{opacity:.5;cursor:not-allowed}.no-write-access{text-align:center;padding:8px;background-color:var(--tg-theme-secondary-bg-color, #f0f0f0);border-radius:6px;color:var(--tg-theme-hint-color, #999999);font-size:12px}.vpn-users{padding:20px;max-width:1400px;margin:0 auto}.btn-create{padding:10px 20px;background:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #fff);border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}.btn-create:hover:not(:disabled){opacity:.9}.btn-create:disabled{opacity:.5;cursor:not-allowed}.vpn-create-form{background:var(--tg-theme-bg-color, #fff);border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:12px;padding:20px;margin-bottom:20px}.vpn-create-form h3{margin-top:0;margin-bottom:15px;color:var(--tg-theme-text-color, #000)}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500;color:var(--tg-theme-text-color, #000)}.form-group input{width:100%;padding:10px;border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:8px;font-size:14px;box-sizing:border-box}.btn-primary{padding:10px 20px;background:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #fff);border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.vpn-search{margin-bottom:20px}.vpn-search input{width:100%;padding:10px;border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:8px;font-size:14px;box-sizing:border-box}.vpn-content{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 1024px){.vpn-content{grid-template-columns:1fr}}.vpn-users-list{background:var(--tg-theme-bg-color, #fff);border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:12px;padding:20px}.vpn-users-list h3{margin-top:0;margin-bottom:15px;color:var(--tg-theme-text-color, #000)}.vpn-loading,.vpn-empty{text-align:center;padding:40px;color:var(--tg-theme-hint-color, #999)}.users-list{display:flex;flex-direction:column;gap:10px}.user-item{display:flex;justify-content:space-between;align-items:center;padding:15px;border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:8px;cursor:pointer;transition:all .2s;background:var(--tg-theme-bg-color, #fff)}.user-item:hover,.user-item.selected{border-color:var(--tg-theme-button-color, #2481cc);background:var(--tg-theme-secondary-bg-color, #f5f5f5)}.user-item.inactive{opacity:.6}.user-info{flex:1}.user-name{font-weight:600;font-size:16px;color:var(--tg-theme-text-color, #000);margin-bottom:5px}.user-meta{display:flex;gap:10px;font-size:12px;color:var(--tg-theme-hint-color, #999);margin-bottom:5px}.user-dates{font-size:12px;color:var(--tg-theme-hint-color, #999)}.btn-delete{padding:5px 10px;background:#f44;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:16px}.btn-delete:hover:not(:disabled){background:#c00}.btn-delete:disabled{opacity:.5;cursor:not-allowed}.vpn-user-details{background:var(--tg-theme-bg-color, #fff);border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:12px;padding:20px;max-height:80vh;overflow-y:auto}.vpn-user-details h3{margin-top:0;margin-bottom:20px;color:var(--tg-theme-text-color, #000)}.user-details-section{margin-bottom:25px;padding-bottom:20px;border-bottom:1px solid var(--tg-theme-hint-color, #ddd)}.user-details-section:last-child{border-bottom:none}.user-details-section h4{margin-top:0;margin-bottom:15px;color:var(--tg-theme-text-color, #000)}.detail-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}.detail-row span:first-child{color:var(--tg-theme-hint-color, #999)}.detail-value{font-family:monospace;font-size:12px;word-break:break-all;color:var(--tg-theme-text-color, #000)}.period-selector{display:flex;gap:10px;margin-bottom:15px}.period-selector button{padding:8px 16px;border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:6px;background:var(--tg-theme-bg-color, #fff);color:var(--tg-theme-text-color, #000);cursor:pointer;font-size:14px}.stats-display{display:flex;flex-direction:column;gap:10px}.stat-item{display:flex;justify-content:space-between;padding:10px;background:var(--tg-theme-secondary-bg-color, #f5f5f5);border-radius:8px;font-size:14px}.stat-value{font-weight:600;color:var(--tg-theme-button-color, #2481cc)}.servers-stats{margin-top:15px;padding-top:15px;border-top:1px solid var(--tg-theme-hint-color, #ddd)}.servers-stats h5{margin-top:0;margin-bottom:10px;font-size:14px;color:var(--tg-theme-text-color, #000)}.server-stat{display:flex;justify-content:space-between;padding:5px 0;font-size:13px;color:var(--tg-theme-hint-color, #999)}.bandwidth-controls,.traffic-limit-controls{display:flex;flex-direction:column;gap:15px}.current-bandwidth{margin-top:15px;padding:10px;background:var(--tg-theme-secondary-bg-color, #f5f5f5);border-radius:8px;font-size:14px;display:flex;justify-content:space-between}.vpn-error{text-align:center;padding:40px;color:var(--tg-theme-hint-color, #999)}.vpn-user-dashboard{padding:20px;max-width:800px;margin:0 auto}.vpn-loading,.vpn-no-key{text-align:center;padding:40px;color:var(--tg-theme-hint-color, #999)}.vpn-no-key h2{margin-bottom:15px;color:var(--tg-theme-text-color, #000)}.vpn-no-key .hint{font-size:14px;margin-top:10px;color:var(--tg-theme-hint-color, #999)}.btn-create-key{margin-top:14px;width:100%;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,#2481ccf2,#764ba2f2);color:#fffffff2;font-weight:800;cursor:pointer}.btn-create-key:disabled{opacity:.65;cursor:not-allowed}.vpn-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.vpn-header h2{margin:0;color:var(--tg-theme-text-color, #000)}.user-status{display:flex;align-items:center}.status-badge{padding:6px 12px;border-radius:12px;font-size:12px;font-weight:500}.status-badge.active{background:#4caf50;color:#fff}.status-badge.inactive{background:#f44336;color:#fff}.vpn-info-card,.vpn-config-card,.vpn-stats-card,.vpn-limit-card{background:var(--tg-theme-bg-color, #fff);border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:12px;padding:20px;margin-bottom:20px}.vpn-info-card h3,.vpn-config-card h3,.vpn-stats-card h3,.vpn-limit-card h3{margin-top:0;margin-bottom:15px;color:var(--tg-theme-text-color, #000)}.info-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--tg-theme-hint-color, #ddd);font-size:14px}.info-row:last-child{border-bottom:none}.info-row span:first-child{color:var(--tg-theme-hint-color, #999)}.info-value{font-weight:500;color:var(--tg-theme-text-color, #000)}.config-actions{display:flex;flex-direction:column;gap:10px}.btn-copy,.btn-download,.btn-toggle{padding:12px 20px;border:1px solid var(--tg-theme-button-color, #2481cc);border-radius:8px;background:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #fff);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-copy:hover,.btn-download:hover,.btn-toggle:hover{opacity:.9}.btn-copy.copied{background:#4caf50;border-color:#4caf50}.btn-toggle{background:transparent;color:var(--tg-theme-button-color, #2481cc)}.config-preview{margin-top:15px;padding:15px;background:var(--tg-theme-secondary-bg-color, #f5f5f5);border-radius:8px;overflow-x:auto}.config-preview pre{margin:0;font-size:12px;color:var(--tg-theme-text-color, #000);white-space:pre-wrap;word-break:break-all}.instruction-list{padding-left:18px;margin:8px 0 0;color:var(--tg-theme-text-color, #000)}.instruction-list li{margin-bottom:6px;line-height:1.4}.hint-text{margin-top:8px;font-size:12px;color:var(--tg-theme-hint-color, #999)}.period-selector{display:flex;gap:10px;margin-bottom:20px}.period-selector button{flex:1;padding:10px;border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:8px;background:var(--tg-theme-bg-color, #fff);color:var(--tg-theme-text-color, #000);cursor:pointer;font-size:14px;transition:all .2s}.period-selector button.active{background:var(--tg-theme-button-color, #2481cc);color:var(--tg-theme-button-text-color, #fff);border-color:var(--tg-theme-button-color, #2481cc)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}@media (max-width: 600px){.stats-grid{grid-template-columns:1fr}}.stat-card{padding:15px;background:var(--tg-theme-secondary-bg-color, #f5f5f5);border-radius:8px;text-align:center}.stat-label{font-size:12px;color:var(--tg-theme-hint-color, #999);margin-bottom:8px}.stat-value{font-size:18px;font-weight:600;color:var(--tg-theme-button-color, #2481cc)}.stat-value.total{font-size:20px;color:var(--tg-theme-text-color, #000)}.servers-stats{margin-top:20px;padding-top:20px;border-top:1px solid var(--tg-theme-hint-color, #ddd)}.servers-stats h4{margin-top:0;margin-bottom:15px;font-size:14px;color:var(--tg-theme-text-color, #000)}.server-stat{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}.server-name{color:var(--tg-theme-hint-color, #999)}.server-value{font-weight:500;color:var(--tg-theme-text-color, #000)}.limit-info{display:flex;flex-direction:column;gap:15px}.limit-row{display:flex;justify-content:space-between;font-size:14px}.limit-row span:first-child{color:var(--tg-theme-hint-color, #999)}.limit-value{font-weight:500;color:var(--tg-theme-text-color, #000)}.limit-progress{width:100%;height:8px;background:var(--tg-theme-secondary-bg-color, #f5f5f5);border-radius:4px;overflow:hidden}.limit-progress-bar{height:100%;background:var(--tg-theme-button-color, #2481cc);transition:width .3s}*{margin:0;padding:0;box-sizing:border-box}:root{--tg-theme-bg-color: #ffffff;--tg-theme-text-color: #000000;--tg-theme-hint-color: #999999;--tg-theme-link-color: #2481cc;--tg-theme-button-color: #2481cc;--tg-theme-button-text-color: #ffffff;--tg-theme-secondary-bg-color: #f0f0f0}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--tg-theme-bg-color);color:var(--tg-theme-text-color)}#root{min-height:100vh}
