refactor(styles): CSS 1,814줄 → 15개 컴포넌트 파일 분리
styles.css 모놀리스를 @import 기반 모듈 구조로 분리:
- base.css: CSS 변수, 리셋, 폰트
- layout.css: 그리드 레이아웃, 반응형
- components/: topbar, panels, toggles, speed, vessel-list,
ais-list, alarms, relations, map-panels, map-settings,
auth, weather, weather-overlay
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 00:01:04 +09:00
|
|
|
/* Alarm */
|
|
|
|
|
.ai {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 6px;
|
|
|
|
|
padding: 4px 6px;
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
margin-bottom: 2px;
|
|
|
|
|
font-size: 9px;
|
|
|
|
|
border-left: 3px solid;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ai.cr {
|
|
|
|
|
border-color: var(--crit);
|
|
|
|
|
background: rgba(239, 68, 68, 0.07);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ai.hi {
|
|
|
|
|
border-color: var(--high);
|
|
|
|
|
background: rgba(245, 158, 11, 0.05);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ai .at {
|
|
|
|
|
color: var(--muted);
|
|
|
|
|
font-size: 8px;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Alarm filter (dropdown) */
|
|
|
|
|
.alarm-filter {
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.alarm-filter__summary {
|
|
|
|
|
list-style: none;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
padding: 2px 8px;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
border: 1px solid var(--border);
|
2026-02-17 06:41:27 +09:00
|
|
|
background: var(--wing-card-alpha);
|
refactor(styles): CSS 1,814줄 → 15개 컴포넌트 파일 분리
styles.css 모놀리스를 @import 기반 모듈 구조로 분리:
- base.css: CSS 변수, 리셋, 폰트
- layout.css: 그리드 레이아웃, 반응형
- components/: topbar, panels, toggles, speed, vessel-list,
ais-list, alarms, relations, map-panels, map-settings,
auth, weather, weather-overlay
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 00:01:04 +09:00
|
|
|
color: var(--text);
|
|
|
|
|
font-size: 8px;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
letter-spacing: 0.4px;
|
|
|
|
|
user-select: none;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.alarm-filter__summary::-webkit-details-marker {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.alarm-filter__menu {
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 0;
|
|
|
|
|
top: 22px;
|
|
|
|
|
z-index: 2000;
|
|
|
|
|
min-width: 170px;
|
|
|
|
|
padding: 6px;
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
border: 1px solid var(--border);
|
2026-02-17 06:41:27 +09:00
|
|
|
background: var(--wing-glass-dense);
|
refactor(styles): CSS 1,814줄 → 15개 컴포넌트 파일 분리
styles.css 모놀리스를 @import 기반 모듈 구조로 분리:
- base.css: CSS 변수, 리셋, 폰트
- layout.css: 그리드 레이아웃, 반응형
- components/: topbar, panels, toggles, speed, vessel-list,
ais-list, alarms, relations, map-panels, map-settings,
auth, weather, weather-overlay
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 00:01:04 +09:00
|
|
|
box-shadow: 0 16px 50px rgba(0, 0, 0, 0.55);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.alarm-filter__row {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
gap: 6px;
|
|
|
|
|
padding: 4px 6px;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
font-size: 10px;
|
|
|
|
|
color: var(--text);
|
|
|
|
|
user-select: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.alarm-filter__row:hover {
|
|
|
|
|
background: rgba(59, 130, 246, 0.08);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.alarm-filter__row input {
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.alarm-filter__cnt {
|
|
|
|
|
margin-left: auto;
|
|
|
|
|
font-size: 9px;
|
|
|
|
|
color: var(--muted);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.alarm-filter__sep {
|
|
|
|
|
height: 1px;
|
2026-02-17 06:41:27 +09:00
|
|
|
background: var(--wing-border);
|
refactor(styles): CSS 1,814줄 → 15개 컴포넌트 파일 분리
styles.css 모놀리스를 @import 기반 모듈 구조로 분리:
- base.css: CSS 변수, 리셋, 폰트
- layout.css: 그리드 레이아웃, 반응형
- components/: topbar, panels, toggles, speed, vessel-list,
ais-list, alarms, relations, map-panels, map-settings,
auth, weather, weather-overlay
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 00:01:04 +09:00
|
|
|
margin: 4px 0;
|
|
|
|
|
}
|