:root{--color-primary:#2d5016;--color-primary-dark:#1a3a0a;--color-primary-light:#3d6b1f;--color-accent:#4caf50;--color-accent-hover:#45a049;--sidebar-collapsed-width:60px;--color-white:#fff;--color-black:#000;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-info:#3b82f6;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--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);--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--transition-fast:150ms ease-in-out;--transition-base:200ms ease-in-out;--transition-slow:300ms ease-in-out;--sidebar-width:280px;--sidebar-width-collapsed:80px;--header-height:56px;--header-height-mobile:48px;--mobile-date-height:24px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:1.5;color:var(--color-gray-900);background-color:var(--color-white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:1.2}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5,h6{font-size:var(--font-size-base)}p{margin-bottom:var(--spacing-md)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}input,select,textarea{font-family:inherit;font-size:inherit}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=time],select,textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background-color:var(--color-white);color:var(--color-gray-900);font-size:var(--font-size-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=text]:focus,input[type=time]:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(76,175,80,.1)}textarea{resize:vertical;min-height:100px}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234b5563' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;padding-right:2.5rem}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn-primary{background-color:var(--color-accent);color:var(--color-white)}.btn-primary:hover{background-color:var(--color-accent-hover);box-shadow:var(--shadow-md)}.btn-primary:active{transform:scale(.98)}.btn-secondary{background-color:var(--color-gray-100);color:var(--color-gray-900);border:1px solid var(--color-gray-300)}.btn-secondary:hover{background-color:var(--color-gray-200)}.btn-danger{background-color:var(--color-error);color:var(--color-white)}.btn-danger:hover{background-color:#dc2626}.btn-small{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn-large{padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-size-lg)}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background-color:var(--color-white);border:1px solid var(--color-gray-200);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{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-gray-200)}.card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.card-body{display:flex;flex-direction:column;gap:var(--spacing-md)}table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}thead{background-color:var(--color-gray-50)}th{text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-gray-700);border-bottom:2px solid var(--color-gray-200)}td,th{padding:var(--spacing-md)}td{border-bottom:1px solid var(--color-gray-200)}tbody tr:hover{background-color:var(--color-gray-50)}.alert{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);border-left:4px solid}.alert-success{background-color:#ecfdf5;border-color:var(--color-success);color:#065f46}.alert-error{background-color:#fef2f2;border-color:var(--color-error);color:#7f1d1d}.alert-warning{background-color:#fffbeb;border-color:var(--color-warning);color:#78350f}.alert-info{background-color:#eff6ff;border-color:var(--color-info);color:#1e3a8a}.flex{display:flex}.flex-col{flex-direction:column}.flex-center{justify-content:center;align-items: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)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.text-center{text-align:center}.text-sm{font-size:var(--font-size-sm)}.text-lg{font-size:var(--font-size-lg)}.text-gray{color:var(--color-gray-600)}.text-muted{color:var(--color-gray-500)}@media (max-width:1024px){:root{--sidebar-width:240px}.card{padding:var(--spacing-md)}}@media (max-width:768px){:root{--sidebar-width:0;--sidebar-width-collapsed:0}body{font-size:var(--font-size-sm)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}.card{padding:var(--spacing-md)}table{font-size:var(--font-size-xs)}td,th{padding:var(--spacing-sm)}}@media (max-width:640px){h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}.card{padding:var(--spacing-md)}.btn{width:100%}}@media (max-width:768px){html{scroll-padding-top:calc(var(--header-height-mobile) + var(--mobile-date-height) + 36px)}[role=button],a,button{min-height:36px}body{overflow-x:hidden}table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}tbody,thead,tr{display:table;width:100%;table-layout:fixed}[style*=grid-template-columns]{grid-template-columns:1fr!important}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=time],select,textarea{font-size:16px}}@media (max-width:400px){:root{--font-size-xs:0.7rem;--font-size-sm:0.8rem;--font-size-base:0.875rem}}