.login-page[data-v-1592b53a]{min-height:100dvh;display:grid;grid-template-columns:minmax(320px,42%) minmax(0,1fr);background:var(--color-bg)}.login-intro[data-v-1592b53a]{position:relative;overflow:hidden;border-right:1px solid var(--color-border);color:var(--color-text);background:linear-gradient(145deg,var(--color-sidebar),#fff);display:grid;align-items:center;padding:64px clamp(32px,7vw,104px)}.login-intro[data-v-1592b53a]:before,.login-intro[data-v-1592b53a]:after{position:absolute;border:2px solid rgb(159 38 31 / 10%);border-radius:50%;background:#9f261f0a;content:"";pointer-events:none}.login-intro[data-v-1592b53a]:before{top:-110px;right:-80px;width:280px;height:280px;animation:login-bubble-1592b53a 5s ease-in-out infinite}.login-intro[data-v-1592b53a]:after{right:20%;bottom:-70px;width:150px;height:150px;animation:login-bubble-1592b53a 4s .5s ease-in-out infinite reverse}.intro-inner[data-v-1592b53a]{max-width:460px}.logo[data-v-1592b53a]{width:54px;height:54px;display:grid;place-items:center;border:1px solid var(--color-primary);border-radius:15px;color:#fff;background:linear-gradient(145deg,var(--color-primary),var(--color-primary-hover));font-size:26px;font-weight:800;box-shadow:var(--shadow-action);animation:login-logo-in-1592b53a .52s var(--ease-out-spring) both}.intro-inner>p[data-v-1592b53a]{margin:22px 0 8px;color:var(--color-primary);font-size:14px;font-weight:750}h1[data-v-1592b53a]{font-size:clamp(30px,4vw,48px);line-height:1.2;margin:0;font-weight:760}.intro-rule[data-v-1592b53a]{width:48px;height:3px;background:var(--color-primary);margin:28px 0}ul[data-v-1592b53a]{margin:0;padding:0;list-style:none;display:grid;gap:15px;color:var(--color-text-muted)}li[data-v-1592b53a]:before{content:"";display:inline-block;width:7px;height:7px;margin:0 10px 1px 0;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-soft)}.demo-note[data-v-1592b53a]{display:inline-block;margin-top:46px;padding:8px 10px;border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface);font-size:12px}.login-form-wrap[data-v-1592b53a]{display:grid;place-items:center;padding:32px;background:var(--color-surface)}.login-form[data-v-1592b53a]{width:min(410px,100%);display:grid;gap:20px;padding:34px;border:1px solid var(--color-border);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-elevated);animation:login-form-in-1592b53a .44s ease-out both}.form-icon[data-v-1592b53a]{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--color-border);background:var(--color-primary-soft);color:var(--color-primary);border-radius:var(--radius)}h2[data-v-1592b53a]{margin:0;font-size:26px}.login-form>p[data-v-1592b53a]{margin:-12px 0 8px;color:var(--color-text-muted)}.login-error[data-v-1592b53a]{margin:-5px 0;padding:11px 12px;border:1px solid var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.session-notice[data-v-1592b53a]{margin:-5px 0;padding:11px 12px;border-left:3px solid var(--color-primary);color:var(--color-text);background:var(--color-primary-soft);line-height:1.55}.local-login-note[data-v-1592b53a]{margin:-8px 0;padding:9px 10px;border-left:3px solid var(--color-primary);color:var(--color-text-muted);font-size:11px;line-height:1.5}.submit[data-v-1592b53a]{width:100%;min-height:48px;margin-top:3px}.mode-toggle[data-v-1592b53a]{min-height:34px;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);background:transparent;cursor:pointer}@keyframes login-logo-in-1592b53a{0%{opacity:0;transform:translateY(-10px) rotate(-8deg) scale(.86)}to{opacity:1;transform:none}}@keyframes login-form-in-1592b53a{0%{opacity:0;transform:translateY(18px) scale(.99)}to{opacity:1;transform:none}}@keyframes login-bubble-1592b53a{0%,to{transform:translateZ(0)}50%{transform:translate3d(-10px,12px,0)}}@media(prefers-reduced-motion:reduce){.login-intro[data-v-1592b53a]:before,.login-intro[data-v-1592b53a]:after,.logo[data-v-1592b53a],.login-form[data-v-1592b53a]{animation:none}}@media(max-width:760px){.login-page[data-v-1592b53a]{display:block}.login-intro[data-v-1592b53a]{min-height:auto;padding:24px 20px 22px;border-right:0;border-bottom:1px solid var(--color-border)}.intro-inner>p[data-v-1592b53a]{margin-top:14px}h1[data-v-1592b53a]{font-size:28px}.intro-rule[data-v-1592b53a]{margin:18px 0}ul[data-v-1592b53a]{gap:8px;font-size:13px}.demo-note[data-v-1592b53a]{margin-top:18px}.login-form-wrap[data-v-1592b53a]{min-height:calc(100dvh - 270px);padding:24px 16px calc(30px + env(safe-area-inset-bottom));place-items:start center}.login-form[data-v-1592b53a]{padding:24px 20px}}:root{--color-bg: #f5f4f2;--color-background: var(--color-bg);--color-page: var(--color-bg);--color-surface: #ffffff;--color-surface-subtle: #fbf8f7;--color-surface-strong: #29231f;--color-text: #29231f;--color-text-strong: var(--color-text);--color-text-muted: #716a64;--color-text-placeholder: #9b9189;--color-border: #e3ddda;--color-border-strong: #d2c9c5;--color-primary: #9f261f;--color-primary-hover: #7f1c18;--color-primary-soft: #f6e6e2;--color-primary-border: #f2c9c5;--color-accent: #9f261f;--color-accent-soft: #f6e6e2;--color-accent-border: #e8bbb6;--color-success: #2f7d4a;--color-success-soft: #e7f2ea;--color-success-border: #c8eadc;--color-danger: #9f261f;--color-danger-soft: #f6e6e2;--color-danger-border: #f2c9c5;--color-warning: #b76813;--color-warning-soft: #fff0d9;--color-warning-border: #f0ddb2;--color-info: #326e9c;--color-info-soft: #e8f1f7;--color-info-border: #b9c8eb;--color-surface-warning: #fffaf0;--color-surface-danger: #fff4f2;--color-surface-info: #eef5f8;--color-border-subtle: #ece8e1;--color-sidebar: #fcf8f7;--shadow-panel: 0 7px 20px rgb(72 35 31 / 7%);--shadow-elevated: 0 16px 38px rgb(72 35 31 / 13%);--shadow-action: 0 8px 18px rgb(159 38 31 / 18%);--radius: 8px;--radius-large: 12px;--motion-fast: .15s;--motion-base: .24s;--motion-emphasis: .42s;--ease-out-spring: cubic-bezier(.2, .9, .25, 1.12);--header-height: 64px}*{box-sizing:border-box}html{color:var(--color-text);background:var(--color-bg);font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif;letter-spacing:0}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-bg);-webkit-font-smoothing:antialiased}body:before{position:fixed;z-index:999;top:0;right:0;left:0;height:5px;background:linear-gradient(90deg,var(--color-primary-hover),var(--color-primary),#bd4b45,var(--color-primary));content:"";pointer-events:none}#app{min-height:100vh}small,.hint,.caption,.table-note{font-size:13px;line-height:1.5;font-weight:500;color:var(--color-text-muted)}table th{font-size:13px;font-weight:700;color:var(--color-text)}table td{font-size:13px;line-height:1.45}body:has(.dialog-backdrop,.task-drawer-backdrop,.finance-drawer-backdrop,.drawer-scrim,.scrim,.backdrop,.picker-scrim){overflow:hidden}:where(.dialog-backdrop,.task-drawer-backdrop,.finance-drawer-backdrop,.drawer-scrim,.backdrop){z-index:100!important;overscroll-behavior:contain}.picker-scrim{z-index:120!important;overscroll-behavior:contain}:where(.dialog,.task-drawer-content,.finance-drawer,.drawer-content,.drawer-body,.customer-picker-body,.backdrop>.drawer>.body){overscroll-behavior:contain}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer;min-height:44px;transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,transform var(--motion-fast) ease}button:active:not(:disabled){transform:translateY(1px) scale(.985)}a{color:inherit}.page{min-height:100vh}:where([class$=-page],[class*="-page "]){background-image:radial-gradient(circle at 92% 2%,rgb(159 38 31 / 4%),transparent 260px)}.button{position:relative;overflow:hidden;min-height:44px;border:1px solid transparent;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;font-weight:700;color:#fff;background:var(--color-primary);box-shadow:var(--shadow-action)}.button:after{position:absolute;top:-120%;left:-45%;width:32%;height:340%;background:linear-gradient(90deg,transparent,rgb(255 255 255 / 24%),transparent);content:"";transform:rotate(20deg);transition:left var(--motion-emphasis) ease}.button:hover:after{left:118%}.button:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-elevated);transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed}.button:disabled:hover{box-shadow:var(--shadow-panel);transform:none}.button.secondary{color:var(--color-text);background:var(--color-surface);border-color:var(--color-border-strong);box-shadow:none}.button.secondary:hover{background:var(--color-surface-subtle);border-color:var(--color-border-strong)}.button.danger{background:var(--color-danger);box-shadow:none}.icon-button{width:44px;height:44px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);display:inline-grid;place-items:center;color:var(--color-text)}.icon-button:hover{color:var(--color-primary);border-color:var(--color-primary-border);background:var(--color-primary-soft);box-shadow:0 6px 16px #48231f14;transform:translateY(-1px)}.field{display:grid;gap:7px}.field label{color:var(--color-text-muted);font-size:13px;font-weight:650}.field input,.field select,.field textarea{width:100%;min-height:44px;border:1px solid var(--color-border-strong);border-radius:var(--radius);outline:none;background:var(--color-surface);padding:9px 11px;color:var(--color-text);transition:border-color .18s ease,box-shadow .18s ease}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--color-border-strong)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #9f261f1c,0 8px 18px #48231f0f}.field input::placeholder,.field textarea::placeholder{color:var(--color-text-placeholder)}.field textarea{min-height:84px;resize:vertical}.error{color:var(--color-danger);font-size:13px}.status{display:inline-flex;align-items:center;min-height:26px;padding:2px 8px;border:1px solid var(--color-border);border-radius:999px;font-size:12px;font-weight:700;background:var(--color-surface-subtle);white-space:nowrap}.status.confirmed,.status.completed{color:var(--color-success);border-color:var(--color-success-border);background:var(--color-success-soft)}.status.pending,.status.processing,.status.paid_pending_confirmation{color:var(--color-warning);border-color:var(--color-warning-border);background:var(--color-warning-soft)}.status.closed,.status.rejected{color:var(--color-danger);background:var(--color-danger-soft)}.empty{padding:40px 20px;text-align:center;color:var(--color-text-muted)}tbody tr{transition:background-color var(--motion-fast) ease,transform var(--motion-fast) ease}tbody tr:hover{background:var(--color-primary-soft)}dialog,:where(.dialog,.drawer-content,.task-drawer-content,.finance-drawer){animation:erp-surface-in var(--motion-base) ease-out both}:where(.success,.success-message,.notice.success){animation:erp-notice-in var(--motion-emphasis) var(--ease-out-spring) both}:where(.panel,.card,.stat,.workspace,.form-section){transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,transform var(--motion-fast) ease}body :where(.panel,.card,.form-section,.records-panel,.workspace){border-radius:var(--radius-large)!important;box-shadow:var(--shadow-panel)!important}body :where(.primary-button,.submit-button,.save-button,.confirm-button){border-radius:var(--radius)!important;box-shadow:var(--shadow-action)!important}body :where(.page-head,.section-head,.section-heading) h1{text-decoration:underline 3px var(--color-primary-soft);text-underline-offset:7px}@keyframes erp-surface-in{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes erp-notice-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}::selection{color:#fff;background:var(--color-primary)}@media(max-width:680px){.desktop-only{display:none!important}}.button.small,.text-action{min-height:44px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
