@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Noto+Sans+KR:wght@300;400;500;600;700;900&family=Rajdhani:wght@500;600;700&display=swap";:root{--font-family:"Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Roboto Mono", monospace;--radius-sm:8px;--radius-md:12px;--radius-lg:14px;--radius-xl:16px;--radius-pill:9999px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-xxl:24px;--space-3xl:32px;--acc:#ff5a1f;--accd:#e14a14;--on-acc:#fff;--lime-chip:#c7f94e;--ink-fixed:#0e1419}:root,:root[data-theme=dark]{--bg:#0e1419;--card:#1a222b;--card2:#222e39;--line:#2c3a46;--txt:#f4f7fa;--mut:#8b98a5;--dim:#5a6671;--lime-text:#c7f94e;--green:#2fcb7e;--warn:#ffc53d;--danger:#ff4d4f;--info:#1890ff;--bar:#10171e;--chip:#1a2530;--tag-bg:#202a33;--panel:#0f1a24;--map-bg:#16202a;--map-line:#1e2a35;--map-road:#243441;--handle:#3a464f;--star:#c7f94e;--hero-bg:#101b23;--hero-line:#15212b;--shadow-sm:0 2px 8px #0006;--shadow-md:0 4px 20px #00000080;--shadow-lg:0 10px 30px #0009;--glass-bg:#1a222bd9;--glass-border:#ff5a1f26}:root[data-theme=light]{--bg:#eef2f6;--card:#fff;--card2:#e9eef3;--line:#dce3ea;--txt:#16212c;--mut:#5c6b78;--dim:#a2aeba;--lime-text:#3c9a2e;--green:#1fa463;--warn:#d98a00;--danger:#e03131;--info:#096dd9;--bar:#fff;--chip:#eef2f6;--tag-bg:#e9eef3;--panel:#f3f6f9;--map-bg:#e5ebf1;--map-line:#d7dfe7;--map-road:#ccd6df;--handle:#c5cfd8;--star:#f5a623;--hero-bg:#e8eff6;--hero-line:#dbe4ec;--shadow-sm:0 2px 8px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 10px 28px #0000001f;--glass-bg:#ffffffe6;--glass-border:#dce3eacc}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;font-family:var(--font-family);background-color:var(--bg);color:var(--txt);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s,color .25s;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--mut)}.tactical-font{font-family:"Rajdhani", var(--font-family);letter-spacing:.05em;text-transform:uppercase;font-weight:700}.mono-font{font-family:var(--font-mono)}.app-layout{background-color:var(--bg);width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.sidebar-container{background-color:var(--bar);border-right:1px solid var(--line);z-index:20;flex-direction:column;flex-shrink:0;width:260px;height:100vh;transition:transform .25s cubic-bezier(.16,1,.3,1);display:flex}.sidebar-backdrop,.mobile-sidebar-close-btn,.mobile-hamburger-btn{display:none}.app-header{background-color:var(--bar);border-bottom:1px solid var(--line);height:72px;padding:0 var(--space-xxl);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.main-content{background:radial-gradient(circle at 80% 20%, var(--hero-line) 0%, transparent 70%);flex-direction:column;flex:1;height:100vh;display:flex;position:relative;overflow:hidden}.page-scrollable,.view-container{padding:var(--space-xxl);gap:var(--space-xxl);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow-y:auto}.mobile-bottom-nav{display:none}.card-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.16,1,.3,1);position:relative}.card-panel:hover{box-shadow:var(--shadow-md);border-color:#ff5a1f59}.card-panel-accent{background:linear-gradient(135deg, var(--card) 0%, var(--card2) 100%);border:1px solid var(--glass-border);border-left:4px solid var(--acc)}.badge{border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.badge-lime{background:var(--lime-chip);color:var(--ink-fixed);font-weight:700}.badge-orange{background:var(--acc);color:#fff}.badge-outline{border:1px solid var(--line);background:var(--card2);color:var(--txt)}.badge-success{color:var(--green);background:#2fcb7e26;border:1px solid #2fcb7e4d}.badge-warning{color:var(--warn);background:#ffc53d26;border:1px solid #ffc53d4d}.badge-danger{color:var(--danger);background:#ff4d4f26;border:1px solid #ff4d4f4d}.btn{border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:all .18s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--acc);color:var(--on-acc);box-shadow:0 2px 10px #ff5a1f59}.btn-primary:hover{background:var(--accd);box-shadow:0 4px 16px #ff5a1f80}.btn-lime{background:var(--lime-chip);color:var(--ink-fixed);font-weight:700}.btn-lime:hover{filter:brightness(1.08);box-shadow:0 4px 16px #c7f94e66}.btn-secondary{background:var(--card2);color:var(--txt);border:1px solid var(--line)}.btn-secondary:hover{background:var(--chip);border-color:var(--mut)}.btn-ghost{color:var(--mut);background:0 0}.btn-ghost:hover{background:var(--card2);color:var(--txt)}.btn-sm{border-radius:var(--radius-sm);padding:6px 12px;font-size:13px}.btn-lg{border-radius:var(--radius-lg);padding:14px 24px;font-size:16px}.table-container{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;overflow-x:auto}.tactical-table{border-collapse:collapse;text-align:left;width:100%;font-size:13.5px}.tactical-table th{background:var(--card2);color:var(--mut);border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em;padding:14px 18px;font-size:12.5px;font-weight:600}.tactical-table td{border-bottom:1px solid var(--line);color:var(--txt);vertical-align:middle;padding:16px 18px}.tactical-table tr:last-child td{border-bottom:none}.tactical-table tbody tr{transition:background-color .15s}.tactical-table tbody tr:hover{background-color:var(--card2)}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0e1419bf;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.18s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);flex-direction:column;width:90%;max-width:620px;max-height:88vh;animation:.22s cubic-bezier(.16,1,.3,1) slideUp;display:flex;overflow-y:auto}.modal-header{padding:var(--space-xl);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.modal-body{padding:var(--space-xl);gap:var(--space-lg);flex-direction:column;display:flex}.modal-footer{padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:var(--space-md);background:var(--bar);display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--mut);font-size:13px;font-weight:600}.form-input,.form-select,.form-textarea{background:var(--panel);border:1px solid var(--line);color:var(--txt);border-radius:var(--radius-md);outline:none;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px #ff5a1f33}.form-input::placeholder,.form-textarea::placeholder{color:var(--dim)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 #c7f94e66}50%{box-shadow:0 0 0 8px #c7f94e00}}.pulse-active{animation:2s infinite pulseGlow}.grid-responsive-2col{grid-template-columns:1.35fr 1fr;gap:20px;display:grid}.grid-responsive-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.grid-responsive-form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.flex-responsive-banner{justify-content:space-between;align-items:center;gap:16px;display:flex}@media (width<=1024px){.sidebar-container{z-index:1000;width:280px;max-width:85vw;height:100vh;box-shadow:none;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar-container.open{transform:translate(0);box-shadow:12px 0 40px #0009}.sidebar-backdrop{-webkit-backdrop-filter:blur(6px);z-index:999;opacity:0;pointer-events:none;background:#0e1419b3;width:100vw;height:100vh;transition:opacity .25s;display:block;position:fixed;top:0;left:0}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.mobile-sidebar-close-btn{border-radius:var(--radius-sm);background:var(--card2);border:1px solid var(--line);width:32px;height:32px;color:var(--txt);cursor:pointer;justify-content:center;align-items:center;display:flex}.mobile-hamburger-btn{border-radius:var(--radius-md);background:var(--card2);border:1px solid var(--line);width:36px;height:36px;color:var(--txt);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:flex}.app-header{padding:0 var(--space-lg)}.page-scrollable,.view-container{padding:var(--space-lg);gap:var(--space-lg)}.grid-responsive-2col{grid-template-columns:1fr;gap:16px}}@media (width<=768px){.app-header{height:60px;padding:0 12px}.header-subtitle{display:none}.main-content{padding-bottom:60px}.page-scrollable,.view-container{gap:12px;padding:12px}.card-panel{border-radius:var(--radius-md);padding:14px}.flex-responsive-banner{flex-direction:column;align-items:stretch;gap:12px}.grid-responsive-form{grid-template-columns:1fr;gap:10px}.modal-content{border-radius:var(--radius-lg);width:95vw;max-height:90vh}.modal-header{padding:14px 16px}.modal-body{gap:12px;padding:14px 16px}.modal-footer{padding:12px 16px}.mobile-bottom-nav{background:var(--bar);border-top:1px solid var(--line);z-index:100;-webkit-backdrop-filter:blur(16px);width:100vw;height:60px;padding-bottom:env(safe-area-inset-bottom,0px);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0}.mobile-nav-btn{color:var(--mut);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 0;transition:all .15s;display:flex}.mobile-nav-btn.active{color:var(--acc)}.mobile-nav-icon-wrapper{justify-content:center;align-items:center;display:inline-flex;position:relative}.mobile-nav-badge{background:var(--acc);color:#fff;border-radius:var(--radius-pill);padding:1px 4px;font-size:8px;font-weight:800;line-height:1;position:absolute;top:-4px;right:-10px}.mobile-nav-label{font-size:10.5px;font-weight:600;line-height:1}}@media (width<=480px){.header-live-clock,.header-reset-btn,.header-logout-text,.header-status-text{display:none!important}.grid-responsive-cards{grid-template-columns:1fr;gap:10px}.btn{padding:8px 14px;font-size:13px}}.auth-wrapper{background-color:var(--bg);width:100%;height:100dvh;min-height:100dvh;color:var(--txt);-webkit-overflow-scrolling:touch;box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:center;padding:32px 16px 64px;display:flex;position:relative;overflow:hidden auto}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-xl);width:100%;box-shadow:var(--shadow-lg);z-index:10;box-sizing:border-box;flex-direction:column;flex-shrink:0;margin:auto;transition:max-width .2s,padding .2s;animation:.25s ease-out fadeIn;display:flex}.auth-card-login{gap:13px;max-width:440px;padding:22px 24px}.auth-card-signup{gap:13px;max-width:530px;padding:22px 24px}.role-grid-3col{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.form-grid-2col{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=640px){.auth-wrapper{justify-content:flex-start;align-items:center;padding:16px 10px 64px}.auth-card{border-radius:var(--radius-lg)!important;margin:8px auto!important}.auth-card-login,.auth-card-signup{gap:11px!important;padding:16px 14px!important}.role-grid-3col{grid-template-columns:repeat(3,1fr);gap:6px}.form-grid-2col{grid-template-columns:1fr!important;gap:8px!important}.modal-content{border-radius:var(--radius-lg)!important;width:95%!important;max-height:92vh!important;padding:16px 14px!important}}@media (height<=760px){.auth-wrapper{justify-content:flex-start;padding:16px 12px 64px}.auth-card-login,.auth-card-signup{gap:9px!important;padding:14px 18px!important}}
