:root{--color-white: #ffffff;--color-off-white: #fafafa;--color-light-gray: #f5f5f5;--color-border: #e5e5e5;--color-green-50: #f0fdf4;--color-green-100: #dcfce7;--color-green-200: #bbf7d0;--color-green-300: #86efac;--color-green-400: #4ade80;--color-green-500: #22c55e;--color-green-600: #16a34a;--color-text-primary: #1a1a1a;--color-text-secondary: #666666;--color-text-muted: #999999;--color-error: #ef4444;--color-warning: #f59e0b;--color-success: var(--color-green-500);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background-color:var(--color-off-white);color:var(--color-text-primary);line-height:1.6;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--color-text-primary)}h1{font-size:2rem;margin-bottom:var(--spacing-lg)}h2{font-size:1.5rem;margin-bottom:var(--spacing-md)}h3{font-size:1.25rem;margin-bottom:var(--spacing-md)}p{margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.page-wrapper{min-height:calc(100vh - 80px);padding:var(--spacing-xl) 0}.card{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.card-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.card-body{margin-bottom:var(--spacing-md)}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.form-input,.form-select{width:100%;padding:.625rem var(--spacing-md);font-size:.9375rem;font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none}.form-input:focus,.form-select:focus{border-color:var(--color-green-400);box-shadow:0 0 0 3px var(--color-green-100)}.form-input::placeholder{color:var(--color-text-muted)}.form-input.error,.form-select.error{border-color:var(--color-error)}.form-input.error:focus,.form-select.error:focus{box-shadow:0 0 0 3px #ef44441a}.form-error{display:block;margin-top:var(--spacing-xs);font-size:.8125rem;color:var(--color-error)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.25rem;font-size:.9375rem;font-weight:500;font-family:var(--font-family);text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);outline:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-green-500);color:var(--color-white)}.btn-primary:hover:not(:disabled){background-color:var(--color-green-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--color-white);color:var(--color-green-600);border:1px solid var(--color-green-500)}.btn-secondary:hover:not(:disabled){background-color:var(--color-green-50)}.btn-danger{background-color:var(--color-error);color:var(--color-white)}.btn-danger:hover:not(:disabled){background-color:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.btn-block{width:100%}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-sm);white-space:nowrap}.badge-success{background-color:var(--color-green-100);color:var(--color-green-600)}.badge-warning{background-color:#fef3c7;color:#d97706}.badge-error{background-color:#fee2e2;color:#dc2626}.grid{display:grid;gap:var(--spacing-lg)}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}@media(max-width:768px){h1{font-size:1.75rem}h2{font-size:1.375rem}.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}.page-wrapper{padding:var(--spacing-lg) 0}}@media(min-width:769px)and (max-width:1024px){.grid-cols-3{grid-template-columns:repeat(2,1fr)}}.empty-state{text-align:center;padding:var(--spacing-2xl) var(--spacing-md);color:var(--color-text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}.empty-state-text{font-size:1rem;margin-bottom:var(--spacing-lg)}.avatar-grid{display:grid;grid-template-columns:repeat(6,96px);gap:16px;margin-bottom:var(--spacing-lg)}.avatar-button{width:96px;height:96px;padding:0;margin:0;border-radius:12px;border:2px solid #d1d5db;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base);box-sizing:border-box}.avatar-button:hover:not(:disabled){border-color:var(--color-green-400);transform:translateY(-2px);box-shadow:var(--shadow-md)}.avatar-button:disabled{cursor:not-allowed;opacity:.6}.avatar-button.selected{border:3px solid var(--color-green-500);background:var(--color-green-50);box-shadow:0 0 0 3px var(--color-green-100)}.avatar-image{width:72px;height:72px;border-radius:50%;object-fit:cover;display:block;pointer-events:none}@media(max-width:768px){.avatar-grid{grid-template-columns:repeat(3,96px);justify-content:center}}@media(min-width:769px)and (max-width:1024px){.avatar-grid{grid-template-columns:repeat(4,96px)}}.app-header{background-color:var(--color-white);border-bottom:1px solid var(--color-border);padding:var(--spacing-md) 0;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.header-wrapper{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.header-left{display:flex;align-items:center}.header-logo{font-size:1.5rem;font-weight:700;color:var(--color-green-600);margin:0;white-space:nowrap}.header-nav{display:flex;gap:var(--spacing-sm);align-items:center}.nav-button{padding:.5rem 1rem;font-size:.9375rem;font-weight:500;background-color:transparent;color:var(--color-text-secondary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);white-space:nowrap}.nav-button:hover{background-color:var(--color-green-50);color:var(--color-green-600)}.nav-button.active{background-color:var(--color-green-100);color:var(--color-green-600)}.header-profile{display:flex;align-items:center;gap:.5rem;padding:.4rem .8rem;background-color:var(--color-green-50);border-radius:var(--radius-md);border:1px solid var(--color-green-200)}.header-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--color-green-200);flex-shrink:0}.header-profile-name{font-size:1rem;font-weight:500;color:var(--color-green-600);white-space:nowrap}.desktop-only{display:flex}.mobile-only{display:none}@media(min-width:768px){.mobile-only{display:none!important}}@media(max-width:767px){.desktop-only{display:none!important}.mobile-only{display:flex}}.hamburger-btn{background:none;border:none;font-size:1.75rem;color:var(--color-green-600);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);line-height:1;-webkit-tap-highlight-color:transparent}.hamburger-btn:hover{color:var(--color-green-500);transform:scale(1.1)}.hamburger-btn:active{transform:scale(.95)}.mobile-menu{display:none;position:fixed;top:73px;left:0;right:0;background-color:var(--color-white);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-lg);max-height:0;overflow:hidden;transition:max-height .3s ease-in-out;z-index:99}@media(min-width:768px){.mobile-menu{display:none!important}}@media(max-width:767px){.mobile-menu{display:block}.mobile-menu.open{max-height:500px}}.mobile-nav{display:flex;flex-direction:column;padding:var(--spacing-md) 0}.mobile-nav-button{width:100%;padding:1rem var(--spacing-md);font-size:1rem;font-weight:500;background-color:transparent;color:var(--color-text-secondary);border:none;border-bottom:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);text-align:left;-webkit-tap-highlight-color:transparent}.mobile-nav-button:hover,.mobile-nav-button:active{background-color:var(--color-green-50);color:var(--color-green-600)}.mobile-nav-button.active{background-color:var(--color-green-100);color:var(--color-green-600);font-weight:600;border-left:4px solid var(--color-green-500)}.mobile-profile{display:flex;align-items:center;gap:var(--spacing-md);padding:1rem var(--spacing-md);background-color:var(--color-green-50);border-top:2px solid var(--color-green-200);margin-top:var(--spacing-sm)}.mobile-profile-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--color-green-300);flex-shrink:0}.mobile-profile-name{font-size:1rem;font-weight:600;color:var(--color-green-600)}@media(max-width:767px){.app-header{padding:12px 16px}.header-wrapper{display:flex;align-items:center;justify-content:space-between}.header-logo{font-size:1.25rem}}@media(min-width:768px)and (max-width:1024px){.header-logo{font-size:1.375rem}.nav-button{padding:.5rem .875rem;font-size:.875rem}.header-profile-name{font-size:.9375rem}}
