:root{--c-primary:#3E4065;--c-accent:#388083;--c-danger:#CB295D;--c-success:#1F9D72;--c-warn:#C98A10;--c-info:#2F6FED;--font-sans:Inter,"Segoe UI","PingFang TC","Noto Sans TC",system-ui,-apple-system,sans-serif;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-16:16px;--fs-18:18px;--r-8:8px;--r-10:10px;--r-12:12px;--r-16:16px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--focus-ring:0 0 0 4px rgba(56,128,131,0.22);--ease:cubic-bezier(.2,.8,.2,1);--t-fast:120ms}:root,:root[data-theme=light]{--bg:#F7F8FA;--surface:#FFFFFF;--surface-2:#F2F4F7;--border:#E3E6EB;--text:#1F2937;--text-2:#6B7280;--shadow-1:0 10px 24px rgba(0,0,0,0.08);--shadow-2:0 20px 40px rgba(0,0,0,0.10)}:root[data-theme=dark]{--bg:#0F172A;--surface:#111827;--surface-2:#1F2937;--border:#2D3748;--text:#E5E7EB;--text-2:#9CA3AF;--shadow-1:0 14px 28px rgba(0,0,0,0.35);--shadow-2:0 24px 60px rgba(0,0,0,0.50)}.to-ui{font-family:var(--font-sans);color:var(--text)}.to-ui a{color:inherit}*,:after,:before{box-sizing:border-box}.to-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-sans);font-size:var(--fs-14);font-weight:600;padding:10px 14px;border-radius:var(--r-10);border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;user-select:none;transition:transform var(--t-fast) var(--ease),filter var(--t-fast) var(--ease),background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}.to-btn:hover{filter:brightness(1.02)}.to-btn:active{transform:translateY(1px)}.to-btn:focus{outline:none}.to-btn:focus-visible{box-shadow:var(--focus-ring)}.to-btn.is-disabled,.to-btn[disabled]{opacity:.55;cursor:not-allowed;transform:none;filter:none}.to-btn[data-variant=primary]{background:var(--c-primary);color:#fff}.to-btn[data-variant=accent]{background:var(--c-accent);color:#fff}.to-btn[data-variant=danger]{background:var(--c-danger);color:#fff}.to-btn[data-variant=ghost]{background:transparent;border-color:var(--border);color:var(--text)}.to-btn[data-variant=soft]{background:var(--surface-2);border-color:var(--border);color:var(--text)}.to-btn[data-size=sm]{padding:8px 12px;font-size:var(--fs-13);border-radius:var(--r-8)}.to-btn[data-size=lg]{padding:12px 16px;font-size:var(--fs-16);border-radius:var(--r-12)}.to-icon-btn{width:40px;height:40px;padding:0;border-radius:var(--r-12)}.to-icon-btn[data-size=sm]{width:34px;height:34px;border-radius:var(--r-10)}.to-icon-btn svg{width:18px;height:18px}.to-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-16);box-shadow:var(--shadow-1)}.to-card[data-elev="2"]{box-shadow:var(--shadow-2)}.to-card[data-bleed=true]{overflow:hidden}.to-card__header{padding:var(--s-4);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.to-card__title{font-size:var(--fs-16);font-weight:700;letter-spacing:.2px;margin:0}.to-card__sub{font-size:var(--fs-13);color:var(--text-2);margin:6px 0 0}.to-card__body,.to-card__footer{padding:var(--s-4)}.to-card__footer{border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:var(--s-2)}.to-field{display:grid;gap:6px;margin-bottom:var(--s-3)}.to-label{font-size:var(--fs-13);font-weight:600;color:var(--text)}.to-hint{color:var(--text-2)}.to-error,.to-hint{font-size:var(--fs-12)}.to-error{color:var(--c-danger)}.to-input,.to-select,.to-textarea{width:100%;font-family:var(--font-sans);font-size:var(--fs-14);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-12);padding:10px 12px;transition:box-shadow var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.to-textarea{min-height:96px;resize:vertical}.to-input:focus,.to-select:focus,.to-textarea:focus{outline:none}.to-input:focus-visible,.to-select:focus-visible,.to-textarea:focus-visible{box-shadow:var(--focus-ring);border-color:rgba(56,128,131,.55)}.to-input::placeholder,.to-textarea::placeholder{color:rgba(107,114,128,.85)}:root[data-theme=dark] .to-input::placeholder,:root[data-theme=dark] .to-textarea::placeholder{color:rgba(156,163,175,.75)}.to-input[disabled],.to-select[disabled],.to-textarea[disabled]{opacity:.6;cursor:not-allowed;background:var(--surface-2)}.to-field.is-invalid .to-input,.to-field.is-invalid .to-select,.to-field.is-invalid .to-textarea{border-color:rgba(203,41,93,.65);box-shadow:0 0 0 4px rgba(203,41,93,.14)}.to-row{display:flex;gap:var(--s-3);align-items:end}.to-row>*{flex:1}.to-input,.to-select,.to-textarea{max-width:100%;min-width:0}.to-tabs{display:flex;gap:4px;padding:4px;background:var(--surface-2);border-radius:12px;border:1px solid var(--border);width:fit-content}.to-tab{appearance:none;border:none;background:transparent;padding:8px 14px;border-radius:10px;font-size:var(--fs-13);font-weight:600;color:var(--text-2);cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.to-tab:hover{color:var(--text)}.to-tab.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}.to-table-wrap{width:100%;overflow-x:auto}.to-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-13)}.to-table thead th{text-align:left;font-weight:600;color:var(--text-2);padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.to-table tbody td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text)}.to-table tbody tr:hover{background:var(--surface-2)}.to-table tbody tr:last-child td{border-bottom:none}.to-badge{display:inline-block;padding:4px 8px;font-size:var(--fs-12);font-weight:600;border-radius:999px}.to-badge[data-tone=success]{background:rgba(31,157,114,.12);color:#1F9D72}.to-badge[data-tone=warn]{background:rgba(201,138,16,.14);color:#C98A10}.to-badge[data-tone=danger]{background:rgba(203,41,93,.14);color:#CB295D}.pms-login{position:relative;isolation:isolate;min-height:100svh;margin:0;overflow:hidden;background-color:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=light] .pms-login{--login-bg-start:#f6f8fb;--login-bg-end:#edf1f6;--login-grid:rgba(62,64,101,0.08);--login-grid-soft:rgba(56,128,131,0.06);--login-primary-soft:rgba(62,64,101,0.11);--login-accent-soft:rgba(56,128,131,0.1);--login-glow:rgba(255,255,255,0.82)}:root[data-theme=dark] .pms-login{--login-bg-start:#0f172a;--login-bg-end:#111f34;--login-grid:rgba(148,163,184,0.14);--login-grid-soft:rgba(56,128,131,0.14);--login-primary-soft:rgba(62,64,101,0.34);--login-accent-soft:rgba(56,128,131,0.24);--login-glow:rgba(15,23,42,0.48)}.pms-login:before{inset:0;background:radial-gradient(460px 220px at 50% 22%,var(--login-glow) 0,rgba(255,255,255,0) 72%),radial-gradient(560px 320px at 84% 78%,var(--login-primary-soft) 0,rgba(62,64,101,0) 78%),radial-gradient(460px 280px at 12% 82%,var(--login-accent-soft) 0,rgba(56,128,131,0) 75%),linear-gradient(180deg,var(--login-bg-start) 0,var(--login-bg-end) 100%)}.pms-login:after,.pms-login:before{content:"";position:absolute;z-index:0;pointer-events:none}.pms-login:after{inset:-10%;opacity:.9;background:linear-gradient(120deg,transparent 0 46%,var(--login-grid) 46.2% 46.5%,transparent 46.8% 100%),linear-gradient(-120deg,transparent 0 56%,var(--login-grid-soft) 56.2% 56.45%,transparent 56.7% 100%),repeating-linear-gradient(120deg,transparent 0 36px,var(--login-grid-soft) 36px 37px,transparent 37px 74px),repeating-linear-gradient(-120deg,transparent 0 36px,var(--login-grid) 36px 37px,transparent 37px 74px);transform:translateZ(0)}.pms-login__wrap{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:stretch;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.pms-login__card{width:100%;max-width:100%;padding:20px 18px 16px;border:none;box-shadow:none;background:var(--surface)}.pms-login__brand{text-align:center;padding-top:0;margin-bottom:16px}.pms-login__logo{width:64px;height:64px;object-fit:contain;display:inline-block;margin-bottom:8px}.pms-login__title{margin:0;font-size:20px;letter-spacing:.08em;font-weight:700;line-height:1.2}.pms-login__subtitle{margin:6px 0 0;font-size:13px;color:var(--text-2);line-height:1.3}.pms-login__divider{height:1px;background:var(--border);margin:14px 0 16px}.pms-login__heading{text-align:center;margin:0 0 4px;font-size:18px;font-weight:700;line-height:1.2}.pms-login__hint{text-align:center;margin:0 0 16px;font-size:13px;color:var(--text-2);line-height:1.3}.pms-login__form{display:grid;gap:12px}.pms-login__req{margin:0;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);text-align:left}.pms-login__reqTitle{margin:0 0 8px;font-size:12px;font-weight:700;color:var(--text-1);line-height:1.3}.pms-login__reqList{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:12px;line-height:1.35;color:var(--text-2)}.pms-login__reqItem{display:flex;gap:8px;align-items:flex-start}.pms-login__reqItem--met{color:var(--text-1)}.pms-login__reqMark{flex-shrink:0;width:1.1em;text-align:center;font-size:12px;line-height:1.35;opacity:.9}.pms-login__reqItem--met .pms-login__reqMark{color:var(--ok,#0d8a4e);font-weight:700}.pms-login__password{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.pms-login__passwordInput{min-width:0}.pms-login__eye{padding:10px 12px;border-radius:10px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.pms-login__eyeIcon{font-size:16px;line-height:1}.pms-login__captcha{display:grid;grid-template-columns:1fr;gap:10px;align-items:stretch}.pms-login__captchaBox{position:relative;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);overflow:hidden;height:50px;display:flex;align-items:center;justify-content:center}.pms-login__captchaImg{width:100%;height:50px;object-fit:cover;display:block}.pms-login__captchaRefresh{position:absolute;right:6px;top:50%;transform:translateY(-50%);padding:6px 10px;border-radius:8px;min-width:36px;min-height:36px;font-size:18px;display:flex;align-items:center;justify-content:center}.pms-login__submit{width:100%;margin-top:4px;min-height:44px;font-size:15px;font-weight:600}.pms-login__links{display:flex;flex-direction:column;gap:10px;margin-top:12px}.pms-login__link{color:var(--text-2);text-decoration:none;font-size:13px;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:center;min-height:40px;display:flex;align-items:center;justify-content:center;transition:all .12s ease}.pms-login__link:hover{color:var(--text);background:var(--surface-2);border-color:var(--text-2)}.pms-login__link:active{transform:scale(.98)}.pms-login__footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.pms-login__footerText{font-size:12px;color:var(--text-2)}@media (min-width:480px){.pms-login__card{padding:24px 22px 18px;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-1)}.pms-login__logo{width:72px;height:72px}.pms-login__links{flex-direction:row;justify-content:space-between}.pms-login__link{flex:1;padding:8px 12px;min-height:auto}}@media (min-width:640px){.pms-login__wrap{align-items:center;justify-content:center;padding:24px 20px}.pms-login__card{width:100%;max-width:440px;padding:28px 28px 22px}.pms-login__logo{width:76px;height:76px}.pms-login__title{font-size:22px}.pms-login__subtitle{font-size:13px}.pms-login__heading{font-size:19px}.pms-login__hint{font-size:13px}.pms-login__captcha{grid-template-columns:1fr 1fr}.pms-login__captchaBox,.pms-login__captchaImg{height:50px}.pms-login__links{flex-direction:row;gap:14px;margin-top:10px}.pms-login__link{padding:0;border:0;background:transparent;text-align:left;min-height:auto;justify-content:flex-start}.pms-login__link:hover{background:transparent;text-decoration:underline}.pms-login__link:active{transform:none}}@media (min-width:1024px){.pms-login__card{max-width:460px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (hover:none) and (pointer:coarse){.pms-login__captchaRefresh,.pms-login__eye,.pms-login__link{-webkit-tap-highlight-color:rgba(0,0,0,.1)}}@media (max-height:600px) and (orientation:landscape){.pms-login__wrap{padding:12px 16px}.pms-login__card{padding:16px 20px}.pms-login__brand{margin-bottom:16px}.pms-login__logo{width:56px;height:56px;margin-bottom:8px}.pms-login__title{font-size:18px}.pms-login__subtitle{font-size:12px}.pms-login__divider{margin:12px 0 16px}.pms-login__heading{font-size:16px;margin-bottom:4px}.pms-login__hint{font-size:12px;margin-bottom:16px}.pms-login__form{gap:12px}.pms-login__footer{margin-top:12px;padding-top:12px}}