/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.grid{display:grid}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--ink:#1a2b3c;--muted:#6b7c8a;--line:#e3ebf2;--soft:#f4f8fc;--sky:#3b9eff;--sky-deep:#1f7ae0;--sky-pale:#e8f3ff;--brand:#1f7ae0;--brand-mid:#3b9eff;--brand-pale:#e8f3ff;--sun:#ffc53d;--sun-pale:#fff6d9;--ok:#2f9e7a;--ok-pale:#e4f7f0;--warn:#d4891a;--warn-pale:#fff3dc;--danger:#d45454;--danger-pale:#ffe8e8;--leave:#4a7fb5;--leave-pale:#e7f0fa;--extra:#3b8ec9;--extra-pale:#e5f3fc;--rest:#7a8794;--rest-pale:#eef1f4;--surface:#fff;--page:#f3f7fb;--font-sans:"DM Sans", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}*,:before,:after{box-shadow:none!important}html,body{background-color:var(--page);min-height:100%;color:var(--ink);font-family:var(--font-sans);-webkit-text-size-adjust:100%;margin:0;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}@keyframes geo-drift{0%,to{transform:translate(0)}50%{transform:translate(12px,-16px)}}@keyframes geo-drift-alt{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(-10px,14px)rotate(8deg)}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.35)}}@keyframes step-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.anim-fade-up{animation:.45s both fade-up}.eyebrow{color:var(--sky-deep);letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:700}.eyebrow.light{color:#ffffffd1}.site-logo{color:var(--ink);letter-spacing:.02em;font-size:22px;font-weight:700;line-height:1.2;display:inline-block}.site-logo.centered{text-align:center;color:var(--sky-deep);margin:0 auto 20px;font-size:26px;display:block}.site-logo.light{color:#fff;font-size:28px}.login-shell{background:#fff;grid-template-columns:minmax(400px,1.45fr) minmax(300px,.75fr);min-height:100vh;display:grid}.login-visual{color:var(--login-visual-fg,#1f2a28);background:var(--login-visual-bg,#fff);flex-direction:column;justify-content:space-between;gap:16px;padding:40px 36px 0;display:flex;position:relative;overflow:hidden}.login-visual:before,.login-visual:after{content:none}.login-visual-inner{z-index:2;max-width:360px;position:relative}.login-visual-inner .site-logo.light{color:var(--login-visual-fg,#1a2e2a);margin-bottom:14px;display:block}.login-hero-title{color:var(--login-visual-fg,#152925);letter-spacing:-.03em;margin:0 0 8px;font-size:32px;font-weight:800;line-height:1.2}.login-hero-text,.login-visual p{color:var(--login-visual-muted,#1a2e2ab8);letter-spacing:-.01em;max-width:16em;margin:0;font-size:16px;font-weight:600;line-height:1.5}.login-characters-wrap{z-index:2;flex:1;justify-content:center;align-items:flex-end;min-height:320px;display:flex;position:relative;overflow:hidden}.cc-characters{width:min(480px,100%);height:360px;margin:0 auto;position:relative}.cc-char{transform-origin:bottom;transition:transform .7s ease-in-out,height .7s ease-in-out;position:absolute;bottom:0}.cc-char-purple{z-index:1;background:#6c3ff5;border-radius:10px 10px 0 0;width:170px;height:370px;left:60px}.cc-char-black{z-index:2;background:#2d2d2d;border-radius:8px 8px 0 0;width:115px;height:290px;left:220px}.cc-char-orange{z-index:3;background:#ff9b6b;border-radius:115px 115px 0 0;width:230px;height:190px;left:0}.cc-char-yellow{z-index:4;background:#e8d754;border-radius:68px 68px 0 0;width:135px;height:215px;left:290px}.cc-eyes{gap:10px;transition:left .7s ease-in-out,top .7s ease-in-out;display:flex;position:absolute}.cc-eyeball{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:height .15s;display:flex;overflow:hidden}.cc-pupil{border-radius:50%;flex-shrink:0;transition:transform .1s ease-out}.cc-yellow-mouth{background:#2d2d2d;border-radius:2px;width:50px;height:4px;transition:left .7s ease-in-out,top .7s ease-in-out,transform .7s ease-in-out;position:absolute}.cc-orange-mouth{opacity:0;border:3px solid #2d2d2d;border-top:none;border-radius:0 0 14px 14px;width:28px;height:14px;transition:opacity .7s ease-in-out,left .7s ease-in-out,top .7s ease-in-out;position:absolute}.cc-orange-mouth.is-visible{opacity:1}@keyframes cc-shake-head{0%,to{translate:0}10%{translate:-9px}20%{translate:7px}30%{translate:-6px}40%{translate:5px}50%{translate:-4px}60%{translate:3px}70%{translate:-2px}80%{translate:1px}90%{translate:-.5px}}.cc-shake{animation:.8s cubic-bezier(.36,.07,.19,.97) both cc-shake-head}.login-form-side{background:#fff;place-items:center;padding:40px 24px;display:grid}.login-form-card{text-align:left;width:min(340px,100%)}.login-form-card h1{letter-spacing:-.02em;color:var(--ink);text-align:left;margin:0 0 20px;font-size:28px;font-weight:750}.login-form-card .login-description{color:var(--muted);letter-spacing:.04em;text-align:left;margin:-10px 0 20px;font-size:14px;font-weight:600}.login-form-card .field-label{text-align:left;color:var(--ink);gap:8px;margin-bottom:16px;font-size:13px;font-weight:700;display:grid}.login-form-card .field-label-quiet{gap:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-form-card .field-label>input{border:1px solid var(--line);width:100%;height:52px;color:var(--ink);background:#fff;border-radius:10px;outline:none;padding:0 16px;font-size:17px}.login-form-card .field-label>input:focus{border-color:#6c3ff5}.login-form-card .field-label>input::placeholder{color:#9aacbf;font-weight:500}.login-form-card .code-input{text-align:center;letter-spacing:.42em;padding-left:22px;font-size:24px;font-weight:700}.login-form-card .query-action-btn{margin-top:4px}.login-form-card .text-button{margin-top:14px}.login-center{background:var(--page);place-items:center;min-height:100vh;padding:48px 20px;display:grid;position:relative}.query-shell{overflow:hidden}.login-panel{text-align:center;z-index:1;border:1px solid var(--line);background:#fff;border-radius:12px;width:min(360px,100%);padding:28px 24px;position:relative}.login-panel h1,.login-panel h2{margin:0 0 8px;font-size:24px;font-weight:700}.login-panel .field-label,.auth-card-flat label{text-align:left}.admin-entry{color:var(--muted);font-size:13px;font-weight:600;position:absolute;top:24px;right:24px}.login-description{color:var(--muted);margin:0 0 28px;font-size:14px;line-height:1.6}.auth-card-flat{text-align:left;width:min(400px,100%)}.auth-card-flat .site-logo.centered{text-align:center}.auth-card-body h2{margin:0 0 8px;font-size:24px}.auth-card-body label{color:var(--ink);gap:7px;margin-top:15px;font-size:12px;font-weight:700;display:grid}.auth-card-body label input,.auth-card-body .secret-input input{border:1px solid var(--line);background:#fff;border-radius:8px;outline:none;width:100%;height:44px;padding:0 14px}.auth-card-body .primary-button,.auth-card-flat .primary-button,.admin-login-center .primary-button{text-align:center;justify-content:center;align-items:center;width:100%;height:48px;margin-top:20px;padding:2px 16px 0;line-height:1.2;display:flex}.auth-loading{text-align:center;justify-items:center;gap:10px;display:grid}.field-label{gap:8px;margin-bottom:16px;font-size:13px;font-weight:700;display:grid}.field-label>input,.field-label>select,.form-card input,.form-card select,.auth-card label input,.settings-fields input{border:1px solid var(--line);background:#fff;border-radius:8px;outline:none;width:100%;height:48px;padding:0 14px}.phone-field{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;height:52px;display:flex;overflow:hidden}.phone-field:focus-within,.field-label>input:focus,.form-card input:focus,.auth-card label input:focus,.settings-fields input:focus{border-color:var(--sky);outline:2px solid var(--sky-pale)}.phone-field span{border-right:1px solid var(--line);color:var(--muted);background:var(--soft);padding:0 14px}.phone-field input{border:0;outline:0;flex:1;min-width:0;padding:0 14px;font-size:17px}.code-input{text-align:center;letter-spacing:.35em;font-size:22px}.primary-button{background:var(--sky);color:#fff;text-align:center;border:0;border-radius:8px;justify-content:center;align-items:center;width:100%;height:48px;min-height:48px;padding:2px 16px 0;font-size:16px;font-weight:700;line-height:1.2;transition:background .15s,transform .15s;display:flex}.primary-button:hover{background:var(--sky-deep)}.primary-button:active{transform:translateY(1px)}.primary-button:disabled{opacity:.45;cursor:not-allowed;transform:none}.text-button{color:var(--sky-deep);background:0 0;border:0;margin:14px auto 0;font-weight:600;display:block}@keyframes query-blue-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes query-blue-glow{0%,to{filter:brightness()}50%{filter:brightness(1.08)}}@keyframes query-shine{0%{transform:translate(-140%)skew(-12deg)}to{transform:translate(220%)skew(-12deg)}}.query-shell .query-action-btn{background:var(--sky);color:#fff;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;width:100%;height:48px;margin-top:8px;padding:2px 16px 0;font-size:16px;font-weight:700;line-height:1.2;transition:background .15s;display:flex}.query-shell .query-action-btn:hover:not(:disabled){background:var(--sky-deep)}.query-shell .query-action-btn:disabled{cursor:not-allowed;background:#c9d8e8}.query-shell .text-button{width:100%;color:var(--sky-deep);background:0 0;border:0;border-radius:8px;margin-top:14px;padding:8px 12px;font-size:14px;font-weight:600;display:block}.query-shell .text-button:hover{background:var(--sky-pale)}.query-shell .ghost-button{border:1px solid var(--line);color:var(--sky-deep);background:#fff;border-radius:8px;padding:8px 14px;font-weight:700}.query-shell .ghost-button:hover{background:var(--sky-pale);border-color:#c5ddf8}.captcha-mask{z-index:40;background:#1a2b3c52;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.captcha-card{border:1px solid var(--line);background:#fff;border-radius:16px;width:min(340px,100%);padding:18px 18px 14px;animation:.25s both fade-up}.captcha-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.captcha-head strong{color:var(--ink);font-size:16px}.captcha-close{background:var(--soft);width:32px;height:32px;color:var(--muted);border:0;border-radius:8px;font-size:20px;line-height:1}.captcha-close:hover{background:var(--brand-pale,#e8f3ff);color:var(--brand,#1f7ae0)}.captcha-tip{color:var(--muted);margin:0 0 12px;font-size:12px}.captcha-board{border:1px solid var(--line);background:#e8f3ff;border-radius:12px;height:140px;margin:0 auto 14px;position:relative;overflow:hidden}.captcha-bg,.captcha-pattern{background-repeat:no-repeat;background-size:100% 100%;position:absolute;inset:0}.captcha-hole,.captcha-piece{box-sizing:border-box;border-radius:10px;width:44px;height:44px;position:absolute}.captcha-hole{background:#ffffffb8;border:2px dashed #1f7ae073}.captcha-piece{z-index:2;background-color:#3b9eff;background-repeat:no-repeat;border:2px solid #fff}.captcha-piece.ok{border-color:#2f9e7a}.captcha-piece.fail{border-color:#d45454}.captcha-track{border:1px solid var(--line);-webkit-user-select:none;user-select:none;touch-action:none;background:#f3f7fb;border-radius:12px;height:44px;margin:0 auto;position:relative;overflow:hidden}.captcha-track-fill{background:#e8f3ff;position:absolute;top:0;bottom:0;left:0}.captcha-track em{color:var(--muted);pointer-events:none;z-index:1;text-align:center;place-items:center;padding:0 48px;font-size:12px;font-style:normal;font-weight:600;display:grid;position:absolute;inset:0}.captcha-track.ok{border-color:var(--ok)}@supports (color:color-mix(in lab, red, red)){.captcha-track.ok{border-color:color-mix(in srgb, var(--ok) 35%, var(--line))}}.captcha-track.ok,.captcha-track.ok .captcha-track-fill{background:var(--ok-pale)}.captcha-track.ok em{color:var(--ok)}.captcha-track.fail{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.captcha-track.fail{border-color:color-mix(in srgb, var(--danger) 30%, var(--line))}}.captcha-track.fail,.captcha-track.fail .captcha-track-fill{background:var(--danger-pale)}.captcha-track.fail em{color:var(--danger)}.captcha-thumb{color:#fff;cursor:grab;z-index:2;background:#3b9eff;border:0;border-radius:12px;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:0;left:0}.captcha-thumb:disabled{opacity:.55;cursor:not-allowed}.captcha-thumb-arrows{border-top:2px solid #fff;border-right:2px solid #fff;width:14px;height:10px;margin-left:-3px;transform:rotate(45deg)}.captcha-track.dragging .captcha-thumb{cursor:grabbing;background:#1f7ae0}.captcha-track.ok .captcha-thumb{background:var(--ok)}.captcha-track.fail .captcha-thumb{background:var(--danger)}.captcha-actions{justify-content:space-between;margin-top:10px;display:flex}.captcha-card .form-message{margin-top:10px}.form-message,.dev-code{background:var(--danger-pale);color:var(--danger);border-radius:8px;margin:0 0 14px;padding:11px 13px;font-size:13px;animation:.25s both fade-up}.form-message.success,.dev-code{background:var(--ok-pale);color:var(--ok)}.portal-shell{background:var(--page);--ok:#1f7ae0;--ok-pale:#e8f3ff;min-height:100vh;position:relative}.portal-shell .portal-content{z-index:1;position:relative}.portal-header{z-index:40;border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:14px;min-height:64px;padding:10px max(16px,4vw);display:flex;position:relative}.portal-brand{align-items:center;gap:10px;min-width:0;display:flex}.portal-brand-mark{background:var(--sky);color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:16px;font-weight:700;display:grid}.portal-brand-copy{gap:1px;min-width:0;display:grid}.portal-brand-copy .site-logo{font-size:16px;font-weight:700;line-height:1.2}.portal-brand-copy span{color:var(--muted);font-size:12px;font-weight:500}.brand-row .brand-mark{border-radius:8px;width:34px;height:34px;font-size:14px}.portal-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.portal-tools input[type=month]{border:1px solid var(--line);height:36px;color:var(--ink);background:#fff;border-radius:8px;padding:0 10px}.month-picker{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:2px;height:42px;padding:3px;display:inline-flex;position:relative}.month-picker.is-open{border-color:var(--sky-deep)}@supports (color:color-mix(in lab, red, red)){.month-picker.is-open{border-color:color-mix(in srgb, var(--sky-deep) 35%, var(--line))}}.month-nav{width:34px;height:34px;color:var(--sky-deep);background:0 0;border:0;border-radius:9px;place-items:center;display:grid}.month-nav:hover{background:var(--sky-pale)}.month-nav svg{width:16px;height:16px}.month-display{min-width:108px;height:34px;color:var(--ink);cursor:pointer;background:linear-gradient(#f5f9fd,#eaf3fb);border:0;border-radius:9px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.month-display-text{text-align:left;line-height:1.05;display:grid}.month-display-text em{color:var(--muted);font-size:10px;font-style:normal;font-weight:700}.month-display-text strong{font-size:14px;font-weight:800}.month-caret{width:14px;height:14px;color:var(--muted);transition:transform .18s}.month-picker.is-open .month-caret{transform:rotate(180deg)}.month-panel{z-index:30;border:1px solid var(--line);background:#fff;border-radius:16px;width:260px;padding:14px;position:absolute;top:calc(100% + 8px);right:0}.month-panel-year{border-bottom:1px solid var(--line);color:var(--ink);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;font-size:15px;font-weight:800;display:flex}.month-panel-year .month-nav{background:var(--soft)}.month-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.month-grid-item{background:var(--soft);height:40px;color:var(--ink);border:0;border-radius:10px;font-size:13px;font-weight:700;transition:background .15s,color .15s,transform .12s}.month-grid-item:hover{background:var(--sky-pale);color:var(--sky-deep)}.month-grid-item:active{transform:scale(.96)}.month-grid-item.active{color:#fff;background:linear-gradient(145deg,#1f7ae0,#3b9eff)}.month-today{background:var(--soft);width:100%;height:36px;color:var(--sky-deep);border:0;border-radius:10px;margin-top:10px;font-size:12px;font-weight:700}.month-today:hover{background:var(--sky-pale)}.portal-shell .month-picker{border-radius:8px;height:36px;padding:2px}.portal-shell .month-nav{border-radius:6px;width:30px;height:30px}.portal-shell .month-display{background:var(--soft);border-radius:6px;min-width:100px;height:30px}.portal-shell .month-grid-item.active{background:var(--sky)}.portal-shell .month-panel{border-radius:10px}.ghost-button,.secondary-button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:8px 12px;font-weight:600;transition:background .15s,border-color .15s}.ghost-button:hover,.secondary-button:hover{background:var(--sky-pale);border-color:#c5ddf8}.portal-content{width:min(680px,100% - 32px);margin:0 auto;padding:20px 0 72px}.portal-slip{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.portal-slip-head{justify-content:space-between;align-items:start;gap:12px;padding:18px 18px 10px;display:flex}.portal-slip-eyebrow{color:var(--muted);letter-spacing:0;margin:0 0 4px;font-size:12px;font-weight:600}.portal-slip-name{color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;font-size:20px;font-weight:700;line-height:1.25;display:flex}.portal-employee-meta{color:var(--muted);gap:4px;margin-top:8px;font-size:12px;font-weight:500;line-height:1.4;display:grid}.portal-slip-name em{color:var(--muted);font-size:13px;font-style:normal;font-weight:500}.portal-slip-head-meta{justify-items:end;gap:8px;display:grid}.slip-status-pill{white-space:nowrap;background:var(--soft);height:26px;color:var(--muted);border-radius:6px;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.slip-status-pill.is-generated{background:var(--sky-pale);color:var(--sky-deep)}.slip-status-pill.is-notified{color:#2f6fbf;background:#eef4ff}.slip-status-pill.is-confirmed{background:var(--sky-pale);color:var(--sky-deep)}.slip-status-pill.is-feedback{background:var(--warn-pale);color:var(--warn)}.slip-status-pill.is-resolved{background:var(--leave-pale);color:var(--leave)}.slip-status-pill.is-paid,.portal-ack-status.is-generated{background:var(--sky-pale);color:var(--sky-deep)}.portal-ack-status.is-notified{color:#2f6fbf;background:#eef4ff}.portal-ack-status.is-resolved{background:var(--leave-pale);color:var(--leave)}.portal-ack-status.is-paid{background:var(--sky-pale);color:var(--sky-deep)}.portal-ack-status.is-none{background:var(--soft);color:var(--muted)}.portal-slip-badge{display:none}.portal-slip-foot{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:10px;padding:12px 18px 16px;font-size:11px;font-weight:500;display:flex}.portal-mobile-actions{margin-top:12px;display:none}.portal-save-primary{background:var(--sky);border-radius:8px;width:100%;height:44px;font-size:15px}.portal-save-primary:hover:not(:disabled){background:var(--sky-deep)}.portal-save-btn{white-space:nowrap;border-radius:8px;align-items:center;gap:6px;height:36px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.portal-shell .portal-tools .ghost-button{border:1px solid var(--line);height:36px;color:var(--ink);background:#fff;border-radius:8px;padding:0 12px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,color .12s}.portal-shell .portal-tools .ghost-button:hover:not(:disabled){background:var(--soft);border-color:var(--line);color:var(--ink)}.portal-ack{border:1px solid var(--sky);margin:10px 14px 8px;padding:14px}@supports (color:color-mix(in lab, red, red)){.portal-ack{border:1px solid color-mix(in srgb, var(--sky) 28%, var(--line))}}.portal-ack{background:#fff;border-radius:10px;gap:12px;display:grid}.portal-ack-prominent{background:var(--sky-pale);border-color:var(--sky)}@supports (color:color-mix(in lab, red, red)){.portal-ack-prominent{border-color:color-mix(in srgb, var(--sky) 42%, var(--line))}}.portal-ack-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.portal-ack-head strong{color:var(--ink);font-size:15px;font-weight:750}.portal-ack-status{background:var(--soft);border:0;border-radius:8px;gap:4px;padding:10px 12px;display:grid}.portal-ack-status.is-confirmed{background:var(--sky-pale);color:var(--sky-deep)}.portal-ack-status.is-feedback{background:var(--warn-pale);color:var(--warn)}.portal-ack-status strong{font-size:13px;font-weight:700}.portal-ack-status span{color:var(--ink);white-space:pre-wrap;font-size:13px;font-weight:500;line-height:1.5}.portal-ack-actions{grid-template-columns:1.2fr 1fr;gap:8px;display:grid}.portal-ack-actions .primary-button,.portal-ack-actions .ghost-button{letter-spacing:0;border-radius:8px;width:100%;min-width:0;height:46px;font-size:15px;font-weight:700}.portal-ack-actions .primary-button{background:var(--sky);border:0}.portal-ack-actions .primary-button:hover:not(:disabled){background:var(--sky-deep)}.portal-ack-actions .primary-button:disabled{opacity:1;background:var(--sky-pale);color:var(--sky-deep);cursor:default}.portal-ack-actions .ghost-button{border:1px solid var(--sky)}@supports (color:color-mix(in lab, red, red)){.portal-ack-actions .ghost-button{border:1px solid color-mix(in srgb, var(--sky) 30%, var(--line))}}.portal-ack-actions .ghost-button{color:var(--sky-deep);background:#fff}.portal-ack-actions .ghost-button:hover:not(:disabled){background:var(--sky-pale);border-color:var(--sky)}@supports (color:color-mix(in lab, red, red)){.portal-ack-actions .ghost-button:hover:not(:disabled){border-color:color-mix(in srgb, var(--sky) 45%, var(--line))}}.portal-ack-actions .ghost-button:hover:not(:disabled){color:var(--sky-deep)}.portal-ack-actions .ghost-button:disabled{opacity:.55;cursor:not-allowed}.portal-slip .portal-attendance{border-top:1px solid var(--line)}.portal-slip .portal-attendance .portal-block-head{padding:12px 16px 8px}.portal-slip .portal-attendance .attendance-calendar{padding:0 12px 14px}.portal-feedback-form{gap:10px;padding-top:2px;display:grid}.portal-feedback-form label{color:var(--muted);gap:8px;font-size:13px;font-weight:600;display:grid}.portal-feedback-form textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:88px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:10px 12px;line-height:1.5}.portal-feedback-form textarea:focus{outline:2px solid var(--sky)}@supports (color:color-mix(in lab, red, red)){.portal-feedback-form textarea:focus{outline:2px solid color-mix(in srgb, var(--sky) 22%, transparent)}}.portal-feedback-form textarea:focus{border-color:var(--sky)}.portal-feedback-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.portal-feedback-actions em{color:var(--muted);font-size:12px;font-style:normal;font-weight:500}.portal-feedback-actions .primary-button{background:var(--sky);border-radius:8px;width:auto;min-width:112px;height:40px;padding:0 16px;font-size:14px}.portal-feedback-actions .primary-button:hover:not(:disabled){background:var(--sky-deep)}@keyframes portal-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes portal-pop{0%{opacity:0}to{opacity:1}}@keyframes net-shine{0%,to{background-position:0%}50%{background-position:100%}}.anim-portal-item{animation:.28s both portal-rise;animation-delay:var(--delay,0s)}.anim-portal-line{animation:none}.portal-hero{background:var(--sky-pale);text-align:center;border:0;border-radius:8px;margin:0 14px 8px;padding:18px 16px 14px}.portal-kicker{color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:600}.portal-net{letter-spacing:-.03em;color:var(--sky-deep);align-items:baseline;gap:2px;margin:0;font-size:clamp(34px,7vw,44px);font-weight:750;line-height:1;display:inline-flex}.portal-net em{color:var(--sky-deep);margin-right:2px;font-size:.4em;font-style:normal;font-weight:700}.portal-net span{color:var(--sky-deep)}.portal-hero-meta{border-top:1px solid var(--sky);grid-template-columns:repeat(3,1fr);gap:0;max-width:340px;margin:14px auto 0;display:grid}@supports (color:color-mix(in lab, red, red)){.portal-hero-meta{border-top:1px solid color-mix(in srgb, var(--sky) 18%, var(--line))}}.portal-stat{justify-items:center;gap:2px;padding:10px 6px 0;display:grid}.portal-stat+.portal-stat{border-left:1px solid var(--sky)}@supports (color:color-mix(in lab, red, red)){.portal-stat+.portal-stat{border-left:1px solid color-mix(in srgb, var(--sky) 18%, var(--line))}}.portal-stat span{color:var(--muted);font-size:12px;font-weight:500}.portal-stat strong{color:var(--ink);letter-spacing:0;font-size:14px;font-weight:700}.portal-slip .portal-block{border:0;border-top:1px solid var(--line);background:#fff;border-radius:0;margin:0}.portal-slip .portal-fold{background:#fff}.portal-block{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:10px;padding:0}.portal-block>.portal-block-head,.portal-fold-trigger .portal-block-head{padding:12px 16px}.portal-block>.employee-payroll-list,.portal-fold-panel{padding:0 16px 12px}.portal-block-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:0;display:flex}.portal-block-head h2{letter-spacing:0;margin:0;font-size:14px;font-weight:700}.portal-block-head span{color:var(--muted);font-size:12px;font-weight:500}.portal-fold{padding-bottom:4px}.portal-fold-trigger{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:0 4px 0 0;display:flex}.portal-fold-trigger .portal-block-head{flex:1}.portal-fold-chevron{width:28px;height:28px;color:var(--muted);background:0 0;border-radius:6px;place-items:center;margin-right:12px;transition:transform .2s,color .12s;display:grid}.portal-fold-chevron svg{width:16px;height:16px}.portal-fold.open .portal-fold-chevron{color:var(--sky-deep);background:0 0;transform:rotate(180deg)}.portal-fold-panel{grid-template-rows:0fr;padding-top:0;padding-bottom:0;transition:grid-template-rows .32s,padding .32s;display:grid;overflow:hidden}.portal-fold.open .portal-fold-panel{grid-template-rows:1fr;padding-bottom:12px}.portal-fold-panel>.attendance-calendar{min-height:0;overflow:hidden}.portal-fold.open .day-cell{animation:none}.attendance-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.day-cell{border:1px solid var(--line);background:#fff;border-radius:6px;align-content:start;gap:4px;min-height:56px;padding:6px;transition:border-color .12s,background .12s;display:grid}.day-cell:hover{background:var(--soft);border-color:#c5ddf8;transform:none}.day-cell strong{font-size:13px;font-weight:700}.day-cell em{color:var(--muted);font-size:11px;font-style:normal;line-height:1.2}.day-cell.status-ok{background:var(--sky-pale);border-color:#c5ddf8}.day-cell.status-ok em{color:var(--sky-deep)}.portal-shell .day-cell.status-ok{background:var(--sky-pale);border-color:#c5ddf8}.portal-shell .day-cell.status-ok em{color:var(--sky-deep)}.day-cell.status-warn{background:var(--warn-pale);border-color:#f0dfb2}.day-cell.status-warn em{color:var(--warn)}.day-cell.status-danger{background:var(--danger-pale);border-color:#f0c7c7}.day-cell.status-danger em{color:var(--danger)}.day-cell.status-leave{background:var(--leave-pale);border-color:#c9dbef}.day-cell.status-leave em{color:var(--leave)}.day-cell.status-extra{background:var(--extra-pale);border-color:#c5dff1}.day-cell.status-extra em{color:var(--extra)}.day-cell.status-rest{background:var(--rest-pale);border-color:#d7dde3}.day-cell.status-rest em{color:var(--rest)}.employee-payroll-list{margin-top:0}.payroll-line{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:0;font-size:14px;display:flex}.payroll-line:last-child{border-bottom:0}.payroll-line span{color:var(--ink);font-weight:500}.payroll-line strong{letter-spacing:0;font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.deduction-text{color:var(--danger)}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes section-in{0%{opacity:0;transform:translateY(14px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes admin-float{0%,to{transform:translate(0)}50%{transform:translate(10px,-14px)}}@keyframes admin-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}.anim-slide-down{animation:.28s both slide-down}.anim-section{animation:.38s cubic-bezier(.22,1,.36,1) both section-in}.admin-shell,.admin-login-center,.admin-auth-shell,.admin-loading{--ink:#1a2b3c;--muted:#6b7c8a;--line:#e3ebf2;--soft:#f4f8fc;--page:#f3f7fb;--sky:#3b9eff;--sky-deep:#1f7ae0;--sky-pale:#e8f3ff;--brand:#1f7ae0;--brand-mid:#3b9eff;--brand-pale:#e8f3ff;--leave:#4a7fb5;--leave-pale:#e7f0fa;--extra:#3b8ec9;--extra-pale:#e5f3fc;--fs-caption:12px;--fs-body:13px;--fs-ui:14px;--fs-title:16px;--fs-page:20px;font-size:var(--fs-ui);-webkit-font-smoothing:antialiased;line-height:1.5}.admin-shell{background:linear-gradient(#f3f7fb 0%,#fff 48%);grid-template-columns:232px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .2s;display:grid;position:relative}.admin-shell.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}.admin-sidebar{min-height:100vh;color:var(--ink);border-right:1px solid var(--line);background:#fffffff0;flex-direction:column;padding:18px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.admin-sidebar{border-right:1px solid color-mix(in srgb, var(--line) 85%, transparent)}}.admin-sidebar{z-index:25;height:100vh;position:sticky;top:0;overflow:visible}.admin-brand{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;width:calc(100% - 16px);min-width:0;margin:6px 8px 22px;padding:0;display:flex}.admin-brand:hover{background:var(--soft)}.admin-brand-mark{color:#fff;background:0 0;border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.admin-brand-mark svg{width:40px;height:40px;display:block}.admin-brand-copy{gap:2px;min-width:0;display:grid}.admin-brand .site-logo,.admin-brand-copy .site-logo{font-size:var(--fs-title);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:700;line-height:1.25;display:block;overflow:hidden}.admin-brand span,.admin-brand-copy span{color:var(--muted);font-size:var(--fs-caption);margin-top:0;font-weight:600;line-height:1.3;display:block}.admin-nav{gap:4px;display:grid}.admin-nav button,.admin-mobile-nav button{height:44px;color:var(--muted);text-align:left;font-size:var(--fs-ui);background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-weight:600;line-height:1.3;transition:background .15s,color .15s;display:flex}.admin-nav button em,.admin-mobile-nav button em{font-style:normal}.admin-nav button:hover,.admin-nav button.active{background:var(--brand-pale);color:var(--brand)}.nav-icon{width:28px;height:28px;color:var(--muted);background:0 0;border-radius:8px;flex-shrink:0;place-items:center;display:grid}.nav-icon svg{width:16px;height:16px}.admin-nav button:hover .nav-icon,.admin-nav button.active .nav-icon,.admin-mobile-nav button.active .nav-icon{background:linear-gradient(145deg, var(--brand), var(--brand-mid));color:#fff;transform:none}.sidebar-footer{border-top:1px solid var(--line);gap:10px;margin-top:auto;padding:16px 8px 4px;display:grid}.sidebar-link,.sidebar-logout{font-size:var(--fs-body);align-items:center;gap:8px;font-weight:600;display:inline-flex}.sidebar-link{color:var(--brand)}.sidebar-link-icon{flex-shrink:0;width:16px;height:16px}.sidebar-footer small{color:var(--muted);font-size:var(--fs-caption);line-height:1.4}.sidebar-logout{width:fit-content;color:var(--muted);background:0 0;border:0;padding:0}.sidebar-logout:hover{color:var(--danger)}.admin-shell.sidebar-collapsed .admin-sidebar{align-items:center;padding:18px 8px}.admin-shell.sidebar-collapsed .admin-brand{justify-content:center;width:48px;margin:0 0 18px}.admin-shell.sidebar-collapsed .admin-brand-copy,.admin-shell.sidebar-collapsed .admin-nav button em,.admin-shell.sidebar-collapsed .sidebar-link span,.admin-shell.sidebar-collapsed .sidebar-logout span,.admin-shell.sidebar-collapsed .sidebar-footer small{display:none}.admin-shell.sidebar-collapsed .admin-nav{width:100%}.admin-shell.sidebar-collapsed .admin-nav button{justify-content:center;gap:0;width:100%;height:48px;padding:0;position:relative}.admin-shell.sidebar-collapsed .sidebar-footer{justify-items:center;gap:8px;width:100%;padding:14px 0 4px}.admin-shell.sidebar-collapsed .sidebar-link,.admin-shell.sidebar-collapsed .sidebar-logout{border-radius:10px;justify-content:center;width:40px;height:40px;position:relative}.admin-shell.sidebar-collapsed .sidebar-link:hover,.admin-shell.sidebar-collapsed .sidebar-logout:hover{background:var(--soft)}.admin-shell.sidebar-collapsed .admin-nav button:after,.admin-shell.sidebar-collapsed .sidebar-link:after,.admin-shell.sidebar-collapsed .sidebar-logout:after{content:attr(data-tip);z-index:40;color:#fff;white-space:nowrap;opacity:0;pointer-events:none;background:#1a2b3c;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;line-height:1.2;transition:opacity .12s;position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%)}.admin-shell.sidebar-collapsed .admin-nav button:before,.admin-shell.sidebar-collapsed .sidebar-link:before,.admin-shell.sidebar-collapsed .sidebar-logout:before{content:"";z-index:40;opacity:0;pointer-events:none;border:5px solid #0000;border-right-color:#1a2b3c;transition:opacity .12s;position:absolute;top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.admin-shell.sidebar-collapsed .admin-nav button:hover:after,.admin-shell.sidebar-collapsed .admin-nav button:focus-visible:after,.admin-shell.sidebar-collapsed .sidebar-link:hover:after,.admin-shell.sidebar-collapsed .sidebar-link:focus-visible:after,.admin-shell.sidebar-collapsed .sidebar-logout:hover:after,.admin-shell.sidebar-collapsed .sidebar-logout:focus-visible:after,.admin-shell.sidebar-collapsed .admin-nav button:hover:before,.admin-shell.sidebar-collapsed .admin-nav button:focus-visible:before,.admin-shell.sidebar-collapsed .sidebar-link:hover:before,.admin-shell.sidebar-collapsed .sidebar-link:focus-visible:before,.admin-shell.sidebar-collapsed .sidebar-logout:hover:before,.admin-shell.sidebar-collapsed .sidebar-logout:focus-visible:before{opacity:1}.admin-main{min-width:0;padding-bottom:0}.admin-topbar{border-bottom:1px solid var(--line);background:#ffffffeb;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:12px 24px;display:flex}@supports (color:color-mix(in lab, red, red)){.admin-topbar{border-bottom:1px solid color-mix(in srgb, var(--line) 80%, transparent)}}.admin-topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;position:sticky;top:0}.admin-topbar h1{font-size:var(--fs-page);letter-spacing:-.02em;color:var(--ink);margin:0;font-weight:700;line-height:1.3}.admin-shell .eyebrow,.admin-login-center .eyebrow{color:var(--brand);font-size:var(--fs-caption);letter-spacing:.08em;font-weight:700;line-height:1.3}.admin-login-center .site-logo.centered{color:var(--ink)}.topbar-copy .eyebrow{margin-bottom:4px}.admin-mobile-nav{display:none}.admin-loading-mark{background:linear-gradient(145deg, var(--brand), var(--brand-mid));border-radius:12px;width:40px;height:40px;margin-bottom:4px}.admin-login-brand{text-align:center;justify-items:center;gap:8px;margin-bottom:8px;display:grid}.admin-login-brand .admin-brand-mark{border-radius:16px;width:52px;height:52px}.admin-login-brand .admin-brand-mark svg{width:52px;height:52px}.admin-login-brand .site-logo{font-size:var(--fs-page);color:var(--ink);font-weight:700;line-height:1.3}.admin-login-brand>span:last-child{color:var(--muted);font-size:var(--fs-body);font-weight:600;line-height:1.4}.admin-login-center{background:linear-gradient(#f3f7fb 0%,#fff 42%)}.admin-login-center .login-panel,.admin-login-center .auth-card-flat{border:1px solid var(--line);background:#fff;border-radius:16px}.admin-shell .sheet-toolbar h2,.admin-shell .list-heading h2,.admin-shell .form-card h2,.admin-shell .settings-heading h2,.admin-shell .history-card h2,.admin-shell .import-card .sheet-toolbar h2{font-size:var(--fs-title);letter-spacing:-.01em;font-weight:700;line-height:1.35}.admin-shell .sheet-toolbar p,.admin-shell .list-heading p,.admin-shell .form-card>p,.admin-shell .settings-heading p,.admin-shell .history-card>.sheet-toolbar p,.admin-shell .import-step p,.admin-shell .preview-heading p,.admin-shell .security-callout,.admin-shell .password-tip,.admin-shell .domain-guide,.admin-shell .notify-panel-head p{font-size:var(--fs-body);font-weight:500;line-height:1.55}.admin-shell .legend,.admin-shell .save-indicator,.admin-shell .month-chip,.admin-shell .history-tag,.admin-shell .ack-badge,.admin-shell .settings-status,.admin-shell .restore-button,.admin-shell .file-input,.admin-shell .setup-code-details,.admin-shell .import-preview>small,.admin-shell .history-row p,.admin-shell .history-main small,.admin-shell .spreadsheet th small,.admin-shell .empty-state p,.admin-shell .notify-employee-row em,.admin-shell .topbar-actions label{font-size:var(--fs-caption);font-weight:600;line-height:1.4}.admin-shell .spreadsheet{font-size:var(--fs-body)}.admin-shell .spreadsheet th{font-size:var(--fs-caption);font-weight:700;line-height:1.35}.admin-shell .spreadsheet th small{font-size:var(--fs-caption);opacity:.85;font-weight:500}.admin-shell .status-select,.admin-shell .slip-status-select,.admin-shell .segmented button,.admin-shell .att-batch-status,.admin-shell .employee-row,.admin-shell .item-row,.admin-shell .history-row,.admin-shell .import-preview table,.admin-shell .notify-employee-row strong,.admin-shell .notify-panel-actions,.admin-shell .settings-fields label,.admin-shell .ghost-button,.admin-shell .secondary-button{font-size:var(--fs-body);line-height:1.4}.admin-shell .import-step h3,.admin-shell .preview-heading h3,.admin-shell .notify-panel-head h3,.admin-shell .avatar{font-size:var(--fs-ui);font-weight:700;line-height:1.35}.admin-shell .primary-button,.admin-shell .primary-button.compact{font-size:var(--fs-ui);font-weight:700;line-height:1.3}.admin-shell .segmented button{font-weight:600}.admin-shell .segmented button.active{font-weight:700}.admin-shell .settings-fields label,.admin-shell .form-card label{font-size:var(--fs-caption);letter-spacing:0;font-weight:700;line-height:1.4}.admin-shell .settings-fields input,.admin-shell .form-card input,.admin-shell .form-card select,.admin-shell .att-batch-status select{font-size:var(--fs-ui);font-weight:500}.admin-shell .empty-state strong{font-size:var(--fs-ui);font-weight:700}.admin-shell .history-row code{font-size:var(--fs-caption)}.admin-login-center .auth-card-body h2,.admin-login-center h2{font-size:var(--fs-page);letter-spacing:-.01em;font-weight:700;line-height:1.35}.admin-login-center .auth-description,.admin-login-center .password-tip,.admin-login-center .setup-code-details{font-size:var(--fs-body);line-height:1.55}.admin-login-center .auth-card-body label,.admin-login-center label{font-size:var(--fs-caption);font-weight:700;line-height:1.4}.admin-login-center .auth-card-body label input,.admin-login-center input{font-size:var(--fs-ui)}.admin-login-center .primary-button,.admin-login-center .text-button{font-size:var(--fs-ui);font-weight:700}.admin-login-center .text-button{font-weight:600}.admin-login-center .security-question{font-size:var(--fs-body);line-height:1.5}@keyframes sk-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.sk{background:linear-gradient(90deg,#e8eef4 0%,#f5f8fb 45%,#e8eef4 90%) 0 0/200% 100%;border-radius:6px;animation:1.2s linear infinite sk-shimmer;display:block}.sk-card{border:1px solid var(--line);background:#fff;border-radius:12px}.sk-pad{padding:18px}.sk-line{width:100%;height:12px}.sk-title{border-radius:8px;width:min(220px,60%);height:36px;margin:0 auto}.sk-input{border-radius:8px;width:100%;height:44px}.sk-btn{border-radius:8px;width:72px;height:36px}.sk-btn-wide{border-radius:8px;width:100%;height:44px}.sk-month{border-radius:8px;width:148px;height:36px}.sk-stat{border-radius:8px;height:64px}.sk-avatar{border-radius:8px;flex-shrink:0;width:32px;height:32px}.sk-cell{border-radius:6px;height:28px}.sk-w-16{width:16%}.sk-w-24{width:24%}.sk-w-32{width:32%}.sk-w-40{width:40%}.sk-w-48{width:48%}.sk-w-64{width:64%}.sk-flex{flex:1;min-width:0}.sk-mt{margin-top:14px}.sk-mt-sm{margin-top:8px}.sk-mb{margin-bottom:14px}.sk-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.sk-payroll-line,.sk-list-row,.sk-table-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:44px;display:flex}.sk-table{margin-top:8px}.sk-table-row{grid-template-columns:80px 80px repeat(6,minmax(0,1fr));gap:8px;padding:8px 0;display:grid}.sk-admin-grid{grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:16px;display:grid}.sk-admin-cards{gap:14px;display:grid}.sk-hint{text-align:center;color:var(--muted);margin:16px 0 0;font-size:13px}.sk-auth-lines{justify-items:center;width:160px;display:grid}.portal-hero.sk-card{text-align:center;padding:28px 20px}.portal-hero.sk-card .sk-line{margin-left:auto;margin-right:auto}.portal-block.sk-card{padding:16px}.portal-loading-bar{background:linear-gradient(90deg, var(--sky-pale), var(--sky), var(--sky-pale));background-size:200% 100%;border-radius:999px;height:3px;margin:-8px 0 16px;animation:1s linear infinite sk-shimmer}.portal-shell.is-loading .portal-content{opacity:.72;transition:opacity .2s}@media (width<=900px){.sk-admin-grid{grid-template-columns:1fr}.sk-table-row{grid-template-columns:64px 64px repeat(4,minmax(0,1fr))}}.admin-shell .ghost-button:hover,.admin-shell .secondary-button:hover,.admin-login-center .ghost-button:hover,.admin-login-center .text-button:hover{background:var(--brand-pale);border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.admin-shell .ghost-button:hover,.admin-shell .secondary-button:hover,.admin-login-center .ghost-button:hover,.admin-login-center .text-button:hover{border-color:color-mix(in srgb, var(--brand) 22%, var(--line))}}.admin-shell .ghost-button:hover,.admin-shell .secondary-button:hover,.admin-login-center .ghost-button:hover,.admin-login-center .text-button:hover{color:var(--brand)}.admin-shell .month-nav:hover{background:var(--brand-pale);color:var(--brand)}.admin-shell .form-card input:focus,.admin-shell .settings-fields input:focus,.admin-login-center input:focus{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.admin-shell .form-card input:focus,.admin-shell .settings-fields input:focus,.admin-login-center input:focus{border-color:color-mix(in srgb, var(--brand) 45%, var(--line))}}.admin-shell .form-card input:focus,.admin-shell .settings-fields input:focus,.admin-login-center input:focus{outline:2px solid var(--brand-pale)}.topbar-actions{align-items:center;gap:16px;display:flex}.topbar-actions label{color:var(--muted);align-items:center;gap:9px;font-size:12px;font-weight:600;display:flex}.topbar-actions input{border:1px solid var(--line);height:40px;color:var(--ink);background:#fff;border-radius:8px;padding:0 12px}.save-indicator{background:var(--ok-pale);color:var(--ok);border-radius:8px;align-items:center;gap:7px;padding:8px 11px;font-size:11px;font-weight:700;display:flex}.save-indicator i,.green-dot{background:var(--ok);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite pulse-dot}.save-indicator.failed{background:var(--danger-pale);color:var(--danger)}.save-indicator.failed i{background:var(--danger);animation:none}.admin-content{padding:24px}.admin-alert{background:var(--danger-pale);color:var(--danger);border-radius:8px;justify-content:space-between;margin:18px 24px 0;padding:12px 16px;display:flex}.admin-alert button{color:inherit;background:0 0;border:0}.sheet-card,.history-card,.form-card,.list-card,.import-card,.settings-card{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.sheet-card:hover,.history-card:hover,.form-card:hover,.list-card:hover,.import-card:hover,.settings-card:hover{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.sheet-card:hover,.history-card:hover,.form-card:hover,.list-card:hover,.import-card:hover,.settings-card:hover{border-color:color-mix(in srgb, var(--brand) 18%, var(--line))}}.sheet-toolbar,.list-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:72px;padding:18px 22px;display:flex}.sheet-toolbar h2,.list-heading h2,.form-card h2{margin:0;font-size:18px}.sheet-toolbar p,.list-heading p,.form-card>p{color:var(--muted);margin:6px 0 0;font-size:12px}.legend{color:var(--muted);align-items:center;gap:7px;font-size:11px;display:flex}.spreadsheet-wrap{max-height:calc(100vh - 220px);position:relative;overflow:auto}.spreadsheet{border-collapse:separate;border-spacing:0;min-width:100%;font-size:12px}.spreadsheet th,.spreadsheet td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;background:#fff;min-width:75px;height:42px;padding:0}.spreadsheet th{z-index:4;height:54px;color:var(--ink);background:#f3f7fb;font-weight:700;position:sticky;top:0}.spreadsheet th small{color:var(--muted);margin-top:4px;font-size:9px;font-weight:400;display:block}.spreadsheet .sticky-col{z-index:3;background:#fff;position:sticky}.spreadsheet th.sticky-col{z-index:5;background:#e4eef8}.name-col{left:0;min-width:110px!important}.department-col{display:none}.spreadsheet td.name-col{text-align:left;padding-left:14px}.status-select{text-align:center;appearance:none;width:100%;height:100%;color:var(--muted);background:0 0;border:0;outline:0;font-size:11px}.att-batch-bar{border:1px solid var(--line);background:linear-gradient(#f7fbff 0%,#f3f7fb 100%);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin:0 0 14px;padding:10px 12px;display:flex}.att-batch-main{flex-wrap:wrap;flex:1;align-items:center;gap:8px 10px;min-width:0;display:flex}.att-batch-label{color:var(--muted);letter-spacing:.04em;flex-shrink:0;font-size:11px;font-weight:700}.att-status-chips{flex-wrap:wrap;gap:4px;display:flex}.att-status-chip{height:28px;color:var(--muted);cursor:pointer;box-shadow:inset 0 0 0 1px var(--line);background:#fff;border:1px solid #0000;border-radius:999px;padding:0 9px;font-size:12px;font-weight:700;line-height:1}.att-status-chip:hover{color:var(--ink);box-shadow:inset 0 0 0 1px var(--sky-deep)}@supports (color:color-mix(in lab, red, red)){.att-status-chip:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sky-deep) 35%, var(--line))}}.att-status-chip.active{color:var(--sky-deep);background:var(--brand-pale,#e8f3ff);box-shadow:inset 0 0 0 1.5px var(--sky-deep)}.att-status-chip.active.status-出勤{background:var(--ok-pale);color:#1f7a58;box-shadow:inset 0 0 0 1.5px #2f9e7a}.att-status-chip.active.status-迟到,.att-status-chip.active.status-早退{background:var(--warn-pale);color:#9a6b12;box-shadow:inset 0 0 0 1.5px #d4a017}.att-status-chip.active.status-旷工{background:var(--danger-pale);color:#b42318;box-shadow:inset 0 0 0 1.5px #d45454}.att-status-chip.active.status-事假,.att-status-chip.active.status-病假{background:var(--leave-pale);color:#5b4bb0;box-shadow:inset 0 0 0 1.5px #7a6bd0}.att-status-chip.active.status-加班{background:var(--extra-pale);color:#0f6a8a;box-shadow:inset 0 0 0 1.5px #2f9ec0}.att-status-chip.active.status-休息,.att-status-chip.active.status-年假{background:var(--rest-pale);color:#4b6478;box-shadow:inset 0 0 0 1.5px #7a93a8}.att-status-chip.active.status-empty{color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line);background:#fff}.att-batch-side{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;display:flex}.att-fill-chip{height:28px;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.att-fill-chip input{opacity:0;pointer-events:none;position:absolute}.att-fill-chip.on{color:var(--sky-deep);background:var(--brand-pale,#e8f3ff);box-shadow:inset 0 0 0 1.5px var(--sky-deep)}.att-batch-actions{align-items:center;gap:6px;padding-left:2px;display:inline-flex}.att-selected-count{min-width:58px;color:var(--muted);text-align:right;font-size:11px;font-weight:700}.att-selected-count.has{color:var(--sky-deep)}.att-batch-apply,.att-batch-clear{cursor:pointer;border-radius:8px;height:28px;padding:0 12px;font-size:12px;font-weight:700}.att-batch-apply{background:var(--sky-deep);color:#fff;border:0}.att-batch-apply:hover:not(:disabled){filter:brightness(1.05)}.att-batch-clear{border:1px solid var(--line);color:var(--ink);background:#fff}.att-batch-clear:hover:not(:disabled){border-color:var(--sky-deep)}@supports (color:color-mix(in lab, red, red)){.att-batch-clear:hover:not(:disabled){border-color:color-mix(in srgb, var(--sky-deep) 30%, var(--line))}}.att-batch-clear:hover:not(:disabled){color:var(--sky-deep)}.att-batch-apply:disabled,.att-batch-clear:disabled{opacity:.45;cursor:not-allowed}@media (width<=720px){.att-batch-bar{align-items:stretch}.att-batch-side{justify-content:space-between;width:100%}}.att-sheet-wrap{-webkit-user-select:none;user-select:none;touch-action:none}.att-view-switch{border:1px solid var(--line);background:var(--soft);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.att-view-switch button{height:32px;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:0 12px;font-size:13px;font-weight:700}.att-view-switch button.active{color:var(--sky-deep);background:#fff}.attendance-sheet th.att-weekend,.attendance-sheet td.att-weekend{background:#f3f7fb}.attendance-sheet th.att-weekend{background:#eaf2fa}.attendance-sheet td.att-weekend .att-cell.status-empty{background:#eef4fa}.att-calendar-wrap{-webkit-user-select:none;user-select:none;padding:0 16px 18px}.att-calendar-list{gap:8px;display:grid}.att-calendar-row{border:1px solid var(--line);background:var(--soft);width:100%;min-height:48px;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:0 14px;display:flex}.att-calendar-row:hover,.att-calendar-row.active{border-color:var(--sky-deep)}@supports (color:color-mix(in lab, red, red)){.att-calendar-row:hover,.att-calendar-row.active{border-color:color-mix(in srgb, var(--sky-deep) 35%, var(--line))}}.att-calendar-row:hover,.att-calendar-row.active{background:#fff}.att-calendar-row strong{font-size:14px;font-weight:700}.att-calendar-row em{color:var(--muted);font-size:12px;font-style:normal;font-weight:600}.att-calendar-row-action{color:var(--sky-deep);margin-left:auto;font-size:12px;font-weight:700}.att-calendar-mask{z-index:1000;box-sizing:border-box;background:#0f1c2d7a;justify-content:center;align-items:center;margin:0;padding:20px;display:flex;position:fixed;inset:0}.att-calendar-modal{border:1px solid var(--line);-webkit-user-select:none;user-select:none;touch-action:none;background:#fff;border-radius:14px;flex-direction:column;width:min(780px,100vw - 32px);max-height:calc(100vh - 40px);padding:0;display:flex;overflow:hidden;box-shadow:0 22px 56px #12284638}.att-calendar-modal-head{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;margin:0;padding:14px 16px 10px;display:flex}.att-calendar-modal-toolbar{border-bottom:1px solid var(--line);background:#f4f8fc;flex-shrink:0;padding:10px 12px}.att-batch-bar-modal{background:0 0;border:0;border-radius:0;margin:0;padding:0}.att-batch-hint{width:100%;color:var(--sky-deep);margin:6px 0 0;font-size:12px;font-weight:600;line-height:1.4}.att-calendar-modal-body{flex:1;min-height:0;padding:10px 12px 14px;overflow:auto}.att-calendar-modal .att-calendar-legend{z-index:2;border-bottom:1px solid var(--line);background:#fff;margin-bottom:8px;padding:4px 0 8px;position:sticky;top:0}.att-calendar-modal .att-calendar-grid{padding-bottom:4px;overflow:visible}.att-calendar-modal-head strong{color:var(--ink);font-size:18px;font-weight:750;display:block}.att-calendar-modal-head p{color:var(--muted);margin:4px 0 0;font-size:13px}.att-calendar-modal-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.att-calendar-modal-close{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;font-size:24px;line-height:1;display:grid}.att-calendar-modal-close:hover{background:var(--soft);color:var(--ink)}.att-calendar-legend{border-bottom:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:10px;padding:4px 0 10px;display:grid}.att-calendar-legend button{height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:13px;font-weight:700}.att-calendar-legend button:hover{background:var(--soft);color:var(--ink)}.att-calendar-legend .att-weekend-label{color:var(--sky-deep)}.att-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.att-calendar-pad{background:0 0;border-radius:8px;min-height:64px}.att-calendar-cell{border:1px solid var(--line);text-align:left;cursor:cell;background:#fff;border-radius:8px;align-content:start;gap:4px;min-height:64px;padding:8px;display:grid}.att-calendar-cell strong{color:var(--ink);font-size:13px;font-weight:700;line-height:1}.att-calendar-cell em{color:var(--muted);word-break:break-all;font-size:12px;font-style:normal;font-weight:700;line-height:1.2}.att-calendar-cell.att-weekend{background:#f3f7fb;border-color:#d7e4f2}.att-calendar-cell.att-weekend strong{color:var(--sky-deep)}.att-calendar-cell.att-cell-selected{outline:2px solid var(--sky-deep);outline-offset:-1px}.att-calendar-cell.status-出勤{background:var(--ok-pale)}.att-calendar-cell.status-迟到,.att-calendar-cell.status-早退{background:var(--warn-pale)}.att-calendar-cell.status-旷工{background:var(--danger-pale)}.att-calendar-cell.status-事假,.att-calendar-cell.status-病假{background:var(--leave-pale)}.att-calendar-cell.status-加班{background:var(--extra-pale)}.att-calendar-cell.status-休息,.att-calendar-cell.status-年假{background:var(--rest-pale)}@media (width<=640px){.att-calendar-mask{align-items:end;padding:12px}.att-calendar-modal{border-radius:14px 14px 10px 10px;width:100%;max-height:92vh}.att-calendar-cell,.att-calendar-pad{min-height:52px}}.att-day-header,.att-row-header{width:100%;color:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:block}.att-day-header small{display:block}.att-row-header{text-align:left;padding-left:2px}.att-cell-td{cursor:cell}.att-cell-td.att-cell-selected{outline:2px solid var(--ink);outline-offset:-2px;z-index:1}.att-cell{pointer-events:none;place-items:center;min-height:34px;font-weight:700;display:grid}.status-出勤{background:var(--ok-pale);color:var(--ok)}.status-迟到,.status-早退{background:var(--warn-pale);color:var(--warn)}.status-旷工{background:var(--danger-pale);color:var(--danger)}.status-事假,.status-病假{background:var(--leave-pale);color:var(--leave)}.status-加班{background:var(--extra-pale);color:var(--extra)}.status-休息,.status-年假{background:var(--rest-pale);color:var(--rest)}.money-input{background:var(--sun-pale);text-align:right;border:0;outline:0;width:100%;height:100%;padding:0 8px}.calculated{font-weight:700;background:var(--soft)!important;text-align:right!important;padding:0 10px!important}.net-column{color:var(--ok);background:var(--ok-pale)!important}.management-grid{grid-template-columns:330px minmax(0,1fr);gap:18px;display:grid}.form-card{height:fit-content;padding:24px}.form-card label{color:var(--muted);gap:7px;margin-top:18px;font-size:12px;display:grid}.form-card .primary-button{margin-top:22px}.employee-list,.item-list{padding:8px 18px 18px}.employee-row,.item-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:58px;display:grid}.employee-row{grid-template-columns:36px minmax(72px,.9fr) minmax(96px,1fr) minmax(110px,1.2fr) minmax(72px,.9fr) minmax(120px,1.3fr) 42px auto}.item-row{grid-template-columns:56px 1fr 100px 42px}.row-delete-button{background:var(--danger-pale);height:32px;color:var(--danger);white-space:nowrap;border:1px solid #f0c7c7;border-radius:8px;padding:0 10px;font-size:12px;font-weight:700;transition:background .15s,transform .15s}.row-delete-button:hover{background:#ffdede;transform:translateY(-1px)}.employee-row input,.item-row input,.item-row select{background:0 0;border:1px solid #0000;border-radius:6px;min-width:0;height:36px;padding:0 9px}.employee-row input:focus,.item-row input:focus{border-color:var(--line);background:#fff;outline:none}.avatar{background:var(--sky-pale);width:32px;height:32px;color:var(--sky-deep);border-radius:8px;place-items:center;font-weight:800;display:grid}.switch input{display:none}.switch span{background:#c9d5e0;border-radius:999px;width:36px;height:20px;transition:all .2s;display:block;position:relative}.switch span:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;top:2px;left:2px}.switch input:checked+span{background:var(--sky)}.switch input:checked+span:after{transform:translate(16px)}.item-kind{background:var(--ok-pale);color:var(--ok);text-align:center;border-radius:6px;padding:4px 8px;font-size:10px;font-weight:700}.item-kind.deduction{background:var(--danger-pale);color:var(--danger)}.history-list{padding:4px 22px 20px}.history-row{border-bottom:1px solid var(--line);grid-template-columns:38px 1fr minmax(200px,.8fr);align-items:center;gap:13px;min-height:64px;display:grid}.history-icon{background:var(--sky-pale);width:34px;height:34px;color:var(--sky-deep);border-radius:11px;place-items:center;display:grid}.history-icon svg{width:17px;height:17px}.history-row p{color:var(--muted);margin:4px 0 0;font-size:11px}.history-row code{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);text-align:right;font-size:10px;overflow:hidden}.empty-state{text-align:center;min-height:240px;color:var(--muted);place-content:center;justify-items:center;display:grid}.empty-state span,.empty-icon{background:var(--soft);width:48px;height:48px;color:var(--muted);border:1px solid var(--line);border-radius:12px;place-items:center;margin-bottom:12px;display:grid}.empty-icon svg{width:22px;height:22px}.empty-state p{max-width:320px;margin:7px 0 0;font-size:12px}.admin-loading{place-content:center;justify-items:center;gap:12px;min-height:100vh;display:grid}.admin-loading a{color:var(--sky);font-weight:700}.admin-auth-shell{background:var(--page);grid-template-columns:minmax(360px,.9fr) minmax(460px,1.1fr);min-height:100vh;display:grid}.admin-auth-intro{color:#fff;background:linear-gradient(160deg,#1f7ae0 0%,#3b9eff 55%,#59b4ff 100%);flex-direction:column;justify-content:space-between;padding:56px clamp(36px,6vw,86px);display:flex;position:relative;overflow:hidden}.admin-auth-intro .geo-layer{opacity:.95}.auth-brand{z-index:1;align-items:center;gap:12px;width:fit-content;display:flex;position:relative}.auth-brand .brand-mark{color:var(--sky-deep);background:#fff}.auth-brand>span:last-child{display:grid}.auth-brand strong{font-size:19px}.auth-brand small{color:#ffffffb3;margin-top:3px;font-size:10px}.admin-auth-intro h1{letter-spacing:-.03em;z-index:1;margin:14px 0 20px;font-size:clamp(36px,4.2vw,58px);line-height:1.15;position:relative}.admin-auth-intro>div>p:last-child{color:#ffffffd6;z-index:1;max-width:520px;line-height:1.85;position:relative}.auth-security-list{color:#ffffffe6;z-index:1;flex-wrap:wrap;gap:10px;font-size:12px;display:flex;position:relative}.auth-security-list span{background:#ffffff1f;border:1px solid #ffffff47;border-radius:8px;padding:8px 12px}.admin-auth-panel{place-items:center;padding:36px;display:grid}.auth-card{border:1px solid var(--line);background:#fff;border-radius:12px;width:min(100%,460px);padding:36px;animation:.4s both fade-up}.auth-card h2{margin:7px 0 8px;font-size:26px}.auth-description{color:var(--muted);margin:0 0 24px;font-size:13px}.auth-card label{color:var(--ink);gap:7px;margin-top:15px;font-size:12px;font-weight:700;display:grid}.auth-card label input{height:44px}.secret-input{width:100%;display:block;position:relative}.secret-input input{width:100%;padding-right:44px}.secret-toggle{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.secret-toggle:hover,.secret-toggle:focus-visible{background:var(--sky-pale);color:var(--sky-deep);outline:none}.eye-icon{width:18px;height:12px;display:block;position:relative}.eye-icon:before{content:"";border:1.6px solid;border-radius:70% 20%;position:absolute;inset:0;transform:rotate(45deg)}.eye-icon:after{content:"";background:currentColor;border-radius:50%;width:5px;height:5px;position:absolute;top:3.5px;left:6.5px}.eye-icon.closed{opacity:.58;background:linear-gradient(45deg,#0000 45%,currentColor 47% 53%,#0000 55%)}.auth-card .primary-button{width:100%;margin-top:20px}.auth-card .text-button{width:100%}.password-tip{color:var(--muted);margin:12px 0 0;font-size:10px;line-height:1.6}.security-question{background:var(--sky-pale);color:var(--sky-deep);border-radius:8px;padding:14px;font-weight:700}.setup-code-details{color:var(--muted);margin-top:14px;font-size:11px}.setup-code-details .secret-input{margin-top:10px}.admin-notice{background:var(--ok-pale);color:var(--ok);border-radius:8px;justify-content:space-between;margin:18px 24px 0;padding:12px 16px;display:flex}.admin-notice button{color:inherit;background:0 0;border:0}.toolbar-buttons{flex-wrap:wrap;gap:8px;display:flex}.notify-panel{border:1px solid var(--line);background:var(--soft);border-radius:12px;margin:0 0 16px;padding:16px}.notify-panel-head{justify-content:space-between;align-items:start;gap:12px;margin-bottom:12px;display:flex}.notify-panel-head h3{color:var(--ink);margin:0;font-size:15px}.notify-panel-head p{color:var(--muted);margin:4px 0 0;font-size:12px}.notify-employee-list{gap:8px;max-height:280px;padding-right:4px;display:grid;overflow:auto}.notify-employee-row{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;grid-template-columns:18px 36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.notify-employee-row.selected{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.notify-employee-row.selected{border-color:color-mix(in srgb, var(--brand) 35%, var(--line))}}.notify-employee-row.selected{background:var(--brand-pale)}.notify-employee-row.disabled{opacity:.55;cursor:not-allowed}.notify-employee-row strong{color:var(--ink);font-size:13px;display:block}.notify-employee-row em{color:var(--muted);margin-top:2px;font-size:11px;font-style:normal;display:block}.notify-panel-actions{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:12px;font-weight:700;display:flex}.payroll-list-wrap{padding:0 16px 18px}.payroll-list{gap:8px;display:grid}.payroll-list-row{border:1px solid var(--line);background:var(--soft);width:100%;min-height:52px;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;display:flex}.payroll-list-row:hover,.payroll-list-row.active{border-color:var(--sky-deep)}@supports (color:color-mix(in lab, red, red)){.payroll-list-row:hover,.payroll-list-row.active{border-color:color-mix(in srgb, var(--sky-deep) 35%, var(--line))}}.payroll-list-row:hover,.payroll-list-row.active{background:#fff}.payroll-list-row.has-feedback{border-color:var(--warn,#d4a017)}@supports (color:color-mix(in lab, red, red)){.payroll-list-row.has-feedback{border-color:color-mix(in srgb, var(--warn,#d4a017) 40%, var(--line))}}.payroll-list-identity{align-items:center;gap:10px;min-width:0;display:inline-flex}.payroll-list-identity strong{white-space:nowrap;font-size:14px;font-weight:700}.payroll-status-tag{height:22px;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.payroll-status-tag.is-generated,.payroll-status-tag.is-notified{color:var(--sky-deep);background:var(--brand-pale,#e8f3ff);box-shadow:inset 0 0 0 1px var(--sky-deep)}@supports (color:color-mix(in lab, red, red)){.payroll-status-tag.is-generated,.payroll-status-tag.is-notified{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sky-deep) 30%, var(--line))}}.payroll-status-tag.is-confirmed,.payroll-status-tag.is-resolved,.payroll-status-tag.is-paid{color:#1f7a58;background:var(--ok-pale);box-shadow:inset 0 0 0 1px #2f9e7a}.payroll-status-tag.is-feedback{color:#9a6b12;background:var(--warn-pale);box-shadow:inset 0 0 0 1px #d4a017}.payroll-list-meta{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:10px 14px;min-width:0;margin-left:auto;display:inline-flex}.payroll-list-meta em{color:var(--muted);font-size:12px;font-style:normal;font-weight:600}.payroll-list-meta b{color:var(--sky-deep);font-size:14px;font-weight:750}.payroll-list-action{color:var(--sky-deep);flex-shrink:0;font-size:12px;font-weight:700}.payroll-list-feedback{color:#9a6b12;text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1 0 100%;font-size:12px;overflow:hidden}.payroll-toolbar{align-items:flex-start}.payroll-toolbar .att-view-switch{margin-top:10px}.payroll-modal{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;width:min(720px,100vw - 32px);max-height:calc(100vh - 40px);display:flex;overflow:hidden;box-shadow:0 22px 56px #12284638}.payroll-modal-summary{border-bottom:1px solid var(--line);background:#f4f8fc;flex-shrink:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 16px 12px;display:grid}.payroll-modal-summary div{box-shadow:inset 0 0 0 1px var(--line);background:#fff;border-radius:8px;gap:2px;padding:8px 10px;display:grid}.payroll-modal-summary span{color:var(--muted);font-size:11px;font-weight:700}.payroll-modal-summary strong{font-variant-numeric:tabular-nums;font-size:16px;font-weight:750}.payroll-modal-summary .is-net{background:var(--sky-pale);box-shadow:inset 0 0 0 1px var(--sky-deep)}@supports (color:color-mix(in lab, red, red)){.payroll-modal-summary .is-net{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sky-deep) 25%, var(--line))}}.payroll-modal-summary .is-net strong{color:var(--sky-deep)}.payroll-modal-body{flex:1;gap:14px;min-height:0;padding:12px 16px 16px;display:grid;overflow:auto}.payroll-modal-section h3{color:var(--ink);margin:0 0 8px;font-size:13px;font-weight:750}.payroll-modal-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.payroll-modal-fields label{color:var(--muted);gap:6px;margin:0;font-size:12px;font-weight:700;display:grid}.payroll-modal-fields .money-input{border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#fff8e8;border-radius:8px;width:100%;height:40px;padding:0 12px;font-size:14px;font-weight:700}.payroll-modal-fields .money-input:focus{background:var(--sky-pale);outline:2px solid var(--sky)}@supports (color:color-mix(in lab, red, red)){.payroll-modal-fields .money-input:focus{outline:2px solid color-mix(in srgb, var(--sky) 35%, transparent)}}.payroll-modal-fields .money-input:focus{outline-offset:-1px}.payroll-modal-empty{color:var(--muted);margin:0;font-size:12px}.payroll-modal-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.payroll-modal-status .slip-status-select{min-width:140px;height:36px}.payroll-modal-feedback{background:var(--warn-pale);color:#9a6b12;border-radius:8px;margin:10px 0 0;padding:10px 12px;font-size:13px;line-height:1.45}@media (width<=720px){.payroll-list-meta{width:100%;margin-left:0}.payroll-list-action{margin-left:auto}.payroll-modal-fields,.payroll-modal-summary{grid-template-columns:1fr}}.payroll-sheet .notify-col{text-align:center;white-space:nowrap;width:64px;min-width:64px!important;padding:6px!important}.payroll-sheet .ack-col{vertical-align:middle;text-align:left;width:168px;max-width:180px;min-width:148px!important;padding:6px 8px!important}.payroll-sheet-wrap{border-top:1px solid var(--line);background:#fff;max-height:calc(100vh - 168px);overflow:auto}.payroll-sheet{table-layout:auto;min-width:max(100%,960px)}.payroll-sheet th,.payroll-sheet td{white-space:nowrap;min-width:88px;height:44px}.payroll-sheet th.item-col,.payroll-sheet td.item-col{min-width:96px}.payroll-sheet th.item-col span{text-overflow:ellipsis;max-width:110px;margin:0 auto;display:block;overflow:hidden}.payroll-sheet th.sum-col,.payroll-sheet td.calculated{font-variant-numeric:tabular-nums;min-width:92px!important}.payroll-sheet .name-col{width:96px;min-width:96px!important}.payroll-sheet .department-col{display:none}.payroll-sheet td.name-col{font-size:13px;padding-left:12px!important}.payroll-sheet .money-input{font-variant-numeric:tabular-nums;background:#fff8e8;min-width:88px;padding:0 10px}.payroll-sheet .money-input:focus{background:var(--sky-pale);outline:2px solid var(--sky)}@supports (color:color-mix(in lab, red, red)){.payroll-sheet .money-input:focus{outline:2px solid color-mix(in srgb, var(--sky) 35%, transparent)}}.payroll-sheet .money-input:focus{outline-offset:-2px}.payroll-sheet .net-column{color:var(--sky-deep);font-weight:750;background:var(--sky-pale)!important}.payroll-sheet th.net-column{background:var(--sky-pale)!important}@supports (color:color-mix(in lab, red, red)){.payroll-sheet th.net-column{background:color-mix(in srgb, var(--sky-pale) 70%, #e4eef8)!important}}.slip-cell{justify-items:stretch;gap:4px;min-width:0;display:grid}.slip-cell-actions{flex-wrap:wrap;gap:4px;display:flex}.slip-action-btn{border:1px solid var(--line);height:26px;color:var(--ink);white-space:nowrap;background:#fff;border-radius:6px;padding:0 8px;font-size:12px;font-weight:600}.slip-action-btn:hover:not(:disabled){background:var(--soft);border-color:var(--sky)}@supports (color:color-mix(in lab, red, red)){.slip-action-btn:hover:not(:disabled){border-color:color-mix(in srgb, var(--sky) 28%, var(--line))}}.slip-action-btn:hover:not(:disabled){color:var(--sky-deep)}.slip-action-btn.is-primary{border-color:var(--sky)}@supports (color:color-mix(in lab, red, red)){.slip-action-btn.is-primary{border-color:color-mix(in srgb, var(--sky) 35%, var(--line))}}.slip-action-btn.is-primary{background:var(--sky-pale);color:var(--sky-deep)}.slip-action-btn:disabled{opacity:.45;cursor:not-allowed}.slip-feedback{max-width:152px;color:var(--warn);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:11px;font-weight:600;line-height:1.35;overflow:hidden}.ack-badge{display:none}.slip-status-select{border:1px solid var(--line);width:100%;height:30px;color:var(--ink);background:#fff;border-radius:6px;padding:0 8px;font-size:12px;font-weight:700}.slip-status-select.is-none,.slip-status-select.is-pending{color:var(--muted);background:var(--soft)}.slip-status-select.is-generated{border-color:var(--sky)}@supports (color:color-mix(in lab, red, red)){.slip-status-select.is-generated{border-color:color-mix(in srgb, var(--sky) 35%, var(--line))}}.slip-status-select.is-generated{background:var(--sky-pale);color:var(--sky-deep)}.slip-status-select.is-notified{border-color:var(--sky)}@supports (color:color-mix(in lab, red, red)){.slip-status-select.is-notified{border-color:color-mix(in srgb, var(--sky) 45%, var(--line))}}.slip-status-select.is-notified{color:var(--sky-deep);background:#e8f3ff}.slip-status-select.is-confirmed{border-color:var(--sky)}@supports (color:color-mix(in lab, red, red)){.slip-status-select.is-confirmed{border-color:color-mix(in srgb, var(--sky) 40%, var(--line))}}.slip-status-select.is-confirmed{background:var(--sky-pale);color:var(--sky-deep)}.slip-status-select.is-feedback{border-color:var(--warn)}@supports (color:color-mix(in lab, red, red)){.slip-status-select.is-feedback{border-color:color-mix(in srgb, var(--warn) 40%, var(--line))}}.slip-status-select.is-feedback{background:var(--warn-pale);color:var(--warn)}.slip-status-select.is-resolved{border-color:var(--leave)}@supports (color:color-mix(in lab, red, red)){.slip-status-select.is-resolved{border-color:color-mix(in srgb, var(--leave) 35%, var(--line))}}.slip-status-select.is-resolved{background:var(--leave-pale);color:var(--leave)}.slip-status-select.is-paid{border-color:var(--sky)}@supports (color:color-mix(in lab, red, red)){.slip-status-select.is-paid{border-color:color-mix(in srgb, var(--sky) 40%, var(--line))}}.slip-status-select.is-paid{background:var(--sky-pale);color:var(--sky-deep)}.row-has-feedback{background:var(--warn-pale)}@supports (color:color-mix(in lab, red, red)){.row-has-feedback{background:color-mix(in srgb, var(--warn-pale) 40%, #fff)}}.row-has-feedback td.sticky-col{background:var(--warn-pale)}@supports (color:color-mix(in lab, red, red)){.row-has-feedback td.sticky-col{background:color-mix(in srgb, var(--warn-pale) 40%, #fff)}}.ack-feedback-cell{display:none}:is(.sheet-card:has(.payroll-sheet),.sheet-card:has(.payroll-list-wrap)){padding-bottom:0;overflow:hidden}:is(.sheet-card:has(.payroll-sheet) .sheet-toolbar,.sheet-card:has(.payroll-list-wrap) .sheet-toolbar){padding:16px 18px 14px}:is(.sheet-card:has(.payroll-sheet) .notify-panel,.sheet-card:has(.payroll-list-wrap) .notify-panel){margin:0 18px 14px}.item-row.sortable-row{grid-template-columns:30px 56px 1fr 100px 72px 42px}.sortable-row{cursor:grab;transition:background .15s,opacity .15s}.sortable-row:hover{background:var(--soft)}.sortable-row.dragging{opacity:.45;background:var(--sky-pale)}.drag-handle{color:#9aa8b5;letter-spacing:-3px;cursor:grab;font-weight:900}.sort-buttons{gap:4px;display:flex}.sort-buttons button{border:1px solid var(--line);width:30px;height:28px;color:var(--sky-deep);background:#fff;border-radius:6px}.sort-buttons button:disabled{opacity:.3}.history-row{grid-template-columns:38px minmax(0,1fr) auto;padding:8px 0}.history-main{min-width:0}.history-main small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.restore-button{border:1px solid var(--brand);padding:7px 13px}@supports (color:color-mix(in lab, red, red)){.restore-button{border:1px solid color-mix(in srgb, var(--brand) 28%, var(--line))}}.restore-button{background:var(--sky-pale);color:var(--sky-deep);border-radius:8px;font-size:11px;font-weight:800}.history-main strong{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.history-id{color:var(--muted);font-size:11px;font-style:normal;font-weight:700}.history-row.is-audit-only{opacity:.92}.restore-button:disabled{opacity:.5;cursor:not-allowed}.history-tag{background:var(--soft);color:var(--muted);cursor:help;border-radius:6px;padding:5px 9px;font-size:10px}.month-chip{background:var(--sky-pale);color:var(--sky-deep);border-radius:6px;padding:7px 11px;font-size:11px;font-weight:800}.import-grid{grid-template-columns:repeat(3,1fr);gap:14px;padding:22px;display:grid}.import-step{border:1px solid var(--line);background:var(--soft);border-radius:10px;min-height:190px;padding:22px}.step-icon{background:var(--sky);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.step-icon svg{width:17px;height:17px}.import-step h3{margin:16px 0 7px;font-size:15px}.import-step p{min-height:36px;color:var(--muted);margin:0 0 14px;font-size:11px;line-height:1.6}.segmented{background:var(--brand-pale);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));padding:3px;display:grid}.segmented button{height:34px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-size:11px;font-weight:600}.segmented button.active{color:var(--sky-deep);border:1px solid var(--line);background:#fff;font-weight:800}.file-input{width:100%;color:var(--muted);font-size:10px}.file-input::file-selector-button{border:1px solid var(--line);color:var(--sky-deep);background:#fff;border-radius:7px;margin-right:9px;padding:8px 10px}.import-preview{background:var(--soft);border:1px solid var(--line);border-radius:10px;margin:0 22px 22px;padding:20px}.preview-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;display:flex}.preview-heading h3{margin:0;font-size:15px}.preview-heading p{color:var(--muted);margin:4px 0 0;font-size:11px}.primary-button.compact{width:auto;padding:0 18px}.preview-table-wrap{overflow:auto}.import-preview table{border-collapse:collapse;width:100%;font-size:11px}.import-preview th,.import-preview td{border-bottom:1px solid var(--line);text-align:left;padding:9px 10px}.import-preview th{color:var(--muted)}.import-preview>small{color:var(--muted);margin-top:10px;display:block}.settings-layout{grid-template-columns:1.2fr .8fr;gap:14px;padding-bottom:72px;display:grid}.settings-layout>.settings-card:first-child,.settings-card-wide{grid-column:1/-1}.settings-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:16px 18px 18px}.settings-heading{align-items:flex-start;gap:12px;margin-bottom:4px;display:flex}.settings-heading>div{flex:1;min-width:0}.settings-heading h2{margin:0;font-size:16px;font-weight:750}.settings-heading p{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.45}.settings-heading code,.backup-hint code,.settings-heading p code{background:var(--soft);border-radius:4px;padding:1px 5px;font-size:11px}.settings-block{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.settings-block:first-of-type{margin-top:10px}.settings-block h3{color:var(--ink);margin:0 0 10px;font-size:13px;font-weight:750}.settings-icon{background:var(--sky-pale);width:38px;height:38px;color:var(--sky-deep);border-radius:8px;place-items:center;font-size:12px;font-weight:900;display:grid}.settings-status{background:var(--warn-pale);color:var(--warn);border-radius:6px;flex-shrink:0;padding:5px 9px;font-size:10px;font-weight:800}.settings-status.ready{background:var(--ok-pale);color:var(--ok)}.settings-fields{grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:0;display:grid}.settings-fields.single,.settings-fields.settings-fields-stack{grid-template-columns:1fr}.settings-field-row{grid-column:1/-1;align-items:end;gap:12px;display:flex}.settings-field-grow{flex:1;min-width:0}.settings-inline-switch{flex-shrink:0;align-items:center;height:38px;margin-bottom:0;display:flex!important}.login-bg-picker{gap:12px;margin-top:0;display:grid}.login-bg-picker-main{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.login-bg-color-field{color:var(--ink);gap:6px;font-size:11px;font-weight:700;display:grid}.login-bg-color-controls{align-items:center;gap:8px;display:flex}.login-bg-color-controls input[type=color]{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;width:42px;height:38px;padding:3px}.login-bg-hex{border:1px solid var(--line);width:104px;height:38px;color:var(--ink);border-radius:8px;padding:0 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:600}.login-bg-preview{border:1px solid var(--line);border-radius:10px;flex:1;place-items:center;min-width:140px;height:56px;display:grid}.login-bg-preview span{color:#1a2e2a;background:#ffffffb8;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700}.login-bg-swatches{flex-wrap:wrap;gap:8px;display:flex}.login-bg-swatch{cursor:pointer;border:1px solid #0000001f;border-radius:999px;width:28px;height:28px;padding:0}.login-bg-swatch.selected{outline:2px solid var(--sky-deep);outline-offset:2px}.settings-fields label{color:var(--ink);gap:6px;font-size:11px;font-weight:700;display:grid}.settings-fields input{height:38px}.settings-fields input:disabled{background:var(--soft);color:var(--muted)}.backup-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.backup-panel{border:1px solid var(--line);background:var(--soft);border-radius:10px;padding:12px}.backup-panel h3{margin:0;font-size:13px;font-weight:750}.backup-panel>p{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.4}.backup-panel .settings-fields{margin-top:10px}.backup-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.backup-actions .primary-button.compact,.backup-actions .secondary-button{height:34px;padding:0 12px;font-size:12px}.backup-hint{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.45}.security-callout,.domain-guide{background:var(--soft);color:var(--muted);border-radius:8px;margin-top:12px;padding:10px 12px;font-size:12px;line-height:1.55}.security-callout.compact{margin-top:10px;padding:8px 10px;font-size:11px}.domain-guide strong{color:var(--sky-deep);margin-bottom:3px;display:block}.domain-guide p{margin:0}.settings-actions{z-index:8;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border-radius:12px;grid-column:1/-1;justify-content:flex-end;align-items:center;gap:12px;margin-top:4px;padding:10px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 8px 24px #12284614}.settings-actions-tip{color:var(--muted);margin-right:auto;font-size:12px;font-weight:600}.settings-actions .primary-button{width:auto;min-width:132px;height:38px;padding:0 18px}@media (width<=1000px){.admin-auth-shell{grid-template-columns:1fr}.admin-auth-intro{min-height:320px;padding:36px}.auth-security-list{margin-top:30px}.import-grid,.settings-layout,.backup-grid{grid-template-columns:1fr}.settings-actions{grid-column:1}}@media (width<=900px){.login-shell{background:#fff;grid-template-columns:1fr;place-items:center;min-height:100dvh}.login-visual,.login-characters-wrap{display:none!important}.login-form-side{width:100%;min-height:100dvh;padding:24px 20px max(28px, env(safe-area-inset-bottom));align-content:center;place-items:center}.login-form-card{width:min(360px,100%)}.admin-entry{top:18px;right:18px}.management-grid{grid-template-columns:1fr}}@media (width<=720px){.admin-shell{grid-template-columns:1fr;min-height:100dvh}.admin-sidebar{display:none}.admin-main{padding-bottom:84px}.admin-mobile-nav{z-index:30;border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:6px;display:grid;position:fixed;bottom:10px;left:10px;right:10px}.admin-mobile-nav button{border-radius:12px;flex-direction:column;justify-content:center;gap:4px;height:58px;padding:0 2px;font-size:11px}.admin-mobile-nav button em{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-weight:700;display:block;overflow:hidden}.admin-mobile-nav .nav-icon{border-radius:9px;width:28px;height:28px}.admin-mobile-nav .nav-icon svg{width:15px;height:15px}.admin-mobile-nav button.active{background:var(--brand-pale);color:var(--brand)}}@media (width<=620px){.login-center{padding:72px 20px 40px}.login-form-side{padding:20px 16px max(28px, env(safe-area-inset-bottom))}.login-form-card h1{font-size:26px}.portal-header{padding:12px 14px max(12px, env(safe-area-inset-top));flex-direction:column;align-items:stretch;gap:12px;height:auto;min-height:0}.portal-brand-mark{border-radius:10px;width:36px;height:36px;font-size:16px}.portal-brand-copy .site-logo{font-size:16px}.portal-content{width:min(100% - 24px,720px);padding:16px 0 max(96px, calc(24px + env(safe-area-inset-bottom)))}.portal-tools{grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;display:grid}.portal-tools .month-picker{grid-column:1/-1;justify-content:space-between;width:100%}.portal-tools .month-display{flex:1;justify-content:center;min-width:0}.portal-save-btn{display:none}.portal-mobile-actions{display:block}.portal-ack{margin:8px 10px;padding:12px}.portal-ack-actions{grid-template-columns:1fr}.portal-ack-actions .primary-button,.portal-ack-actions .ghost-button{min-width:0}.portal-slip{border-radius:10px}.portal-slip-head{padding:14px 14px 8px}.portal-slip-name{font-size:18px}.portal-slip-foot{flex-direction:column;align-items:flex-start;padding:10px 14px 14px}.portal-hero{border-radius:6px;margin:0 10px 6px;padding:14px 12px 12px}.portal-net{font-size:clamp(30px,9vw,38px)}.portal-hero-meta{max-width:none}.portal-slip .portal-block{margin:0}.month-panel{width:auto;left:0;right:0}.attendance-calendar{grid-template-columns:repeat(5,minmax(0,1fr))}.admin-topbar{align-items:flex-start;gap:12px;padding:16px}.topbar-actions{flex-direction:column;align-items:flex-end;width:100%}.topbar-actions .month-picker{width:100%;max-width:280px}.admin-content{padding:12px 12px max(96px, calc(12px + env(safe-area-inset-bottom)))}.employee-row{grid-template-columns:32px 1fr 1fr auto}.employee-row input:nth-of-type(n+3),.employee-row .switch{display:none}.admin-auth-intro{min-height:240px;padding:24px 20px}.admin-auth-intro h1{font-size:28px}.admin-auth-panel{padding:16px}.auth-card{padding:24px 18px}.import-grid{padding:14px}.import-preview{margin:0 14px 14px;overflow-x:auto}.settings-fields{grid-template-columns:1fr}.item-row.sortable-row{grid-template-columns:24px 48px 1fr 42px}.sortable-row select,.sort-buttons{display:none}.admin-mobile-nav{left:8px;right:8px;bottom:max(8px, env(safe-area-inset-bottom))}.admin-mobile-nav button em{height:0;font-size:0;overflow:hidden}.admin-mobile-nav button{height:52px}}@media (width<=400px){.attendance-calendar{grid-template-columns:repeat(4,minmax(0,1fr))}.portal-hero-meta{grid-template-columns:1fr}.portal-stat+.portal-stat{border-left:0;border-top:1px solid var(--line)}@supports (color:color-mix(in lab, red, red)){.portal-stat+.portal-stat{border-top:1px solid color-mix(in srgb, var(--line) 80%, transparent)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
