@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap";.app[data-v-9961b35c]{min-height:100vh;background:linear-gradient(180deg,#f2e7e4,#f6f7f9 165px),#f6f7f9;color:var(--text);display:flex;flex-direction:column}.app--class-timetable[data-v-9961b35c]{background:linear-gradient(120deg,#d8e7f394,#dce6f29e 56%,#dddaf08f),var(--portal-home-bg)}.app--attendance[data-v-9961b35c],.app--duty-schedule[data-v-9961b35c],.app--teacher-timetable[data-v-9961b35c],.app--teacher-salary[data-v-9961b35c],.app--teacher-punch[data-v-9961b35c],.app--aid-result[data-v-9961b35c],.app--student-loan[data-v-9961b35c],.app--academic-completion[data-v-9961b35c],.app--thesis-guidance[data-v-9961b35c],.app--staff-security[data-v-9961b35c],.app--dorm-repair[data-v-9961b35c],.app--dorm-health[data-v-9961b35c],.app--swzl[data-v-9961b35c]{background:var(--portal-home-bg)}.app--sports[data-v-9961b35c]{background:linear-gradient(100deg,#d8e7f3,#dce6f2 56%,#dddaf0)}.app--campus-card-scan[data-v-9961b35c]{background:linear-gradient(180deg,#ffffff14,#faf7f657 170px,#f8f6f5 270px),url(/assets/library-banner-BakUgIo2.png) 62% top / auto 270px no-repeat,#f8f6f5}.app--forbidden[data-v-9961b35c]{background:#eaf4ff}.app--system-error[data-v-9961b35c]{background:var(--portal-home-bg)}.app__main[data-v-9961b35c]{flex:1;padding:24px 16px}.app__menu-back[data-v-9961b35c]{display:inline-flex;align-items:center;justify-content:center;margin:0 0 12px;border:1px solid rgba(141,178,218,.62);border-radius:12px;padding:8px 14px;color:#24528d;background:#ffffff8a;box-shadow:0 8px 20px #2c54821a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app__main--full[data-v-9961b35c]{padding:0}.app__main--class-timetable[data-v-9961b35c],.app__main--staff-security[data-v-9961b35c],.app__main--network-repair[data-v-9961b35c],.app__main--dorm-repair[data-v-9961b35c],.app__main--dorm-health[data-v-9961b35c],.app__main--forbidden[data-v-9961b35c],.app__main--system-error[data-v-9961b35c]{padding:0;background:var(--portal-home-bg)}html body #app .app .app__main--myuser{padding-top:0;padding-bottom:0}html body #app .app .app__main--campus-card{padding-top:0}html body #app .app .app__main--campus-card-scan{width:100%;max-width:none;min-height:100dvh;margin:0;padding:0;background:transparent}.app__main--class-timetable[data-v-9961b35c],.app__main--swzl[data-v-9961b35c]{background:transparent}html body #app .app .app__main--sports{width:100%;max-width:none;min-height:100dvh;margin:0;padding:0;background:transparent}html body #app .app.app--sports:before,html body #app .app.app--sports:after,html body #app .app.app--campus-card-scan:before,html body #app .app.app--campus-card-scan:after{display:none}html body #app .app.app--attendance:before,html body #app .app.app--attendance:after,html body #app .app.app--duty-schedule:before,html body #app .app.app--duty-schedule:after,html body #app .app.app--teacher-timetable:before,html body #app .app.app--teacher-timetable:after,html body #app .app.app--teacher-salary:before,html body #app .app.app--teacher-salary:after,html body #app .app.app--teacher-punch:before,html body #app .app.app--teacher-punch:after,html body #app .app.app--aid-result:before,html body #app .app.app--aid-result:after,html body #app .app.app--student-loan:before,html body #app .app.app--student-loan:after,html body #app .app.app--academic-completion:before,html body #app .app.app--academic-completion:after,html body #app .app.app--thesis-guidance:before,html body #app .app.app--thesis-guidance:after,html body #app .app.app--staff-security:before,html body #app .app.app--staff-security:after,html body #app .app.app--dorm-repair:before,html body #app .app.app--dorm-repair:after,html body #app .app.app--dorm-health:before,html body #app .app.app--dorm-health:after{display:none}html body #app .app .app__main--attendance,html body #app .app .app__main--duty-schedule,html body #app .app .app__main--teacher-timetable,html body #app .app .app__main--teacher-salary,html body #app .app .app__main--teacher-punch,html body #app .app .app__main--aid-result,html body #app .app .app__main--student-loan,html body #app .app .app__main--academic-completion,html body #app .app .app__main--thesis-guidance,html body #app .app .app__main--staff-security,html body #app .app .app__main--network-repair,html body #app .app .app__main--dorm-repair,html body #app .app .app__main--dorm-health{width:100%;max-width:none;min-height:100dvh;margin:0;padding:0;background:transparent}.app__main--forbidden[data-v-9961b35c]{min-height:100%;background:transparent}html body #app .app .app__main--forbidden{width:100%;max-width:none;min-height:100dvh;margin:0;padding:0;background:transparent}.app__main--system-error[data-v-9961b35c]{min-height:100%;background:transparent}html body #app .app .app__main--system-error{width:100%;max-width:none;min-height:100dvh;margin:0;padding:0;background:transparent}:root{--visitor-bg-top: #d8e7f3;--visitor-bg-mid: #dce6f2;--visitor-bg-bottom: #dbe8f4;--visitor-card: rgba(246, 252, 255, .66);--visitor-card-strong: rgba(255, 255, 255, .82);--visitor-border: rgba(151, 203, 238, .52);--visitor-shadow: 0 22px 52px rgba(44, 82, 124, .13);--visitor-shadow-soft: 0 16px 34px rgba(44, 82, 124, .1);--visitor-radius-xl: 30px;--visitor-radius-lg: 24px;--visitor-radius-md: 16px;--visitor-blue: #2f7bff;--visitor-cyan: #55c3f4;--visitor-violet: #7774d8;--visitor-navy: #142f49;--visitor-slate: #61758d;--visitor-green: #169a68;--visitor-green-soft: rgba(86, 206, 158, .18);--visitor-red: #cf4141;--visitor-red-soft: rgba(255, 126, 126, .18);--visitor-amber: #7460c8;--visitor-amber-soft: rgba(124, 112, 225, .18)}html body .app{position:relative;background:radial-gradient(circle at 20% 12%,rgba(93,198,245,.16),transparent 28%),radial-gradient(circle at 86% 18%,rgba(86,149,222,.1),transparent 30%),linear-gradient(100deg,var(--visitor-bg-top) 0%,var(--visitor-bg-mid) 56%,var(--visitor-bg-bottom) 100%)}html body #app .app:has(.visitor-home),html body #app .app:has(.visitor-apply),html body #app .app:has(.records),html body #app .app:has(.record-detail),html body #app .app:has(.pass-page),html body #app .app:has(.staff-list){background:radial-gradient(circle at 20% 12%,rgba(93,198,245,.16),transparent 28%),radial-gradient(circle at 86% 18%,rgba(86,149,222,.1),transparent 30%),linear-gradient(100deg,var(--visitor-bg-top) 0%,var(--visitor-bg-mid) 56%,var(--visitor-bg-bottom) 100%)}html body #app .app:has(.staff-home){background:transparent}html body .app:before,html body .app:after{content:"";position:fixed;border-radius:999px;filter:blur(110px);pointer-events:none;z-index:0}html body .app:before{top:74px;left:-84px;width:260px;height:260px;background:#49b2ff2e}html body .app:after{right:-92px;bottom:64px;width:280px;height:280px;background:#5695de1a}html body #app .app:has(.staff-home):before,html body #app .app:has(.staff-home):after{display:none}html body .app .app__main{position:relative;z-index:1;width:100%;max-width:840px;margin:0 auto;padding:24px 16px 54px}html body .app .app__main:has(.staff-home){max-width:none;padding:0}html body .app__main .visitor-home,html body .app__main .staff-home,html body .app__main .visitor-apply,html body .app__main .records,html body .app__main .record-detail,html body .app__main .pass-page,html body .app__main .staff-list{display:grid;gap:16px;width:100%;padding:0}html body .app__main .visitor-home__header,html body .app__main .staff-home>header,html body .app__main .visitor-apply__header,html body .app__main .records__header,html body .app__main .record-detail__header,html body .app__main .pass-page__header,html body .app__main .staff-list__header{position:relative;overflow:hidden;display:grid;min-height:128px;padding:24px 24px 26px;border-radius:var(--visitor-radius-xl);border:1px solid var(--visitor-border);background:radial-gradient(circle at 86% 4%,rgba(104,202,242,.2),transparent 32%),radial-gradient(ellipse at 22% 100%,rgba(96,186,244,.12),transparent 40%),linear-gradient(132deg,#def8ff94,#ffffff70 60%,#e8ecff5c);box-shadow:inset 0 1px #ffffffad,0 16px 36px #2c527c1a;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}html body .app__main .visitor-home__header:before,html body .app__main .staff-home>header:before,html body .app__main .visitor-apply__header:before,html body .app__main .records__header:before,html body .app__main .record-detail__header:before,html body .app__main .pass-page__header:before,html body .app__main .staff-list__header:before{content:"";position:absolute;right:-42px;top:-70px;width:214px;height:214px;border-radius:50%;background:radial-gradient(circle,#55c3f447,#55c3f400)}html body .app__main .visitor-home__header:after,html body .app__main .staff-home>header:after,html body .app__main .visitor-apply__header:after,html body .app__main .records__header:after,html body .app__main .record-detail__header:after,html body .app__main .pass-page__header:after,html body .app__main .staff-list__header:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(118deg,rgba(255,255,255,.18),transparent 42%),linear-gradient(180deg,transparent 0 72%,rgba(255,255,255,.3) 100%);pointer-events:none}html body .app__main .staff-home{position:relative;overflow:hidden;gap:0;min-height:100vh;border:0;border-radius:0;background:radial-gradient(circle at 78% 4%,rgba(85,195,244,.22),transparent 28%),radial-gradient(circle at 6% 24%,rgba(93,198,245,.16),transparent 24%),radial-gradient(circle at 92% 70%,rgba(86,149,222,.1),transparent 32%),linear-gradient(138deg,#def8ff9e,#ffffff8f 52%,#e8f3ff75);box-shadow:none;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}html body .app__main .staff-home>header{min-height:0;width:min(calc(100% - 24px),736px);margin:24px auto 0;padding:26px 190px 28px 34px;border:1px solid rgba(126,190,232,.42);border-radius:28px;background:radial-gradient(circle at 86% 18%,rgba(85,195,244,.16),transparent 30%),linear-gradient(135deg,#ffffff6b,#ffffff24),linear-gradient(180deg,#e8f9ff75,#ffffff1f);box-shadow:inset 0 1px #ffffffb8,0 16px 34px #2c527c17;-webkit-backdrop-filter:none;backdrop-filter:none}html body .app__main .staff-home>header{z-index:2}html body .app__main .staff-home>header:before{right:28px;top:30px;width:128px;height:88px;border-radius:22px;background:radial-gradient(circle at 34% 46%,rgba(47,123,255,.48) 0 12px,transparent 13px),radial-gradient(ellipse at 34% 72%,rgba(47,123,255,.36) 0 22px,transparent 23px),linear-gradient(90deg,transparent 58%,rgba(47,123,255,.22) 58% 86%,transparent 86%),linear-gradient(90deg,transparent 58%,rgba(47,123,255,.16) 58% 80%,transparent 80%),linear-gradient(140deg,#72bbff57,#ffffff1f);background-position:0 0,0 0,0 32px,0 52px,0 0;box-shadow:0 18px 30px #2f7bff14;opacity:.68;transform:rotate(-7deg)}html body .app__main .staff-home>header:after{background:linear-gradient(118deg,rgba(255,255,255,.2),transparent 48%),linear-gradient(180deg,transparent 0 70%,rgba(255,255,255,.2) 100%)}html body .app__main .staff-home__eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:12px}html body .app__main .staff-home__eyebrow:before{content:"";width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 50% 40%,transparent 0 5px,rgba(47,123,255,.95) 6px 7px,transparent 8px),radial-gradient(ellipse at 50% 70%,transparent 0 8px,rgba(47,123,255,.95) 9px 10px,transparent 11px),#ffffff9e;box-shadow:inset 0 1px #ffffffbd,0 8px 18px #2c527c14}html body .app__main .staff-home>header h1{font-size:32px;line-height:1.12}html body .app__main .staff-home>header p{margin-top:12px;font-size:15px;line-height:1.55}html body .app__main .visitor-home__eyebrow,html body .app__main .staff-home__eyebrow{position:relative;z-index:1;margin-bottom:8px;color:var(--visitor-blue);font-size:11px;font-weight:800;letter-spacing:0}html body .app__main .visitor-home__header h1,html body .app__main .staff-home>header h1,html body .app__main .visitor-apply__title h1,html body .app__main .records__title h1,html body .app__main .record-detail__title h1,html body .app__main .pass-page__title h1,html body .app__main .staff-list__title h1{position:relative;z-index:1;margin:0;color:var(--visitor-navy);font-size:25px;line-height:1.18;letter-spacing:0}html body .app__main .visitor-home__header p,html body .app__main .staff-home>header p,html body .app__main .visitor-apply__title p,html body .app__main .records__title p,html body .app__main .record-detail__title p,html body .app__main .pass-page__title p,html body .app__main .staff-list__title p{position:relative;z-index:1;max-width:34ch;margin:10px 0 0;color:var(--visitor-slate);font-size:14px;line-height:1.65}html body .app__main .visitor-apply__title p{max-width:32ch;text-align:left}html body .app__main .visitor-home__grid,html body .app__main .staff-home .grid{display:grid;gap:20px}html body .app__main .visitor-home__card,html body .app__main .staff-home .card{position:relative;overflow:hidden;display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:14px;min-height:150px;padding:24px 72px 24px 24px;border-radius:28px;border:1px solid var(--visitor-border);background:radial-gradient(circle at 7% 15%,rgba(99,205,245,.2),transparent 34%),linear-gradient(138deg,#def8ffb8,#ffffffb8 60%,#ebecff85);box-shadow:var(--visitor-shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}html body .app__main .visitor-home__card:after,html body .app__main .staff-home .card:after{content:"↗";position:absolute;right:26px;top:26px;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#ffffffbd;box-shadow:inset 0 1px #ffffffc2;color:var(--visitor-blue);font-size:24px;font-weight:800}html body .app__main .visitor-home__card-icon,html body .app__main .staff-home .card__index{display:grid;place-items:center;width:58px;height:58px;border-radius:20px;border:1px solid rgba(106,184,235,.36);background:#ffffff8a;color:var(--visitor-blue);font-size:15px;font-weight:800}html body .app__main .visitor-home__card:active,html body .app__main .staff-home .card:active{transform:translateY(1px) scale(.995)}@media(hover:hover){html body .app__main .visitor-home__card:hover,html body .app__main .staff-home .card:hover{transform:translateY(-2px);border-color:#4a92de80;box-shadow:0 24px 54px #2c527c26}}html body .app__main .visitor-home__card h2,html body .app__main .staff-home .card h2{margin:0;color:var(--visitor-navy);font-size:26px;line-height:1.2;letter-spacing:0}html body .app__main .visitor-home__card p,html body .app__main .staff-home .card p{max-width:26ch;margin:14px 0 0;color:var(--visitor-slate);font-size:14px;line-height:1.75}html body .app__main .staff-home .grid{position:relative;z-index:1;overflow:visible;gap:12px;width:min(100%,760px);margin:0 auto;padding:18px 12px 14px;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}html body .app__main .staff-home .grid:before{display:none}html body .app__main .staff-home .grid:after{display:none}html body .app__main .staff-home .card{grid-template-columns:50px minmax(0,1fr);min-height:126px;padding:20px 62px 20px 18px;border:1px solid rgba(126,190,232,.26);border-radius:22px;background:linear-gradient(135deg,#ffffff47,#ffffff1a),linear-gradient(180deg,#ffffff2e,#f0f9ff14);box-shadow:inset 0 1px #ffffff94,0 10px 24px #2c527c0d;-webkit-backdrop-filter:none;backdrop-filter:none}html body .app__main .staff-home .card+.card{border-top:1px solid rgba(126,190,232,.26);box-shadow:inset 0 1px #ffffff94,0 10px 24px #2c527c0d}html body .app__main .staff-home .card:after{right:16px;top:50%;width:42px;height:42px;background:#ffffff7a;box-shadow:inset 0 1px #ffffffb8,0 8px 20px #3e7fd614;font-size:22px;transform:translateY(-50%)}html body .app__main .staff-home .card__index{width:48px;height:48px;border-radius:17px;background:#f7fcff85;box-shadow:inset 0 1px #ffffffa8;font-size:14px}html body .app__main .staff-home .card h2{font-size:24px}html body .app__main .staff-home .card p{max-width:28ch;margin-top:9px;line-height:1.65}@media(hover:hover){html body .app__main .staff-home .card:hover{transform:none;border-color:#4a92de57;background:linear-gradient(135deg,#ffffff57,#ffffff24),linear-gradient(180deg,#fff3,#f0f9ff1a);box-shadow:inset 0 1px #ffffffa3,0 12px 26px #2c527c12}}html body .app__main .visitor-apply__header,html body .app__main .records__header,html body .app__main .record-detail__header,html body .app__main .pass-page__header,html body .app__main .staff-list__header{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:14px;margin-bottom:0}html body .app__main .visitor-apply__back,html body .app__main .records__back,html body .app__main .record-detail__back,html body .app__main .pass-page__back,html body .app__main .staff-list__back{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;min-width:78px;min-height:42px;padding:0 18px;border:none;border-radius:999px;background:linear-gradient(135deg,#2483ff,#2b68f5);color:#fff;font-size:14px;font-weight:800;box-shadow:0 12px 22px #2563eb33;-webkit-backdrop-filter:none;backdrop-filter:none;cursor:pointer}html body .app__main .visitor-apply__title,html body .app__main .records__title,html body .app__main .record-detail__title,html body .app__main .pass-page__title,html body .app__main .staff-list__title{position:relative;z-index:1;min-width:0;justify-self:end;max-width:480px;padding:0;text-align:right}html body .app__main .visitor-apply__title p,html body .app__main .records__title p,html body .app__main .record-detail__title p,html body .app__main .pass-page__title p,html body .app__main .staff-list__title p{margin-left:auto}html body .app__main .visitor-apply .panel,html body .app__main .record-detail .detail-card,html body .app__main .pass-page .panel,html body .app__main .staff-list .detail,html body .app__main .records__card,html body .app__main .staff-list .card,html body .app__main .records__empty,html body .app__main .staff-list .empty,html body .app__main .record-detail .state,html body .app__main .records__recover{border-radius:var(--visitor-radius-lg);border:1px solid var(--visitor-border);background:radial-gradient(circle at 0% 0%,rgba(106,203,244,.16),transparent 38%),linear-gradient(140deg,#eefaffb8,#ffffffd1 62%,#edeeff80);box-shadow:var(--visitor-shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}html body .app__main .visitor-apply__header+.panel,html body .app__main .records__header+.records__empty,html body .app__main .records__header+.records__card,html body .app__main .record-detail__header+.state,html body .app__main .record-detail__header+.detail-card,html body .app__main .staff-list__header+.card,html body .app__main .staff-list__header+.empty{position:relative;z-index:2}html body .app__main .visitor-apply .panel{position:relative;padding:18px}html body .app__main .visitor-apply .panel h2,html body .app__main .record-detail .detail__section h3,html body .app__main .staff-list .detail__section h3{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:var(--visitor-navy);font-size:18px;line-height:1.2;letter-spacing:0}html body .app__main .visitor-apply .panel h2:before,html body .app__main .record-detail .detail__section h3:before,html body .app__main .staff-list .detail__section h3:before{content:"";width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--visitor-blue),var(--visitor-cyan));box-shadow:0 0 0 6px #4aabff24}html body .app__main .visitor-apply label span,html body .app__main .record-detail .detail__grid p span,html body .app__main .pass-page .panel__grid p span,html body .app__main .staff-list .detail__grid p span,html body .app__main .pass-page .reason span,html body .app__main .records__recover label span{color:var(--visitor-slate);font-size:12px;font-weight:700;letter-spacing:0}html body .app__main .visitor-apply input,html body .app__main .visitor-apply textarea,html body .app__main .visitor-apply select,html body .app__main .visitor-apply .datetime-split input,html body .app__main .records__recover-grid input,html body .app__main .records__captcha-input input{border:1px solid rgba(163,196,225,.64);border-radius:14px;background:#ffffffd1;color:var(--visitor-navy);box-shadow:inset 0 1px #ffffffb8}html body .app__main .visitor-apply input:focus,html body .app__main .visitor-apply textarea:focus,html body .app__main .records__recover-grid input:focus,html body .app__main .records__captcha-input input:focus{outline:none;border-color:#3a8aff9e;box-shadow:inset 0 1px #ffffffb8,0 0 0 4px #308dff21}html body .app__main .visitor-apply textarea{min-height:96px}html body .app__main .visitor-apply .avatar-upload,html body .app__main .visitor-apply .companion,html body .app__main .visitor-apply .picked-card{border-radius:22px;border:1px solid rgba(169,198,228,.38);background:#ffffff7a}html body .app__main .visitor-apply .avatar-upload{grid-template-columns:1fr;justify-items:center;min-height:184px;padding:22px 16px 20px;border-style:dashed;background:#ffffff5c}html body .app__main .visitor-apply .avatar-picker{box-sizing:border-box;border:1px solid rgba(112,160,222,.42);background:#ecf3ffad;box-shadow:inset 0 1px #ffffffb8,0 10px 22px #5384c41f}html body .app__main .visitor-apply .avatar-preview{object-fit:cover;object-position:center}html body .app__main .visitor-apply .avatar-tip{max-width:100%;text-align:center;white-space:nowrap}html body .app__main .visitor-apply .avatar-upload:not(.companion-avatar-upload) .avatar-tip{color:var(--visitor-red);font-size:14px;font-weight:700;line-height:1.45}html body .app__main .visitor-apply .host-list{display:grid;gap:12px}html body .app__main .visitor-apply .host-list li,html body .app__main .record-detail .detail__grid p,html body .app__main .staff-list .detail__grid p,html body .app__main .pass-page .panel__grid p,html body .app__main .record-detail .detail__timeline li,html body .app__main .staff-list .detail__timeline li,html body .app__main .record-detail .companion-card,html body .app__main .staff-list .companion-card{border:1px solid rgba(154,189,220,.34);border-radius:18px;background:#ffffffad}html body .app__main .visitor-apply .host-list li{padding:15px}html body .app__main .visitor-apply .host-list__item--active{border-color:#348cff7a;box-shadow:0 10px 26px #3588ff26}html body .app__main .visitor-apply .actions{position:sticky;bottom:12px;z-index:5;padding:12px;border-radius:22px;background:#eff9ffdb;border:1px solid rgba(150,193,230,.42);box-shadow:0 16px 36px #1f49762b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}html body .app__main .visitor-apply .actions button,html body .app__main .records__actions button,html body .app__main .records__recover-actions button,html body .app__main .record-detail .actions button,html body .app__main .staff-list .actions button,html body .app__main .visitor-apply .line-btn,html body .app__main .visitor-apply .btn-line>button,html body .app__main .visitor-apply .picked-card__clear{min-height:46px;border-radius:16px;font-weight:700}html body .app__main .visitor-apply .actions .primary,html body .app__main .records__actions button:first-child,html body .app__main .records__recover-actions button,html body .app__main .record-detail .actions .primary,html body .app__main .staff-list .actions button:not(.line):not(.danger),html body .app__main .visitor-apply .btn-line>button,html body .app__main .visitor-apply .line-btn{border:none;background:linear-gradient(135deg,var(--visitor-blue),var(--visitor-cyan));color:#fff;box-shadow:0 12px 26px #2277ff3d}html body .app__main .records__empty,html body .app__main .staff-list .empty,html body .app__main .record-detail .state{min-height:132px;display:grid;place-items:center;padding:24px;color:var(--visitor-slate);font-size:15px}html body .app__main .records__card,html body .app__main .staff-list .card{position:relative;overflow:hidden;padding:16px}html body .app__main .records__card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}html body .app__main .staff-list .card{display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:12px;min-height:0}html body .app__main .records__card h2,html body .app__main .staff-list .card h2{margin:0;color:var(--visitor-navy);font-size:16px;line-height:1.35;letter-spacing:0}html body .app__main .records__card p,html body .app__main .staff-list .card>div>p,html body .app__main .staff-list .card>p{margin:6px 0 0;color:var(--visitor-slate);font-size:13px;line-height:1.55}html body .app__main .staff-list .card__meta,html body .app__main .staff-list .card>div:not(.actions):not(.detail){min-width:0;flex:1 1 220px}html body .app__main .staff-list .card>h2,html body .app__main .staff-list .card>p{flex:0 0 100%}html body .app__main .staff-list .card h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}html body .app__main .staff-list .card__date{color:var(--visitor-navy);font-weight:700}html body .app__main .staff-list .actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:2px 0 0 auto}html body .app__main .staff-list .actions button{flex:0 0 auto;min-width:58px;min-height:38px;padding:8px 13px;border-radius:14px;font-size:12px;white-space:nowrap;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}html body .app__main .staff-list .detail{flex:0 0 100%;width:100%;min-width:0;margin-top:0;display:grid;gap:14px;border-radius:20px;border:1px solid rgba(154,189,220,.32);background:radial-gradient(circle at 100% 0%,rgba(85,195,244,.12),transparent 32%),linear-gradient(140deg,#ebf8ff94,#ffffff75);box-shadow:inset 0 1px #ffffff94,0 10px 22px #2c527c0d}html body .app__main .staff-list .detail__loading,html body .app__main .staff-list .muted{margin:0;color:var(--visitor-slate);font-size:12px}html body .app__main .staff-list .detail__section{display:grid;gap:10px}html body .app__main .record-detail .detail__grid,html body .app__main .staff-list .detail__grid,html body .app__main .pass-page .panel__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}html body .app__main .staff-list .detail__grid p.full,html body .app__main .record-detail .detail__grid p.full{grid-column:1 / -1}html body .app__main .staff-list .detail__grid p,html body .app__main .record-detail .detail__grid p,html body .app__main .pass-page .panel__grid p{min-width:0;display:grid;gap:4px;color:var(--visitor-navy);overflow-wrap:anywhere}html body .app__main .record-detail .timeline-head,html body .app__main .staff-list .timeline-head,html body .app__main .record-detail .companion-card__main,html body .app__main .staff-list .companion-card__main{display:flex;flex-wrap:wrap;align-items:center;gap:8px}html body .app__main .record-detail .companion-card__main,html body .app__main .staff-list .companion-card__main{justify-content:space-between}html body .app__main .record-detail .companion-card__main strong,html body .app__main .staff-list .companion-card__main strong{color:var(--visitor-navy);font-size:13px}html body .app__main .record-detail .companion-card__main span,html body .app__main .staff-list .companion-card__main span,html body .app__main .record-detail .companion-card small,html body .app__main .staff-list .companion-card small,html body .app__main .record-detail .timeline-meta,html body .app__main .staff-list .timeline-meta{color:var(--visitor-slate);font-size:12px}html body .app__main .record-detail .timeline-meta,html body .app__main .staff-list .timeline-meta{display:flex;flex-wrap:wrap;gap:8px 12px}html body .app__main .records__card--passed,html body .app__main .staff-list .card--passed{border-color:#58be9673;background:radial-gradient(circle at 8% 0%,rgba(86,206,158,.18),transparent 34%),linear-gradient(138deg,#ebfff8c2,#ffffffd1)}html body .app__main .records__card--waiting,html body .app__main .staff-list .card--waiting{border-color:#7e8ce173;background:radial-gradient(circle at 8% 0%,rgba(124,132,226,.18),transparent 34%),linear-gradient(138deg,#f0f4ffc7,#ffffffd6)}html body .app__main .records__card--denied,html body .app__main .staff-list .card--denied{border-color:#e074746b;background:radial-gradient(circle at 8% 0%,rgba(255,128,128,.15),transparent 34%),linear-gradient(138deg,#fff2f4c2,#ffffffd6)}html body .app__main .records__actions .line,html body .app__main .record-detail .actions .line,html body .app__main .staff-list .actions .line{border:1px solid rgba(150,193,230,.45);background:#ffffffd6;color:var(--visitor-navy)}html body .app__main .records__actions .danger,html body .app__main .record-detail .actions .danger,html body .app__main .staff-list .actions .danger,html body .app__main .visitor-apply .companion .danger{border:1px solid rgba(224,116,116,.24);background:#ffe8e8eb;color:var(--visitor-red)}html body .app__main .records__recover{display:grid;gap:14px;padding:20px}html body .app__main .records__recover h2{margin:0;color:var(--visitor-navy);font-size:19px}html body .app__main .records__recover p{margin:0;color:var(--visitor-slate);font-size:13px;line-height:1.65}html body .app__main .records__captcha-image{border-color:#96c1e67a;border-radius:16px;background:#ffffffd1;color:var(--visitor-slate)}html body .app__main .record-detail .detail-card,html body .app__main .staff-list .detail{padding:20px}html body .app__main .staff-list .detail{gap:10px;padding:10px}html body .app__main .record-detail .detail__grid,html body .app__main .staff-list .detail__grid,html body .app__main .pass-page .panel__grid{gap:14px}html body .app__main .record-detail .detail__grid p,html body .app__main .staff-list .detail__grid p,html body .app__main .pass-page .panel__grid p{padding:14px 16px}html body .app__main .staff-list .detail__grid .detail-field{min-height:38px;align-content:start;gap:3px;padding:6px 8px;border-radius:10px}html body .app__main .staff-list .detail__grid .detail-field--wide{grid-column:1 / -1}html body .app__main .staff-list .detail__grid .detail-field span{color:var(--visitor-slate);font-size:10px;line-height:1}html body .app__main .staff-list .detail__grid .detail-field strong{color:var(--visitor-navy);font-size:12px;font-weight:700;line-height:1.28}html body .app__main .staff-list .detail__grid .detail-field--wide strong{font-weight:600;line-height:1.4}html body .app__main .record-detail .companion-cards,html body .app__main .staff-list .companion-cards,html body .app__main .record-detail .detail__timeline,html body .app__main .staff-list .detail__timeline{display:grid;gap:12px}html body .app__main .staff-list .companion-cards,html body .app__main .staff-list .detail__timeline{gap:6px}html body .app__main .record-detail .companion-card,html body .app__main .staff-list .companion-card,html body .app__main .record-detail .detail__timeline li,html body .app__main .staff-list .detail__timeline li{padding:14px 16px}html body .app__main .staff-list .companion-card,html body .app__main .staff-list .detail__timeline li{padding:7px 8px}html body .app__main .record-detail .timeline-step,html body .app__main .staff-list .timeline-step{padding:4px 10px;border-radius:999px;background:#2983ff1f;color:var(--visitor-blue);font-size:12px;font-weight:700}html body .app__main .record-detail .timeline-approver,html body .app__main .staff-list .timeline-approver{color:var(--visitor-navy);font-weight:700}html body .app__main .record-detail .timeline-status,html body .app__main .staff-list .timeline-status{padding:4px 10px;border-radius:999px;background:#7c70e11f;color:var(--visitor-violet);font-size:12px;font-weight:700}html body .app__main .staff-list .approval-dialog-mask{background:#0f243a42;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}html body .app__main .staff-list .approval-dialog{width:min(92vw,380px);margin:0 auto;display:grid;gap:12px;padding:18px;border-radius:24px;border:1px solid rgba(151,203,238,.5);background:radial-gradient(circle at 100% 0%,rgba(85,195,244,.16),transparent 36%),linear-gradient(140deg,#eefaffe0,#ffffffe6 62%,#edeeffa3);box-shadow:0 22px 46px #133a5f2e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}html body .app__main .staff-list .approval-dialog h3{margin:0;color:var(--visitor-navy);font-size:17px}html body .app__main .staff-list .approval-dialog textarea{width:100%;min-height:92px;padding:12px 14px;border-radius:16px;border:1px solid rgba(163,196,225,.64);background:#ffffffd6;color:var(--visitor-navy);font-size:13px;resize:vertical;box-shadow:inset 0 1px #ffffffb8}html body .app__main .staff-list .approval-dialog__actions{display:flex;justify-content:flex-end;gap:8px}html body .app__main .staff-list .approval-dialog__actions button{min-width:68px;min-height:38px;padding:8px 14px;border:none;border-radius:14px;background:linear-gradient(135deg,var(--visitor-blue),var(--visitor-cyan));color:#fff;font-size:12px;font-weight:700;cursor:pointer}html body .app__main .staff-list .approval-dialog__actions .line{border:1px solid rgba(150,193,230,.45);background:#ffffffd6;color:var(--visitor-navy)}html body .app__main .pass-page .panel{padding:24px 22px;min-height:380px}html body .app__main .record-detail .hint,html body .app__main .records .hint,html body .app__main .staff-list .hint,html body .app__main .visitor-apply .hint{margin:0;padding:10px 12px;border-radius:16px;border:1px solid rgba(150,193,230,.26);background:#ffffff8a;color:var(--visitor-slate);font-size:12px;line-height:1.55}html body .app__main .visitor-apply{gap:12px}html body .app__main .visitor-apply .grid{gap:10px}html body .app__main .visitor-apply label{gap:6px}html body .app__main .visitor-apply input,html body .app__main .visitor-apply textarea,html body .app__main .visitor-apply select{padding:10px 13px;border-radius:8px}html body .app__main .visitor-apply .avatar-upload{grid-template-columns:1fr;gap:14px;padding:22px 16px 20px}html body .app__main .visitor-apply .avatar-picker,html body .app__main .visitor-apply .avatar-preview{width:108px;height:108px;border-radius:22px}html body .app__main .visitor-apply .companion{gap:10px;padding:12px}html body .app__main .visitor-apply .btn-line,html body .app__main .visitor-apply .actions{gap:8px}@media(max-width:640px){html body .app .app__main{padding:24px 12px 40px}html body .app .app__main:has(.staff-home){padding:0}html body .app__main .visitor-home,html body .app__main .staff-home,html body .app__main .visitor-apply,html body .app__main .records,html body .app__main .record-detail,html body .app__main .staff-list{gap:12px}html body .app__main .staff-home{gap:0;border-radius:0}html body .app__main .visitor-home__header,html body .app__main .staff-home>header,html body .app__main .visitor-apply__header,html body .app__main .records__header,html body .app__main .record-detail__header,html body .app__main .pass-page__header,html body .app__main .staff-list__header{min-height:112px;padding:20px 18px;border-radius:24px}html body .app__main .staff-home>header{min-height:0;width:min(calc(100% - 20px),740px);margin-top:24px;padding:22px 132px 24px 24px;border:1px solid rgba(126,190,232,.42);border-radius:25px;background:radial-gradient(circle at 88% 18%,rgba(85,195,244,.14),transparent 30%),linear-gradient(135deg,#ffffff6b,#ffffff24),linear-gradient(180deg,#e8f9ff75,#ffffff1f);box-shadow:inset 0 1px #ffffffb8,0 14px 30px #2c527c14}html body .app__main .staff-home>header:before{right:22px;top:28px;width:96px;height:66px;border-radius:18px}html body .app__main .staff-home>header:after{right:0;left:0}html body .app__main .staff-home__eyebrow{gap:9px;margin-bottom:10px}html body .app__main .staff-home__eyebrow:before{width:28px;height:28px}html body .app__main .staff-home>header h1{font-size:28px}html body .app__main .staff-home>header p{margin-top:10px;font-size:14px}html body .app__main .visitor-home__header h1,html body .app__main .staff-home>header h1,html body .app__main .visitor-apply__title h1,html body .app__main .records__title h1,html body .app__main .record-detail__title h1,html body .app__main .pass-page__title h1,html body .app__main .staff-list__title h1{font-size:21px}html body .app__main .visitor-home__header p,html body .app__main .staff-home>header p,html body .app__main .visitor-apply__title p,html body .app__main .records__title p,html body .app__main .record-detail__title p,html body .app__main .pass-page__title p,html body .app__main .staff-list__title p{font-size:13px}html body .app__main .visitor-home__grid,html body .app__main .staff-home .grid{gap:18px}html body .app__main .staff-home .grid{gap:11px;margin-top:0;padding:16px 10px 12px;border-radius:0}html body .app__main .visitor-home__card,html body .app__main .staff-home .card{grid-template-columns:1fr;min-height:150px;padding:24px 72px 24px 24px;border-radius:26px}html body .app__main .staff-home .card{min-height:124px;padding:20px 60px 20px 18px;border-radius:21px}html body .app__main .visitor-home__card-icon,html body .app__main .staff-home .card__index{width:46px;height:46px;border-radius:16px;font-size:13px}html body .app__main .visitor-home__card h2,html body .app__main .staff-home .card h2{font-size:25px}html body .app__main .visitor-home__card p,html body .app__main .staff-home .card p{font-size:14px}html body .app__main .visitor-apply__back,html body .app__main .records__back,html body .app__main .record-detail__back,html body .app__main .pass-page__back,html body .app__main .staff-list__back{min-width:70px;min-height:40px;padding:0 15px;font-size:13px}html body .app__main .visitor-apply .panel,html body .app__main .record-detail .detail-card,html body .app__main .staff-list .detail,html body .app__main .pass-page .panel,html body .app__main .records__card,html body .app__main .records__recover{border-radius:24px}html body .app__main .staff-list .card{gap:10px;padding:14px}html body .app__main .staff-list .card__meta,html body .app__main .staff-list .card>div:not(.actions):not(.detail){flex:0 0 100%}html body .app__main .staff-list .actions{width:100%;justify-content:space-between;margin-top:6px;margin-left:0}html body .app__main .staff-list .actions button{flex:1 1 0;min-width:0;min-height:40px}html body .app__main .record-detail .detail__grid,html body .app__main .staff-list .detail__grid,html body .app__main .pass-page .panel__grid{grid-template-columns:1fr}html body .app__main .staff-list .detail{padding:10px}html body .app__main .staff-list .detail__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}html body .app__main .staff-list .detail__grid .detail-field{min-height:38px;padding:6px 8px}html body .app__main .staff-list .detail__grid .detail-field--wide{grid-column:1 / -1}html body .app__main .visitor-apply .panel{padding:16px}html body .app__main .visitor-apply .avatar-upload{grid-template-columns:1fr;min-height:196px;padding:24px 14px 22px}html body .app__main .visitor-apply .avatar-picker,html body .app__main .visitor-apply .avatar-preview{width:100px;height:100px;border-radius:21px}}:root{font-family:Space Grotesk,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #f2fbff;--bg-alt: #e6f5ff;--surface: #fff6e6;--surface-alt: #eef6ff;--primary: #2f6bff;--primary-strong: #1f4ed6;--accent: #20b486;--accent-soft: #d8f4ea;--text: #1b2a3a;--text-muted: #50617a;--border: #c6d9f2;--danger: #ff6b6b;--portal-home-bg: linear-gradient(100deg, #d8e7f3 0%, #dce6f2 56%, #dddaf0 100%);--portal-home-surface: rgba(255, 255, 255, .68);--portal-home-surface-strong: rgba(255, 255, 255, .78);--portal-home-border: rgba(255, 255, 255, .52);--portal-home-shadow-sm: 0 2px 6px rgba(15, 23, 42, .06);--portal-home-shadow-md: 0 8px 22px rgba(37, 99, 235, .14);--portal-home-primary: #2563eb;--portal-home-primary-strong: #1e40af;--portal-home-muted: #475569}*{box-sizing:border-box}html,body,#app{width:100%;max-width:100%;overflow-x:hidden}body{margin:0;background:var(--bg);-webkit-text-size-adjust:100%}a{color:inherit;text-decoration:none}select:not([multiple]){appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:30px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7 10l5 5 5-5' stroke='rgba(32,58,90,0.86)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 10px center!important;background-size:14px 14px!important}input[type=date],input[type=time],input[type=datetime-local]{min-width:0;font-family:inherit;line-height:normal;text-align:left}input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value{min-height:1.5em;margin:0;text-align:left}input[type=date]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit,input[type=datetime-local]::-webkit-datetime-edit{display:flex;align-items:center;min-height:1.5em;padding:0}input[type=date]::-webkit-datetime-edit-fields-wrapper,input[type=time]::-webkit-datetime-edit-fields-wrapper,input[type=datetime-local]::-webkit-datetime-edit-fields-wrapper{display:inline-flex;align-items:center;padding:0}input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator{flex:0 0 auto;width:20px;height:20px;margin:0 0 0 auto;padding:2px;cursor:pointer}@supports (-webkit-touch-callout: none){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),textarea,select{font-size:16px!important}}
