:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}*,:before,:after{box-sizing:border-box}html{scrollbar-gutter:stable;-webkit-text-size-adjust:100%;max-width:100%;overflow-x:hidden}body{-webkit-overflow-scrolling:touch;overscroll-behavior-x:none;touch-action:pan-y pinch-zoom;max-width:100%;margin:0;overflow-x:hidden}@media (width<=768px){html{scrollbar-width:none}html::-webkit-scrollbar{width:0;height:0}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:100%;max-width:1126px;min-height:100dvh;margin:0 auto;display:flex}@media (width<=1126px){#root{border-inline:0}}img,video,canvas,svg{max-width:100%;height:auto}input,select,textarea,button{max-width:100%}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.language-switcher{flex-direction:column;align-items:stretch;gap:6px;display:flex}.language-switcher-label{color:#4b5563;font-size:12px;font-weight:600}.language-switcher-select{color:#111827;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;outline:none;padding:8px 10px;font-size:13px}.language-switcher-select:focus{background:#fff;border-color:#3b82f6e6;box-shadow:0 0 0 3px #bfdbfeb3}.language-switcher--compact{flex-direction:row;flex-shrink:0;align-items:center;gap:4px}.language-switcher--compact .language-switcher-label{color:#64748b;white-space:nowrap;font-size:10px;font-weight:600}.language-switcher--compact .language-switcher-select{border-radius:8px;min-width:0;max-width:108px;padding:4px 6px;font-size:11px}.app-route-fallback{text-align:center;color:#6b7280;padding:2rem 1rem;font-size:.95rem}@keyframes float-up{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.salary-page{width:100%;max-width:none;padding:56px 0 calc(96px + env(safe-area-inset-bottom,0px));color:#111827;-webkit-text-size-adjust:100%;background:#fdfaf3;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}.top-menu{z-index:40;box-sizing:border-box;background:#fff;padding:0 14px;position:fixed;top:0;left:0;right:0;box-shadow:0 4px 12px #94a3b880}.user-top-fixed-bar{z-index:42;box-sizing:border-box;background:#fff;justify-content:space-between;align-items:center;min-height:clamp(40px,11vw,46px);padding:0 clamp(6px,2.4vw,10px);display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 4px 12px #94a3b873}.user-top-fixed-main{align-items:center;gap:clamp(3px,1.4vw,6px);min-width:0;display:inline-flex}.user-top-fixed-end{flex-shrink:0;align-items:center;gap:clamp(3px,1.4vw,6px);display:inline-flex}.user-top-lang{margin:0}.user-top-fixed-title{letter-spacing:-.03em;color:#111827;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:clamp(10px,3.1vw,13px);font-weight:700;overflow:hidden}.user-top-fixed-chip{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;flex-shrink:0;padding:clamp(1px,.6vw,2px) clamp(4px,1.8vw,7px);font-size:clamp(8px,2.2vw,10px);font-weight:600;line-height:1.2}.user-top-fixed-chip-point{color:#1e3a8a;background:#eff6ff;border-color:#bfdbfe}.user-top-fixed-action{cursor:pointer;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:clamp(8px,2.2vw,10px);flex-shrink:0;justify-content:center;align-items:center;width:clamp(22px,7.5vw,28px);height:clamp(22px,7.5vw,28px);font-size:clamp(11px,3.6vw,14px);display:inline-flex}.bottom-menu{z-index:42;padding:clamp(6px, 1.7vw, 8px) clamp(6px, 2.2vw, 10px) calc(clamp(6px, 1.7vw, 8px) + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:1;background:#fffffff2;border-top:1px solid #e2e8f0f2;transition:transform .22s,opacity .22s;position:fixed;bottom:0;left:0;right:0;transform:translateY(0);box-shadow:0 -6px 18px #94a3b82e}.bottom-menu-hidden{transform:translateY(calc(100% + env(safe-area-inset-bottom,0px)));opacity:.96;pointer-events:none}.bottom-menu-tabs{flex-wrap:nowrap;justify-content:center;gap:clamp(3px,1.2vw,6px);display:flex}.top-menu-inner{flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:4px;min-height:44px;display:flex}.top-menu-content{flex:auto;justify-content:flex-start;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.top-menu-open .top-menu-content{overflow:visible}.top-menu-title{letter-spacing:-.03em;opacity:1;white-space:nowrap;cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-size:13px;font-weight:600;animation:.18s ease-out top-menu-fade-in;transform:translateY(0)}.top-menu-tabs{flex-wrap:wrap;flex:0 auto;justify-content:flex-start;gap:4px;animation:.18s ease-out top-menu-fade-in;display:flex}.salary-tab{aspect-ratio:1;color:#334155;cursor:pointer;white-space:normal;background:#fff;border:1px solid #dbe2ea;border-radius:clamp(9px,2.6vw,12px);flex-direction:column;justify-content:center;align-items:center;gap:clamp(2px,1.1vw,5px);width:clamp(50px,15.5vw,64px);padding:clamp(4px,1.6vw,7px) clamp(3px,1.3vw,5px);font-size:clamp(9px,2.4vw,11px);font-weight:500;transition:box-shadow .15s,background .15s,color .15s,transform .1s;display:inline-flex;position:relative}.salary-tab-active{color:#111827;border-color:#93c5fd;box-shadow:inset 0 0 0 1px #3b82f659}.salary-tab-icon{font-size:clamp(14px,4.1vw,18px);line-height:1}.salary-tab-label{line-height:1.1}.salary-tab-badge{color:#fff;text-align:center;pointer-events:none;background:#ef4444;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:800;line-height:16px;position:absolute;top:clamp(2px,.8vw,4px);right:clamp(2px,.8vw,4px);box-shadow:0 0 0 2px #fff}.salary-tab-tone-notice .salary-tab-icon{color:#ef4444}.salary-tab-tone-attendance .salary-tab-icon{color:#2563eb}.salary-tab-tone-payroll .salary-tab-icon{color:#16a34a}.salary-tab-tone-point .salary-tab-icon{color:#f59e0b}.salary-tab-tone-mypage .salary-tab-icon{color:#6366f1}.salary-tab-secret-mystic{isolation:isolate;color:#faf5ff;background-color:#0000;background-image:linear-gradient(155deg,#1a0b2e 0%,#312e81 45%,#581c87 100%),linear-gradient(130deg,#a78bfa,#fbbf24,#e879f9,#fde68a,#8b5cf6,#c4b5fd);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:auto,auto;background-attachment:scroll,scroll;background-origin:border-box;background-clip:padding-box,border-box;border:1px solid #0000;font-weight:650;animation:2.8s ease-in-out infinite secret-tab-mystic-pulse;position:relative;box-shadow:0 0 18px #8b5cf68c,0 0 36px #fbbf242e,inset 0 1px #ffffff24}.salary-tab-secret-mystic:after{content:"";opacity:.65;pointer-events:none;z-index:-1;background:radial-gradient(80% 60% at 40% 0,#fde04773,#0000 60%);border-radius:14px;animation:3.2s ease-in-out infinite alternate secret-tab-aura;position:absolute;inset:-3px}@keyframes secret-tab-mystic-pulse{0%,to{box-shadow:0 0 14px #8b5cf67a,0 0 30px #fbbf241f,inset 0 1px #ffffff1a}50%{box-shadow:0 0 24px #a78bfab8,0 0 44px #fcd34d52,inset 0 1px #fff3}}@keyframes secret-tab-aura{0%{opacity:.35;transform:scale(.98)}to{opacity:.85;transform:scale(1.03)}}.salary-tab-secret-mystic.salary-tab-active{color:#fff;border-color:#0000;animation:2s ease-in-out infinite secret-tab-mystic-pulse-active;box-shadow:0 0 0 2px #fde047e6,0 0 28px #8b5cf6e6,0 0 52px #fbbf2459,inset 0 1px #ffffff38}@keyframes secret-tab-mystic-pulse-active{0%,to{filter:brightness(1.02)}50%{filter:brightness(1.12)}}.salary-tab-icon-secret{filter:drop-shadow(0 0 5px #fde047f2);animation:2.1s ease-in-out infinite secret-tab-icon-sparkle;display:inline-block}@keyframes secret-tab-icon-sparkle{0%,to{transform:scale(1)rotate(-3deg)}50%{transform:scale(1.1)rotate(3deg)}}.salary-tab-label-secret{text-shadow:0 0 10px #c084fce6,0 0 18px #fbbf2459;letter-spacing:-.05em}@media (prefers-reduced-motion:reduce){.salary-tab-secret-mystic,.salary-tab-secret-mystic:after,.salary-tab-icon-secret{animation:none}}.menu-icon-button{cursor:pointer;color:#4b5563;background:0 0;border:none;padding:0 6px;font-size:18px}@keyframes top-menu-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.salary-header{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;margin-bottom:24px;display:flex}.salary-header-main h1,.salary-header-main h2{margin:2px 0 0}.salary-title{letter-spacing:-.03em;font-size:18px;font-weight:600;line-height:1.1}.salary-header-month{align-items:center;gap:8px;margin-top:2px;display:inline-flex}.month-label{color:#111827;font-size:15px;font-weight:600}.month-nav{cursor:pointer;color:#4b5563;background:linear-gradient(135deg,#f9fafb,#e5e7eb);border:1px solid #94a3b859;border-radius:8px;justify-content:center;align-items:center;min-width:30px;height:30px;font-size:14px;transition:background .18s ease-out,box-shadow .18s ease-out,transform .12s ease-out;display:flex;box-shadow:0 1px 2px #94a3b859,0 0 0 .5px #d1d5db99}.month-nav:hover{background:linear-gradient(135deg,#e5e7eb,#d1d5db);transform:translateY(-.5px);box-shadow:0 2px 4px #94a3b866,0 0 0 .5px #9ca3afcc}.month-nav-today{color:#1d4ed8;background:linear-gradient(135deg,#e0f2fe,#bfdbfe);border-color:#3b82f680;padding:0 14px;font-size:13px;box-shadow:0 1px 3px #94bfff73,0 0 0 .5px #93c5fdcc}.attendance-header-month{justify-content:center;margin:0 auto 8px}.salary-subtitle{letter-spacing:.16em;text-transform:uppercase;color:#9ca3af;margin-bottom:8px;font-size:12px}.salary-header h1{letter-spacing:-.03em;color:#111827;margin:0 0 10px;font-size:30px;font-weight:700}.salary-description{color:#6b7280;margin:0;font-size:14px}.salary-legend{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.legend-item{background:#fff;border:1px solid #e5e7eb;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;display:inline-flex;box-shadow:0 1px 2px #0f172a14}.legend-item:before{content:"";border-radius:999px;width:8px;height:8px}.legend-paid:before{background:#22c55e}.legend-upcoming:before{background:#3b82f6}.legend-late:before{background:#f97316}@media (width<=768px){.salary-page{padding:56px 0 calc(96px + env(safe-area-inset-bottom,0px))}.summary-grid{grid-template-columns:1fr}}@media (width<=480px){.top-menu{padding:8px}.bottom-menu{padding-inline:clamp(4px,1.5vw,8px)}.top-menu-inner{gap:8px}.top-menu-content{justify-content:flex-start}.top-menu-title{font-size:12px}.top-menu-tabs .salary-tab{padding:4px 8px;font-size:11px}}.login-page{box-sizing:border-box;background:radial-gradient(circle at top,#fef9c3 0,#fdfaf3 42%,#f3f4f6 100%);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;display:flex}.login-card{box-sizing:border-box;background:#fff;border-radius:18px;width:100%;max-width:380px;padding:22px 20px 18px;box-shadow:0 18px 45px #0f172a40,0 0 0 1px #d1d5dbe6}.login-header{text-align:left;margin-bottom:18px}.login-lang{margin-top:12px}.login-subtitle{letter-spacing:.18em;text-transform:uppercase;color:#9ca3af;margin:0 0 4px;font-size:11px}.login-title{letter-spacing:-.06em;color:#111827;margin:0;font-size:22px;font-weight:700}.login-form{flex-direction:column;gap:10px;display:flex}.login-field{flex-direction:column;gap:4px;display:flex}.login-field label{color:#4b5563;font-size:12px;font-weight:500}.login-field input{color:#111827;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;outline:none;padding:8px 10px;font-size:13px;transition:border-color .16s ease-out,box-shadow .16s ease-out,background .16s ease-out}.login-field input::placeholder{color:#9ca3af}.login-field input:focus{background:#fff;border-color:#3b82f6e6;box-shadow:0 0 0 1px #93c5fde6,0 0 0 4px #bfdbfeb3}.login-remember{color:#4b5563;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-top:2px;font-size:12px;font-weight:500;display:flex}.login-remember input{accent-color:#2563eb;cursor:pointer;width:16px;height:16px}.login-button{letter-spacing:-.03em;cursor:pointer;color:#f9fafb;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:999px;width:100%;margin-top:6px;padding:10px 0;font-size:14px;font-weight:600;transition:transform .1s ease-out,box-shadow .1s ease-out,filter .1s ease-out;box-shadow:0 12px 25px #2563eb73,0 0 0 1px #bfdbfee6}.login-button:hover{filter:brightness(1.03);transform:translateY(-1px);box-shadow:0 14px 30px #2563eb80,0 0 0 1px #bfdbfe}.login-button:active{transform:translateY(0);box-shadow:0 8px 18px #2563eb73,0 0 0 1px #bfdbfee6}.login-footer{border-top:1px dashed #e5e7eb;margin-top:16px;padding-top:14px}.login-register-button{letter-spacing:-.06em;color:#1d4ed8;text-align:center;cursor:pointer;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;width:100%;padding:12px 14px;font-size:16px;font-weight:700;transition:background .15s ease-out,border-color .15s ease-out,transform .1s ease-out;display:block}.login-register-button:hover{background:#eff6ff;border-color:#bfdbfe}.login-register-button:active{transform:scale(.99)}.login-error{color:#b91c1c;margin:2px 0 0;font-size:11px}@media (width<=480px){.login-card{border-radius:16px;padding:20px 16px 16px}.login-title{font-size:20px}}.signup-page{justify-content:center;width:100%;padding:32px 0 48px;display:flex}.signup-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:min(520px,95vw);padding:18px;box-shadow:0 10px 25px #94a3b826}.signup-header{text-align:left}.signup-subtitle{color:#6b7280;letter-spacing:.16em;margin:0;font-size:12px;font-weight:700}.signup-title{color:#111827;margin:6px 0 0;font-size:18px;font-weight:800}.signup-form-stack{flex-direction:column;gap:10px;display:flex}.signup-row{align-items:start;gap:10px;min-width:0;display:grid}.signup-row--name{grid-template-columns:3fr 7fr}.signup-row--id-nation{grid-template-columns:6fr 4fr}.signup-row--pw{grid-template-columns:5fr 5fr}.signup-row--visa-entry{grid-template-columns:4fr 6fr}.signup-row--bank-holder{grid-template-columns:6fr 4fr}.signup-lang-field{width:100%}.signup-lang-field .language-switcher-select{box-sizing:border-box;width:100%;max-width:100%}.signup-description{color:#6b7280;margin:10px 0 0;font-size:13px}.signup-form{flex-direction:column;gap:12px;margin-top:14px;display:flex}.signup-field{flex-direction:column;gap:6px;min-width:0;display:flex}.signup-field label{color:#6b7280;font-size:12px}.signup-field input[type=text],.signup-field input[type=tel],.signup-field input[type=password],.signup-field input[type=date],.signup-field input[type=password],.signup-field select,.signup-field input[type=date],.signup-bank-select{box-sizing:border-box;color:#111827;-webkit-text-fill-color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;max-width:100%;height:34px;padding:0 10px;font-size:13px}.signup-field input::placeholder{color:#9ca3af;-webkit-text-fill-color:#9ca3af}.signup-field input:disabled{color:#9ca3af;cursor:not-allowed;background:#f3f4f6}.signup-divider{background:#e5e7eb;height:1px;margin:2px 0}.signup-file-selected{color:#64748b;margin:0;font-size:11px}.signup-actions{justify-content:flex-end;gap:10px;display:flex}.signup-cancel{cursor:pointer;color:#374151;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:9px 14px;font-size:13px}.signup-submit{cursor:pointer;color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700}.signup-submit:disabled{opacity:.6;cursor:not-allowed}.signup-error{color:#b91c1c;margin:0;font-size:12px;font-weight:600}.signup-hint{color:#9ca3af;margin:0;font-size:11px;line-height:1.35}.signup-photo-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;display:grid}.signup-photo-item{flex-direction:column;gap:6px;min-width:0;display:flex}.signup-photo-label{color:#64748b;text-align:center;margin:0;font-size:11px;font-weight:600}.signup-photo-preview{aspect-ratio:3/4;background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.signup-photo-preview img{object-fit:cover;width:100%;height:100%;display:block}.signup-photo-preview span{color:#94a3b8;text-align:center;padding:0 6px;font-size:10px}.signup-photo-input-hidden{display:none}.signup-photo-pick-button{color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e5e7eb;border-radius:10px;justify-content:center;align-items:center;height:28px;font-size:12px;font-weight:700;display:inline-flex}.signup-photo-item .signup-photo-pick-button{width:100%}.signup-photo-item input[type=file]{height:32px;font-size:11px}@media (width<=480px){.signup-photo-grid{grid-template-columns:repeat(2,1fr)}}.app-hydration-gate{z-index:2147483000;font:inherit;color:var(--text);background:var(--bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1.5rem;display:flex;position:fixed;inset:0}.app-hydration-gate__title{color:var(--text-h);margin:0;font-size:1.05rem;font-weight:600}.app-hydration-gate__hint{opacity:.85;max-width:20rem;margin:0;font-size:.9rem}.app-hydration-gate__spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:2.25rem;height:2.25rem;animation:.7s linear infinite app-hydration-spin}@keyframes app-hydration-spin{to{transform:rotate(360deg)}}.push-permission-banner{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:9000;color:#f8fafc;background:#1e1b4b;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 12px;max-width:520px;margin:0 auto;padding:12px 14px;display:flex;position:fixed;box-shadow:0 8px 24px #0f172a59}@media (width>=544px){.push-permission-banner{width:min(520px,100% - 24px);left:50%;right:auto;transform:translate(-50%)}}.push-permission-banner__text{flex:200px;min-width:0}.push-permission-banner__text strong{margin-bottom:4px;font-size:14px;display:block}.push-permission-banner__text p{color:#e2e8f0;margin:0;font-size:12px;line-height:1.45}.push-permission-banner__ios{color:#fde68a!important;margin-top:6px!important}.push-permission-banner__actions{flex-shrink:0;gap:8px;display:flex}.push-permission-banner__allow{color:#1e1b4b;cursor:pointer;background:#c4b5fd;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700}.push-permission-banner__allow:disabled{opacity:.6;cursor:wait}.push-permission-banner__later{color:#cbd5e1;cursor:pointer;background:0 0;border:1px solid #475569;border-radius:8px;padding:8px 12px;font-size:13px}.push-permission-banner__note{color:#cbd5e1!important;margin-top:6px!important;font-size:11px!important}.push-permission-hint{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:9000;color:#92400e;background:#fef3c7;border-radius:10px;max-width:520px;margin:0 auto;padding:10px 12px;font-size:12px;line-height:1.45;position:fixed;box-shadow:0 4px 16px #0f172a26}@media (width>=544px){.push-permission-hint{width:min(520px,100% - 24px);left:50%;right:auto;transform:translate(-50%)}}
