.theme-selector{position:relative}.theme-selector-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.theme-selector-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.theme-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-height:70vh;overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 10px 40px #0000004d;z-index:1000;padding:var(--spacing-md)}.theme-section{margin-bottom:var(--spacing-md)}.theme-section:last-child{margin-bottom:0}.theme-section-header{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border-color)}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.theme-option{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-primary);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.theme-option:hover{border-color:var(--accent-primary)}.theme-option.active{border-color:var(--accent-primary);background:var(--bg-tertiary)}.theme-preview{width:32px;height:32px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;position:relative;border:1px solid var(--border-color)}.preview-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--preview-bg)}.preview-accent{position:absolute;bottom:0;left:0;right:0;height:8px;background:var(--preview-accent)}.theme-name{font-size:.8rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 480px){.theme-dropdown{width:calc(100vw - 32px);right:-8px}.theme-grid{grid-template-columns:1fr}}.header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:var(--spacing-md) var(--spacing-xl);position:sticky;top:0;z-index:100}.header-content{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.header-left{display:flex;align-items:center;gap:var(--spacing-md)}.header-back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.header-back-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.header-title{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.header-right{display:flex;align-items:center;gap:var(--spacing-lg)}.user-info{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.user-name{font-weight:500;color:var(--text-primary);font-size:.875rem}.user-email{font-size:.75rem;color:var(--text-muted)}.header-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-fast)}.admin-btn{background:var(--accent-primary);color:var(--text-primary)}.admin-btn:hover{background:var(--accent-secondary)}.logout-btn{background:var(--bg-tertiary);color:var(--text-secondary)}.logout-btn:hover{background:var(--accent-danger);color:var(--text-primary)}.announcements-btn{position:relative;background:var(--bg-tertiary);color:var(--text-secondary)}.announcements-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.announcement-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:var(--accent-danger);color:#fff;font-size:.7rem;font-weight:600;border-radius:9px;display:flex;align-items:center;justify-content:center;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media (max-width: 768px){.header{padding:var(--spacing-md)}.header-content{flex-wrap:wrap}.user-info,.header-btn span{display:none}.header-btn{padding:var(--spacing-sm)}}.search-bar{position:relative;width:100%;max-width:400px}.search-icon{position:absolute;left:var(--spacing-md);top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.875rem}.search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);padding-left:2.5rem;padding-right:2.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);transition:all var(--transition-fast)}.search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f633}.search-input::placeholder{color:var(--text-muted)}.search-clear{position:absolute;right:var(--spacing-sm);top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;color:var(--text-muted);transition:all var(--transition-fast)}.search-clear:hover{background:var(--bg-tertiary);color:var(--text-primary)}.group-filter{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.group-pill{padding:var(--spacing-xs) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:9999px;color:var(--text-secondary);font-size:.875rem;font-weight:500;transition:all var(--transition-fast);white-space:nowrap}.group-pill:hover{background:var(--bg-tertiary);color:var(--text-primary)}.group-pill.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-primary)}.link-tile{position:relative;display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);min-height:140px}.link-tile:hover{transform:translateY(-4px);border-color:var(--accent-primary);box-shadow:0 8px 24px var(--shadow-color),0 0 0 1px var(--accent-primary)}.link-tile:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f64d}.link-tile-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-radius:var(--radius-md);font-size:1.5rem;color:var(--text-primary);flex-shrink:0}.link-tile-content{flex:1;min-width:0}.link-tile-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs);word-wrap:break-word}.link-tile-description{font-size:.875rem;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link-tile-category{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);padding:2px var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.7rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.link-grid-grouped{display:flex;flex-direction:column;gap:var(--spacing-xl)}.link-category-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.link-category-header{font-size:1rem;font-weight:600;color:var(--text-secondary);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:var(--spacing-sm)}.link-category-header:before{content:"";width:4px;height:1em;background:var(--accent-primary);border-radius:2px}.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}.link-grid-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) * 2;gap:var(--spacing-md);color:var(--text-secondary);text-align:center}.link-grid-message.error{color:var(--accent-danger)}.link-grid-message .spinner{width:32px;height:32px;border-width:3px}@media (max-width: 640px){.link-grid{grid-template-columns:1fr}}@media (min-width: 1200px){.link-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}.dashboard{flex:1;padding:var(--spacing-xl);max-width:1400px;margin:0 auto;width:100%}.dashboard-filters{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}@media (min-width: 768px){.dashboard-filters{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}}@media (max-width: 768px){.dashboard{padding:var(--spacing-md)}}.combo-box{position:relative;width:100%}.combo-box-input-wrapper{display:flex;align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.combo-box-input-wrapper:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-transparent)}.combo-box-input{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;color:var(--text-primary);font-size:.875rem;outline:none}.combo-box-input::placeholder{color:var(--text-muted)}.combo-box-toggle{display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast)}.combo-box-toggle:hover{color:var(--text-primary)}.combo-box-toggle svg{transition:transform var(--transition-fast)}.combo-box-toggle svg.rotated{transform:rotate(180deg)}.combo-box-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:200px;overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 4px 12px #0000004d;z-index:100}.combo-box-option{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:background var(--transition-fast);font-size:.875rem;color:var(--text-primary)}.combo-box-option:hover{background:var(--bg-hover)}.combo-box-option.selected{background:var(--accent-primary-transparent);color:var(--accent-primary)}.icon-combo-option{display:flex;align-items:center;gap:var(--spacing-sm)}.icon-combo-option svg{font-size:1rem;color:var(--accent-primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);z-index:1000}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);width:100%;max-width:600px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.modal-header h3{font-size:1.125rem;font-weight:600}.modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-form{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.form-row.checkboxes{display:flex;gap:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.form-hint{font-size:.75rem;color:var(--text-muted);margin-bottom:var(--spacing-sm)}.form-group input[type=text],.form-group input[type=number],.form-group textarea,.form-group select{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);transition:border-color var(--transition-fast)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary)}.form-group textarea{resize:vertical;min-height:60px}.form-error{font-size:.75rem;color:var(--accent-danger)}.icon-select-wrapper,.icon-combo-wrapper{display:flex;align-items:center;gap:var(--spacing-sm)}.icon-combo-wrapper .combo-box{flex:1}.icon-preview{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1.25rem;color:var(--accent-primary);flex-shrink:0}.icon-select-wrapper select{flex:1}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:.875rem}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-primary)}.groups-checkboxes{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.custom-group-input{display:flex;gap:var(--spacing-sm)}.custom-group-input input{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary)}.custom-group-input input:focus{outline:none;border-color:var(--accent-primary)}.custom-group-input button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--accent-primary);color:var(--text-primary);border-radius:var(--radius-md);transition:background var(--transition-fast)}.custom-group-input button:hover:not(:disabled){background:var(--accent-secondary)}.custom-group-input button:disabled{opacity:.5;cursor:not-allowed}.selected-groups{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.group-chip{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-secondary)}.group-chip button{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;color:var(--text-muted);transition:all var(--transition-fast)}.group-chip button:hover{background:var(--accent-danger);color:var(--text-primary)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color);margin-top:var(--spacing-md)}.btn-cancel,.btn-save{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-fast)}.btn-cancel{background:var(--bg-tertiary);color:var(--text-secondary)}.btn-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-save{background:var(--accent-primary);color:var(--text-primary)}.btn-save:hover:not(:disabled){background:var(--accent-secondary)}.btn-save:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 640px){.form-row{grid-template-columns:1fr}.form-row.checkboxes{flex-direction:column;gap:var(--spacing-sm)}}.announcement-modal{max-width:600px}.announcement-modal textarea{min-height:100px;resize:vertical}.announcement-modal select{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.announcement-modal select:focus{outline:none;border-color:var(--accent-primary)}.announcement-modal input[type=datetime-local]{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.announcement-modal input[type=datetime-local]:focus{outline:none;border-color:var(--accent-primary)}.submit-error{padding:var(--spacing-sm) var(--spacing-md);background:#ef44441a;border-radius:var(--radius-md);text-align:center}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);z-index:1001}.confirm-dialog{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--spacing-xl);width:100%;max-width:400px}.confirm-title{font-size:1.125rem;font-weight:600;margin-bottom:var(--spacing-sm)}.confirm-message{color:var(--text-secondary);font-size:.875rem;line-height:1.5;margin-bottom:var(--spacing-lg)}.confirm-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md)}.confirm-actions .btn-cancel,.confirm-actions .btn-confirm{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-fast)}.confirm-actions .btn-cancel{background:var(--bg-tertiary);color:var(--text-secondary)}.confirm-actions .btn-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.confirm-actions .btn-confirm{background:var(--accent-danger);color:var(--text-primary)}.confirm-actions .btn-confirm:hover{background:#dc2626}.admin-panel{flex:1;padding:var(--spacing-xl);max-width:1400px;margin:0 auto;width:100%}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.admin-header h2{font-size:1.25rem;font-weight:600}.admin-tabs{display:flex;gap:var(--spacing-sm)}.admin-tab{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-fast)}.admin-tab:hover{background:var(--bg-secondary);color:var(--text-primary)}.admin-tab.active{background:var(--accent-primary);color:var(--text-primary)}.admin-subheader{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:.875rem}.admin-add-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--accent-primary);color:var(--text-primary);border-radius:var(--radius-md);font-weight:500;transition:background var(--transition-fast)}.admin-add-btn:hover{background:var(--accent-secondary)}.admin-loading,.admin-error,.admin-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) * 2;gap:var(--spacing-md);color:var(--text-secondary)}.admin-error{color:var(--accent-danger)}.admin-error button{padding:var(--spacing-sm) var(--spacing-lg);background:var(--accent-primary);color:var(--text-primary);border-radius:var(--radius-md)}.admin-action-error{padding:var(--spacing-md);background:#ef44441a;border:1px solid var(--accent-danger);border-radius:var(--radius-md);color:var(--accent-danger);margin-bottom:var(--spacing-lg)}.admin-table-container{overflow-x:auto;background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.admin-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-table th,.admin-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color)}.admin-table th{background:var(--bg-tertiary);font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.75rem;letter-spacing:.5px}.admin-table tbody tr:hover{background:#3b82f60d}.admin-table tbody tr.disabled-row{opacity:.5}.admin-icon-cell{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:1rem;color:var(--accent-primary)}.admin-title-cell{display:flex;flex-direction:column;gap:2px}.admin-link-title{font-weight:500;color:var(--text-primary)}.admin-link-url{font-size:.75rem;color:var(--text-muted);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-groups-cell{display:flex;flex-wrap:wrap;gap:4px}.group-badge{padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.7rem;color:var(--text-secondary);white-space:nowrap}.group-badge.public{background:#22c55e33;color:var(--accent-success)}.admin-priority-cell{display:flex;align-items:center;gap:var(--spacing-sm)}.priority-label{font-size:.75rem;text-transform:capitalize}.priority-label.critical{color:var(--accent-danger)}.priority-label.important{color:var(--accent-warning, #f59e0b)}.priority-label.normal{color:var(--text-secondary)}.priority-critical{color:var(--accent-danger)}.priority-important{color:var(--accent-warning, #f59e0b)}.priority-normal{color:var(--text-secondary)}.admin-categories-container{display:flex;flex-direction:column;gap:var(--spacing-xl)}.admin-category-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.admin-category-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:2px solid var(--accent-primary)}.admin-category-header h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.admin-category-count{font-size:.75rem;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-sm)}.drag-handle-col{width:32px}.drag-handle-cell{cursor:grab;text-align:center}.drag-handle{color:var(--text-muted);transition:color var(--transition-fast)}.drag-handle-cell:hover .drag-handle{color:var(--text-primary)}.admin-table tbody tr{transition:background var(--transition-fast),transform var(--transition-fast)}.admin-table tbody tr.dragging{opacity:.5;background:var(--bg-tertiary)}.admin-table tbody tr.drag-over{background:#3b82f626;border-top:2px solid var(--accent-primary)}.admin-table tbody tr:active{cursor:grabbing}.status-icon{font-size:1rem}.status-icon.enabled{color:var(--accent-success)}.status-icon.disabled{color:var(--accent-danger)}.admin-actions{display:flex;gap:var(--spacing-sm)}.action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.action-btn.edit{background:var(--bg-tertiary);color:var(--text-secondary)}.action-btn.edit:hover{background:var(--accent-primary);color:var(--text-primary)}.action-btn.delete{background:var(--bg-tertiary);color:var(--text-secondary)}.action-btn.delete:hover{background:var(--accent-danger);color:var(--text-primary)}@media (max-width: 768px){.admin-panel{padding:var(--spacing-md)}.admin-table th,.admin-table td{padding:var(--spacing-sm)}.admin-link-url{max-width:150px}}.announcements-page{flex:1;padding:var(--spacing-xl);max-width:900px;margin:0 auto;width:100%}.announcements-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xl)}.announcements-header h2{font-size:1.5rem;font-weight:600}.announcements-add-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--accent-primary);color:var(--text-primary);border-radius:var(--radius-md);font-weight:500;transition:background var(--transition-fast)}.announcements-add-btn:hover{background:var(--accent-secondary)}.announcements-loading,.announcements-error,.announcements-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) * 2;gap:var(--spacing-md);color:var(--text-secondary)}.announcements-empty .empty-icon{font-size:3rem;color:var(--text-muted)}.announcements-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.announcement-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-fast)}.announcement-card.priority-normal{border-left:4px solid var(--accent-primary)}.announcement-card.priority-important{border-left:4px solid #eab308}.announcement-card.priority-critical{border-left:4px solid #ef4444}.announcement-card.inactive{opacity:.6}.announcement-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-md)}.announcement-card-title{display:flex;align-items:center;gap:var(--spacing-sm)}.announcement-card-title h3{font-size:1.125rem;font-weight:600;margin:0}.announcement-card-title svg{font-size:1rem}.priority-normal{color:var(--accent-primary)}.priority-important{color:#eab308}.priority-critical{color:#ef4444}.inactive-badge{font-size:.75rem;padding:2px 8px;background:var(--bg-tertiary);color:var(--text-muted);border-radius:var(--radius-sm)}.announcement-card-actions{display:flex;gap:var(--spacing-xs)}.announcement-card-actions .action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.announcement-card-actions .action-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.announcement-card-actions .action-btn.delete:hover{background:#ef44441a;color:#ef4444}.announcement-card-content{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-md);white-space:pre-wrap}.announcement-card-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:.75rem;color:var(--text-muted)}.announcement-card-meta span{display:flex;align-items:center;gap:4px}.announcement-card-meta span:after{content:"•";margin-left:var(--spacing-sm)}.announcement-card-meta span:last-child:after{display:none}.announcement-card-meta .expires{color:#eab308}@media (max-width: 640px){.announcements-page{padding:var(--spacing-md)}.announcements-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.announcement-card-header{flex-direction:column;gap:var(--spacing-sm)}.announcement-card-actions{align-self:flex-end}}.announcement-banner-wrapper{padding:var(--spacing-lg) var(--spacing-xl);max-width:1400px;margin:0 auto;width:100%}.announcement-banner{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid;position:relative}.announcement-banner.priority-normal{background:#3b82f61a;border-color:#3b82f64d;color:var(--text-primary)}.priority-normal .announcement-icon{color:#3b82f6;background:#3b82f633}.announcement-banner.priority-important{background:#f59e0b1a;border-color:#f59e0b4d;color:var(--text-primary)}.priority-important .announcement-icon{color:#f59e0b;background:#f59e0b33}.announcement-banner.priority-critical{background:#ef44441a;border-color:#ef44444d;color:var(--text-primary)}.priority-critical .announcement-icon{color:#ef4444;background:#ef444433}.announcement-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);font-size:1.25rem;flex-shrink:0}.announcement-body{flex:1;min-width:0}.announcement-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.announcement-message{font-size:.9rem;color:var(--text-secondary);line-height:1.5}.announcement-dismiss{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition-fast);flex-shrink:0;position:absolute;top:var(--spacing-sm);right:var(--spacing-sm)}.announcement-dismiss:hover{background:#0000001a;color:var(--text-primary)}@media (max-width: 640px){.announcement-banner-wrapper,.announcement-banner{padding:var(--spacing-md)}.announcement-icon{width:32px;height:32px;font-size:1rem}.announcement-title{font-size:.9rem;padding-right:var(--spacing-lg)}.announcement-message{font-size:.85rem}}.changelog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.changelog-modal{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.changelog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.changelog-header h2{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary)}.changelog-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-secondary);border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.changelog-close:hover{background:var(--accent-danger);color:#fff}.changelog-content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.changelog-release{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.changelog-release:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.changelog-release.latest{background:#3b82f60d;margin:calc(-1 * var(--spacing-lg));margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);border-radius:var(--radius-md);border:1px solid rgba(59,130,246,.2)}.changelog-version-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap}.changelog-version{font-size:1.1rem;font-weight:600;color:var(--accent-primary);font-family:monospace}.changelog-date{font-size:.875rem;color:var(--text-muted)}.changelog-latest-badge{font-size:.7rem;font-weight:600;text-transform:uppercase;padding:2px 8px;background:var(--accent-primary);color:#fff;border-radius:var(--radius-sm)}.changelog-changes{list-style:none;padding:0;margin:0}.changelog-changes li{position:relative;padding-left:var(--spacing-lg);margin-bottom:var(--spacing-sm);font-size:.875rem;color:var(--text-secondary);line-height:1.5}.changelog-changes li:before{content:"•";position:absolute;left:0;color:var(--accent-primary);font-weight:700}.changelog-changes li:last-child{margin-bottom:0}.changelog-content::-webkit-scrollbar{width:8px}.changelog-content::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:4px}.changelog-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.changelog-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (max-width: 768px){.changelog-overlay{padding:var(--spacing-md)}.changelog-modal{max-height:90vh}}.footer{background:var(--bg-secondary);border-top:1px solid var(--border-color);padding:var(--spacing-sm) var(--spacing-xl);margin-top:auto}.footer-content{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);font-size:.75rem;color:var(--text-muted)}.footer-version-btn{font-family:monospace;font-size:.75rem;background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition-fast);cursor:pointer}.footer-version-btn:hover{background:var(--accent-primary);color:#fff}.footer-divider{opacity:.5}.footer-credit{display:flex;align-items:center;gap:4px}@media (max-width: 480px){.footer{padding:var(--spacing-sm) var(--spacing-md)}}:root{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-hover: #475569;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-primary: #3b82f6;--accent-secondary: #60a5fa;--accent-success: #22c55e;--accent-warning: #f59e0b;--accent-danger: #ef4444;--border-color: #334155;--shadow-color: rgba(0, 0, 0, .3);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--transition-fast: .15s ease;--transition-normal: .2s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--bg-hover)}button{cursor:pointer;font-family:inherit;font-size:.875rem;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:1rem}a{color:var(--accent-primary);text-decoration:none}a:hover{color:var(--accent-secondary)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--spacing-md)}.spinner{width:48px;height:48px;border:4px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--spacing-md);padding:var(--spacing-xl);text-align:center}.error-container h2{color:var(--accent-danger)}.error-container button{padding:var(--spacing-sm) var(--spacing-lg);background:var(--accent-primary);color:var(--text-primary);border-radius:var(--radius-md);transition:background var(--transition-fast)}.error-container button:hover{background:var(--accent-secondary)}
