.notification-center{position:relative;display:inline-block}.notification-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;font-size:9px;font-weight:600;letter-spacing:0;color:#fff;background:var(--theme-red);border:2px solid var(--theme-background);display:none;align-items:center;justify-content:center;pointer-events:none;z-index:1}.app-header .nav-icon.is-active{background:transparent;color:var(--theme-accent)}.app-header .nav-icon.is-active::after{content:"";position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:14px;height:2px;border-radius:2px;background:var(--theme-accent)}.app-header .nav-icon.is-active:hover,.app-header .nav-icon.is-active:focus-visible{background:var(--color-subtle, rgba(255, 255, 255, 0.08));color:var(--theme-accent)}.notification-center .notification-dropdown{position:absolute;inset:auto 0 auto auto;top:100%;width:400px;max-width:calc(100vw - 24px);max-height:min(72vh,620px);display:flex!important;flex-direction:column;overflow:hidden;padding:0;background:var(--theme-surface);border:1px solid var(--color-subtle, rgba(255, 255, 255, 0.08));border-radius:14px;box-shadow:0 1px 2px rgba(0,0,0,0.1),0 16px 40px rgba(0,0,0,0.3);z-index:var(--z-notification);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity 90ms var(--ease-decelerate),transform 90ms var(--ease-decelerate),visibility 0s linear 90ms;pointer-events:none}.notification-center .notification-dropdown.show{display:flex!important;opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s;pointer-events:auto}.notification-header{padding:14px 12px 12px 16px;border-bottom:1px solid var(--color-subtle, rgba(255, 255, 255, 0.06));display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-shrink:0}.notification-header-main{display:flex;flex-direction:column;gap:3px;min-width:0}.notification-heading{margin:0;font-size:14px;font-weight:600;letter-spacing:-0.01em;color:var(--theme-text)}.notification-header .notification-meta{display:block;font-size:0.7rem;font-weight:500;text-transform:uppercase;letter-spacing:0.06em;font-variant-numeric:tabular-nums;color:var(--theme-text-muted)}.notification-close-btn{flex-shrink:0;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:7px;background:transparent;color:var(--theme-text-muted);font-size:14px;line-height:1;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.notification-close-btn:hover,.notification-close-btn:focus-visible{background:var(--color-subtle, rgba(255, 255, 255, 0.06));color:var(--theme-text)}.notification-filters{flex-shrink:0;display:flex;align-items:center;gap:4px;padding:8px 12px;border-bottom:1px solid var(--color-subtle, rgba(255, 255, 255, 0.06));overflow-x:auto;scrollbar-width:none}.notification-filters::-webkit-scrollbar{display:none}.notification-filter{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--theme-text-muted);font-size:12px;font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.notification-filter:hover,.notification-filter:focus-visible{background:var(--color-subtle, rgba(255, 255, 255, 0.06));color:var(--theme-text)}.notification-filter.is-active{background:rgba(var(--theme-accent-rgb),0.12);border-color:rgba(var(--theme-accent-rgb),0.3);color:var(--theme-text)}.notification-filter__count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:rgba(var(--theme-accent-rgb),0.18);color:var(--theme-text);font-size:10px;font-weight:600;font-variant-numeric:tabular-nums}.notification-filter__count[hidden]{display:none}.notification-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 0 4px;scrollbar-width:thin;scrollbar-color:var(--color-subtle, rgba(255, 255, 255, 0.1)) transparent}.notification-list::-webkit-scrollbar{width:5px}.notification-list::-webkit-scrollbar-track{background:transparent}.notification-list::-webkit-scrollbar-thumb{background:var(--color-subtle, rgba(255, 255, 255, 0.1));border-radius:3px}.notification-list::-webkit-scrollbar-thumb:hover{background:var(--color-default, rgba(255, 255, 255, 0.18))}.notification-group__label{position:sticky;top:0;z-index:2;padding:8px 16px 6px;background:var(--theme-surface);color:var(--theme-text-muted);font-size:10px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase}.notification-item{position:relative;display:flex;align-items:stretch;gap:0;padding:0;margin:0;border-bottom:1px solid var(--color-subtle, rgba(255, 255, 255, 0.04));background:transparent;transition:background-color var(--duration-fast) var(--ease-standard)}.notification-item:last-child{border-bottom:0}.notification-item:hover,.notification-item:focus-within{background:var(--color-subtle, rgba(255, 255, 255, 0.04))}.notification-item__hit{position:absolute;inset:0;z-index:0;border-radius:inherit;text-decoration:none}.notification-item__hit:focus-visible{outline:2px solid var(--theme-accent);outline-offset:-2px}.notification-item.has-action{cursor:pointer}.notification-item.unread::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--theme-accent);z-index:1}.notification-item.unread .notification-title{color:var(--theme-text);font-weight:600}.notification-item:not(.unread) .notification-title{font-weight:500}.notification-thumbnail{position:relative;pointer-events:none;flex:0 0 64px;width:64px;height:64px;align-self:center;margin:12px 0 12px 14px;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--theme-background);border:1px solid var(--color-subtle, rgba(255, 255, 255, 0.06))}.notification-thumbnail img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.notification-thumbnail.icon-only{background:var(--color-subtle, rgba(255, 255, 255, 0.06))}.notification-thumbnail i{font-size:20px;color:var(--theme-text-muted)}.notification-item.success .notification-thumbnail i{color:var(--theme-green)}.notification-item.error .notification-thumbnail i,.notification-item.danger .notification-thumbnail i{color:var(--theme-red)}.notification-item.warning .notification-thumbnail i{color:var(--theme-yellow)}.notification-item.info .notification-thumbnail i{color:var(--theme-text-muted)}.operation-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:4px;font-size:0.625rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;white-space:nowrap;line-height:1.4;flex-shrink:0;background:rgba(var(--theme-text-rgb),0.06);color:var(--theme-text);border:1px solid var(--color-subtle, rgba(255, 255, 255, 0.06))}.operation-badge.badge-original{color:var(--theme-text)}.operation-badge.badge-processed{color:var(--theme-green);border-color:rgba(var(--theme-green-rgb),0.3);background:rgba(var(--theme-green-rgb),0.08)}.operation-badge.badge-failed,.operation-badge.badge-deleted{color:var(--theme-red);border-color:rgba(var(--theme-red-rgb),0.3);background:rgba(var(--theme-red-rgb),0.08)}.operation-badge.badge-submitted,.operation-badge.badge-uploaded{color:var(--theme-accent);border-color:rgba(var(--theme-accent-rgb),0.3);background:rgba(var(--theme-accent-rgb),0.08)}.operation-badge.badge-cut{color:var(--theme-orange);border-color:rgba(var(--theme-orange-rgb),0.3);background:rgba(var(--theme-orange-rgb),0.08)}.operation-badge.badge-reviewed{color:var(--theme-accent);border-color:rgba(var(--theme-accent-rgb),0.3);background:rgba(var(--theme-accent-rgb),0.08)}.operation-badge.badge-downloaded{color:var(--theme-pink);border-color:rgba(var(--theme-pink-rgb),0.3);background:rgba(var(--theme-pink-rgb),0.08)}.notification-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding:12px 14px 12px 12px;position:relative;z-index:0;pointer-events:none}.notification-title-row{display:flex;align-items:baseline;gap:8px}.notification-title{font-size:13px;color:var(--theme-text);line-height:1.35;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.notification-message{font-size:12px;line-height:1.45;color:var(--theme-text-muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-content .notification-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--theme-text-muted);margin-top:2px;flex-wrap:wrap}.notification-channel,.notification-subject{display:inline-flex;align-items:center;gap:4px;padding:0 7px;height:18px;background:rgba(var(--theme-text-rgb),0.06);border-radius:4px;font-weight:500;font-size:10px;white-space:nowrap;max-width:48%;overflow:hidden;text-overflow:ellipsis}.notification-subject i,.notification-channel i{flex-shrink:0}.notification-time{flex:0 0 auto;min-width:56px;text-align:right;font-size:11px;color:var(--theme-text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;transition:opacity var(--duration-fast) var(--ease-standard)}.notification-item:hover .notification-time,.notification-item:focus-within .notification-time{opacity:0}@media (hover: none){.notification-item:hover .notification-time,.notification-item:focus-within .notification-time{opacity:1}}.notification-actions{position:absolute;top:10px;right:12px;z-index:1;display:flex;gap:4px;opacity:0;transition:opacity var(--duration-fast) var(--ease-standard)}.notification-item:hover .notification-actions,.notification-item:focus-within .notification-actions{opacity:1}@media (hover: none){.notification-actions{opacity:1}.notification-content{padding-right:78px}}.notification-actions button{width:26px;height:26px;padding:0;border:0;background:var(--theme-surface);box-shadow:0 0 0 1px var(--color-subtle, rgba(255, 255, 255, 0.08));color:var(--theme-text-muted);border-radius:6px;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);display:flex;align-items:center;justify-content:center;font-size:11px}.notification-actions button:hover,.notification-actions button:focus-visible{background:var(--color-default, rgba(255, 255, 255, 0.12));color:var(--theme-text)}.notification-actions button.delete-notif:hover,.notification-actions button.delete-notif:focus-visible{background:rgba(var(--theme-red-rgb),0.15);color:var(--theme-red)}.notification-footer{padding:10px 12px;border-top:1px solid var(--color-subtle, rgba(255, 255, 255, 0.06));display:flex;gap:8px;flex-shrink:0}.notification-foot-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 10px;font-size:12px;font-weight:500;border-radius:7px;border:1px solid var(--color-subtle, rgba(255, 255, 255, 0.08));background:transparent;color:var(--theme-text);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.notification-foot-btn:hover:not(:disabled),.notification-foot-btn:focus-visible:not(:disabled){background:var(--color-subtle, rgba(255, 255, 255, 0.06));border-color:var(--color-default, rgba(255, 255, 255, 0.12));color:var(--theme-text)}.notification-foot-btn--danger{flex:0 0 auto;color:var(--theme-red)}.notification-foot-btn--danger:hover:not(:disabled),.notification-foot-btn--danger:focus-visible:not(:disabled){background:rgba(var(--theme-red-rgb),0.08);border-color:rgba(var(--theme-red-rgb),0.4);color:var(--theme-red)}.notification-foot-btn:disabled{opacity:0.4;cursor:not-allowed}.notification-empty{padding:48px 24px;text-align:center;color:var(--theme-text-muted);display:flex;flex-direction:column;align-items:center;gap:10px}.notification-empty .empty-icon{width:52px;height:52px;border-radius:14px;background:var(--color-subtle, rgba(255, 255, 255, 0.06));display:flex;align-items:center;justify-content:center;color:var(--theme-text-muted);font-size:20px}.notification-empty .empty-title{font-size:14px;font-weight:600;color:var(--theme-text)}.notification-empty .empty-subtitle{font-size:12px}.notification-empty .empty-reset{margin-top:4px;padding:5px 12px;border-radius:999px;border:1px solid var(--color-subtle, rgba(255, 255, 255, 0.08));background:transparent;color:var(--theme-text);font-size:12px;font-weight:500;cursor:pointer}.notification-empty .empty-reset:hover,.notification-empty .empty-reset:focus-visible{background:var(--color-subtle, rgba(255, 255, 255, 0.06))}.notification-error-state{margin:16px;padding:14px;border-radius:10px;background:rgba(var(--theme-red-rgb),0.08);border:1px solid rgba(var(--theme-red-rgb),0.2);display:flex;gap:12px;align-items:flex-start}.notification-error-state .error-icon{width:32px;height:32px;border-radius:8px;background:rgba(var(--theme-red-rgb),0.12);color:var(--theme-red);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.notification-error-state .error-content{flex:1;display:flex;flex-direction:column;gap:4px}.notification-error-state .error-title{font-weight:600;color:var(--theme-red);font-size:13px}.notification-error-state .error-message{font-size:12px;color:var(--theme-text-muted)}.notification-inline-alert{margin:8px 16px;padding:8px 12px;border-radius:8px;background:var(--color-subtle, rgba(255, 255, 255, 0.06));color:var(--theme-text);font-size:12px;display:flex;align-items:center;gap:8px}.notification-inline-alert i{color:var(--theme-accent);font-size:12px}.notification-placeholder-list{display:flex;flex-direction:column;gap:0;padding:0}.notification-placeholder{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--color-subtle, rgba(255, 255, 255, 0.04))}.placeholder-thumb,.placeholder-line,.placeholder-pill{position:relative;overflow:hidden;background:var(--color-subtle, rgba(255, 255, 255, 0.04))}.placeholder-thumb{flex:0 0 64px;height:64px;border-radius:10px}.placeholder-body{flex:1;display:flex;flex-direction:column;gap:8px}.placeholder-line{height:10px;border-radius:999px}.placeholder-line.w-70{width:70%}.placeholder-line.w-45{width:45%}.placeholder-line.w-60{width:60%}.placeholder-line.w-80{width:80%}.placeholder-meta{display:flex;align-items:center;gap:8px}.placeholder-pill{height:12px;border-radius:999px}.placeholder-pill.w-30{width:30%}.placeholder-pill.w-20{width:20%}.placeholder-thumb::after,.placeholder-line::after,.placeholder-pill::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.08) 50%,transparent 100%);transform:translateX(-100%);animation:notif-shimmer 1.4s ease-in-out infinite}@keyframes notif-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}body.light-mode .placeholder-thumb::after,body.light-mode .placeholder-line::after,body.light-mode .placeholder-pill::after{background:linear-gradient(90deg,transparent 0%,rgba(0,0,0,0.06) 50%,transparent 100%)}.toast-container{position:fixed;top:auto!important;left:auto;bottom:20px;right:20px;width:auto;z-index:var(--z-toast);display:flex;flex-direction:column;gap:10px;pointer-events:none;transition:bottom var(--job-tray-clearance-ease, var(--duration-base, 180ms)) var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1))}.toast-container .toast{min-width:320px;max-width:420px;background:var(--theme-surface);border:1px solid var(--color-subtle, rgba(255, 255, 255, 0.08));border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,0.1),0 16px 32px rgba(0,0,0,0.25);opacity:0;transform:translateY(12px);transition:opacity var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard);pointer-events:auto;overflow:hidden;display:flex;align-items:flex-start;gap:12px;padding:12px 14px;position:relative;touch-action:pan-y}.toast.show{opacity:1;transform:translateY(0)}.toast.is-swiping{transition:none;transform:translateX(var(--toast-dx, 0px))}.toast.is-dismissing{opacity:0;transform:translateX(var(--toast-dx, 0px))}.toast-icon{flex-shrink:0;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px}.toast-success .toast-icon{background:rgba(var(--theme-green-rgb),0.12);color:var(--theme-green)}.toast-error .toast-icon,.toast-danger .toast-icon{background:rgba(var(--theme-red-rgb),0.12);color:var(--theme-red)}.toast-warning .toast-icon{background:rgba(var(--theme-yellow-rgb),0.12);color:var(--theme-yellow)}.toast-info .toast-icon{background:rgba(var(--theme-accent-rgb),0.12);color:var(--theme-accent)}.toast-content{flex:1;min-width:0}.toast-title{font-size:13px;font-weight:600;color:var(--theme-text);margin:0 0 2px;letter-spacing:-0.005em}.toast-message{font-size:12px;line-height:1.4;color:var(--theme-text-muted);margin:0;word-wrap:break-word}.toast-close{flex-shrink:0;width:22px;height:22px;border:0;background:transparent;color:var(--theme-text-muted);border-radius:5px;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1}.toast-close:hover,.toast-close:focus-visible{background:var(--color-subtle, rgba(255, 255, 255, 0.08));color:var(--theme-text)}.toast-close::before{content:"\d7"}.toast-action{display:inline-block;margin-top:6px;padding:3px 10px;border:1px solid var(--color-subtle, rgba(255, 255, 255, 0.08));border-radius:6px;background:transparent;color:var(--theme-text);font-size:12px;font-weight:600;line-height:1.4;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.toast-action:hover,.toast-action:focus-visible{background:var(--color-subtle, rgba(255, 255, 255, 0.08));border-color:var(--theme-text-muted)}.toast-progress{position:absolute;bottom:0;left:0;width:100%;height:2px;transform-origin:left center;background:var(--theme-accent);animation:toast-countdown var(--toast-duration, 5000ms) linear forwards}.toast:hover .toast-progress,.toast:focus-within .toast-progress{animation-play-state:paused}.toast-success .toast-progress{background:var(--theme-green)}.toast-error .toast-progress,.toast-danger .toast-progress{background:var(--theme-red)}.toast-warning .toast-progress{background:var(--theme-yellow)}.toast-info .toast-progress{background:var(--theme-accent)}@keyframes toast-countdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}@media (max-width: 767.98px){.mobile-dock__inner:has(.notification-dropdown.show){backdrop-filter:none;-webkit-backdrop-filter:none}.notification-center .notification-dropdown{position:fixed;inset:calc(8px + env(safe-area-inset-top,0px)) 8px var(--dock-clearance, calc(96px + env(safe-area-inset-bottom, 0px))) 8px;width:auto;max-width:none;max-height:none;border-radius:18px}.notification-close-btn{width:44px;height:44px;font-size:17px}.notification-filters{padding:10px 12px;gap:6px}.notification-filter{height:34px;padding:0 14px;font-size:13px}.notification-foot-btn{height:44px;font-size:13px}.notification-actions{top:8px;right:8px;gap:6px}.notification-actions button{width:34px;height:34px;font-size:13px}.notification-thumbnail{flex-basis:56px;width:56px;height:56px;margin-left:12px}.toast-container{bottom:var(--dock-clearance, calc(96px + env(safe-area-inset-bottom, 0px)));left:12px;right:12px}.toast-container .toast{min-width:0;max-width:none;width:100%}.toast-close{width:44px;height:44px;font-size:20px}}@media (max-width: 926px) and (max-height: 500px) and (orientation: landscape){.notification-center .notification-dropdown{inset:6px 8px calc(6px + env(safe-area-inset-bottom,0px)) 8px;border-radius:14px}.notification-header{padding:8px 12px}.notification-filters{padding:6px 12px}.notification-footer{padding:8px 12px}.notification-foot-btn{height:36px}}@media (max-width: 480px){.notification-header{padding:12px;gap:8px}.notification-heading{font-size:13px}.notification-content{padding:10px 12px 10px 10px}.notification-thumbnail{margin-left:10px}.notification-footer{padding:10px 12px;gap:6px}.notification-foot-btn{font-size:12px;height:44px}}@media (prefers-reduced-motion: reduce){.notification-center .notification-dropdown,.toast,.notification-filter,.notification-actions,.notification-item{transition-duration:1ms}.placeholder-thumb::after,.placeholder-line::after,.placeholder-pill::after{animation:none}}body.light-mode .notification-badge{border-color:var(--theme-background)}body.light-mode .notification-thumbnail{background:rgba(0,0,0,0.03)}body.light-mode .notification-thumbnail.icon-only{background:rgba(0,0,0,0.04)}body.light-mode .notification-actions button{box-shadow:0 0 0 1px rgba(0,0,0,0.08)}
