:root{color:#17243d;font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizelegibility;--blue: #2563d9;--blue-deep: #143f9e;--blue-soft: #eef5ff;--blue-pale: #f6f9ff;--ink: #17243d;--muted: #74829a;--line: #e4ebf5;--surface: #fff;--page: #f4f7fc;--success: #16875d;--warning: #bd7a0c;--danger: #ca4747;--shadow-sm: 0 8px 28px rgb(35 67 120 / 7%);--shadow-lg: 0 24px 64px rgb(29 65 130 / 12%)}*{box-sizing:border-box}html{min-width:320px;background:var(--page)}body{min-width:320px;min-height:100vh;margin:0;color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased}button,input,textarea,select{color:inherit;font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}#app{min-height:100vh}.customer-shell{min-height:100vh;background:radial-gradient(circle at 8% -8%,rgb(56 120 232 / 12%),transparent 24%),radial-gradient(circle at 96% 14%,rgb(90 146 242 / 8%),transparent 22%),var(--page)}.customer-page{width:min(1180px,calc(100% - 48px));padding:30px 0 70px;margin:0 auto}.site-header{position:sticky;top:0;z-index:20;background:#ffffffeb;border-bottom:1px solid rgb(226 234 246 / 88%);backdrop-filter:blur(18px)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;width:min(1180px,calc(100% - 48px));min-height:72px;margin:0 auto}.brand-link{display:flex;gap:15px;align-items:center}.brand-link img{width:150px;height:38px;object-fit:contain}.brand-link span{padding-left:15px;color:#5f718d;font-size:12px;border-left:1px solid var(--line)}.site-nav{display:flex;gap:26px;align-items:center}.site-nav a{color:#536783;font-size:14px;font-weight:600}.site-nav a.router-link-active{color:var(--blue)}.user-menu{display:flex;gap:12px;align-items:center}.user-avatar{display:grid;width:38px;height:38px;color:#fff;font-size:14px;font-weight:700;background:linear-gradient(145deg,#2c70df,#1748a9);border-radius:12px;place-items:center}.user-copy{display:grid;gap:2px}.user-copy strong{font-size:13px}.user-copy span{color:var(--muted);font-size:11px}.logout-button{padding:8px 12px;color:#61718a;font-size:12px;background:#f4f7fb;border-radius:9px}.primary-button,.secondary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;font-weight:600;border-radius:12px}.primary-button{color:#fff;background:linear-gradient(145deg,#1b50b6,#377cec);box-shadow:0 10px 24px #2260d233}.secondary-button{color:var(--blue);background:var(--blue-soft)}.ghost-button{color:#5e6e86;background:#fff;border:1px solid var(--line)}.text-button{padding:0;color:var(--blue);background:transparent}.field{display:grid;gap:8px}.field-label{color:#53647d;font-size:12px;font-weight:600}.text-input{width:100%;height:48px;padding:0 14px;background:#fbfcff;border:1px solid #dfe7f2;border-radius:12px;outline:none;transition:border-color .2s,box-shadow .2s}.text-input:focus{border-color:#7ea8ee;box-shadow:0 0 0 4px #3170dd1a}.form-error{padding:10px 12px;color:#b13f3f;font-size:12px;line-height:1.6;background:#fff4f4;border:1px solid #f2d4d4;border-radius:10px}.form-success{padding:10px 12px;color:#126a48;font-size:12px;line-height:1.6;background:#eefaf5;border:1px solid #ccebdd;border-radius:10px}.form-note{color:var(--muted);font-size:12px;line-height:1.7}.loading-ring{width:30px;height:30px;border:3px solid #dce8f8;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}.state-card{display:grid;justify-items:center;min-height:320px;padding:52px 28px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm);align-content:center;gap:12px}.state-card strong{font-size:18px}.state-card p{max-width:440px;margin:0;color:var(--muted);font-size:13px;line-height:1.7}.state-mark{display:grid;width:44px;height:44px;color:var(--danger);font-size:22px;font-weight:700;background:#fff2f2;border-radius:50%;place-items:center}.quote-status{display:inline-flex;gap:5px;align-items:center;padding:5px 10px;font-size:11px;font-weight:700;border-radius:999px}.quote-status:before{width:5px;height:5px;content:"";background:currentColor;border-radius:50%}.quote-status--draft{color:#68758a;background:#f1f4f8}.quote-status--sent{color:#2563d9;background:#edf4ff}.quote-status--accepted{color:var(--success);background:#ecf9f3}.quote-status--rejected{color:var(--danger);background:#fff0f0}.quote-status--expired{color:var(--warning);background:#fff8e8}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.toast{position:fixed;bottom:28px;left:50%;z-index:60;padding:11px 18px;color:#fff;font-size:13px;background:#132543f0;border-radius:999px;box-shadow:0 14px 40px #172d543d;transform:translate(-50%)}@keyframes spin{to{transform:rotate(360deg)}}@media(width<=760px){.customer-page{width:calc(100% - 28px);padding:18px 0 calc(40px + env(safe-area-inset-bottom))}.site-header__inner{width:calc(100% - 28px);min-height:62px}.brand-link{gap:0}.brand-link img{width:132px;height:34px}.brand-link span,.user-copy,.site-nav{display:none}.user-avatar{width:34px;height:34px;border-radius:10px}.user-menu{gap:7px}.logout-button{padding:7px 9px;font-size:11px}}
