@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css";:root{--primary-main: #2F6364;--primary-light: #3D7F80;--primary-dark: #1E4748;--primary-muted: #2F636433;--secondary-coral: #D4726A;--secondary-gold: #C4A35A;--secondary-sage: #7A9E7E;--secondary-slate: #5A6B7C;--status-success: #5B9A6F;--status-warning: #C4A35A;--status-error: #C75D54;--status-info: #5A8F9A;--branch-backend: #5A8F9A;--branch-frontend: #7A9E7E;--branch-logic: #8B7A9E;--branch-web: #5A6B7C;--branch-admin: #9E8B7A;--ui-background: #0D1517;--ui-surface: #141E20;--ui-card: #1A2628;--ui-border: #2A3B3D;--ui-border-light: #3A4D4F;--text-primary: #E8EDED;--text-secondary: #A3B5B6;--text-muted: #6B8384;--text-disabled: #4A5C5D}*{margin:0;padding:0;box-sizing:border-box}.app-container{min-height:100vh;background:var(--ui-background);font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;color:var(--text-primary);-webkit-font-smoothing:antialiased}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*:focus{outline:none}*:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px}.service-card:focus-visible{outline:2px solid var(--primary-light);outline-offset:4px;box-shadow:0 0 0 4px #2f636433}button:focus-visible,.filter-btn:focus-visible,.sort-dropdown:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px}button:disabled,button[disabled]{color:var(--text-muted)!important;cursor:not-allowed;opacity:.6}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--primary-light);outline-offset:0;border-color:var(--primary-main)}.skip-link{position:absolute;top:-40px;left:0;background:var(--primary-main);color:#fff;padding:8px 16px;z-index:100;transition:top .3s}.skip-link:focus{top:0}.dashboard-view{padding:clamp(16px,4vw,32px);max-width:1400px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:clamp(20px,4vw,32px);flex-wrap:wrap}.dashboard-layout{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}.dashboard-main{min-width:0}.dashboard-sidebar{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin;scrollbar-color:var(--ui-border) transparent}.dashboard-sidebar::-webkit-scrollbar{width:4px}.dashboard-sidebar::-webkit-scrollbar-track{background:transparent}.dashboard-sidebar::-webkit-scrollbar-thumb{background:var(--ui-border);border-radius:2px}.widget-settings{display:flex;flex-direction:column;gap:24px}.widget-settings-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.widget-settings-hint{font-size:12px;color:var(--text-muted);margin-bottom:12px}.widget-settings-list{display:flex;flex-direction:column;gap:8px}.widget-settings-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;transition:all .15s ease}.widget-settings-item.dragging{background:var(--ui-card);border-color:var(--primary-main);box-shadow:0 4px 12px #0000004d}.widget-settings-item .drag-handle{display:flex;align-items:center;justify-content:center;padding:4px;background:none;border:none;color:var(--text-muted);cursor:grab;touch-action:none}.widget-settings-item .drag-handle:active{cursor:grabbing}.widget-settings-item .drag-handle:hover{color:var(--text-secondary)}.widget-settings-item .widget-label{flex:1;font-size:14px;color:var(--text-primary)}.widget-settings-actions{display:flex;justify-content:space-between;gap:12px;padding-top:16px;border-top:1px solid var(--ui-border)}.widget-settings-actions .btn-secondary{padding:10px 16px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .15s ease}.widget-settings-actions .btn-secondary:hover{background:var(--ui-card);color:var(--text-primary)}.widget-settings-actions .btn-primary{padding:10px 24px;background:var(--primary-main);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.widget-settings-actions .btn-primary:hover{background:var(--primary-light)}.widget-settings-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.widget-settings-btn:hover{background:var(--ui-card);color:var(--text-primary);border-color:var(--ui-border-light)}.mobile-calendar-wrapper{display:none}@media(max-width:1100px){.dashboard-layout{grid-template-columns:1fr}.dashboard-sidebar{display:none}.mobile-calendar-wrapper{display:block;margin-bottom:20px}.mobile-calendar-wrapper .mini-calendar{max-width:100%;width:100%}}.header-content{display:flex;align-items:center;gap:16px}.header-logo{width:48px;height:48px;border-radius:12px;overflow:hidden;flex-shrink:0}.header-logo img{width:100%;height:100%;object-fit:cover}.dashboard-header h1{font-size:clamp(24px,5vw,32px);font-weight:700;color:var(--text-primary);margin-bottom:4px}.dashboard-header p{color:var(--text-muted);font-size:clamp(13px,2vw,15px)}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,2vw,16px);margin-bottom:clamp(16px,3vw,24px)}@media(max-width:640px){.stats-row{grid-template-columns:repeat(2,1fr)}}.stat-box{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;padding:clamp(16px,3vw,24px);text-align:center}.stat-number{display:block;font-size:clamp(24px,4vw,32px);font-weight:700;color:var(--text-primary)}.stat-label{font-size:clamp(11px,2vw,13px);color:var(--text-muted);margin-top:4px}.stat-box.on-track .stat-number{color:var(--status-success)}.stat-box.delayed .stat-number{color:var(--status-error)}.stat-box.completed .stat-number{color:var(--secondary-sage)}.filter-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:clamp(16px,3vw,24px);flex-wrap:wrap}.filter-left{display:flex;align-items:center;gap:12px;flex:1;flex-wrap:wrap}.search-wrapper{position:relative;flex:1;max-width:280px;min-width:180px}.search-wrapper .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-wrapper .search-input{width:100%;padding:10px 36px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;color:var(--text-primary);font-size:13px;font-family:inherit;transition:border-color .2s ease}.search-wrapper .search-input::placeholder{color:var(--text-muted)}.search-wrapper .search-input:focus{outline:none;border-color:var(--primary-main)}.search-wrapper .search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:var(--ui-border);border:none;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:background .2s ease,color .2s ease}.search-wrapper .search-clear:hover{background:var(--text-muted);color:var(--ui-background)}.filter-buttons{display:flex;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;padding:4px;gap:0}.filter-buttons button{padding:8px 18px;background:transparent;border:none;border-radius:7px;color:var(--text-muted);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease}.filter-buttons button:hover{color:var(--text-primary)}.filter-buttons button.active{background:var(--primary-main);color:#fff;box-shadow:0 2px 4px #0003}.filter-buttons button .filter-icon{margin-right:4px;font-size:12px}.my-tasks-chip{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:20px;color:var(--text-muted);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease;white-space:nowrap}.my-tasks-chip:hover{border-color:var(--status-info);color:var(--status-info)}.my-tasks-chip.active{background:var(--status-info);border-color:var(--status-info);color:#fff;box-shadow:0 2px 4px #5a8f9a4d}.my-tasks-chip .chip-icon{font-size:12px}.my-tasks-chip .chip-label{font-size:13px}.filter-row select{padding:8px 32px 8px 16px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:12px;color:var(--text-primary);font-size:13px;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23A3B5B6' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.data-management{display:flex;gap:8px;flex-wrap:wrap}.data-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease}.data-btn:hover{background:var(--ui-card);color:var(--text-primary);border-color:var(--ui-border-light)}.data-btn.export:hover{border-color:var(--status-success);color:var(--status-success)}.data-btn.import:hover{border-color:var(--status-info);color:var(--status-info)}.data-btn.reset:hover{border-color:var(--status-warning);color:var(--status-warning)}.data-btn.clear:hover{border-color:var(--status-error);color:var(--status-error)}.data-btn svg{width:14px;height:14px}.mini-calendar{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;padding:20px;min-width:280px}.mini-calendar .calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.mini-calendar .calendar-header h3{font-size:15px;font-weight:600;color:var(--text-primary);margin:0}.mini-calendar .calendar-nav{display:flex;align-items:center;gap:8px}.mini-calendar .calendar-nav button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.mini-calendar .calendar-nav button:hover{background:var(--ui-border);color:var(--text-primary)}.mini-calendar .current-month{font-size:13px;font-weight:500;color:var(--text-primary);cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s ease}.mini-calendar .current-month:hover{background:var(--ui-surface)}.mini-calendar .calendar-grid{margin-bottom:16px;display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.mini-calendar .calendar-weekdays{display:contents}.mini-calendar .weekday{text-align:center;font-size:11px;font-weight:500;color:var(--text-muted);padding:4px 0}.mini-calendar .calendar-days{display:contents}.mini-calendar .calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;cursor:default;position:relative;transition:background .2s ease}.mini-calendar .calendar-day.empty{background:transparent}.mini-calendar .calendar-day .day-number{font-size:12px;font-weight:400;color:var(--text-secondary)}.mini-calendar .calendar-day.today{background:var(--primary-main)}.mini-calendar .calendar-day.today .day-number{color:#fff;font-weight:600}.mini-calendar .calendar-day.has-deadline{background:var(--ui-surface)}.mini-calendar .calendar-day.has-deadline:hover{background:var(--ui-border)}.mini-calendar .calendar-day.urgent{background:#c75d5426}.mini-calendar .calendar-day.urgent .day-number{color:var(--status-error);font-weight:500}.mini-calendar .calendar-day.today.urgent{background:var(--status-error)}.mini-calendar .calendar-day.today.urgent .day-number{color:#fff}.mini-calendar .deadline-dots{display:flex;gap:2px;margin-top:2px}.mini-calendar .deadline-dot{width:4px;height:4px;border-radius:50%}.mini-calendar .upcoming-deadlines{border-top:1px solid var(--ui-border);padding-top:16px}.mini-calendar .upcoming-deadlines h4{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 12px}.mini-calendar .no-deadlines{font-size:12px;color:var(--text-muted);text-align:center;padding:12px 0}.mini-calendar .deadline-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.mini-calendar .deadline-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--ui-surface);border-radius:10px;cursor:pointer;transition:all .2s ease}.mini-calendar .deadline-item:hover{background:var(--ui-border);transform:translate(4px)}.mini-calendar .deadline-indicator{width:4px;height:32px;border-radius:2px;flex-shrink:0}.mini-calendar .deadline-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mini-calendar .deadline-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-calendar .deadline-service{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-calendar .deadline-dday{font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--ui-border);padding:4px 8px;border-radius:6px;flex-shrink:0}.mini-calendar .deadline-dday.urgent{background:#c75d5433;color:var(--status-error)}.mini-calendar .calendar-expand-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-muted);border-radius:4px;cursor:pointer;transition:all .15s ease;flex-shrink:0;margin-left:4px}.mini-calendar .calendar-expand-btn:hover{background:var(--ui-surface);color:var(--primary-main)}.history-widget{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;padding:16px}.history-widget-header{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:16px}.history-widget-icon{font-size:1.1rem}.history-widget-skeleton{display:flex;flex-direction:column;gap:12px}.history-widget-content{display:flex;flex-direction:column;gap:14px}.history-widget-stats-row{display:flex;justify-content:space-between;text-align:center;padding:8px 0}.history-stat-column{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1}.history-stat-column .history-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1.2}.history-stat-column .history-stat-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}.history-widget-level{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--ui-surface);border-radius:8px;padding:10px 12px}.level-emoji{font-size:1.25rem}.level-message{font-size:.8125rem;color:var(--text-secondary);font-weight:500}.history-widget-link{display:flex;align-items:center;justify-content:center;gap:4px;background:transparent;border:1px solid var(--ui-border);border-radius:8px;padding:10px 12px;color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease}.history-widget-link:hover{background:var(--ui-surface);border-color:var(--primary-main);color:var(--primary-main)}.history-widget-link svg{transition:transform .15s ease}.history-widget-link:hover svg{transform:translate(2px)}.calendar-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .2s ease}.calendar-modal{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:20px;width:100%;max-width:900px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:scaleIn .2s ease}.calendar-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--ui-border);position:relative}.calendar-modal-header .calendar-modal-nav{position:absolute;left:50%;transform:translate(-50%)}.calendar-modal-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.calendar-modal-nav{display:flex;align-items:center;gap:12px}.calendar-modal-nav button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:var(--ui-surface);color:var(--text-secondary);border-radius:8px;cursor:pointer;transition:all .15s ease}.calendar-modal-nav button:hover{background:var(--ui-border);color:var(--text-primary)}.calendar-modal-nav .current-month{font-size:16px;font-weight:600;color:var(--text-primary);cursor:pointer;padding:8px 16px;border-radius:8px;transition:background .15s ease}.calendar-modal-nav .current-month:hover{background:var(--ui-surface)}.calendar-modal-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--text-muted);border-radius:8px;cursor:pointer;transition:all .15s ease}.calendar-modal-close:hover{background:var(--ui-surface);color:var(--text-primary)}.calendar-modal-content{display:grid;grid-template-columns:1fr 320px;flex:1;overflow:hidden}.calendar-modal-main{padding:24px;overflow:auto}.calendar-modal-main .calendar-grid-large{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-modal-main .calendar-grid-large .calendar-weekdays{display:contents}.calendar-modal-main .calendar-grid-large .weekday{text-align:center;font-size:13px;font-weight:600;color:var(--text-muted);padding:12px 0}.calendar-modal-main .calendar-grid-large .calendar-days{display:contents}.calendar-modal-main .calendar-grid-large .calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--ui-surface);border-radius:12px;transition:all .15s ease;min-height:60px}.calendar-modal-main .calendar-grid-large .calendar-day.empty{background:transparent}.calendar-modal-main .calendar-grid-large .calendar-day .day-number{font-size:16px;font-weight:500;color:var(--text-secondary)}.calendar-modal-main .calendar-grid-large .calendar-day.today{background:var(--primary-main)}.calendar-modal-main .calendar-grid-large .calendar-day.today .day-number{color:#fff;font-weight:700}.calendar-modal-main .calendar-grid-large .calendar-day.has-deadline{background:var(--ui-border)}.calendar-modal-main .calendar-grid-large .calendar-day.clickable{cursor:pointer}.calendar-modal-main .calendar-grid-large .calendar-day.clickable:hover{background:#2f63644d;transform:translateY(-2px)}.calendar-modal-main .calendar-grid-large .calendar-day.selected{background:var(--primary-main);box-shadow:0 0 0 2px var(--primary-light)}.calendar-modal-main .calendar-grid-large .calendar-day.selected .day-number{color:#fff;font-weight:700}.calendar-modal-main .calendar-grid-large .calendar-day.urgent{background:#c75d5433}.calendar-modal-main .calendar-grid-large .calendar-day.urgent .day-number{color:var(--status-error);font-weight:600}.calendar-modal-main .calendar-grid-large .calendar-day.today.urgent{background:var(--status-error)}.calendar-modal-main .calendar-grid-large .calendar-day.today.urgent .day-number{color:#fff}.calendar-modal-main .calendar-grid-large .deadline-dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center;max-width:50px}.calendar-modal-main .calendar-grid-large .deadline-dot{width:6px;height:6px;border-radius:50%}.calendar-modal-main .calendar-grid-large .deadline-more{font-size:9px;color:var(--text-muted);font-weight:500}.calendar-modal-sidebar{background:var(--ui-surface);border-left:1px solid var(--ui-border);padding:24px;overflow-y:auto}.calendar-modal-sidebar h3{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--ui-border)}.calendar-modal-sidebar .no-deadlines{font-size:13px;color:var(--text-muted);text-align:center;padding:24px 0}.expanded-deadline-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.expanded-deadline-item{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:12px;padding:14px;cursor:pointer;transition:all .15s ease}.expanded-deadline-item:hover{border-color:var(--primary-main);transform:translate(4px)}.expanded-deadline-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.deadline-type-badge{font-size:10px;font-weight:600;color:#fff;padding:3px 8px;border-radius:4px}.deadline-type-badge.small{font-size:9px;padding:2px 6px}.deadline-date-badge{font-size:11px;font-weight:600;color:var(--text-primary);background:var(--ui-border);padding:3px 8px;border-radius:4px}.expanded-deadline-name{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px;line-height:1.3}.expanded-deadline-service{font-size:12px;color:var(--text-muted)}.expanded-deadline-status{font-size:11px;font-weight:500;margin-top:8px;padding:4px 8px;border-radius:4px;display:inline-block}.expanded-deadline-status.status-completed{background:#5b9a6f33;color:var(--status-success)}.expanded-deadline-status.status-current{background:#2f636433;color:var(--primary-light)}.expanded-deadline-status.status-pending{background:var(--ui-border);color:var(--text-muted)}@media(max-width:768px){.calendar-modal-overlay{padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));align-items:center;justify-content:center}.calendar-modal{max-height:calc(100dvh - 32px);width:100%;border-radius:16px;display:flex;flex-direction:column;overflow:hidden}.calendar-modal-header{flex-shrink:0;padding:16px}.calendar-modal-content{display:flex;flex-direction:column;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.calendar-modal-main{padding:16px;flex-shrink:0}.calendar-modal-sidebar{border-left:none;border-top:1px solid var(--ui-border);padding:16px;flex-shrink:0;max-height:200px;overflow-y:auto}.calendar-modal-main .calendar-grid-large .calendar-day{min-height:44px}.calendar-modal-main .calendar-grid-large .calendar-day .day-number{font-size:14px}.calendar-modal-main .calendar-grid-large .deadline-dot{width:5px;height:5px}.calendar-modal-header{padding:16px;flex-wrap:wrap;gap:12px}.calendar-modal-header .calendar-modal-nav{position:static;transform:none;order:3;width:100%;justify-content:center}}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:clamp(16px,3vw,24px)}.load-more-container{display:flex;justify-content:center;margin-top:24px}.load-more-btn{padding:12px 32px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.load-more-btn:hover{background:var(--ui-card);border-color:var(--primary-main);color:var(--text-primary)}.load-more-btn:active{transform:scale(.98)}.skeleton{background:linear-gradient(90deg,var(--ui-border) 25%,var(--ui-border-light) 50%,var(--ui-border) 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s ease-in-out infinite}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{pointer-events:none}.skeleton-card .card-accent-line{height:4px;background:var(--ui-border)}.skeleton-stat,.skeleton-view{pointer-events:none}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(40px,8vw,80px) 20px;background:var(--ui-card);border:2px dashed var(--ui-border);border-radius:24px;animation:fadeSlideIn .4s ease-out}.empty-state-icon{margin-bottom:24px;opacity:.6}.empty-state h3{font-size:clamp(18px,3vw,22px);font-weight:600;color:var(--text-primary);margin-bottom:8px}.empty-state p{font-size:clamp(13px,2vw,15px);color:var(--text-muted);margin-bottom:24px;max-width:300px}.empty-state-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:var(--primary-main);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.empty-state-btn:hover{background:var(--primary-light);transform:translateY(-2px)}.empty-state-btn.secondary{background:transparent;border:1px solid var(--ui-border-light);color:var(--text-secondary)}.empty-state-btn.secondary:hover{background:var(--ui-surface);border-color:var(--primary-main);color:var(--primary-light)}.empty-state.no-results{background:transparent;border-style:solid;border-color:var(--ui-border)}.service-card{background:var(--ui-card);border:2px solid var(--ui-border);border-radius:20px;padding:clamp(20px,3vw,24px);cursor:pointer;transition:all .25s ease;position:relative;overflow:hidden}.service-card:hover{border-color:var(--accent-color);transform:translateY(-4px);box-shadow:0 16px 40px #0000004d}.service-card.urgent-deadline{border:2px solid var(--status-error);animation:border-pulse 2s ease-in-out infinite}.service-card.urgent-deadline:hover{border:2px solid var(--status-error);box-shadow:0 16px 40px #c75d5440;animation:none}@keyframes border-pulse{0%,to{border-color:var(--status-error);box-shadow:0 0 #c75d5400}50%{border-color:#e74c3c;box-shadow:0 0 12px 2px #e74c3c66}}.card-accent-line{display:none}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.service-identity{display:flex;gap:12px;align-items:center}.service-icon{font-size:28px}.service-image{width:36px;height:36px;border-radius:8px;object-fit:cover}.service-name{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.service-desc{font-size:12px;color:var(--text-muted)}.status-badge{padding:5px 12px;border-radius:16px;font-size:11px;font-weight:600}.active-project{margin-bottom:14px;padding:12px 14px;background:var(--ui-surface);border-radius:12px}.project-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.project-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.active-project .project-name{font-size:14px;font-weight:500;color:var(--text-secondary)}.branch-badge{font-size:10px;padding:3px 8px;background:var(--ui-border);border-radius:10px;color:var(--text-muted)}.mini-journey-map{display:block;margin:0 auto 14px}.progress-section{display:flex;align-items:center;gap:12px;margin-bottom:16px}.progress-bar-bg{flex:1;height:6px;background:var(--ui-border);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:3px;transition:width .4s ease}.progress-text{font-size:14px;font-weight:600;min-width:42px;text-align:right}.card-footer{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;padding-top:14px;border-top:1px solid var(--ui-border);margin-bottom:14px}@media(max-width:400px){.card-footer{grid-template-columns:1fr 1fr}.card-footer .deadline{grid-column:span 2}}.info-block .info-label{display:block;font-size:10px;color:var(--text-muted);text-transform:uppercase;margin-bottom:3px}.info-block .info-value{font-size:13px;font-weight:500;color:var(--text-secondary)}.info-block.deadline{position:relative}.info-block .info-value.deadline-completed{color:var(--status-success)}.info-block .info-value.deadline-normal{color:var(--text-secondary)}.info-block .info-value.deadline-warning{color:var(--status-warning)}.info-block .info-value.deadline-critical{color:#e67e22;font-weight:600}.info-block .info-value.deadline-today{color:var(--status-error);font-weight:600}.info-block .info-value.deadline-overdue{color:#e74c3c;font-weight:700}.info-block.deadline.critical,.info-block.deadline.today,.info-block.deadline.overdue{background:#e74c3c1a;padding:6px 10px;margin:-6px -10px;border-radius:8px}.info-block.deadline.warning{background:#c4a35a1a;padding:6px 10px;margin:-6px -10px;border-radius:8px}.card-action{display:flex;justify-content:center;align-items:center;gap:6px;padding:10px;background:var(--ui-surface);border-radius:12px;font-size:13px;font-weight:500;color:var(--text-muted);transition:all .2s ease}.service-card:hover .card-action{background:var(--accent-color);color:#fff}.service-card.urgent-deadline:hover .card-action{background:var(--status-error);color:#fff}.journey-detail-view{padding:clamp(16px,4vw,32px);max-width:1400px;margin:0 auto}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;gap:16px;animation:fadeSlideIn .4s ease-out}.not-found:before{content:"🚇";font-size:64px;opacity:.5;margin-bottom:8px}.not-found h2{font-size:clamp(20px,4vw,24px);color:var(--text-primary)}.not-found p{font-size:clamp(13px,2vw,14px);color:var(--text-muted);max-width:300px}.back-to-dashboard-btn{margin-top:16px;padding:12px 24px;background:var(--primary-main);border:none;border-radius:8px;color:#fff;font-size:14px;font-family:inherit;cursor:pointer;transition:background .2s ease}.back-to-dashboard-btn:hover{background:var(--primary-light)}.back-button{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:24px;color:var(--text-secondary);font-size:14px;font-family:inherit;cursor:pointer;transition:all .2s ease;margin-bottom:clamp(16px,3vw,24px)}.back-button:hover{background:var(--ui-border);color:var(--text-primary)}.detail-top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(16px,3vw,24px);flex-wrap:wrap;gap:12px}.detail-top-bar .back-button{margin-bottom:0}.top-bar-right{display:flex;align-items:center;gap:12px}.reorder-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:8px;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.reorder-btn:hover{background:var(--ui-surface);border-color:var(--ui-border-light);color:var(--text-primary)}.reorder-btn svg{opacity:.7}.reorder-btn:hover svg{opacity:1}.view-toggle{display:flex;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:12px;padding:4px;gap:0}.view-toggle-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;background:transparent;border:none;border-radius:9px;color:var(--text-muted);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease}.view-toggle-btn:hover{color:var(--text-primary)}.view-toggle-btn.active{background:var(--primary-main);color:#fff;box-shadow:0 2px 8px #2f63644d}.view-toggle-btn svg{opacity:.8}.view-toggle-btn.active svg{opacity:1}.gantt-chart{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;overflow:hidden}.gantt-header{display:flex;border-bottom:1px solid var(--ui-border);background:var(--ui-surface)}.gantt-labels{min-width:200px;padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-muted);border-right:1px solid var(--ui-border)}.gantt-timeline-header{flex:1;position:relative;height:40px;overflow:hidden}.gantt-week-marker{position:absolute;top:50%;transform:translateY(-50%);font-size:11px;color:var(--text-muted);white-space:nowrap}.gantt-body{position:relative;max-height:500px;overflow:hidden;overflow-y:auto}.gantt-section{border-bottom:1px solid var(--ui-border)}.gantt-section:last-child{border-bottom:none}.gantt-section-title{padding:10px 16px;font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--ui-surface);border-left:3px solid var(--primary-main)}.gantt-row{display:flex;border-bottom:1px solid var(--ui-border)}.gantt-row:last-child{border-bottom:none}.gantt-row-label{min-width:200px;padding:14px 16px;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-primary);border-right:1px solid var(--ui-border);background:var(--ui-card)}.gantt-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.gantt-status-dot.completed{background:var(--status-success)}.gantt-status-dot.current{background:var(--primary-main);animation:pulse 2s ease-in-out infinite}.gantt-status-dot.pending{background:var(--ui-border-light)}.gantt-row-timeline{flex:1;position:relative;min-height:48px;background:repeating-linear-gradient(90deg,var(--ui-surface) 0px,var(--ui-surface) 49px,var(--ui-border) 49px,var(--ui-border) 50px)}.gantt-today-line-container{position:absolute;top:0;bottom:0;z-index:5;pointer-events:none}.gantt-today-line-container .gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--status-error)}.gantt-today-line-container .gantt-today-line:before{content:"오늘";position:absolute;top:4px;left:50%;transform:translate(-50%);font-size:10px;color:var(--status-error);white-space:nowrap;background:var(--ui-card);padding:2px 6px;border-radius:4px}.gantt-bar{position:absolute;top:50%;transform:translateY(-50%);height:24px;border-radius:6px;background:var(--ui-border-light);overflow:hidden;transition:all .2s ease}.gantt-bar.completed{background:var(--status-success)}.gantt-bar.current{background:var(--primary-main)}.gantt-bar.pending{background:var(--ui-border);opacity:.5}.gantt-bar-progress{height:100%;background:#ffffff4d;border-radius:6px 0 0 6px}.detail-header-section{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:clamp(16px,3vw,24px);padding:clamp(20px,3vw,28px);background:var(--ui-card);border:1px solid var(--ui-border);border-radius:20px;flex-wrap:wrap}.service-info{display:flex;align-items:center;gap:16px}.service-icon-large{width:clamp(48px,8vw,60px);height:clamp(48px,8vw,60px);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:clamp(24px,4vw,28px)}.service-image-large{object-fit:cover}.service-info h1{font-size:clamp(22px,4vw,28px);font-weight:700;color:var(--text-primary);margin-bottom:4px}.project-title{font-size:clamp(13px,2vw,15px);color:var(--text-muted)}.progress-overview .progress-circle{width:clamp(70px,10vw,85px);height:clamp(70px,10vw,85px);position:relative}.progress-overview .progress-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(16px,3vw,18px);font-weight:700;color:var(--text-primary)}.status-cards-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(12px,2vw,16px);margin-bottom:clamp(16px,3vw,24px)}.status-cards-row .status-card{padding:clamp(14px,2vw,18px);background:var(--ui-card);border:1px solid var(--ui-border);border-left:3px solid;border-radius:14px}.status-cards-row .card-label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:6px}.status-cards-row .card-value{font-size:clamp(14px,2vw,16px);font-weight:600;color:var(--text-primary)}.mini-progress-bar{margin-top:8px;height:4px;background:var(--ui-border);border-radius:2px;overflow:hidden}.mini-progress-bar>div{height:100%;border-radius:2px}.deadline-badge{display:inline-flex;align-items:center;gap:4px;margin-left:10px;padding:3px 8px;background:#ffffff0d;border-radius:6px;font-size:12px;font-weight:600}.status-card.deadline-card.overdue,.status-card.deadline-card.today,.status-card.deadline-card.critical{background:linear-gradient(135deg,var(--ui-card) 0%,rgba(231,76,60,.08) 100%)}.status-card.deadline-card.warning{background:linear-gradient(135deg,var(--ui-card) 0%,rgba(196,163,90,.08) 100%)}.line-legend{display:flex;gap:clamp(12px,2vw,20px);flex-wrap:wrap;margin-bottom:clamp(12px,2vw,16px);padding:12px 16px;background:var(--ui-card);border-radius:12px}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.legend-color{width:16px;height:4px;border-radius:2px}.map-and-detail-wrapper{display:flex;gap:0;margin-bottom:clamp(16px,3vw,24px);align-items:stretch;overflow:hidden}.map-container{position:relative;flex:1;min-width:0;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:16px;padding:clamp(16px,2vw,24px);overflow-x:auto;display:flex;flex-direction:column;transition:margin-right .4s ease,flex .4s ease}.map-and-detail-wrapper.with-panel .map-container{margin-right:clamp(16px,2vw,24px)}.map-svg-wrapper{flex:1;display:flex;align-items:center;justify-content:center;overflow-x:auto}.journey-svg{display:block;width:100%;height:420px}.map-container.has-branches .journey-svg{height:480px}.station-group{cursor:pointer}.station-group.branch-station .branch-station-label{opacity:0;transition:opacity .2s ease;pointer-events:none}.station-group.branch-station:hover .branch-station-label{opacity:1}.station-group.branch-station circle{transition:transform .15s ease}.station-group.branch-station:hover>circle:nth-child(2){transform-origin:center;transform:scale(1.2)}.branch-add-station-btn{cursor:pointer;transition:transform .2s ease}.branch-add-station-btn:hover{transform:scale(1.1)}.branch-add-station-btn circle{transition:fill .2s ease}.branch-add-station-btn:hover circle{fill:var(--ui-surface)}.pulse-ring{animation:pulse 2s ease-in-out infinite}@keyframes pinBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.pin-active{animation:pinBounce 1.5s ease-in-out infinite}.map-instruction{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--text-muted);font-size:12px;margin-top:12px}.branch-summary-section{margin-bottom:clamp(16px,3vw,24px);background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;padding:clamp(16px,2vw,20px)}.branch-summary-section h3{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--ui-border)}.branch-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.branch-list-item{display:grid;grid-template-columns:10px 120px 1fr 50px 100px auto;align-items:center;gap:12px;border-bottom:1px solid var(--ui-border);transition:background .2s ease;border-radius:6px;margin:0 -8px;padding:10px 8px}.branch-list-item:last-child{border-bottom:none}.branch-list-item.clickable{cursor:pointer}.branch-list-item.clickable:hover{background:#ffffff0d}.branch-manage-hint{font-size:11px;opacity:.6;transition:opacity .2s ease}.branch-list-item:hover .branch-manage-hint{opacity:1}.branch-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.branch-name{font-weight:500;font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.branch-progress-bar{height:6px;background:var(--ui-border);border-radius:3px;overflow:hidden}.branch-progress-bar>div{height:100%;border-radius:3px;transition:width .3s ease}.branch-progress{font-size:13px;font-weight:600;text-align:right}.branch-current{font-size:12px;color:var(--text-muted);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend-item.clickable{cursor:pointer;padding:4px 8px;margin:-4px -8px;border-radius:4px;transition:background .2s ease}.legend-item.clickable:hover{background:#ffffff1a}.empty-branch-arc{cursor:pointer}.empty-branch-arc:hover path:first-child{opacity:.6}@media(max-width:768px){.branch-list-item{grid-template-columns:10px 1fr 50px auto;gap:8px}.branch-progress-bar,.branch-current{display:none}.branch-list-item:after{display:none}}.station-detail{position:relative;width:360px;flex-shrink:0;background:var(--ui-card);border:2px solid;border-radius:20px;padding:clamp(20px,3vw,24px);animation:slideInFromRight .4s ease-out;overflow-y:auto;display:flex;flex-direction:column}@keyframes slideInFromRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@media(max-width:1024px){.map-and-detail-wrapper{flex-direction:column}.map-and-detail-wrapper.with-panel .map-container{margin-right:0;margin-bottom:clamp(16px,2vw,24px)}.station-detail{width:100%;max-height:none;animation:slideInFromBottom .4s ease-out}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}}.station-detail .close-btn{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:var(--ui-surface);color:var(--text-muted);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.station-detail .close-btn:hover{background:var(--ui-border);color:var(--text-primary)}.station-detail .detail-header{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding-right:40px}.station-detail .station-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;font-weight:600}.station-detail h3{font-size:16px;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.station-detail .status-badge{padding:4px 10px;border-radius:14px;font-size:10px;font-weight:600}.station-detail .detail-schedule{padding:12px 0;border-bottom:1px solid var(--ui-border);margin-bottom:14px}.station-detail .detail-schedule .label{display:block;color:var(--text-muted);font-size:13px;margin-bottom:10px}.station-detail .schedule-dates{display:flex;align-items:center;gap:12px}.station-detail .date-item{flex:1;display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--ui-surface);border-radius:8px;border:1px solid var(--ui-border)}.station-detail .date-type{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.station-detail .date-value{font-size:13px;color:var(--text-primary);font-weight:500}.station-detail .date-value.editable{cursor:pointer;display:flex;align-items:center;gap:6px}.station-detail .date-value.editable:hover{color:var(--primary-light)}.station-detail .date-value .edit-icon{opacity:0;transition:opacity .15s}.station-detail .date-value.editable:hover .edit-icon{opacity:.6}.station-detail .date-separator{color:var(--text-muted);font-size:14px}.station-detail .date-item .edit-date-input{width:100%;padding:4px 8px;background:var(--ui-background);border:1px solid var(--primary-main);border-radius:4px;font-size:13px;font-family:inherit;color:var(--text-primary);color-scheme:dark}.station-detail .progress-section{display:block;margin-bottom:18px}.station-detail .progress-header{display:flex;justify-content:space-between;margin-bottom:8px;font-size:13px;color:var(--text-secondary)}.station-detail .progress-bar{height:6px;background:var(--ui-border);border-radius:3px;overflow:hidden}.station-detail .progress-fill{height:100%;border-radius:3px}.station-detail .tasks-section{flex:1;display:flex;flex-direction:column}.station-detail .tasks-section h4{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:12px}.station-detail .tasks-section ul{list-style:none}.station-detail .tasks-section li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--ui-border);font-size:13px;color:var(--text-secondary)}.station-detail .tasks-section li:last-child{border-bottom:none}.station-detail .tasks-section li.completed{color:var(--text-muted);text-decoration:line-through}.station-detail .task-checkbox{width:18px;height:18px;border:2px solid;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}.station-detail .status-buttons{margin-bottom:16px}.station-detail .status-buttons .label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:8px}.station-detail .button-group{display:flex;gap:8px}.station-detail .status-btn{flex:1;padding:8px 12px;border:1px solid;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.station-detail .status-btn:hover{opacity:.85}.station-detail .progress-slider{width:100%;height:6px;margin-top:8px;cursor:pointer}.station-detail .task-progress{margin-bottom:16px}.station-detail .task-item{display:flex;align-items:center;gap:10px;cursor:pointer;flex:1}.station-detail .task-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;flex-shrink:0}.station-detail .task-text{flex:1}.station-detail .task-text.completed{text-decoration:line-through;color:var(--text-muted)}.station-detail .delete-task-btn{background:transparent;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:0 4px;opacity:0;transition:opacity .2s ease,color .2s ease;flex-shrink:0}.station-detail .tasks-section li:hover .delete-task-btn{opacity:1}.station-detail .delete-task-btn:hover{color:var(--status-error)}.station-detail .add-task-row{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--ui-border)}.station-detail .add-task-input{flex:1;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:6px;padding:8px 12px;color:var(--text-primary);font-size:13px}.station-detail .add-task-input::placeholder{color:var(--text-muted)}.station-detail .add-task-input:focus{outline:none;border-color:var(--primary-main)}.station-detail .add-task-btn{width:36px;height:36px;border:none;border-radius:6px;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease}.station-detail .add-task-btn:disabled{cursor:not-allowed;opacity:.5}.station-detail .add-task-btn:not(:disabled):hover{opacity:.85}.station-detail .station-action-buttons{display:flex;gap:10px;margin-top:16px}.station-detail .duplicate-station-btn{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;padding:12px;background:transparent;border:1px solid currentColor;border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s ease}.station-detail .duplicate-station-btn:hover{background:currentColor;color:#fff}.station-detail .duplicate-station-btn:hover svg{fill:#fff}.station-detail .delete-station-btn{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;padding:12px;background:transparent;border:1px solid var(--status-error);border-radius:10px;color:var(--status-error);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s ease}.station-detail .delete-station-btn:hover{background:var(--status-error);color:#fff}.station-detail .header-info{flex:1;min-width:0}.station-detail .editable{cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:color .2s ease}.station-detail .editable:hover{color:var(--primary-light)}.station-detail .edit-icon{opacity:0;transition:opacity .2s ease;flex-shrink:0}.station-detail .editable:hover .edit-icon{opacity:.6}.station-detail .edit-name-input{width:100%;padding:6px 10px;background:var(--ui-surface);border:1px solid var(--primary-main);border-radius:6px;color:var(--text-primary);font-size:16px;font-weight:600;font-family:inherit;margin-bottom:6px}.station-detail .edit-name-input:focus{outline:none}.station-detail .edit-date-input{padding:6px 10px;background:var(--ui-surface);border:1px solid var(--primary-main);border-radius:6px;color:var(--text-primary);font-size:13px;font-family:inherit;color-scheme:dark}.station-detail .edit-date-input:focus{outline:none}input[type=date]{color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8);cursor:pointer}.branch-detail{position:relative;width:360px;flex-shrink:0;background:var(--ui-card);border:2px solid;border-radius:20px;padding:clamp(20px,3vw,24px);animation:slideInFromRight .4s ease-out;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.branch-detail .close-btn{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:var(--ui-surface);color:var(--text-muted);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.branch-detail .close-btn:hover{background:var(--ui-border);color:var(--text-primary)}.branch-detail-header{display:flex;align-items:center;gap:12px;padding-right:40px}.branch-color-indicator{width:8px;height:32px;border-radius:4px}.branch-detail-header h3{font-size:18px;font-weight:600;color:var(--text-primary)}.branch-info-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:var(--ui-surface);border-radius:10px}.branch-route{display:flex;align-items:center;gap:8px;font-size:13px}.route-station{color:var(--text-secondary)}.branch-position-badge{padding:4px 10px;border-radius:12px;font-size:11px;font-weight:500;color:#fff}.branch-progress-section{padding:12px;background:var(--ui-surface);border-radius:10px}.branch-progress-section .progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;color:var(--text-secondary)}.branch-progress-section .progress-header span:last-child{font-weight:600}.progress-bar-large{height:8px;background:var(--ui-border);border-radius:4px;overflow:hidden}.progress-bar-large>div{height:100%;border-radius:4px;transition:width .3s ease}.branch-stations-section{display:flex;flex-direction:column;gap:12px}.branch-stations-section .section-header h4{font-size:14px;font-weight:500;color:var(--text-secondary)}.empty-stations{text-align:center;padding:24px;color:var(--text-muted);font-size:13px;background:var(--ui-surface);border-radius:10px}.branch-station-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.branch-station-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--ui-surface);border-radius:10px;transition:background .2s ease}.branch-station-item:hover{background:var(--ui-border)}.station-order{width:24px;height:24px;border-radius:50%;background:var(--ui-border);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary)}.branch-station-item .station-info{flex:1;min-width:0}.branch-station-item .station-name{display:block;font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.branch-station-item .station-date{font-size:11px;color:var(--text-muted)}.station-status-badge{padding:3px 8px;border-radius:10px;font-size:10px;font-weight:500;border:1px solid;background:transparent}.branch-station-item .delete-station-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;opacity:0;transition:all .2s ease}.branch-station-item:hover .delete-station-btn{opacity:1}.branch-station-item .delete-station-btn:hover{color:var(--status-error)}.branch-station-item .delete-confirm{display:flex;gap:4px}.branch-station-item .delete-confirm button{padding:4px 8px;border:none;border-radius:4px;font-size:11px;cursor:pointer;font-family:inherit}.branch-station-item .confirm-yes{background:var(--status-error);color:#fff}.branch-station-item .confirm-no{background:var(--ui-border);color:var(--text-primary)}.add-station-to-branch-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:transparent;border:1px dashed;border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.add-station-to-branch-btn:hover{background:#ffffff0d}.branch-danger-zone{margin-top:auto;padding-top:16px;border-top:1px solid var(--ui-border)}.delete-branch-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px;background:transparent;border:1px solid var(--status-error);border-radius:8px;color:var(--status-error);font-size:12px;cursor:pointer;transition:all .2s ease;font-family:inherit}.delete-branch-btn:hover{background:var(--status-error);color:#fff}.delete-branch-confirm{text-align:center}.delete-branch-confirm p{font-size:13px;color:var(--text-secondary);margin-bottom:12px}.delete-branch-confirm .confirm-buttons{display:flex;gap:8px;justify-content:center}.delete-branch-confirm .confirm-delete{padding:8px 16px;background:var(--status-error);border:none;border-radius:6px;color:#fff;font-size:13px;cursor:pointer;font-family:inherit}.delete-branch-confirm .confirm-cancel{padding:8px 16px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:6px;color:var(--text-primary);font-size:13px;cursor:pointer;font-family:inherit}@media(max-width:1024px){.branch-detail{width:100%;animation:slideInFromBottom .4s ease-out}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}.modal-content{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:20px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;overflow-x:hidden;animation:modalSlideIn .3s ease;scrollbar-width:thin;scrollbar-color:var(--ui-border) transparent}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:transparent;border-radius:0 20px 20px 0}.modal-content::-webkit-scrollbar-thumb{background:var(--ui-border);border-radius:4px;border:2px solid transparent;background-clip:padding-box}.modal-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted);border:2px solid transparent;background-clip:padding-box}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--ui-border)}.modal-header h2{font-size:18px;font-weight:600;color:var(--text-primary)}.modal-close{width:32px;height:32px;border:none;background:var(--ui-surface);color:var(--text-muted);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.modal-close:hover{background:var(--ui-border);color:var(--text-primary)}.modal-body{padding:24px}@media(max-width:768px){.modal-backdrop{padding:16px;padding-top:env(safe-area-inset-top,16px);padding-bottom:env(safe-area-inset-bottom,16px);align-items:flex-start;padding-top:max(16px,env(safe-area-inset-top))}.modal-content{max-height:calc(100vh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 32px);border-radius:16px;margin-top:auto;margin-bottom:auto}.modal-header{padding:16px 20px;position:sticky;top:0;background:var(--ui-card);z-index:1}.modal-body{padding:20px}}.station-form{display:flex;flex-direction:column;gap:20px}.station-form.simple{gap:16px}.date-range-simple{display:flex;align-items:center;gap:10px}.date-range-simple .date-input{flex:1;padding:10px 12px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;color:var(--text-primary);font-size:13px;font-family:inherit}.date-range-simple .date-input:focus{outline:none;border-color:var(--primary-main)}.date-range-simple .date-separator{color:var(--text-muted);font-size:14px}.date-range-simple .date-duration{padding:6px 10px;background:var(--ui-border);border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;white-space:nowrap}.form-errors{background:#c75d5426;border:1px solid var(--status-error);border-radius:8px;padding:12px;margin-bottom:16px}.form-error{color:var(--status-error);font-size:13px;margin:0;padding:2px 0}.form-error+.form-error{margin-top:4px}.char-count{font-size:11px;font-weight:400;color:var(--text-muted);margin-left:auto}.char-count.error{color:var(--status-error)}.input-error{border-color:var(--status-error)!important}.input-error:focus{outline-color:var(--status-error);box-shadow:0 0 0 2px #c75d5433}.station-form label,.service-form label,.branch-form label{display:flex;align-items:center;gap:8px}.station-form .form-group{display:flex;flex-direction:column;gap:8px}.station-form label{font-size:13px;font-weight:500;color:var(--text-secondary)}.station-form input[type=text]{width:100%;padding:12px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;color:var(--text-primary);font-size:14px;font-family:inherit;transition:border-color .2s ease}.station-form input[type=text]::placeholder{color:var(--text-muted)}.station-form input[type=text]:focus{outline:none;border-color:var(--primary-main)}.station-form .status-select{display:flex;gap:8px}.station-form .status-option{flex:1;padding:10px 12px;border:2px solid;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.station-form .status-option:hover{opacity:.85}.station-form .task-input-row{display:flex;gap:8px}.station-form .task-input-row input{flex:1}.station-form .task-input-row button{width:40px;height:40px;border:none;border-radius:8px;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease}.station-form .task-input-row button:disabled{background:var(--ui-border)!important;cursor:not-allowed}.station-form .task-list{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:8px}.station-form .task-list li{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--ui-surface);border-radius:8px;font-size:13px;color:var(--text-secondary)}.station-form .task-list li button{background:transparent;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:0 4px;transition:color .2s ease}.station-form .task-list li button:hover{color:var(--status-error)}.station-form .form-actions{display:flex;gap:12px;margin-top:8px}.station-form .btn-cancel{flex:1;padding:12px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s ease}.station-form .btn-cancel:hover{background:var(--ui-border);color:var(--text-primary)}.station-form .btn-submit{flex:1;padding:12px;border:none;border-radius:10px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:opacity .2s ease}.station-form .btn-submit:disabled{background:var(--ui-border)!important;color:var(--text-muted)!important;cursor:not-allowed}.station-form .btn-submit:not(:disabled):hover{opacity:.85}.station-form .date-display{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;cursor:pointer;transition:border-color .2s ease}.station-form .date-display:hover{border-color:var(--ui-border-light)}.station-form .date-value{font-size:14px;color:var(--text-primary)}.station-form .date-picker-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid;border-radius:6px;cursor:pointer;transition:all .2s ease}.station-form .date-picker-btn:hover{background:var(--ui-border)}.station-form .date-input{width:100%;padding:12px 14px;background:var(--ui-surface);border:1px solid var(--primary-main);border-radius:10px;color:var(--text-primary);font-size:14px;font-family:inherit;color-scheme:dark}.station-form .date-input:focus{outline:none}.date-range-picker{display:flex;align-items:center;gap:12px}.date-range-item{flex:1;display:flex;flex-direction:column;gap:4px}.date-range-item .date-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.date-range-separator{color:var(--text-muted);font-size:16px;margin-top:16px}.date-duration{display:block;margin-top:8px;font-size:12px;color:var(--text-muted);text-align:right}.date-picker-container{position:relative}.date-picker-container .date-display{display:flex;align-items:center;gap:12px;cursor:pointer}.date-picker-container .date-value{font-size:14px;color:var(--text-primary)}.date-picker-container .date-picker-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid;border-radius:6px;background:transparent;cursor:pointer;transition:all .2s ease}.date-picker-container .date-picker-btn:hover{background:var(--ui-border)}.calendar-dropdown{position:absolute;top:calc(100% + 8px);left:0;z-index:100;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:12px;padding:16px;box-shadow:0 8px 32px #0006;min-width:280px;animation:dropdownFadeIn .2s ease}.calendar-dropdown-fixed{position:fixed!important;z-index:10000!important}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-header .nav-btn{width:32px;height:32px;border:none;background:var(--ui-surface);color:var(--text-secondary);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.calendar-header .nav-btn:hover{background:var(--ui-border);color:var(--text-primary)}.calendar-title{font-size:14px;font-weight:600;color:var(--text-primary)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day-header{text-align:center;font-size:11px;font-weight:500;color:var(--text-muted);padding:8px 0}.calendar-day{text-align:center;font-size:13px;padding:8px 0;border-radius:6px;color:var(--text-secondary)}.calendar-day.has-date{cursor:pointer;transition:all .15s ease}.calendar-day.has-date:hover{background:var(--ui-border);color:var(--text-primary)}.calendar-day.today{color:var(--primary-light);font-weight:600;background:var(--ui-border);border-radius:4px}.calendar-day.selected{color:#fff!important;font-weight:600}.calendar-day.disabled{color:var(--text-disabled)!important;cursor:not-allowed;opacity:.4}.calendar-day.disabled:hover{background:transparent}.calendar-footer{margin-top:12px;padding-top:12px;border-top:1px solid var(--ui-border);text-align:center}.calendar-footer .today-btn{background:transparent;border:none;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:opacity .2s ease}.calendar-footer .today-btn:hover{opacity:.7}.add-station-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:2px dashed;border-radius:12px;background:transparent;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s ease;margin-top:12px}.add-station-btn:hover{background:var(--ui-surface)}.card-header-actions{display:flex;align-items:center;gap:8px}.card-kebab-menu{position:relative}.kebab-trigger{width:28px;height:28px;border:none;background:transparent;color:var(--text-muted);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;opacity:0}.service-card:hover .kebab-trigger{opacity:1}.kebab-trigger:hover{background:var(--ui-border);color:var(--text-primary)}.kebab-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:120px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:10px;box-shadow:0 8px 24px #0006;padding:6px;z-index:100;animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.kebab-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;color:var(--text-secondary);font-size:13px;font-family:inherit;border-radius:6px;cursor:pointer;transition:all .15s ease;text-align:left}.kebab-item:hover{background:var(--ui-surface);color:var(--text-primary)}.kebab-item.danger:hover{background:#c75d5426;color:var(--status-error)}.kebab-item svg{flex-shrink:0;opacity:.7}.kebab-item:hover svg{opacity:1}.add-service-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:280px;background:transparent;border:2px dashed var(--ui-border);border-radius:20px;cursor:pointer;transition:all .25s ease;color:var(--text-muted);font-size:14px;font-weight:500;font-family:inherit}.add-service-card:hover{border-color:var(--primary-main);background:var(--ui-surface);color:var(--primary-light)}.add-service-card .add-icon{width:56px;height:56px;border-radius:16px;background:var(--ui-card);display:flex;align-items:center;justify-content:center;transition:all .25s ease}.add-service-card:hover .add-icon{background:var(--primary-main);color:#fff}.service-form{display:flex;flex-direction:column;gap:20px}.service-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:480px){.service-form .form-row{grid-template-columns:1fr}}.service-form .form-group{display:flex;flex-direction:column;gap:8px}.service-form label{font-size:13px;font-weight:500;color:var(--text-secondary)}.service-form input[type=text]{width:100%;padding:12px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;color:var(--text-primary);font-size:14px;font-family:inherit;transition:border-color .2s ease}.service-form input[type=text]::placeholder{color:var(--text-muted)}.service-form input[type=text]:focus{outline:none;border-color:var(--primary-main)}.service-form .icon-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.service-form .icon-option{width:100%;aspect-ratio:1;border:2px solid var(--ui-border);border-radius:8px;background:var(--ui-surface);font-size:20px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.service-form .icon-option:hover{border-color:var(--ui-border-light)}.service-form .icon-option.active{border-width:2px}.service-form .color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.service-form .color-option{width:100%;aspect-ratio:1;border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px}.service-form .color-option:hover{transform:scale(1.1)}.service-form .color-option.active{border-color:#fff;box-shadow:0 0 0 2px var(--ui-background)}.service-form .status-select{display:flex;gap:8px;flex-wrap:wrap}.service-form .status-option{flex:1;min-width:60px;padding:8px 12px;border:2px solid;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit;background:transparent}.service-form .status-option:hover{opacity:.85}.service-form .team-select{width:100%;padding:12px 40px 12px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;color:var(--text-primary);font-size:14px;font-family:inherit;cursor:pointer;transition:border-color .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23A3B5B6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.service-form .team-select:focus{outline:none;border-color:var(--primary-main)}.service-form .team-select option{background:var(--ui-card);color:var(--text-primary);padding:8px}.service-form .team-display{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px}.service-form .team-display .team-icon{font-size:16px}.service-form .team-display .team-name{font-size:14px;color:var(--text-primary)}.service-form .form-divider{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.service-form .form-divider:before,.service-form .form-divider:after{content:"";flex:1;height:1px;background:var(--ui-border)}.service-form .form-actions{display:flex;gap:12px;margin-top:8px}.service-form .btn-cancel{flex:1;padding:12px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s ease}.service-form .btn-cancel:hover{background:var(--ui-border);color:var(--text-primary)}.service-form .btn-submit{flex:1;padding:12px;border:none;border-radius:10px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:opacity .2s ease}.service-form .btn-submit:disabled{background:var(--ui-border)!important;color:var(--text-muted)!important;cursor:not-allowed}.service-form .btn-submit:not(:disabled):hover{opacity:.85}.service-form .image-upload-area{border:2px dashed var(--ui-border);border-radius:12px;padding:24px;cursor:pointer;transition:all .2s ease;background:var(--ui-surface)}.service-form .image-upload-area:hover{border-color:var(--ui-border-light);background:var(--ui-card)}.service-form .image-upload-area.has-image{border-style:solid;padding:8px;cursor:default}.service-form .image-upload-area.uploading{opacity:.7;pointer-events:none}.service-form .upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-muted)}.service-form .upload-placeholder svg{color:var(--text-muted)}.service-form .upload-placeholder span{font-size:13px}.service-form .upload-hint{font-size:11px!important;color:var(--text-muted)}.service-form .upload-spinner{width:24px;height:24px;border:2px solid var(--ui-border);border-top-color:var(--primary-main);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.service-form .image-preview{position:relative;display:flex;justify-content:center}.service-form .image-preview img{max-width:100%;max-height:120px;object-fit:contain;border-radius:8px}.service-form .remove-image-btn{position:absolute;top:-8px;right:-8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--status-error);border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .2s ease}.service-form .remove-image-btn:hover{background:#a04040;transform:scale(1.1)}.service-form .label-hint{font-size:11px;font-weight:400;color:var(--text-muted)}.service-form .icon-type-toggle{display:flex;gap:12px}.service-form .icon-type-option{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:2px solid var(--ui-border);border-radius:10px;background:var(--ui-surface);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.service-form .icon-type-option:hover{border-color:var(--ui-border-light);color:var(--text-primary)}.service-form .icon-type-option.active{color:var(--text-primary)}.service-form .icon-type-option .icon-type-icon{font-size:20px}.service-form .icon-type-option svg{flex-shrink:0}.fab-add-service{position:fixed;bottom:32px;right:32px;width:56px;height:56px;border:none;border-radius:16px;background:var(--primary-main);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #2f636466;transition:all .25s ease;z-index:100}.fab-add-service:hover{background:var(--primary-light);transform:scale(1.08);box-shadow:0 6px 28px #2f636480}.fab-add-service:active{transform:scale(.95)}@media(max-width:640px){.fab-add-service{bottom:20px;right:20px;width:52px;height:52px}}.station-quick-actions{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--ui-border)}.station-quick-actions .insert-row{display:flex;justify-content:center;gap:10px}.insert-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--ui-surface);border:1.5px solid var(--ui-border);border-radius:10px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:all .2s ease}.insert-btn:hover{background:var(--ui-border);color:var(--text-primary)}.branch-link{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;background:transparent;border:none;font-size:12px;font-weight:400;cursor:pointer;font-family:inherit;transition:all .2s ease;opacity:.6}.branch-link:hover{opacity:1;text-decoration:underline}.station-action-row{display:flex;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--ui-border)}.station-action-row .action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:transparent;border:1px solid;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s ease}.station-action-row .action-btn.add{opacity:.7}.station-action-row .action-btn.add:hover{opacity:1;background:currentColor;color:#fff}.station-action-row .action-btn.add:hover svg{fill:#fff}.station-action-row .action-btn.delete{border-color:var(--status-error);color:var(--status-error);opacity:.7}.station-action-row .action-btn.delete:hover{background:var(--status-error);color:#fff;opacity:1}.empty-map-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(40px,8vw,60px) clamp(30px,6vw,50px);text-align:center;background:var(--ui-card);border:2px dashed var(--ui-border);border-radius:16px;animation:fadeSlideIn .4s ease-out;z-index:10}.empty-map-state .empty-icon{font-size:clamp(40px,8vw,56px);margin-bottom:16px;opacity:.7}.empty-map-state p{color:var(--text-muted);font-size:clamp(13px,2vw,15px);margin-bottom:24px}.add-first-station-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border:none;border-radius:12px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s ease}.add-first-station-btn:hover{opacity:.9;transform:translateY(-2px)}.line-legend-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:clamp(12px,2vw,16px);flex-wrap:wrap}.line-legend-row .line-legend{margin-bottom:0}.add-branch-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;border:1.5px solid;border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s ease}.add-branch-btn:hover{background:var(--ui-surface)}.branch-form{display:flex;flex-direction:column;gap:20px}.branch-form .form-group{display:flex;flex-direction:column;gap:8px}.branch-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:480px){.branch-form .form-row{grid-template-columns:1fr}}.branch-form label{font-size:13px;font-weight:500;color:var(--text-secondary)}.branch-form input[type=text]{width:100%;padding:12px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;color:var(--text-primary);font-size:14px;font-family:inherit;transition:border-color .2s ease}.branch-form input[type=text]::placeholder{color:var(--text-muted)}.branch-form input[type=text]:focus{outline:none;border-color:var(--primary-main)}.branch-form select{width:100%;padding:12px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;color:var(--text-primary);font-size:14px;font-family:inherit;cursor:pointer;transition:border-color .2s ease}.branch-form select:focus{outline:none;border-color:var(--primary-main)}.branch-form select:disabled{opacity:.5;cursor:not-allowed}.branch-form .color-grid.branch-colors{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.branch-form .color-option{width:100%;aspect-ratio:1;border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px}.branch-form .color-option:hover{transform:scale(1.1)}.branch-form .color-option.active{border-color:#fff;box-shadow:0 0 0 2px var(--ui-background)}.branch-form .position-select{display:flex;gap:12px}.branch-form .position-option{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border:2px solid;border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s ease;background:transparent}.branch-form .position-option:hover{opacity:.85}.branch-form .branch-preview{padding:14px;background:var(--ui-surface);border:1px dashed;border-radius:10px}.branch-form .preview-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.branch-form .preview-content{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.branch-form .preview-station{font-size:12px;color:var(--text-secondary);padding:4px 10px;background:var(--ui-card);border-radius:6px}.branch-form .preview-arrow{font-size:14px;font-weight:600}.branch-form .preview-branch{font-size:12px;font-weight:500;color:#fff;padding:4px 10px;border-radius:6px}.branch-form .form-actions{display:flex;gap:12px;margin-top:8px}.branch-form .btn-cancel{flex:1;padding:12px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s ease}.branch-form .btn-cancel:hover{background:var(--ui-border);color:var(--text-primary)}.branch-form .btn-submit{flex:1;padding:12px;border:none;border-radius:10px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:opacity .2s ease}.branch-form .btn-submit:disabled{background:var(--ui-border)!important;color:var(--text-muted)!important;cursor:not-allowed}.branch-form .btn-submit:not(:disabled):hover{opacity:.85}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;padding:24px;width:min(90vw,400px);text-align:center;animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.confirm-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.confirm-icon-danger{background:#c75d5426;color:var(--status-error)}.confirm-icon-warning{background:#c4a35a26;color:var(--status-warning)}.confirm-icon-info{background:#5a8f9a26;color:var(--status-info)}.confirm-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.confirm-message{font-size:14px;color:var(--text-secondary);margin-bottom:24px;line-height:1.5;white-space:pre-line}.confirm-actions{display:flex;gap:12px}.confirm-btn{flex:1;padding:12px 20px;border-radius:10px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease;border:none}.confirm-btn-cancel{background:var(--ui-surface);border:1px solid var(--ui-border);color:var(--text-secondary)}.confirm-btn-cancel:hover{background:var(--ui-border);color:var(--text-primary)}.confirm-btn-danger{background:var(--status-error);color:#fff}.confirm-btn-danger:hover{background:#b54d45}.confirm-btn-warning{background:var(--status-warning);color:#1a1a1a}.confirm-btn-warning:hover{background:#b89350}.confirm-btn-info{background:var(--status-info);color:#fff}.confirm-btn-info:hover{background:#4d7a85}.confirm-btn:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:380px;width:calc(100% - 40px)}.toast{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:12px;box-shadow:0 4px 20px #0000004d;animation:toastSlideIn .3s ease-out}.toast-exit{animation:toastSlideOut .3s ease-out forwards}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.toast-success .toast-icon{color:var(--status-success)}.toast-error .toast-icon{color:var(--status-error)}.toast-warning .toast-icon{color:var(--status-warning)}.toast-info .toast-icon{color:var(--status-info)}.toast-message{flex:1;font-size:14px;color:var(--text-primary);line-height:1.4}.toast-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.toast-close:hover{background:var(--ui-border);color:var(--text-primary)}@media(max-width:480px){.toast-container{top:auto;bottom:20px;right:10px;left:10px;width:auto;max-width:none}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}}.page-transition-enter{opacity:0;transform:translateY(14px)}.page-transition-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s ease-out,transform .3s ease-out}.page-transition-exit{opacity:1;transform:translateY(0)}.page-transition-exit-active{opacity:0;transform:translateY(-10px);transition:opacity .2s ease-in,transform .2s ease-in}.dashboard-view,.journey-detail-view{animation:fadeSlideIn .3s ease-out}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.services-grid{--stagger-delay: 50ms}.service-card{animation:cardFadeIn .4s ease-out backwards}.service-card:nth-child(1){animation-delay:calc(var(--stagger-delay) * 1)}.service-card:nth-child(2){animation-delay:calc(var(--stagger-delay) * 2)}.service-card:nth-child(3){animation-delay:calc(var(--stagger-delay) * 3)}.service-card:nth-child(4){animation-delay:calc(var(--stagger-delay) * 4)}.service-card:nth-child(5){animation-delay:calc(var(--stagger-delay) * 5)}.service-card:nth-child(6){animation-delay:calc(var(--stagger-delay) * 6)}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.search-highlight{background:#c4a35a4d;color:var(--secondary-gold);padding:0 2px;border-radius:2px}.shortcuts-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .15s ease-out}.shortcuts-modal{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;width:min(90vw,500px);max-height:80vh;overflow:hidden;display:flex;flex-direction:column;animation:scaleIn .2s ease-out}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--ui-border)}.shortcuts-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.shortcuts-header .close-btn{width:32px;height:32px;border:none;background:transparent;color:var(--text-muted);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.shortcuts-header .close-btn:hover{background:var(--ui-border);color:var(--text-primary)}.shortcuts-content{padding:20px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.shortcut-category h3{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.shortcut-category ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.shortcut-category li{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--ui-surface);border-radius:8px}.shortcut-keys{display:flex;gap:6px}.shortcut-keys kbd{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;background:var(--ui-border);border:1px solid var(--ui-border-light);border-radius:6px;font-family:inherit;font-size:12px;font-weight:600;color:var(--text-primary);box-shadow:0 2px 0 var(--ui-border-light)}.shortcut-description{font-size:13px;color:var(--text-secondary)}.shortcuts-footer{padding:16px 24px;border-top:1px solid var(--ui-border);text-align:center}.shortcuts-footer span{font-size:12px;color:var(--text-muted)}.shortcuts-footer kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--ui-border);border:1px solid var(--ui-border-light);border-radius:4px;font-family:inherit;font-size:11px;font-weight:600;color:var(--text-primary);margin:0 4px}.error-message{display:flex;align-items:flex-start;gap:16px;padding:16px 20px;background:#c75d541a;border:1px solid rgba(199,93,84,.3);border-radius:12px;margin:16px 0}.error-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#c75d5426;border-radius:10px;color:var(--status-error)}.error-content{flex:1;min-width:0}.error-title{font-size:14px;font-weight:600;color:var(--status-error);margin:0 0 4px}.error-description{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.5}.error-context{font-size:12px;color:var(--text-muted);margin:8px 0 0}.error-retry-btn{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--status-error);border:none;border-radius:8px;font-size:13px;font-weight:500;color:#fff;cursor:pointer;transition:all .2s ease;align-self:center}.error-retry-btn:hover{background:#b5524a;transform:translateY(-1px)}.error-retry-btn:active{transform:translateY(0)}.inline-error{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--status-error);margin-top:6px}.inline-error svg{flex-shrink:0}.full-page-error{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:40px 20px}.full-page-error .error-container{text-align:center;max-width:400px}.full-page-error .error-illustration{margin-bottom:24px}.full-page-error .error-illustration svg{animation:errorPulse 2s ease-in-out infinite}@keyframes errorPulse{0%,to{opacity:1}50%{opacity:.6}}.full-page-error .error-heading{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.full-page-error .error-message-text{font-size:14px;color:var(--text-secondary);margin:0 0 24px;line-height:1.6}.full-page-error .error-actions{display:flex;gap:12px;justify-content:center}.full-page-error .btn-primary{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--primary-main);border:none;border-radius:10px;font-size:14px;font-weight:500;color:#fff;cursor:pointer;transition:all .2s ease}.full-page-error .btn-primary:hover{background:var(--primary-light);transform:translateY(-2px)}.full-page-error .btn-secondary{padding:12px 24px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.full-page-error .btn-secondary:hover{background:var(--ui-card);border-color:var(--ui-border-light)}.profile-page{min-height:100vh;padding:24px;background:var(--ui-background)}.profile-container{max-width:640px;margin:0 auto}.profile-header{display:flex;align-items:center;margin-bottom:32px}.profile-header .back-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;margin:0;background:transparent;border:none;border-radius:0;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.profile-header .back-button svg{width:20px;height:20px}.profile-header .back-button:hover{color:var(--text-primary)}.profile-header h1{flex:1;font-size:24px;font-weight:600;color:var(--text-primary);margin:0 40px 0 0;text-align:center}.profile-form{display:flex;flex-direction:column;gap:32px}.profile-section{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;padding:24px}.profile-section h2{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--ui-border)}.profile-section .form-group{margin-bottom:20px}.profile-section .form-group:last-child{margin-bottom:0}.profile-section .form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.profile-section .form-group input,.profile-section .form-group textarea{width:100%;padding:12px 16px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;font-size:14px;color:var(--text-primary);transition:all .2s ease}.profile-section .form-group input:focus,.profile-section .form-group textarea:focus{border-color:var(--primary-main);box-shadow:0 0 0 3px var(--primary-muted)}.profile-section .form-group input.disabled-input{background:var(--ui-background);color:var(--text-muted);cursor:not-allowed}.profile-section .form-group textarea{resize:vertical;min-height:100px;font-family:inherit}.profile-section .form-hint{display:block;font-size:12px;color:var(--text-muted);margin-top:6px}.profile-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:8px}.profile-actions .btn-cancel{padding:12px 24px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.profile-actions .btn-cancel:hover{background:var(--ui-card);border-color:var(--ui-border-light)}.profile-actions .btn-primary{padding:12px 24px;background:var(--primary-main);border:none;border-radius:10px;font-size:14px;font-weight:500;color:#fff;cursor:pointer;transition:all .2s ease}.profile-actions .btn-primary:hover:not(:disabled){background:var(--primary-light)}.profile-actions .btn-primary:disabled{background:var(--ui-border);cursor:not-allowed}.profile-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:24px;text-align:center}.profile-error p{color:var(--text-secondary);font-size:16px}.profile-section.danger-zone{margin-top:32px;border:1px solid rgba(199,93,84,.3);background:#c75d540d}.profile-section.danger-zone h2{color:var(--status-error)}.danger-zone-description{font-size:14px;color:var(--text-secondary);line-height:1.6;margin-bottom:16px}.profile-section.danger-zone .btn-danger{padding:12px 24px;background:transparent;border:1px solid var(--status-error);border-radius:10px;font-size:14px;font-weight:500;color:var(--status-error);cursor:pointer;transition:all .2s ease}.profile-section.danger-zone .btn-danger:hover:not(:disabled){background:var(--status-error);color:#fff}.profile-section.danger-zone .btn-danger:disabled{opacity:.5;cursor:not-allowed}.notification-settings{margin-top:24px}.notification-settings .settings-loading{display:flex;flex-direction:column;gap:12px}.notification-settings .settings-group{margin-bottom:24px}.notification-settings .settings-group:last-child{margin-bottom:0}.notification-settings .settings-group h3{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.notification-settings .setting-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--ui-border)}.notification-settings .setting-item:last-child{border-bottom:none}.notification-settings .setting-item.sub-item{padding-left:16px;border-color:#ffffff0d}.notification-settings .setting-info{display:flex;flex-direction:column;gap:2px}.notification-settings .setting-label{font-size:14px;font-weight:500;color:var(--text-primary)}.notification-settings .setting-description{font-size:12px;color:var(--text-muted)}.notification-settings .deadline-options{background:var(--ui-surface);border-radius:10px;padding:4px 12px;margin-top:8px}.notification-settings .settings-error{font-size:14px;color:var(--status-error);text-align:center;padding:24px}.toggle-switch{position:relative;display:inline-block;width:48px;height:28px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--ui-border);transition:.2s ease;border-radius:28px}.toggle-slider:before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background-color:#fff;transition:.2s ease;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary-main)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.avatar-upload{display:flex;flex-direction:column;align-items:center;gap:16px}.avatar-preview{position:relative;width:120px;height:120px;border-radius:50%;overflow:hidden;background:var(--ui-surface);border:3px solid var(--ui-border);cursor:pointer;transition:all .2s ease}.avatar-preview:hover{border-color:var(--primary-main)}.avatar-preview:hover .avatar-overlay{opacity:1}.avatar-preview.uploading{pointer-events:none}.avatar-preview img{width:100%;height:100%;object-fit:cover}.avatar-initials,.avatar-default-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:36px;font-weight:600;color:var(--text-muted);background:linear-gradient(135deg,var(--ui-card),var(--ui-surface))}.avatar-default-icon svg{color:var(--text-muted)}.avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;opacity:0;transition:opacity .2s ease}.avatar-overlay svg{color:#fff}.avatar-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.avatar-loading .spinner{width:32px;height:32px;border:3px solid var(--ui-border);border-top-color:var(--primary-main);border-radius:50%;animation:spin .8s linear infinite}.avatar-actions{display:flex;gap:8px}.avatar-actions .btn-secondary{padding:8px 16px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.avatar-actions .btn-secondary:hover:not(:disabled){background:var(--ui-card);border-color:var(--ui-border-light);color:var(--text-primary)}.avatar-actions .btn-danger{padding:8px 16px;background:transparent;border:1px solid var(--status-error);border-radius:8px;font-size:13px;font-weight:500;color:var(--status-error);cursor:pointer;transition:all .2s ease}.avatar-actions .btn-danger:hover:not(:disabled){background:var(--status-error);color:#fff}.avatar-hint{font-size:12px;color:var(--text-muted)}@media(max-width:640px){.profile-page{padding:16px}.profile-section{padding:20px 16px}.profile-actions{flex-direction:column-reverse}.profile-actions .btn-cancel,.profile-actions .btn-primary{width:100%;justify-content:center}}.header-actions{display:flex;align-items:center;gap:12px}.profile-menu{position:relative}.profile-menu-trigger{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:24px;cursor:pointer;transition:all .2s ease}.profile-menu-trigger:hover{background:var(--ui-card);border-color:var(--ui-border-light)}.profile-menu-trigger .profile-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;object-position:center;flex-shrink:0;display:block}.profile-menu-trigger .profile-avatar-placeholder{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary-main),var(--primary-light));font-size:12px;font-weight:600;color:#fff;line-height:1;flex-shrink:0}.profile-menu-trigger .profile-avatar-placeholder svg{display:block;flex-shrink:0}.profile-menu-trigger .chevron{color:var(--text-muted);transition:transform .2s ease}.profile-menu-trigger .chevron.open{transform:rotate(180deg)}.profile-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:12px;box-shadow:0 8px 24px #0000004d;z-index:1000;overflow:hidden;animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.profile-dropdown-header{padding:16px;display:flex;flex-direction:column;gap:4px}.profile-dropdown-header .profile-name{font-size:14px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dropdown-header .profile-job-title{font-size:12px;color:var(--text-muted)}.profile-dropdown-divider{height:1px;background:var(--ui-border)}.profile-dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:transparent;border:none;font-size:14px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;text-align:left}.profile-dropdown-item:hover{background:var(--ui-surface);color:var(--text-primary)}.profile-dropdown-item svg{flex-shrink:0}.profile-dropdown-item.danger{color:var(--status-error)}.profile-dropdown-item.danger:hover{background:#c75d541a;color:var(--status-error)}.profile-dropdown-section{padding:4px 0}.profile-dropdown-section-title{display:block;padding:8px 16px 4px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.profile-dropdown-item.workspace-item{padding:10px 16px;gap:10px}.profile-dropdown-item.workspace-item.active{background:#2f636426;color:var(--text-primary)}.workspace-icon{font-size:14px;flex-shrink:0}.workspace-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-check{color:var(--primary-light);font-size:13px;flex-shrink:0}.workspace-item-row{display:flex;align-items:center;gap:2px}.workspace-item-row .profile-dropdown-item.workspace-item{flex:1;border-radius:6px 0 0 6px}.workspace-edit-btn{display:flex;align-items:center;justify-content:center;width:32px;height:36px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:0 6px 6px 0;transition:all .15s ease}.workspace-edit-btn:hover{background:var(--ui-surface);color:var(--text-secondary)}.workspace-add-btn{margin-top:4px;color:var(--primary-light);gap:8px}.workspace-add-btn:hover{background:#2f63641a}.workspace-add-btn svg{flex-shrink:0}.workspace-modal-form{display:flex;flex-direction:column;gap:20px}.workspace-modal-form .form-group{display:flex;flex-direction:column;gap:8px}.workspace-modal-form label{font-size:14px;color:var(--text-secondary)}.workspace-modal-form input{padding:12px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;color:var(--text-primary);font-size:14px}.workspace-modal-form input:focus{outline:none;border-color:var(--primary-main);box-shadow:0 0 0 2px #2f636433}.workspace-modal-form input::placeholder{color:var(--text-muted)}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.modal-actions-right{display:flex;gap:12px;margin-left:auto}.btn-primary,.btn-secondary,.btn-danger{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;border:none}.btn-primary{background:var(--primary-main);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-light)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--ui-surface);color:var(--text-secondary);border:1px solid var(--ui-border)}.btn-secondary:hover{background:var(--ui-card);color:var(--text-primary)}.btn-danger{background:transparent;color:var(--status-error);border:1px solid var(--status-error)}.btn-danger:hover:not(:disabled){background:#c75d541a}.btn-danger:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.header-actions{gap:8px}.profile-menu-trigger{padding:4px}.profile-menu-trigger .chevron{display:none}.profile-dropdown{right:-8px}}.data-management-modal{padding:8px 0}.data-management-modal .modal-description{font-size:14px;color:var(--text-secondary);margin-bottom:20px;line-height:1.5}.data-action-list{display:flex;flex-direction:column;gap:4px}.data-action-item{display:flex;align-items:center;gap:16px;padding:14px 16px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.data-action-item:hover{background:var(--ui-card);border-color:var(--ui-border-light)}.data-action-item:hover .action-arrow{transform:translate(4px)}.data-action-item.danger:hover{border-color:#c75d544d;background:#c75d541a}.action-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;flex-shrink:0}.action-icon.export{background:#5a8f9a26;color:var(--status-info)}.action-icon.import{background:#5b9a6f26;color:var(--status-success)}.action-icon.reset{background:#c4a35a26;color:var(--status-warning)}.action-icon.danger{background:#c75d5426;color:var(--status-error)}.action-content{flex:1;display:flex;flex-direction:column;gap:2px}.action-title{font-size:14px;font-weight:500;color:var(--text-primary)}.data-action-item.danger .action-title{color:var(--status-error)}.action-desc{font-size:12px;color:var(--text-muted)}.action-arrow{color:var(--text-muted);flex-shrink:0;transition:transform .2s ease}.data-action-divider{height:1px;background:var(--ui-border);margin:12px 0}.onboarding-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--ui-background);padding:24px}.onboarding-loading{display:flex;align-items:center;justify-content:center}.onboarding-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--ui-border);border-top-color:var(--primary-main);border-radius:50%;animation:spin 1s linear infinite}.onboarding-container{width:100%;max-width:420px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;padding:40px 32px}.onboarding-header{text-align:center;margin-bottom:32px}.onboarding-logo{margin-bottom:20px}.onboarding-header h1{font-size:22px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.onboarding-header p{font-size:14px;color:var(--text-secondary)}.onboarding-form .form-group{margin-bottom:24px}.onboarding-form .form-group label{display:block;font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:8px}.onboarding-form .form-group input{width:100%;padding:14px 16px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;color:var(--text-primary);font-size:15px;font-family:inherit;transition:all .2s ease}.onboarding-form .form-group input:focus{outline:none;border-color:var(--primary-main);box-shadow:0 0 0 3px #2f636426}.onboarding-form .form-group input::placeholder{color:var(--text-muted)}.onboarding-form .form-hint{display:block;margin-top:8px;font-size:12px;color:var(--text-muted)}.workspace-type-selector{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.workspace-type-selector .type-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;background:var(--ui-surface);border:2px solid var(--ui-border);border-radius:12px;cursor:pointer;transition:all .2s ease;font-family:inherit}.workspace-type-selector .type-option:hover{border-color:var(--primary-main);background:#2f63641a}.workspace-type-selector .type-option.selected{border-color:var(--primary-main);background:#2f636426}.workspace-type-selector .type-icon{font-size:28px}.workspace-type-selector .type-label{font-size:15px;font-weight:600;color:var(--text-primary)}.workspace-type-selector .type-desc{font-size:12px;color:var(--text-muted)}.onboarding-submit{width:100%;padding:14px;background:var(--primary-main);border:none;border-radius:10px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s ease}.onboarding-submit:hover:not(:disabled){background:var(--primary-light)}.onboarding-submit:disabled{background:var(--ui-border);color:var(--text-muted);cursor:not-allowed}.team-management-page{min-height:100vh;padding:24px;background:var(--ui-background)}.team-container{max-width:720px;margin:0 auto}.team-header{display:flex;align-items:center;margin-bottom:32px}.team-header .back-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;margin:0;background:transparent;border:none;border-radius:0;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.team-header .back-button svg{width:20px;height:20px}.team-header .back-button:hover{color:var(--text-primary)}.team-header h1{flex:1;font-size:24px;font-weight:600;color:var(--text-primary);margin:0 40px 0 0;text-align:center}.team-section{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;padding:24px;margin-bottom:24px}.team-section h2{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.team-section .section-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--ui-border)}.team-section .section-header h2{margin:0;padding:0;border:none}.team-section .btn-invite{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--primary-main);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.team-section .btn-invite:hover{background:var(--primary-light)}.team-section .btn-invite svg{flex-shrink:0}.invite-modal-form{display:flex;flex-direction:column;gap:16px}.invite-modal-form .form-group{display:flex;flex-direction:column;gap:8px}.invite-modal-form .form-group label{font-size:13px;font-weight:500;color:var(--text-secondary)}.invite-modal-form .form-group input{padding:12px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;font-size:14px;color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.invite-modal-form .form-group select{padding:12px 40px 12px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;font-size:14px;color:var(--text-primary);transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5L6 8L9.5 4.5' stroke='%23A3B5B6' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;cursor:pointer}.invite-modal-form .form-group input:focus,.invite-modal-form .form-group select:focus{outline:none;border-color:var(--primary-main);box-shadow:0 0 0 3px #2f636426}.invite-modal-form .invite-hint{font-size:12px;color:var(--text-muted);line-height:1.5;margin:4px 0}.invite-modal-form .modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.team-section .form-group{margin-bottom:20px}.team-section .form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.team-section .form-group input,.team-section .form-group textarea{width:100%;padding:12px 16px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;font-size:14px;color:var(--text-primary);font-family:inherit;transition:all .2s ease}.team-section .form-group input:focus,.team-section .form-group textarea:focus{outline:none;border-color:var(--primary-main);box-shadow:0 0 0 3px #2f636426}.team-section .form-group input:disabled,.team-section .form-group textarea:disabled{background:var(--ui-background);color:var(--text-muted);cursor:not-allowed}.team-section .form-group textarea{min-height:80px;resize:vertical}.team-section .form-actions{display:flex;justify-content:flex-end;margin-top:16px}.member-list{display:flex;flex-direction:column;gap:12px}.member-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--ui-surface);border-radius:10px}.member-avatar{width:40px;height:40px;border-radius:50%;background:var(--ui-border);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.member-avatar img{width:100%;height:100%;object-fit:cover}.member-avatar span{font-size:16px;font-weight:600;color:var(--text-secondary)}.member-info{flex:1;min-width:0}.member-name{font-size:14px;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:8px}.you-badge{font-size:11px;padding:2px 6px;background:var(--primary-main);color:#fff;border-radius:4px;font-weight:500}.member-email{font-size:12px;color:var(--text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-role{flex-shrink:0}.member-role select{padding:6px 10px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:6px;font-size:13px;color:var(--text-primary);cursor:pointer}.role-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.role-badge.role-owner{background:#5b9a6f26;color:var(--status-success)}.role-badge.role-admin{background:#5a8f9a26;color:var(--status-info)}.role-badge.role-member{background:var(--ui-surface);color:var(--text-secondary)}.btn-remove{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--text-muted);font-size:18px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.btn-remove:hover{background:#c75d541a;color:var(--status-error)}.invite-form{display:flex;gap:12px}.invite-form input{flex:1;padding:10px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;font-size:14px;color:var(--text-primary)}.invite-form input:focus{outline:none;border-color:var(--primary-main)}.invite-form select{padding:10px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;font-size:14px;color:var(--text-primary);cursor:pointer}.invite-hint{margin-top:12px;font-size:12px;color:var(--text-muted)}.invitation-list{display:flex;flex-direction:column;gap:8px}.invitation-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--ui-surface);border-radius:8px}.invitation-info{flex:1}.invitation-email{font-size:14px;color:var(--text-primary)}.invitation-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.btn-cancel-invite{padding:6px 12px;background:transparent;border:1px solid var(--ui-border);border-radius:6px;font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.btn-cancel-invite:hover{border-color:var(--status-error);color:var(--status-error)}.team-section.danger-zone{border-color:#c75d544d;background:#c75d540d}.team-section.danger-zone h2{color:var(--status-error);border-bottom-color:#c75d5433}.team-section.danger-zone p{font-size:14px;color:var(--text-secondary);margin-bottom:16px}.team-section.danger-zone .btn-danger{padding:10px 20px;background:transparent;border:1px solid var(--status-error);border-radius:8px;font-size:14px;font-weight:500;color:var(--status-error);cursor:pointer;transition:all .2s ease}.team-section.danger-zone .btn-danger:hover{background:var(--status-error);color:#fff}.team-error{text-align:center;padding:60px 20px}.team-error h2{font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.team-error p{font-size:14px;color:var(--text-secondary);margin-bottom:24px}@media(max-width:640px){.team-management-page{padding:16px}.team-section{padding:20px 16px}.invite-form{flex-direction:column}.invite-form select{width:100%}.member-item{flex-wrap:wrap}.member-role{order:3;width:100%;margin-top:8px}.member-role select{width:100%}.btn-remove{order:2}}.assignee-selector{position:relative}.assignee-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.no-assignees{font-size:13px;color:var(--text-muted)}.assignee-chip{display:flex;align-items:center;gap:6px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:20px;padding:4px 10px 4px 4px;font-size:13px}.chip-avatar{width:24px;height:24px;border-radius:50%;overflow:hidden;background:var(--ui-surface);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chip-avatar img{width:100%;height:100%;object-fit:cover}.chip-avatar span{font-size:11px;font-weight:600;color:var(--text-secondary)}.chip-name{color:var(--text-primary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0 2px;font-size:16px;line-height:1;margin-left:2px}.chip-remove:hover{color:var(--status-error)}.assignee-add-wrapper{position:relative;display:inline-block}.add-assignee-btn{display:flex;align-items:center;gap:4px;background:transparent;border:1px dashed var(--ui-border);border-radius:20px;padding:6px 12px;color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .2s}.add-assignee-btn:hover{border-color:var(--primary-main);color:var(--primary-main)}.assignee-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:100;max-height:200px;overflow-y:auto}.assignee-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;cursor:pointer;text-align:left;transition:background .15s}.assignee-option:hover{background:var(--ui-surface)}.option-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;background:var(--ui-surface);display:flex;align-items:center;justify-content:center;flex-shrink:0}.option-avatar img{width:100%;height:100%;object-fit:cover}.option-avatar span{font-size:13px;font-weight:600;color:var(--text-secondary)}.option-info{display:flex;flex-direction:column;gap:2px;min-width:0}.option-name{font-size:13px;color:var(--text-primary);font-weight:500}.option-email{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignee-selector.compact{display:inline-flex;align-items:center}.assignee-avatars{display:flex;align-items:center}.assignee-avatar-small{position:relative;width:24px;height:24px;border-radius:50%;overflow:visible;background:var(--ui-surface);display:flex;align-items:center;justify-content:center;margin-left:-6px;border:2px solid var(--ui-background);cursor:default}.assignee-avatar-small:first-child{margin-left:0}.assignee-avatar-small img{width:100%;height:100%;border-radius:50%;object-fit:cover}.assignee-avatar-small span{font-size:10px;font-weight:600;color:var(--text-secondary)}.assignee-avatar-small .remove-avatar-btn{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border-radius:50%;background:var(--status-error);border:none;color:#fff;font-size:10px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s;display:flex;align-items:center;justify-content:center}.assignee-avatar-small:hover .remove-avatar-btn{opacity:1}.add-avatar-btn{width:24px;height:24px;border-radius:50%;background:var(--ui-surface);border:1px dashed var(--ui-border);color:var(--text-muted);font-size:14px;cursor:pointer;margin-left:4px;display:flex;align-items:center;justify-content:center;transition:all .15s}.add-avatar-btn:hover{border-color:var(--primary-main);color:var(--primary-main)}.assignee-dropdown.compact{right:0;left:auto;min-width:180px}.assignee-dropdown.compact .assignee-option{padding:8px 10px}.assignee-dropdown.compact .option-avatar{width:24px;height:24px}.assignee-dropdown.compact .option-avatar span{font-size:10px}.station-assignee-section{padding:16px 0;border-top:1px solid var(--ui-border)}.station-assignee-section .section-label{display:block;margin-bottom:12px;color:var(--text-secondary);font-size:13px;font-weight:500}.task-item .assignee-selector.compact{flex-shrink:0;margin-left:8px}.station-reorder-section{padding:16px 0;border-top:1px solid var(--ui-border)}.station-reorder-section .section-title{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--text-secondary);font-size:13px;font-weight:500}.station-reorder-section .section-title svg{opacity:.7}.station-reorder-section .loading-text{font-size:11px;color:var(--text-muted);margin-left:auto}.station-reorder-list{display:flex;flex-direction:column;gap:4px}.sortable-station-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;cursor:default;transition:all .15s ease;touch-action:none}.sortable-station-item:hover{border-color:var(--ui-border-light)}.sortable-station-item.current{border-color:var(--primary-main);background:#2f63641a}.sortable-station-item.dragging{opacity:.95;box-shadow:0 4px 12px #0000004d;transform:scale(1.02);z-index:100;background:var(--ui-card)}.drag-handle{display:grid;grid-template-columns:repeat(2,4px);gap:3px;padding:6px 4px;color:var(--text-muted);cursor:grab;border:none;background:none;border-radius:4px;transition:color .15s ease}.drag-handle:hover{color:var(--text-secondary)}.drag-handle:active{cursor:grabbing}.drag-handle span{width:4px;height:4px;background:currentColor;border-radius:50%}.sortable-station-item .station-info{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.sortable-station-item .station-order{color:var(--text-muted);font-size:12px;min-width:20px}.sortable-station-item .station-name{flex:1;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.sortable-station-item .station-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sortable-station-item .station-status-dot.completed{background:var(--status-success)}.sortable-station-item .station-status-dot.current{background:var(--primary-main)}.sortable-station-item .station-status-dot.pending{background:var(--text-muted)}.sortable-station-item .current-badge{font-size:10px;padding:2px 6px;background:var(--primary-main);color:#fff;border-radius:10px;flex-shrink:0}.global-progress-bar{position:fixed;top:0;left:0;right:0;height:3px;background:var(--ui-border);z-index:9999;overflow:hidden}.global-progress-bar .progress-bar-inner{height:100%;width:30%;background:linear-gradient(90deg,var(--primary-main),var(--primary-light));border-radius:0 2px 2px 0;animation:progressSlide 1.2s ease-in-out infinite}@keyframes progressSlide{0%{transform:translate(-100%)}50%{transform:translate(200%)}to{transform:translate(400%)}}.offline-indicator{position:fixed;top:0;left:0;right:0;padding:10px 16px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:500;z-index:10000;animation:slideDown .3s ease-out}.offline-indicator.offline{background:linear-gradient(135deg,#c75d54,#a84940);color:#fff}.offline-indicator.reconnected{background:linear-gradient(135deg,var(--status-success) 0%,#4a8a5f 100%);color:#fff;animation:slideDown .3s ease-out,fadeOut .5s ease-in 2.5s forwards}.offline-indicator svg{flex-shrink:0}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.loading-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease;position:relative}.loading-btn:disabled{cursor:not-allowed;opacity:.7}.loading-btn.is-loading{pointer-events:none}.loading-btn-sm{padding:6px 12px;font-size:12px}.loading-btn-md{padding:10px 18px;font-size:14px}.loading-btn-lg{padding:14px 24px;font-size:16px}.loading-btn-primary{background:var(--primary-main);color:#fff}.loading-btn-primary:hover:not(:disabled){background:var(--primary-light)}.loading-btn-secondary{background:var(--ui-card);color:var(--text-primary);border:1px solid var(--ui-border)}.loading-btn-secondary:hover:not(:disabled){background:var(--ui-surface);border-color:var(--ui-border-light)}.loading-btn-danger{background:var(--status-error);color:#fff}.loading-btn-danger:hover:not(:disabled){background:#d9534f}.loading-btn-ghost{background:transparent;color:var(--text-secondary)}.loading-btn-ghost:hover:not(:disabled){background:var(--ui-surface);color:var(--text-primary)}.loading-spinner{display:flex;align-items:center;justify-content:center;animation:spin 1s linear infinite}.loading-spinner svg{width:16px;height:16px}.loading-btn-sm .loading-spinner svg{width:14px;height:14px}.loading-btn-lg .loading-spinner svg{width:18px;height:18px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-btn-text{opacity:.9}.loading-btn-content{display:inline-flex;align-items:center;gap:6px}.loading-btn-content svg{flex-shrink:0}.saving-indicator{margin-left:8px;font-size:11px;color:var(--primary-main);font-weight:400;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-right:6px;vertical-align:middle}.btn-submit.is-loading{display:inline-flex;align-items:center;justify-content:center}.date-range-picker-container{position:relative}.date-range-display{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:8px;cursor:pointer;transition:all .15s ease}.date-range-display:hover{border-color:var(--ui-border-light)}.date-range-value{display:flex;flex-direction:column;gap:2px}.date-range-value .date-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.date-range-value .date-text{font-size:13px;color:var(--text-primary);font-weight:500}.date-range-separator{color:var(--text-muted);font-size:14px;padding:0 4px}.date-range-picker-container .date-range-display .date-picker-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid;border-radius:8px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.date-range-picker-container .date-range-display .date-picker-btn:hover{filter:brightness(1.2)}.date-range-dropdown{width:320px}.quick-select-section{padding:12px;border-bottom:1px solid var(--ui-border)}.quick-select-label{font-size:11px;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.quick-select-options{display:flex;flex-wrap:wrap;gap:6px}.quick-select-btn{padding:5px 10px;font-size:12px;font-family:inherit;background:transparent;border:1px solid var(--ui-border);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.quick-select-btn:hover{background:var(--ui-surface);border-color:var(--ui-border-light);color:var(--text-primary)}.selection-mode-indicator{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--ui-surface);border-bottom:1px solid var(--ui-border);font-size:12px}.selection-mode-indicator .mode-item{padding:4px 8px;border:1px solid transparent;color:var(--text-muted);transition:all .15s ease}.selection-mode-indicator .mode-item.active{background:var(--ui-card);border-color:var(--ui-border);color:var(--text-primary)}.selection-mode-indicator .mode-arrow{color:var(--text-muted)}.selection-mode-indicator .duration-badge{margin-left:auto;padding:3px 8px;border-radius:10px;font-size:11px;font-weight:600;color:#fff;white-space:nowrap}.calendar-day.range-start{border-radius:50% 0 0 50%}.calendar-day.range-end{border-radius:0 50% 50% 0}.calendar-day.range-start.range-end{border-radius:50%}.calendar-day.in-range{border-radius:0}.date-range-footer{display:flex;gap:8px;justify-content:flex-end}.date-range-footer .cancel-btn{padding:8px 16px;font-size:13px;font-family:inherit;background:transparent;border:1px solid var(--ui-border);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.date-range-footer .cancel-btn:hover{background:var(--ui-surface);border-color:var(--ui-border-light)}.date-range-footer .apply-btn{padding:8px 16px;font-size:13px;font-family:inherit;font-weight:500;border:none;border-radius:6px;color:#fff;cursor:pointer;transition:all .15s ease}.date-range-footer .apply-btn:hover{opacity:.9}.date-range-footer .apply-btn:disabled{opacity:.5;cursor:not-allowed}.zoom-reset-btn{position:absolute;top:12px;right:12px;z-index:100;display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:8px;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0000004d}.zoom-reset-btn:hover{background:var(--ui-surface);color:var(--text-primary)}.zoom-reset-btn:active{transform:scale(.95)}.touch-target{pointer-events:all}@media(max-width:768px){.map-container{overflow:hidden;position:relative}.map-svg-wrapper{will-change:transform;transition:none}.back-button{min-height:44px;min-width:44px;padding:10px 16px}.reorder-btn{min-height:44px;padding:10px 14px}.status-cards-row{flex-wrap:wrap;gap:8px}.status-card{flex:1 1 calc(50% - 4px);min-width:140px}.station-detail,.branch-detail{position:fixed;top:0;right:0;width:100%;height:100%;max-height:100vh;z-index:1000;border-radius:0;animation:slideInFromRight .3s ease}@keyframes slideInFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}.station-detail:before,.branch-detail:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;background:var(--ui-border);border-radius:2px}.station-detail .close-btn,.branch-detail .close-btn{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.form-actions button{min-height:44px;padding:12px 20px}.add-task-row{gap:8px}.add-task-input{min-height:44px}.add-task-btn{min-width:44px;min-height:44px}.status-buttons .button-group{gap:8px}.status-btn{min-height:40px;padding:10px 14px;font-size:13px}.insert-btn,.station-action-row .action-btn,.branch-action-row .action-btn{min-height:44px;padding:12px 16px}.legend-item.clickable{min-height:36px;padding:8px 12px}.task-item{min-height:44px;padding:10px 12px}.task-item .task-checkbox{width:20px;height:20px}.filter-btn{min-height:40px;padding:10px 14px}.sort-btn{min-height:40px;padding:10px 12px}.service-card{min-height:120px}.card-action-btn{min-width:36px;min-height:36px}.detail-header-section{flex-direction:column;gap:16px;padding:16px}.service-info h1{font-size:20px}.progress-overview{align-self:center}.detail-top-bar{padding:12px 16px;gap:12px}.date-range-picker-container{width:100%}.date-range-display{flex-wrap:wrap;gap:8px}.calendar-dropdown-fixed{width:calc(100vw - 32px)!important;max-width:340px;left:16px!important}}@media(min-width:769px)and (max-width:1024px){.station-detail,.branch-detail{width:380px}.status-cards-row{flex-wrap:wrap}.status-card{flex:1 1 calc(50% - 8px)}}@media(max-width:768px)and (orientation:landscape){.station-detail,.branch-detail{width:60%;max-width:400px;animation:slideInFromRight .3s ease}.detail-header-section{flex-direction:row;align-items:center}}@media(pointer:coarse){.station-detail,.branch-detail{-webkit-overflow-scrolling:touch;overflow-y:auto}.tasks-section ul{-webkit-overflow-scrolling:touch}.editable{min-height:32px;display:inline-flex;align-items:center;padding:4px 8px;margin:-4px -8px}}@media(max-width:768px){.mobile-calendar-wrapper .mini-calendar{padding:16px;border-radius:12px}.mobile-calendar-wrapper .mini-calendar .calendar-header{margin-bottom:12px}.mobile-calendar-wrapper .mini-calendar .calendar-header h3{font-size:16px}.mobile-calendar-wrapper .mini-calendar .calendar-grid{gap:2px}.mobile-calendar-wrapper .mini-calendar .weekday{font-size:12px;padding:8px 0}.mobile-calendar-wrapper .mini-calendar .calendar-day{font-size:14px;min-height:40px;border-radius:8px}.mobile-calendar-wrapper .mini-calendar .calendar-day.today{font-weight:600}.mobile-calendar-wrapper .mini-calendar .calendar-day .deadline-dot{width:5px;height:5px}.mobile-calendar-wrapper .mini-calendar .upcoming-section{margin-top:16px;padding-top:16px}.mobile-calendar-wrapper .mini-calendar .upcoming-section h4{font-size:14px;margin-bottom:12px}.mobile-calendar-wrapper .mini-calendar .upcoming-item{padding:12px;margin-bottom:8px}.mobile-calendar-wrapper .mini-calendar .upcoming-item .item-name{font-size:14px}.mobile-calendar-wrapper .mini-calendar .upcoming-item .item-service{font-size:12px}.mobile-calendar-wrapper .mini-calendar .upcoming-item .days-badge{font-size:12px;padding:4px 10px}}@media(prefers-contrast:high){.station-group circle{stroke-width:3}.connection-line{stroke-width:4}}.presence-indicator{display:flex;align-items:center;gap:8px}.presence-label{font-size:12px;color:var(--text-muted)}.presence-avatars{display:flex;align-items:center}.presence-avatar{width:28px;height:28px;border-radius:50%;border:2px solid var(--ui-background);margin-left:-8px;background:var(--ui-surface);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary);overflow:hidden}.presence-avatar:first-child{margin-left:0}.presence-avatar img{width:100%;height:100%;object-fit:cover}.presence-avatar.more{background:var(--primary-main);color:#fff;font-size:10px}.presence-indicator{position:relative;cursor:pointer}.presence-tooltip{position:absolute;top:calc(100% + 8px);right:0;background:var(--ui-card);border:1px solid var(--ui-border);border-radius:12px;padding:12px;min-width:220px;box-shadow:0 8px 32px #0000004d;z-index:1000;animation:fadeIn .15s ease}.presence-tooltip-title{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--ui-border)}.presence-tooltip-list{display:flex;flex-direction:column;gap:10px}.presence-tooltip-item{display:flex;align-items:center;gap:10px}.presence-tooltip-avatar{width:36px;height:36px;border-radius:50%;background:var(--ui-surface);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--text-secondary);overflow:hidden;flex-shrink:0}.presence-tooltip-avatar img{width:100%;height:100%;object-fit:cover}.presence-tooltip-info{display:flex;flex-direction:column;gap:2px;min-width:0}.presence-tooltip-name{font-size:13px;font-weight:500;color:var(--text-primary)}.presence-tooltip-email{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.realtime-status{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted)}.realtime-status .status-dot{width:6px;height:6px;border-radius:50%}.realtime-status .status-dot.connected{background:var(--status-success)}.realtime-status .status-dot.connecting{background:var(--status-warning);animation:pulse-dot 1s infinite}.realtime-status .status-dot.error{background:var(--status-error)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.history-page{min-height:100vh;background:var(--ui-background);padding:24px}.history-container{max-width:1200px;margin:0 auto}.history-header{display:flex;align-items:center;margin-bottom:24px}.history-header .back-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;margin:0;background:transparent;border:none;border-radius:0;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.history-header .back-button svg{width:20px;height:20px}.history-header .back-button:hover{color:var(--text-primary)}.history-header h1{flex:1;font-size:24px;font-weight:600;color:var(--text-primary);margin:0;text-align:center}.history-year-tabs{display:flex;gap:8px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px}.year-tab{padding:8px 16px;border-radius:8px;background:var(--ui-surface);border:1px solid var(--ui-border);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.year-tab:hover{background:var(--ui-card);color:var(--text-primary)}.year-tab.active{background:var(--primary-main);border-color:var(--primary-main);color:#fff}.history-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.history-search{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;flex:1;max-width:320px}.history-search svg{color:var(--text-muted);flex-shrink:0}.history-search input{flex:1;background:none;border:none;color:var(--text-primary);font-size:14px;outline:none}.history-search input::placeholder{color:var(--text-muted)}.history-stats{display:flex;gap:16px;font-size:14px;color:var(--text-secondary)}.history-stats .stat-item strong{color:var(--text-primary);font-weight:600}.history-month-group{margin-bottom:32px}.month-group-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 16px;display:flex;align-items:center;gap:8px}.month-group-count{font-size:13px;font-weight:500;color:var(--text-muted);background:var(--ui-surface);padding:2px 8px;border-radius:10px}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.history-card{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:12px;padding:16px;cursor:pointer;transition:all .2s ease}.history-card:hover{border-color:var(--primary-main);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.history-card-header{display:flex;gap:12px;margin-bottom:12px}.history-card-image{width:48px;height:48px;border-radius:10px;object-fit:cover}.history-card-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.history-card-info{flex:1;min-width:0}.history-card-name{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-card-project{font-size:13px;color:var(--text-secondary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-card-description{font-size:13px;color:var(--text-muted);margin:0 0 12px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.history-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--ui-border)}.history-card-date{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.history-card-date svg{color:var(--status-success)}.history-card-version{font-size:11px;color:var(--text-muted);background:var(--ui-surface);padding:2px 8px;border-radius:6px}.history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.history-empty svg{color:var(--text-muted);margin-bottom:16px;opacity:.5}.history-empty p{color:var(--text-secondary);font-size:15px;margin:0 0 16px}.history-skeleton{display:flex;flex-direction:column;gap:32px}.skeleton-month-group{display:flex;flex-direction:column;gap:16px}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.skeleton-card{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:12px;padding:16px}.stats-toggle{width:40px;height:40px;border-radius:10px;background:var(--ui-surface);border:1px solid var(--ui-border);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;flex-shrink:0}.stats-toggle:hover{background:var(--ui-card);color:var(--text-primary)}.stats-toggle.active{background:var(--primary-main);border-color:var(--primary-main);color:#fff}.history-period-selector{margin-bottom:20px}.period-presets{display:flex;gap:8px;flex-wrap:wrap}.period-btn{padding:8px 16px;border-radius:8px;background:var(--ui-surface);border:1px solid var(--ui-border);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.period-btn:hover{background:var(--ui-card);color:var(--text-primary)}.period-btn.active{background:var(--primary-main);border-color:var(--primary-main);color:#fff}.period-custom{display:flex;align-items:center;gap:8px;margin-top:12px}.period-custom input[type=date]{padding:8px 12px;border-radius:8px;background:var(--ui-surface);border:1px solid var(--ui-border);color:var(--text-primary);font-size:14px}.period-custom span{color:var(--text-muted)}.history-stats-dashboard{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;margin-bottom:24px}.stats-card{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:12px;padding:16px}.stats-card h3{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.stats-empty{font-size:13px;color:var(--text-muted);text-align:center;padding:20px 0}.trend-chart{display:flex;align-items:flex-end;gap:4px;height:120px;padding-top:20px}.trend-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.trend-bar-container{width:100%;height:100px;display:flex;align-items:flex-end;justify-content:center}.trend-bar{width:100%;max-width:32px;background:linear-gradient(to top,var(--primary-main),var(--primary-light));border-radius:4px 4px 0 0;min-height:4px;position:relative;transition:height .3s ease}.trend-bar-value{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:11px;font-weight:600;color:var(--text-primary)}.trend-bar-label{font-size:10px;color:var(--text-muted);white-space:nowrap}.ontime-progress{display:flex;align-items:center;gap:12px;margin-bottom:16px}.ontime-bar{flex:1;height:8px;background:var(--ui-surface);border-radius:4px;overflow:hidden}.ontime-fill{height:100%;background:linear-gradient(to right,var(--status-success),#7BC47F);border-radius:4px;transition:width .5s ease}.ontime-rate{font-size:20px;font-weight:700;color:var(--status-success);min-width:50px;text-align:right}.ontime-details{display:flex;flex-direction:column;gap:8px}.ontime-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.ontime-item svg{flex-shrink:0}.ontime-item.success svg{color:var(--status-success)}.ontime-item.warning svg{color:var(--status-warning)}.ontime-item strong{color:var(--text-primary)}.duration-main{display:flex;align-items:baseline;gap:4px;margin-bottom:16px}.duration-value{font-size:36px;font-weight:700;color:var(--text-primary);line-height:1}.duration-unit{font-size:16px;color:var(--text-muted)}.duration-details{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.duration-item{display:flex;justify-content:space-between;align-items:center;font-size:12px}.duration-label{color:var(--text-muted)}.duration-info{color:var(--text-primary);font-weight:500;display:flex;align-items:center;gap:6px}.duration-project{font-size:11px;color:var(--text-muted);font-weight:400;max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duration-item.fastest .duration-info{color:var(--status-success)}.duration-item.slowest .duration-info{color:var(--status-warning)}.duration-note{font-size:11px;color:var(--text-muted);margin:0}.history-card-meta{display:flex;align-items:center;gap:8px}.history-card-duration{font-size:11px;color:var(--text-muted);background:var(--ui-surface);padding:2px 8px;border-radius:6px}.history-card-ontime{font-size:10px;font-weight:500;padding:2px 8px;border-radius:6px}.history-card-ontime.success{background:#5b9a6f26;color:var(--status-success)}.history-card-ontime.late{background:#c75d5426;color:var(--status-error)}.history-stats-summary{display:flex;gap:16px;font-size:14px;color:var(--text-secondary)}.history-stats-summary .stat-item strong{color:var(--text-primary);font-weight:600}@media(max-width:1024px){.history-stats-dashboard{grid-template-columns:1fr 1fr}.stats-card.trend-card{grid-column:1 / -1}}@media(max-width:768px){.history-page{padding:16px}.history-toolbar{flex-direction:column;align-items:stretch}.history-search{max-width:none}.history-stats{justify-content:center}.history-grid,.history-stats-dashboard{grid-template-columns:1fr}.trend-chart{height:100px}.trend-bar-container{height:80px}.trend-bar-label{font-size:9px}.period-presets{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}}.notification-list-page{min-height:100vh;background:var(--ui-background);padding:24px}.notification-list-container{max-width:640px;margin:0 auto}.notification-list-header{display:flex;align-items:center;margin-bottom:24px}.notification-list-header .back-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;margin:0;background:transparent;border:none;border-radius:0;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.notification-list-header .back-button svg{width:20px;height:20px}.notification-list-header .back-button:hover{color:var(--text-primary)}.notification-list-header h1{flex:1;font-size:24px;font-weight:600;color:var(--text-primary);margin:0 40px 0 0;text-align:center}.notification-list-header .mark-all-read-btn{position:absolute;right:24px;padding:8px 16px;border:none;background:var(--primary-main);color:#fff;font-size:13px;font-weight:500;cursor:pointer;border-radius:8px;transition:background .2s}.notification-list-header .mark-all-read-btn:hover:not(:disabled){background:var(--primary-light)}.notification-list-header .mark-all-read-btn:disabled{opacity:.5;cursor:not-allowed}.notification-list-content{background:var(--ui-card);border:1px solid var(--ui-border);border-radius:16px;overflow:hidden}.notification-skeleton{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;border-bottom:1px solid var(--ui-border)}.notification-skeleton:last-child{border-bottom:none}.notification-skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.notification-list-content .notification-empty{padding:60px 20px;text-align:center}.notification-list-content .notification-empty .empty-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:var(--ui-surface);border-radius:50%;margin-bottom:16px;color:var(--text-muted)}.notification-list-content .notification-empty p{margin:0 0 8px;font-size:16px;font-weight:500;color:var(--text-primary)}.notification-list-content .notification-empty span{font-size:14px;color:var(--text-muted)}.notification-items .notification-item{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;cursor:pointer;transition:background .15s;position:relative;border-bottom:1px solid var(--ui-border)}.notification-items .notification-item:last-child{border-bottom:none}.notification-items .notification-item:hover{background:var(--ui-surface)}.notification-items .notification-item.unread{background:#2f636414}.notification-items .notification-item.unread:hover{background:#2f63641f}.notification-items .notification-icon{font-size:20px;flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--ui-surface);border-radius:10px}.notification-items .notification-content{flex:1;min-width:0}.notification-items .notification-title{margin:0 0 4px;font-size:15px;font-weight:500;color:var(--text-primary);line-height:1.4}.notification-items .notification-message{margin:0 0 8px;font-size:14px;color:var(--text-secondary);line-height:1.5}.notification-items .notification-time{font-size:13px;color:var(--text-muted)}.notification-items .notification-delete-btn{position:absolute;top:14px;right:16px;width:28px;height:28px;padding:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s}.notification-items .notification-item:hover .notification-delete-btn{opacity:1}.notification-items .notification-delete-btn:hover{background:var(--ui-border);color:var(--status-error)}@media(max-width:768px){.notification-list-page{padding:16px}.notification-list-header .mark-all-read-btn{position:static;margin-left:auto;margin-right:0;padding:6px 12px;font-size:12px}.notification-list-header h1{margin-right:0;font-size:20px}.notification-items .notification-item{padding:14px 16px}.notification-items .notification-delete-btn{opacity:1}}@media(max-width:768px){button,.btn,.btn-primary,.btn-secondary,.btn-danger,.btn-cancel{min-height:44px}input,textarea,select{min-height:44px;font-size:16px}.service-card-actions button{min-width:44px;min-height:44px;padding:10px}.station-circle{min-width:44px;min-height:44px}.toggle-switch{min-width:52px;min-height:32px}.notification-bell,.profile-menu-trigger,.modal-close,.back-button{min-width:44px;min-height:44px}.tab-btn,.view-toggle button{min-height:44px;padding:10px 16px}.team-dropdown-content button,.profile-dropdown button,.profile-menu-dropdown button{min-height:44px;padding:12px 16px}.setting-item{min-height:56px;padding:14px 0}.icon-btn{min-width:44px;min-height:44px;padding:10px}.fab-add-service{width:56px;height:56px}.task-checkbox{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.station-detail .add-task-btn,.station-detail .task-delete-btn{min-height:44px}.load-more-btn{min-height:48px;padding:14px 32px}}@media(hover:none)and (pointer:coarse){button:active,.btn:active,.service-card:active{transform:scale(.98);opacity:.9}}
