.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f8f9fa;padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000026,0 0 1px #0000001a;width:100%;max-width:500px;padding:40px}.login-header{text-align:center;margin-bottom:30px}.login-header h1{margin:0 0 8px;font-size:32px;font-weight:700;color:#2c3e50;background:linear-gradient(135deg,#1e90ff,#1260b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-header p{margin:0;color:#7f8c8d;font-size:16px}.login-form{margin-bottom:30px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#2c3e50;font-size:14px}.form-group input{width:100%;padding:12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:15px;transition:all .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#1e90ff;box-shadow:0 0 0 3px #667eea1a}.form-group input[type=password]::-webkit-textfield-decoration-container{display:none!important}.form-group input[type=text]::-webkit-textfield-decoration-container{display:none!important}.error-message{background:#fee;color:#c33;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;border:1px solid #fcc}.login-button{width:100%;padding:14px;background:linear-gradient(135deg,#1e90ff,#1260b0);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 15px #667eea66}.login-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;margin-top:16px;margin-bottom:8px}.login-footer a{color:#1e90ff;text-decoration:none;font-size:14px;transition:opacity .2s}.login-footer a:hover{opacity:.7}.register-prompt{text-align:center;margin-top:20px;padding-top:20px;border-top:1px solid #e1e8ed}.register-prompt p{margin:0;color:#7f8c8d;font-size:14px}.demo-info{background:#f8f9fa;padding:20px;border-radius:8px;border:1px solid #e1e8ed}.demo-title{margin:0 0 12px;font-weight:600;color:#2c3e50;font-size:14px}.demo-info ul{margin:0 0 12px;padding-left:20px;color:#555;font-size:13px}.demo-info li{margin-bottom:6px;font-family:Courier New,monospace}.demo-note{margin:0;font-size:12px;color:#7f8c8d;font-style:italic;text-align:center}.role-selection{display:flex;flex-direction:column;gap:16px;margin-bottom:30px}.role-button{display:flex;align-items:center;gap:20px;padding:20px;border:2px solid #e1e8ed;border-radius:12px;background:#fff;cursor:pointer;transition:all .3s;text-align:left}.role-button:hover{border-color:#1e90ff;background:#f8f9ff;transform:translateY(-2px);box-shadow:0 4px 12px #667eea26}.role-button:active{transform:translateY(0)}.role-icon{font-size:48px;min-width:60px;text-align:center}.role-info{flex:1}.role-info h3{margin:0 0 6px;font-size:20px;font-weight:600;color:#2c3e50}.role-info p{margin:0;font-size:14px;color:#7f8c8d}.voter-button:hover{border-color:#3498db;background:#f0f8ff}.politician-button:hover{border-color:#9b59b6;background:#f9f3ff}.admin-button:hover{border-color:#e74c3c;background:#fff5f5}.selected-role{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px;padding:12px 20px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:8px}.selected-role-icon{font-size:28px}.selected-role-name{font-size:16px;font-weight:600;color:#2c3e50}@media(max-width:480px){.login-card{padding:30px 20px}.login-header h1{font-size:28px}.role-icon{font-size:36px;min-width:50px}.role-info h3{font-size:18px}.role-info p{font-size:13px}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f8f9fa;padding:20px}.auth-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:480px;padding:40px;animation:slideUp .4s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;margin-bottom:30px}.auth-header h1{margin:0 0 8px;font-size:32px;font-weight:700;color:#2c3e50;background:linear-gradient(135deg,#1e90ff,#1260b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-header p{margin:0;color:#7f8c8d;font-size:15px}.auth-form,.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#2c3e50;font-size:14px}.form-group input,.form-group select{width:100%;padding:12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:15px;transition:all .2s;box-sizing:border-box;font-family:inherit}.form-group input:focus,.form-group select:focus{outline:none;border-color:#1e90ff;box-shadow:0 0 0 3px #667eea1a}.form-group input[type=password]::-ms-reveal,.form-group input[type=password]::-ms-clear{display:none}.form-group input[type=password]::-webkit-credentials-auto-fill-button,.form-group input[type=password]::-webkit-contacts-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none;height:0;width:0;margin:0}.form-group input[type=text]::-ms-reveal,.form-group input[type=text]::-ms-clear{display:none}.form-group select{cursor:pointer;background-color:#fff}.form-hint{display:block;margin-top:6px;font-size:12px;color:#95a5a6}.required{color:#e74c3c;font-weight:700}.error-message{background:#fee;color:#c33;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;border:1px solid #fcc;animation:shake .3s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.success-box{background:#e8f5e9;color:#2e7d32;padding:24px;border-radius:8px;margin-bottom:20px;text-align:center;border:1px solid #a5d6a7}.success-icon{font-size:64px;margin-bottom:16px}.success-box p{margin:8px 0;font-size:14px;line-height:1.6}.success-box strong{color:#1b5e20;font-weight:600}.info-box{background:#e3f2fd;color:#1565c0;padding:16px;border-radius:8px;margin-bottom:20px;font-size:14px;border:1px solid #90caf9;line-height:1.6}.info-box p{margin:0}.auth-button{width:100%;padding:14px;background:linear-gradient(135deg,#1e90ff,#1260b0);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 15px #667eea66}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.auth-button:active:not(:disabled){transform:translateY(0)}.auth-button:disabled{opacity:.6;cursor:not-allowed}.back-button{width:100%;padding:12px;background:#fff;color:#7f8c8d;border:2px solid #e1e8ed;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-top:12px}.back-button:hover{background:#f8f9fa;border-color:#1e90ff;color:#1e90ff}.auth-footer{text-align:center;margin-top:20px}.auth-footer p{margin:8px 0;color:#7f8c8d;font-size:14px}.link-button{background:none;border:none;color:#1e90ff;text-decoration:none;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s;padding:4px 8px;margin:0 4px}.link-button:hover{opacity:.7;text-decoration:underline}.small-text{font-size:12px;color:#95a5a6;margin:8px 0}.step-indicator{display:flex;align-items:center;justify-content:center;margin-bottom:30px;padding:20px 0}.step-item{display:flex;flex-direction:column;align-items:center;gap:8px}.step-number{width:40px;height:40px;border-radius:50%;background:#e1e8ed;color:#95a5a6;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;transition:all .3s}.step-item.active .step-number{background:linear-gradient(135deg,#1e90ff,#1260b0);color:#fff;box-shadow:0 4px 12px #667eea66}.step-item.completed .step-number{background:#1e90ff;color:#fff}.step-label{font-size:12px;color:#95a5a6;font-weight:600;transition:all .3s}.step-item.active .step-label,.step-item.completed .step-label{color:#1e90ff}.step-line{width:60px;height:2px;background:#e1e8ed;margin:0 10px 28px}@media(max-width:480px){.auth-card{padding:30px 20px}.auth-header h1{font-size:28px}.step-indicator{padding:15px 0}.step-number{width:36px;height:36px;font-size:14px}.step-label{font-size:11px}.step-line{width:40px;margin-bottom:24px}}:root{--bg: #f6f7f9;--panel: #ffffff;--panel-2: #fbfbfc;--border: #e5e7eb;--muted: #6b7280;--text: #111827;--accent: #1e90ff;--accent-weak: #dbeafe;--ring: rgba(30, 144, 255, .35);--shadow: 0 15px 40px rgba(0,0,0,.12);--radius: 24px;--sidebar-width: 300px;--sidebar-mobile-width: min(86vw, 360px);--font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-base: 14px;--font-size-small: 12px;--font-size-tiny: 11px;--line-height: 1.4;--letter-spacing: .2px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--avatar-size: 32px;--avatar-size-sm: 28px;--avatar-size-lg: 44px;--avatar-size-xl: 64px}*{box-sizing:border-box}button,input,select,textarea{font-family:inherit}html,body{height:100%;max-width:100vw;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--text);font:var(--font-size-base)/var(--line-height) var(--font-family);letter-spacing:var(--letter-spacing);contain:paint}#root{max-width:100vw;overflow-x:hidden;contain:paint}.app{height:100vh;display:grid;grid-template-columns:var(--sidebar-width) 1fr;gap:0;padding:0;overflow:hidden}.panel{background:var(--panel);border:none;border-radius:0;box-shadow:none;display:flex;min-height:0;overflow:hidden}.hidden{display:none!important}.sidebar{flex-direction:column;overflow:hidden;position:relative}.mebar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);gap:10px}.me{display:flex;align-items:center;gap:10px;font-weight:600}.edit-profile-btn{width:32px;height:32px;border:1px solid var(--border);background:var(--panel-2);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:background-color .2s,color .2s,border-color .2s}.edit-profile-btn:hover{background:var(--accent-weak);color:var(--accent);border-color:var(--accent)}.settings-btn{width:32px;height:32px;background:none;border:none;color:var(--text-secondary);border-radius:8px;cursor:pointer;transition:background-color .2s,color .2s;display:flex;align-items:center;justify-content:center}.settings-btn:hover{background-color:var(--hover-color);color:var(--text-primary)}.settings-btn svg{width:16px;height:16px}.clickable-avatar{cursor:pointer;transition:background-color .2s,transform .1s}.clickable-avatar:hover{background:var(--accent-weak);transform:scale(1.05)}.avatar{width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;background:#e5e7eb;color:#374151;display:grid;place-items:center;font-weight:700;writing-mode:horizontal-tb;text-orientation:mixed}.search{padding:10px var(--spacing-lg) var(--spacing-md);border-bottom:1px solid var(--border)}.search input{width:100%;padding:10px var(--spacing-md);border-radius:10px;border:1px solid var(--border);outline:none;background:var(--panel-2);transition:box-shadow .2s,border-color .2s}.search input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--ring)}.side-content{flex:1 1 auto;min-height:0;overflow-y:auto;padding:8px}.section{display:none}.section.active{display:flex;flex-direction:column}.List{display:flex;flex-direction:column;gap:var(--spacing-sm)}.card{border:1px solid var(--border);border-radius:var(--spacing-md);padding:var(--spacing-md);background:var(--panel-2)}.chat-list{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:0}.chat-item{padding:var(--spacing-md);border-radius:12px;cursor:pointer;transition:background .2s ease;display:flex;align-items:center;gap:var(--spacing-md);position:relative}.chat-item:hover{background:var(--panel-2)}.chat-item.active{background:var(--accent-weak);color:var(--accent)}.chat-item .avatar{flex-shrink:0}.chat-name{font-weight:600;margin-bottom:2px;flex:1;min-width:0;word-wrap:break-word;overflow-wrap:break-word}.chat-time{flex-shrink:0;font-size:var(--font-size-small);color:var(--muted);margin-left:var(--spacing-sm)}.chat-preview{font-size:var(--font-size-small);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item.active .chat-preview{color:var(--accent)}.chat-meta{color:var(--muted);font-size:var(--font-size-small)}.badge{background:#ff4757;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center;flex-shrink:0;position:absolute;top:8px;right:8px}.follow-avatar{width:28px;height:28px;border-radius:50%;background:#e2e8f0;display:flex!important;align-items:center;justify-content:center;font-weight:700;writing-mode:horizontal-tb!important;text-orientation:mixed!important;direction:ltr!important;text-align:center!important;line-height:1!important;white-space:nowrap!important;overflow:hidden}.news-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) 10px;border-radius:10px;cursor:pointer;border:1px solid transparent}.news-item:hover{background:var(--panel-2)}.news-item.active{background:var(--accent-weak);border-color:var(--accent)}.news-title-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar-nav-grid{flex-shrink:0;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;padding:12px;border-top:1px solid var(--border)}.bottom-nav{border-top:1px solid var(--border);padding:var(--spacing-sm);display:grid;grid-template-columns:repeat(5,1fr);gap:var(--spacing-sm)}.nav-btn{display:grid;grid-template-rows:auto auto;place-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) 6px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer;font-family:inherit;font-size:var(--font-size-small);color:#334155}.nav-btn svg{width:18px;height:18px}.nav-btn{position:relative}.nav-btn-split.active-system{background:var(--accent-weak);border-color:var(--accent);color:var(--accent)}.nav-btn-split.active-member{background:#dcfce7;border-color:#15803d;color:#15803d}.main{position:relative;overflow:hidden;width:100%;max-width:none;height:100vh;display:flex;flex-direction:column}.dashboard-main{display:flex;flex-direction:column;padding:var(--spacing-xl);overflow-y:auto}.voter-dashboard{width:100%;margin:0}.voter-dashboard h2{color:var(--text);font-size:28px;font-weight:700;margin-bottom:20px;text-align:center}.dashboard-welcome{padding:24px;background:var(--panel);border-radius:12px;margin-bottom:30px;border:1px solid var(--border);box-shadow:0 2px 8px #0000000d;text-align:center}.dashboard-welcome p{font-size:18px;color:var(--text);margin:0 0 var(--spacing-sm) 0;font-weight:600}.dashboard-welcome small{color:var(--muted);font-size:var(--font-size-small)}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px;transition:all .3s ease;cursor:pointer;box-shadow:0 2px 8px #0000000d}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a;border-color:var(--accent)}.stat-icon{font-size:40px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.stat-info h3{margin:0 0 8px;color:var(--muted);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.stat-number{font-size:32px;font-weight:700;color:var(--text);margin-bottom:4px}.stat-info small{color:var(--muted);font-size:13px}.dashboard-section{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:var(--spacing-xl);margin-bottom:var(--spacing-lg)}.dashboard-section h3{margin:0 0 var(--spacing-lg) 0;color:var(--text);font-size:20px;font-weight:600}.notification-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.notification-item{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--panel-2);border-radius:12px;border:1px solid var(--border);cursor:pointer;transition:all .2s ease}.notification-item:hover{background:var(--accent-weak);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.notification-icon{font-size:20px;margin-top:2px}.notification-content{flex:1}.notification-title{font-weight:600;color:var(--text);margin-bottom:var(--spacing-xs)}.notification-text{color:var(--muted);font-size:var(--font-size-small);margin-bottom:var(--spacing-xs);line-height:1.4}.notification-time{color:var(--muted);font-size:var(--font-size-tiny)}.notification-item.unread{background:linear-gradient(90deg,var(--accent-weak) 0%,var(--panel-2) 100%);border-left:4px solid var(--accent)}.notification-item.unread .notification-title{font-weight:700;color:var(--accent)}.system-notices h3{font-size:18px;font-weight:600;color:var(--text);margin-bottom:16px;text-align:center}.notices-container{display:flex;flex-direction:column;gap:12px}.notice-item{display:flex;gap:16px;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:8px;transition:all .2s;cursor:pointer}.notice-item:hover{border-color:var(--accent);box-shadow:0 2px 8px #0000001a}.notice-icon{font-size:24px;flex-shrink:0}.notice-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:6px}.notice-text{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:8px}.notice-date{font-size:12px;color:var(--muted)}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.action-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--panel-2);border:1px solid var(--border);border-radius:12px;color:var(--text);cursor:pointer;font-size:var(--font-size-base);font-weight:500;transition:all .2s ease;text-align:left}.action-btn:hover{background:var(--accent-weak);border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.action-btn span{font-size:18px}.quick-action-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.quick-action-btn{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--panel-2);border:1px solid var(--border);border-radius:12px;color:var(--text);cursor:pointer;font-size:var(--font-size-base);font-weight:500;transition:all .2s ease;text-align:left}.quick-action-btn:hover{background:var(--accent-weak);border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.quick-action-icon{font-size:20px;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.quick-action-text{flex:1;font-weight:500}.dashboard-settings{margin-bottom:30px}.dashboard-settings h3{font-size:18px;font-weight:600;color:var(--text);margin-bottom:16px;text-align:center}.setting-quick-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:var(--panel);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .3s ease;text-align:center}.setting-quick-card:hover{border-color:var(--accent);background:var(--accent-weak);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.setting-quick-icon{font-size:36px;margin-bottom:12px}.setting-quick-title{font-size:14px;font-weight:600;color:var(--text)}.dashboard-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-md)}.dashboard-settings-card{display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-lg);background:var(--panel-2);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s ease}.dashboard-settings-card:hover{background:var(--accent-weak);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.settings-icon{font-size:24px;width:48px;height:48px;background:var(--accent-weak);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-settings-card:hover .settings-icon{background:var(--accent);color:#fff}.settings-info{flex:1}.settings-info h4{margin:0 0 var(--spacing-xs) 0;color:var(--text);font-size:var(--font-size-base);font-weight:600}.settings-info small{color:var(--muted);font-size:var(--font-size-small);line-height:1.4}.account-settings-btn{width:100%;display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-lg);background:var(--panel-2);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s ease;font-family:var(--font-family)}.account-settings-btn:hover{background:var(--accent-weak);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.account-settings-btn:hover .settings-icon{background:var(--accent)}.search-main{display:flex;flex-direction:column;height:100%;background:var(--panel)}.search-header{padding:var(--spacing-xl);border-bottom:1px solid var(--border);background:var(--panel)}.search-header h2{margin:0;font-size:24px;font-weight:600;color:var(--text)}.settings-main{display:flex;flex-direction:column;height:100%;background:var(--panel)}.settings-header{padding:var(--spacing-xl);border-bottom:1px solid var(--border);background:var(--panel)}.settings-header h2{margin:0;font-size:24px;font-weight:600;color:var(--text)}.settings-body{flex:1;overflow-y:auto;padding:var(--spacing-xl);padding-bottom:32px}.settings-section{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:var(--spacing-xl);margin-bottom:var(--spacing-lg)}.settings-section h3{margin:0 0 var(--spacing-sm) 0;font-size:18px;font-weight:600;color:var(--text)}.settings-description{margin:0 0 var(--spacing-lg) 0;color:var(--muted);font-size:var(--font-size-base);line-height:1.5}.settings-action-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:10px 20px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:all .2s ease;font-family:var(--font-family)}.settings-action-btn:hover{background:#1e90ff;transform:translateY(-1px);box-shadow:0 4px 12px #1e90ff4d}.settings-action-btn.danger{background:#ef4444}.settings-action-btn.danger:hover{background:#dc2626;box-shadow:0 4px 12px #ef44444d}.dialog-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:1;transition:all .3s cubic-bezier(.4,0,.2,1)}.dialog-backdrop.hidden{opacity:0;pointer-events:none}.dialog{background:var(--panel);border-radius:16px;box-shadow:0 25px 50px #00000040;width:90%;max-width:500px;max-height:90vh;overflow:hidden;transform:scale(1) translateY(0);transition:all .3s cubic-bezier(.4,0,.2,1);animation:dialogSlideIn .3s cubic-bezier(.4,0,.2,1)}.dialog-backdrop.hidden .dialog{transform:scale(.95) translateY(20px);opacity:0}@keyframes dialogSlideIn{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog-header{padding:var(--spacing-xl);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,var(--panel) 0%,var(--panel-2) 100%)}.dialog-header h2{margin:0;color:var(--text);font-size:20px;font-weight:600}.dialog-close{width:32px;height:32px;border:none;background:var(--panel-2);border-radius:8px;color:var(--muted);font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.dialog-close:hover{background:var(--accent-weak);color:var(--accent);transform:scale(1.1)}.dialog-body{padding:var(--spacing-xl);max-height:60vh;overflow-y:auto}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text);font-size:var(--font-size-base);font-weight:500}.form-group input,.form-group textarea{width:100%;padding:var(--spacing-md);border:2px solid var(--border);border-radius:8px;font-size:var(--font-size-base);color:var(--text);background:var(--panel-2);transition:all .2s ease;outline:none}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px #1e90ff1a}.form-group input[readonly]{background:var(--panel-2);color:var(--muted);cursor:not-allowed}.form-group textarea{resize:vertical;min-height:120px;font-family:inherit}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-sm);border-radius:8px;transition:all .2s ease}.checkbox-label:hover{background:var(--panel-2)}.checkbox-label input[type=checkbox]{width:auto;margin:0;flex-shrink:0}.dialog-footer{padding:var(--spacing-xl);border-top:1px solid var(--border);display:flex;gap:var(--spacing-md);justify-content:flex-end;background:var(--panel-2)}.dialog-btn{padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:8px;font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px}.dialog-btn.secondary{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.dialog-btn.secondary:hover{background:var(--panel);color:var(--text);border-color:var(--accent);transform:translateY(-1px)}.dialog-btn.primary{background:var(--accent);color:#fff}.dialog-btn.primary:hover{background:#1e90ff;transform:translateY(-1px);box-shadow:0 4px 12px #1e90ff4d}.dialog-btn.danger{background:#ef4444;color:#fff}.dialog-btn.danger:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.warning-text{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:var(--spacing-md);color:#ef4444;font-size:var(--font-size-small);line-height:1.5;margin-bottom:var(--spacing-lg)}@media(max-width:768px){.dialog{width:95%;max-height:95vh}.dialog-header,.dialog-body,.dialog-footer{padding:var(--spacing-lg)}.dialog-footer{flex-direction:column}.dialog-btn{width:100%}}.chat{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;height:100%;overflow:hidden}.chat-header{flex-shrink:0;display:flex;align-items:center;gap:var(--spacing-sm);justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--panel)}.chat-title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-btn{display:none;border:1px solid var(--border);background:var(--panel-2);border-radius:10px;width:36px;height:36px;cursor:pointer}.messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:12px;background:#e3f2fd;display:flex;flex-direction:column;min-height:0}.messages-content{display:flex;flex-direction:column;gap:var(--spacing-sm);min-height:min-content;margin-top:auto}.day-sep{text-align:center;color:var(--muted);font-size:var(--font-size-small);margin:6px 0 2px}.msg-row{display:flex;flex-direction:column;margin-bottom:var(--spacing-xs)}.msg-row.me{align-items:flex-end}.msg-row:not(.me){align-items:flex-start}.msg-content{display:flex;align-items:flex-start;gap:var(--spacing-sm);max-width:70%}.msg-row.me .msg-content{flex-direction:row-reverse}.msg-avatar{width:32px;height:32px;flex-shrink:0}.msg-avatar .avatar{width:32px;height:32px;font-size:12px}.msg-bubble-container{flex:1;display:flex;flex-direction:column;min-width:0}.msg-bubble{max-width:100%;word-wrap:break-word;border-radius:18px;padding:12px 16px;position:relative}.msg-row.me .msg-bubble{background:#fff;color:#000;border:1px solid #e1e5e9}.msg-row:not(.me) .msg-bubble{background:#fff;color:var(--text);border:1px solid #e1e5e9}.msg-text{font-size:14px;line-height:1.4;word-break:break-word;white-space:pre-wrap}.message{display:flex;gap:8px;margin-bottom:12px;align-items:flex-start}.message.own{justify-content:flex-end}.message.other{justify-content:flex-start}.message-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-weak);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--accent);flex-shrink:0}.message-bubble{max-width:70%;word-wrap:break-word;border-radius:18px;padding:12px 16px;position:relative;background:var(--accent);color:#fff}.message.other .message-bubble{background:#fff;color:var(--text);border:1px solid #e1e5e9}.message-text{font-size:14px;line-height:1.4;word-break:break-word;white-space:pre-wrap;overflow-wrap:break-word}.message-time{font-size:11px;opacity:.8;margin-top:4px}.message.other .message-time{color:var(--muted)}.chat-messages{display:flex;flex-direction:column;gap:12px;padding:16px;overflow-y:auto}.msg-meta{font-size:11px;color:var(--muted);margin-top:4px;text-align:center}.msg-row.me .msg-meta{text-align:right}.msg-row:not(.me) .msg-meta{text-align:left}.composer{display:flex;align-items:flex-start;padding:10px 12px;background:#fff;border-top:1px solid var(--border);gap:var(--spacing-sm);width:100%;flex-shrink:0}.line-plus-btn{background:none;border:none;cursor:pointer;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s ease;color:var(--muted);align-self:flex-start;margin-top:8px}.line-plus-btn:hover{background:#0000001a}.line-input-container{flex:1;display:flex;align-items:flex-end;background:#f7f9fa;border-radius:20px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border);min-width:0;overflow:hidden}.line-input-container textarea{flex:1;border:none;background:none;outline:none;resize:none;font-size:14px;line-height:1.4;color:var(--text);font-family:var(--font-family);min-height:20px;max-height:100px;overflow-y:auto;padding:6px;width:100%;min-width:0;word-wrap:break-word;overflow-wrap:break-word;white-space:pre-wrap;box-sizing:border-box}.line-input-container textarea::placeholder{color:var(--muted)}.line-emoji-btn{background:none;border:none;cursor:pointer;padding:0 var(--spacing-xs);font-size:16px;display:flex;align-items:center;justify-content:center}.line-send-btn{background:var(--accent);color:#fff;border:none;cursor:pointer;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s ease;align-self:flex-start;margin-top:8px}.line-send-btn:hover{background:#1e90ff}.line-send-btn:disabled{background:var(--muted);cursor:not-allowed}.news-main{display:flex;flex-direction:column;width:100%;flex:1 1 auto;min-height:0;padding:0!important;overflow:hidden}.news-header{position:sticky;top:0;z-index:5;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border);background:var(--panel);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);font-weight:700}.news-body{padding:var(--spacing-lg);overflow:auto}.profile-main{display:flex;flex-direction:column;width:100%;flex:1 1 auto;min-height:0}.profile-header{position:relative;height:220px;border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);overflow:hidden;border-bottom:1px solid var(--border)}.profile-header img{width:100%;height:100%;object-fit:cover}.profile-body{display:grid;grid-template-rows:auto 1fr;gap:var(--spacing-md);padding:var(--spacing-lg);height:calc(100% - 220px);min-height:360px}.profile-top{display:grid;grid-template-columns:86px 1fr auto;gap:var(--spacing-md);align-items:center;border:1px solid var(--border);border-radius:var(--spacing-md);padding:var(--spacing-md);background:var(--panel-2)}.profile-top .avatar{width:var(--avatar-size-xl);height:var(--avatar-size-xl);background:#e5e7eb;color:#374151;font-weight:800;display:grid;place-items:center;border-radius:50%}.profile-name{font-size:18px;font-weight:800}.profile-meta{color:var(--muted);font-size:var(--font-size-small)}.profile-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{padding:var(--spacing-xs) var(--spacing-sm);background:var(--accent-weak);border:1px solid #dbeafe;border-radius:999px;font-size:var(--font-size-small)}.tag.donation-url{background:#ffe6cc;border:1px solid #ffb366;color:#c50;font-family:monospace;word-break:break-all}.profile-blog{border:1px solid var(--border);border-radius:var(--spacing-md);overflow:auto;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.profile-blog h3{margin:0;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border);background:var(--panel-2)}.blog-list{padding:var(--spacing-sm) var(--spacing-md);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:var(--spacing-sm);flex:1;min-height:0}.blog-card{border:1px solid var(--border);border-radius:10px;background:#fff;overflow:hidden}.blog-header{display:flex;align-items:center;gap:var(--spacing-sm);justify-content:space-between;padding:10px var(--spacing-md);cursor:pointer}.blog-title{font-weight:700}.blog-date{font-size:var(--font-size-small);color:var(--muted)}.blog-meta-right{margin-left:auto;display:flex;align-items:center;gap:10px;color:#334155;font-size:var(--font-size-small)}.blog-expand{display:none;border-top:1px solid var(--border)}.blog-card.expanded .blog-expand{display:block}.blog-images{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm);padding:10px var(--spacing-md) 0}.blog-images img{width:100%;height:140px;object-fit:cover;border-radius:var(--spacing-sm);display:block}.blog-content{padding:10px var(--spacing-md) var(--spacing-md)}.pager{display:flex;gap:var(--spacing-sm);align-items:center;justify-content:center;padding:10px;border-top:1px solid var(--border);background:var(--panel-2)}.pager button{border:1px solid var(--border);background:#fff;padding:6px 10px;border-radius:var(--spacing-sm);cursor:pointer}.pager .page{padding:6px 10px;border-radius:var(--spacing-sm);border:1px solid var(--border);background:#fff;cursor:pointer}.pager .page.active{background:var(--accent-weak);border-color:var(--accent);font-weight:700}.search-form{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);padding-bottom:40px;background:var(--panel)}.search-field{display:flex;flex-direction:column;gap:var(--spacing-xs);padding-bottom:2px}.search-label{font-weight:600;font-size:var(--font-size-small);color:var(--muted);margin-bottom:var(--spacing-xs)}.search-select,.search-input{width:100%;padding:10px var(--spacing-md);border:1px solid var(--border);border-radius:8px;background:var(--panel-2);font-size:var(--font-size-base);transition:border-color .2s,box-shadow .2s}.search-select:focus,.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.search-select:disabled{background:#f9fafb;color:var(--muted);cursor:not-allowed}.search-button{padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s;font-size:var(--font-size-base)}.search-button:hover{transform:translateY(-1px)}.search-button:active{transform:translateY(0)}.search-button:not(.secondary){background:var(--accent);color:#fff;margin-right:var(--spacing-sm)}.search-button:not(.secondary):hover{background:#1e90ff}.search-button.secondary{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.search-button.secondary:hover{background:#f3f4f6;color:var(--text)}.search-main .search-results{flex:1;overflow-y:auto;padding:var(--spacing-xl)}.sidebar .search-results{max-height:400px;overflow-y:auto}.search-results{flex:1;overflow-y:auto;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.result-item{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border:2px solid #1e90ff;border-radius:16px;background:var(--panel);cursor:pointer;transition:background-color .2s,border-color .2s,box-shadow .2s;margin-bottom:var(--spacing-md)}.result-item:hover{background:var(--panel-2);border-color:#1e90ff;box-shadow:0 2px 8px #1e90ff1a}.result-avatar{width:44px;height:44px;border-radius:50%;background:#e5e7eb;color:#374151;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.result-details{display:flex;flex-direction:column;gap:4px;min-width:0}.result-name{font-weight:700;font-size:16px;color:var(--text)}.result-meta,.result-location{color:var(--muted);font-size:13px}.search-result-badge{padding:6px 16px;background:#fff;border:1px solid #1e90ff;border-radius:999px;font-size:13px;font-weight:600;color:#1e90ff;cursor:pointer;transition:all .2s}.search-result-badge:hover{background:#1e90ff;color:#fff}.news-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--panel-2);border:1px solid var(--border);border-radius:8px 8px 0 0;border-bottom:none}.news-tab{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-xs);text-align:center;border-radius:6px;background:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--font-size-small);font-weight:600;color:var(--muted);transition:all .2s ease;min-height:32px}.news-tab:hover{background:var(--panel);color:var(--text)}.news-tab.active{background:var(--accent);color:#fff;box-shadow:0 2px 4px #0000001a}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#fff3;color:inherit;font-size:var(--font-size-tiny);font-weight:700;line-height:1}.news-tab:not(.active) .tab-badge{background:var(--accent);color:#fff}.news-tab.active .tab-badge{background:#ffffff4d;color:#fff}.tab-badge:empty{display:none}.news-content{border:1px solid var(--border);border-radius:0 0 8px 8px;background:var(--panel);height:100%;overflow:hidden;display:flex;flex-direction:column}.news-tab-content{display:none;flex:1;overflow:hidden}.news-tab-content.active{display:flex;flex-direction:column}.news-toggle-content{display:none;flex:1;overflow:hidden}.news-toggle-content.active{display:flex;flex-direction:column}.unified-news-list{flex:1;overflow-y:auto;overflow-x:hidden}.unified-news-item{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);border-bottom:1px solid var(--border);cursor:pointer;transition:background-color .2s;position:relative}.unified-news-item:last-child{border-bottom:none}.unified-news-item:hover{background:var(--panel-2)}.unified-news-item.active{background:var(--accent-weak);border-left:3px solid var(--accent)}.unified-news-item.unread{background:#fef3c7;border-left:3px solid var(--accent)}.unified-news-item.unread .unified-news-title{font-weight:700}.news-item-icon{flex:0 0 auto;width:20px;height:20px;margin-top:2px}.news-item-content{flex:1 1 auto;min-width:0}.unified-news-title{font-weight:600;margin:0 0 var(--spacing-xs) 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unified-news-meta{color:var(--muted);font-size:var(--font-size-small);margin-bottom:var(--spacing-xs)}.unified-news-preview{color:var(--muted);font-size:var(--font-size-small);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.news-type-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:var(--font-size-tiny);font-weight:600;margin-right:var(--spacing-xs)}.badge-system{background:#ddd6fe;color:#5b21b6}.badge-follow{background:#dbeafe;color:#1574cc}.badge-member{background:#dcfce7;color:#15803d}@media(max-width:420px){.news-tabs{gap:2px;padding:4px}.news-tab{padding:6px 4px;font-size:11px;min-height:28px}.unified-news-item{padding:10px}.news-item-icon{width:18px;height:18px}}.news-section{margin-bottom:var(--spacing-lg)}.news-section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--panel-2);border:1px solid var(--border);border-radius:8px 8px 0 0;border-bottom:none}.news-section-header h3{margin:0;font-size:var(--font-size-small);font-weight:700;color:var(--text)}.unread-count{background:var(--accent);color:#fff;padding:var(--spacing-xs) 6px;border-radius:999px;font-size:var(--font-size-tiny);font-weight:700;min-width:18px;text-align:center;display:none}.unread-count.has-unread{display:inline-block}.news-list.compact{border:1px solid var(--border);border-radius:0 0 8px 8px;background:var(--panel);max-height:200px;overflow-y:auto}.news-list.compact .news-item{padding:6px var(--spacing-sm);border-bottom:1px solid var(--border);margin:0}.news-list.compact .news-item:last-child{border-bottom:none}.news-item.unread{background:#fef3c7;border-left:3px solid var(--accent)}.news-item.unread .news-title-ellipsis{font-weight:700}.news-body-single{padding:var(--spacing-lg);height:calc(100% - 60px);overflow:auto}.news-detail-section{display:none;border:1px solid var(--border);border-radius:var(--spacing-md);background:var(--panel);flex-direction:column;min-height:0}.news-detail-section.active{display:flex}.news-detail-header{padding:var(--spacing-md);border-bottom:1px solid var(--border);background:var(--panel-2);border-radius:var(--spacing-md) var(--spacing-md) 0 0}.news-detail-header h3{margin:0;font-size:var(--font-size-base);font-weight:700;color:var(--text)}.news-detail-content{padding:var(--spacing-lg);overflow-y:auto;flex:1 1 auto;line-height:1.6}.news-detail-content h4{margin:0 0 var(--spacing-sm) 0;font-weight:700;color:var(--text)}.news-detail-content .news-meta{color:var(--muted);font-size:var(--font-size-small);margin-bottom:var(--spacing-md)}.news-detail-content .news-source-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background:var(--accent-weak);border:1px solid var(--accent);border-radius:999px;font-size:var(--font-size-tiny);font-weight:600;color:var(--accent);margin-bottom:var(--spacing-sm)}.news-detail-content .member-link{color:var(--accent);text-decoration:none;font-weight:600}.news-detail-content .member-link:hover{text-decoration:underline}.theme-dark{--bg: #0f172a;--panel: #1e293b;--panel-2: #334155;--border: #475569;--muted: #94a3b8;--text: #f1f5f9;--accent: #1e90ff;--accent-weak: #1260b0;--ring: rgba(30, 144, 255, .5);--shadow: 0 10px 30px rgba(0,0,0,.3)}.theme-green{--accent: #1574cc;--accent-weak: #dbeafe;--ring: rgba(21, 116, 204, .25)}.theme-purple{--accent: #8b5cf6;--accent-weak: #ede9fe;--ring: rgba(139, 92, 246, .35)}.theme-orange{--accent: #f97316;--accent-weak: #fed7aa;--ring: rgba(249, 115, 22, .35)}.layout-compact{--sidebar-width: 250px;--spacing-xs: 2px;--spacing-sm: 4px;--spacing-md: 8px;--spacing-lg: 12px;--spacing-xl: 16px;--avatar-size: 28px;--avatar-size-sm: 24px;--avatar-size-lg: 36px;--avatar-size-xl: 56px;--font-size-base: 13px;--font-size-small: 11px;--font-size-tiny: 10px}.layout-large{--sidebar-width: 350px;--spacing-xs: 6px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 20px;--spacing-xl: 24px;--avatar-size: 36px;--avatar-size-sm: 32px;--avatar-size-lg: 48px;--avatar-size-xl: 72px;--font-size-base: 15px;--font-size-small: 13px;--font-size-tiny: 12px}.style-rounded{--radius: 24px}.style-rounded .chat-item,.style-rounded .news-item,.style-rounded .tab-btn,.style-rounded .nav-btn,.style-rounded .card{border-radius:16px}.style-rounded .search input,.style-rounded .line-input-container{border-radius:20px}.style-square{--radius: 4px}.style-square .chat-item,.style-square .news-item,.style-square .tab-btn,.style-square .nav-btn,.style-square .card,.style-square .search input,.style-square .line-input-container,.style-square .msg-bubble,.style-square .avatar,.style-square .badge{border-radius:4px}.font-serif{--font-family: Georgia, "Times New Roman", Times, serif, "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "HG Mincho E", "MS PMincho", "MS Mincho"}.font-mono{--font-family: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace}.accent-red{--accent: #ef4444;--accent-weak: #fecaca;--ring: rgba(239, 68, 68, .35)}.accent-pink{--accent: #ec4899;--accent-weak: #fbcfe8;--ring: rgba(236, 72, 153, .35)}.accent-indigo{--accent: #6366f1;--accent-weak: #c7d2fe;--ring: rgba(99, 102, 241, .35)}.accent-cyan{--accent: #06b6d4;--accent-weak: #a5f3fc;--ring: rgba(6, 182, 212, .35)}.high-contrast{--bg: #000000;--panel: #ffffff;--panel-2: #f0f0f0;--border: #000000;--muted: #666666;--text: #000000;--accent: #0066cc;--accent-weak: #e6f3ff;--ring: rgba(0, 102, 204, .5);--shadow: 0 2px 8px rgba(0,0,0,.5)}.high-contrast .panel{border:2px solid #000000}.high-contrast .chat-item:hover,.high-contrast .news-item:hover,.high-contrast .tab-btn:hover,.high-contrast .nav-btn:hover{background:#e6f3ff;border:2px solid #0066cc}.donation-appeal-section{display:flex!important;align-items:center!important;justify-content:space-between!important}#btn-donation-appeal:hover{background:var(--accent-weak)!important;border-color:var(--accent)!important;color:var(--accent)!important;transform:translateY(-1px)}.donation-text-area:hover{background:var(--accent-weak)!important;border-radius:6px;padding:4px;margin:-4px}.donation-edit-btn:hover{background:var(--accent-weak)!important;border-color:var(--accent)!important;color:var(--accent)!important}.dialog-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-backdrop.hidden{display:none}.dialog{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);width:min(90vw,500px);max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border);background:var(--panel-2)}.dialog-header h2{margin:0;font-size:18px;font-weight:700}.dialog-close{width:32px;height:32px;border:1px solid var(--border);background:var(--panel);border-radius:50%;cursor:pointer;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--muted)}.dialog-close:hover{background:var(--panel-2);color:var(--text)}.dialog-body{padding:var(--spacing-lg);overflow-y:auto;flex:1 1 auto}.dialog-field{margin-bottom:var(--spacing-lg)}.dialog-field label{display:block;margin-bottom:var(--spacing-sm);font-weight:600;font-size:var(--font-size-small);color:var(--muted)}.dialog-input,.dialog-select{width:100%;padding:var(--spacing-md);border:1px solid var(--border);border-radius:8px;background:var(--panel-2);font-size:var(--font-size-base);font-family:inherit;transition:border-color .2s,box-shadow .2s}.dialog-input:focus,.dialog-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.checkbox-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.checkbox-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid var(--border);border-radius:8px;background:var(--panel-2);cursor:pointer;transition:background-color .2s,border-color .2s;font-weight:400;font-size:var(--font-size-base)}.checkbox-item:hover{background:var(--accent-weak);border-color:var(--accent)}.checkbox-item input[type=checkbox]{margin:0;width:16px;height:16px;accent-color:var(--accent)}.dialog-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border);background:var(--panel-2)}.dialog-btn{padding:var(--spacing-md) var(--spacing-lg);border:1px solid var(--border);border-radius:8px;font-weight:600;cursor:pointer;transition:background-color .2s,border-color .2s,transform .1s;font-size:var(--font-size-base)}.dialog-btn:hover{transform:translateY(-1px)}.dialog-btn:active{transform:translateY(0)}.dialog-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.dialog-btn.primary:hover{background:#1e90ff;border-color:#1e90ff}.dialog-btn.secondary{background:var(--panel);color:var(--muted)}.dialog-btn.secondary:hover{background:var(--panel-2);color:var(--text);border-color:var(--accent)}.profile-image-section{display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-md);border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.profile-image-preview{flex:0 0 auto;width:80px;height:80px;border-radius:50%;overflow:hidden}.avatar-large{width:80px;height:80px;border-radius:50%;background:#e5e7eb;color:#374151;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px;overflow:hidden;position:relative}.avatar-large img{width:100%;height:100%;object-fit:cover;border-radius:50%}.profile-image-controls{display:flex;flex-direction:column;gap:var(--spacing-sm);flex:1 1 auto}.profile-image-controls .dialog-btn{margin:0;font-size:var(--font-size-small);padding:var(--spacing-sm) var(--spacing-md)}.settings-section{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border)}.settings-section:last-child{border-bottom:none;margin-bottom:0}.settings-section h3{margin:0 0 var(--spacing-lg) 0;font-size:16px;font-weight:600;color:var(--text-primary)}.settings-section .form-group{margin-bottom:var(--spacing-lg)}.settings-section .form-group:last-child{margin-bottom:0}.settings-section form .settings-action-btn{margin-top:var(--spacing-md)}.settings-section label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--text-secondary);font-size:14px}.settings-section input,.settings-section textarea{width:100%;padding:var(--spacing-md);border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--text-primary);font-size:14px;transition:border-color .2s,box-shadow .2s}.settings-section input:focus,.settings-section textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.settings-section input:read-only{background:var(--panel-2);color:var(--text-secondary)}.settings-section textarea{resize:vertical;min-height:100px}.settings-section .primary-btn{background:var(--accent);color:#fff;border:1px solid var(--accent);padding:var(--spacing-md) var(--spacing-lg);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s}.settings-section .primary-btn:hover{background:#1e90ff;border-color:#1e90ff}.settings-section .secondary-btn{background:var(--panel);color:var(--text-secondary);border:1px solid var(--border);padding:var(--spacing-md) var(--spacing-lg);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}.settings-section .secondary-btn:hover{background:var(--panel-2);color:var(--text-primary);border-color:var(--accent)}.danger-section{border-color:#ef4444}.danger-section h3{color:#ef4444}.warning-text{color:#f59e0b;font-size:14px;margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);border-radius:6px}.danger-btn{background:#ef4444;color:#fff;border:1px solid #ef4444;padding:var(--spacing-md) var(--spacing-lg);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s}.danger-btn:hover{background:#dc2626;border-color:#dc2626}.checkbox-label{display:flex!important;align-items:center;gap:var(--spacing-sm);cursor:pointer}.checkbox-label input[type=checkbox]{width:auto;margin:0}@media(max-width:960px){.dialog{width:95vw;margin:var(--spacing-sm)}.checkbox-group{grid-template-columns:1fr}.profile-image-section{flex-direction:column;text-align:center;gap:var(--spacing-md)}.profile-image-controls{width:100%}}.shadow-none{--shadow: none}.shadow-heavy{--shadow: 0 20px 50px rgba(0,0,0,.15)}.border-thick{--border: #d1d5db}.border-thick .panel,.border-thick .chat-item,.border-thick .card,.border-thick .search input{border-width:2px}@media(max-width:960px){.app{grid-template-columns:1fr;gap:var(--spacing-sm);padding:var(--spacing-sm)}.sidebar{position:fixed;top:0;left:0;height:100vh;width:var(--sidebar-mobile-width);max-width:100%;background:var(--panel);border-radius:0;border-right:1px solid var(--border);box-shadow:0 20px 60px #0000002e;transform:translate(-100%);transition:transform .25s ease;z-index:40}.sidebar.open{transform:translate(0)}.menu-btn{display:grid;place-items:center}.chat-header,.news-header{padding:10px var(--spacing-md)}.messages,.news-body{padding:var(--spacing-md)}.chat-item,.news-item{padding:var(--spacing-sm)}.msg-bubble{max-width:84%}.profile-header{height:160px}.profile-body{height:calc(100% - 160px)}.profile-top{grid-template-columns:var(--avatar-size-xl) 1fr}}@media(max-width:768px)and (min-width:421px){.app{padding:var(--spacing-sm)}.chat-header h3,.news-header h3{font-size:16px}.msg-content,.form-group label{font-size:13px}.form-group input,.form-group textarea,.form-group select{font-size:14px}.btn{padding:8px 14px;font-size:13px}.demo-role-switcher{top:15px!important;padding:10px 16px}.demo-label{font-size:12px}.demo-role-btn,.demo-logout-btn{font-size:12px;padding:5px 12px}}@media(max-width:420px){.composer{gap:6px;padding:var(--spacing-sm)}.avatar{width:var(--avatar-size-sm);height:var(--avatar-size-sm);font-size:var(--font-size-small)}}#chat-main,#news-main,#profile-main,.messages{width:100%;max-width:none}.chat,.composer,.chat-header{width:100%}.donation-item{border:1px solid var(--border);border-radius:8px;padding:var(--spacing-md);margin-bottom:var(--spacing-sm);background:var(--panel);transition:all .2s ease}.donation-item:hover{border-color:var(--accent);box-shadow:0 2px 8px #0000001a}.donation-item.replied{border-left:4px solid #1e90ff}.donation-item.unreplied{border-left:4px solid #f59e0b}.donation-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm)}.donation-info h4{margin:0;font-size:16px;font-weight:600}.donation-amount{font-size:18px;font-weight:700;color:var(--accent)}.donation-meta{display:flex;flex-direction:column;gap:var(--spacing-xs);align-items:flex-end}.donation-date{font-size:12px;color:var(--muted)}.donation-status{padding:2px 6px;border-radius:4px;font-size:11px;font-weight:600}.status-replied{background:#dbeafe;color:#065f46}.status-unreplied{background:#fef3c7;color:#92400e}.donation-message{color:var(--text);line-height:1.5;margin-bottom:var(--spacing-sm);padding:var(--spacing-sm);background:var(--panel-2);border-radius:6px}.donation-reply{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;font-size:14px}.donation-reply small{display:block;margin-top:var(--spacing-xs);color:var(--muted)}.donation-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.view-btn,.reply-btn{padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--text);font-size:12px;cursor:pointer;transition:all .2s ease}.view-btn:hover{background:var(--panel-2);border-color:var(--accent)}.reply-btn{background:var(--accent);color:#fff;border-color:var(--accent)}.reply-btn:hover{background:#1e90ff}.donation-detail-info h3{margin:0 0 var(--spacing-md) 0;color:var(--text)}.donation-message-detail{padding:var(--spacing-md);background:var(--panel-2);border-radius:8px;line-height:1.5;margin:var(--spacing-sm) 0}.existing-reply{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px}.reply-content{padding:var(--spacing-sm);background:#fff;border-radius:6px;margin:var(--spacing-sm) 0}.donations-filters{margin-bottom:var(--spacing-md)}.donations-filters .filter-label{display:block;margin-bottom:var(--spacing-sm);font-size:14px}.donations-filters input[type=checkbox]{margin-right:var(--spacing-sm)}.no-data{text-align:center;padding:var(--spacing-xl);color:var(--muted);font-style:italic}.line-chat-container{height:100%;display:flex;flex-direction:column;background:#fff}.line-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border);background:#fff}.line-header h2{margin:0;font-size:20px;font-weight:600;color:var(--text)}.line-chat-list{flex:1;overflow-y:auto;background:#fff}.line-chat-item{display:flex;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background-color .2s ease}.line-chat-item:hover{background:#f8f9fa}.line-chat-item:active{background:#e9ecef}.line-avatar{position:relative;margin-right:var(--spacing-md)}.line-avatar .avatar{width:50px;height:50px;font-size:18px}.unread-dot{position:absolute;top:-2px;right:-2px;width:12px;height:12px;background:#ff4757;border-radius:50%;border:2px solid white}.line-chat-info{flex:1;min-width:0}.line-chat-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.line-chat-name{font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.line-chat-time{font-size:12px;color:var(--muted);white-space:nowrap}.line-chat-bottom{display:flex;justify-content:space-between;align-items:center}.line-chat-preview{flex:1;font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:var(--spacing-sm)}.line-unread-count{background:#ff4757;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.demo-role-btn{padding:6px 14px;background:#fff;border:1px solid #1e90ff;color:#1e90ff;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s;font-weight:500}.demo-role-btn:hover{background:#1e90ff;color:#fff}.demo-role-btn.active{background:#1e90ff;color:#fff;font-weight:600}input[type=password]::-ms-reveal,input[type=password]::-ms-clear,input[type=text]::-ms-reveal,input[type=text]::-ms-clear{display:none!important}input[type=password]::-webkit-credentials-auto-fill-button,input[type=password]::-webkit-contacts-auto-fill-button,input[type=password]::-webkit-textfield-decoration-container,input[type=text]::-webkit-textfield-decoration-container{visibility:hidden!important;display:none!important;pointer-events:none!important;height:0!important;width:0!important;margin:0!important}.voter-layout{height:100vh;background:#f5f7fa;width:100%;margin:0;padding:0;overflow:hidden}.voter-layout .app{display:grid;grid-template-columns:350px 1fr;height:100vh;width:100%;margin:0;padding:0;overflow:hidden}.voter-layout .panel{background:#fff}.voter-layout .sidebar{border-right:1px solid #e1e8ed;overflow:hidden;display:flex;flex-direction:column;height:100vh}.voter-layout .main{padding:0;overflow-y:auto}.voter-layout .nav-btn{border-color:#e1e8ed!important}.voter-layout .nav-btn.active{background:linear-gradient(135deg,#1e90ff,#1574cc)!important;color:#fff!important;border-color:#1e90ff!important;box-shadow:0 4px 16px #1e90ff66!important}.voter-layout .nav-btn:hover{border-color:#1e90ff!important;box-shadow:0 4px 12px #1e90ff33!important}.voter-layout .unread-badge,.voter-layout .unread-count{background:#1e90ff!important}.voter-layout .chat-item.active{background:#dbeafe!important;border-color:#1e90ff!important;box-shadow:0 2px 8px #1e90ff33!important}.voter-layout .message-item.unread{background:#dbeafe!important;border-color:#1e90ff!important}.voter-layout .avatar,.voter-layout .clickable-avatar,.voter-layout .message-avatar{background:#e5e7eb!important;color:#374151!important}.voter-layout .avatar.has-image,.voter-layout .clickable-avatar.has-image,.voter-layout .message-avatar.has-image,.voter-layout .avatar:has(img),.voter-layout .clickable-avatar:has(img),.voter-layout .message-avatar:has(img){background:transparent!important}.voter-layout .admin-chat .avatar{background:#16a34a!important;color:#fff!important}.voter-layout .btn-primary{background:linear-gradient(135deg,#1e90ff,#1574cc)!important;box-shadow:0 4px 12px #1e90ff4d!important}.voter-layout .btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #1e90ff66!important}.voter-layout .send-btn{background:linear-gradient(135deg,#1e90ff,#1574cc)!important;box-shadow:0 2px 8px #1e90ff4d!important}.voter-layout .send-btn:hover{box-shadow:0 4px 12px #1e90ff66!important}.voter-layout .message.own .message-bubble{background:linear-gradient(135deg,#1e90ff,#1574cc)!important}.voter-layout .section.active{overflow-y:auto!important;flex:1 1 auto;min-height:0}.voter-layout .search-form,.voter-layout .search-field{overflow:visible!important}.voter-layout .search-input,.voter-layout .search-select{padding:10px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff}.voter-layout .chat-input:focus,.voter-layout .search-input:focus,.voter-layout .search-select:focus{border-color:#1e90ff!important;box-shadow:0 0 0 3px #1e90ff33}.voter-layout .chat-item:hover{border-color:#1e90ff!important}.voter-layout .message-item:hover,.voter-layout .follower-item:hover,.voter-layout .donation-item:hover,.voter-layout .post-item:hover{border-color:#1e90ff!important;box-shadow:0 4px 12px #1e90ff26!important}.voter-layout .stat-card:hover{border-color:#1e90ff!important}.voter-layout .notice-item:hover{border-color:#1e90ff!important;box-shadow:0 2px 8px #1e90ff1a!important}.voter-layout .section.active h3{background:#dbeafe!important;color:#1e90ff!important}.voter-layout .btn-outline{color:#1e90ff!important;border-color:#1e90ff!important}.voter-layout .btn-outline:hover{background:#1e90ff!important;color:#fff!important;box-shadow:0 4px 12px #1e90ff33!important}.voter-layout .btn-secondary{color:#1e90ff!important;border-color:#1e90ff!important}.voter-layout .btn-secondary:hover{background:#1e90ff!important;color:#fff!important;box-shadow:0 4px 12px #1e90ff4d!important}.voter-layout .search-button:not(.secondary){background:#1e90ff!important}.voter-layout .search-button:not(.secondary):hover{background:#1574cc!important}.voter-layout .primary-btn{background:#1e90ff!important}.voter-layout .primary-btn:hover{background:#1574cc!important}.voter-layout .toggle-blocked-btn{background:linear-gradient(135deg,#1e90ff,#1574cc)!important;box-shadow:0 2px 8px #1e90ff4d!important}.voter-layout .toggle-blocked-btn:hover{box-shadow:0 4px 12px #1e90ff66!important}.voter-layout .date-search-btn.primary{background:#1e90ff!important}.voter-layout .date-search-btn.primary:hover{background:#1574cc!important}.voter-layout .create-new-btn{background:linear-gradient(135deg,#1e90ff,#1574cc)!important;box-shadow:0 2px 8px #1e90ff4d!important}.voter-layout .create-new-btn:hover{box-shadow:0 4px 12px #1e90ff66!important}.voter-layout .role-switch-btn{border-color:#1e90ff!important;color:#1e90ff!important}.voter-layout .role-switch-btn:hover{background:#1e90ff!important}.voter-layout .edit-profile-btn:hover{background:#dbeafe!important;color:#1e90ff!important;border-color:#1e90ff!important}.voter-layout .setting-quick-card:hover{border-color:#1e90ff!important;background:linear-gradient(135deg,#1e90ff0d,#1574cc0d)!important;box-shadow:0 4px 12px #1e90ff26!important}.voter-layout .stat-card.clickable:hover{box-shadow:0 4px 16px #1e90ff33!important;border-color:#1e90ff!important}.voter-layout .notice-badge{font-size:13px!important;font-weight:700!important;padding:4px 0!important;flex-shrink:0!important;text-align:left!important;min-width:50px!important}.voter-layout .notice-badge-important{color:#dc2626!important}.voter-layout .notice-badge-normal{color:#1e90ff!important}.voter-layout .mobile-dashboard{display:none!important}.voter-layout input[type=password]::-ms-reveal,.voter-layout input[type=password]::-ms-clear{display:none}.voter-layout input[type=password]::-webkit-credentials-auto-fill-button,.voter-layout input[type=password]::-webkit-textfield-decoration-container{visibility:hidden;pointer-events:none}.voter-mobile-layout{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100%;max-width:100vw;background:linear-gradient(180deg,#f0f5ff,#fff);overflow:hidden;overflow-x:hidden;box-sizing:border-box;position:relative;contain:paint}.mobile-main{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:80px;background:linear-gradient(180deg,#f0f5ff,#fff);max-width:100%;box-sizing:border-box;contain:paint}.mobile-search-form{max-width:100%;overflow:hidden;box-sizing:border-box;contain:paint}.mobile-search-form form{max-width:100%;overflow:hidden}.mobile-search-form select,.mobile-search-form input{max-width:100%;width:100%;box-sizing:border-box}.mobile-content{max-width:100%;overflow-x:hidden;contain:paint}.mobile-main:has(.mobile-chat-detail){padding-bottom:0;overflow:hidden}.mobile-content{min-height:calc(100% - 80px)}.mobile-content.with-header{padding-top:0}.mobile-back-header{position:sticky;top:0;background:#fff;padding:12px 16px;border-bottom:1px solid #e1e8ed;z-index:100}.back-btn{display:flex;align-items:center;gap:8px;background:none;border:none;color:#1e90ff;font-size:16px;font-weight:600;cursor:pointer;padding:8px 0}.back-btn svg{color:#1e90ff}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-evenly;align-items:center;background:#fff;border-top:1px solid #e1e8ed;padding:8px 4px;padding-bottom:max(8px,env(safe-area-inset-bottom));box-shadow:0 -2px 10px #0000001a;z-index:1000}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;color:#6b7280;font-size:10px;padding:6px 2px;cursor:pointer;transition:all .2s;border-radius:8px;flex:1;min-width:0;white-space:nowrap}.nav-item svg{width:24px;height:24px}.nav-item.active{color:#1e90ff}.nav-item.active svg{stroke:#1e90ff}.nav-item:active{background:#f0f5ff}.mobile-list-container{padding:16px}.mobile-list-title{font-size:24px;font-weight:700;color:#1f2937;margin:0 0 16px;padding:8px 0}.mobile-list{display:flex;flex-direction:column;gap:12px}.mobile-list-item{display:flex;align-items:center;gap:12px;background:#fff;padding:16px;border-radius:12px;box-shadow:0 2px 8px #0000000f;cursor:pointer;transition:all .2s}.mobile-list-item:active{transform:scale(.98);background:#f9fafb}.mobile-list-item.active{border-left:4px solid #1e90ff;background:#f0f5ff}.item-avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#1e90ff,#1574cc);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;flex-shrink:0;overflow:hidden}.item-avatar img{width:100%;height:100%;object-fit:cover}.item-avatar:has(img){background:transparent!important}.item-content{flex:1;min-width:0}.item-content.full{padding-left:0}.item-name{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-preview{font-size:14px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-date{font-size:12px;color:#9ca3af;margin-top:4px}.item-badge{min-width:22px;height:22px;padding:0 6px;background:#1e90ff;color:#fff;font-size:12px;font-weight:600;border-radius:11px;display:flex;align-items:center;justify-content:center}.mobile-loading{text-align:center;padding:40px;color:#6b7280}.mobile-empty{text-align:center;padding:60px 20px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px}.mobile-empty p{font-size:16px;margin:0}.voter-mobile-layout .notices-list-container{padding:0}.voter-mobile-layout .notices-list-header{padding:16px}.voter-mobile-layout .notices-list-header h2{margin:0;font-size:20px;font-weight:700;color:#1f2937}.voter-mobile-layout .dashboard-quick-actions,.voter-mobile-layout .dashboard-quick-nav{display:none!important}.voter-mobile-layout .chat-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-bottom:1px solid #e1e8ed;position:sticky;top:0;z-index:50}.voter-mobile-layout .chat-header .menu-btn{display:none}.voter-mobile-layout .chat-title{font-size:16px;font-weight:600;color:#1f2937}.voter-mobile-layout .messages{flex:1;overflow-y:auto;background:#f9fafb;padding:16px;display:flex;flex-direction:column;min-height:0}.voter-mobile-layout .messages-content{display:flex;flex-direction:column;gap:12px}.voter-mobile-layout .day-sep{text-align:center;font-size:12px;color:#9ca3af;margin:8px 0}.voter-mobile-layout .msg-row{display:flex!important;align-items:flex-end!important;gap:8px!important;justify-content:flex-start!important;flex-direction:row!important}.voter-mobile-layout .msg-row.me{justify-content:flex-end!important;flex-direction:row!important}.voter-mobile-layout .msg-content{display:flex!important;align-items:flex-end!important;gap:8px!important;max-width:80%!important;flex-direction:row!important}.voter-mobile-layout .msg-row.me .msg-content{flex-direction:row-reverse!important}.voter-mobile-layout .msg-row:not(.me) .msg-bubble-container{align-items:flex-start!important}.voter-mobile-layout .msg-avatar{flex-shrink:0}.voter-mobile-layout .msg-avatar .avatar,.voter-mobile-layout .msg-avatar .clickable-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#1e90ff,#1574cc);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;overflow:hidden}.voter-mobile-layout .msg-avatar .avatar.has-image,.voter-mobile-layout .msg-avatar .clickable-avatar.has-image,.voter-mobile-layout .msg-avatar .avatar:has(img),.voter-mobile-layout .msg-avatar .clickable-avatar:has(img){background:transparent!important}.voter-mobile-layout .msg-bubble-container{display:flex;flex-direction:column;gap:4px}.voter-mobile-layout .msg-row.me .msg-bubble-container{align-items:flex-end}.voter-mobile-layout .msg-bubble{background:#fff;padding:10px 14px;border-radius:18px;border:1px solid #e5e7eb;max-width:100%}.voter-mobile-layout .msg-row.me .msg-bubble{background:linear-gradient(135deg,#1e90ff,#1574cc);color:#fff;border:none}.voter-mobile-layout .msg-text{font-size:14px;line-height:1.5;word-break:break-word;white-space:pre-wrap}.voter-mobile-layout .msg-meta{font-size:11px;color:#9ca3af}.voter-mobile-layout .composer{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff;border-top:1px solid #e1e8ed;position:sticky;bottom:0}.voter-mobile-layout .line-plus-btn{width:36px;height:36px;border-radius:50%;border:none;background:#f3f4f6;color:#6b7280;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.voter-mobile-layout .line-input-container{flex:1;min-width:0}.voter-mobile-layout .line-input-container textarea{width:100%;padding:10px 14px;border:1px solid #e5e7eb;border-radius:20px;font-size:14px;resize:none;outline:none;font-family:inherit;line-height:1.4}.voter-mobile-layout .line-input-container textarea:focus{border-color:#1e90ff}.voter-mobile-layout .line-send-btn{width:36px;height:36px;border-radius:50%;border:none;background:linear-gradient(135deg,#1e90ff,#1574cc);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.voter-mobile-layout .line-send-btn:disabled{background:#d1d5db;cursor:not-allowed}.voter-mobile-layout .mobile-chat-detail{display:flex;flex-direction:column;height:100vh;height:100dvh;padding-bottom:0!important;overflow:hidden}.voter-mobile-layout .mobile-chat-detail .mobile-back-header{flex-shrink:0;position:relative}.voter-mobile-layout .mobile-chat-container{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.voter-mobile-layout .mobile-chat-container .chat-header{flex-shrink:0}.voter-mobile-layout .mobile-chat-container .messages{flex:1;min-height:0;overflow-y:auto}.voter-mobile-layout .mobile-chat-container .composer{flex-shrink:0;position:relative}.voter-mobile-layout .mobile-content.with-header{display:flex;flex-direction:column;min-height:100%}@media(min-width:768px)and (max-width:1024px){.voter-mobile-layout{max-width:100vw!important;overflow-x:hidden!important}.mobile-main,.mobile-content{max-width:100%!important;overflow-x:hidden!important}.mobile-search-form{max-width:100%!important;overflow:hidden!important;box-sizing:border-box!important}.mobile-search-form select,.mobile-search-form input{max-width:100%!important;box-sizing:border-box!important}.mobile-bottom-nav{padding:12px 20px}.nav-item{font-size:12px;padding:10px 24px}.nav-item svg{width:28px;height:28px}.mobile-list-container{padding:24px 32px;max-width:100%;margin:0}.mobile-list-title{font-size:28px}.mobile-list-item{padding:20px}.item-avatar{width:56px;height:56px;font-size:20px}.item-name{font-size:18px}.item-preview{font-size:15px}.voter-mobile-layout .search-results-list{padding:24px 32px!important}.voter-mobile-layout .search-results-header{padding:20px 32px!important}}@media(min-width:768px)and (orientation:landscape){.mobile-list-container{max-width:100%;padding:24px 40px}.mobile-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.voter-mobile-layout .search-results-list{padding:24px 40px!important}}.voter-mobile-layout .search-results-container{padding:0!important}.voter-mobile-layout .search-results-header{padding:12px 16px!important}.voter-mobile-layout .search-results-header h2{font-size:16px!important}.voter-mobile-layout .search-results-header p{font-size:12px!important}.voter-mobile-layout .search-results-list{padding:12px!important;gap:8px!important}.voter-mobile-layout .search-result-card{padding:12px!important;gap:10px!important;border-radius:12px!important}.voter-mobile-layout .search-result-avatar{width:40px!important;height:40px!important;min-width:40px!important;font-size:14px!important;border-radius:10px!important;box-shadow:0 2px 8px #1e90ff26!important}.voter-mobile-layout .search-result-info{flex:1!important;min-width:0!important}.voter-mobile-layout .search-result-name-row{gap:6px!important;margin-bottom:2px!important;flex-wrap:nowrap!important}.voter-mobile-layout .search-result-name{font-size:14px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.voter-mobile-layout .search-result-badges{display:flex!important;flex-wrap:nowrap!important;gap:4px!important;margin-bottom:4px!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;-ms-overflow-style:none!important}.voter-mobile-layout .search-result-badges::-webkit-scrollbar{display:none!important}.voter-mobile-layout .search-result-badge{padding:2px 6px!important;font-size:10px!important;white-space:nowrap!important;flex-shrink:0!important;border-radius:4px!important}.voter-mobile-layout .search-result-location{font-size:11px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.voter-mobile-layout .search-result-location svg{width:12px!important;height:12px!important;flex-shrink:0!important}.voter-mobile-layout .search-result-follow-btn{padding:6px 10px!important;font-size:11px!important;white-space:nowrap!important;flex-shrink:0!important;border-radius:8px!important;gap:4px!important}.voter-mobile-layout .search-result-follow-btn svg{width:12px!important;height:12px!important}.voter-mobile-layout .search-result-card>svg:last-child{display:none!important}.voter-mobile-layout input[type=password]::-ms-reveal,.voter-mobile-layout input[type=password]::-ms-clear{display:none}.voter-mobile-layout input[type=password]::-webkit-credentials-auto-fill-button,.voter-mobile-layout input[type=password]::-webkit-textfield-decoration-container{visibility:hidden;pointer-events:none}.voter-mobile-layout .settings-main{height:auto!important}.voter-mobile-layout .settings-body{overflow-y:visible!important;padding-bottom:32px!important}.voter-mobile-layout .settings-section:last-child{margin-bottom:4px!important}.politician-layout{height:100vh;background:#f5f7fa;width:100%;max-width:100vw;margin:0;padding:0;overflow:hidden;overflow-x:hidden;box-sizing:border-box}.politician-layout .app{display:grid;grid-template-columns:350px 1fr;height:100vh;width:100%;max-width:100vw;margin:0;padding:0;overflow:hidden;overflow-x:hidden;box-sizing:border-box}.panel{background:#fff}.sidebar{border-right:1px solid #e1e8ed;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;height:100vh;max-width:100%}.mebar{padding:20px;border-bottom:1px solid #e1e8ed;flex-shrink:0}.me{display:flex;align-items:center;gap:12px}.role-switch-section{display:flex;flex-direction:column;gap:8px}.role-switch-btn-politician{padding:8px 12px;background:#fff;border:1px solid #3498db;color:#3498db;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s;font-weight:500;text-align:left}.role-switch-btn-politician:hover{background:#3498db;color:#fff}.logout-btn-politician{padding:8px 12px;background:#e74c3c;border:none;color:#fff;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s;font-weight:500}.logout-btn-politician:hover{background:#c0392b}.clickable-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#3498db,#2980b9);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:18px;cursor:pointer;flex-shrink:0}.me-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.me-name{font-size:15px;font-weight:600;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-meta{font-size:13px;color:#7f8c8d}.side-content{flex:1;display:flex;flex-direction:column;overflow:hidden;max-width:100%;box-sizing:border-box}.section{margin-bottom:20px;overflow:hidden;max-width:100%;box-sizing:border-box}.section h3{font-size:16px;font-weight:600;color:#2c3e50;margin:0 0 12px;padding:10px;border-radius:6px;transition:background .2s}.section.active h3{background:#e8f4f8;color:#3498db}.section h3:hover{background:#f8f9fa}.search-form{background:#f8f9fa;padding:15px;border-radius:6px;margin-top:10px;overflow:hidden;max-width:100%;box-sizing:border-box}.search-field{margin-bottom:8px;max-width:100%;overflow:hidden}.search-label{display:block;font-size:12px;font-weight:500;color:#2c3e50;margin-bottom:4px}.search-input,.search-select{width:100%;max-width:100%;padding:6px 10px;border:1px solid #dfe6e9;border-radius:4px;font-size:13px;transition:border-color .2s;box-sizing:border-box}.politician-layout .search-buttons{display:flex;gap:6px;margin-top:8px}.politician-layout .search-button{flex:1;padding:6px 12px;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.politician-layout .search-button:not(.secondary){background:#3498db;color:#fff}.politician-layout .search-button:not(.secondary):hover{background:#2980b9}.politician-layout .search-button.secondary{background:#95a5a6;color:#fff}.politician-layout .search-button.secondary:hover{background:#7f8c8d}.donations-search{padding:15px;background:#f8f9fa;border-radius:8px}.search-fields{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.amount-range,.date-range{display:flex;align-items:center;gap:8px}.amount-range input,.date-range input{flex:1;padding:8px 12px;border:1px solid #dfe6e9;border-radius:4px;font-size:14px}.search-actions{display:flex;gap:8px}.politician-layout .primary-btn,.politician-layout .secondary-btn{flex:1;padding:8px 16px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}.politician-layout .primary-btn{background:#3498db;color:#fff}.politician-layout .primary-btn:hover{background:#2980b9}.politician-layout .secondary-btn{background:#95a5a6;color:#fff}.politician-layout .secondary-btn:hover{background:#7f8c8d}.main{padding:0;overflow-y:auto}.politician-main{background:#fff;border-radius:0;padding:16px;box-shadow:none}.politician-main h2{margin:0 0 20px;font-size:24px;font-weight:600;color:#2c3e50}.demo-role-switcher{position:fixed!important;top:10px!important;left:50%!important;transform:translate(-50%)!important;background:#fff;border:2px solid #e74c3c;border-radius:12px;padding:12px 20px;display:flex;align-items:center;gap:10px;box-shadow:0 4px 12px #e74c3c4d;z-index:10000!important;min-width:fit-content;white-space:nowrap}.demo-label{font-size:13px;font-weight:600;color:#e74c3c;margin-right:5px}.demo-role-btn{padding:6px 14px;background:#fff;border:1px solid #3498db;color:#3498db;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s;font-weight:500}.demo-role-btn:hover{background:#3498db;color:#fff}.demo-role-btn.active{background:#3498db;color:#fff;font-weight:600}.demo-logout-btn{padding:6px 14px;background:#e74c3c;border:none;color:#fff;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s;font-weight:500;margin-left:5px}.demo-logout-btn:hover{background:#c0392b}.sidebar-nav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:15px;border-top:1px solid #e1e8ed;margin-top:auto;flex-shrink:0}.politician-layout .nav-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;background:#fff;border:2px solid #e1e8ed;border-radius:10px;cursor:pointer;transition:all .3s;font-size:11px;font-weight:600;color:#2c3e50}.politician-layout .nav-btn:hover{background:#f8f9fa;border-color:#3498db;transform:translateY(-2px);box-shadow:0 4px 12px #3498db33}.politician-layout .nav-btn.active{background:linear-gradient(135deg,#3498db,#2980b9)!important;color:#fff!important;border-color:#3498db!important;box-shadow:0 4px 16px #3b82f666!important}.politician-layout .nav-btn svg{width:22px;height:22px}.nav-badge{position:absolute;top:2px;right:2px;display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;line-height:1}.nav-badge:empty{display:none}.politician-content{padding:0;min-height:100vh}.content-section{background:#fff;border-radius:0;padding:16px;box-shadow:none}.content-section h2{margin:0 0 24px;font-size:24px;font-weight:700;color:#2c3e50}.section-description{color:#7f8c8d;font-size:15px}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.stat-card{background:#fff;border:1px solid #e1e8ed;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px;transition:all .3s;box-shadow:0 2px 8px #4f76b814;align-items:center;text-align:center}.stat-card:hover{box-shadow:0 4px 16px #4f76b826;transform:translateY(-2px);border-color:#3498db}.stat-card.small{padding:20px;background:linear-gradient(135deg,#f8f9fa,#fff);border:1px solid #e1e8ed}.stat-card.small .stat-label{color:#7f8c8d}.stat-card.small .stat-value{color:#3498db;font-size:28px}.stat-icon{font-size:40px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));text-align:center;width:100%}.stat-content{flex:1}.stat-value{font-size:36px;font-weight:700;color:#2c3e50;margin-bottom:8px;text-align:center;width:100%}.stat-label{font-size:14px;color:#7f8c8d;font-weight:500;text-align:center;width:100%}.followers-list{display:flex;flex-direction:column;gap:12px}.follower-item{display:flex;align-items:center;gap:16px;padding:18px;background:#fff;border:1px solid #e1e8ed;border-radius:12px;transition:all .3s}.follower-item:hover{border-color:#3498db;box-shadow:0 4px 12px #3498db26;transform:translate(4px)}.avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#3498db,#2980b9);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:16px}.follower-info{flex:1}.follower-name{font-size:15px;font-weight:600;color:#2c3e50;margin-bottom:4px}.follower-meta{font-size:13px;color:#7f8c8d}.politician-layout .btn-secondary{padding:10px 18px;background:#fff;color:#3498db;border:2px solid #3498db;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s}.politician-layout .btn-secondary:hover{background:#3498db;color:#fff;box-shadow:0 4px 12px #3498db4d;transform:translateY(-2px)}.posts-actions{margin-bottom:20px}.politician-layout .btn-primary{padding:12px 24px;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #3498db4d}.politician-layout .btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #3498db66;transform:translateY(-2px)}.politician-layout .btn-primary:disabled{opacity:.5;cursor:not-allowed}.posts-list{display:flex;flex-direction:column;gap:16px}.post-item{padding:24px;background:#fff;border-radius:12px;border:1px solid #e1e8ed;transition:all .3s}.post-item:hover{border-color:#3498db;box-shadow:0 4px 12px #3498db26}.post-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.post-header h3{font-size:16px;font-weight:600;color:#2c3e50;margin:0}.post-status{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.post-status.published{background:#d4edda;color:#155724}.post-meta{font-size:13px;color:#7f8c8d;margin-bottom:12px}.post-actions{display:flex;gap:8px}.politician-layout .btn-outline{padding:8px 16px;background:#fff;color:#3498db;border:2px solid #3498db;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s}.politician-layout .btn-outline:hover{background:#3498db;color:#fff;box-shadow:0 4px 12px #3498db33}.donations-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.donations-list{display:flex;flex-direction:column;gap:12px}.donation-item{display:flex;align-items:center;gap:16px;padding:18px;background:#fff;border-radius:12px;border:1px solid #e1e8ed;transition:all .3s}.donation-item:hover{border-color:#3498db;box-shadow:0 4px 12px #3498db26;transform:translate(4px)}.donation-info{flex:1}.donation-name{font-size:15px;font-weight:600;color:#2c3e50;margin-bottom:4px}.donation-date{font-size:13px;color:#7f8c8d}.donation-amount{font-size:20px;font-weight:700;color:#27ae60;margin-right:16px}.messages-list{display:flex;flex-direction:column;gap:12px}.message-item{display:flex;align-items:center;gap:16px;padding:18px;background:#fff;border:1px solid #e1e8ed;border-radius:12px;transition:all .3s;cursor:pointer;position:relative}.message-item.unread{background:#dbeafe;border-color:#3498db}.message-item:hover{border-color:#3498db;box-shadow:0 4px 12px #3498db26;transform:translate(4px)}.message-info{flex:1}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.message-name{font-size:15px;font-weight:600;color:#2c3e50}.message-time{font-size:12px;color:#7f8c8d}.message-preview{font-size:14px;color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread-badge{width:10px;height:10px;background:#3498db;border-radius:50%;position:absolute;top:50%;right:18px;transform:translateY(-50%)}.search-panel{background:#f8f9fa;padding:20px;border-radius:12px;margin-bottom:20px}.search-fields-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.search-panel .search-input,.search-panel .search-select{padding:10px 16px;border:1px solid #dfe6e9;border-radius:8px;font-size:14px;transition:border-color .2s;flex:1;min-width:200px}.search-input.short{flex:0 1 150px;min-width:150px}.search-input:focus,.search-select:focus{outline:none;border-color:#3498db}.followers-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.requests-list{display:flex;flex-direction:column;gap:16px}.post-status.draft{background:#fef3c7;color:#92400e}.side-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-list-header{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;border-bottom:1px solid #e1e8ed;flex-shrink:0}.chat-list{display:flex;flex-direction:column;gap:8px;padding:10px;overflow-y:auto;flex:1}.chat-item{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border:1px solid #e1e8ed;border-radius:10px;cursor:pointer;transition:all .2s;position:relative}.chat-item:hover{background:#f8f9fa;border-color:#3498db}.chat-item.active{background:#dbeafe;border-color:#3498db;box-shadow:0 2px 8px #3498db33}.chat-item.admin-chat{background:linear-gradient(135deg,#fef3c7,#fef9e7);border-color:#f59e0b}.chat-item.admin-chat.active{background:linear-gradient(135deg,#fde68a,#fef3c7);border-color:#f59e0b}.chat-info{flex:1;min-width:0}.chat-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.chat-name{font-size:14px;font-weight:600;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-time{font-size:11px;color:#7f8c8d;flex-shrink:0}.chat-preview{font-size:13px;color:#7f8c8d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread-count{background:#3498db;color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px;min-width:20px;text-align:center}.chat-main{display:flex;flex-direction:column;height:calc(100vh - 60px);background:#fff;border-radius:12px;overflow:hidden}.chat-header{padding:20px;border-bottom:1px solid #e1e8ed;background:#fff}.chat-partner-info{display:flex;align-items:center;gap:12px}.avatar.large{width:50px;height:50px;font-size:18px}.avatar.has-image,.clickable-avatar.has-image,.chat-avatar.has-image,.politician-layout .avatar.has-image,.politician-layout .clickable-avatar.has-image,.politician-layout .chat-avatar.has-image,.avatar.clickable-avatar.has-image,.avatar.clickable-avatar.chat-avatar.has-image,.avatar:has(img),.clickable-avatar:has(img),.chat-avatar:has(img){background:transparent!important}.chat-partner-name{font-size:18px;font-weight:600;color:#2c3e50}.admin-badge{display:inline-block;background:#f59e0b;color:#fff;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;margin-top:4px}.chat-messages{flex:1;padding:20px;overflow-y:auto;background:#f8f9fa;display:flex;flex-direction:column;gap:16px}.message{display:flex;gap:12px;align-items:flex-end}.message.own{flex-direction:row-reverse}.message-avatar{width:36px;height:36px;background:linear-gradient(135deg,#3498db,#2980b9);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0}.message-bubble{max-width:60%;padding:12px 16px;border-radius:16px;background:#fff;box-shadow:0 1px 3px #0000001a}.message.own .message-bubble{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff}.message-text{font-size:14px;line-height:1.5;word-wrap:break-word}.message-time{font-size:11px;color:#7f8c8d;margin-top:6px}.message.own .message-time{color:#fffc}.chat-input-area{padding:16px 20px;border-top:1px solid #e1e8ed;background:#fff}.chat-input-container{width:100%;max-width:100%}.chat-input{flex:1;padding:12px 16px;border:1px solid #e1e8ed;border-radius:24px;font-size:14px;outline:none;transition:border-color .2s}.chat-input:focus{border-color:#3498db}.send-btn{width:44px;height:44px;background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 8px #3498db4d}.send-btn:hover{box-shadow:0 4px 12px #3498db66;transform:translateY(-2px)}.no-chat-selected{display:flex;align-items:center;justify-content:center;height:100%;color:#7f8c8d;font-size:16px}.chat-list-header{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid #e1e8ed;flex-shrink:0}.chat-list-title{font-size:16px;font-weight:600;color:#2c3e50;margin:0}.politician-layout .toggle-blocked-btn{padding:6px 14px;font-size:13px;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;border-radius:20px;cursor:pointer;font-weight:500;box-shadow:0 2px 8px #3498db4d;transition:all .3s ease;display:flex;align-items:center;gap:6px}.politician-layout .toggle-blocked-btn:hover{box-shadow:0 4px 12px #3498db66;transform:translateY(-1px)}.date-search-panel{padding:15px;background:#f8f9fa;border-radius:8px;overflow-y:auto}.date-search-header{margin-bottom:15px}.date-search-title{font-size:16px;font-weight:600;color:#2c3e50;margin:0}.date-search-form{display:flex;flex-direction:column;gap:12px}.date-input-group{display:flex;flex-direction:column;gap:6px}.date-input-group label{font-size:13px;font-weight:500;color:#2c3e50}.date-input-group input{padding:8px 12px;border:1px solid #dfe6e9;border-radius:4px;font-size:14px}.date-search-buttons{display:flex;gap:8px;margin-top:8px}.politician-layout .date-search-btn{flex:1;padding:8px 16px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.politician-layout .date-search-btn:not(.primary){background:#95a5a6;color:#fff}.politician-layout .date-search-btn:not(.primary):hover{background:#7f8c8d}.politician-layout .date-search-btn.primary{background:#3498db;color:#fff}.politician-layout .date-search-btn.primary:hover{background:#2980b9}.posts-search-panel,.requests-search-panel,.donations-search{padding:15px;background:#f8f9fa;border-radius:8px;overflow-y:auto}.posts-search-panel h3,.requests-search-panel h3,.donations-search h3{font-size:16px;font-weight:600;color:#2c3e50;margin:0 0 15px}.politician-layout .create-new-btn{width:100%;margin-top:15px;padding:12px 20px;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 2px 8px #3498db4d}.politician-layout .create-new-btn:hover{box-shadow:0 4px 12px #3498db66;transform:translateY(-2px)}.politician-layout .create-new-btn:active{transform:translateY(0)}.search-results-info{margin-top:12px;padding:8px 12px;background:#fff;border-radius:4px;font-size:13px;color:#7f8c8d;text-align:center}.donations-filters{display:flex;flex-direction:column;gap:8px;margin:12px 0}.filter-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#2c3e50;cursor:pointer}.filter-label input[type=checkbox]{cursor:pointer}.member-dashboard{width:100%}.member-dashboard h2{font-size:28px;font-weight:700;color:#2c3e50;margin-bottom:20px;text-align:center}.politician-layout .dashboard-welcome{background:#fff;color:#2c3e50;padding:24px;border-radius:12px;margin-bottom:30px;border:1px solid #e1e8ed;box-shadow:0 2px 8px #0000000d;text-align:center}.politician-layout .dashboard-welcome p{font-size:20px;font-weight:600;margin:0 0 8px;color:#2c3e50}.politician-layout .dashboard-welcome small{font-size:14px;color:#7f8c8d}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.stat-card.clickable{cursor:pointer;transition:all .3s ease}.stat-card.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 16px #4f76b833;border-color:#3498db}.stat-info h3{font-size:14px;font-weight:600;color:#7f8c8d;margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.stat-number{font-size:32px;font-weight:700;color:#2c3e50;margin-bottom:4px}.stat-info small{font-size:13px;color:#95a5a6}.system-notices{margin-bottom:30px}.system-notices h3{font-size:18px;font-weight:600;color:#2c3e50;margin-bottom:16px;text-align:center}.notices-container{display:flex;flex-direction:column;gap:12px;border:2px solid #e1e8ed;border-radius:12px;padding:16px;background:#f9fafb;max-height:400px;overflow-y:auto}.notice-item{display:flex;gap:16px;padding:20px;background:#fff;border:1px solid #e1e8ed;border-radius:8px;transition:all .2s}.notice-item:hover{border-color:#3498db;box-shadow:0 2px 8px #3498db1a}.notice-badge{font-size:13px;font-weight:700;padding:4px 0;flex-shrink:0;text-align:left;min-width:50px}.notice-badge-important{color:#dc2626}.notice-badge-normal{color:#2563eb}.notice-content{flex:1}.notice-title{font-size:16px;font-weight:600;color:#2c3e50;margin-bottom:6px}.notice-text{font-size:14px;color:#555;line-height:1.6;margin-bottom:8px}.notice-date{font-size:12px;color:#95a5a6}.dashboard-settings h3{font-size:18px;font-weight:600;color:#2c3e50;margin-bottom:16px;text-align:center}.settings-quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.setting-quick-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:#fff;border:2px solid #e1e8ed;border-radius:12px;cursor:pointer;transition:all .3s ease;text-align:center}.setting-quick-card:hover{border-color:#3498db;background:linear-gradient(135deg,#4f76b80d,#3d5a8c0d);transform:translateY(-2px);box-shadow:0 4px 12px #4f76b826}.politician-layout .setting-quick-icon{font-size:36px;margin-bottom:12px;text-align:center;width:100%}.setting-quick-title{font-size:14px;font-weight:600;color:#2c3e50;text-align:center;width:100%}.politician-layout .edit-profile-btn{width:32px;height:32px;border:1px solid #e1e8ed;background:#fff;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#7f8c8d;transition:background-color .2s,color .2s,border-color .2s}.politician-layout .edit-profile-btn:hover{background:#dbeafe;color:#3498db;border-color:#3498db}@media(min-width:768px)and (max-width:1024px){.politician-layout .app{display:flex!important;flex-direction:column!important;grid-template-columns:none!important}.politician-layout .app .sidebar,.politician-layout .panel.sidebar{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100vh!important;max-width:100vw!important;border-right:none!important;z-index:1!important;overflow-x:hidden!important}.politician-layout .main-panel{display:none!important}.politician-layout .side-content{padding:24px 32px 100px!important;max-width:100%!important;overflow-x:hidden!important;box-sizing:border-box!important}.politician-layout .section{max-width:100%!important;overflow-x:hidden!important}.politician-layout .search-form{max-width:100%!important;overflow:hidden!important;box-sizing:border-box!important}.politician-layout .search-field{max-width:100%!important}.politician-layout .search-input,.politician-layout .search-select{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.politician-layout .chat-list{padding:16px 32px!important}.politician-layout .chat-item{padding:20px!important}.politician-layout .dashboard-stats{padding:0!important}.politician-layout .stat-card{padding:28px!important}.politician-layout .stat-value{font-size:40px!important}.politician-layout .stat-label{font-size:16px!important}.politician-layout .section h3{font-size:22px!important;padding:16px!important}.politician-layout .search-form,.politician-layout .date-search-panel,.politician-layout .posts-search-panel,.politician-layout .requests-search-panel,.politician-layout .donations-search{padding:20px!important}.politician-layout .sidebar-nav-grid{position:fixed!important;bottom:0!important;left:0!important;right:0!important;background:#fff!important;border-top:2px solid #e1e8ed!important;box-shadow:0 -4px 12px #0000001a!important;padding:12px 20px!important;grid-template-columns:repeat(4,1fr)!important;gap:12px!important;z-index:1000!important;margin-top:0!important}.politician-layout .nav-btn{padding:12px 10px!important;font-size:13px!important;min-height:70px!important}.politician-layout .nav-btn svg{width:28px!important;height:28px!important}}@media(min-width:768px)and (max-width:1024px)and (orientation:landscape){.politician-layout .side-content{padding:24px 40px!important;max-width:100%!important;overflow-x:hidden!important}.politician-layout .chat-list{padding:16px 40px!important}.politician-layout .dashboard-stats{grid-template-columns:repeat(4,1fr)!important}.politician-layout .search-form{max-width:100%!important;overflow:hidden!important}.politician-layout .search-input,.politician-layout .search-select{width:100%!important;max-width:100%!important;min-width:0!important}}@media(max-width:960px)and (min-width:769px){.politician-layout .sidebar{width:280px}.politician-layout .main-panel{margin-left:280px}.politician-layout .sidebar-nav-grid{grid-template-columns:repeat(2,1fr);gap:8px}.politician-layout .nav-btn{padding:10px;font-size:12px}}@media(max-width:768px){.politician-layout{min-height:100vh!important;background:#f5f7fa!important}.politician-layout .app{display:flex!important;flex-direction:column!important;min-height:100vh!important;grid-template-columns:none!important}.politician-layout .app .sidebar,.politician-layout .panel.sidebar{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100vh!important;max-width:100%!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;border-right:none!important;display:flex!important;flex-direction:column!important;background:#f5f7fa!important;z-index:1!important}.politician-layout .main-panel{display:none!important}.politician-layout .mebar{padding:20px!important;border-bottom:1px solid #e1e8ed!important;flex-shrink:0!important;display:flex!important;align-items:center!important;gap:12px!important}.politician-layout .me{font-size:18px!important}.politician-layout .me-name{font-size:18px!important;font-weight:600!important}.politician-layout .chat-meta{font-size:15px!important}.politician-layout .clickable-avatar{width:56px!important;height:56px!important;font-size:24px!important}.politician-layout .edit-profile-btn{width:44px!important;height:44px!important}.politician-layout .edit-profile-btn svg{width:24px!important;height:24px!important}.politician-layout .side-content{flex:1!important;padding:20px 20px 100px!important;overflow-y:visible!important}.politician-layout .section h3{font-size:20px!important;padding:14px 16px!important}.politician-layout .chat-list-header{padding:16px 20px!important}.politician-layout .chat-list-title{font-size:20px!important}.politician-layout .chat-item{padding:18px!important;border-radius:12px!important}.politician-layout .chat-name{font-size:17px!important}.politician-layout .chat-preview{font-size:15px!important}.politician-layout .chat-time{font-size:13px!important}.politician-layout .avatar{width:52px!important;height:52px!important;font-size:20px!important}.politician-layout .search-form{padding:20px!important}.politician-layout .search-label{font-size:16px!important;margin-bottom:10px!important}.politician-layout .search-input,.politician-layout .search-select{padding:14px 16px!important;font-size:16px!important;border-radius:8px!important}.politician-layout .search-button,.politician-layout .primary-btn,.politician-layout .secondary-btn{padding:14px 20px!important;font-size:17px!important;border-radius:10px!important;min-height:52px!important}.politician-layout .sidebar-nav-grid{position:fixed!important;bottom:0!important;left:0!important;right:0!important;background:#fff!important;border-top:2px solid #e1e8ed!important;box-shadow:0 -4px 12px #0000001a!important;padding:12px 10px!important;grid-template-columns:repeat(4,1fr)!important;gap:8px!important;z-index:1000!important;margin-top:0!important}.politician-layout .nav-btn{flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:14px 8px!important;font-size:14px!important;gap:8px!important;border-radius:12px!important;min-height:80px!important;position:relative!important;font-weight:600!important}.politician-layout .nav-btn svg{width:32px!important;height:32px!important}.politician-layout .nav-btn span{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;text-align:center!important;font-size:14px!important}.politician-layout .nav-badge{position:absolute!important;top:8px!important;right:12px!important;min-width:22px!important;height:22px!important;font-size:13px!important;line-height:22px!important;padding:0 6px!important}.politician-layout .dashboard-stats{gap:16px!important}.politician-layout .stat-card{padding:24px!important}.politician-layout .stat-value{font-size:36px!important}.politician-layout .stat-label{font-size:16px!important}.politician-layout .stat-icon{font-size:48px!important}.politician-layout .toggle-blocked-btn{padding:10px 18px!important;font-size:15px!important}.politician-layout .dialog-backdrop{padding:0}.politician-layout .dialog{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0;margin:0}.politician-layout .dialog-header,.politician-layout .dialog-body,.politician-layout .dialog-footer{padding:16px}}@media(max-width:480px){.politician-layout .sidebar-nav-grid{padding:8px 6px;gap:4px}.politician-layout .nav-btn{padding:8px 4px;font-size:10px;min-height:60px}.politician-layout .nav-btn svg{width:20px;height:20px}.politician-layout .side-content{padding:12px 12px 85px}.politician-layout .mebar{padding:10px 12px}.politician-layout .clickable-avatar{width:36px;height:36px;font-size:14px}.politician-layout .me{font-size:13px}.politician-layout .stat-card{padding:16px}.politician-layout .stat-value{font-size:28px}.politician-layout .stat-label{font-size:12px}.politician-layout .chat-item{padding:12px}.politician-layout .section h3{font-size:15px}}.politician-layout input[type=password]::-ms-reveal,.politician-layout input[type=password]::-ms-clear{display:none}.politician-layout input[type=password]::-webkit-credentials-auto-fill-button{visibility:hidden;pointer-events:none}.politician-mobile-layout{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100%;background:#f5f7fa;overflow:hidden}.politician-mobile-layout .mobile-main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0}.politician-mobile-layout .mobile-main:has(.mobile-chat-detail){overflow:hidden}.politician-mobile-layout .mobile-content{min-height:100%}.politician-mobile-layout .mobile-content.with-header{padding-top:0}.politician-mobile-layout .mobile-back-header{position:sticky;top:0;background:#fff;padding:12px 16px;border-bottom:1px solid #e1e8ed;z-index:100}.politician-mobile-layout .back-btn{display:flex;align-items:center;gap:8px;background:none;border:none;color:#3498db;font-size:16px;font-weight:600;cursor:pointer;padding:8px 0}.politician-mobile-layout .back-btn svg{color:#3498db}.politician-mobile-layout .mobile-bottom-nav{display:flex;justify-content:space-evenly;align-items:center;background:#fff;border-top:1px solid #e1e8ed;padding:8px 4px;padding-bottom:max(8px,env(safe-area-inset-bottom));box-shadow:0 -2px 10px #0000001a;z-index:1000;flex-shrink:0}.politician-mobile-layout .nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;color:#6b7280;font-size:9px;padding:6px 1px;cursor:pointer;transition:all .2s;border-radius:8px;flex:1;min-width:0;white-space:nowrap}.politician-mobile-layout .nav-item span{white-space:nowrap}.politician-mobile-layout .nav-item svg{width:24px;height:24px}.politician-mobile-layout .nav-item.active{color:#3498db}.politician-mobile-layout .nav-item.active svg{stroke:#3498db}.politician-mobile-layout .nav-item:active{background:#e8f4fc}.politician-mobile-layout .mobile-list-container{padding:16px}.politician-mobile-layout .mobile-list-title{font-size:24px;font-weight:700;color:#1f2937;margin:0 0 16px;padding:8px 0}.politician-mobile-layout .mobile-list{display:flex;flex-direction:column;gap:12px}.politician-mobile-layout .mobile-list-item{display:flex;align-items:center;gap:12px;background:#fff;padding:16px;border-radius:12px;box-shadow:0 2px 8px #0000000f;cursor:pointer;transition:all .2s}.politician-mobile-layout .mobile-list-item:active{transform:scale(.98);background:#f9fafb}.politician-mobile-layout .mobile-list-item.active{border-left:4px solid #3498db;background:#e8f4fc}.politician-mobile-layout .item-avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;flex-shrink:0;overflow:hidden}.politician-mobile-layout .item-avatar img{width:100%;height:100%;object-fit:cover}.politician-mobile-layout .item-content{flex:1;min-width:0}.politician-mobile-layout .item-content.full{padding-left:0}.politician-mobile-layout .item-name{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.politician-mobile-layout .item-preview{font-size:14px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.politician-mobile-layout .item-date{font-size:12px;color:#9ca3af;margin-top:4px}.politician-mobile-layout .item-badge{min-width:22px;height:22px;padding:0 6px;background:#3498db;color:#fff;font-size:12px;font-weight:600;border-radius:11px;display:flex;align-items:center;justify-content:center}.politician-mobile-layout .mobile-loading{text-align:center;padding:40px;color:#6b7280}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:1}}.skeleton-list{padding:16px;display:flex;flex-direction:column;gap:12px}.skeleton-card{background:#fff;border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 3px #0000000a}.skeleton-avatar{width:48px;height:48px;border-radius:50%;background:#e5e7eb;flex-shrink:0;animation:skeleton-pulse 1.2s ease-in-out infinite}.skeleton-lines{flex:1;display:flex;flex-direction:column;gap:8px}.skeleton-line{height:12px;background:#e5e7eb;border-radius:6px;animation:skeleton-pulse 1.2s ease-in-out infinite}.skeleton-line.short{width:40%}.skeleton-line.medium{width:70%}.skeleton-line.long{width:90%}.skeleton-card:nth-child(2) .skeleton-avatar,.skeleton-card:nth-child(2) .skeleton-line{animation-delay:.15s}.skeleton-card:nth-child(3) .skeleton-avatar,.skeleton-card:nth-child(3) .skeleton-line{animation-delay:.3s}@keyframes mobile-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.mobile-fade-in{animation:mobile-fade-in .2s ease-out}.politician-mobile-layout .mobile-empty{text-align:center;padding:60px 20px;color:#6b7280}.politician-mobile-layout .empty-icon{font-size:48px;margin-bottom:16px}.politician-mobile-layout .mobile-empty p{font-size:16px;margin:0}.politician-mobile-layout .mobile-dashboard-section{padding:16px}.politician-mobile-layout .mobile-dashboard-header{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,#3498db,#2980b9);border-radius:16px;color:#fff;margin-bottom:20px}.politician-mobile-layout .mobile-dashboard-avatar{width:60px;height:60px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;overflow:hidden}.politician-mobile-layout .mobile-dashboard-avatar img{width:100%;height:100%;object-fit:cover}.politician-mobile-layout .mobile-dashboard-info h2{margin:0;font-size:18px;font-weight:700}.politician-mobile-layout .mobile-dashboard-info p{margin:4px 0 0;font-size:13px;opacity:.9}.politician-mobile-layout .mobile-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.politician-mobile-layout .mobile-stat-card{background:#fff;border-radius:16px;padding:20px;text-align:center;box-shadow:0 2px 8px #0000000f;cursor:pointer;transition:all .2s}.politician-mobile-layout .mobile-stat-card:active{transform:scale(.98)}.politician-mobile-layout .mobile-stat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.politician-mobile-layout .mobile-stat-icon.messages{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.politician-mobile-layout .mobile-stat-icon.followers{background:linear-gradient(135deg,#1e90ff,#1574cc);color:#fff}.politician-mobile-layout .mobile-stat-icon.requests{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.politician-mobile-layout .mobile-stat-icon.posts{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.politician-mobile-layout .mobile-stat-value{font-size:28px;font-weight:700;color:#1f2937;margin-bottom:4px}.politician-mobile-layout .mobile-stat-label{font-size:13px;color:#6b7280}.politician-mobile-layout .mobile-quick-actions{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.politician-mobile-layout .mobile-action-btn{display:flex;align-items:center;gap:12px;background:#fff;border:none;border-radius:12px;padding:16px;cursor:pointer;box-shadow:0 2px 8px #0000000f;transition:all .2s}.politician-mobile-layout .mobile-action-btn:active{transform:scale(.98);background:#f9fafb}.politician-mobile-layout .mobile-action-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center}.politician-mobile-layout .mobile-action-icon.profile{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff}.politician-mobile-layout .mobile-action-icon.post{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.politician-mobile-layout .mobile-action-icon.settings{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.politician-mobile-layout .mobile-action-text{flex:1;text-align:left;font-size:15px;font-weight:600;color:#1f2937}.politician-mobile-layout .chat-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-bottom:1px solid #e1e8ed;position:sticky;top:0;z-index:50}.politician-mobile-layout .chat-header .menu-btn{display:none}.politician-mobile-layout .chat-title{font-size:16px;font-weight:600;color:#1f2937}.politician-mobile-layout .messages{flex:1;overflow-y:auto;background:#f9fafb;padding:16px;display:flex;flex-direction:column;min-height:0}.politician-mobile-layout .messages-content{display:flex;flex-direction:column;gap:12px}.politician-mobile-layout .day-sep{text-align:center;font-size:12px;color:#9ca3af;margin:8px 0}.politician-mobile-layout .msg-row{display:flex!important;align-items:flex-end!important;gap:8px!important;justify-content:flex-start!important;flex-direction:row!important}.politician-mobile-layout .msg-row.me{justify-content:flex-end!important;flex-direction:row!important}.politician-mobile-layout .msg-content{display:flex!important;align-items:flex-end!important;gap:8px!important;max-width:80%!important;flex-direction:row!important}.politician-mobile-layout .msg-row.me .msg-content{flex-direction:row-reverse!important}.politician-mobile-layout .msg-row:not(.me) .msg-bubble-container{align-items:flex-start!important}.politician-mobile-layout .msg-avatar{flex-shrink:0}.politician-mobile-layout .msg-row.me .msg-avatar{display:none!important}.politician-mobile-layout .msg-avatar .avatar,.politician-mobile-layout .msg-avatar .clickable-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;overflow:hidden}.politician-mobile-layout .msg-avatar .avatar.has-image,.politician-mobile-layout .msg-avatar .clickable-avatar.has-image{background:transparent!important}.politician-mobile-layout .msg-bubble-container{display:flex;flex-direction:column;gap:4px}.politician-mobile-layout .msg-row.me .msg-bubble-container{align-items:flex-end}.politician-mobile-layout .msg-bubble{background:#fff;padding:10px 14px;border-radius:18px;border:1px solid #e5e7eb;max-width:100%}.politician-mobile-layout .msg-row.me .msg-bubble{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none}.politician-mobile-layout .msg-text{font-size:14px;line-height:1.5;word-break:break-word;white-space:pre-wrap}.politician-mobile-layout .msg-meta{font-size:11px;color:#9ca3af}.politician-mobile-layout .composer{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff;border-top:1px solid #e1e8ed;position:sticky;bottom:0}.politician-mobile-layout .line-plus-btn{width:36px;height:36px;border-radius:50%;border:none;background:#f3f4f6;color:#6b7280;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.politician-mobile-layout .line-input-container{flex:1;min-width:0}.politician-mobile-layout .line-input-container textarea{width:100%;padding:10px 14px;border:1px solid #e5e7eb;border-radius:20px;font-size:14px;resize:none;outline:none;font-family:inherit;line-height:1.4}.politician-mobile-layout .line-input-container textarea:focus{border-color:#3498db}.politician-mobile-layout .line-send-btn{width:36px;height:36px;border-radius:50%;border:none;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.politician-mobile-layout .line-send-btn:disabled{background:#d1d5db;cursor:not-allowed}.politician-mobile-layout .mobile-chat-detail{display:flex;flex-direction:column;height:100vh;height:100dvh;padding-bottom:0!important;overflow:hidden}.politician-mobile-layout .mobile-chat-detail .mobile-back-header{flex-shrink:0;position:relative}.politician-mobile-layout .mobile-chat-container{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.politician-mobile-layout .mobile-chat-container .chat-header{flex-shrink:0}.politician-mobile-layout .mobile-chat-container .messages{flex:1;min-height:0;overflow-y:auto}.politician-mobile-layout .mobile-chat-container .composer{flex-shrink:0;position:relative}.politician-mobile-layout .mobile-content.with-header{display:flex;flex-direction:column;min-height:100%}.politician-mobile-layout .chat-list-container{padding:0}.politician-mobile-layout .chat-list-header{padding:16px;background:#fff;border-bottom:1px solid #e1e8ed}.politician-mobile-layout .chat-list-header h2{margin:0;font-size:20px;font-weight:700;color:#1f2937}.politician-mobile-layout .chat-list{padding:12px}.politician-mobile-layout .chat-item{display:flex;align-items:center;gap:12px;padding:14px;background:#fff;border-radius:12px;margin-bottom:8px;box-shadow:0 2px 8px #0000000a;cursor:pointer;transition:all .2s}.politician-mobile-layout .chat-item:active{transform:scale(.98);background:#f9fafb}.politician-mobile-layout .chat-item.active{border-left:4px solid #3498db;background:#e8f4fc}.politician-mobile-layout .chat-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#1e90ff,#1574cc);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0;overflow:hidden}.politician-mobile-layout .chat-avatar img{width:100%;height:100%;object-fit:cover}.politician-mobile-layout .chat-avatar:has(img){background:transparent!important}.politician-mobile-layout .chat-info{flex:1;min-width:0}.politician-mobile-layout .chat-name{font-size:15px;font-weight:600;color:#1f2937;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.politician-mobile-layout .chat-preview{font-size:13px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.politician-mobile-layout .chat-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.politician-mobile-layout .chat-time{font-size:11px;color:#9ca3af}.politician-mobile-layout .chat-badge{min-width:20px;height:20px;padding:0 6px;background:#3498db;color:#fff;font-size:11px;font-weight:600;border-radius:10px;display:flex;align-items:center;justify-content:center}.politician-mobile-layout .followers-list-container{padding:0}.politician-mobile-layout .followers-list-header{padding:16px;background:#fff;border-bottom:1px solid #e1e8ed}.politician-mobile-layout .followers-list-header h2{margin:0;font-size:20px;font-weight:700;color:#1f2937}.politician-mobile-layout .followers-list{padding:12px}.politician-mobile-layout .follower-item{display:flex;align-items:center;gap:12px;padding:14px;background:#fff;border-radius:12px;margin-bottom:8px;box-shadow:0 2px 8px #0000000a;cursor:pointer;transition:all .2s}.politician-mobile-layout .follower-item:active{transform:scale(.98);background:#f9fafb}.politician-mobile-layout .follower-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#1e90ff,#1574cc);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0;overflow:hidden}.politician-mobile-layout .follower-avatar img{width:100%;height:100%;object-fit:cover}.politician-mobile-layout .follower-avatar:has(img){background:transparent!important}.politician-mobile-layout .follower-info{flex:1;min-width:0}.politician-mobile-layout .follower-name{font-size:15px;font-weight:600;color:#1f2937;margin-bottom:2px}.politician-mobile-layout .follower-location{font-size:13px;color:#6b7280}.politician-mobile-layout .notices-list-container{padding:0}.politician-mobile-layout .notices-list-header{padding:16px}.politician-mobile-layout .notices-list-header h2{margin:0;font-size:20px;font-weight:700;color:#1f2937}.politician-mobile-layout .notices-list{padding:12px}.politician-mobile-layout .notice-item{display:flex;align-items:flex-start;gap:12px;padding:14px;background:#fff;border-radius:12px;margin-bottom:8px;box-shadow:0 2px 8px #0000000a;cursor:pointer;transition:all .2s}.politician-mobile-layout .notice-item:active{transform:scale(.98);background:#f9fafb}.politician-mobile-layout .notice-item.unread{background:#fef3c7;border-left:4px solid #f59e0b}.politician-mobile-layout .notice-icon{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.politician-mobile-layout .notice-content{flex:1;min-width:0}.politician-mobile-layout .notice-title{font-size:14px;font-weight:600;color:#1f2937;margin-bottom:4px}.politician-mobile-layout .notice-preview{font-size:13px;color:#6b7280;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.politician-mobile-layout .notice-date{font-size:11px;color:#9ca3af;margin-top:4px}.politician-mobile-layout .post-form-container{padding:16px}.politician-mobile-layout .post-form-header{margin-bottom:20px}.politician-mobile-layout .post-form-header h2{margin:0;font-size:20px;font-weight:700;color:#1f2937}.politician-mobile-layout .post-form{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 8px #0000000f}.politician-mobile-layout .post-form textarea{width:100%;min-height:200px;padding:16px;border:1px solid #e5e7eb;border-radius:12px;font-size:15px;resize:none;outline:none;font-family:inherit;line-height:1.6}.politician-mobile-layout .post-form textarea:focus{border-color:#3498db}.politician-mobile-layout .post-form-actions{display:flex;gap:12px;margin-top:16px}.politician-mobile-layout .post-submit-btn{flex:1;padding:14px;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.politician-mobile-layout .post-submit-btn:active{transform:scale(.98)}@media(min-width:768px)and (max-width:1024px){.politician-mobile-layout .mobile-bottom-nav{padding:12px 20px}.politician-mobile-layout .nav-item{font-size:12px;padding:10px 24px}.politician-mobile-layout .nav-item svg{width:28px;height:28px}.politician-mobile-layout .mobile-list-container{padding:24px 32px;max-width:100%;margin:0}.politician-mobile-layout .mobile-list-title{font-size:28px}.politician-mobile-layout .mobile-list-item{padding:20px}.politician-mobile-layout .item-avatar{width:56px;height:56px;font-size:20px}.politician-mobile-layout .item-name{font-size:18px}.politician-mobile-layout .item-preview{font-size:15px}.politician-mobile-layout .chat-list{padding:24px 32px}.politician-mobile-layout .chat-item{padding:18px}.politician-mobile-layout .chat-avatar{width:54px;height:54px;font-size:18px}.politician-mobile-layout .chat-name{font-size:17px}.politician-mobile-layout .chat-preview{font-size:14px}.politician-mobile-layout .followers-list{padding:24px 32px}.politician-mobile-layout .follower-item{padding:18px}.politician-mobile-layout .follower-avatar{width:54px;height:54px;font-size:18px}.politician-mobile-layout .follower-name{font-size:17px}.politician-mobile-layout .notices-list{padding:24px 32px}.politician-mobile-layout .notice-item{padding:18px}.politician-mobile-layout .notice-icon{width:48px;height:48px}.politician-mobile-layout .notice-title{font-size:16px}.politician-mobile-layout .mobile-dashboard-section{padding:24px 32px}.politician-mobile-layout .mobile-stats-grid{grid-template-columns:repeat(4,1fr);gap:16px}.politician-mobile-layout .mobile-stat-card{padding:24px}.politician-mobile-layout .mobile-stat-value{font-size:32px}.politician-mobile-layout .post-form-container{padding:24px 32px}}@media(min-width:768px)and (orientation:landscape){.politician-mobile-layout .mobile-list-container{max-width:100%;padding:24px 40px}.politician-mobile-layout .mobile-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.politician-mobile-layout .chat-list,.politician-mobile-layout .followers-list,.politician-mobile-layout .notices-list,.politician-mobile-layout .mobile-dashboard-section,.politician-mobile-layout .post-form-container{padding:24px 40px}}@media(max-width:375px){.politician-mobile-layout .nav-item{font-size:10px;padding:6px 8px}.politician-mobile-layout .nav-item svg{width:20px;height:20px}.politician-mobile-layout .mobile-list-container{padding:12px}.politician-mobile-layout .mobile-list-title{font-size:20px}.politician-mobile-layout .item-avatar{width:44px;height:44px;font-size:16px}.politician-mobile-layout .item-name{font-size:14px}.politician-mobile-layout .item-preview{font-size:12px}.politician-mobile-layout .mobile-stats-grid{gap:8px}.politician-mobile-layout .mobile-stat-card{padding:14px}.politician-mobile-layout .mobile-stat-value{font-size:22px}.politician-mobile-layout .mobile-stat-label{font-size:11px}}.politician-mobile-layout .mobile-system-news{margin-top:20px;background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 8px #0000000a}.politician-mobile-layout .mobile-section-title{font-size:16px;font-weight:700;color:#1f2937;margin:0 0 16px;display:flex;align-items:center;gap:8px}.politician-mobile-layout .mobile-news-list{display:flex;flex-direction:column;gap:8px}.politician-mobile-layout .mobile-news-item{display:flex;align-items:center;gap:12px;padding:12px;background:#f9fafb;border-radius:12px;cursor:pointer;transition:all .2s}.politician-mobile-layout .mobile-news-item:active{transform:scale(.98);background:#f3f4f6}.politician-mobile-layout .mobile-news-item.important{background:#fef3c7;border-left:3px solid #f59e0b}.politician-mobile-layout .mobile-news-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.politician-mobile-layout .mobile-news-content{flex:1;min-width:0}.politician-mobile-layout .mobile-news-title{font-size:14px;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.politician-mobile-layout .mobile-news-date{font-size:12px;color:#9ca3af;margin-top:2px}.politician-mobile-layout .mobile-view-all-btn{width:100%;padding:12px;margin-top:12px;background:#f0f9ff;border:1px solid #bfdbfe;border-radius:12px;color:#3b82f6;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.politician-mobile-layout .mobile-view-all-btn:active{background:#dbeafe}.politician-mobile-layout .mobile-empty-small{padding:20px;text-align:center;color:#9ca3af}.politician-mobile-layout .mobile-empty-small p{margin:0;font-size:14px}.politician-mobile-layout .mobile-action-icon.messages{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.politician-mobile-layout .mobile-action-icon.followers{background:linear-gradient(135deg,#1e90ff,#1574cc);color:#fff}.politician-mobile-layout .posts-list-container{padding:0}.politician-mobile-layout .posts-list-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fff;border-bottom:1px solid #e1e8ed}.politician-mobile-layout .posts-list-header h2{margin:0;font-size:20px;font-weight:700;color:#1f2937}.politician-mobile-layout .new-post-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.politician-mobile-layout .new-post-btn:active{transform:scale(.98)}.politician-mobile-layout .posts-list{padding:12px}.politician-mobile-layout .post-item{padding:16px;background:#fff;border-radius:12px;margin-bottom:8px;box-shadow:0 2px 8px #0000000a;-webkit-tap-highlight-color:transparent;outline:none;-webkit-user-select:none;user-select:none}.politician-mobile-layout .post-title{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:8px}.politician-mobile-layout .post-preview{font-size:14px;color:#6b7280;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.politician-mobile-layout .post-date{font-size:12px;color:#9ca3af;margin-top:8px}.politician-mobile-layout .requests-list-container{padding:0}.politician-mobile-layout .requests-list-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fff;border-bottom:1px solid #e1e8ed}.politician-mobile-layout .requests-list-header h2{margin:0;font-size:20px;font-weight:700;color:#1f2937}.politician-mobile-layout .requests-list{padding:12px}.politician-mobile-layout .request-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;background:#fff;border-radius:12px;margin-bottom:8px;box-shadow:0 2px 8px #0000000a;cursor:pointer;transition:all .2s}.politician-mobile-layout .request-item:active{transform:scale(.98);background:#f9fafb}.politician-mobile-layout .request-content{flex:1;min-width:0}.politician-mobile-layout .request-title{font-size:15px;font-weight:600;color:#1f2937;margin-bottom:6px}.politician-mobile-layout .request-preview{font-size:13px;color:#6b7280;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.politician-mobile-layout .request-meta{display:flex;align-items:center;gap:12px;margin-top:8px;font-size:12px;color:#9ca3af}.politician-mobile-layout .request-from{font-weight:500;color:#6b7280}.politician-mobile-layout .request-status{flex-shrink:0;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600}.politician-mobile-layout .request-status.pending{background:#fef3c7;color:#92400e}.politician-mobile-layout .request-status.in_progress{background:#dbeafe;color:#1e40af}.politician-mobile-layout .request-status.replied{background:#dbeafe;color:#065f46}.politician-mobile-layout .donations-list-container{padding:0}.politician-mobile-layout .donations-list-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fff;border-bottom:1px solid #e1e8ed}.politician-mobile-layout .donations-list-header h2{margin:0;font-size:20px;font-weight:700;color:#1f2937}.politician-mobile-layout .donations-total{padding:8px 16px;background:linear-gradient(135deg,#1e90ff,#1574cc);color:#fff;border-radius:10px;font-size:14px;font-weight:600}.politician-mobile-layout .donations-list{padding:12px}.politician-mobile-layout .donation-item{display:flex;align-items:center;gap:12px;padding:16px;background:#fff;border-radius:12px;margin-bottom:8px;box-shadow:0 2px 8px #0000000a}.politician-mobile-layout .donation-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0}.politician-mobile-layout .donation-info{flex:1;min-width:0}.politician-mobile-layout .donation-name{font-size:15px;font-weight:600;color:#1f2937;margin-bottom:2px}.politician-mobile-layout .donation-date{font-size:12px;color:#9ca3af}.politician-mobile-layout .donation-amount{font-size:18px;font-weight:700;color:#1e90ff}@media(min-width:768px)and (max-width:1024px){.politician-mobile-layout .posts-list{padding:24px 32px}.politician-mobile-layout .post-item{padding:20px}.politician-mobile-layout .post-title{font-size:18px}.politician-mobile-layout .requests-list{padding:24px 32px}.politician-mobile-layout .request-item{padding:20px}.politician-mobile-layout .donations-list{padding:24px 32px}.politician-mobile-layout .donation-item{padding:20px}.politician-mobile-layout .donation-avatar{width:54px;height:54px;font-size:18px}.politician-mobile-layout .donation-amount{font-size:20px}}@media(min-width:768px)and (orientation:landscape){.politician-mobile-layout .posts-list,.politician-mobile-layout .requests-list,.politician-mobile-layout .donations-list{padding:24px 40px}}.politician-mobile-layout input[type=password]::-ms-reveal,.politician-mobile-layout input[type=password]::-ms-clear{display:none}.politician-mobile-layout input[type=password]::-webkit-credentials-auto-fill-button,.politician-mobile-layout input[type=password]::-webkit-textfield-decoration-container{visibility:hidden;pointer-events:none}.politician-mobile-layout .settings-main{height:auto!important}.politician-mobile-layout .settings-body{overflow-y:visible!important;padding-bottom:32px!important}.politician-mobile-layout .settings-section:last-child{margin-bottom:4px!important}
