/* Desktop widgets share a single native-flow column. Window and shortcut state stay independent. */
.desktop-overview { position: absolute; top: 20px; right: 20px; bottom: calc(var(--taskbar-height, 56px) + var(--taskbar-bottom, 12px) + 24px); width: 390px; z-index: 1100; display: flex; flex-direction: column; color: var(--primary-text); background: var(--surface-1, #101217); border: 1px solid var(--panel-border); border-radius: var(--radius-lg); overflow: hidden; box-shadow: -12px 16px 60px #0005; transform: translateX(calc(100% + 24px)); visibility: hidden; pointer-events: none; transition: transform .32s cubic-bezier(.2,.8,.2,1), visibility 0s .32s; }
.desktop-overview.is-open { transform: translateX(0); visibility: visible; pointer-events: auto; transition-delay: 0s; }
.overview-close { position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--secondary-text); font-size: 24px; cursor: pointer; }
.overview-close:hover { background: #c6a56b14; color: #c6a56b; }
.overview-restore { border: 0; border-top: 1px solid var(--panel-border); padding: 12px; background: transparent; color: #c6a56b; font: inherit; font-size: 11px; cursor: pointer; }

.overview-heading { padding: 24px 24px 20px; display: flex; flex-direction: column; gap: 7px; border-bottom: 1px solid var(--panel-border); }
.overview-heading span { font-size: 10px; letter-spacing: .16em; color: #c6a56b; font-weight: 600; }
.overview-heading time { font-size: 19px; font-weight: 500; color: var(--primary-text-strong); }
.overview-content { overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #c6a56b40 transparent; min-height: 0; display: flex; flex-direction: column; padding: 0 24px; }
.overview-content:focus-visible { outline: 2px solid #c6a56b; outline-offset: -3px; }
.desktop-overview [data-widget-id] { position: static; flex: none; width: 100%; padding: 22px 0; border: 0; border-bottom: 1px solid var(--panel-border); background: transparent; border-radius: 0; box-shadow: none; transform: none; animation: none; }
.desktop-overview [data-widget-id="notification-inbox"] { border-bottom: 0; }
.desktop-overview [data-widget-id="mission-alert"] { order: 0; }
.desktop-overview [data-widget-id="my-missions-widget"] { order: 1; }
.desktop-overview [data-widget-id="notification-widget"] { order: 2; }
.desktop-overview [data-widget-id="calendar-widget"] { order: 3; }
.desktop-overview [data-widget-id="mission-info-widget"] { order: 4; }
.desktop-overview [data-widget-id="desktop-widget"] { order: 5; }
.desktop-overview :is(.widget-header,.notification-widget-header,.my-missions-header,.info-widget-header) { display: flex; align-items: center; gap: 9px; margin-bottom: 15px; color: var(--primary-text-strong); font-size: 15px; font-weight: 600; }
.desktop-overview :is(.unread-badge,.mission-count-badge) { margin-left: auto; min-width: 24px; padding: 2px 6px; border-radius: var(--radius-pill); background: #c6a56b18; color: #c6a56b; font-size: 11px; text-align: center; }
.desktop-overview :is(.widget-footer,.notification-widget-footer,.my-missions-footer,.info-widget-footer) { margin-top: 12px; color: var(--secondary-text); font-size: 11px; line-height: 1.6; }
.desktop-overview :is(.widget-content,.notification-widget-content,.my-missions-content,.info-widget-content) { display: flex; flex-direction: column; gap: 4px; }
.desktop-overview :is(.mission-alert-item,.notification-item,.my-mission-item,.mission-info-item) { display: flex; gap: 10px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--panel-border); }
.desktop-overview :is(.mission-alert-item,.my-mission-item,.mission-info-item) { cursor: pointer; }
.desktop-overview :is(.mission-info,.my-mission-details,.mission-details,.notification-details) { flex: 1; min-width: 0; }
.desktop-overview :is(.mission-title,.my-mission-title,.mission-title-info,.notification-message) { font-size: 13px; line-height: 1.5; font-weight: 600; overflow-wrap: anywhere; color: var(--primary-text-strong); }
.desktop-overview :is(.mission-meta,.my-mission-meta,.mission-meta-info,.notification-meta,.gathering-location) { display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: 11px; line-height: 1.6; margin-top: 5px; color: var(--secondary-text); }
.desktop-overview :is(.mission-priority,.mission-priority-small) { font-size: 10px; font-weight: 700; color: #c6a56b; border-left: 2px solid currentColor; padding-left: 7px; }
.desktop-overview .priority-critical { color: var(--error-color); }
.desktop-overview .urgent > .widget-header { color: var(--warning-color); }
.desktop-overview .notification-type-icon { flex: none; color: #c6a56b; }
.desktop-overview .notification-actions { display: flex; flex-direction: column; }
.desktop-overview .widget-open { display: block; background: transparent; border: 0; padding: 0; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.desktop-overview :is(button,[role="button"]):focus-visible { outline: 2px solid #c6a56b; outline-offset: 3px; border-radius: var(--radius-sm); }
.desktop-overview .date-display { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: var(--secondary-text); }
.desktop-overview .date-day { font-size: 15px; color: #c6a56b; }
.desktop-overview .countdown-display { color: #c6a56b; font-size: 12px; max-width: 80px; }
.desktop-overview .countdown-icon { display: none; }
.desktop-overview :is(.more-missions,.more-notifications,.more-my-missions,.more-missions-info) { font-size: 12px; color: #c6a56b; padding-top: 8px; }
.desktop-overview .event-group + .event-group { margin-top: 12px; }
.desktop-overview .group-title { font-size: 10px; letter-spacing: .09em; color: #c6a56b; margin: 4px 0; text-transform: uppercase; }
.desktop-overview .event-item { display: block; width: 100%; padding: 12px 0; border: 0; border-bottom: 1px solid var(--panel-border); background: transparent; font: inherit; text-align: left; cursor: pointer; color: var(--primary-text-strong); }
.desktop-overview .event-subject { font-size: 13px; font-weight: 600; line-height: 1.5; }
.desktop-overview .event-time { margin-top: 5px; font-size: 11px; color: var(--secondary-text); }
.desktop-overview .event-item:hover .event-subject, .desktop-overview .widget-open:hover .notification-message { color: #c6a56b; }
.desktop-overview .widget-text-action { font: inherit; font-size: 11px; color: #c6a56b; border: 0; background: transparent; padding: 5px 0; cursor: pointer; margin-left: auto; }
.desktop-overview .widget-empty { font-size: 13px; color: var(--secondary-text); line-height: 1.7; }
.desktop-overview .widget-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 7px 0; font-size: 11px; }
.desktop-overview .widget-row .label { color: var(--secondary-text); }
.desktop-overview .widget-row .value { font-weight: 600; }
.desktop-overview .status-ok { color: var(--success-color); }
.desktop-overview :is(.status-warning,.update-pending) { color: var(--warning-color); }
.desktop-overview .status-error { color: var(--error-color); }
.desktop-overview :is(.status-link,.update-ready) { cursor: pointer; }
.desktop-overview .update-ready { color: #c6a56b; border-bottom: 1px solid currentColor; }
.desktop-overview .widget-alert { padding: 12px 0; color: var(--warning-color); font-size: 12px; cursor: pointer; }
.desktop-overview .alert-link { margin-top: 5px; text-decoration: underline; }
.desktop-overview .widget-decoration { display: none; }
@media (max-width: 1150px) { .desktop-overview { width: 330px; right: 20px; top: 20px; } .overview-content { padding-inline: 20px; } }

/* Portal-owned inbox: a single list, readable history, explicit unread state. */
.desktop-overview .notification-menu { order: 5; width: 100%; }
.notification-menu-header { display: flex; align-items: center; justify-content: space-between; padding: 0 0 10px; }
.notification-menu-title { font-size: 15px; font-weight: 600; color: var(--primary-text-strong); }
.notification-filters { display: flex; gap: 20px; padding: 0; border-bottom: 1px solid var(--panel-border); }
.notification-filter { padding: 12px 0; color: var(--secondary-text); background: transparent; border: 0; border-bottom: 2px solid transparent; cursor: pointer; font: inherit; font-size: 12px; }
.notification-filter[aria-pressed="true"] { border-bottom-color: #c6a56b; color: #c6a56b; }
.notification-filter:focus-visible { outline: 2px solid #c6a56b; outline-offset: -2px; }
.notification-menu-content { padding: 0 8px; scrollbar-width: thin; }
.notification-menu-item { display: flex; gap: 8px; align-items: center; padding: 17px 8px; border-bottom: 1px solid var(--panel-border); position: relative; }
.notification-menu-item.unread::before, .notification-menu-item.highlighted::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: #c6a56b; position: absolute; left: -7px; top: 23px; }
.notification-menu-item:hover { background: rgba(var(--primary-text-rgb), .025); }
.notification-menu-icon { color: #c6a56b; flex: none; margin-top: 2px; }
.notification-menu-details { flex: 1; min-width: 0; }
.notification-menu-message { font-size: 13px; font-weight: 500; line-height: 1.6; color: var(--primary-text-strong); overflow-wrap: anywhere; }
.notification-menu-item.read .notification-menu-message { color: var(--secondary-text); }
.notification-menu-meta { display: flex; flex-wrap: wrap; gap: 5px; font-size: 11px; line-height: 1.6; color: var(--secondary-text); margin-top: 6px; }
.notification-empty { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 48px 24px; text-align: center; font-size: 13px; color: var(--secondary-text); }
.notification-menu-footer { border-top: 1px solid var(--panel-border); display: flex; justify-content: flex-end; padding: 10px 18px; }

/* The same theme colors identify appointment types in the calendar and desktop hints. */
.event-type-0 { --notice-color: var(--calendar-type-0-color); }
.event-type-1 { --notice-color: var(--calendar-type-1-color); }
.event-type-2 { --notice-color: var(--calendar-type-2-color); }
.event-type-3 { --notice-color: var(--calendar-type-3-color); }
.event-type-4 { --notice-color: var(--calendar-type-4-color); }
.desktop-overview .group-title { color: var(--notice-color, #c6a56b); }
.desktop-overview .event-item { border-left: 2px solid var(--notice-color, #c6a56b); padding-left: 12px; margin-block: 6px; }
.desktop-notices { position: absolute; right: 28px; bottom: calc(var(--taskbar-height, 56px) + var(--taskbar-bottom, 12px) + 24px); display: flex; flex-direction: column; gap: 8px; z-index: 1050; width: 350px; max-height: calc(100dvh - 145px); overflow-y: auto; }
.desktop-notice { display: flex; align-items: center; border: 1px solid #ffffff18; border-left: 2px solid var(--notice-color, #c6a56b); border-radius: var(--radius-md); background: var(--surface-1); box-shadow: 0 8px 30px #0003; }
.rsi-notice { --notice-color: var(--warning-color); }
.notice-open { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1; padding: 15px 12px; background: transparent; border: 0; text-align: left; color: #e7ddca; cursor: pointer; font: inherit; }
.notice-open strong { display: block; color: var(--notice-color, #c6a56b); font-size: 13px; font-weight: 600; }
.notice-open small { display: block; font-size: 11px; line-height: 1.6; color: #bbb8b0; margin-top: 4px; }
.notice-dot { flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--notice-color, #c6a56b); }
.notice-dismiss { flex: none; align-self: stretch; width: 34px; border: 0; background: transparent; color: #aaa; font-size: 20px; cursor: pointer; }
.notice-dismiss:hover { color: #e7ddca; }
.desktop-notices button:focus-visible, .overview-close:focus-visible { outline: 2px solid #c6a56b; outline-offset: -3px; border-radius: var(--radius-md); }
.connection-system-status .widget-content { display: flex; flex-direction: column; gap: 5px; }
.connection-system-status .widget-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; font-size: 12px; padding: 10px 0; border-bottom: 1px solid var(--panel-border); }
.connection-system-status .label { color: var(--secondary-text); }
.connection-system-status .value { font-weight: 600; }
.connection-system-status .status-ok { color: var(--success-color); }
.connection-system-status :is(.status-warning,.update-pending) { color: var(--warning-color); }
.connection-system-status .status-link { cursor: pointer; }
.connection-system-status .update-ready { cursor: pointer; color: #c6a56b; }
.connection-system-status .widget-decoration { display: none; }
.connection-system-status .widget-alert { font-size: 12px; padding-top: 12px; color: var(--warning-color); cursor: pointer; }
.connection-system-status .alert-link { padding-top: 6px; text-decoration: underline; }
.connection-system-status [role="button"]:focus-visible { outline: 2px solid #c6a56b; outline-offset: 3px; }
.taskbar .notification-tray-button.active { color: #c6a56b; background: #c6a56b18; }
@media (prefers-reduced-motion: reduce) { .desktop-overview { transition: none; } }
