.chart-wrap.chart-empty::after {
    content: attr(data-empty-message);
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #8291a3;
    font-size: .78rem;
    background: radial-gradient(circle, rgba(255, 255, 255, .28), transparent 68%);
}

.compact-info-card { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 1.1rem; border: 1px solid rgba(255,255,255,.55); border-radius: 1rem; background: rgba(245,250,255,.58); }
.compact-info-card > i { display: grid; flex: 0 0 2.3rem; width: 2.3rem; height: 2.3rem; place-items: center; border-radius: .8rem; color: #0f6ab8; background: rgba(44,139,217,.13); }
.compact-info-card strong { color: #183b70; display: block; }
.compact-info-card p { margin: .15rem 0 0; color: #64758a; font-size: .9rem; }
.receipt-card { max-width: 760px; padding: 2.6rem; }
.receipt-code { margin: 1.6rem auto; padding: .9rem 1rem; max-width: 480px; border: 1px dashed #5e97c4; border-radius: .8rem; color: #17467e; background: rgba(220,240,255,.45); font: 700 clamp(.9rem, 2.6vw, 1.2rem)/1.35 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; word-break: break-all; }
.receipt-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 620px; gap: .85rem 1.2rem; }
.receipt-details div { padding: .7rem 0; border-bottom: 1px solid rgba(91,124,160,.16); }
.receipt-details span, .receipt-details strong { display: block; }
.receipt-details span { color: #78879a; font-size: .78rem; }
.receipt-details strong { color: #263b59; font-size: .9rem; margin-top: .2rem; }
.tracking-timeline { position: relative; padding-left: .3rem; }
.timeline-item { position: relative; display: grid; grid-template-columns: 1.5rem 1fr; gap: .75rem; padding-bottom: 1.35rem; }
.timeline-item:not(:last-child)::before { content: ''; position: absolute; left: .62rem; top: 1.35rem; bottom: 0; width: 2px; background: rgba(81,130,177,.22); }
.timeline-dot { width: 1.25rem; height: 1.25rem; display: block; position: relative; z-index: 1; border: 3px solid rgba(255,255,255,.85); box-shadow: 0 0 0 1px rgba(43,103,164,.18); border-radius: 50%; }
.timeline-item strong { display: block; color: #203c64; font-size: .95rem; }
.timeline-item p { margin: .18rem 0; color: #64758a; font-size: .9rem; }
.timeline-item small { color: #8492a5; }
.tracking-timeline.compact .timeline-item { padding-bottom: .9rem; }
.tracking-timeline.compact .timeline-item p { font-size: .8rem; }
.report-card { display: flex; flex-direction: column; gap: .8rem; padding: 1.5rem; }
.report-card h2 { color: #183b70; margin: .25rem 0 0; font-size: 1.2rem; }
.report-card p { color: #687a91; font-size: .92rem; margin-bottom: .5rem; }
.form-text { color: #677e9a; }
.floating-notification { position: fixed; right: clamp(1rem, 2.4vw, 2rem); bottom: clamp(1rem, 2.4vw, 2rem); z-index: 1080; }
.floating-bell { position: relative; isolation: isolate; display: grid; width: 3.8rem; height: 3.8rem; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.72); border-radius: 50%; color: #fff; background: linear-gradient(135deg, #0b5fc2, #2b9bd7 58%, #5fd4cb); box-shadow: 0 .6rem 1.8rem rgba(20,105,193,.38), inset 0 1px 0 rgba(255,255,255,.4); transition: transform .2s ease, box-shadow .2s ease; animation: bell-glow 2.8s ease-in-out infinite; }
.floating-bell:hover, .floating-bell:focus-visible { transform: translateY(-3px) scale(1.04); box-shadow: 0 1rem 2.2rem rgba(20,105,193,.48), inset 0 1px 0 rgba(255,255,255,.45); }
.floating-bell:focus-visible { outline: 3px solid rgba(114,212,255,.48); outline-offset: 3px; }
.floating-bell > i { position: relative; z-index: 1; font-size: 1.42rem; filter: drop-shadow(0 2px 2px rgba(7,45,98,.26)); transform-origin: 50% 8%; animation: bell-ring 4.2s ease-in-out infinite; }
.floating-bell__halo { position: absolute; z-index: -1; inset: -.45rem; border: 1px solid rgba(83,207,235,.52); border-radius: inherit; animation: bell-halo 2.8s ease-out infinite; }
.floating-bell__count { position: absolute; top: -.32rem; right: -.36rem; display: grid; min-width: 1.4rem; height: 1.4rem; place-items: center; padding: 0 .25rem; border: 2px solid rgba(255,255,255,.92); border-radius: 99px; color: #fff; background: #e85267; box-shadow: 0 .22rem .55rem rgba(150,25,49,.35); font-size: .67rem; font-weight: 800; line-height: 1; }
.notification-menu { width: min(23rem, calc(100vw - 2rem)); overflow: hidden; border-color: rgba(255,255,255,.68); border-radius: 1.15rem; box-shadow: 0 1rem 2.6rem rgba(19,58,107,.2); }
.notification-menu__heading { display: flex; gap: .75rem; align-items: center; padding: 1rem 1.1rem; color: #133765; background: linear-gradient(135deg, rgba(229,246,255,.92), rgba(236,255,252,.78)); border-bottom: 1px solid rgba(63,126,177,.12); }
.notification-menu__icon, .notification-item__mark { display: grid; flex: 0 0 auto; width: 2.2rem; height: 2.2rem; place-items: center; border-radius: .78rem; background: rgba(45,141,217,.12); }
.notification-menu__icon { color: #1081c1; background: rgba(50,190,205,.16); }
.notification-menu__heading strong, .notification-menu__heading small, .notification-item b, .notification-item small { display: block; }
.notification-menu__heading strong { font-size: .92rem; }
.notification-menu__heading small { margin-top: .1rem; color: #5d7898; font-size: .75rem; }
.notification-menu__body { padding: .45rem; }
.notification-item { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .72rem; border-radius: .85rem; color: inherit; text-decoration: none; transition: background .18s ease, transform .18s ease; }
.notification-item:not(.notification-item--static):hover, .notification-item:not(.notification-item--static):focus-visible { color: inherit; background: rgba(73,157,219,.1); transform: translateX(2px); }
.notification-item b { color: #23436d; font-size: .82rem; }
.notification-item small { margin-top: .18rem; color: #6f8298; font-size: .7rem; line-height: 1.45; }
.notification-item small span:not(:last-child)::after { content: ' · '; }
.notification-item__arrow { color: #88a0ba; font-size: .72rem; }
.text-warning.notification-item__mark { color: #bd7801 !important; background: rgba(255,185,53,.17); }
@keyframes bell-glow { 0%, 100% { box-shadow: 0 .6rem 1.8rem rgba(20,105,193,.38), inset 0 1px 0 rgba(255,255,255,.4); } 50% { box-shadow: 0 .7rem 2.25rem rgba(30,139,209,.62), 0 0 0 .35rem rgba(79,203,225,.13), inset 0 1px 0 rgba(255,255,255,.45); } }
@keyframes bell-halo { 0% { opacity: .75; transform: scale(.82); } 72%, 100% { opacity: 0; transform: scale(1.32); } }
@keyframes bell-ring { 0%, 72%, 100% { transform: rotate(0); } 76% { transform: rotate(11deg); } 80% { transform: rotate(-10deg); } 84% { transform: rotate(7deg); } 88% { transform: rotate(-4deg); } }
@media (max-width: 575.98px) { .receipt-card { padding: 1.5rem; } .receipt-details { grid-template-columns: 1fr; } .public-top { gap: 1rem; } .public-top .soft-link:first-child { display: none; } }
@media (max-width: 575.98px) { .floating-notification { right: .9rem; bottom: .9rem; } .floating-bell { width: 3.45rem; height: 3.45rem; } }
@media (prefers-reduced-motion: reduce) { .floating-bell, .floating-bell > i, .floating-bell__halo { animation: none; } .floating-bell, .notification-item { transition: none; } }
@media print { .public-top, .public-footer, .ambient, .btn, .soft-link, .alert, .floating-notification { display: none !important; } .public-body { background: #fff !important; } .glass-card { box-shadow: none !important; border-color: #d9e2ed !important; } .receipt-card { max-width: none !important; } }
