:root{--color-primary:#2d6a4f;--color-primary-hover:#1b4332;--color-secondary:#52b788;--color-accent:#f4a261;--color-error:#c0392b;--color-bg:#f8f9fa;--color-surface:#fff;--color-text:#212529;--color-text-muted:#6c757d;--color-border:#dee2e6;--radius:8px;--shadow:0 2px 8px #00000014;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.6}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--color-primary);color:#fff;box-shadow:var(--shadow);justify-content:space-between;align-items:center;padding:.75rem 2rem;display:flex}.header-nav{align-items:center;gap:1.25rem;display:flex}.header-nav a{color:#fff;font-weight:500;text-decoration:none}.header-nav a:hover{text-decoration:underline}.user-info{color:#ffffffd9;font-size:.875rem}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}.app-footer{color:#ffffffb3;text-align:center;background:#343a40;padding:1rem;font-size:.875rem}.btn{border-radius:var(--radius);cursor:pointer;border:none;align-items:center;gap:.375rem;padding:.5rem 1.25rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover);color:#fff}.btn-secondary{background:var(--color-border);color:var(--color-text)}.btn-secondary:hover{background:#c8cfd8}.btn-sm{padding:.3rem .75rem;font-size:.8rem}.btn-full{justify-content:center;width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.form-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);max-width:640px;padding:2rem}.form-group{margin-bottom:1.25rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-group label{margin-bottom:.375rem;font-size:.9rem;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;width:100%;padding:.5rem .75rem;font-size:.95rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid var(--color-primary);border-color:var(--color-primary)}.form-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.error-message{color:var(--color-error);padding:.5rem 0;font-size:.9rem}.page-container{padding:.5rem 0 2rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.page-header h2{font-size:1.5rem}.auth-container{justify-content:center;align-items:center;min-height:70vh;display:flex}.auth-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:420px;padding:2.5rem}.auth-logo{text-align:center;margin-bottom:2rem}.auth-logo h1{color:var(--color-primary);margin-bottom:.25rem;font-size:1.75rem}.auth-logo p{color:var(--color-text-muted);font-size:.9rem}.auth-form{margin-bottom:1.5rem}.auth-demo-hint{background:#f0fff4;border-radius:4px;padding:1rem;font-size:.85rem}.auth-demo-hint ul{margin-left:1.25rem}.demo-account-link{appearance:none;color:var(--color-primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:.125rem 0}.demo-account-link:hover,.demo-account-link:focus-visible{color:var(--color-primary-hover);text-decoration:underline}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:.75rem;padding:1.25rem;transition:box-shadow .15s}.project-card:hover{box-shadow:var(--shadow)}.project-meta{color:var(--color-text-muted);gap:1rem;margin-top:.375rem;font-size:.85rem;display:flex}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{background:var(--color-surface);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);padding:1.25rem}.stat-card h3{color:var(--color-primary);font-size:1.75rem}.stat-card p{color:var(--color-text-muted);font-size:.85rem}.section{margin-top:1.75rem}.section-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.section-header h3{font-size:1.1rem}.quick-links{flex-wrap:wrap;gap:.75rem;display:flex}.data-table{border-collapse:collapse;background:var(--color-surface);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);overflow:hidden}.data-table th{text-align:left;background:#f1f3f5;padding:.75rem 1rem;font-size:.85rem;font-weight:600}.data-table td{border-top:1px solid var(--color-border);padding:.75rem 1rem;font-size:.9rem}.data-table tr:hover td{background:#f8f9fa}.badge{color:#0369a1;background:#e0f2fe;border-radius:12px;margin-left:.5rem;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.status.active{color:#2d6a4f;font-weight:600}.status.inactive{color:#6c757d}.empty-state{text-align:center;color:var(--color-text-muted);padding:3rem 1rem}.empty-state p{margin-bottom:1rem}.report-container{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem}.report-data{margin-top:1.5rem}
