:root{--primary: #1a4f9c;--primary-dark: #143d7a;--primary-light: #eef4fc;--text-1: #16191f;--text-2: #545b68;--text-3: #8c93a0;--border: #e3e6ea;--border-strong: #d2d7de;--surface: #ffffff;--surface-sunken: #f7f8fa;--bg: #f4f5f7;--success: #15803d;--success-bg: #f0f7f2;--warning: #a15c07;--warning-bg: #fdf6ec;--danger: #b3261e;--danger-bg: #fdf3f2;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 14px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 20px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text-1);font-size:var(--fs-base);line-height:1.55}a{color:var(--primary);text-decoration:none}input,select,textarea,button{font-family:inherit}.page-title{font-size:var(--fs-xl);font-weight:600;color:var(--text-1);letter-spacing:-.2px}.section-title{font-size:var(--fs-lg);font-weight:600;color:var(--text-1)}.row-title{font-size:var(--fs-md);font-weight:600;color:var(--text-1)}.muted{color:var(--text-2)}.hint{color:var(--text-3);font-size:var(--fs-sm)}.price{color:var(--primary);font-weight:600}.divider{height:1px;background:var(--border);margin:12px 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:var(--r-md);border:1px solid transparent;font-size:var(--fs-base);font-weight:500;line-height:1.4;background:var(--primary);color:#fff;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.btn:active{background:var(--primary-dark)}.btn:disabled{background:#c4cbd6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:active{background:var(--primary-dark)}.btn-primary:disabled{background:#c4cbd6}.btn-outline{background:var(--surface);color:var(--primary);border-color:var(--border-strong)}.btn-outline:active{background:var(--primary-light);border-color:var(--primary)}.btn-outline:disabled{background:var(--surface-sunken);color:var(--text-3);border-color:var(--border)}.btn-quiet{background:transparent;color:var(--text-2);border-color:transparent}.btn-quiet:active{background:var(--surface-sunken)}.btn-danger{background:var(--surface);color:var(--danger);border-color:#e8cfcd}.btn-danger:active{background:var(--danger-bg)}.btn-block{width:100%}.btn-sm{padding:6px 12px;font-size:var(--fs-sm);border-radius:var(--r-sm)}.form-input{width:100%;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);font-size:var(--fs-base);color:var(--text-1);background:var(--surface);outline:none;transition:border-color .15s;-webkit-appearance:none}.form-input:focus{border-color:var(--primary)}.form-input::placeholder{color:var(--text-3)}.form-label{display:block;font-size:var(--fs-sm);font-weight:500;color:var(--text-2);margin-bottom:6px}.form-group{margin-bottom:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;margin-bottom:10px}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:500;line-height:1.6;white-space:nowrap}.badge-orange{background:var(--primary-light);color:var(--primary)}.badge-green{background:var(--success-bg);color:var(--success)}.badge-blue{background:#eef3fb;color:#1d4ed8}.badge-red{background:var(--danger-bg);color:var(--danger)}.badge-gray{background:#f2f3f5;color:var(--text-2)}.badge-yellow{background:var(--warning-bg);color:var(--warning)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 20px;color:var(--text-3);text-align:center}.empty-state svg{color:var(--border-strong);margin-bottom:12px}.empty-state p{font-size:var(--fs-sm);margin-bottom:16px}.list-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);font-size:var(--fs-base)}.list-row:last-child{border-bottom:none}.toast{position:fixed;top:24px;left:50%;transform:translate(-50%);background:#16191fe6;color:#fff;padding:9px 18px;border-radius:var(--r-md);font-size:var(--fs-sm);z-index:9999;animation:fadeIn .2s ease-out;max-width:80vw;text-align:center}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.loading{text-align:center;padding:48px 0;color:var(--text-3);font-size:var(--fs-sm)}
