.login-page[data-v-1dfd3412]{min-height:100dvh;display:grid;grid-template-columns:minmax(320px,42%) minmax(0,1fr);background:var(--color-bg)}.login-intro[data-v-1dfd3412]{position:relative;overflow:hidden;border-right:1px solid var(--color-border);color:var(--color-text);background:var(--color-sidebar);display:grid;align-items:center;padding:64px clamp(32px,7vw,104px)}.intro-inner[data-v-1dfd3412]{max-width:460px}.logo[data-v-1dfd3412]{width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--color-accent);border-radius:var(--radius);color:#fff;background:var(--color-accent);font-size:26px;font-weight:800;box-shadow:var(--shadow-panel)}.intro-inner>p[data-v-1dfd3412]{margin:22px 0 8px;color:var(--color-primary);font-size:14px;font-weight:750}h1[data-v-1dfd3412]{font-size:clamp(30px,4vw,48px);line-height:1.2;margin:0;font-weight:760}.intro-rule[data-v-1dfd3412]{width:48px;height:3px;background:var(--color-primary);margin:28px 0}ul[data-v-1dfd3412]{margin:0;padding:0;list-style:none;display:grid;gap:15px;color:var(--color-text-muted)}li[data-v-1dfd3412]:before{content:"";display:inline-block;width:7px;height:7px;margin:0 10px 1px 0;border-radius:50%;background:var(--color-accent)}.demo-note[data-v-1dfd3412]{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-1dfd3412]{display:grid;place-items:center;padding:32px;background:var(--color-surface)}.login-form[data-v-1dfd3412]{width:min(390px,100%);display:grid;gap:20px}.form-icon[data-v-1dfd3412]{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-1dfd3412]{margin:0;font-size:26px}.login-form>p[data-v-1dfd3412]{margin:-12px 0 8px;color:var(--color-text-muted)}.login-error[data-v-1dfd3412]{margin:-5px 0;padding:11px 12px;border:1px solid var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.local-login-note[data-v-1dfd3412]{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-1dfd3412]{width:100%;min-height:48px;margin-top:3px}.mode-toggle[data-v-1dfd3412]{min-height:34px;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);background:transparent;cursor:pointer}@media(max-width:760px){.login-page[data-v-1dfd3412]{display:block}.login-intro[data-v-1dfd3412]{min-height:auto;padding:24px 20px 22px;border-right:0;border-bottom:1px solid var(--color-border)}.intro-inner>p[data-v-1dfd3412]{margin-top:14px}h1[data-v-1dfd3412]{font-size:28px}.intro-rule[data-v-1dfd3412]{margin:18px 0}ul[data-v-1dfd3412]{gap:8px;font-size:13px}.demo-note[data-v-1dfd3412]{margin-top:18px}.login-form-wrap[data-v-1dfd3412]{min-height:calc(100dvh - 270px);padding:30px 20px calc(30px + env(safe-area-inset-bottom));place-items:start center}}:root{--color-bg: #f3f2ef;--color-background: var(--color-bg);--color-page: var(--color-bg);--color-surface: #ffffff;--color-surface-subtle: #faf8f3;--color-surface-strong: #29231f;--color-text: #29231f;--color-text-strong: var(--color-text);--color-text-muted: #716a64;--color-text-placeholder: #9b9189;--color-border: #ded8ce;--color-border-strong: #cfc8bf;--color-primary: #9f261f;--color-primary-hover: #7f1c18;--color-primary-soft: #f6e6e2;--color-primary-border: #f2c9c5;--color-accent: #c89b3c;--color-accent-soft: #f8edcf;--color-accent-border: #f0ddb2;--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: #faf6ed;--shadow-panel: 0 4px 14px rgb(81 48 24 / 9%);--shadow-elevated: 0 12px 28px rgb(81 48 24 / 12%);--radius: 6px;--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}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 .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}a{color:inherit}.page{min-height:100vh}.button{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:650;color:#fff;background:var(--color-primary);box-shadow:var(--shadow-panel)}.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-border-strong);background:var(--color-primary-soft)}.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}.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)}::selection{color:#fff;background:var(--color-primary)}@media(max-width:680px){.desktop-only{display:none!important}}.button.small,.text-action{min-height:44px}
