@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+KR:wght@300;400;500;700;900&family=Outfit:wght@300;400;500;600;700;800;900&display=swap";:root{--brand-primary:#184e38;--brand-primary-hover:#113627;--brand-accent:#236747;--brand-accent-light:#edf6f0;--brand-danger:#b53434;--brand-danger-bg:#fff2f2;--brand-warning:#d46a10;--brand-warning-bg:#fff2e7;--brand-success:#1f8f4f;--brand-success-bg:#e8f8ee;--brand-info:#2250d8;--brand-info-bg:#edf3ff;--bg-app:#f4f7f4;--surface-card:#fff;--surface-card-hover:#fafcfb;--text-main:#1f2b24;--text-muted:#5c6c60;--border-line:#dbe4dc;--shadow-sm:0 4px 6px -1px #184e380d, 0 2px 4px -1px #184e3808;--shadow-md:0 10px 30px -3px #184e3814, 0 4px 12px -2px #184e3808;--shadow-lg:0 20px 40px -4px #184e381f, 0 8px 16px -4px #184e380f;--font-sans:"Pretendard", "Inter", "Noto Sans KR", sans-serif;--font-title:"Outfit", "Pretendard", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background-color:var(--bg-app);min-height:100vh;color:var(--text-main);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c3cfc5;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#a3b2a6}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulseGlow{0%{box-shadow:0 0 #23674766}70%{box-shadow:0 0 0 6px #23674700}to{box-shadow:0 0 #23674700}}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border-line);z-index:100;-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-sm);background-color:#ffffffe0;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0}.brand-section{align-items:center;gap:1rem;display:flex}.brand-logo-img{object-fit:contain;mix-blend-mode:multiply;height:40px}.brand-info{flex-direction:column;display:flex}.brand-eyebrow{font-family:var(--font-title);letter-spacing:.1em;color:var(--brand-accent);text-transform:uppercase;font-size:.72rem;font-weight:800}.brand-title{color:var(--brand-primary);margin-top:.1rem;font-size:1.15rem;font-weight:900}.topbar-actions{align-items:center;gap:1rem;display:flex}.profile-badge{background-color:var(--brand-accent-light);border:1px solid var(--border-line);color:var(--brand-primary);border-radius:999px;align-items:center;gap:.5rem;padding:.45rem 1rem;font-size:.85rem;font-weight:700;display:inline-flex}.profile-avatar-dot{background-color:var(--brand-success);width:8px;height:8px;box-shadow:0 0 6px var(--brand-success);border-radius:50%}input,select,textarea{border:1px solid var(--border-line);width:100%;color:var(--text-main);font-family:var(--font-sans);background-color:#fff;border-radius:14px;outline:none;padding:.85rem 1.1rem;font-size:.95rem;transition:all .2s}input:focus,select:focus,textarea:focus{border-color:var(--brand-accent);box-shadow:0 0 0 3px #2367471f}button{font-family:var(--font-sans);cursor:pointer;border:1px solid #0000;outline:none;font-size:.92rem;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1)}.btn-primary{background:linear-gradient(135deg, var(--brand-primary), var(--brand-accent));color:#fff;border-radius:14px;padding:.8rem 1.4rem;box-shadow:0 4px 12px #184e3826}.btn-primary:hover{transform:translateY(-1.5px);box-shadow:0 6px 18px #184e3838}.btn-primary:active{transform:translateY(0)}.btn-secondary{background-color:var(--brand-accent-light);color:var(--brand-primary);border:1px solid var(--border-line);border-radius:14px;padding:.8rem 1.4rem}.btn-secondary:hover{background-color:#dbeedc}.btn-danger{background-color:var(--brand-danger-bg);color:var(--brand-danger);border:1px solid #b5343426;border-radius:14px;padding:.8rem 1.4rem}.btn-danger:hover{background-color:#ffdcdc}.btn-ghost{color:var(--text-muted);background-color:#0000;border-radius:14px;padding:.8rem 1.4rem}.btn-ghost:hover{color:var(--brand-primary);background-color:#184e380d}.card-panel{background-color:var(--surface-card);border:1px solid var(--border-line);box-shadow:var(--shadow-sm);border-radius:20px;padding:1.5rem;transition:transform .2s,box-shadow .2s}.card-panel:hover{box-shadow:var(--shadow-md)}.shell-body{flex:1;display:flex}.sidebar{border-right:1px solid var(--border-line);-webkit-backdrop-filter:blur(10px);background-color:#fff9;flex-direction:column;gap:1.25rem;width:250px;padding:1.5rem 1rem;display:flex}.sidebar-nav{flex-direction:column;gap:.4rem;display:flex}.sidebar-item{color:var(--text-muted);text-align:left;background:0 0;border-radius:14px;align-items:center;gap:.8rem;width:100%;padding:.85rem 1rem;font-weight:700;transition:all .2s;display:flex}.sidebar-item:hover{color:var(--brand-accent);background-color:#2367470d}.sidebar-item.active{background-color:var(--brand-primary);color:#fff;box-shadow:0 4px 12px #184e382e}.main-content{flex:1;padding:2rem;animation:.35s cubic-bezier(.16,1,.3,1) forwards slideUp;overflow-y:auto}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;display:grid}.badge{border-radius:999px;align-items:center;padding:.35rem .75rem;font-size:.75rem;font-weight:800;display:inline-flex}.badge-success{background-color:var(--brand-success-bg);color:var(--brand-success)}.badge-warning{background-color:var(--brand-warning-bg);color:var(--brand-warning)}.badge-danger{background-color:var(--brand-danger-bg);color:var(--brand-danger)}.badge-info{background-color:var(--brand-info-bg);color:var(--brand-info)}@media (width<=1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.shell-body{flex-direction:column}.sidebar{border-right:0;border-bottom:1px solid var(--border-line);width:100%;padding:1rem}.sidebar-nav{flex-direction:row;padding-bottom:.5rem;overflow-x:auto}.sidebar-item{white-space:nowrap;padding:.7rem .9rem;font-size:.85rem}.topbar{flex-direction:column;align-items:stretch;gap:1rem;padding:1rem}.topbar-actions{justify-content:space-between}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.main-content{padding:1.25rem}}@keyframes toastSlideIn{0%{opacity:0;transform:translate(120%)translateY(0)}to{opacity:1;transform:translate(0)translateY(0)}}.toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:.75rem;width:calc(100vw - 3rem);max-width:420px;display:flex;position:fixed;top:1.5rem;right:1.5rem}.toast-item{pointer-events:auto;border-left:5px solid var(--brand-primary);-webkit-backdrop-filter:blur(12px);border-top:1px solid #fff9;border-right:1px solid var(--border-line);border-bottom:1px solid var(--border-line);background:#fffffff5;border-radius:16px;align-items:flex-start;gap:.85rem;padding:1.1rem;transition:all .25s;animation:.35s cubic-bezier(.16,1,.3,1) forwards toastSlideIn;display:flex;box-shadow:0 10px 25px -5px #184e381f,0 8px 16px -6px #184e3814}.toast-item.toast-planner{border-left-color:var(--brand-primary)}.toast-item.toast-attendance{border-left-color:var(--brand-warning)}.toast-item.toast-request{border-left-color:var(--brand-info)}.toast-item.toast-rental{border-left-color:var(--brand-success)}.toast-item.toast-call{border-left-color:var(--brand-danger);background:#fff2f2fa;animation:.35s cubic-bezier(.16,1,.3,1) forwards toastSlideIn,1.8s infinite pulseGlow}.toast-icon{flex-shrink:0;margin-top:.1rem;font-size:1.4rem}.toast-content{flex:1}.toast-title{color:var(--text-main);margin-bottom:.2rem;font-size:.92rem;font-weight:800}.toast-message{color:var(--text-muted);font-size:.82rem;line-height:1.45}.toast-close{color:var(--text-muted);cursor:pointer;opacity:.5;background:0 0;border:none;align-self:flex-start;margin-top:-.2rem;padding:0 .1rem;font-size:1.2rem;transition:opacity .2s}.toast-close:hover{opacity:1}@media print{@page{size:A4;margin:0}body,html,#root{color:#000!important;background-color:#fff!important;min-height:auto!important}.topbar,.sidebar,.no-print,aside,nav,button,form{display:none!important}.main-content{margin:0!important;padding:0!important;overflow:visible!important}.card-panel{box-shadow:none!important;color:#000!important;background:#fff!important;border:1px solid #000!important;border-radius:0!important;padding:1.5rem!important}.print-full-width{color:#000!important;background:#fff!important;border:1px solid #000!important;grid-template-columns:1fr!important;width:100%!important}.print-no-border{border:0!important;border-bottom:1px solid #ccc!important}.print-no-shadow{box-shadow:none!important}.card-panel div{color:#000!important}body *{visibility:hidden}#print-section,#print-section *{visibility:visible}#print-section{width:100%;margin:0;padding:0;position:absolute;top:0;left:0;color:#000!important;box-shadow:none!important;background:#fff!important}}.hub-port-slot{position:relative}.hub-port-slot:hover{background-color:#2d3748!important;border-color:#48bb78!important}.hub-port-slot:hover .hub-tooltip{animation:.18s cubic-bezier(.16,1,.3,1) forwards hubTooltipFadeIn;display:block!important}@keyframes hubTooltipFadeIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.table-row-hover:hover{cursor:pointer;background-color:var(--brand-accent-light)!important}.subnet-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0000001a!important}@keyframes fallAndRotate{0%{opacity:1;transform:translateY(0)rotate(0)}80%{opacity:.8}to{opacity:0;transform:translateY(105vh)rotate(720deg)}}.firework-particle{pointer-events:none}@keyframes spinSiren{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes sirenWobble{0%{transform:rotate(-4deg)scale(.98)}to{transform:rotate(4deg)scale(1.02)}}@keyframes badgePulse{0%{transform:scale(.95);box-shadow:0 0 #ef4444b3}70%{transform:scale(1.05);box-shadow:0 0 0 6px #ef444400}to{transform:scale(.95);box-shadow:0 0 #ef444400}}.sidebar-badge{color:#fff;background:linear-gradient(135deg,#ff4d4d,#f30000);border-radius:9999px;justify-content:center;align-items:center;margin-left:auto;padding:2px 7px;font-size:.65rem;font-weight:800;line-height:1.2;animation:2s ease-in-out infinite badgePulse;display:inline-flex;box-shadow:0 2px 8px #f3000066}
