:root{--primary: #004B87;--dark: #56585B;--light-bg-1: #B9C8DC;--light-bg-2: #DCE1E6;--fs-xs: 10px;--fs-sm: 12px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--shadow-sm: 0 1px 3px rgba(0,0,0,.05), 0 4px 16px rgba(0,0,0,.04);--shadow-md: 0 4px 20px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.04);--shadow-lg: 0 12px 40px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{overflow-y:scroll}body{margin:0;min-width:320px;min-height:100vh;background:#d6e4f4}@keyframes breathingGradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .45s cubic-bezier(.2,.8,.2,1) both}@keyframes warmBreath{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes coolBreath{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.action-warm{background:linear-gradient(-45deg,#ffd0be,#ffbcab,#ffe5d8,#ffc5b0);background-size:400% 400%;animation:warmBreath 4s ease infinite}.action-cool{background:linear-gradient(-45deg,#c2f0ea,#b5ede6,#d8f7f3,#b0e8e0);background-size:400% 400%;animation:coolBreath 4s ease infinite}@keyframes logFadeDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.log-s1{animation:logFadeDown .28s cubic-bezier(.25,1,.5,1) both}.log-s2{animation:logFadeDown .28s cubic-bezier(.25,1,.5,1) .07s both}.log-s3{animation:logFadeDown .28s cubic-bezier(.25,1,.5,1) .14s both}.log-s4{animation:logFadeDown .28s cubic-bezier(.25,1,.5,1) .21s both}@keyframes absenceAccordion{0%{opacity:0;transform:translateY(-6px);max-height:0}to{opacity:1;transform:translateY(0);max-height:520px}}.absence-detail-panel{overflow:hidden;animation:absenceAccordion .32s cubic-bezier(.25,1,.5,1) both}.log-input{transition:box-shadow .25s ease,background .25s ease!important}.log-input:focus{box-shadow:0 0 0 3px #6496ff2e!important;background:#ffffffeb!important}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalContentIn{0%{opacity:0;transform:scale(.92) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-overlay{animation:modalOverlayIn .2s ease both}.modal-content{animation:modalContentIn .28s cubic-bezier(.25,1,.5,1) both}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:#94a3b8}button{font-family:inherit;transition:transform .4s cubic-bezier(.25,1,.5,1),box-shadow .4s cubic-bezier(.25,1,.5,1),filter .2s ease,background .2s ease}button:hover{filter:brightness(.93)}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input:not([type=checkbox]):not([type=radio]):focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:0;border-color:var(--primary)!important}.responsive-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%}.stat-grid-fixed{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:24px}.app-bg{background:linear-gradient(-45deg,#cfdff5,#d8eaf8,#def,#c8d9ef);background-size:400% 400%;animation:breathingGradient 14s ease infinite}.app-main{flex:1;overflow:auto;padding:22px 26px;position:relative;background:transparent}.glass-card{background:#ffffff8c;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.65);box-shadow:0 8px 32px #8ca0c826,0 1px 4px #0000000a}.app-main .card-base{background:#ffffff8c;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.65)!important;box-shadow:0 8px 32px #8ca0c826,0 1px 4px #0000000a!important}@media(max-width:767px){.app-main{padding:64px 14px 28px}.dash-stats{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}.dash-grid{grid-template-columns:1fr!important}.section-header{flex-direction:column!important;align-items:flex-start!important;gap:10px!important}.stat-card-value{font-size:20px!important}}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
