.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-container{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px;overflow:hidden}.login-header{background:linear-gradient(135deg,#1976d2,#115293);color:#fff;padding:40px 30px;text-align:center}.login-header h1{font-size:28px;margin-bottom:8px}.login-header p{font-size:14px;opacity:.9}.login-form{padding:30px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-primary)}.form-group input{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;transition:border-color .3s}.form-group input:focus{outline:none;border-color:var(--primary-color)}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.password-toggle-btn:hover:not(:disabled){color:#1976d2}.login-form .btn{width:100%;padding:12px;margin-top:10px}.form-footer{margin-top:20px;text-align:center;padding-top:20px;border-top:1px solid var(--border-color)}.form-footer p{font-size:14px;color:var(--text-secondary)}.link-button{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:14px;font-weight:500;padding:0;text-decoration:underline;transition:color .3s}.link-button:hover:not(:disabled){color:var(--primary-dark)}.login-footer{padding:20px;text-align:center;background-color:#f5f5f5;color:var(--text-secondary);font-size:12px}.register-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.register-container{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;width:100%;max-width:500px;overflow:hidden;animation:fadeInUp .4s ease}.register-header{background:linear-gradient(135deg,#1976d2,#115293);color:#fff;padding:40px 30px;text-align:center}.register-header h1{font-size:28px;margin-bottom:8px;font-weight:700}.register-header p{font-size:14px;opacity:.9;margin:0}.verify-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:36px 30px 32px}.verify-icon{margin-bottom:16px}.register-form{padding:30px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;font-size:14px;color:#1a1a2e}.form-group input{width:100%;padding:12px 14px;border:2px solid #e0e0e0;border-radius:10px;font-size:15px;transition:border-color .3s,box-shadow .3s;background:#fafafa;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea26;background:#fff}.form-group input:disabled{background-color:#f0f0f0;cursor:not-allowed}.password-input-wrapper{position:relative}.password-input-wrapper input{padding-right:44px}.password-toggle-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:none;background:transparent;width:24px;height:24px;padding:0;cursor:pointer;color:#777;display:inline-flex;align-items:center;justify-content:center}.password-toggle-btn:hover:not(:disabled){color:#667eea}.password-toggle-btn:disabled{opacity:.45;cursor:not-allowed}.password-toggle-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.form-hint{display:block;margin-top:6px;font-size:12px;color:#888;line-height:1.4}.register-form .btn{width:100%;padding:14px;margin-top:10px;font-size:16px;font-weight:600}.form-footer{margin-top:20px;text-align:center;padding-top:20px;border-top:1px solid #eee}.form-footer p{font-size:14px;color:#888}.link-button{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;font-weight:600;padding:0;text-decoration:underline;transition:color .3s}.link-button:hover:not(:disabled){color:#4a5ad0}.link-button:disabled{opacity:.6;cursor:not-allowed}.register-footer{padding:16px;text-align:center;background-color:#f7f8fc;color:#aaa;font-size:12px}.error-message{background:#fff0f0;color:#d32f2f;border:1px solid #ffcdd2;border-left:4px solid #d32f2f;border-radius:8px;padding:12px 16px;margin-bottom:18px;font-size:14px;line-height:1.5;animation:shake .4s ease}.success-message{background:#f0faf0;color:#2e7d32;border:1px solid #c8e6c9;border-left:4px solid #2e7d32;border-radius:8px;padding:12px 16px;margin-bottom:18px;font-size:14px;line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;transition:all .25s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 14px #667eea59}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #667eea80;transform:translateY(-1px)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-outline{background:#fff;color:#667eea;border:2px solid #667eea;padding:10px 24px}.btn-outline:hover:not(:disabled){background:#f0f4ff}.btn-outline:disabled{opacity:.5;cursor:not-allowed}.verify-section{padding:28px 30px 20px}.verify-info-card{display:flex;align-items:flex-start;gap:14px;background:linear-gradient(135deg,#f0f4ff,#f5f0ff);border:1px solid #ddd6fe;border-radius:12px;padding:18px 20px;margin-bottom:24px}.verify-info-icon{flex-shrink:0;margin-top:2px}.verify-info-text{flex:1}.verify-info-main{font-size:15px;color:#1a1a2e;margin:0 0 6px;line-height:1.5}.verify-info-main strong{color:#667eea}.verify-info-sub{font-size:13px;color:#666;margin:0;line-height:1.4}.code-label{text-align:center;font-size:15px;font-weight:600;color:#1a1a2e;margin-bottom:16px}.code-inputs{display:flex;justify-content:center;gap:10px;margin-bottom:20px}.code-digit{width:52px;height:62px;text-align:center;font-size:28px;font-weight:700;font-family:SF Mono,Fira Code,Courier New,monospace;border:2px solid #e0e0e0;border-radius:12px;background:#fafafa;color:#1a1a2e;transition:all .2s ease;caret-color:#667eea}.code-digit:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea33;background:#fff;transform:scale(1.05)}.code-digit.filled{border-color:#667eea;background:#f0f4ff}.code-digit.has-error{border-color:#d32f2f;background:#fff5f5;animation:shake .4s ease}.code-digit:disabled{background:#f0f0f0;cursor:not-allowed}.code-timer{text-align:center;font-size:14px;color:#666;margin-bottom:20px}.code-timer strong{color:#667eea;font-weight:700}.code-timer.expired{color:#d32f2f;font-weight:600}.verify-section .btn-primary{width:100%;padding:14px;font-size:16px;margin-bottom:24px}.resend-section{text-align:center;padding:20px 0;border-top:1px solid #eee;margin-bottom:16px}.resend-label{font-size:15px;font-weight:600;color:#1a1a2e;margin:0 0 8px}.resend-tips{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:#888;margin-bottom:16px;flex-wrap:wrap}.resend-dot{color:#ccc}.resend-btn{font-size:14px}.resend-wait{font-size:14px;color:#888}.resend-wait strong{color:#667eea}.back-link{display:block;text-align:center;margin-top:8px;font-size:14px;color:#888;text-decoration:none}.back-link:hover:not(:disabled){color:#667eea}.spam-help-section{margin-top:20px;border-top:1px solid #eee;padding-top:16px}.spam-help-toggle{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;font-size:14px;font-weight:600;color:#667eea;padding:8px 0;width:100%;text-align:left;transition:color .2s}.spam-help-toggle:hover{color:#4a5ad0}.spam-help-toggle-icon{font-size:12px;flex-shrink:0}.spam-help-content{margin-top:12px;animation:fadeInUp .3s ease}.spam-help-intro{font-size:13px;color:#666;margin:0 0 16px;line-height:1.5}.spam-help-step{display:flex;gap:14px;margin-bottom:20px;align-items:flex-start}.spam-help-step-number{width:32px;height:32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;flex-shrink:0}.spam-help-step-body{flex:1}.spam-help-step-title{font-size:14px;font-weight:600;color:#1a1a2e;margin-bottom:4px}.spam-help-step-text{font-size:13px;color:#666;margin:0 0 10px;line-height:1.4}.spam-help-screenshot-placeholder{width:100%;border-radius:8px;overflow:hidden;border:1px solid #e0e0e0}.spam-help-screenshot-placeholder img{width:100%;height:auto;display:block}.spam-help-screenshot-stub{width:100%;height:120px;background:linear-gradient(135deg,#f5f5f5,#eee);display:flex;align-items:center;justify-content:center;color:#aaa;font-size:13px;font-style:italic;border:2px dashed #ddd;border-radius:8px;box-sizing:border-box}@media (max-width: 480px){.register-page{padding:12px}.register-container{border-radius:12px}.register-header{padding:28px 20px}.register-header h1{font-size:24px}.register-form,.verify-section{padding:20px}.code-digit{width:44px;height:54px;font-size:24px;border-radius:10px}.code-inputs{gap:7px}.verify-info-card{padding:14px 16px;gap:10px}.verify-info-main{font-size:14px}.resend-tips{flex-direction:column;gap:4px}.resend-dot{display:none}}.forgot-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.forgot-container{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;width:100%;max-width:500px;overflow:hidden;animation:fadeInUp .4s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.forgot-header{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;padding:40px 30px;text-align:center}.forgot-header h1{font-size:28px;margin-bottom:8px;font-weight:700}.forgot-header p{font-size:14px;opacity:.9;margin:0}.forgot-icon{margin-bottom:16px}.verify-header{background:linear-gradient(135deg,#ff9800,#e65100);padding:36px 30px 32px}.success-header{background:linear-gradient(135deg,#43a047,#2e7d32)}.forgot-form{padding:30px}.forgot-form .form-group{margin-bottom:20px}.forgot-form .form-group label{display:block;margin-bottom:8px;font-weight:600;font-size:14px;color:#1a1a2e}.forgot-form .form-group input{width:100%;padding:12px 14px;border:2px solid #e0e0e0;border-radius:10px;font-size:15px;transition:border-color .3s,box-shadow .3s;background:#fafafa;box-sizing:border-box}.forgot-form .form-group input:focus{outline:none;border-color:#ff9800;box-shadow:0 0 0 3px #ff980026;background:#fff}.forgot-form .form-group input:disabled{background-color:#f0f0f0;cursor:not-allowed}.forgot-form .password-input-wrapper{position:relative}.forgot-form .password-input-wrapper input{padding-right:44px}.forgot-form .password-toggle-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:none;background:transparent;width:24px;height:24px;padding:0;cursor:pointer;color:#777;display:inline-flex;align-items:center;justify-content:center}.forgot-form .password-toggle-btn:hover:not(:disabled){color:#ff9800}.forgot-form .password-toggle-btn:disabled{opacity:.45;cursor:not-allowed}.forgot-form .password-toggle-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.forgot-form .form-hint{display:block;margin-top:6px;font-size:12px;color:#888;line-height:1.4}.forgot-form .btn{width:100%;padding:14px;margin-top:10px;font-size:16px;font-weight:600}.forgot-form .btn-primary{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;border:none;border-radius:10px;cursor:pointer;box-shadow:0 4px 14px #ff980059;transition:all .25s ease;display:inline-flex;align-items:center;justify-content:center}.forgot-form .btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #ff980080;transform:translateY(-1px)}.forgot-form .btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.forgot-form .form-footer{margin-top:20px;text-align:center;padding-top:20px;border-top:1px solid #eee}.forgot-form .form-footer p{font-size:14px;color:#888}.forgot-form .error-message{background:#fff0f0;color:#d32f2f;border:1px solid #ffcdd2;border-left:4px solid #d32f2f;border-radius:8px;padding:12px 16px;margin-bottom:18px;font-size:14px;line-height:1.5;animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.forgot-form .success-message{background:#f0faf0;color:#2e7d32;border:1px solid #c8e6c9;border-left:4px solid #2e7d32;border-radius:8px;padding:12px 16px;margin-bottom:18px;font-size:14px;line-height:1.5}.forgot-form .code-label{text-align:center;font-size:15px;font-weight:600;color:#1a1a2e;margin-bottom:16px}.forgot-form .code-inputs{display:flex;justify-content:center;gap:10px;margin-bottom:20px}.forgot-form .code-digit{width:52px;height:62px;text-align:center;font-size:28px;font-weight:700;font-family:SF Mono,Fira Code,Courier New,monospace;border:2px solid #e0e0e0;border-radius:12px;background:#fafafa;color:#1a1a2e;transition:all .2s ease;caret-color:#ff9800}.forgot-form .code-digit:focus{outline:none;border-color:#ff9800;box-shadow:0 0 0 3px #ff980033;background:#fff;transform:scale(1.05)}.forgot-form .code-digit.filled{border-color:#ff9800;background:#fff8e1}.forgot-form .code-digit.has-error{border-color:#d32f2f;background:#fff5f5;animation:shake .4s ease}.forgot-form .code-digit:disabled{background:#f0f0f0;cursor:not-allowed}.forgot-form .code-timer{text-align:center;font-size:14px;color:#666;margin-bottom:20px}.forgot-form .code-timer strong{color:#ff9800;font-weight:700}.forgot-form .code-timer.expired{color:#d32f2f;font-weight:600}.forgot-form .resend-section{text-align:center;padding:20px 0;border-top:1px solid #eee;margin-bottom:16px}.forgot-form .resend-label{font-size:15px;font-weight:600;color:#1a1a2e;margin:0 0 8px}.forgot-form .resend-tips{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:#888;margin-bottom:16px;flex-wrap:wrap}.forgot-form .resend-dot{color:#ccc}.forgot-form .btn-outline{background:#fff;color:#ff9800;border:2px solid #ff9800;padding:10px 24px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;transition:all .25s ease}.forgot-form .btn-outline:hover:not(:disabled){background:#fff8e1}.forgot-form .btn-outline:disabled{opacity:.5;cursor:not-allowed}.forgot-form .resend-wait{font-size:14px;color:#888}.forgot-form .resend-wait strong{color:#ff9800}.forgot-form .link-button{background:none;border:none;color:#ff9800;cursor:pointer;font-size:14px;font-weight:600;padding:0;text-decoration:underline;transition:color .3s}.forgot-form .link-button:hover:not(:disabled){color:#e65100}.forgot-form .link-button:disabled{opacity:.6;cursor:not-allowed}.forgot-form .back-link{display:block;text-align:center;margin-top:8px;font-size:14px;color:#888;text-decoration:none}.forgot-form .back-link:hover:not(:disabled){color:#ff9800}.forgot-footer{padding:16px;text-align:center;background-color:#f7f8fc;color:#aaa;font-size:12px}@media (max-width: 480px){.forgot-page{padding:12px}.forgot-container{border-radius:12px}.forgot-header{padding:28px 20px}.forgot-header h1{font-size:24px}.forgot-form{padding:20px}.forgot-form .code-digit{width:44px;height:54px;font-size:24px;border-radius:10px}.forgot-form .code-inputs{gap:7px}.forgot-form .resend-tips{flex-direction:column;gap:4px}.forgot-form .resend-dot{display:none}}.app-header{display:flex;justify-content:space-between;align-items:center;padding:15px 30px;background:var(--surface);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow);position:relative;z-index:200}.header-left{display:flex;align-items:center;gap:15px}.btn-back{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:14px;padding:5px 10px;border-radius:4px;transition:background .2s}.btn-back:hover{background:#f5f5f5}.app-title{font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.header-right{display:flex;align-items:center;gap:20px}.user-info{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.user-name{font-size:14px;font-weight:500;color:var(--text-primary)}.user-role{font-size:12px;color:var(--text-secondary)}.btn-admin{display:flex;align-items:center;gap:6px;padding:8px 14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.btn-admin:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-admin.active{background:linear-gradient(135deg,#22c55e,#16a34a)}.btn-admin.active:hover{box-shadow:0 4px 12px #22c55e66}.btn-logout{padding:8px 16px;background:var(--error-color);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.btn-logout:hover{background:#d32f2f}@media (max-width: 768px){.app-header{padding:12px 15px}.app-title{font-size:18px}.user-info{display:none}}.dashboard-page{display:flex;flex-direction:column;min-height:100vh}.dashboard-main{flex:1;padding:30px;max-width:1400px;margin:0 auto;width:100%}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:20px}.dashboard-header h1{font-size:32px;color:var(--text-primary);flex:1}.dashboard-actions{display:flex;align-items:center;gap:15px}.readonly-notice{display:flex;align-items:center;gap:8px;background-color:#fff3e0;color:var(--warning-color);padding:10px 16px;border-radius:4px;font-size:14px;font-weight:500}.lawyers-section{margin-bottom:40px;padding:24px;background:var(--surface);border-radius:8px;box-shadow:var(--shadow)}.lawyers-section h2{font-size:24px;color:var(--text-primary);margin-bottom:20px}.lawyers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.lawyer-card{display:flex;align-items:center;gap:16px;padding:16px;background:#fff;border:2px solid var(--border-color);border-radius:8px;transition:all .2s ease}.lawyer-card:hover{border-color:var(--primary-color);box-shadow:0 2px 8px #0000001a}.lawyer-avatar{font-size:36px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--primary-light);border-radius:50%;flex-shrink:0}.lawyer-info{flex:1;min-width:0}.lawyer-info h3{font-size:16px;color:var(--text-primary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lawyer-email{font-size:13px;color:var(--text-secondary);display:block;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lawyer-role{display:inline-block;padding:3px 10px;background:var(--primary-light);color:var(--primary-color);border-radius:12px;font-size:12px;font-weight:500}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:24px;color:var(--text-primary);margin:0}.modal-close{background:none;border:none;font-size:28px;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.modal-close:hover{background:var(--border-color);color:var(--text-primary)}.modal-body{padding:24px}.modal-info{background:var(--primary-light);color:var(--primary-color);padding:12px 16px;border-radius:6px;font-size:14px;margin-top:16px}.modal-footer{padding:24px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:12px}.cases-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.case-card{background:var(--surface);border-radius:8px;box-shadow:var(--shadow);padding:20px;cursor:pointer;transition:all .3s ease;border:1px solid var(--border-color);position:relative;min-width:0}.case-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.case-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px;gap:10px}.case-card-header h3{font-size:18px;color:var(--text-primary);flex:1;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.card-meta{display:flex;align-items:center;gap:8px}.case-card-body{display:flex;flex-direction:column;gap:10px}.case-info{display:flex;gap:8px;font-size:14px;min-width:0;align-items:center}.case-label{color:var(--text-secondary);font-weight:500;white-space:nowrap;flex-shrink:0}.case-value{color:var(--text-primary);font-weight:600;min-width:0}.case-description{color:var(--text-secondary);font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.case-footer{padding-top:10px;border-top:1px solid var(--border-color);margin-top:10px}.case-date{color:var(--text-secondary);font-size:12px}.unread-badge{background:#d00;color:#fff;min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.case-card.unread{border:1px solid #d00;box-shadow:0 0 0 2px #d0000014}.observed-chats-section{margin-top:24px}.observed-chats-section h2{margin-bottom:12px;color:var(--text-secondary)}.case-card.observed{background:#f6f6f8}@media (max-width: 768px){.dashboard-main{padding:20px}.dashboard-header{flex-direction:column;align-items:flex-start;gap:15px}.cases-grid{grid-template-columns:minmax(0,1fr)}}.case-preview{display:block;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.permissions-banner{background:#fff;border:1px solid #bbdefb;border-left:4px solid #1976d2;border-radius:12px;margin-bottom:24px;box-shadow:0 2px 12px #1976d21a;overflow:hidden;animation:fadeInDown .4s ease}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.permissions-banner-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#e3f2fd;border-bottom:1px solid #bbdefb}.permissions-banner-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:#1565c0}.permissions-banner-close{background:none;border:none;font-size:24px;color:#90a4ae;cursor:pointer;padding:0 4px;line-height:1;transition:color .2s}.permissions-banner-close:hover{color:#455a64}.permissions-banner-body{padding:20px}.permissions-banner-item{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}.permissions-banner-item:last-of-type{margin-bottom:12px}.permissions-banner-item-icon{flex-shrink:0;width:44px;height:44px;background:#f5f5f5;border-radius:10px;display:flex;align-items:center;justify-content:center}.permissions-banner-item-title{font-size:15px;font-weight:600;color:#1a1a2e;margin-bottom:4px}.permissions-banner-item-text{font-size:13px;color:#666;line-height:1.5}.permissions-banner-hint{font-size:12px;color:#999;font-style:italic;margin-top:8px;padding-top:12px;border-top:1px solid #f0f0f0}.permissions-banner-actions{padding:0 20px 20px}.permissions-banner-btn{padding:10px 24px!important;font-size:14px!important;width:auto!important;margin:0!important}@media (max-width: 768px){.permissions-banner-header{padding:12px 16px}.permissions-banner-title{font-size:14px}.permissions-banner-body{padding:16px}.permissions-banner-item{gap:10px}.permissions-banner-actions{padding:0 16px 16px}.permissions-banner-btn{width:100%!important}}.pwa-install-banner{background:linear-gradient(135deg,#1565c0,#1e88e5);color:#fff;padding:12px 16px;display:flex;flex-direction:column;gap:10px;animation:pwa-slide-down .35s ease-out;box-shadow:0 2px 8px #00000026;z-index:1000}@keyframes pwa-slide-down{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.pwa-install-banner__content{display:flex;align-items:center;gap:12px}.pwa-install-banner__icon{width:44px;height:44px;border-radius:10px;flex-shrink:0;box-shadow:0 2px 6px #0003}.pwa-install-banner__text{display:flex;flex-direction:column;gap:2px;min-width:0}.pwa-install-banner__text strong{font-size:14px;font-weight:600}.pwa-install-banner__text span{font-size:12px;opacity:.85}.pwa-install-banner__actions{display:flex;gap:8px;justify-content:flex-end}.pwa-install-banner__btn{border:none;border-radius:8px;padding:7px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .15s;white-space:nowrap}.pwa-install-banner__btn:active{transform:scale(.96)}.pwa-install-banner__btn--primary{background:#fff;color:#1565c0}.pwa-install-banner__btn--primary:hover{opacity:.9}.pwa-install-banner__btn--secondary{background:#ffffff26;color:#fff}.pwa-install-banner__btn--secondary:hover{background:#ffffff40}.pwa-install-banner__ios-guide{background:#ffffff1f;border-radius:8px;padding:10px 14px;font-size:13px;line-height:1.6;animation:pwa-fade-in .25s ease-out}.pwa-install-banner__ios-guide p{margin:0}.pwa-ios-share-icon{font-size:16px}@keyframes pwa-fade-in{0%{opacity:0}to{opacity:1}}@media (max-width: 480px){.pwa-install-banner{padding:10px 12px}.pwa-install-banner__icon{width:36px;height:36px}.pwa-install-banner__text strong{font-size:13px}}.message-actions{position:absolute;top:0;right:0;display:flex;gap:4px;z-index:10;pointer-events:none}.message-actions button{pointer-events:all;background:transparent;border:none;padding:4px 8px;cursor:pointer;opacity:0;transition:opacity .2s;font-size:12px;color:var(--text-secondary);border-radius:4px}.message:hover .message-actions button{opacity:.7}.message-actions button:hover{opacity:1;background:#0000000d}.message-own .message-actions button{color:#fff;background:#fff3;font-weight:500}.message-own .message-actions button:hover{background:#ffffff59;color:#fff}.message-reply-btn{position:absolute;top:4px;right:4px}.context-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999;background:transparent}.context-menu{position:fixed;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;min-width:180px;padding:4px;border:1px solid var(--border-color);touch-action:manipulation}.context-menu-item{width:100%;padding:12px 16px;background:none;border:none;text-align:left;cursor:pointer;font-size:14px;color:var(--text-primary);border-radius:4px;transition:background .2s;display:flex;align-items:center;gap:8px}.context-menu-item:hover{background:#f5f5f5}.context-menu-item:active{background:#e0e0e0}.context-menu--mobile{width:min(380px,calc(100vw - 24px));border-radius:16px;padding:8px;box-shadow:0 10px 28px #00000040}.context-menu--mobile .context-menu-item{padding:14px 18px;min-height:48px;font-size:15px}@media (max-width: 768px){.context-menu-item{font-size:15px}}.image-popup-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.image-popup-container{position:relative;max-width:90vw;max-height:90vh;background:var(--surface);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.image-popup-close{position:absolute;top:10px;right:10px;background:#0009;color:#fff;border:none;border-radius:50%;width:36px;height:36px;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;z-index:10;transition:background .2s}.image-popup-close:hover{background:#000c}.image-popup-header{position:relative;padding:15px;background:var(--surface);border-bottom:1px solid var(--border-color);display:flex;justify-content:flex-end}.image-popup-menu-toggle{background:none;border:none;font-size:20px;cursor:pointer;padding:5px 10px;color:var(--text-primary);border-radius:4px;transition:background .2s}.image-popup-menu-toggle:hover{background:#f5f5f5}.image-popup-menu{position:absolute;top:50px;right:15px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:4px;display:none;flex-direction:column;min-width:150px;z-index:20}.image-popup-menu-open{display:flex}.image-popup-menu button{padding:10px 15px;background:none;border:none;text-align:left;cursor:pointer;font-size:14px;color:var(--text-primary);border-radius:4px;transition:background .2s}.image-popup-menu button:hover{background:#f5f5f5}.image-popup-content{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto;padding:20px}.image-popup-image{max-width:100%;max-height:70vh;object-fit:contain;border-radius:4px}.payment-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #dee2e6;border-radius:12px;padding:16px;margin:4px 0;min-width:200px;max-width:280px}.payment-card.own{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-color:#90caf9}.payment-card.error{background:#ffebee;border-color:#ef9a9a}.payment-card-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.payment-card-icon{font-size:20px}.payment-card-title{font-size:12px;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px}.payment-card-amount{font-size:28px;font-weight:700;color:var(--text-primary, #333);margin-bottom:8px}.payment-card-description{font-size:14px;color:var(--text-secondary, #555);line-height:1.4;margin-bottom:12px;word-break:break-word}.payment-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.payment-card-status{font-size:12px;font-weight:500;padding:4px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:.3px}.payment-card-status.pending{background:#fff3e0;color:#e65100}.payment-card-status.paid{background:#e8f5e9;color:#2e7d32}.payment-card-status.cancelled{background:#ffebee;color:#c62828}.payment-card-status.expired{background:#efebe9;color:#5d4037}.payment-card-pay-btn{background:#4caf50;color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.payment-card-pay-btn:hover{background:#43a047;transform:translateY(-1px);box-shadow:0 2px 8px #4caf504d}.payment-card-pay-btn:active{transform:translateY(0)}.payment-card-paid-date{font-size:11px;color:var(--text-secondary, #888)}.payment-card-warning{margin-top:12px;padding:8px 12px;background:#fff8e1;border-radius:6px;font-size:12px;color:#f57c00}.payment-card-error{text-align:center;padding:20px;color:#c62828;font-size:14px}.payment-card-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:20px;color:var(--text-secondary, #666);font-size:14px}.payment-card-spinner{width:20px;height:20px;border:2px solid #e0e0e0;border-top-color:var(--primary-color, #1976d2);border-radius:50%;animation:payment-spin .8s linear infinite}@keyframes payment-spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.payment-card{max-width:none;min-width:0}.payment-card-amount{font-size:24px}.payment-card-footer{flex-direction:column;align-items:stretch;gap:8px}.payment-card-status{text-align:center}.payment-card-pay-btn{width:100%;padding:12px 16px}}.call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:linear-gradient(165deg,#1a1a2e,#16213e 40%,#0f3460);animation:callOverlayFadeIn .25s ease}@keyframes callOverlayFadeIn{0%{opacity:0}to{opacity:1}}.call-overlay__screen{width:100%;max-width:420px;height:100%;max-height:100vh;display:flex;flex-direction:column;align-items:center;padding:48px 24px 32px;position:relative}.call-overlay__top{flex-shrink:0;margin-bottom:8px}.call-overlay__label{font-size:14px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:#ffffff8c}.call-overlay__label--incoming,.call-overlay__label--active{color:#4ade80}.call-overlay__center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:0}.call-overlay__avatar{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700;color:#fff;letter-spacing:1px;flex-shrink:0;box-shadow:0 4px 20px #667eea59}.call-overlay__avatar--ringing{animation:avatarPulse 1.5s ease-in-out infinite}@keyframes avatarPulse{0%,to{box-shadow:0 0 #4ade8066}50%{box-shadow:0 0 0 18px #4ade8000}}.call-overlay__name{font-size:26px;font-weight:700;color:#fff;text-align:center;word-break:break-word;max-width:300px}.call-overlay__timer{font-size:42px;font-weight:300;color:#ffffffe6;font-variant-numeric:tabular-nums;margin-top:4px}.call-overlay__substatus{font-size:15px;color:#ffffff80;text-align:center;min-height:22px}.call-overlay__dots:after{content:"";animation:callDots 1.4s steps(4,end) infinite}@keyframes callDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}.call-overlay__error{background:#e74c3c33;color:#fca5a5;padding:8px 16px;border-radius:8px;font-size:13px;text-align:center;max-width:300px}.call-overlay__bottom{flex-shrink:0;padding-bottom:16px}.call-overlay__actions{display:flex;gap:48px;justify-content:center}.call-overlay__action-group{display:flex;flex-direction:column;align-items:center;gap:8px}.call-overlay__round-btn{width:64px;height:64px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .15s,box-shadow .15s}.call-overlay__round-btn svg{width:28px;height:28px}.call-overlay__round-btn:active{transform:scale(.9)}.call-overlay__round-btn:disabled{opacity:.4;cursor:not-allowed}.call-overlay__round-btn--accept{background:#22c55e;box-shadow:0 4px 16px #22c55e66}.call-overlay__round-btn--accept:hover:not(:disabled){box-shadow:0 6px 24px #22c55e8c}.call-overlay__round-btn--reject,.call-overlay__round-btn--hangup{background:#ef4444;box-shadow:0 4px 16px #ef444466}.call-overlay__round-btn--reject:hover,.call-overlay__round-btn--hangup:hover{box-shadow:0 6px 24px #ef44448c}.call-overlay__action-label{font-size:12px;color:#ffffff8c;letter-spacing:.5px}.call-overlay__toggle-logs{background:none;border:none;color:#ffffff4d;cursor:pointer;font-size:11px;margin-top:12px;padding:4px 8px}.call-overlay__toggle-logs:hover{color:#ffffff80}.call-overlay__logs{width:100%;max-width:380px;max-height:160px;overflow-y:auto;background:#0000004d;border-radius:8px;padding:8px 10px;margin-top:6px}.call-overlay__logs ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.call-overlay__logs li{font-family:monospace;font-size:10px;color:#fff6;line-height:1.35}.call-overlay__logs-empty{text-align:center;color:#ffffff4d;font-size:11px}.chat-call-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary-color, #1976d2);transition:background .2s,color .2s;margin-left:auto}.chat-call-btn:hover{background:#1976d21a}.chat-call-btn:active{transform:scale(.9)}.chat-call-btn:disabled{opacity:.4;cursor:not-allowed}.chat-call-btn svg{width:22px;height:22px}.call-message{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;background:var(--background, #f0f0f0);font-size:13px;color:var(--text-secondary, #666);min-width:200px}.call-message__icon{font-size:20px;flex-shrink:0}.call-message__info{display:flex;flex-direction:column;gap:2px}.call-message__title{font-weight:600;color:var(--text-primary, #333);font-size:13px}.call-message__detail{font-size:12px;color:var(--text-secondary, #888)}.call-message--missed .call-message__title{color:#e74c3c}.call-message--completed .call-message__icon{color:#27ae60}@media (max-width: 480px){.call-overlay__screen{padding:36px 16px 24px}.call-overlay__avatar{width:80px;height:80px;font-size:28px}.call-overlay__name{font-size:22px}.call-overlay__timer{font-size:34px}.call-overlay__actions{gap:36px}.call-overlay__round-btn{width:56px;height:56px}.call-overlay__round-btn svg{width:24px;height:24px}}.chat-messages-area{position:relative;flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0}.messages-container{flex:1;overflow:hidden;overflow-x:hidden;background:var(--background);min-width:0}.messages-virtuoso{height:100%;box-sizing:border-box;overflow-x:hidden;-webkit-overflow-scrolling:touch}.messages-virtuoso-scroller{height:100%;overflow-x:hidden}.messages-virtuoso-item{width:100%;max-width:900px;margin:0 auto;padding:0 12px 15px;box-sizing:border-box}.messages-virtuoso-spacer{height:12px}.messages-virtuoso .message{animation:none;opacity:1}.scroll-down-button{position:absolute;right:24px;bottom:24px;width:44px;height:44px;border-radius:50%;border:none;background:#fff;color:var(--primary-color);box-shadow:0 6px 18px #00000026;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s ease,box-shadow .2s ease,opacity .3s ease,visibility .3s ease;z-index:5;opacity:0;visibility:hidden;pointer-events:none}.scroll-down-button svg{stroke:currentColor;stroke-width:2.5}.scroll-down-button--visible{opacity:1;visibility:visible;pointer-events:auto}.scroll-down-button:hover{background:#f5f5f5;transform:translateY(1px) scale(1.02);box-shadow:0 8px 20px #0000002e}.scroll-down-button:active{transform:translateY(2px) scale(.98)}.scroll-down-button__badge{position:absolute;top:-6px;right:-6px;min-width:22px;padding:2px 6px;background:var(--primary-color);color:#fff;border-radius:12px;font-size:11px;font-weight:700;text-align:center;box-shadow:0 2px 6px #0003}@media (max-width: 768px){.scroll-down-button{right:16px;bottom:16px}}.messages-list{display:flex;flex-direction:column;gap:15px;max-width:900px;margin:0 auto}.message{display:flex;animation:fadeIn .3s ease-in;animation-fill-mode:forwards;position:relative;max-width:100%;box-sizing:border-box}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-own{justify-content:flex-end}.message-other{justify-content:flex-start}.message-bubble{max-width:90%;min-width:0;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);position:relative;box-sizing:border-box;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}@media (min-width: 768px){.message-bubble{max-width:75%}}.message-own .message-bubble{background-color:#4a90e2;color:#fff;border-bottom-right-radius:4px}.message-other .message-bubble{background-color:var(--surface);color:var(--text-primary);border-bottom-left-radius:4px}.message-author{font-size:12px;font-weight:600;margin-bottom:4px;color:var(--primary-color)}.message-body{font-size:14px;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;white-space:pre-wrap}.message-timestamp{font-size:11px;margin-top:6px;opacity:.7;display:flex;align-items:center;gap:6px}.message-own .message-timestamp{text-align:right}.msg-status{font-size:11px;line-height:1}.msg-status-white{color:#ffffffe6}.empty-messages{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-messages p{margin-bottom:8px}.message-attachments{margin-top:10px;display:flex;flex-wrap:wrap;gap:10px}.message-attachment{max-width:220px}.message-image{width:100%;height:100%;object-fit:cover;border-radius:8px;cursor:pointer;display:block}.message-image-wrapper{position:relative;display:inline-block;margin-top:8px;height:150px;max-width:220px;width:100%;overflow:hidden;border-radius:8px;background:var(--border-color)}.message-image-loading{width:100%;height:150px;background:var(--border-color);display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--text-secondary);font-size:13px}.message-image-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0000004d;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;border-radius:8px}.message-image-wrapper:hover .message-image-overlay{opacity:1}.message-download-btn{background:#fff;color:var(--primary-color);border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:500}.message-selected{background-color:#1976d21a;border-radius:8px}.message-highlighted{position:relative;border-radius:8px}.message-highlighted:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:8px;pointer-events:none;z-index:-1;animation:highlightFade 1s ease-out;animation-fill-mode:forwards}@keyframes highlightFade{0%{background-color:#87cefa66}20%{background-color:#87cefa59}to{background-color:transparent}}.message-reply-preview{margin-bottom:8px;padding:8px 12px;border-left:3px solid;border-radius:4px;background:#ffffff26;margin-top:4px;cursor:pointer;transition:background .2s}.message-reply-preview:hover{background:#ffffff40}.message-own .message-reply-preview{background:#ffffff59;border-left-color:#fff9;color:#fffffff2}.message-other .message-reply-preview{background:#0000000d;border-left-color:var(--primary-color)}.message-reply-author{font-size:12px;font-weight:600;margin-bottom:4px}.message-own .message-reply-author{color:#fffffff2}.message-other .message-reply-author{color:var(--primary-color)}.message-reply-body{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.message-own .message-reply-body{color:#ffffffe6}.message-other .message-reply-body{color:var(--text-secondary)}.message-forwarded{font-size:11px;margin-bottom:6px;font-style:italic;padding:4px 8px;border-radius:4px;margin-top:4px}.message-own .message-forwarded{background:#ffffff40;color:#fffffff2;opacity:1;border-left:2px solid rgba(255,255,255,.5)}.message-other .message-forwarded{color:var(--text-secondary);opacity:.8;background:#00000008;border-left:2px solid var(--primary-color)}.message-forwarded-clickable{cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.message-forwarded-clickable:hover{opacity:1}.message-own .message-forwarded-clickable:hover{background:#fff6}.message-other .message-forwarded-clickable:hover{background:var(--primary-color);color:#fff;border-left-color:var(--primary-dark)}@media (max-width: 768px){.messages-virtuoso-item{padding:0 10px 12px}.message-body{font-size:15px}.message-timestamp{font-size:11.5px}}.payment-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.payment-modal{background:var(--surface, #ffffff);border-radius:12px;box-shadow:0 4px 20px #00000026;width:100%;max-width:420px;max-height:90vh;overflow-y:auto}.payment-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color, #e0e0e0)}.payment-modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary, #333)}.payment-modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-secondary, #666);padding:4px 8px;border-radius:4px;transition:background .2s}.payment-modal-close:hover{background:#0000000d}.payment-modal-close:disabled{opacity:.5;cursor:not-allowed}.payment-modal-form{padding:20px}.payment-form-group{margin-bottom:20px}.payment-form-group label{display:block;font-size:14px;font-weight:500;color:var(--text-secondary, #666);margin-bottom:8px}.payment-amount-input-wrapper{position:relative;display:flex;align-items:center}.payment-amount-input-wrapper input{flex:1;padding:12px 40px 12px 16px;font-size:24px;font-weight:600;border:2px solid var(--border-color, #e0e0e0);border-radius:8px;outline:none;transition:border-color .2s}.payment-amount-input-wrapper input:focus{border-color:var(--primary-color, #1976d2)}.payment-amount-input-wrapper input.error{border-color:#f44336}.payment-amount-input-wrapper input:disabled{background:#f5f5f5;cursor:not-allowed}.payment-currency{position:absolute;right:16px;font-size:24px;font-weight:600;color:var(--text-secondary, #666)}.payment-form-group textarea{width:100%;padding:12px 16px;font-size:14px;border:2px solid var(--border-color, #e0e0e0);border-radius:8px;resize:vertical;min-height:80px;outline:none;transition:border-color .2s;font-family:inherit;box-sizing:border-box}.payment-form-group textarea:focus{border-color:var(--primary-color, #1976d2)}.payment-form-group textarea.error{border-color:#f44336}.payment-form-group textarea:disabled{background:#f5f5f5;cursor:not-allowed}.payment-description-meta{display:flex;justify-content:flex-end;margin-top:4px}.payment-char-count{font-size:12px;color:var(--text-secondary, #999)}.payment-error{display:block;font-size:12px;color:#f44336;margin-top:4px}.payment-modal-actions{display:flex;gap:12px;margin-top:24px}.payment-btn{flex:1;padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.payment-btn:disabled{opacity:.6;cursor:not-allowed}.payment-btn-secondary{background:var(--surface, #ffffff);border:1px solid var(--border-color, #e0e0e0);color:var(--text-primary, #333)}.payment-btn-secondary:hover:not(:disabled){background:#f5f5f5}.payment-btn-primary{background:var(--primary-color, #1976d2);color:#fff}.payment-btn-primary:hover:not(:disabled){background:var(--primary-dark, #1565c0)}@media (max-width: 480px){.payment-modal-overlay{padding:10px}.payment-modal{max-width:none;border-radius:16px}.payment-modal-header{padding:14px 16px}.payment-modal-form{padding:16px}.payment-amount-input-wrapper input{font-size:20px;padding:10px 36px 10px 12px}.payment-currency{font-size:20px;right:12px}.payment-modal-actions{flex-direction:column-reverse}.payment-btn{padding:14px 20px}}.message-input-wrapper{background:var(--surface);border-top:1px solid var(--border-color);padding:15px 20px calc(15px + env(safe-area-inset-bottom));flex-shrink:0}.message-reply-preview-input{display:flex;align-items:center;justify-content:space-between;background:#f5f5f5;padding:10px 15px;margin-bottom:10px;border-radius:8px;border-left:3px solid var(--primary-color)}.message-reply-preview-content{flex:1;min-width:0}.message-reply-preview-author{font-size:12px;font-weight:600;color:var(--primary-color);margin-bottom:4px}.message-reply-preview-text{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-reply-cancel{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:18px;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s;margin-left:10px}.message-reply-cancel:hover{background:#0000001a}.message-input-container{display:flex;align-items:flex-end;gap:10px}.btn-attach{background:var(--surface);border:1px solid var(--border-color);border-radius:8px;padding:10px 15px;cursor:pointer;font-size:18px;transition:all .2s;flex-shrink:0}.btn-attach:hover:not(:disabled){background:#f5f5f5;border-color:var(--primary-color)}.btn-attach:disabled{opacity:.6;cursor:not-allowed}.btn-payment{background:var(--surface);border:1px solid var(--border-color);border-radius:8px;padding:10px 15px;cursor:pointer;font-size:18px;transition:all .2s;flex-shrink:0}.btn-payment:hover:not(:disabled){background:#e3f2fd;border-color:#1976d2}.btn-payment:disabled{opacity:.6;cursor:not-allowed}.message-input{flex:1;padding:12px 15px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;font-family:inherit;resize:none;min-height:44px;max-height:120px;line-height:1.5}.message-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #1976d21a}.message-input:disabled{background:#f5f5f5;cursor:not-allowed}.btn-send{background:var(--primary-color);color:#fff;border:none;border-radius:8px;padding:12px 20px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s;flex-shrink:0;white-space:nowrap}.btn-send:hover:not(:disabled){background:var(--primary-dark)}.btn-send:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.message-input-wrapper{padding:12px 15px}.message-input-container{gap:8px;align-items:center}.message-input{min-height:44px;max-height:44px;padding:10px 12px;line-height:1.4;overflow-y:auto}.btn-send{padding:10px;min-width:44px;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;white-space:normal}.btn-attach,.btn-payment{padding:10px;min-width:44px;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center}}.file-list-container{flex:1;overflow-y:auto;padding:20px}.file-upload-section{margin-bottom:30px;padding:20px;background:var(--surface);border-radius:8px;text-align:center;box-shadow:var(--shadow)}.files-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.file-card{background:var(--surface);border:1px solid var(--border-color);border-radius:8px;padding:15px;display:flex;align-items:center;gap:15px;box-shadow:var(--shadow);transition:all .3s ease}.file-card:hover{box-shadow:var(--shadow-hover)}.file-icon{font-size:32px;flex-shrink:0}.file-info{flex:1;min-width:0}.file-name{font-weight:500;font-size:14px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:5px}.file-meta{display:flex;gap:15px;font-size:12px;color:var(--text-secondary)}.btn-download{background:transparent;border:none;cursor:pointer;font-size:24px;padding:5px;transition:transform .2s;flex-shrink:0}.btn-download:hover{transform:scale(1.2)}.empty-files{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-files p{margin-bottom:8px}.empty-hint{font-size:14px;opacity:.8}@media (max-width: 768px){.file-list-container{padding:15px}.files-grid{grid-template-columns:1fr}.file-card{padding:12px}}.file-filter-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.filter-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-btn{border:1px solid var(--border-color);background:#fff;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:13px}.filter-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.filter-input{padding:8px 10px;border:1px solid var(--border-color);border-radius:6px;min-width:180px}.filter-apply{padding:8px 12px;border:none;border-radius:6px;background:var(--primary-color);color:#fff;cursor:pointer}.file-thumb{width:48px;height:48px;object-fit:cover;border-radius:8px;border:1px solid var(--border-color);box-shadow:var(--shadow)}.chat-layout{display:flex;height:100%;overflow:hidden;position:relative}.chat-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.chat-swipe-surface{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;touch-action:pan-y}.chat-swipe-surface *,.messages-container,.messages-container *,.message,.message *,.chat-sidebar__list,.chat-sidebar__list *,.chat-sidebar__item,.chat-sidebar__item *{touch-action:pan-y}.chat-content.swipe-active{touch-action:pan-x!important}.chat-content.swipe-active .chat-swipe-surface *{pointer-events:none;touch-action:none}.chat-content.swipe-active .chat-messages-area{pointer-events:auto;touch-action:none!important;overflow-y:hidden!important}.chat-content.swipe-active .messages-container{touch-action:none!important;overflow-y:hidden!important}.chat-sidebar.swipe-active{touch-action:pan-x!important}.chat-sidebar.swipe-active .chat-sidebar__list{touch-action:none!important;overflow-y:hidden!important}.chat-sidebar.swipe-active .chat-sidebar__list *{pointer-events:none;touch-action:none}.chat-sidebar-overlay.swipe-active{touch-action:pan-x!important}.chat-sidebar.swipe-active~.chat-sidebar-overlay.swipe-active~.chat-content .messages-container,.chat-sidebar-overlay.swipe-active~.chat-content .messages-container{touch-action:none!important;overflow-y:hidden!important}.chat-sidebar-overlay.swipe-active~.chat-content{touch-action:pan-x!important}.chat-content__header{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;background:var(--surface);border-bottom:1px solid var(--border-color);min-height:52px;flex-shrink:0}.chat-header-back-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--primary-color);cursor:pointer;padding:6px;border-radius:8px;transition:background .15s;flex-shrink:0}.chat-header-back-btn:hover{background:#1976d214}.chat-header-back-btn:active{background:#1976d229}.chat-toggle-main{background:none;border:none;font-size:22px;cursor:pointer;padding:4px;color:var(--text-primary);flex-shrink:0}.chat-content__title{flex:1;min-width:0;overflow:hidden}.chat-content__title h1{font-size:18px;margin:0;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.case-number{font-size:13px;color:var(--text-secondary);margin:0}.chat-header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.chat-header-icon-btn{position:relative;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:8px;border-radius:10px;transition:background .15s,color .15s}.chat-header-icon-btn:hover{background:#0000000f;color:var(--text-primary)}.chat-header-icon-btn:active{background:#0000001a}.chat-header-icon-btn.active{color:var(--primary-color)}.chat-header-icon-btn:disabled{opacity:.4;cursor:not-allowed}.chat-header-icon-badge{position:absolute;top:2px;right:2px;background:var(--primary-color);color:#fff;font-size:10px;font-weight:700;line-height:1;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:8px;padding:0 4px}.chat-sidebar{width:300px;background:var(--surface);border-right:1px solid var(--border-color);display:flex;flex-direction:column;transition:none}.chat-sidebar.closed{transform:translate(-100%);position:absolute;z-index:100;height:100%}.chat-sidebar__close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-secondary);padding:4px 6px}.chat-sidebar__close:active{transform:scale(.98)}.chat-sidebar__header{padding:16px 20px;border-bottom:1px solid var(--border-color)}.chat-sidebar__home-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--primary-color);cursor:pointer;padding:6px;border-radius:8px;transition:background .15s;flex-shrink:0}.chat-sidebar__home-btn:hover{background:#1976d214}.chat-sidebar__home-btn:active{background:#1976d229}.chat-sidebar__header h2{margin:0;font-size:18px;color:var(--text-primary)}.chat-sidebar__list{flex:1;overflow-y:auto;padding:10px 0}.chat-sidebar__item{padding:15px 20px;cursor:pointer;border-bottom:1px solid var(--border-color);transition:background .2s}.chat-sidebar__item:hover{background:#f5f5f5}.chat-sidebar__item.active{background:#e3f2fd;border-left:3px solid var(--primary-color)}.chat-sidebar__item-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;gap:8px}.chat-sidebar__title{font-weight:600;color:var(--text-primary);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.chat-sidebar__time-wrapper{display:flex;align-items:center;gap:8px;flex-shrink:0}.chat-sidebar__time{font-size:12px;color:var(--text-secondary)}.chat-sidebar__badge{background:var(--primary-color);color:#fff;border-radius:12px;padding:2px 8px;font-size:11px;font-weight:600;min-width:20px;text-align:center}.chat-sidebar__preview{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-sidebar__empty{padding:40px 20px;text-align:center;color:var(--text-secondary)}@media (max-width: 960px){.chat-layout{position:relative;overflow:hidden;touch-action:pan-y pan-x}.chat-sidebar{position:absolute;z-index:100;height:100%;box-shadow:2px 0 12px #0000002e;width:min(360px,85vw);left:0;top:0;touch-action:none;will-change:transform;pointer-events:auto;overflow:hidden}.chat-sidebar.open{transform:translate(0)}.chat-sidebar__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.chat-content{touch-action:pan-y;pointer-events:auto}}.chat-sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000059;z-index:90;opacity:0;visibility:hidden;pointer-events:none;will-change:opacity;touch-action:pan-y}.selection-bar{display:flex;align-items:center;gap:10px;padding:12px 20px;background:var(--primary-color);color:#fff;border-bottom:1px solid var(--border-color)}.selection-bar-btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.selection-bar-forward{background:#fff;color:var(--primary-color)}.selection-bar-forward:hover{background:#f5f5f5}.selection-bar-cancel{background:#fff3;color:#fff}.selection-bar-cancel:hover{background:#ffffff4d}.chat-selector-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chat-selector-modal-content{background:var(--background, #ffffff);border-radius:12px;width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.chat-selector-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border-color, #e0e0e0)}.chat-selector-modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary, #333)}.chat-selector-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary, #666);padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.chat-selector-modal-close:hover{background-color:var(--surface, #f5f5f5)}.chat-selector-modal-list{overflow-y:auto;padding:8px;flex:1}.chat-selector-modal-empty{padding:40px 20px;text-align:center;color:var(--text-secondary, #666)}.chat-selector-modal-item{padding:12px 16px;border-radius:8px;cursor:pointer;transition:background-color .2s;margin-bottom:4px;position:relative}.chat-selector-modal-item:hover:not(.disabled){background-color:var(--surface, #f5f5f5)}.chat-selector-modal-item.disabled{opacity:.5;cursor:not-allowed;background-color:var(--surface, #f5f5f5)}.chat-selector-modal-item-name{font-weight:600;color:var(--text-primary, #333);margin-bottom:4px}.chat-selector-modal-item-preview{font-size:13px;color:var(--text-secondary, #666);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-selector-modal-item-badge{position:absolute;top:12px;right:16px;font-size:11px;color:var(--primary, #007bff);font-weight:500}@media (max-width: 768px){.chat-selector-modal-content{width:95%;max-height:90vh}}.toast{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-20px);z-index:10000;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease}.toast-visible{opacity:1;transform:translate(-50%) translateY(0)}.toast-exiting{opacity:0;transform:translate(-50%) translateY(-20px)}.toast-content{background:#000000bf;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 4px 12px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-width:200px;text-align:center;white-space:nowrap}@media (max-width: 768px){.toast{top:10px;left:10px;right:10px;transform:translateY(-20px)}.toast-visible{transform:translateY(0)}.toast-exiting{transform:translateY(-20px)}.toast-content{min-width:auto;width:100%}}.case-page{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;overscroll-behavior:none}.case-header{background:var(--surface);padding:20px 30px;border-bottom:1px solid var(--border-color);box-shadow:var(--shadow)}.case-info h1{font-size:24px;margin-bottom:5px;color:var(--text-primary)}.case-number{color:var(--text-secondary);font-size:14px;margin-bottom:10px}.case-description{color:var(--text-secondary);font-size:14px;line-height:1.5;margin-top:10px}.readonly-banner{display:flex;align-items:center;gap:8px;background-color:#fff3e0;color:var(--warning-color);padding:12px 20px;border-radius:4px;margin-top:15px;font-weight:500}.case-tabs{display:flex;background:var(--surface);border-bottom:1px solid var(--border-color)}.tab{flex:1;padding:15px;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:14px;font-weight:500;color:var(--text-secondary);transition:all .3s}.tab:hover{background-color:#f5f5f5}.tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.case-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--background);min-width:0}@media (max-width: 768px){.case-header{padding:15px}.case-info h1{font-size:20px}}.contacts-page{min-height:100vh;background:#f5f7fb;color:#1f2a44}.contacts-main{max-width:1100px;margin:0 auto;padding:24px}.contacts-header-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}.contacts-header-top h1{margin:0}.contacts-back-btn{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:8px;color:#1f2a44;border-radius:50%;transition:background-color .2s;margin-left:-8px}.contacts-back-btn:hover{background-color:#e4e7ed}.contacts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.contact-card{background:#fff;border:1px solid #e4e7ed;border-radius:12px;padding:16px;display:flex;gap:12px;align-items:center}.contact-avatar{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#eef2ff;font-size:22px}.contact-info h3{margin:0;font-size:16px}.contact-email{margin:4px 0;color:#5f6b8a;font-size:13px}.contact-role{display:inline-block;padding:2px 8px;background:#f0f4ff;border-radius:8px;font-size:12px;color:#3a4b7a}.empty-state{text-align:center;padding:40px 0}.loading-container,.error-container{padding:40px 0;text-align:center}.btn.btn-primary{margin-left:auto}.admin-page{flex:1;height:100%;overflow-y:auto;overflow-x:hidden;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:#e8e8e8}.admin-main{max-width:1200px;margin:0 auto;padding:24px}.admin-header{margin-bottom:32px}.admin-header h1{font-family:JetBrains Mono,Fira Code,monospace;font-size:2rem;font-weight:700;color:#fff;margin:0 0 8px;letter-spacing:-.5px}.admin-subtitle{color:#8892b0;font-size:1rem;margin:0}.admin-tabs{display:flex;gap:8px;margin-bottom:24px;background:#ffffff0d;padding:8px;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-tab{display:flex;align-items:center;gap:8px;padding:12px 20px;border:none;background:transparent;color:#8892b0;font-size:.95rem;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s ease}.admin-tab:hover{background:#ffffff1a;color:#fff}.admin-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 15px #667eea66}.admin-content{background:#ffffff08;border-radius:16px;padding:24px;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tab-loading,.tab-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:16px;color:#8892b0}.tab-error svg{color:#f59e0b}.storage-tab{display:flex;flex-direction:column;gap:24px}.main-storage-card{background:linear-gradient(135deg,#22c55e1a,#22c55e0d);border:1px solid rgba(34,197,94,.3);border-radius:16px;padding:24px;transition:all .3s ease}.main-storage-card.warning{background:linear-gradient(135deg,#f59e0b1a,#f59e0b0d);border-color:#f59e0b4d}.main-storage-card.critical{background:linear-gradient(135deg,#ef44441a,#ef44440d);border-color:#ef44444d}.storage-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.storage-header h3{flex:1;margin:0;font-size:1.25rem;color:#fff}.status-icon{width:24px;height:24px}.status-icon.ok{color:#22c55e}.status-icon.warning{color:#f59e0b}.status-icon.critical{color:#ef4444;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.storage-main-stats{display:flex;gap:32px;align-items:center;margin-bottom:16px}.storage-percent{display:flex;flex-direction:column;align-items:center;min-width:120px}.percent-value{font-family:JetBrains Mono,monospace;font-size:3rem;font-weight:700;color:#fff;line-height:1}.percent-label{font-size:.875rem;color:#8892b0;text-transform:uppercase;letter-spacing:1px}.storage-details{flex:1}.storage-bar-container{height:24px;background:#ffffff1a;border-radius:12px;overflow:hidden;margin-bottom:12px}.storage-bar-fill{height:100%;border-radius:12px;transition:width .5s ease}.storage-bar-fill.ok{background:linear-gradient(90deg,#22c55e,#4ade80)}.storage-bar-fill.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.storage-bar-fill.critical{background:linear-gradient(90deg,#ef4444,#f87171)}.storage-values{display:flex;justify-content:space-between;font-size:.9rem;color:#8892b0}.storage-values strong{color:#fff}.storage-message{margin:0;padding:12px 16px;border-radius:8px;font-size:.9rem}.storage-message.ok{background:#22c55e33;color:#4ade80}.storage-message.warning{background:#f59e0b33;color:#fbbf24}.storage-message.critical{background:#ef444433;color:#f87171}.storage-tab-header{background:#ffffff08;border-radius:12px;padding:20px;border:1px solid rgba(255,255,255,.08)}.storage-title-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.storage-title-row h3{flex:1;margin:0;font-size:1.3rem;color:#fff}.storage-status-message{margin:0;padding:10px 14px;border-radius:8px;font-size:.9rem}.storage-status-message.ok{background:#22c55e26;color:#4ade80;border:1px solid rgba(34,197,94,.3)}.storage-status-message.warning{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.storage-status-message.critical{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}.storage-overview{background:#ffffff08;border-radius:12px;padding:24px;border:1px solid rgba(255,255,255,.08)}.storage-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px}.summary-item{display:flex;flex-direction:column;align-items:center;padding:16px;border-radius:10px;background:#ffffff0d}.summary-item.total{background:#667eea26;border:1px solid rgba(102,126,234,.3)}.summary-item.used{background:#f59e0b26;border:1px solid rgba(245,158,11,.3)}.summary-item.free{background:#22c55e26;border:1px solid rgba(34,197,94,.3)}.summary-label{font-size:.85rem;color:#8892b0;margin-bottom:6px}.summary-value{font-family:JetBrains Mono,monospace;font-size:1.5rem;font-weight:700;color:#fff}.section-title{font-size:1.1rem;color:#fff;margin:0 0 8px}.section-subtitle{font-size:.9rem;color:#8892b0;margin:0 0 20px}.storage-chart-section{background:#ffffff08;border-radius:12px;padding:24px;border:1px solid rgba(255,255,255,.08)}.pie-chart-container{display:flex;flex-direction:column;align-items:center;gap:30px;position:relative}.pie-chart{width:280px;height:280px}.pie-segment{cursor:pointer;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));transition:transform .2s ease,filter .2s ease}.pie-segment:hover,.pie-segment.hovered{filter:drop-shadow(0 4px 12px rgba(0,0,0,.5)) brightness(1.1)}.pie-center-percent{fill:#fff;font-family:JetBrains Mono,monospace;font-size:24px;font-weight:700}.pie-center-label{fill:#8892b0;font-size:12px}.pie-tooltip{position:absolute;background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:16px;min-width:240px;max-width:300px;box-shadow:0 10px 40px #00000080;z-index:100;pointer-events:none;animation:tooltipFadeIn .15s ease}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.tooltip-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.tooltip-icon{font-size:1.5rem}.tooltip-name{font-size:1.1rem;font-weight:600;color:#fff}.tooltip-size{font-family:JetBrains Mono,monospace;font-size:1.4rem;font-weight:700;color:#667eea;margin-bottom:4px}.tooltip-percent{font-size:.9rem;color:#8892b0;margin-bottom:12px}.tooltip-desc{font-size:.85rem;color:#a0aec0;line-height:1.5;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}.tooltip-files{margin-top:10px;font-size:.85rem;color:#667eea}.pie-legend{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:600px}.pie-legend .legend-item{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#ffffff0d;border-radius:8px;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.pie-legend .legend-item:hover,.pie-legend .legend-item.active{background:#ffffff1a;border-color:#fff3;transform:translateY(-2px)}.legend-color{width:14px;height:14px;border-radius:4px;flex-shrink:0}.legend-icon{font-size:1.1rem}.legend-name{font-size:.9rem;color:#e8e8e8}.legend-size{font-family:JetBrains Mono,monospace;font-size:.85rem;color:#667eea;margin-left:4px}.storage-tips{background:#667eea14;border:1px solid rgba(102,126,234,.2);border-radius:12px;padding:20px}.storage-tips h4{margin:0 0 16px;color:#fff;font-size:1rem}.tips-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.tip-card{display:flex;gap:12px;padding:14px;background:#ffffff08;border-radius:10px}.tip-icon{font-size:1.5rem;flex-shrink:0}.tip-content strong{display:block;color:#fff;font-size:.9rem;margin-bottom:6px}.tip-content p{margin:0;font-size:.85rem;color:#8892b0;line-height:1.5}.volumes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.volume-card{display:flex;align-items:center;gap:16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;transition:all .2s ease}.volume-card:hover{background:#ffffff14;transform:translateY(-2px)}.volume-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff}.volume-info h4{margin:0 0 4px;font-size:.95rem;color:#fff}.volume-size{margin:0;font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:600;color:#667eea}.volume-files{margin:4px 0 0;font-size:.85rem;color:#8892b0}.storage-help{background:#667eea1a;border:1px solid rgba(102,126,234,.2);border-radius:12px;padding:20px}.storage-help h4{margin:0 0 12px;color:#fff;font-size:1rem}.storage-help ul{margin:0 0 16px;padding-left:20px;color:#8892b0;font-size:.9rem;line-height:1.8}.storage-help strong{color:#fff}.status-legend{display:flex;gap:24px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#8892b0}.dot{width:12px;height:12px;border-radius:50%}.dot.ok{background:#22c55e}.dot.warning{background:#f59e0b}.dot.critical{background:#ef4444}.stats-tab{display:flex;flex-direction:column;gap:24px}.stats-header{display:flex;align-items:center;justify-content:space-between}.stats-header h3{margin:0;color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.stat-card{display:flex;align-items:center;gap:20px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;transition:all .2s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #0000004d}.stat-card.users .stat-icon{background:linear-gradient(135deg,#667eea,#764ba2)}.stat-card.chats .stat-icon{background:linear-gradient(135deg,#22c55e,#16a34a)}.stat-card.messages .stat-icon{background:linear-gradient(135deg,#f59e0b,#d97706)}.stat-card.files .stat-icon{background:linear-gradient(135deg,#06b6d4,#0891b2)}.stat-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:16px;color:#fff;flex-shrink:0}.stat-content{display:flex;flex-direction:column}.stat-value{font-family:JetBrains Mono,monospace;font-size:2rem;font-weight:700;color:#fff;line-height:1}.stat-label{font-size:.9rem;color:#8892b0;margin-top:4px}.stat-sub{font-size:.8rem;color:#667eea;margin-top:4px}.users-tab{display:flex;flex-direction:column;gap:20px}.users-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.users-header h3{margin:0;color:#fff}.users-controls{display:flex;align-items:center;gap:16px}.checkbox-label{display:flex;align-items:center;gap:8px;color:#8892b0;cursor:pointer;font-size:.9rem}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:#667eea}.users-table-container{overflow-x:auto;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.users-table{width:100%;border-collapse:collapse;font-size:.9rem}.users-table th{background:#667eea33;color:#fff;font-weight:600;text-align:left;padding:14px 16px;white-space:nowrap}.users-table td{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.05);color:#e8e8e8}.users-table tr:hover td{background:#ffffff0d}.users-table tr.inactive td{opacity:.5}.user-name{display:flex;flex-direction:column}.user-name strong{color:#fff}.user-id{font-size:.8rem;color:#8892b0}.role-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:500}.role-badge.boss{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.role-badge.lawyer{background:#22c55e33;color:#4ade80}.role-badge.client{background:#8b8b8b33;color:#a0a0a0}.status-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:500}.status-badge.active{background:#22c55e33;color:#4ade80}.status-badge.inactive{background:#ef444433;color:#f87171}.user-actions{display:flex;gap:8px}.btn-small{padding:6px 12px;border:none;border-radius:6px;font-size:.8rem;cursor:pointer;transition:all .2s ease;background:#ffffff1a;color:#fff}.btn-small:hover{background:#fff3}.btn-small.btn-danger{background:#ef44444d;color:#f87171}.btn-small.btn-danger:hover{background:#ef444480}.btn-small.btn-success{background:#22c55e4d;color:#4ade80}.btn-small.btn-success:hover{background:#22c55e80}.users-table select{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:6px 10px;border-radius:6px;font-size:.85rem}.cleanup-tab{display:flex;flex-direction:column;gap:24px}.cleanup-header h3{margin:0;color:#fff}.cleanup-warning{display:flex;gap:16px;padding:16px 20px;background:#f59e0b26;border:1px solid rgba(245,158,11,.3);border-radius:12px;color:#fbbf24}.cleanup-warning svg{flex-shrink:0;margin-top:2px}.cleanup-warning strong{display:block;margin-bottom:4px}.cleanup-warning p{margin:0;font-size:.9rem;opacity:.9}.cleanup-form{display:flex;flex-direction:column;gap:24px}.form-group{display:flex;flex-direction:column;gap:12px}.form-group>label{font-weight:500;color:#fff}.cleanup-options{display:flex;flex-direction:column;gap:12px}.cleanup-option{display:flex;gap:12px;padding:16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;cursor:pointer;transition:all .2s ease}.cleanup-option:hover{background:#ffffff14}.cleanup-option input[type=radio]{width:18px;height:18px;accent-color:#667eea;margin-top:2px}.option-content{display:flex;flex-direction:column;gap:4px}.option-content strong{color:#fff}.option-content span{font-size:.85rem;color:#8892b0}.days-input{display:flex;align-items:center;gap:12px}.days-input input{width:100px;padding:10px 14px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:1rem;font-family:JetBrains Mono,monospace}.days-input span{color:#8892b0}.checkbox-label.prominent{padding:16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px}.checkbox-label.prominent div{display:flex;flex-direction:column;gap:4px}.checkbox-label.prominent strong{color:#fff}.checkbox-label.prominent span{font-size:.85rem;color:#8892b0}.cleanup-form .btn{align-self:flex-start;padding:12px 24px}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c)}.cleanup-result{padding:24px;border-radius:12px}.cleanup-result.success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3)}.cleanup-result.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.error-text{color:#f87171;margin:0}.result-summary{display:flex;gap:32px;flex-wrap:wrap;margin-bottom:16px}.result-item{display:flex;flex-direction:column;align-items:center}.result-value{font-family:JetBrains Mono,monospace;font-size:2rem;font-weight:700;color:#fff}.result-label{font-size:.85rem;color:#8892b0}.result-hint{margin:0;padding:12px 16px;background:#667eea33;border-radius:8px;font-size:.9rem;color:#a5b4fc}.result-details{margin-top:16px}.details-toggle{display:flex;align-items:center;gap:8px;background:transparent;border:none;color:#667eea;cursor:pointer;font-size:.9rem;padding:8px 0}.details-toggle:hover{color:#818cf8}.details-list{margin:12px 0 0;padding:16px;background:#0003;border-radius:8px;max-height:200px;overflow-y:auto;font-size:.85rem;color:#8892b0}.details-list li{margin-bottom:6px}.btn-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:8px;color:#8892b0;cursor:pointer;transition:all .2s ease}.btn-icon:hover{background:#fff3;color:#fff}@media (max-width: 768px){.admin-main{padding:16px}.admin-header h1{font-size:1.5rem}.admin-tabs{flex-wrap:wrap}.admin-tab{flex:1;min-width:80px;justify-content:center;padding:10px 12px;font-size:.85rem}.admin-tab span{display:none}.storage-main-stats{flex-direction:column;align-items:stretch;gap:20px}.storage-percent{flex-direction:row;justify-content:center;gap:8px}.percent-value{font-size:2.5rem}.percent-label{align-self:flex-end;margin-bottom:8px}.storage-values{flex-direction:column;gap:4px;align-items:center}.volumes-grid{grid-template-columns:1fr}.storage-summary{grid-template-columns:1fr;gap:12px}.summary-value{font-size:1.3rem}.pie-chart-container{gap:20px}.pie-chart{width:220px;height:220px}.pie-legend{flex-direction:column;width:100%}.pie-legend .legend-item{justify-content:flex-start;width:100%}.legend-name{flex:1}.pie-tooltip{left:50%!important;transform:translate(-50%);top:auto!important;bottom:10px;max-width:90vw}.tips-grid,.stats-grid{grid-template-columns:1fr}.stat-card{padding:16px}.stat-value{font-size:1.5rem}.users-table-container{margin:0 -16px;border-radius:0;border-left:none;border-right:none}.result-summary{justify-content:center}.status-legend{flex-direction:column;gap:8px}}.spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}.cleanup-modes{display:flex;gap:12px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1)}.mode-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#8892b0;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.mode-btn:hover{background:#ffffff1a;color:#fff}.mode-btn.active{background:linear-gradient(135deg,#667eea4d,#764ba24d);border-color:#667eea80;color:#fff}.mode-icon{font-size:1.2rem}.cleanup-message{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;font-size:.9rem}.cleanup-message.success{background:#22c55e26;border:1px solid rgba(34,197,94,.3);color:#4ade80}.cleanup-message.error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#f87171}.cleanup-message .close-btn{margin-left:auto;background:none;border:none;color:inherit;font-size:1.3rem;cursor:pointer;opacity:.7;transition:opacity .2s}.cleanup-message .close-btn:hover{opacity:1}.chats-cleanup-view{flex:1;display:flex;flex-direction:column}.cleanup-layout{display:grid;grid-template-columns:380px 1fr;gap:20px;height:calc(100vh - 400px);min-height:450px}.chats-list-panel{display:flex;flex-direction:column;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff05}.panel-header h4{margin:0;font-size:1rem;font-weight:600;color:#fff}.panel-title-group{display:flex;flex-direction:column;gap:4px}.files-summary{font-size:.85rem;color:#8892b0}.panel-actions{display:flex;gap:8px}.chats-scroll-list{flex:1;overflow-y:auto;padding:12px}.empty-text{text-align:center;color:#8892b0;font-size:.9rem;padding:40px 20px}.chat-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;margin-bottom:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;cursor:pointer;transition:all .2s ease}.chat-item:hover{background:#ffffff14;border-color:#ffffff26}.chat-item.selected{background:#667eea26;border-color:#667eea66}.chat-item.empty{opacity:.5}.chat-item-main{display:flex;align-items:center;gap:12px;overflow:hidden}.chat-type-icon{font-size:1.3rem;flex-shrink:0}.chat-item-info{display:flex;flex-direction:column;gap:2px;overflow:hidden}.chat-item-name{font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item-meta{font-size:.8rem;color:#8892b0}.chat-item-size{flex-shrink:0;margin-left:12px}.size-badge{padding:4px 10px;border-radius:6px;font-size:.8rem;font-weight:500;font-family:JetBrains Mono,monospace;background:#ffffff1a;color:#8892b0}.size-badge.medium{background:#f59e0b33;color:#fbbf24}.size-badge.large{background:#ef444433;color:#f87171}.files-panel{display:flex;flex-direction:column;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden}.files-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#8892b0;gap:12px}.placeholder-icon{font-size:3rem;opacity:.5}.files-placeholder p{margin:0;font-size:.9rem}.files-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.08)}.select-all-label{display:flex;align-items:center;gap:8px;color:#8892b0;font-size:.9rem;cursor:pointer}.select-all-label input{width:16px;height:16px;accent-color:#667eea}.files-scroll-list{flex:1;overflow-y:auto;padding:12px 20px}.file-item{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;transition:all .2s ease}.file-item:hover{background:#ffffff0f}.file-item.selected{background:#ef44441a;border-color:#ef44444d}.file-item input[type=checkbox]{width:16px;height:16px;accent-color:#ef4444;flex-shrink:0}.file-icon{font-size:1.4rem;flex-shrink:0}.file-info{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden}.file-name{font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta{font-size:.8rem;color:#8892b0}.file-size{font-family:JetBrains Mono,monospace;font-size:.85rem;color:#8892b0;flex-shrink:0}.auto-cleanup-view{max-width:600px}@media (max-width: 900px){.cleanup-layout{grid-template-columns:1fr;height:auto}.chats-list-panel{max-height:300px}.files-panel{min-height:350px}}@media (max-width: 768px){.cleanup-modes{flex-direction:column}.mode-btn{justify-content:center}.chat-item{flex-direction:column;align-items:flex-start;gap:8px}.chat-item-size{margin-left:0}.files-toolbar{flex-direction:column;gap:12px;align-items:flex-start}}:root{--primary-color: #1976d2;--primary-dark: #115293;--primary-light: #4dabf5;--secondary-color: #424242;--success-color: #4caf50;--error-color: #f44336;--warning-color: #ff9800;--background: #f5f5f5;--surface: #ffffff;--text-primary: #212121;--text-secondary: #757575;--border-color: #e0e0e0;--shadow: 0 2px 4px rgba(0, 0, 0, .1);--shadow-hover: 0 4px 8px rgba(0, 0, 0, .15);--touch-target: 44px;--touch-padding: 12px}*{margin:0;padding:0;box-sizing:border-box}body{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(--background);color:var(--text-primary);line-height:1.6}#root{height:100vh;height:100dvh;display:flex;flex-direction:column;padding-bottom:var(--vvp-offset, 0px);box-sizing:border-box}.btn{padding:10px 20px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;text-align:center;display:inline-block}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark)}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-retry{margin-left:10px;padding:5px 10px;background-color:var(--primary-light);color:#fff;border:none;border-radius:4px;cursor:pointer}.loading-screen,.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:20px}.spinner{width:50px;height:50px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{background-color:#ffebee;color:var(--error-color);padding:15px;border-radius:4px;border-left:4px solid var(--error-color);margin:20px 0}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:20px;padding:20px}.badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500}.badge-active{background-color:#e8f5e9;color:var(--success-color)}.badge-archived{background-color:#fff3e0;color:var(--warning-color)}.badge-closed{background-color:#f5f5f5;color:var(--text-secondary)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state h2{margin-bottom:10px;color:var(--text-primary)}.text-center{text-align:center}.mt-20{margin-top:20px}.mb-20{margin-bottom:20px}
