.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}.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}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.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}.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}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.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}@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}}.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(350px,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}.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}.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}.case-label{color:var(--text-secondary);font-weight:500}.case-value{color:var(--text-primary);font-weight:600}.case-description{color:var(--text-secondary);font-size:14px;line-height:1.5;display:-webkit-box;-webkit-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:1fr}}.case-preview{display:block;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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{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}}.chat-messages-area{position:relative;flex:1;display:flex;flex-direction:column;overflow:hidden}.messages-container{flex:1;overflow-y:auto;padding:20px;background:var(--background);-webkit-overflow-scrolling:touch}.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}@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:70%;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);position:relative}.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;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%;max-height:180px;object-fit:cover;border-radius:8px;cursor:pointer}.message-image-wrapper{position:relative;display:inline-block;margin-top:8px}.message-image-loading{width:200px;height:150px;background:var(--border-color);display:flex;align-items:center;justify-content:center;border-radius:8px}.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)}font-weight: 500; } @media (max-width: 768px){.messages-container{padding:14px}.message-bubble{max-width:88%;padding:12px 14px}.messages-list{gap: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}.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}.chat-swipe-surface{flex:1;display:flex;flex-direction:column;min-height: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:15px;padding:15px 20px;background:var(--surface);border-bottom:1px solid var(--border-color)}.chat-toggle-main{background:none;border:none;font-size:24px;cursor:pointer;padding:5px;color:var(--text-primary)}.chat-content__title h1{font-size:20px;margin:0;color:var(--text-primary)}.case-number{font-size:14px;color:var(--text-secondary);margin:0}.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:20px;border-bottom:1px solid var(--border-color)}.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}.chat-sidebar__title{font-weight:600;color:var(--text-primary);font-size:15px}.chat-sidebar__time-wrapper{display:flex;align-items:center;gap:8px}.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:70px;left:0;right:0;bottom:0;background:#00000059;z-index:90;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease;touch-action:pan-y}.chat-sidebar-overlay.open{opacity:1;visibility:visible;pointer-events:auto;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;height:100vh}.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)}@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 h1{margin:0 0 8px}.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{min-height:100vh;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{min-height:100vh;display:flex;flex-direction:column}.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}
