*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.5;color:#2c3e50;background-color:#f5f7fa;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{height:100%}.container{max-width:1200px;margin:0 auto;padding:0 1rem}button{font-family:inherit}button:focus{outline:2px solid #3498db;outline-offset:2px}a{color:#3498db;text-decoration:none}a:hover{text-decoration:underline}input,textarea,select{font-family:inherit;font-size:inherit}img{max-width:100%;height:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}:root{--color-text: #2c3e50;--color-bg: #f5f7fa;--color-primary: #D1674A;--color-primary-hover: #bf5b41;--color-primary-quiet: #f3e6e2;--color-border: #e5e9ef;--color-muted: #6b7785;--color-surface: #ffffff;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .04);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .03);--z-header: 1000;--z-overlay: 1100;--z-modal: 1200}body{color:var(--color-text);background-color:var(--color-bg);letter-spacing:.2px}h1{font-size:var(--font-size-3xl);line-height:1.2;margin:0 0 var(--space-3) 0}h2{font-size:var(--font-size-2xl);line-height:1.25;margin:0 0 var(--space-3) 0}h3{font-size:var(--font-size-xl);line-height:1.3;margin:0 0 var(--space-2) 0}h4{font-size:var(--font-size-lg);line-height:1.35;margin:0 0 var(--space-2) 0}h5{font-size:var(--font-size-md);line-height:1.4;margin:0 0 var(--space-1) 0}h6{font-size:var(--font-size-sm);line-height:1.4;margin:0 0 var(--space-1) 0}.text-muted{color:var(--color-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-xs)}.card+.card{margin-top:var(--space-6)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.625rem 1rem;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--color-surface);color:var(--color-text);text-align:center;text-decoration:none;cursor:pointer;line-height:1.2;transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,transform 60ms ease;box-shadow:var(--shadow-xs)}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:active{transform:translateY(.5px)}.btn-sm{padding:.5rem .75rem;font-size:var(--font-size-sm)}.btn-lg{padding:.875rem 1.25rem;font-size:var(--font-size-lg)}.btn-block{width:100%}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-outline{background:transparent;border-color:var(--color-border);color:var(--color-text)}.btn-outline:hover{border-color:var(--color-muted);background:#fff}.btn-ghost{background:transparent;border-color:transparent;color:var(--color-text);box-shadow:none}.btn-ghost:hover{background:var(--color-primary-quiet);color:var(--color-primary-hover)}.btn[disabled],.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-xs)}.icon-btn:hover{background:#fff}.modal-overlay{position:fixed;inset:0;background:#10182873;display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);padding:var(--space-4)}.modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:640px;max-height:90vh;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5);border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:var(--font-size-xl);margin:0}.modal-close{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text);cursor:pointer}.modal-close:hover{background:#fff}.modal-body{padding:var(--space-5);overflow-y:auto;flex:1 1 auto}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-5);border-top:1px solid var(--color-border);flex-wrap:wrap}input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],select,textarea{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.625rem .75rem;color:var(--color-text);outline:none;box-shadow:var(--shadow-xs)}input::placeholder,textarea::placeholder{color:var(--color-muted)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #d1674a26}label{display:inline-block;margin-bottom:var(--space-2);color:var(--color-muted)}.field{margin-bottom:var(--space-5)}.stack-sm>*+*{margin-top:var(--space-3)}.stack>*+*{margin-top:var(--space-4)}.stack-lg>*+*{margin-top:var(--space-6)}.alert{padding:var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#fff}.alert-success{border-color:#b7e4c7;background:#ecfdf5;color:#166534}.alert-info{border-color:#bfdbfe;background:#eff6ff;color:#1e40af}.alert-warn{border-color:#fde68a;background:#fffbeb;color:#92400e}.alert-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}@media (max-width: 640px){.card{padding:var(--space-5)}.container{padding:0 var(--space-4)}.btn,input,select,textarea{min-height:44px}}
