@media(pointer:coarse){.btn,.btn-sm{min-height:44px}input,select,textarea{font-size:16px}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--gray-50)}.home-page .home-modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-md)}.home-page .home-module h2{margin:0 0 var(--space-xs);font-size:18px}.home-page .home-module p{margin:0 0 var(--space-sm);color:var(--gray-600);font-size:15px}.home-page .home-today{margin:0 0 var(--space-lg);color:var(--gray-500)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-md)}.login-page .card{width:100%;max-width:400px}.login-page h1{margin:0 0 var(--space-xs);font-size:28px;color:var(--color-green)}.login-page .login-subtitle{margin:0 0 var(--space-lg);color:var(--gray-500)}.login-page .login-submit{width:100%;margin-top:var(--space-sm)}.login-page .error-message{margin-bottom:var(--space-md)}:root{--color-white: #ffffff;--color-green: #1d4d2c;--color-green-5: rgba(29, 77, 44, .05);--color-green-10: rgba(29, 77, 44, .1);--color-green-20: rgba(29, 77, 44, .2);--color-green-60: rgba(29, 77, 44, .6);--gray-50: #fafbfa;--gray-100: #f5f6f5;--gray-200: #e8eae8;--gray-300: #d1d5d2;--gray-400: #9ca39d;--gray-500: #6b746c;--gray-600: #4a524b;--gray-700: #363c37;--gray-800: #262a27;--gray-900: #1a1d1a;--status-success: var(--color-green);--status-success-bg: var(--color-green-10);--status-warning: #8b6914;--status-warning-bg: rgba(180, 130, 50, .12);--status-error: #9b2c2c;--status-error-bg: rgba(155, 44, 44, .1);--status-info: var(--gray-600);--status-info-bg: var(--gray-100);--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "Segoe UI", Roboto, sans-serif;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(29, 77, 44, .06);--shadow-md: 0 4px 12px rgba(29, 77, 44, .08);--transition-fast: .15s ease}.app{min-height:100vh;background:var(--gray-50);color:var(--gray-900);font-family:var(--font-family);-webkit-font-smoothing:antialiased;overflow-x:hidden}.page{max-width:960px;margin:0 auto;padding:var(--space-lg) var(--space-md)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.page-header h1{margin:0;font-size:28px;font-weight:var(--font-weight-semibold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:48px;padding:var(--space-sm) var(--space-lg);font-family:var(--font-family);font-size:17px;font-weight:var(--font-weight-medium);line-height:1;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-green);color:var(--color-white)}.btn-primary:hover:not(:disabled){background:var(--gray-800)}.btn-outline,.btn-secondary{background:var(--color-white);color:var(--color-green);border-color:var(--color-green-20)}.btn-outline:hover:not(:disabled),.btn-secondary:hover:not(:disabled){background:var(--color-green-5)}.btn-danger{background:var(--status-error);color:var(--color-white)}.btn-sm{min-height:36px;padding:var(--space-xs) var(--space-md);font-size:15px}@media(pointer:coarse){.btn-sm{min-height:44px}}.card{background:var(--color-white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:13px;font-weight:var(--font-weight-medium);background:var(--gray-100);color:var(--gray-600)}.form-group{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.form-group label{font-size:15px;font-weight:var(--font-weight-medium);color:var(--gray-700)}.form-group input,.form-group select,.form-group textarea{min-height:48px;padding:var(--space-sm) var(--space-md);font-family:var(--font-family);font-size:16px;color:var(--gray-900);background:var(--color-white);border:1px solid var(--gray-300);border-radius:var(--radius-md)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid var(--color-green-20);border-color:var(--color-green)}.error-message{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--status-error-bg);color:var(--status-error);font-size:15px}.loading-state{display:flex;align-items:center;justify-content:center;min-height:50vh;color:var(--gray-500)}
