*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f5f5f7;--color-surface: #ffffff;--color-card: #ffffff;--color-card-hover:#f9f9fb;--color-border: rgba(0,0,0,.08);--color-border-strong:#d2d2d7;--color-text: #1d1d1f;--color-text-2: #424245;--color-text-muted: #6e6e73;--color-text-faint: #86868b;--color-accent: #0071e3;--color-accent-soft: rgba(0,113,227,.1);--color-success: #34c759;--color-success-soft: rgba(52,199,89,.12);--color-warning: #ff9f0a;--color-warning-soft: rgba(255,159,10,.12);--color-error: #ff3b30;--color-error-soft: rgba(255,59,48,.1);--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--radius-xl: 24px;--shadow-xs: 0 1px 3px rgba(0,0,0,.06);--shadow: 0 2px 12px rgba(0,0,0,.08);--shadow-lg: 0 8px 32px rgba(0,0,0,.1);--transition: .18s ease;--color-primary: #1d1d1f;--color-accent-hover: #0064d3;--shadow-accent: 0 0 0 4px rgba(0,113,227,.2)}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,system-ui,Helvetica Neue,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.5}#app{min-height:100vh}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 20px;border:none;border-radius:980px;font-size:.9375rem;font-weight:500;letter-spacing:-.01em;transition:background var(--transition),box-shadow var(--transition),opacity var(--transition);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-primary:active:not(:disabled){background:#005bbf}.btn-secondary{background:#0000000d;color:var(--color-text);border:1px solid transparent}.btn-secondary:hover:not(:disabled){background:#00000014}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:#2db84f}.btn-danger{background:var(--color-error-soft);color:var(--color-error);border:1px solid rgba(255,59,48,.15)}.btn-danger:hover:not(:disabled){background:#ff3b3029}.btn:disabled{opacity:.38;cursor:not-allowed}.btn-lg{padding:14px 28px;font-size:1rem;font-weight:600;border-radius:14px}.btn-sm{padding:6px 13px;font-size:.8125rem;border-radius:980px}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-xs)}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:16px}.form-group label{font-size:.8125rem;font-weight:500;color:var(--color-text-muted);letter-spacing:-.005em}.form-group input,.form-group select,.form-group textarea{padding:11px 14px;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);font-size:.9375rem;transition:border-color var(--transition),box-shadow var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.form-group input.error,.form-group select.error{border-color:var(--color-error);box-shadow:0 0 0 3px var(--color-error-soft)}.form-group .error-msg{font-size:.8125rem;color:var(--color-error)}.form-group input:disabled,.form-group input:read-only{background:var(--color-bg);color:var(--color-text-muted);cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:980px;font-size:.75rem;font-weight:600;letter-spacing:-.01em}.badge-success{background:var(--color-success-soft);color:#1a8a38}.badge-warning{background:var(--color-warning-soft);color:#b36200}.badge-error{background:var(--color-error-soft);color:var(--color-error)}.badge-neutral{background:#0000000d;color:var(--color-text-muted)}.toast{position:fixed;top:72px;left:50%;transform:translate(-50%) translateY(-120px);padding:11px 22px;border-radius:980px;font-weight:500;font-size:.9rem;z-index:9999;transition:transform .32s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-lg)}.toast.show{transform:translate(-50%) translateY(0)}.toast.success{background:#1d1d1f;color:#fff}.toast.error{background:var(--color-error);color:#fff}.toast.warning{background:#1d1d1f;color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--color-surface);border-radius:var(--radius-xl);padding:36px;max-width:480px;width:100%;text-align:center;box-shadow:var(--shadow-lg)}.modal h2{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:10px}.modal p{color:var(--color-text-muted);margin-bottom:24px;line-height:1.6}.spinner{width:36px;height:36px;border:3px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;animation:spin .75s linear infinite;margin:0 auto}.spinner-sm{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:currentColor;border-radius:50%;animation:spin .75s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.page-container{min-height:100vh;padding:28px 32px 48px;max-width:1240px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:16px;flex-wrap:wrap}.page-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.03em;color:var(--color-text)}.header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.w-full{width:100%}@media (max-width: 640px){.page-container{padding:20px 16px 40px}.page-header{margin-bottom:20px}.page-header h1{font-size:1.4rem}}
