.announcement-button{position:fixed;bottom:24px;right:24px;width:56px;height:56px;background:linear-gradient(135deg,#667eea 0,#764ba2 100%);border-radius:50%;border:none;box-shadow:0 4px 12px rgba(102,126,234,.4);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;transition:.3s cubic-bezier(.4, 0, .2, 1);z-index:999;animation:2s infinite pulse}.announcement-button:hover{transform:scale(1.1);box-shadow:0 6px 20px rgba(102,126,234,.6)}.announcement-button:active{transform:scale(.95)}@keyframes pulse{0%,100%{box-shadow:0 4px 12px rgba(102,126,234,.4)}50%{box-shadow:0 4px 20px rgba(102,126,234,.8)}}.announcement-button .unread-badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;background:#ef4444;border-radius:50%;border:2px solid #fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;animation:1s infinite bounce}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}.announcement-panel{position:fixed;bottom:92px;right:24px;width:380px;max-height:500px;background:rgba(255,255,255,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.15);border:1px solid rgba(255,255,255,.5);display:none;flex-direction:column;z-index:998;animation:.3s cubic-bezier(.4,0,.2,1) slideInUp}.announcement-panel.show{display:flex}@keyframes slideInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.announcement-panel-header{padding:16px 20px;border-bottom:1px solid rgba(0,0,0,.08);display:flex;align-items:center;justify-content:space-between}.announcement-panel-header h3{margin:0;font-size:18px;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:8px}.announcement-panel-header h3 i{color:#667eea}.announcement-panel-close{background:0 0;border:none;font-size:20px;color:#9ca3af;cursor:pointer;padding:4px;transition:color .2s}.announcement-panel-close:hover{color:#1f2937}.announcement-list{flex:1;overflow-y:auto;padding:12px}.announcement-list::-webkit-scrollbar{width:6px}.announcement-list::-webkit-scrollbar-track{background:0 0}.announcement-list::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:3px}.announcement-list::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}.announcement-item{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;border:1px solid rgba(0,0,0,.08);transition:.2s;cursor:pointer}.announcement-item:hover{border-color:#667eea;box-shadow:0 2px 8px rgba(102,126,234,.15);transform:translateY(-2px)}.announcement-item:last-child{margin-bottom:0}.announcement-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.announcement-item-title{font-size:15px;font-weight:600;color:#1f2937;flex:1;margin-right:8px}.announcement-item-type{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase}.announcement-item-type.info{background:#dbeafe;color:#1e40af}.announcement-item-type.warning{background:#fef3c7;color:#92400e}.announcement-item-type.success{background:#d1fae5;color:#065f46}.announcement-item-type.error{background:#fee2e2;color:#991b1b}.announcement-item-content{font-size:13px;color:#6b7280;line-height:1.6;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.announcement-item-time{font-size:12px;color:#9ca3af;display:flex;align-items:center;gap:4px}.announcement-empty{text-align:center;padding:40px 20px;color:#9ca3af}.announcement-empty i{font-size:48px;margin-bottom:12px;display:block;opacity:.5}.announcement-empty p{margin:0;font-size:14px}@media (max-width:768px){.announcement-button{bottom:16px;right:16px;width:48px;height:48px;font-size:20px}.announcement-panel{bottom:76px;right:16px;left:16px;width:auto;max-height:400px}}.announcement-detail-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:10001;opacity:0;transition:opacity .3s}.announcement-detail-modal.show{display:flex;align-items:center;justify-content:center;opacity:1}.announcement-detail-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6);backdrop-filter:blur(5px)}.announcement-detail-content{position:relative;background:linear-gradient(135deg,rgba(255,255,255,.95) 0,rgba(255,255,255,.9) 100%);border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.3);max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;transform:scale(.9);transition:transform .3s}.announcement-detail-modal.show .announcement-detail-content{transform:scale(1)}.announcement-detail-header{background:linear-gradient(135deg,#667eea 0,#764ba2 100%);color:#fff;padding:1.5rem;position:relative}.announcement-detail-type{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;margin-bottom:.5rem;background:rgba(255,255,255,.2)}.announcement-detail-type.info{background:rgba(52,152,219,.3)}.announcement-detail-type.warning{background:rgba(241,196,15,.3)}.announcement-detail-type.success{background:rgba(46,204,113,.3)}.announcement-detail-type.error{background:rgba(231,76,60,.3)}.announcement-detail-header h3{margin:0;font-size:1.25rem;font-weight:600}.announcement-detail-close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,.2);border:none;width:32px;height:32px;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}.announcement-detail-close:hover{background:rgba(255,255,255,.3);transform:rotate(90deg)}.announcement-detail-body{padding:2rem;overflow-y:auto;flex:1}.announcement-detail-text{color:#2c3e50;line-height:1.8;font-size:1rem;white-space:pre-wrap;word-wrap:break-word}.announcement-detail-time{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(0,0,0,.1);color:#7f8c8d;font-size:.875rem}.announcement-detail-footer{padding:1rem 2rem;border-top:1px solid rgba(0,0,0,.1);display:flex;justify-content:flex-end}.announcement-detail-footer .btn{padding:.75rem 2rem;border-radius:12px;border:none;font-size:1rem;font-weight:600;cursor:pointer;transition:.2s;display:flex;align-items:center;gap:.5rem}.announcement-detail-footer .btn-primary{background:var(--primary-color);color:#fff!important}.announcement-detail-footer .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-purple-lg)}.announcement-detail-footer .btn-primary:active{transform:translateY(0)}@media (max-width:768px){.announcement-detail-content{width:95%;max-height:90vh}.announcement-detail-header{padding:1rem}.announcement-detail-body{padding:1.5rem}.announcement-detail-footer{padding:.75rem 1.5rem}}