@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";.hkr-user-avatar{-webkit-user-select:none;user-select:none;border:1px solid var(--border-color,#ffffff26);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0003}.hkr-user-avatar-img{object-fit:cover;width:100%;height:100%;display:block}.hkr-user-avatar-initials{color:#fff;letter-spacing:.5px;text-shadow:0 1px 2px #0000004d;font-weight:700;line-height:1}.notif-center-wrapper{align-items:center;display:inline-flex;position:relative}.notif-bell-btn{border:1px solid var(--border-color,#ffffff1f);background:var(--bg-elevated,#ffffff0d);width:38px;height:38px;color:var(--text-muted,#94a3b8);cursor:pointer;border-radius:50%;outline:none;flex-shrink:0;justify-content:center;align-items:center;transition:all .18s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.notif-bell-btn:hover{color:var(--text-main,#fff);background:#ffffff1f;border-color:#ffffff40;transform:translateY(-1px)}.notif-bell-btn:active{background:#ffffff2e;border-color:#ffffff59;transform:scale(.94)translateY(0)}.notif-bell-btn.active{color:#38bdf8;background:#0084ff2e;border-color:#0084ff73}.notif-bell-icon{transition:transform .2s}.notif-bell-btn:hover .notif-bell-icon{transform:rotate(12deg)}.notif-badge{color:#fff;background:#ef4444;border:2px solid #0f172a;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-2px;right:-2px;box-shadow:0 2px 6px #ef444480}@keyframes badgePop{0%{transform:scale(.5)}50%{transform:scale(1.2)}to{transform:scale(1)}}.animate-badge-pop{animation:.3s cubic-bezier(.16,1,.3,1) badgePop}.notif-modal-backdrop{-webkit-backdrop-filter:blur(8px);z-index:99998;background:#000000a6;position:fixed;top:0;bottom:0;left:0;right:0}.notif-dropdown-panel{-webkit-backdrop-filter:blur(25px)saturate(180%);z-index:99999;background:#0f172af5;border:1px solid #ffffff24;border-radius:20px;flex-direction:column;width:390px;max-width:92vw;display:flex;position:fixed;top:58px;right:20px;overflow:hidden;box-shadow:0 24px 50px -12px #000000b3,0 0 0 1px #ffffff0d}.notif-sheet-handle-bar{display:none}.notif-panel-header{background:#ffffff05;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.notif-header-title{align-items:center;gap:8px;display:flex}.notif-header-title h3{color:var(--text-primary,#fff);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:700}.notif-unread-pill{color:#38bdf8;background:#0084ff33;border:1px solid #0084ff59;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.notif-header-actions{align-items:center;gap:8px;display:flex}.notif-mark-read-btn{color:#94a3b8;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;outline:none;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:500;transition:all .18s cubic-bezier(.16,1,.3,1);display:inline-flex}.notif-mark-read-btn:hover{color:#fff;background:#ffffff1f;border-color:#ffffff38;transform:translateY(-1px)}.notif-mark-read-btn:active{background:#ffffff2e;border-color:#ffffff59;transform:scale(.95)translateY(0)}.notif-close-btn{color:#94a3b8;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;outline:none;justify-content:center;align-items:center;width:28px;height:28px;transition:all .18s cubic-bezier(.16,1,.3,1);display:flex}.notif-close-btn:hover{color:#fff;background:#ffffff24;border-color:#ffffff40;transform:translateY(-1px)}.notif-close-btn:active{background:#fff3;border-color:#ffffff59;transform:scale(.92)translateY(0)}.notif-panel-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:440px;overflow-y:auto}.notif-panel-body::-webkit-scrollbar{width:5px}.notif-panel-body::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:999px}.notif-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:44px 20px;display:flex}.notif-empty-icon-wrap{background:#ffffff0a;border:1px solid #ffffff14;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:12px;display:flex}.notif-empty-state h4{color:var(--text-primary,#fff);margin:0 0 6px;font-size:15px;font-weight:600}.notif-empty-state p{color:var(--text-secondary,#94a3b8);max-width:240px;margin:0;font-size:13px;line-height:1.4}.notif-list{flex-direction:column;display:flex}.notif-item{cursor:pointer;border-bottom:1px solid #ffffff0d;outline:none;align-items:flex-start;gap:12px;padding:13px 16px;text-decoration:none;transition:all .15s cubic-bezier(.16,1,.3,1);display:flex}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:#ffffff14}.notif-item:active{background:#ffffff24;transform:scale(.99)}.notif-item.unread{background:#0084ff12}.notif-item.unread:hover{background:#0084ff1f}.notif-item.unread:active{background:#0084ff2e}.notif-type-badge{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.badge-dispatch{color:#ef4444;background:#ef44442e;border:1px solid #ef44444d}.badge-event{color:#3b82f6;background:#3b82f62e;border:1px solid #3b82f64d}.badge-pending{color:#f59e0b;background:#f59e0b2e;border:1px solid #f59e0b4d}.badge-kpp{color:#a855f7;background:#a855f72e;border:1px solid #a855f74d}.badge-bag{color:#f87171;background:#ef44442e;border:1px solid #ef44444d}.badge-default{color:#fff;background:#ffffff1a}.notif-item-content{flex:1;min-width:0}.notif-item-top{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:3px;display:flex}.notif-item-title{color:var(--text-primary,#fff);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.notif-item-time{color:#64748b;flex-shrink:0;font-size:11px}.notif-item-body{color:var(--text-secondary,#94a3b8);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.35;display:-webkit-box;overflow:hidden}.notif-item-right{flex-shrink:0;align-self:center;align-items:center;gap:6px;display:flex}.notif-unread-dot{background:#0084ff;border-radius:50%;width:7px;height:7px;box-shadow:0 0 6px #0084ffcc}.notif-arrow-icon{color:#475569;transition:transform .15s}.notif-item:hover .notif-arrow-icon{color:#94a3b8;transform:translate(2px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleInDropdown{0%{opacity:0;transform:scale(.95)translateY(-6px)}to{opacity:1;transform:scale(1)translateY(0)}}.animate-sheet-in{animation:.2s cubic-bezier(.16,1,.3,1) forwards scaleInDropdown}@media (max-width:640px){.notif-dropdown-panel{width:100vw;max-width:100vw;max-height:82vh;padding-bottom:calc(18px + env(safe-area-inset-bottom,16px));background:#0b1120;border:none;border-top:1px solid #ffffff2e;border-radius:24px 24px 0 0;animation:.28s cubic-bezier(.16,1,.3,1) forwards slideUpSheet;top:auto;bottom:0;left:0;right:0;box-shadow:0 -12px 40px #000c}.notif-sheet-handle-bar{background:#ffffff4d;border-radius:999px;flex-shrink:0;width:38px;height:5px;margin:10px auto 4px;display:block}.notif-panel-header{padding:10px 18px 12px}.notif-panel-body{max-height:calc(82vh - 75px);padding-bottom:20px}}.navbar{z-index:2000;background:var(--bg-nav);border-bottom:.5px solid var(--border-color);-webkit-backdrop-filter:blur(20px)saturate(180%);width:100%;padding-top:env(safe-area-inset-top,0px);transition:background .3s,border-color .3s;position:fixed;top:0;left:0;right:0}.admin-user-mode-banner{color:#fff;box-sizing:border-box;width:100%;font-size:var(--type-caption-1);font-weight:var(--weight-medium);z-index:10;background:linear-gradient(90deg,#ff9500,#ff5e3a);justify-content:space-between;align-items:center;gap:12px;padding:6px 18px;display:flex;box-shadow:0 2px 8px #ff5e3a40}.admin-user-mode-content{align-items:center;gap:8px;min-width:0;display:flex}.admin-user-mode-icon{flex-shrink:0}.admin-user-mode-content span{font-size:var(--type-caption-1);color:#fff;font-weight:var(--weight-semibold);letter-spacing:.01em}.admin-user-mode-btn{color:#fff;font-size:var(--type-caption-2);font-weight:var(--weight-bold);cursor:pointer;white-space:nowrap;background:#00000040;border:1px solid #fff6;border-radius:8px;justify-content:center;align-items:center;padding:3px 10px;transition:all .2s;display:inline-flex}.admin-user-mode-btn:hover{background:#0006;border-color:#fffc}.notif-banner-desktop{color:#fff;box-sizing:border-box;background:#007aff;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:8px 24px;font-weight:500;display:flex}.notif-banner-content{align-items:center;gap:10px;min-width:0;display:flex}.notif-banner-content span{font-size:var(--type-footnote);color:#fff}.notif-banner-bell{flex-shrink:0}.notif-banner-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.notif-banner-btn-enable{color:#007aff;font-size:var(--type-footnote);cursor:pointer;background:#fff;border:none;border-radius:10px;padding:5px 14px;font-weight:600;transition:opacity .2s}.notif-banner-btn-enable:hover{opacity:.9}.notif-banner-btn-enable:active{opacity:.8}.notif-banner-btn-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;transition:background .2s;display:flex}.notif-banner-btn-close:hover{background:#ffffff59}.notif-mobile-pill{bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:99999;color:#fff;box-sizing:border-box;background:#007aff;border-radius:18px;justify-content:space-between;align-items:center;gap:10px;max-width:420px;margin:0 auto;padding:10px 12px 10px 14px;display:flex;position:fixed;left:12px;right:12px;box-shadow:0 10px 30px #007aff80,0 2px 10px #0000004d}.notif-mobile-pill-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.notif-mobile-bell-box{color:#fff;background:#fff3;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.notif-mobile-pill-text{flex-direction:column;gap:1px;min-width:0;display:flex}.notif-mobile-pill-title{color:#fff;font-size:.8125rem;font-weight:700;line-height:1.2}.notif-mobile-pill-desc{color:#ffffffe6;white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;line-height:1.2;overflow:hidden}.notif-mobile-pill-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.notif-mobile-btn-enable{color:#007aff;cursor:pointer;background:#fff;border:none;border-radius:12px;padding:6px 14px;font-size:.75rem;font-weight:700;transition:opacity .2s,transform .1s}.notif-mobile-btn-enable:active{opacity:.9;transform:scale(.96)}.notif-mobile-btn-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;transition:background .2s;display:flex}.notif-mobile-btn-close:hover{background:#ffffff59}.navbar-inner{box-sizing:border-box;justify-content:space-between;align-items:center;width:100%;height:52px;padding:0 24px;display:flex}@media (max-width:640px){.navbar-inner{height:50px;padding:0 12px}.brand-logo{max-width:80px;height:24px}.brand-name{font-size:var(--type-footnote)}.logout-btn span{display:none}.logout-btn{border-radius:50%;justify-content:center;min-width:38px;min-height:38px;padding:8px}}@media (max-width:440px){.navbar-inner{padding:0 10px}.brand-name{font-size:var(--type-caption-1)}}@media (max-width:360px){.brand-name{display:none}}.navbar-brand{color:var(--text-main);align-items:center;gap:10px;text-decoration:none;transition:opacity .2s;display:flex}.navbar-brand:hover{opacity:.85}.navbar-brand:active{opacity:.7}.brand-logo{object-fit:contain;flex-shrink:0;width:auto;max-width:140px;height:32px}.brand-name{font-size:var(--type-callout);font-weight:var(--weight-bold);color:var(--text-main);letter-spacing:-.01em}.navbar-actions{align-items:center;gap:8px;display:flex}.logout-btn{background:var(--color-red-bg);border:1px solid var(--color-red-border);color:var(--color-red);font-family:var(--font-family);font-size:var(--type-footnote);font-weight:var(--weight-semibold);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:7px 14px;transition:background-color .2s,opacity .2s;display:flex}.logout-btn:hover{background:var(--color-red);color:#fff;border-color:var(--color-red)}.logout-btn:active{opacity:.8}.theme-toggle{background:var(--bg-elevated,#ffffff0d);border:1px solid var(--border-color,#ffffff1f);width:38px;height:38px;color:var(--text-muted,#94a3b8);cursor:pointer;border-radius:50%;outline:none;flex-shrink:0;justify-content:center;align-items:center;transition:all .18s cubic-bezier(.16,1,.3,1);display:flex}.theme-toggle:hover{color:var(--text-main,#fff);background:#ffffff1f;border-color:#ffffff40;transform:translateY(-1px)}.theme-toggle:active{background:#ffffff2e;border-color:#ffffff59;transform:scale(.94)translateY(0)}.theme-toggle.active{color:#38bdf8;background:#0084ff2e;border-color:#0084ff73}.nav-user-badge{background:var(--bg-elevated,#ffffff0d);border:1px solid var(--border-color,#ffffff1f);color:var(--text-main,#fff);font-family:var(--font-family);font-size:var(--type-footnote);font-weight:var(--weight-semibold);cursor:pointer;border-radius:20px;outline:none;align-items:center;gap:8px;max-width:240px;padding:4px 10px 4px 5px;transition:all .18s cubic-bezier(.16,1,.3,1);display:inline-flex}.nav-user-badge:hover{color:var(--text-main,#fff);background:#ffffff1f;border-color:#ffffff40;transform:translateY(-1px)}.nav-user-badge:active{background:#ffffff2e;border-color:#ffffff59;transform:scale(.96)translateY(0)}.nav-role-tag{background:var(--bg-card);border:1px solid var(--border-color);height:18px;color:var(--text-muted);font-size:var(--type-caption-2);font-weight:var(--weight-bold);letter-spacing:.04em;text-align:center;box-sizing:border-box;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0 6px;line-height:1;display:inline-flex}.nav-role-tag.role-admin{color:#007aff;background:#007aff1f;border-color:#007aff4d}.nav-role-tag.role-dispatcher{color:#ff9500;background:#ff950026;border-color:#ff950059}.nav-role-tag.role-rescuer{color:#34c759;background:#34c7591f;border-color:#34c7594d}.ios-menu-name-row{align-items:center;gap:6px;min-width:0;display:flex}.menu-role-tag{height:16px;font-size:var(--type-caption-2);padding:0 5px}.nav-user-avatar{background:var(--color-accent-light);width:26px;height:26px;color:var(--color-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.nav-user-initials{color:#fff;font-size:11px;font-weight:var(--weight-bold);letter-spacing:.02em;line-height:1}.menu-user-initials{color:#fff;font-size:13px;font-weight:var(--weight-bold);letter-spacing:.02em;line-height:1}.nav-user-photo{object-fit:cover;width:100%;height:100%}.nav-user-name{white-space:nowrap;text-overflow:ellipsis;max-width:140px;display:inline-block;overflow:hidden}@media (max-width:640px){.nav-user-badge{box-shadow:none;background:0 0;border:none;max-width:none;padding:0}.nav-user-badge:hover{background:0 0;border:none}.nav-user-name,.nav-user-badge .nav-role-tag{display:none!important}.nav-user-avatar{border:1.5px solid var(--border-color);width:32px;height:32px;box-shadow:var(--shadow-sm)}.nav-user-initials{font-size:12px}.theme-toggle{width:34px;height:34px}}.ios-menu-user-card{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:12px;align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;display:flex}.ios-menu-user-avatar{background:var(--color-accent-light);width:32px;height:32px;color:var(--color-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.ios-menu-user-avatar img{object-fit:cover;width:100%;height:100%}.ios-menu-user-details{flex-direction:column;min-width:0;display:flex}.ios-menu-user-name{font-size:var(--type-footnote);font-weight:var(--weight-bold);color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ios-menu-user-email{font-size:var(--type-caption-2);color:var(--text-subtle);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-header-search-wrap{transform-origin:100%;align-items:center;gap:10px;width:100%;height:100%;animation:.35s cubic-bezier(.34,1.56,.64,1) forwards searchExpandSpring;display:flex;position:relative}@keyframes searchExpandSpring{0%{opacity:0;transform:scaleX(.85)}to{opacity:1;transform:scaleX(1)}}.nav-header-search-input{background:var(--bg-elevated);border:1px solid var(--color-accent);border-radius:var(--radius-sm);width:100%;height:38px;font-family:var(--font-family);font-size:var(--type-subhead);color:var(--text-main);transition:var(--transition);padding:0 40px 0 38px;box-shadow:0 0 0 3px #2563eb1f}.nav-header-search-input:focus{background:var(--bg-card);outline:none}.nav-header-search-wrap .nav-search-icon{color:var(--color-accent);pointer-events:none;position:absolute;left:12px}.nav-header-search-wrap .nav-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:46px;transform:translateY(-50%)}.nav-header-search-wrap .nav-search-clear:hover{color:var(--text-main)}.nav-search-close-btn{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:38px;height:38px;color:var(--text-muted);cursor:pointer;transition:var(--transition);flex-shrink:0;justify-content:center;align-items:center;display:flex}.nav-search-close-btn:hover{background:var(--color-red-bg);border-color:var(--color-red-border);color:var(--color-red)}.nav-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.nav-search-clear:hover{color:var(--text-main)}.nav-search-dropdown{background:var(--bg-card);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-lg);z-index:1000;max-height:380px;padding:12px 0;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.nav-search-results{box-sizing:border-box;flex-direction:column;gap:4px;width:100%;margin:0 auto;padding:0 24px;display:flex}@media (max-width:640px){.nav-search-results{padding:0 12px}}.nav-search-empty{width:100%;font-size:var(--type-subhead);color:var(--text-muted);text-align:center;box-sizing:border-box;margin:0 auto;padding:16px 24px}.nav-search-item{border-radius:var(--radius-sm);color:inherit;transition:var(--transition);border:1px solid #0000;justify-content:space-between;align-items:center;padding:10px 12px;text-decoration:none;display:flex}.nav-search-item:hover{background:var(--bg-elevated);border-color:var(--border-color)}.nav-search-item-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.icon-blue{color:var(--color-accent);flex-shrink:0}.icon-red{color:var(--color-red);flex-shrink:0}.nav-search-item-text{flex-direction:column;gap:2px;min-width:0;display:flex}.nav-search-item-name{font-size:var(--type-subhead);font-weight:var(--weight-bold);color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-search-item-meta{font-size:var(--type-footnote);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-search-item-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.nav-qty-badge{font-size:var(--type-caption-1);font-weight:var(--weight-bold);border-radius:12px;padding:3px 8px}.ios-menu-wrap{position:relative}.ios-pull-down-menu{background:var(--bg-card);border:1px solid var(--border-color);z-index:10000;-webkit-backdrop-filter:blur(24px)saturate(180%);transform-origin:100% 0;border-radius:16px;width:255px;max-width:calc(100vw - 20px);padding:6px;animation:.22s cubic-bezier(.175,.885,.32,1.2) forwards iosMenuPop;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 34px #00000038,0 2px 8px #00000014}@keyframes iosMenuPop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.ios-menu-item{width:100%;min-width:0;min-height:42px;color:var(--text-main);font-family:var(--font-family);font-size:var(--type-footnote);font-weight:var(--weight-medium);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:10px;outline:none;justify-content:space-between;align-items:center;padding:10px 12px;text-decoration:none;transition:all .15s cubic-bezier(.16,1,.3,1);display:flex}.ios-menu-item:hover{background:#ffffff1a;border-color:#ffffff26;transform:translate(2px)}.ios-menu-item:active{background:#ffffff29;border-color:#ffffff40;transform:scale(.98)translate(0)}.ios-menu-item-left{white-space:nowrap;align-items:center;gap:10px;display:flex}.ios-menu-item-left svg{color:var(--color-accent)}.ios-menu-item.destructive,.ios-menu-item.destructive .ios-menu-item-left svg{color:var(--color-red)}.ios-menu-divider{background:var(--border-color);height:.5px;margin:4px 6px}.nav-qty-badge.qty-green{background:var(--color-green-bg);color:var(--color-green);border:1px solid var(--color-green-border)}.nav-qty-badge.qty-red{background:var(--color-red-bg);color:var(--color-red);border:1px solid var(--color-red-border)}.nav-arrow{color:var(--text-subtle)}.ios-menu-item-left{min-width:0}.ios-menu-item-left span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.role-preview-card{background:var(--bg-elevated);border:1px solid var(--border-color);cursor:pointer;text-align:left;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-family:inherit;transition:all .2s;display:flex}.role-preview-card:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.role-preview-card.active{border-color:var(--color-accent);background:var(--color-accent-light)}.role-preview-card-left{align-items:center;gap:12px;min-width:0;display:flex}.role-preview-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.role-preview-icon.role-admin{color:#007aff;background:#007aff26}.role-preview-icon.role-dispatcher{color:#ff9500;background:#ff95002e}.role-preview-icon.role-rescuer{color:#34c759;background:#34c75926}.role-preview-info{flex-direction:column;gap:2px;min-width:0;display:flex}.role-preview-name{font-size:14px;font-weight:var(--weight-bold);color:var(--text-main)}.role-preview-desc{color:var(--text-muted);font-size:12px;line-height:1.3}.role-check-icon.blue{color:#007aff}.role-check-icon.orange{color:#ff9500}.role-check-icon.green{color:#34c759}.nav-role-tag.role-team{color:#7d7aff;text-overflow:ellipsis;white-space:nowrap;background:#5856d626;border-color:#5856d666;max-width:110px;overflow:hidden}.app-footer{text-align:center;padding:16px 20px max(24px, env(safe-area-inset-bottom));border-top:.5px solid var(--border-color);background:var(--bg-card);margin-top:auto}.footer-flat-container{flex-direction:column;align-items:center;gap:6px;max-width:960px;margin:0 auto;display:flex}.footer-credit-text{font-size:var(--type-footnote);color:var(--text-subtle);font-weight:var(--weight-medium)}.footer-flat-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.footer-dot{color:var(--text-subtle);font-size:var(--type-caption-2);opacity:.6}.footer-flat-link{color:var(--text-muted);font-size:var(--type-footnote);font-weight:var(--weight-medium);cursor:pointer;min-height:44px;font-family:var(--font-family);background:0 0;border:none;align-items:center;gap:5px;padding:6px 8px;text-decoration:none;transition:opacity .2s;display:inline-flex}.footer-flat-link:hover{color:var(--color-accent);opacity:.8}.footer-credits{font-size:var(--type-caption-2);color:var(--text-subtle);font-weight:var(--weight-medium);letter-spacing:.01em;opacity:.75;margin-top:10px}@media (max-width:640px){.app-footer{padding:14px 16px 18px}.footer-flat-links{gap:8px}}.pdf-footer-btn:disabled{opacity:.5;cursor:not-allowed}.pdf-modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.pdf-modal-content{background:var(--bg-card);border-radius:var(--radius);width:100%;max-width:400px;max-height:90vh;max-height:90dvh;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);margin:auto;animation:.3s cubic-bezier(.175,.885,.32,1.275) modalScaleUp}.pdf-modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.pdf-modal-header h3{font-size:var(--type-title-3);font-weight:var(--weight-semibold)}.pdf-modal-close{font-size:var(--type-title-2);color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;line-height:1}.pdf-modal-close:hover{color:var(--text-main)}.pdf-modal-body{flex-direction:column;gap:16px;padding:20px;display:flex;overflow-y:auto}.pdf-modal-radio{cursor:pointer;font-weight:var(--weight-medium);color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-elevated);transition:var(--transition);align-items:center;gap:10px;padding:12px;display:flex}.pdf-modal-radio:hover{border-color:var(--color-accent)}.pdf-modal-select-group{gap:10px;padding-left:10px;display:flex}.pdf-modal-select{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-elevated);color:var(--text-main);font-family:var(--font-family);font-size:var(--type-subhead);flex:1;padding:10px}.pdf-modal-select:focus{border-color:var(--color-accent);outline:none}.pdf-modal-submit{width:100%;margin-top:10px}@keyframes modalScaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (max-width:380px){.pdf-modal-select-group{flex-direction:column;padding-left:0}}.device-gate-overlay{background:var(--bg-main);z-index:99999;box-sizing:border-box;justify-content:center;align-items:center;width:100vw;height:100vh;min-height:100dvh;padding:20px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.gate-auth-card{text-align:center;border:1px solid var(--border-color);background:var(--bg-card);width:100%;max-width:400px;box-shadow:var(--shadow-lg);box-sizing:border-box;border-radius:26px;flex-direction:column;align-items:center;margin:auto;padding:36px 28px 32px;display:flex}.gate-logo-img{object-fit:contain;width:76px;height:76px;margin-bottom:18px}.gate-header-text{margin-bottom:24px}.gate-header-text h1{font-size:var(--type-title-2);font-weight:var(--weight-bold);letter-spacing:-.025em;color:var(--text-main);margin-bottom:6px}.gate-header-text p{font-size:var(--type-footnote);color:var(--text-muted);font-weight:var(--weight-medium);line-height:var(--leading-loose)}.gate-auth-options{flex-direction:column;gap:12px;width:100%;display:flex}.microsoft-login-btn{border:1px solid var(--border-color);background:var(--bg-elevated);width:100%;height:52px;color:var(--text-main);font-family:var(--font-family);font-size:var(--type-subhead);font-weight:var(--weight-bold);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:14px;justify-content:center;align-items:center;gap:12px;transition:background-color .2s,border-color .2s,transform .15s,box-shadow .2s;display:flex}.microsoft-login-btn:hover{background:var(--bg-card);border-color:var(--border-hover);box-shadow:var(--shadow-md)}.microsoft-login-btn:active{transform:scale(.98)}.microsoft-login-btn:disabled{opacity:.6;cursor:not-allowed}.ms-icon{flex-shrink:0}.gate-error-banner{background:var(--color-red-bg);border:1px solid var(--color-red-border);color:var(--color-red);font-size:var(--type-footnote);font-weight:var(--weight-semibold);text-align:left;border-radius:12px;align-items:center;gap:8px;margin-top:8px;padding:10px 14px;display:flex}.gate-footer-links{justify-content:center;align-items:center;margin-top:14px;display:flex}.gate-privacy-link{color:var(--text-muted,#94a3b8);font-size:var(--type-caption-1,.75rem);text-decoration:none;transition:color .2s}.gate-privacy-link:hover{color:var(--accent-color,#26b4e6);text-decoration:underline}@media (max-width:480px){.gate-auth-card{border-radius:22px;padding:28px 20px 24px}.gate-logo-img{width:64px;height:64px;margin-bottom:14px}.gate-header-text h1{font-size:var(--type-title-3)}.microsoft-login-btn{height:48px;font-size:var(--type-subhead)}.gate-domain-info{font-size:var(--type-caption-2);padding:8px 10px}}.mobile-pwa-overlay{background:var(--bg-main);z-index:999999;box-sizing:border-box;justify-content:center;align-items:center;width:100vw;height:100vh;min-height:100dvh;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.mobile-pwa-card{text-align:center;border:1px solid var(--border-color);background:var(--bg-card);width:100%;max-width:380px;box-shadow:var(--shadow-lg);box-sizing:border-box;border-radius:26px;flex-direction:column;align-items:center;margin:auto;padding:32px 24px 24px;display:flex}.mobile-pwa-icon-wrap{margin-bottom:16px}.mobile-pwa-logo{object-fit:contain;width:72px;height:72px}.mobile-pwa-header{margin-bottom:20px}.mobile-pwa-header h1{font-size:var(--type-title-2);font-weight:var(--weight-bold);color:var(--text-main);letter-spacing:-.02em;margin-bottom:6px}.mobile-pwa-header p{font-size:var(--type-footnote);color:var(--text-muted);font-weight:var(--weight-medium);line-height:var(--leading-relaxed)}.mobile-pwa-steps{text-align:left;flex-direction:column;gap:10px;width:100%;margin-bottom:20px;display:flex}.pwa-step-item{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:14px;align-items:center;gap:12px;padding:10px 14px;display:flex}.pwa-step-item.highlight{background:var(--color-accent-light);border-color:#007aff40}.pwa-step-num{background:var(--border-color);width:26px;height:26px;color:var(--text-main);font-size:var(--type-caption-1);font-weight:var(--weight-bold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.pwa-step-num.accent{background:var(--color-accent);color:#fff}.pwa-step-text{font-size:var(--type-footnote);color:var(--text-main);font-weight:var(--weight-medium);line-height:var(--leading-snug)}.mobile-pwa-skip-btn{width:100%;color:var(--color-accent);font-family:var(--font-family);font-size:var(--type-footnote);font-weight:var(--weight-semibold);line-height:var(--leading-snug);cursor:pointer;background:0 0;border:none;border-radius:12px;margin-bottom:14px;padding:12px 14px}.mobile-pwa-skip-btn:hover{text-decoration:underline}.mobile-pwa-skip-btn:focus-visible{text-decoration:underline}.mobile-pwa-footer-badge{font-size:var(--type-caption-2);color:var(--text-subtle);font-weight:var(--weight-semibold);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:6px;display:flex}.mobile-pwa-bypass-btn{color:var(--text-muted);font-size:var(--type-caption-1);cursor:pointer;background:0 0;border:none;margin-top:20px;padding:6px;font-family:inherit;text-decoration:underline}.mobile-pwa-privacy-link{color:var(--text-subtle,#64748b);font-size:var(--type-caption-2,.72rem);opacity:.8;margin-top:8px;text-decoration:none;transition:opacity .2s,color .2s}.mobile-pwa-privacy-link:hover{color:var(--accent-color,#26b4e6);opacity:1;text-decoration:underline}.dashboard-skeleton{width:100%}.skeleton-card{pointer-events:none;position:relative;overflow:hidden}.skeleton-card .skeleton-title{background:var(--bg-elevated);border-radius:4px;width:110px;height:20px}.skeleton-card .skeleton-badge{background:var(--bg-elevated);border-radius:12px;width:85px;height:22px}.skeleton-card .skeleton-meta{background:var(--bg-elevated);border-radius:4px;width:110px;height:12px}.skeleton-card .skeleton-open{background:var(--bg-elevated);border-radius:4px;width:50px;height:12px}.skeleton-line:after,.skeleton-card:after{content:"";background-image:linear-gradient(90deg,#fff0 0,#ffffff14 20%,#ffffff38 60%,#fff0);animation:1.4s infinite skeletonShimmer;position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-100%)}[data-theme=light] .skeleton-line:after,[data-theme=light] .skeleton-card:after{background-image:linear-gradient(90deg,#0000 0,#0000000a 20%,#00000014 60%,#0000)}@keyframes skeletonShimmer{to{transform:translate(100%)}}.error-boundary-overlay{box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-height:60vh;padding:24px 16px;display:flex}.error-boundary-card{text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:480px;padding:32px 24px;display:flex}.error-boundary-icon-wrapper{color:#ef4444;background:#ef444424;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:4px;display:flex}.error-boundary-card h2{color:var(--text-main,#fff);margin:0;font-size:1.25rem;font-weight:800}.error-boundary-card p{color:var(--text-muted,#94a3b8);margin:0 0 10px;font-size:.88rem;line-height:1.5}.error-boundary-actions{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;display:flex}.error-boundary-btn{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-width:140px;padding:10px 18px;font-size:.88rem;font-weight:700;display:inline-flex}:root{--bg-main:#f2f2f7;--bg-card:#fff;--bg-elevated:#fff;--bg-nav:#ffffffd9;--text-main:#000;--text-muted:#3c3c43;--text-subtle:#8e8e93;--border-color:#c6c6c8;--border-hover:#aeaeb2;--color-green:#34c759;--color-green-bg:#34c7591f;--color-green-border:#34c75959;--color-orange:#ff9500;--color-orange-bg:#ff95001f;--color-orange-border:#ff950059;--color-red:#ff3b30;--color-red-bg:#ff3b301a;--color-red-border:#ff3b3059;--color-gray:#8e8e93;--color-gray-bg:#e5e5ea;--color-accent:#007aff;--color-accent-hover:#0062cc;--color-accent-light:#007aff1a;--font-family:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", sans-serif;--type-large-title:2.125rem;--type-title-1:1.75rem;--type-title-2:1.375rem;--type-title-3:1.25rem;--type-headline:1.0625rem;--type-body:1.0625rem;--type-callout:1rem;--type-subhead:.9375rem;--type-footnote:.8125rem;--type-caption-1:.75rem;--type-caption-2:.6875rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-heavy:800;--leading-tight:1.2;--leading-snug:1.25;--leading-normal:1.29;--leading-relaxed:1.33;--leading-loose:1.38;--tracking-tight:-.024em;--tracking-normal:-.016em;--tracking-wide:.011em;--radius:18px;--radius-sm:12px;--radius-xs:8px;--transition:all .25s cubic-bezier(.25, 1, .5, 1);--shadow-sm:0 1px 3px #0000000a, 0 1px 2px #00000005;--shadow-md:0 4px 12px #0000000f, 0 2px 4px #0000000a;--shadow-lg:0 10px 30px #00000014}[data-theme=dark]{--bg-main:#000;--bg-card:#1c1c1e;--bg-elevated:#2c2c2e;--bg-nav:#1c1c1ee0;--text-main:#fff;--text-muted:#ebebf5;--text-subtle:#8e8e93;--border-color:#38383a;--border-hover:#48484a;--color-green:#30d158;--color-green-bg:#30d15826;--color-green-border:#30d15866;--color-orange:#ff9f0a;--color-orange-bg:#ff9f0a26;--color-orange-border:#ff9f0a66;--color-red:#ff453a;--color-red-bg:#ff453a26;--color-red-border:#ff453a66;--color-gray:#8e8e93;--color-gray-bg:#2c2c2e;--color-accent:#0a84ff;--color-accent-hover:#409cff;--color-accent-light:#0a84ff26;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 10px 30px #0009}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{scroll-behavior:smooth;width:100%;max-width:100%;position:relative;overflow-x:hidden!important}body{font-family:var(--font-family);font-size:var(--type-body);line-height:var(--leading-normal);letter-spacing:var(--tracking-tight);font-optical-sizing:auto;background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-wrap:break-word;width:100%;max-width:100%;transition:background-color .3s,color .3s;position:relative;overflow-x:hidden!important}#root{flex-direction:column;width:100%;max-width:100%;min-height:100vh;display:flex;position:relative;overflow-x:hidden!important}input:-webkit-autofill{caret-color:var(--text-main);transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--bg-elevated) inset!important;-webkit-text-fill-color:var(--text-main)!important}input:-webkit-autofill:hover{caret-color:var(--text-main);transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--bg-elevated) inset!important;-webkit-text-fill-color:var(--text-main)!important}input:-webkit-autofill:focus{caret-color:var(--text-main);transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--bg-elevated) inset!important;-webkit-text-fill-color:var(--text-main)!important}input:-webkit-autofill:active{caret-color:var(--text-main);transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--bg-elevated) inset!important;-webkit-text-fill-color:var(--text-main)!important}.clean-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .2s,background-color .3s,border-color .3s}.primary-button{background:var(--color-accent);color:#fff;font-weight:var(--weight-semibold);font-family:var(--font-family);font-size:var(--type-footnote);line-height:var(--leading-loose);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:36px;padding:8px 16px;transition:background-color .2s,opacity .2s,transform .15s;display:inline-flex}.primary-button:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-sm)}.primary-button:active{opacity:.85;transform:scale(.98)}.primary-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.dashboard-top-nav,.admin-top-bar,.adminbag-top-bar{align-items:center;width:100%;margin-bottom:8px;display:flex}.back-link,.events-back-link,.equipment-back-link{color:var(--color-accent);font-weight:var(--weight-semibold);font-size:var(--type-subhead);letter-spacing:var(--tracking-normal);line-height:var(--leading-relaxed);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;width:-moz-fit-content;width:fit-content;padding:4px 0;text-decoration:none;transition:opacity .2s cubic-bezier(.25,1,.5,1),transform .2s cubic-bezier(.25,1,.5,1),color .2s;display:inline-flex}.back-link:hover,.events-back-link:hover,.equipment-back-link:hover{opacity:.75;color:var(--color-accent-hover);transform:translate(-3px)}.back-link:active,.events-back-link:active,.equipment-back-link:active{opacity:.5;transform:scale(.97)translate(-5px)}.back-link svg,.events-back-link svg,.equipment-back-link svg{flex-shrink:0;transition:transform .2s cubic-bezier(.25,1,.5,1)}.back-link:hover svg,.events-back-link:hover svg,.equipment-back-link:hover svg{transform:translate(-2px)}.page-header,.events-header,.dashboard-header,.bag-details-header,.report-header,.adminbag-header,.create-event-header{flex-direction:column;gap:4px;margin-bottom:24px;display:flex}.page-header-top,.events-header-top,.dashboard-header-top,.adminbag-header-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.page-header h1,.events-header h1,.dashboard-header h1,.bag-details-header h1,.report-header h1,.adminbag-header h1,.create-event-header h1{font-size:var(--type-title-1);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);color:var(--text-main);line-height:var(--leading-tight);margin:0 0 4px}.page-header p,.events-header p,.dashboard-header p,.bag-details-header p,.report-header p,.adminbag-header p,.create-event-header p{color:var(--text-muted);font-size:var(--type-subhead);font-weight:var(--weight-medium);line-height:var(--leading-relaxed);margin:0}.app-container{max-width:900px;padding:calc(76px + env(safe-area-inset-top,0px)) 20px calc(64px + env(safe-area-inset-bottom,0px));box-sizing:border-box;flex:1;width:100%;margin:0 auto}.app-container-tracker{box-sizing:border-box;flex-direction:column;flex:1;width:100%;max-width:100%;margin:0;padding:0;display:flex}@media (max-width:640px){.app-container{padding:calc(64px + env(safe-area-inset-top,0px)) 16px calc(64px + env(safe-area-inset-bottom,0px))}}.status-text-green{color:var(--color-green)}.status-text-red{color:var(--color-red)}.status-text-gray{color:var(--color-gray)}body,.navbar,.app-footer,.clean-card,.status-badge,button,input,textarea{transition:background-color .3s cubic-bezier(.4,0,.2,1),border-color .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1)}@keyframes iosSlideIn{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.animate-fade-in{animation:.3s cubic-bezier(.25,1,.5,1) forwards iosSlideIn}.loading{text-align:center;color:var(--text-muted);font-weight:var(--weight-medium);font-size:var(--type-callout);padding:80px 24px}.toast,.toast-notification{top:calc(90px + env(safe-area-inset-top,0px));font-weight:var(--weight-semibold);font-size:var(--type-subhead);z-index:9999999;background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-main);-webkit-backdrop-filter:blur(24px)saturate(180%);box-sizing:border-box;word-break:break-word;text-align:center;pointer-events:none;border-radius:40px;justify-content:center;align-items:center;gap:10px;width:max-content;max-width:calc(100vw - 24px);padding:11px 22px;animation:.35s cubic-bezier(.25,1,.5,1) forwards iosToastDrop;display:inline-flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000040,0 2px 6px #00000014}.toast-success,.toast-notification.success{border-color:var(--color-green-border);background:var(--bg-card);color:var(--text-main)}.toast-success svg,.toast-notification svg,.toast svg{color:var(--color-green);flex-shrink:0}@keyframes iosToastDrop{0%{opacity:0;transform:translate(-50%,-20px)scale(.92)}to{opacity:1;transform:translate(-50%)scale(1)}}.gate-modal-overlay,.admin-modal-backdrop,.pdf-modal-overlay{-webkit-backdrop-filter:blur(14px)saturate(150%);z-index:99999;width:100vw;height:100vh;min-height:100dvh;padding:calc(20px + env(safe-area-inset-top,0px)) 16px calc(20px + env(safe-area-inset-bottom,0px));box-sizing:border-box;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}@keyframes iosScaleUp{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.animate-scale-up{animation:.25s cubic-bezier(.34,1.56,.64,1) forwards iosScaleUp}@media (max-width:640px){.toast,.toast-notification{top:calc(90px + env(safe-area-inset-top,0px));padding:11px 18px;font-size:.88rem}}@keyframes toastSlideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
