.admin-task-fab{position:fixed;right:28px;bottom:28px;z-index:1100;pointer-events:none}.admin-task-fab .ant-badge,.admin-task-fab .ant-btn{pointer-events:auto}.admin-task-fab .ant-btn{box-shadow:0 4px 14px #0000001f}.admin-task-toast-stack{position:fixed;top:72px;right:20px;z-index:1200;display:flex;flex-direction:column;gap:10px;width:min(360px,calc(100vw - 32px));pointer-events:none}.admin-task-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;padding:14px 14px 14px 16px;border-radius:14px;background:#fffffff5;border:1px solid rgba(0,0,0,.06);box-shadow:0 10px 28px #0f172a24,0 2px 8px #0f172a0f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;animation:admin-task-toast-in .38s cubic-bezier(.22,1,.36,1);transform-origin:right top}.admin-task-toast--info{border-left:4px solid #1677ff}.admin-task-toast--success{border-left:4px solid #52c41a}.admin-task-toast--error{border-left:4px solid #ff4d4f}.admin-task-toast__icon{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:16px;margin-top:1px}.admin-task-toast--info .admin-task-toast__icon{color:#1677ff;background:#1677ff1a}.admin-task-toast--success .admin-task-toast__icon{color:#389e0d;background:#52c41a1f}.admin-task-toast--error .admin-task-toast__icon{color:#cf1322;background:#ff4d4f1f}.admin-task-toast__body{flex:1;min-width:0}.admin-task-toast__title{font-size:14px;font-weight:600;color:#000000e0;line-height:1.35}.admin-task-toast__desc{margin-top:4px;font-size:12px;color:#0000008c;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.admin-task-toast__close{flex-shrink:0;border:0;background:transparent;color:#00000059;cursor:pointer;padding:2px;line-height:1;border-radius:6px}.admin-task-toast__close:hover{color:#000000a6;background:#0000000a}@keyframes admin-task-toast-in{0%{opacity:0;transform:translate(28px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}.admin-task-dock{position:fixed;left:20px;bottom:24px;z-index:1100;display:flex;flex-direction:column-reverse;gap:8px;width:min(300px,calc(100vw - 140px));max-height:42vh;overflow:auto;pointer-events:none}.admin-task-dock__item{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.06);background:#fffffff5;box-shadow:0 6px 18px #0f172a1a;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.admin-task-dock__item:hover{transform:translateY(-1px);box-shadow:0 8px 22px #0f172a24}.admin-task-dock__dot{flex-shrink:0;width:8px;height:8px;margin-top:5px;border-radius:50%;background:#1677ff}.admin-task-dock__item--success .admin-task-dock__dot{background:#52c41a}.admin-task-dock__item--error .admin-task-dock__dot{background:#ff4d4f}.admin-task-dock__text{min-width:0;display:flex;flex-direction:column;gap:2px}.admin-task-dock__title{font-size:13px;font-weight:600;color:#000000e0;line-height:1.3}.admin-task-dock__body{font-size:12px;color:#00000080;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.admin-task-list-item--clickable{cursor:pointer}.admin-task-list-item--clickable:hover{background:#00000005}@media (max-width: 767px){.admin-task-fab{right:12px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}.admin-task-fab .ant-btn{padding-inline:12px;height:40px}.admin-task-dock{left:12px;right:72px;bottom:calc(64px + env(safe-area-inset-bottom,0px));max-width:none;width:auto}.admin-task-toast-stack{top:auto;bottom:calc(72px + env(safe-area-inset-bottom,0px));right:12px;left:12px;width:auto}@keyframes admin-task-toast-in{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}}body{margin:0;background:#f5f5f5}.routes-table .ant-table-cell-fix-right{overflow:visible!important}.ant-table-row-muted td{background:#fafafa!important;color:#00000073}.route-track-hiker-icon,.route-track-endpoint-icon{background:transparent;border:none}.route-track-hiker{font-size:22px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.route-track-endpoint{width:24px;height:24px;border-radius:50%;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000040}.route-track-map-shell{position:relative}.route-track-map-container{position:relative;z-index:0}.route-form-section{text-align:left;margin-bottom:8px}.route-form-section .ant-row{justify-content:flex-start}.route-form-section .ant-form-item-label{text-align:left}.route-form-section .ant-upload-drag{text-align:center}.route-form-section-title{display:flex;align-items:center;margin:8px 0 16px;padding-left:10px;border-left:3px solid #15803d;font-size:16px;font-weight:600;line-height:1.4;text-align:left}.route-images-grid__thumb{width:100%;aspect-ratio:4 / 3;overflow:hidden;background:#f0f0f0;flex-shrink:0}.route-images-grid__thumb .ant-image,.route-images-grid__thumb .ant-image-img{width:100%!important;height:100%!important;-o-object-fit:cover;object-fit:cover}.route-images-waterfall{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}@media (max-width: 1400px){.route-images-waterfall{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (max-width: 992px){.route-images-waterfall{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (max-width: 576px){.route-images-waterfall{grid-template-columns:1fr}}.route-image-preview-nav-icon{font-size:28px!important;color:#fff!important}.ant-image-preview-switch-left,.ant-image-preview-switch-right{width:48px!important;height:48px!important;margin-top:-24px!important;background:#00000073!important;border-radius:50%!important}.ant-image-preview-switch-left .anticon,.ant-image-preview-switch-right .anticon{font-size:22px!important}.route-image-preview-toolbar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.leader-attendance-cell{display:flex;align-items:center;justify-content:center;gap:4px;min-height:18px;font-size:11px;line-height:1}.leader-attendance-cell__dot{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#0000001f;color:#000000a6}.leader-attendance-cell.is-mine .leader-attendance-cell__dot{background:#1677ff33;color:#1677ff}.leader-attendance-cell__mine{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#1677ff;color:#fff;font-weight:600}.ant-picker-calendar .ant-picker-calendar-date-content{height:auto!important;min-height:22px}.leader-attendance-day-list .ant-list-item{margin-bottom:10px;padding:12px 14px!important;border:1px solid #e8e8e8!important;border-radius:10px;background:#fff;align-items:flex-start}.leader-attendance-day-list .ant-list-item:last-child{margin-bottom:0}.leader-attendance-day-list .ant-list-item.leader-attendance-card--mine{background:#f0f7ff;border-color:#91caff!important;box-shadow:inset 3px 0 #1677ff}.leader-attendance-day-list .ant-list-item.leader-attendance-card--waitlist{background:#f9f0ff;border-color:#d3adf7!important;box-shadow:inset 3px 0 #722ed1}.leader-attendance-self-name{color:#000;font-weight:700}.leader-attendance-day-list .ant-list-item-action{margin-inline-start:12px}.route-season-covers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media (max-width: 768px){.route-season-covers{grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-mobile-card-list{display:flex;flex-direction:column;gap:10px}.admin-mobile-card-list__empty{padding:48px 16px}.admin-mobile-list-card{display:flex;flex-direction:row;gap:12px;padding:12px;border-radius:12px;background:#f5f6f8;border:1px solid rgba(15,23,42,.04)}.admin-mobile-list-card--clickable{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s ease,transform .12s ease}.admin-mobile-list-card--clickable:active{background:#eef0f3;transform:scale(.992)}.admin-mobile-list-card__cover{width:72px;height:72px;flex-shrink:0;border-radius:8px;overflow:hidden;background:#e2e8f0}.admin-mobile-list-card__cover img,.admin-mobile-list-card__cover .ant-image,.admin-mobile-list-card__cover .ant-image-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.admin-mobile-list-card__cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:12px;color:#00000040;background:#f0f0f0}.admin-mobile-list-card__avatar{width:48px;height:48px;flex-shrink:0;border-radius:50%;overflow:hidden;background:#e2e8f0}.admin-mobile-list-card__avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.admin-mobile-list-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.admin-mobile-list-card__head{display:flex;align-items:flex-start;gap:8px}.admin-mobile-list-card__title{flex:1;min-width:0;font-size:15px;font-weight:650;color:#000000e0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.admin-mobile-list-card__actions{flex-shrink:0;margin:-4px -6px 0 0}.admin-mobile-list-card__actions .ant-btn{min-height:36px;padding-inline:8px}.admin-mobile-list-card__meta{font-size:12px;color:#00000073;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-mobile-list-card__tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.admin-mobile-list-card__tags .ant-tag{margin-inline-end:0}.admin-mobile-list-card__footer{margin-top:2px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#0000008c;line-height:1.35}.admin-mobile-list-card__footer-muted{color:#00000073}@media (max-width: 767px){html,body,#root{max-width:100vw;overflow-x:hidden}.admin-content-shell{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}.admin-filter-bar{display:flex;flex-direction:column;align-items:stretch!important;gap:10px!important}.admin-filter-bar .ant-picker,.admin-filter-bar .ant-select,.admin-filter-bar .ant-input-affix-wrapper,.admin-filter-bar .ant-input-search,.admin-filter-bar .ant-segmented{width:100%!important;min-width:0!important;max-width:100%!important}.ant-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.ant-table-cell-fix-right,.ant-table-cell-fix-left{overflow:visible!important}.ant-modal{max-width:calc(100vw - 24px)!important;margin:12px auto!important;padding-bottom:env(safe-area-inset-bottom,0px)}.ant-modal .ant-modal-body{max-height:min(70vh,560px);overflow-y:auto;-webkit-overflow-scrolling:touch}.ant-drawer-content-wrapper{max-width:100vw!important}.admin-sticky-actions{position:sticky;bottom:0;z-index:20;margin:16px -12px -12px;padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px));background:#fffffff5;border-top:1px solid #f0f0f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 -4px 12px #0000000a}.admin-sticky-actions .ant-btn{min-height:40px}.admin-page-header-extra,.admin-page-header-extra .ant-space{width:100%}.admin-page-header-extra .ant-space-item{flex:1 1 auto}.admin-page-header-extra .ant-btn{width:100%}}.launch-timeline-page{display:flex;flex-direction:column;height:calc(100dvh - var(--admin-layout-header-offset, 56px) - 32px);max-height:calc(100dvh - var(--admin-layout-header-offset, 56px) - 32px);overflow:hidden;padding-bottom:0;box-sizing:border-box}.launch-timeline-page__header{flex:0 0 auto;z-index:30;background:#fff;margin:0 -4px;padding:0 4px 4px}.launch-timeline-page__header .ant-typography{margin-bottom:0!important}.launch-timeline-page__header>div{margin-bottom:8px!important}.launch-timeline-page__scroll{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 4px 24px;margin:0 -4px}.launch-timeline{position:relative;margin:0;padding-left:4px}.launch-timeline__axis{position:absolute;left:36px;top:12px;bottom:12px;width:2px;background:linear-gradient(180deg,#91caff,#d6e4ff 40%,#e6f4ff);border-radius:1px;pointer-events:none}.launch-timeline__row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px 16px;align-items:start;margin-bottom:20px;position:relative}.launch-timeline__row.is-folded-away{margin-bottom:10px;opacity:.55}.launch-timeline__folded-hint{justify-self:start;align-self:center;border:1px dashed #adc6ff;background:#fafcff;color:#8c8c8c;border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer;line-height:1.4}.launch-timeline__folded-hint:hover{color:#1677ff;border-color:#1677ff;background:#f0f5ff}.launch-timeline__month{position:relative;z-index:1;width:64px;height:64px;border-radius:50%;border:2px solid #91caff;background:#fff;color:#1677ff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 2px 8px #1677ff1f;transition:background .15s,color .15s,border-color .15s,transform .15s}.launch-timeline__month:hover{transform:scale(1.04);border-color:#1677ff}.launch-timeline__month.is-active{background:#1677ff;color:#fff;border-color:#1677ff}.launch-timeline__month-num{font-size:20px;font-weight:700;line-height:1}.launch-timeline__month-unit{font-size:11px;opacity:.85;margin-top:2px}.launch-timeline__branch{min-width:0;padding:4px 0 4px 8px;border-left:1px dashed #adc6ff;margin-left:0}.launch-timeline__half{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.launch-timeline__half.is-collapsed{align-items:center}.launch-timeline__half-toggle{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-width:118px;padding:4px 10px;border:1px solid #91caff;border-radius:6px;background:#f0f5ff;color:#1677ff;font-size:12px;cursor:pointer;line-height:1.4}.launch-timeline__half-toggle:hover{background:#d6e4ff;border-color:#1677ff}.launch-timeline__half-count{margin-left:2px;padding:0 6px;border-radius:999px;background:#1677ff;color:#fff;font-size:11px;font-weight:600}.launch-timeline__half-label{flex:0 0 auto;font-size:12px;color:#8c8c8c;width:72px}.launch-timeline__cards{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;flex:1 1 auto;min-height:44px;padding:4px;border-radius:8px}.launch-timeline-card{display:flex;align-items:flex-start;gap:4px;max-width:260px;min-width:180px;padding:8px 8px 8px 10px;background:#fff;border:1px solid #d9e6ff;border-radius:10px;box-shadow:0 1px 4px #1677ff0f}.launch-timeline-card.is-urgency-red{border-color:#ff4d4f;background:#fff2f0;box-shadow:0 0 0 1px #ff4d4f33}.launch-timeline-card.is-urgency-orange{border-color:#fa8c16;background:#fff7e6;box-shadow:0 0 0 1px #fa8c1633}.launch-timeline-card.is-urgency-green{border-color:#52c41a;background:#f6ffed;box-shadow:0 0 0 1px #52c41a33}.launch-timeline-card__body{flex:1;min-width:0;text-align:left;border:0;background:transparent;cursor:pointer;padding:0}.launch-timeline-card__region{font-size:11px;font-weight:600;color:#1677ff;letter-spacing:.04em;margin-bottom:2px;line-height:1.3}.launch-timeline-card__title{font-weight:600;font-size:13px;color:#1f1f1f;line-height:1.35;word-break:break-word}.launch-timeline-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px}.launch-timeline-card__date{font-size:11px;color:#8c8c8c}.launch-timeline-card__note{margin-top:4px;font-size:12px;color:#595959;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.launch-timeline__add{width:36px;height:36px;border-radius:50%;border:1px dashed #91caff;background:#f0f5ff;color:#1677ff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.launch-timeline__add:hover{background:#d6e4ff}.launch-timeline__calendar{margin-top:8px;padding:12px;background:#fafcff;border:1px solid #e6f0ff;border-radius:12px;max-width:420px}.launch-timeline__cal-head{text-align:center;font-weight:600;margin-bottom:8px;color:#1677ff}@media (max-width: 768px){.launch-timeline-page{height:calc(100dvh - var(--admin-layout-header-offset, 56px) - 24px - 72px - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - var(--admin-layout-header-offset, 56px) - 24px - 72px - env(safe-area-inset-bottom,0px))}.launch-timeline__axis{left:28px}.launch-timeline__row{grid-template-columns:56px minmax(0,1fr);gap:8px 10px}.launch-timeline__month{width:52px;height:52px}.launch-timeline__month-num{font-size:16px}.launch-timeline-card{min-width:140px;max-width:100%}.launch-timeline__half-toggle{width:100%;justify-content:flex-start}.launch-timeline__half-label{width:100%}}
