body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-box{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:40px;box-shadow:0 10px 40px #0003}.login-box h1{color:#333;text-align:center;justify-content:center;align-items:center;gap:10px;margin:0 0 10px;font-size:28px;display:flex}.login-logo{object-fit:contain;border-radius:6px;width:40px;height:40px}.login-subtitle{text-align:center;color:#666;margin:0 0 30px;font-size:14px}.form-group label{color:#333;margin-bottom:8px;font-weight:500;display:block}.form-group input{box-sizing:border-box;border:2px solid #e0e0e0;border-radius:6px;width:100%;padding:12px;font-size:14px;transition:border-color .3s}.form-group input:focus{border-color:var(--primary-color);outline:none}.form-group input:disabled{cursor:not-allowed;background:#f5f5f5}.btn-primary:hover:not(:disabled){box-shadow:0 5px 20px color-mix(in srgb, var(--primary-color) 40%, transparent);transform:translateY(-2px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.login-privacy-link{text-align:center;color:#999;margin-top:20px;font-size:13px;text-decoration:none;display:block}.login-privacy-link:hover{color:var(--primary-color);text-decoration:underline}.calendar-container{max-width:1200px;margin:0 auto;padding:20px}.calendar-header{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:20px;display:flex;box-shadow:0 2px 8px #0000001a}.calendar-header h2{color:#333;margin:0;font-size:24px}.calendar-header button{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:18px;transition:background .3s}.calendar-header button:hover{background:#5568d3}.calendar-days{grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:10px;display:grid}.calendar-day-name{text-align:center;color:#666;padding:10px;font-size:14px;font-weight:600}.calendar-body{background:#fff;border-radius:12px;padding:10px;box-shadow:0 2px 8px #0000001a}.calendar-row{grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:10px;display:grid}.calendar-cell{cursor:pointer;background:#fff;border:2px solid #e0e0e0;border-radius:8px;min-height:100px;padding:10px;transition:all .3s;position:relative}.calendar-cell:hover:not(.disabled){border-color:var(--primary-color);box-shadow:0 4px 12px color-mix(in srgb, var(--primary-color) 20%, transparent);transform:translateY(-2px)}.calendar-cell.disabled{color:#ccc;cursor:not-allowed;background:#f9f9f9}.calendar-cell.today{border-color:var(--primary-color);box-shadow:inset 0 0 0 2px var(--primary-color)}.calendar-cell.today .day-number{background:var(--primary-color);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.calendar-cell.has-availability{border-color:var(--primary-color);background:linear-gradient(135deg,#e0e7ff 0%,#f3e8ff 100%)}.calendar-cell.has-stream{background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border-color:#f59e0b}.calendar-cell.has-availability.has-stream{border-color:var(--primary-color);background:linear-gradient(135deg,#e0e7ff 0%,#fef3c7 100%)}.day-number-row{align-items:center;gap:6px;margin-bottom:5px;display:flex}.day-number{color:#333;font-weight:600}.availability-indicator{color:var(--primary-color);margin-top:5px;font-size:12px;font-weight:500}.stream-indicator{color:#f59e0b;white-space:nowrap;text-overflow:ellipsis;background:#f59e0b1a;border-radius:4px;max-width:calc(100% - 30px);padding:1px 6px;font-size:11px;font-weight:600;overflow:hidden}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.modal-header{border-bottom:2px solid #e0e0e0;justify-content:space-between;align-items:center;padding:20px;display:flex}.modal-header h3{color:#333;margin:0;font-size:20px}.close-btn{cursor:pointer;color:#666;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:24px;transition:background .3s;display:flex}.close-btn:hover{background:#f0f0f0}.modal-body{padding:20px}.availability-list{margin-bottom:30px}.stream-schedule-section{background:#fffbeb;border:2px solid #fbbf24;border-radius:8px;margin-bottom:30px;padding:15px}.stream-schedule-section h4{color:#92400e;margin:0 0 15px;font-size:16px}.stream-entry{background:#fff;border:1px solid #fde68a;border-radius:6px;margin-bottom:10px;padding:12px}.stream-entry:last-child{margin-bottom:0}.stream-entry .entry-info{flex-direction:column;gap:5px;display:flex}.stream-entry .entry-info strong{color:#92400e;font-size:14px}.stream-entry .entry-info span{color:#78350f;font-size:13px;font-weight:500}.availability-list h4{color:#333;margin:0 0 15px;font-size:16px}.no-availability{color:#999;text-align:center;background:#f9f9f9;border-radius:6px;padding:20px;font-style:italic}.availability-entry{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:15px;display:flex}.entry-info{flex-direction:column;gap:5px;display:flex}.entry-info strong{color:#333;font-size:14px}.entry-info span{color:#666;font-size:13px}.entry-actions{gap:10px;display:flex}.btn-edit,.btn-delete{cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .3s}.btn-edit{background:var(--primary-color);color:#fff}.btn-edit:hover{background:#5568d3}.btn-delete{color:#fff;background:#ef4444}.btn-delete:hover{background:#dc2626}.add-availability-form{background:#f9f9f9;border:2px solid #e0e0e0;border-radius:8px;padding:20px}.add-availability-form h4{color:#333;margin:0 0 15px;font-size:16px}.time-inputs{grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;display:grid}.form-group input[type=time]{border:2px solid #e0e0e0;border-radius:6px;padding:10px;font-size:14px;transition:border-color .3s}.form-group input[type=time]:focus{border-color:var(--primary-color);outline:none}.form-actions{gap:10px;display:flex}.btn-primary,.btn-secondary{cursor:pointer;border:none;border-radius:6px;flex:1;padding:12px;font-size:14px;font-weight:600;transition:all .3s}.btn-primary{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff}.btn-secondary{color:#333;background:#e0e0e0}.btn-secondary:hover{background:#d0d0d0}@media (width<=768px){.calendar-container{padding:10px}.calendar-cell{min-height:65px;padding:6px}.calendar-row{gap:4px;margin-bottom:4px}.calendar-days{gap:4px}.day-number-row{flex-direction:column;align-items:flex-start;gap:2px}.stream-indicator{max-width:100%;padding:0 3px;font-size:10px}.availability-indicator,.note-indicator{font-size:10px}.time-inputs{grid-template-columns:1fr}.modal-content{max-width:100%;max-height:95vh}.modal-header h3{font-size:16px}.platform-buttons{flex-direction:column}.entry-actions{flex-direction:column;gap:4px}.btn-edit,.btn-delete{min-height:44px;padding:8px 16px}}@media (width<=480px){.calendar-cell{min-height:55px;padding:4px}.day-number{font-size:13px}.stream-indicator{display:none}.calendar-header h2{font-size:18px}.calendar-header button{padding:8px 14px;font-size:16px}.calendar-day-name{padding:6px;font-size:12px}.modal-overlay{padding:10px}}.note-indicator{color:#6366f1;margin-top:2px;font-size:11px;font-weight:500}.notes-section{background:#eef2ff;border:2px solid #818cf8;border-radius:8px;margin-bottom:20px;padding:15px}.notes-section h4{color:#4338ca;margin:0 0 12px;font-size:16px}.note-item{background:#fff;border:1px solid #c7d2fe;border-radius:6px;margin-bottom:8px;padding:10px 12px}.note-item:last-of-type{margin-bottom:10px}.note-text{color:#333;white-space:pre-wrap;margin-bottom:4px;font-size:14px}.note-meta{color:#888;justify-content:space-between;align-items:center;font-size:12px;display:flex}.btn-delete-note{color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:14px;transition:background .2s}.btn-delete-note:hover{background:#fee2e2}.add-note-form{flex-direction:column;gap:8px;display:flex}.note-input{resize:vertical;border:2px solid #c7d2fe;border-radius:6px;min-height:60px;padding:10px;font-family:inherit;font-size:14px;transition:border-color .3s}.note-input:focus{border-color:var(--primary-color);outline:none}.btn-add-note{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:6px;align-self:flex-end;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s}.btn-add-note:hover:not(:disabled){background:#4f46e5}.btn-add-note:disabled{opacity:.5;cursor:not-allowed}.overnight-badge{color:#d97706;font-size:12px;font-weight:600}.platform-icon{vertical-align:middle;display:inline-block}.twitch-icon{color:#9146ff}.tiktok-icon{color:#010101}.dark .tiktok-icon{color:#e0e0e0}.platform-badge{border-radius:4px;align-items:center;margin-left:6px;padding:2px 6px;display:inline-flex}.platform-badge.twitch{color:#9146ff;background:#9146ff1a}.platform-badge.tiktok{color:#010101;background:#0000000f}.dark .platform-badge.tiktok{color:#e0e0e0;background:#ffffff1a}.platform-select{margin-bottom:15px}.platform-select>label{color:#333;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.dark .platform-select>label{color:#ccc}.platform-buttons{gap:10px;display:flex}.platform-btn{cursor:pointer;color:#666;background:#fff;border:2px solid #e0e0e0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.platform-btn:hover{border-color:#ccc}.platform-btn.active{color:#9146ff;background:#9146ff0d;border-color:#9146ff}.platform-btn.active:last-child{color:#010101;background:#00000008;border-color:#010101}.dark .platform-btn{color:#aaa;background:#252540;border-color:#444}.dark .platform-btn.active{color:#b080ff;background:#9146ff26;border-color:#9146ff}.dark .platform-btn.active:last-child{color:#e0e0e0;background:#ffffff14;border-color:#e0e0e0}.stream-select{cursor:pointer;background:#fff;border:2px solid #e0e0e0;border-radius:6px;width:100%;padding:10px 12px;font-size:14px;transition:border-color .3s}.stream-select:focus{border-color:var(--primary-color);outline:none}.dark .stream-select{color:#e0e0e0;background:#252540;border-color:#444}.stream-time-preview{color:#333;background:#f0f7ff;border:1px solid #bcd4f0;border-radius:6px;margin-bottom:12px;padding:10px 14px;font-size:14px;font-weight:500}.dark .stream-time-preview{color:#e0e0e0;background:#1e2040;border-color:#4a5080}.recurring-option{margin-bottom:15px}.recurring-label{cursor:pointer;color:#333;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:8px;padding:10px;font-size:14px;display:flex}.recurring-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.dark .recurring-label{color:#e0e0e0;background:#1e1e32;border-color:#444}.recurring-badge{color:#059669;font-size:12px;font-weight:500}.category-badge{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;vertical-align:middle;letter-spacing:.3px;border-radius:10px;margin-left:6px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.recurring-tag{margin-left:4px;font-size:12px}.entry-name-row{align-items:center;gap:6px;display:flex}.entry-avatar{object-fit:cover;border-radius:50%;width:24px;height:24px}.avail-mod-tag{align-items:center;gap:3px;margin-right:4px;font-size:11px;display:inline-flex}.avail-mod-tag:last-child{margin-right:0}.admin-panel{max-width:1200px;margin:0 auto;padding:20px}.admin-header{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:20px;display:flex;box-shadow:0 2px 8px #0000001a}.admin-header h2{color:#333;margin:0;font-size:24px}.btn-add-user{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .3s}.btn-add-user:hover{box-shadow:0 5px 20px color-mix(in srgb, var(--primary-color) 40%, transparent);transform:translateY(-2px)}.add-user-form{background:#fff;border-radius:12px;margin-bottom:20px;padding:30px;box-shadow:0 2px 8px #0000001a}.add-user-form h3{color:#333;margin:0 0 20px;font-size:18px}.users-table{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a}.users-table table{border-collapse:collapse;width:100%}.users-table th{text-align:left;color:#666;border-bottom:2px solid #e0e0e0;padding:15px;font-size:14px;font-weight:600}.users-table td{color:#333;border-bottom:1px solid #f0f0f0;padding:15px}.users-table tr:last-child td{border-bottom:none}.users-table tbody tr:hover{background:#f9f9f9}.role-badge{border-radius:20px;padding:4px 12px;font-size:13px;font-weight:500;display:inline-block}.role-badge.super_admin{color:#fff;background:linear-gradient(135deg,#dc2626 0%,#991b1b 100%)}.role-badge.admin{color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%)}.role-badge.mod{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff}.role-badge.clickable{cursor:pointer;transition:opacity .2s}.role-badge.clickable:hover{opacity:.8}.role-change-select{border:2px solid var(--primary-color);border-radius:6px;outline:none;padding:4px 8px;font-size:13px;font-weight:500}.btn-delete-user{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .3s}.btn-delete-user:hover{background:#dc2626;transform:translateY(-2px)}.user-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn-reset-password{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .3s}.btn-reset-password:hover{opacity:.9;transform:translateY(-2px)}.reset-password-inline{align-items:center;gap:6px;display:flex}.reset-password-input{border:2px solid #e0e0e0;border-radius:4px;width:140px;padding:6px 10px;font-size:13px}.reset-password-input:focus{border-color:var(--primary-color);outline:none}.btn-reset-confirm{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:4px;padding:6px 12px;font-size:13px;font-weight:500}.btn-reset-confirm:hover{background:#059669}.btn-reset-cancel{color:#fff;cursor:pointer;background:#9ca3af;border:none;border-radius:4px;padding:6px 12px;font-size:13px;font-weight:500}.btn-reset-cancel:hover{background:#6b7280}.no-users{text-align:center;color:#999;padding:40px;font-style:italic}@media (width<=768px){.admin-panel{padding:10px}.admin-header{flex-direction:column;align-items:stretch;gap:15px}.form-row{grid-template-columns:1fr}.users-table{overflow-x:auto}.users-table table{min-width:600px}}@media (width<=480px){.admin-header h2{font-size:20px}.btn-add-user{min-height:44px;padding:10px 16px;font-size:13px}.user-actions{flex-direction:column;gap:6px}.btn-delete-user,.btn-reset-password{min-height:44px;font-size:13px}.reset-password-inline{flex-wrap:wrap}.reset-password-input{width:100%}}.settings-container{max-width:800px;margin:0 auto;padding:20px}.settings-panel{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 8px #0000001a}.settings-panel h2{color:#333;border-bottom:2px solid #e0e0e0;margin:0 0 30px;padding-bottom:15px;font-size:24px}.settings-section{border-bottom:1px solid #f0f0f0;margin-bottom:40px;padding-bottom:30px}.settings-section:last-child{border-bottom:none}.settings-section h3{color:#333;margin:0 0 10px;font-size:18px}.section-description{color:#666;margin:0 0 20px;font-size:14px}.password-form h3{color:#333;margin:0 0 20px;font-size:18px}.password-form .form-group{margin-bottom:20px}.password-form .form-group label{color:#333;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.password-form .form-group input{box-sizing:border-box;border:2px solid #e0e0e0;border-radius:6px;width:100%;padding:12px;font-size:14px;transition:border-color .3s}.password-form .form-group input:focus{border-color:var(--primary-color);outline:none}.form-group{margin-bottom:20px}.form-group label{color:#333;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group select{box-sizing:border-box;cursor:pointer;background:#fff;border:2px solid #e0e0e0;border-radius:6px;width:100%;padding:12px;font-size:14px;transition:border-color .3s}.form-group select:focus{border-color:var(--primary-color);outline:none}.form-group input[type=text],.form-group input[type=url],.form-group input[type=color]{box-sizing:border-box;border:2px solid #e0e0e0;border-radius:6px;width:100%;padding:12px;font-size:14px;transition:border-color .3s}.form-group input[type=text]:focus,.form-group input[type=url]:focus{border-color:var(--primary-color);outline:none}.timezone-select{box-sizing:border-box;cursor:pointer;background:#fff;border:2px solid #e0e0e0;border-radius:6px;width:100%;padding:12px;font-size:14px;transition:border-color .3s}.timezone-select:focus{border-color:var(--primary-color);outline:none}.password-form .btn-primary{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;margin-top:10px;padding:12px;font-size:16px;font-weight:600;transition:all .3s}.password-form .btn-primary:hover{box-shadow:0 5px 20px color-mix(in srgb, var(--primary-color) 40%, transparent);transform:translateY(-2px)}.app-settings-form .btn-primary{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;margin-top:10px;padding:12px;font-size:16px;font-weight:600;transition:all .3s}.app-settings-form .btn-primary:hover{box-shadow:0 5px 20px color-mix(in srgb, var(--primary-color) 40%, transparent);transform:translateY(-2px)}.logo-preview{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;align-items:center;gap:12px;margin-top:8px;padding:12px;display:flex}.logo-preview img{object-fit:contain;background:#fff;border:1px solid #e0e0e0;border-radius:6px;width:48px;height:48px;padding:4px}.logo-preview .no-logo{color:#999;font-size:13px;font-style:italic}.colour-row{flex-wrap:wrap;gap:20px;display:flex}.colour-row .form-group{flex:1;min-width:140px}.colour-input-wrapper{align-items:center;gap:10px;display:flex}.colour-input-wrapper input[type=color]{cursor:pointer;background:#fff;border:2px solid #e0e0e0;border-radius:6px;width:48px;height:40px;padding:2px}.colour-input-wrapper input[type=text]{flex:1;padding:10px 12px;font-family:monospace}.theme-preview{color:#fff;border-radius:10px;justify-content:center;align-items:center;gap:12px;margin-top:12px;padding:16px;font-size:14px;font-weight:600;display:flex}.theme-preview-dot{border:2px solid #fff;border-radius:50%;width:12px;height:12px}.btn-reset-theme{color:#666;cursor:pointer;background:0 0;border:1px solid #ccc;border-radius:6px;margin-top:8px;padding:6px 14px;font-size:12px;transition:all .2s}.btn-reset-theme:hover{color:#333;border-color:#999}.field-description{color:#888;margin:-4px 0 8px;font-size:12px}.backup-buttons{flex-wrap:wrap;gap:12px;display:flex}.btn-backup{cursor:pointer;color:#333;background:#fff;border:2px solid #e0e0e0;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .3s}.btn-backup:hover{border-color:var(--primary-color);color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.restore-section{margin-top:12px}.btn-restore{color:#fff;cursor:pointer;background:#f59e0b;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .3s;display:inline-block}.btn-restore:hover{background:#d97706;transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.avatar-section{align-items:flex-start;gap:20px;display:flex}.avatar-preview-large{border:3px solid #e0e0e0;border-radius:50%;flex-shrink:0;width:80px;height:80px;overflow:hidden}.avatar-preview-large img{object-fit:cover;width:100%;height:100%}.avatar-placeholder{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:32px;font-weight:700;display:flex}.avatar-controls{flex-direction:column;flex:1;gap:10px;display:flex}.btn-avatar-upload{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;cursor:pointer;text-align:center;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .3s;display:inline-block}.btn-avatar-upload:hover{box-shadow:0 4px 12px color-mix(in srgb, var(--primary-color) 30%, transparent);transform:translateY(-1px)}.avatar-url-row{gap:8px;display:flex}.avatar-url-input{border:2px solid #e0e0e0;border-radius:6px;flex:1;padding:8px 12px;font-size:13px;transition:border-color .3s}.avatar-url-input:focus{border-color:var(--primary-color);outline:none}.btn-avatar-url-save{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s}.btn-avatar-url-save:hover:not(:disabled){background:#059669}.btn-avatar-url-save:disabled{opacity:.5;cursor:not-allowed}.btn-remove-avatar{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #ef4444;border-radius:6px;align-self:flex-start;padding:6px 14px;font-size:12px;transition:all .2s}.btn-remove-avatar:hover{background:#fef2f2}.logo-upload-row{align-items:center;gap:10px;margin-bottom:4px;display:flex}.btn-logo-upload{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;cursor:pointer;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .3s;display:inline-block}.btn-logo-upload:hover{transform:translateY(-1px)}.btn-remove-logo{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #ef4444;border-radius:6px;padding:6px 12px;font-size:12px;transition:all .2s}.btn-remove-logo:hover{background:#fef2f2}.dark .avatar-preview-large{border-color:#444}.dark .avatar-url-input{color:#e0e0e0;background:#252540;border-color:#444}.dark .btn-remove-avatar{color:#f87171;border-color:#dc2626}.dark .btn-remove-avatar:hover{background:#3a1515}.dark .btn-remove-logo{color:#f87171;border-color:#dc2626}.dark .btn-remove-logo:hover{background:#3a1515}.announcement-input{resize:vertical;box-sizing:border-box;border:2px solid #e0e0e0;border-radius:6px;width:100%;padding:12px;font-family:inherit;font-size:14px;transition:border-color .3s}.announcement-input:focus{border-color:var(--primary-color);outline:none}.dark .announcement-input{color:#e0e0e0;background:#252540;border-color:#444}.announcement-actions{align-items:center;gap:12px;margin-top:12px;display:flex}.btn-clear-announcement{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #ef4444;border-radius:6px;padding:6px 14px;font-size:12px;transition:all .2s}.btn-clear-announcement:hover{background:#fef2f2}.dark .btn-clear-announcement{color:#f87171;border-color:#dc2626}.dark .btn-clear-announcement:hover{background:#3a1515}@media (width<=768px){.settings-container{padding:10px}.settings-panel{padding:20px}.colour-row{flex-direction:column}.avatar-section{flex-direction:column;align-items:center}.backup-buttons{flex-direction:column}.btn-backup{text-align:center;width:100%}}@media (width<=480px){.settings-panel{padding:15px}.settings-panel h2{font-size:20px}.avatar-url-row{flex-direction:column}.btn-avatar-url-save{align-self:flex-start}}.settings-privacy{text-align:center;border-bottom:none}.settings-privacy a{color:#999;font-size:14px;text-decoration:none}.settings-privacy a:hover{color:var(--primary-color);text-decoration:underline}.stream-schedule-container{max-width:1400px;margin:0 auto;padding:20px}.stream-schedule-header{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:20px;display:flex;box-shadow:0 2px 8px #0000001a}.stream-schedule-header h2{color:#333;margin:0;font-size:24px}.btn-add-schedule{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:12px 24px;font-size:14px;font-weight:600;transition:transform .2s,box-shadow .2s}.stream-tabs{border-bottom:2px solid #e5e7eb;gap:10px;margin-bottom:20px;display:flex}.tab-button{cursor:pointer;color:#6b7280;background:0 0;border:none;border-bottom:3px solid #0000;padding:12px 24px;font-size:16px;font-weight:500;transition:all .2s}.tab-button:hover{color:#374151}.tab-button.active{color:#7c3aed;border-bottom-color:#7c3aed}.overnight-badge{color:#f59e0b;background:#fef3c7;border-radius:4px;margin-left:6px;padding:2px 6px;font-size:11px;font-weight:600}.one-time-streams-list{flex-direction:column;gap:12px;max-width:800px;display:flex}.one-time-streams-list .schedule-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;justify-content:space-between;align-items:center;padding:16px;display:flex;box-shadow:0 1px 3px #0000001a}.schedule-date{color:#6b7280;margin:4px 0;font-size:14px}.btn-add-schedule{font-size:14px;font-weight:600;transition:all .3s}.btn-add-schedule:hover{box-shadow:0 5px 20px color-mix(in srgb, var(--primary-color) 40%, transparent);transform:translateY(-2px)}.add-schedule-form{background:#fff;border-radius:12px;margin-bottom:20px;padding:30px;box-shadow:0 2px 8px #0000001a}.add-schedule-form h3{color:#333;margin:0 0 20px;font-size:18px}.form-row{grid-template-columns:repeat(5,1fr);gap:15px;margin-bottom:20px;display:grid}.form-group{flex-direction:column;display:flex}.form-group label{color:#333;margin-bottom:8px;font-size:14px;font-weight:500}.form-group input,.form-group select{border:2px solid #e0e0e0;border-radius:6px;padding:10px;font-size:14px;transition:border-color .3s}.form-group input:focus,.form-group select:focus{border-color:var(--primary-color);outline:none}.btn-primary{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;padding:12px;font-size:14px;font-weight:600;transition:all .3s}.btn-primary:hover{box-shadow:0 5px 20px color-mix(in srgb, var(--primary-color) 40%, transparent);transform:translateY(-2px)}.schedules-display{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 8px #0000001a}.schedule-grid{grid-template-columns:repeat(7,1fr);gap:15px;display:grid}.day-column{flex-direction:column;display:flex}.day-header{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;text-align:center;border-radius:8px 8px 0 0;margin:0;padding:12px;font-size:14px;font-weight:600}.day-schedules{background:#f9f9f9;border:2px solid #e0e0e0;border-top:none;border-radius:0 0 8px 8px;flex-direction:column;gap:10px;min-height:150px;padding:10px;display:flex}.schedule-card{border:2px solid var(--primary-color);background:#fff;border-radius:6px;justify-content:space-between;align-items:center;padding:10px;transition:all .3s;display:flex}.schedule-card:hover{box-shadow:0 4px 12px color-mix(in srgb, var(--primary-color) 20%, transparent);transform:translateY(-2px)}.schedule-card.inactive{opacity:.5;border-color:#ccc}.schedule-info{flex:1}.schedule-title{color:#333;margin-bottom:4px;font-size:13px;font-weight:600}.schedule-time{color:#666;font-size:12px}.schedule-actions{gap:5px;display:flex}.btn-toggle,.btn-edit-small,.btn-delete-small{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:16px;transition:background .3s}.btn-toggle:hover{background:#f0f0f0}.btn-edit-small:hover{background:#e0e7ff}.btn-delete-small:hover{background:#fee}.no-stream-day{color:#999;text-align:center;padding:20px;font-size:13px;font-style:italic}.no-schedules{text-align:center;color:#666;padding:60px 20px}.no-schedules p:first-child{margin-bottom:10px;font-size:18px;font-weight:600}.no-schedules p:last-child{color:#999;font-size:14px}.success-message{color:#065f46;background:#d1fae5;border:1px solid #6ee7b7;border-radius:6px;margin-bottom:20px;padding:12px;font-size:14px}@media (width<=1200px){.schedule-grid{grid-template-columns:repeat(4,1fr)}}@media (width<=768px){.stream-schedule-container{padding:10px}.stream-schedule-header{flex-direction:column;align-items:stretch;gap:15px}.form-row,.schedule-grid{grid-template-columns:1fr}.day-schedules{min-height:auto}}.overnight-note{color:#d97706;margin:4px 0 8px;font-size:13px;font-weight:500}.category-badge{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;vertical-align:middle;letter-spacing:.3px;border-radius:10px;margin-left:6px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.statistics-container{max-width:1400px;margin:0 auto;padding:20px}.statistics-header{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:20px;display:flex;box-shadow:0 2px 8px #0000001a}.statistics-header h2{color:#333;margin:0;font-size:24px}.btn-refresh{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .3s}.btn-refresh:hover:not(:disabled){box-shadow:0 5px 20px color-mix(in srgb, var(--primary-color) 40%, transparent);transform:translateY(-2px)}.btn-refresh:disabled{opacity:.6;cursor:not-allowed}.summary-cards{grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px;display:grid}.summary-card{text-align:center;border-top:4px solid var(--primary-color);background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 8px #0000001a}.summary-value{color:var(--primary-color);margin-bottom:10px;font-size:36px;font-weight:700}.summary-label{color:#666;text-transform:uppercase;letter-spacing:.5px;font-size:14px;font-weight:500}.statistics-table-container{background:#fff;border-radius:12px;margin-bottom:20px;padding:20px;overflow-x:auto;box-shadow:0 2px 8px #0000001a}.statistics-table{border-collapse:collapse;width:100%}.statistics-table thead{background:#f9f9f9}.statistics-table th{text-align:left;color:#333;white-space:nowrap;border-bottom:2px solid #e0e0e0;padding:15px;font-size:14px;font-weight:600}.statistics-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .3s}.statistics-table th.sortable:hover{background:#f0f0f0}.statistics-table td{color:#666;border-bottom:1px solid #f0f0f0;padding:15px;font-size:14px}.statistics-table tbody tr:hover{background:#fafafa}.statistics-table tbody tr:last-child td{border-bottom:none}.mod-name{color:#333!important}.mod-name strong{font-size:15px}.time-display{flex-direction:column;gap:4px;display:flex}.time-large{color:#333;font-size:15px;font-weight:600}.time-small{color:#999;font-size:12px}.status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-block}.status-active{color:#065f46;background:#d1fae5}.status-recent{color:#1e40af;background:#dbeafe}.status-inactive{color:#92400e;background:#fef3c7}.status-very-inactive{color:#991b1b;background:#fee2e2}.status-never{color:#6b7280;background:#f3f4f6}.statistics-legend{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a}.statistics-legend h4{color:#333;margin:0 0 15px;font-size:16px}.legend-items{flex-wrap:wrap;gap:20px;display:flex}.legend-item{align-items:center;gap:10px;display:flex}.legend-item span:last-child{color:#666;font-size:13px}.loading{text-align:center;color:#666;padding:40px;font-size:16px}.no-stats{text-align:center;color:#666;padding:60px 20px}.no-stats p{margin-bottom:10px;font-size:18px;font-weight:600}@media (width<=1200px){.summary-cards{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.statistics-container{padding:10px}.statistics-header{flex-direction:column;align-items:stretch;gap:15px}.summary-cards{grid-template-columns:1fr}.statistics-table-container{overflow-x:auto}.statistics-table{min-width:700px}.legend-items{flex-direction:column;gap:10px}}.audit-log-container{max-width:1200px;margin:0 auto;padding:20px}.audit-log-header{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:20px;display:flex;box-shadow:0 2px 8px #0000001a}.audit-log-header h2{color:#333;margin:0;font-size:24px}.audit-log-count{color:#666;font-size:14px}.audit-log-table-wrapper{background:#fff;border-radius:12px;padding:20px;overflow-x:auto;box-shadow:0 2px 8px #0000001a}.audit-log-table{border-collapse:collapse;width:100%}.audit-log-table th{text-align:left;color:#666;white-space:nowrap;border-bottom:2px solid #e0e0e0;padding:12px 15px;font-size:13px;font-weight:600}.audit-log-table td{color:#333;border-bottom:1px solid #f0f0f0;padding:10px 15px;font-size:14px}.audit-log-table tbody tr:hover{background:#f9f9f9}.audit-time{white-space:nowrap;color:#888;font-size:13px}.audit-user{font-weight:500}.action-badge{white-space:nowrap;color:#555;background:#f0f0f0;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-block}.action-badge.action-login{color:#1e40af;background:#dbeafe}.action-badge.action-password_change,.action-badge.action-password_reset{color:#92400e;background:#fef3c7}.action-badge.action-user_created{color:#065f46;background:#d1fae5}.action-badge.action-user_deleted,.action-badge.action-schedule_deleted,.action-badge.action-onetime_deleted{color:#991b1b;background:#fee2e2}.action-badge.action-schedule_created,.action-badge.action-onetime_created{color:#5b21b6;background:#ede9fe}.action-badge.action-schedule_updated,.action-badge.action-settings_updated{color:#3730a3;background:#e0e7ff}.action-badge.action-schedule_activated{color:#065f46;background:#d1fae5}.action-badge.action-schedule_deactivated{color:#6b7280;background:#f3f4f6}.audit-details{color:#666;text-overflow:ellipsis;max-width:400px;font-size:13px;overflow:hidden}.audit-pagination{background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:16px;margin-top:20px;padding:15px;display:flex;box-shadow:0 2px 8px #0000001a}.audit-pagination button{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .3s}.audit-pagination button:disabled{cursor:not-allowed;background:#d1d5db}.audit-pagination button:not(:disabled):hover{opacity:.9;transform:translateY(-1px)}.audit-pagination span{color:#666;font-size:14px}.no-logs{text-align:center;color:#999;padding:40px;font-style:italic}.loading{text-align:center;color:#666;padding:40px}.error-message{color:#c33;background:#fee;border:1px solid #fcc;border-radius:6px;margin-bottom:20px;padding:12px;font-size:14px}@media (width<=768px){.audit-log-container{padding:10px}.audit-log-header{flex-direction:column;align-items:flex-start;gap:10px}.audit-log-table{min-width:600px}}@media (width<=480px){.audit-log-header h2{font-size:20px}.audit-pagination button{min-height:44px;padding:8px 14px}}.dashboard{max-width:1200px;margin:0 auto;padding:20px}.dashboard-header{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:20px;display:flex;box-shadow:0 2px 8px #0000001a}.dark .dashboard-header{background:#1e1e2e}.dashboard-header h2{color:#333;margin:0;font-size:24px}.dashboard-date{color:#666;font-size:14px;font-weight:500}.dashboard-stats{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px;display:grid}.stat-card{text-align:center;background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a}.stat-number{color:var(--primary-color);margin-bottom:5px;font-size:32px;font-weight:700}.stat-label{color:#666;font-size:13px;font-weight:500}.dashboard-grid{grid-template-columns:2fr 1fr;gap:20px;display:grid}.dashboard-section{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a}.dashboard-section h3{color:#333;margin:0 0 15px;font-size:18px}.upcoming-days{gap:10px;padding-bottom:5px;display:flex;overflow-x:auto}.upcoming-day{background:#fafafa;border:2px solid #e0e0e0;border-radius:10px;flex:1;min-width:130px;padding:12px;transition:all .2s}.upcoming-day.today{border-color:var(--primary-color);background:linear-gradient(135deg,#667eea0d,#764ba20d)}.upcoming-day.has-stream{background:#fffbeb;border-color:#f59e0b}.upcoming-day.today.has-stream{border-color:var(--primary-color);background:linear-gradient(135deg,#667eea0d,#fffbeb)}.upcoming-day-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;display:flex}.upcoming-day-header strong{color:#333;font-size:14px}.upcoming-day-header span{color:#999;font-size:12px}.upcoming-streams{margin-bottom:6px}.upcoming-stream-item{flex-direction:column;gap:2px;margin-bottom:4px;display:flex}.stream-title-small{color:#92400e;font-size:12px;font-weight:600}.stream-time-small{color:#78350f;font-size:11px}.no-stream-day{color:#ccc;padding:4px 0;font-size:12px;font-style:italic}.upcoming-mods{flex-wrap:wrap;gap:6px;margin-top:4px;font-size:12px;font-weight:500;display:flex}.upcoming-mod-platform{border-radius:4px;align-items:center;gap:2px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-flex}.upcoming-mod-platform.twitch{color:#9146ff;background:#9146ff1f}.upcoming-mod-platform.tiktok{color:#333;background:#00000014}.dark .upcoming-mod-platform.tiktok{color:#e0e0e0;background:#ffffff1a}.upcoming-notes{margin-top:6px}.upcoming-note-item{color:#666;background:#f0f0f0;border-radius:4px;margin-top:3px;padding:4px 6px;font-size:11px}.coverage-streams{margin-bottom:15px}.coverage-stream{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;flex-direction:column;gap:4px;margin-bottom:8px;padding:10px 12px;display:flex}.coverage-stream strong{color:#92400e;font-size:14px}.coverage-stream span{color:#78350f;font-size:13px}.no-streams-today{color:#999;text-align:center;background:#f9f9f9;border-radius:8px;margin-bottom:15px;padding:15px;font-style:italic}.coverage-mods h4{color:#333;margin:0 0 10px;font-size:15px}.no-mods-today{color:#999;text-align:center;padding:10px;font-size:13px;font-style:italic}.coverage-mod{background:#f0f0f0;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:8px 12px;display:flex}.mod-name-row{align-items:center;gap:6px;display:flex}.mod-avatar{object-fit:cover;border-radius:50%;width:22px;height:22px}.mod-name{color:#333;font-size:13px;font-weight:600}.mod-platform{border-radius:3px;padding:1px 4px;font-size:10px;font-weight:600}.mod-platform.twitch{color:#9146ff;background:#9146ff1a}.mod-platform.tiktok{color:#333;background:#0000000f}.dark .mod-platform.tiktok{color:#e0e0e0;background:#ffffff1a}.mod-time{color:#666;font-size:12px}.announcement-banner{background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border:2px solid #f59e0b;border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:20px;padding:14px 18px;display:flex;box-shadow:0 2px 8px #f59e0b26}.dark .announcement-banner{background:linear-gradient(135deg,#422006 0%,#78350f 100%);border-color:#d97706}.announcement-icon{flex-shrink:0;margin-top:1px;font-size:18px}.announcement-text{color:#78350f;word-break:break-word;font-size:14px;font-weight:500;line-height:1.5}.dark .announcement-text{color:#fde68a}.category-badge-small{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff;vertical-align:middle;letter-spacing:.3px;border-radius:8px;margin-left:4px;padding:1px 6px;font-size:9px;font-weight:600;display:inline-block}@media (width<=768px){.dashboard{padding:10px}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.upcoming-days{flex-wrap:nowrap;overflow-x:auto}.upcoming-day{min-width:120px}.dashboard-header{flex-direction:column;align-items:flex-start;gap:5px}}@media (width<=480px){.dashboard-stats{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:12px}.stat-number{font-size:24px}.stat-label{font-size:11px}.dashboard-header h2{font-size:20px}.upcoming-day{min-width:100px}.dashboard-section{padding:12px}}.privacy-container{max-width:800px;min-height:100vh;margin:0 auto;padding:40px 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.privacy-container h1{color:#333;margin-bottom:8px;font-size:32px}.privacy-updated{color:#888;margin-bottom:32px;font-size:14px}.privacy-container h2{color:#444;border-bottom:1px solid #eee;margin-top:32px;margin-bottom:12px;padding-bottom:6px;font-size:20px}.privacy-container p{color:#555;margin-bottom:12px;font-size:15px;line-height:1.7}.privacy-container ul{color:#555;margin-bottom:12px;padding-left:24px;font-size:15px;line-height:1.7}.privacy-container li{margin-bottom:6px}.privacy-back{color:var(--primary-color,#667eea);cursor:pointer;background:0 0;border:none;margin-bottom:24px;padding:0;font-family:inherit;font-size:15px;text-decoration:none;display:inline-block}.privacy-back:hover{text-decoration:underline}.dark .privacy-container h1{color:#eee}.dark .privacy-container h2{color:#ddd;border-bottom-color:#444}.dark .privacy-container p,.dark .privacy-container ul{color:#bbb}.dark .privacy-updated{color:#888}*{box-sizing:border-box;margin:0;padding:0}:root{--primary-color:#667eea;--secondary-color:#764ba2}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.app{flex-direction:column;min-height:100vh;display:flex}.navbar{background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:15px 30px;display:flex;box-shadow:0 2px 8px #0000001a}.navbar-brand h1{color:#333;align-items:center;gap:10px;margin:0;font-size:24px;display:flex}.app-logo{object-fit:contain;border-radius:4px;width:32px;height:32px}.navbar-menu{flex-wrap:wrap;gap:10px;display:flex}.navbar-menu button{cursor:pointer;color:#666;background:0 0;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .3s}.navbar-menu button:hover{color:#333;background:#f0f0f0}.navbar-menu button.active{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);color:#fff}.navbar-user{align-items:center;gap:15px;display:flex}.user-info{color:#333;font-size:14px;font-weight:500}.btn-logout{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .3s}.btn-logout:hover{background:#dc2626;transform:translateY(-2px)}.main-content{flex:1;padding:20px}.loading-screen{background:linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:5px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:50px;height:50px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn-theme-toggle{cursor:pointer;background:0 0;border:2px solid #e0e0e0;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:18px;transition:all .3s;display:flex}.btn-theme-toggle:hover{background:#f0f0f0;transform:scale(1.1)}.navbar-avatar{object-fit:cover;border:2px solid #e0e0e0;border-radius:50%;width:30px;height:30px}.dark .navbar-avatar{border-color:#444}.hamburger-btn{cursor:pointer;color:#333;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:24px;display:none}.dark .hamburger-btn{color:#e0e0e0}.hamburger-btn:hover{background:#f0f0f0}.dark .hamburger-btn:hover{background:#2a2a3e}html.dark body{background:#0f0f1a}.dark .navbar{background:#1a1a2e;box-shadow:0 2px 8px #0006}.dark .navbar-brand h1{color:#e0e0e0}.dark .navbar-menu button{color:#aaa}.dark .navbar-menu button:hover{color:#ddd;background:#2a2a3e}.dark .user-info{color:#e0e0e0}.dark .btn-theme-toggle{border-color:#444}.dark .btn-theme-toggle:hover{background:#2a2a3e}.dark .calendar-header{background:#1a1a2e;box-shadow:0 2px 8px #0006}.dark .calendar-header h2{color:#e0e0e0}.dark .calendar-day-name{color:#aaa}.dark .calendar-body{background:#1a1a2e;box-shadow:0 2px 8px #0006}.dark .calendar-cell{background:#1e1e32;border-color:#333}.dark .calendar-cell:hover:not(.disabled){border-color:var(--primary-color);box-shadow:0 4px 12px #667eea33}.dark .calendar-cell.disabled{color:#555;background:#151525}.dark .calendar-cell.has-availability{background:linear-gradient(135deg,#1e2040 0%,#2a1e3a 100%)}.dark .calendar-cell.has-stream{background:linear-gradient(135deg,#2a2510 0%,#332d10 100%);border-color:#7a5f10}.dark .calendar-cell.has-availability.has-stream{background:linear-gradient(135deg,#1e2040 0%,#2a2510 100%)}.dark .day-number{color:#e0e0e0}.dark .availability-indicator{color:#8fa4f0}.dark .modal-content{background:#1a1a2e;box-shadow:0 10px 40px #0009}.dark .modal-header{border-bottom-color:#333}.dark .modal-header h3{color:#e0e0e0}.dark .close-btn{color:#aaa}.dark .close-btn:hover{background:#2a2a3e}.dark .stream-schedule-section{background:#2a2510;border-color:#7a5f10}.dark .stream-schedule-section h4{color:#e0b040}.dark .stream-entry{background:#1e1e32;border-color:#5a4a10}.dark .stream-entry .entry-info strong{color:#e0b040}.dark .stream-entry .entry-info span{color:#c8a040}.dark .availability-list h4,.dark .add-availability-form h4{color:#e0e0e0}.dark .no-availability{color:#666;background:#1e1e32}.dark .availability-entry{background:#1e1e32;border-color:#333}.dark .entry-info strong{color:#e0e0e0}.dark .entry-info span{color:#aaa}.dark .add-availability-form{background:#1e1e32;border-color:#333}.dark .form-group label{color:#ccc}.dark .form-group input,.dark .form-group select,.dark .form-group textarea{color:#e0e0e0;background:#252540;border-color:#444}.dark .form-group input:focus,.dark .form-group select:focus,.dark .form-group textarea:focus{border-color:var(--primary-color)}.dark .btn-secondary{color:#ddd;background:#333}.dark .btn-secondary:hover{background:#444}.dark .admin-panel .admin-header,.dark .admin-panel .add-user-form,.dark .admin-panel .users-table{background:#1a1a2e;box-shadow:0 2px 8px #0006}.dark .admin-header h2,.dark .add-user-form h3{color:#e0e0e0}.dark .users-table th{color:#aaa;border-bottom-color:#333}.dark .users-table td{color:#ddd;border-bottom-color:#2a2a3e}.dark .users-table tbody tr:hover{background:#1e1e32}.dark .settings-panel{background:#1a1a2e;box-shadow:0 2px 8px #0006}.dark .settings-panel h2,.dark .settings-panel h3{color:#e0e0e0}.dark .settings-section{border-bottom-color:#333}.dark .section-description,.dark .field-description{color:#888}.dark .dashboard-header,.dark .stat-card,.dark .dashboard-section{background:#1a1a2e;box-shadow:0 2px 8px #0006}.dark .dashboard-header h2,.dark .dashboard-section h3{color:#e0e0e0}.dark .dashboard-date,.dark .stat-label{color:#888}.dark .upcoming-day{background:#1e1e32;border-color:#333}.dark .upcoming-day.today{background:linear-gradient(135deg,#667eea1a,#764ba21a)}.dark .upcoming-day.has-stream{background:#2a2510;border-color:#7a5f10}.dark .upcoming-day-header{border-bottom-color:#333}.dark .upcoming-day-header strong{color:#e0e0e0}.dark .upcoming-day-header span{color:#666}.dark .no-stream-day{color:#555}.dark .coverage-stream{background:#2a2510;border-color:#5a4a10}.dark .coverage-stream strong{color:#e0b040}.dark .coverage-stream span{color:#c8a040}.dark .no-streams-today,.dark .no-mods-today{color:#666;background:#1e1e32}.dark .coverage-mods h4{color:#e0e0e0}.dark .coverage-mod{background:#1e1e32}.dark .mod-name{color:#e0e0e0}.dark .mod-time{color:#888}.dark .upcoming-note-item{color:#bbb;background:#252540}.dark .audit-log-container .audit-log-header,.dark .audit-log-container .audit-log-table-wrapper{background:#1a1a2e;box-shadow:0 2px 8px #0006}.dark .audit-log-container h2{color:#e0e0e0}.dark .audit-log-table th{color:#aaa;border-bottom-color:#333}.dark .audit-log-table td{color:#ddd;border-bottom-color:#2a2a3e}.dark .notes-section{background:#1e2040;border-color:#4a5080}.dark .notes-section h4{color:#b0b8f0}.dark .note-item{background:#1e1e32;border-color:#333}.dark .note-item .note-text{color:#ddd}.dark .note-meta{color:#777}.dark .error-message{color:#f87171;background:#3a1515;border-color:#5a2020}.dark .success-message{color:#6ee7b7;background:#0a3a1a;border-color:#105030}@media (width<=768px){.navbar{flex-direction:column;align-items:stretch;gap:0;padding:10px 15px}.navbar-brand{justify-content:space-between;align-items:center;display:flex}.navbar-brand h1{font-size:18px}.hamburger-btn{display:block}.navbar-menu{flex-direction:column;gap:4px;padding:10px 0;display:none}.navbar-menu.open{display:flex}.navbar-menu button{text-align:left;min-height:44px;padding:12px 16px;font-size:15px}.navbar-user{border-top:1px solid #e0e0e0;flex-wrap:wrap;justify-content:center;margin-top:4px;padding-top:8px}.dark .navbar-user{border-top-color:#333}.main-content{padding:10px}.user-info{font-size:13px}.btn-logout{padding:6px 12px;font-size:13px}}@media (width<=480px){.navbar{padding:8px 10px}.navbar-brand h1{font-size:16px}.app-logo{width:26px;height:26px}.main-content{padding:6px}input,select,textarea{font-size:16px!important}button,.btn-primary,.btn-secondary,.navbar-menu button{min-height:44px}}:focus-visible{outline:3px solid var(--primary-color,#667eea);outline-offset:3px}.session-banner{color:#503c00;text-align:center;background:#fff3cd;padding:1rem}.calendar-dialog{background:var(--bg-primary,white);width:min(92vw,700px);max-height:90dvh;color:inherit;border:0;border-radius:14px;padding:0}.calendar-dialog::backdrop{background:#0009}.calendar-dialog .modal-content{width:100%;max-height:none;box-shadow:none;margin:0}.calendar-dialog label{margin:.75rem 0;display:block}.calendar-dialog label input,.calendar-dialog label select{width:100%;margin-top:.35rem;padding:.65rem;display:block}.my-shifts{margin-bottom:1.5rem}.shift-list{padding:0;list-style:none}.shift-list li{border-bottom:1px solid #aaa5;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.shift-list p{margin:.4rem 0}.shift-list button{flex-shrink:0;min-height:44px;padding:.65rem 1rem}.coverage-status{border-radius:6px;margin-top:.5rem;padding:.75rem}.coverage-status.gap{color:#6a3900;background:#fff2d7}.coverage-status.covered{color:#185e32;background:#e4f4e9}.coverage-status p{margin:.4rem 0}@media (width<=600px){.shift-list li{flex-direction:column;align-items:flex-start}.shift-list button{width:100%}}
