.task-launcher {
    --task-level-color: #16a34a;
    --task-level-text: #fff;
    position: fixed;
    right: 2rem;
    bottom: 6.4rem;
    width: 58px;
    height: 58px;
    padding: 0;
    z-index: 1090;
    display: grid;
    place-items: center;
    border: 3px solid rgba(255, 255, 255, .22);
    border-radius: 50%;
    color: var(--task-level-text);
    background: var(--task-level-color);
    box-shadow: 0 0 17px color-mix(in srgb, var(--task-level-color) 52%, transparent);
    transition: background-color .25s ease, box-shadow .25s ease, transform .2s ease;
}

.task-launcher::before {
    content: "";
    position: absolute;
    inset: -9px;
    z-index: -1;
    border-radius: 50%;
    background: var(--task-level-color);
    filter: blur(10px);
    opacity: 0;
    pointer-events: none;
}

.task-launcher .task-count {
    position: static;
    min-width: 0;
    height: auto;
    padding: 0;
    border: 0;
    color: inherit;
    background: transparent;
    font-size: 1.1rem;
    font-weight: 850;
    line-height: 1;
}

.task-launcher.task-level-green { --task-level-color: #16a34a; }
.task-launcher.task-level-yellow { --task-level-color: #facc15; --task-level-text: #422006; }
.task-launcher.task-level-orange { --task-level-color: #f97316; }
.task-launcher.task-level-red { --task-level-color: #dc2626; }
.task-launcher.task-level-yellow::before { animation: task-launcher-glow 2.4s ease-in-out infinite; }
.task-launcher.task-level-orange::before { animation: task-launcher-glow 1.35s ease-in-out infinite; }
.task-launcher.task-level-red::before { animation: task-launcher-glow .65s ease-in-out infinite; }

@keyframes task-launcher-glow {
    0%, 100% { opacity: .18; transform: scale(.88); }
    50% { opacity: .88; transform: scale(1.18); }
}

.task-panel {
    position: fixed;
    right: 2rem;
    bottom: 10.7rem;
    width: min(410px, calc(100vw - 2rem));
    max-height: min(680px, calc(100vh - 13rem));
    z-index: 1089;
    padding: 0;
    overflow: hidden;
    display: none;
    flex-direction: column;
}

.task-panel.active { display: flex; }
.reception-page .task-launcher,
.reception-page .task-panel,
.office-page .task-launcher,
.office-page .task-panel { display: none !important; }

.embedded-task-traffic {
    --task-level-color: #16a34a;
    --task-level-text: #fff;
    position: relative;
    isolation: isolate;
    width: 48px;
    height: 48px;
    min-width: 48px;
    display: grid;
    place-items: center;
    border: 3px solid rgba(255,255,255,.22);
    border-radius: 50%;
    color: var(--task-level-text);
    background: var(--task-level-color);
    font-size: 1rem;
    font-weight: 850;
    box-shadow: 0 0 16px color-mix(in srgb, var(--task-level-color) 52%, transparent);
}

.embedded-task-traffic::before {
    content: "";
    position: absolute;
    inset: -8px;
    z-index: -1;
    border-radius: 50%;
    background: var(--task-level-color);
    filter: blur(9px);
    opacity: 0;
}

.embedded-task-traffic.task-level-green { --task-level-color: #16a34a; }
.embedded-task-traffic.task-level-yellow { --task-level-color: #facc15; --task-level-text: #422006; }
.embedded-task-traffic.task-level-orange { --task-level-color: #f97316; }
.embedded-task-traffic.task-level-red { --task-level-color: #dc2626; }
.embedded-task-traffic.task-level-yellow::before { animation: task-launcher-glow 2.4s ease-in-out infinite; }
.embedded-task-traffic.task-level-orange::before { animation: task-launcher-glow 1.35s ease-in-out infinite; }
.embedded-task-traffic.task-level-red::before { animation: task-launcher-glow .65s ease-in-out infinite; }
.task-panel-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.1rem; border-bottom: 1px solid var(--border-color); }
.task-panel-header > div { display: grid; gap: .15rem; }
.task-panel-header small { color: var(--text-muted); }
.my-task-list { display: grid; gap: .75rem; padding: 1rem; overflow: auto; }
.my-task-empty { padding: 2rem 1rem; color: var(--text-muted); text-align: center; }
.my-task-card { padding: 1rem; border: 1px solid var(--border-color); border-radius: var(--radius-sm); background: rgba(255,255,255,.025); display: grid; gap: .6rem; }
.my-task-card.personal { border-color: rgba(139,92,246,.38); }
.my-task-card.operational { border-left: 3px solid rgba(6,182,212,.62); background: rgba(6,182,212,.035); }
.my-task-card h4 { font-size: 1rem; overflow-wrap: anywhere; }
.my-task-card p { color: var(--text-muted); font-size: .86rem; overflow-wrap: anywhere; }
.my-task-eyebrow { color: var(--primary); font-size: .66rem; font-weight: 800; letter-spacing: .08em; }
.my-task-no-instructions { padding: .55rem .65rem; border: 1px dashed var(--border-color); border-radius: var(--radius-sm); }
.my-task-meta { display: flex; gap: .45rem; flex-wrap: wrap; }
.my-task-meta span { padding: .25rem .5rem; border: 1px solid var(--border-color); border-radius: 999px; color: var(--text-muted); font-size: .72rem; }
.my-task-card button { width: 100%; padding: .65rem; }
.my-task-card.overdue { border-color: rgba(239,68,68,.5); }

.task-login-notification {
    position: fixed;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -46%) scale(.94);
    z-index: 9210;
    width: min(520px, calc(100vw - 2rem));
    padding: 1.4rem;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    border: 2px solid rgba(6,182,212,.38);
    box-shadow: var(--shadow-glow), 0 24px 70px rgba(0,0,0,.4);
    transition: .25s ease;
}

.task-login-notification.active { opacity: 1; pointer-events: auto; visibility: visible; transform: translate(-50%, -50%) scale(1); }
.task-notification-icon { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg,var(--primary),var(--accent)); }
.task-login-notification small { color: var(--primary); font-weight: 800; letter-spacing: .12em; }
.task-login-notification strong { display: block; margin: .25rem 0; font-size: 1.25rem; }
.task-login-notification p { color: var(--text-muted); }
.task-notification-actions { display: flex; gap: .6rem; margin-top: 1rem; }

@media (prefers-reduced-motion: reduce) {
    .task-launcher.task-level-yellow::before,
    .task-launcher.task-level-orange::before,
    .task-launcher.task-level-red::before,
    .embedded-task-traffic.task-level-yellow::before,
    .embedded-task-traffic.task-level-orange::before,
    .embedded-task-traffic.task-level-red::before { animation: none; opacity: .42; transform: scale(1.04); }
}

@media (max-width: 600px) {
    .task-launcher { right: 1rem; bottom: 5.8rem; }
    .task-panel { right: 1rem; bottom: 9.8rem; max-height: calc(100vh - 11rem); }
    .task-login-notification { grid-template-columns: 1fr; }
    .task-notification-icon { width: 44px; height: 44px; }
    .task-notification-actions button { flex: 1; }
}
