:root{--header-height: 64px}body,html,#root{height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.host-root{display:flex;flex-direction:column;min-height:100vh}.app-header{position:sticky;top:0;z-index:100;height:var(--header-height);background:#fff;border-bottom:1px solid #eee;display:flex;align-items:center}.header-inner{width:100%;max-width:1200px;margin:0 auto;position:relative;padding:0 20px}.title{position:absolute;left:10%;top:50%;transform:translateY(-50%);font-weight:700;font-size:20px;text-decoration:none;color:inherit;cursor:pointer}.sign-out-button{position:absolute;right:10%;top:50%;transform:translateY(-50%);padding:8px 16px;background:#fff;color:#666;border:1px solid #ddd;border-radius:4px;font-size:14px;cursor:pointer}.sign-out-button:hover{background:#f5f5f5;border-color:#ccc}.host-main{flex:1;display:flex;align-items:center;justify-content:center}.home-hero{text-align:center}.hero-text{font-size:24px;margin-bottom:24px}.hero-links{display:flex;gap:20px;justify-content:center}.hero-link{padding:8px 16px;border:1px solid #ccc;border-radius:4px;text-decoration:none;color:#0366d6}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f5f5f5;padding:20px}.login-container{width:100%;max-width:400px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:40px}.login-title{font-size:28px;font-weight:700;margin:0 0 8px;text-align:center}.login-subtitle{font-size:16px;color:#666;margin:0 0 32px;text-align:center}.login-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column}.form-input{padding:12px 16px;border:1px solid #ddd;border-radius:4px;font-size:16px}.form-input:focus{outline:none;border-color:#0366d6}.form-input:disabled{background:#f5f5f5;cursor:not-allowed}.login-button{padding:12px 16px;background:#0366d6;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:600;cursor:pointer}.login-button:hover:not(:disabled){background:#0256b8}.login-button:disabled{background:#ccc;cursor:not-allowed}.error-message{color:#d73a49;font-size:14px;padding:8px 12px;background:#ffeef0;border-radius:4px}.info-message{color:#0366d6;font-size:14px;margin-bottom:8px}.access-message{margin-top:32px;padding-top:24px;border-top:1px solid #eee}.access-message p{margin:0;font-size:14px;color:#666;line-height:1.5;text-align:center}:root{--color-primary: #0066cc;--color-primary-hover: #0052a3;--color-primary-light: #e6f2ff;--color-secondary: #6c757d;--color-secondary-hover: #5a6268;--color-success: #28a745;--color-danger: #dc3545;--color-warning: #ffc107;--color-info: #17a2b8;--color-text: #212529;--color-text-secondary: #6c757d;--color-text-muted: #868e96;--color-background: #ffffff;--color-background-secondary: #f8f9fa;--color-background-tertiary: #e9ecef;--color-border: #dee2e6;--color-border-light: #e9ecef;--color-border-focus: #80bdff;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica", "Arial", sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--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);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*{box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);margin:0;padding:0}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-decoration:none}.btn:focus{outline:none;box-shadow:0 0 0 3px #0066cc40}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-background);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-background-secondary)}.btn-danger{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-sm{padding:6px 12px;font-size:var(--font-size-sm)}.btn-lg{padding:12px 24px;font-size:var(--font-size-lg)}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-text)}.form-input,.form-textarea,.form-select{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #0066cc26}.form-input:disabled,.form-textarea:disabled,.form-select:disabled{background-color:var(--color-background-tertiary);cursor:not-allowed;opacity:.6}.form-textarea{resize:vertical;min-height:80px}.form-hint{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-muted)}.form-error{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-danger)}.fieldset{margin:var(--spacing-lg) 0;padding:var(--spacing-md);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background-color:var(--color-background)}.fieldset-legend{padding:0 var(--spacing-sm);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--color-text)}.card{background-color:var(--color-background);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border-light);background-color:var(--color-background-secondary)}.card-body{padding:var(--spacing-lg)}.card-title{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.alert{padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid transparent;margin-bottom:var(--spacing-md)}.alert-info{background-color:#d1ecf1;border-color:#bee5eb;color:#0c5460}.alert-success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.alert-warning{background-color:#fff3cd;border-color:#ffeeba;color:#856404}.alert-danger{background-color:#f8d7da;border-color:#f5c6cb;color:#721c24}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.m-0{margin:0}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.p-0{padding:0}.w-full{width:100%}.max-w-sm{max-width:384px}.max-w-md{max-width:512px}.max-w-lg{max-width:768px}.max-w-xl{max-width:1024px}.recipe-form{max-width:600px;margin:0 auto}.recipe-form .form-group,.recipe-form .fieldset{margin-bottom:var(--spacing-lg)}.ingredient-row,.instruction-row{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);align-items:flex-start}.ingredient-row .form-input{flex:1}.ingredient-row .form-input:first-child{flex:1.5}.instruction-row .form-textarea{flex:1}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border-light)}
